var Module=typeof Module!=="undefined"?Module:{};(function(){"use strict";var scope;if(typeof window!=="undefined"){scope=window}else{scope=self}if(scope.artoolkit_wasm_url){var downloadWasm=function(url){return new Promise(function(resolve,reject){var wasmXHR=new XMLHttpRequest;wasmXHR.open("GET",url,true);wasmXHR.responseType="arraybuffer";wasmXHR.onload=function(){resolve(wasmXHR.response)};wasmXHR.onerror=function(){reject("error "+wasmXHR.status)};wasmXHR.send(null)})};var wasm=downloadWasm(scope.artoolkit_wasm_url);Module.instantiateWasm=function(imports,successCallback){console.log("instantiateWasm: instantiating synchronously");wasm.then(function(wasmBinary){console.log("wasm download finished, begin instantiating");var wasmInstantiate=WebAssembly.instantiate(new Uint8Array(wasmBinary),imports).then(function(output){console.log("wasm instantiation succeeded");successCallback(output.instance)}).catch(function(e){console.log("wasm instantiation failed! "+e)})});return{}}}var ARController=function(width,height,cameraPara){this.id=undefined;var w=width,h=height;this.orientation="landscape";this.listeners={};if(typeof width!=="number"){var image=width;cameraPara=height;w=image.videoWidth||image.width;h=image.videoHeight||image.height;this.image=image}this.width=w;this.height=h;this.nftMarkerCount=0;this.defaultMarkerWidth=1;this.patternMarkers={};this.barcodeMarkers={};this.nftMarkers={};this.transform_mat=new Float32Array(16);this.transformGL_RH=new Float64Array(16);if(typeof document!=="undefined"){this.canvas=document.createElement("canvas");this.canvas.width=w;this.canvas.height=h;this.ctx=this.canvas.getContext("2d")}this.videoWidth=w;this.videoHeight=h;this.videoSize=this.videoWidth*this.videoHeight;this.framepointer=null;this.framesize=null;this.dataHeap=null;this.videoLuma=null;this.camera_mat=null;this.marker_transform_mat=null;this.videoLumaPointer=null;this._bwpointer=undefined;this._lumaCtx=undefined;if(typeof cameraPara==="string"){this.cameraParam=new ARCameraParam(cameraPara,function(){this._initialize()}.bind(this),function(err){console.error("ARController: Failed to load ARCameraParam",err);this.onload(err)}.bind(this))}else{this.cameraParam=cameraPara;this._initialize()}};ARController.prototype.dispose=function(){if(this.id>-1){artoolkit.teardown(this.id)}if(this.image&&this.image.srcObject){ARController._teardownVideo(this.image)}for(var t in this){this[t]=null}};ARController.prototype.process=function(image){var result=this.detectMarker(image);if(result!=0){console.error("detectMarker error: "+result)}var markerNum=this.getMarkerNum();var k,o;for(k in this.patternMarkers){o=this.patternMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}for(k in this.barcodeMarkers){o=this.barcodeMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}for(k in this.nftMarkers){o=this.nftMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}for(var i=0;i-1&&(markerInfo.id===markerInfo.idPatt||markerInfo.idMatrix===-1)){visible=this.trackPatternMarkerId(markerInfo.idPatt);markerType=artoolkit.PATTERN_MARKER;if(markerInfo.dir!==markerInfo.dirPatt){this.setMarkerInfoDir(i,markerInfo.dirPatt)}}else if(markerInfo.idMatrix>-1){visible=this.trackBarcodeMarkerId(markerInfo.idMatrix);markerType=artoolkit.BARCODE_MARKER;if(markerInfo.dir!==markerInfo.dirMatrix){this.setMarkerInfoDir(i,markerInfo.dirMatrix)}}if(markerType!==artoolkit.UNKNOWN_MARKER&&visible.inPrevious){this.getTransMatSquareCont(i,visible.markerWidth,visible.matrix,visible.matrix)}else{this.getTransMatSquare(i,visible.markerWidth,visible.matrix)}visible.inCurrent=true;this.transMatToGLMat(visible.matrix,this.transform_mat);this.transformGL_RH=this.arglCameraViewRHf(this.transform_mat);this.dispatchEvent({name:"getMarker",target:this,data:{index:i,type:markerType,marker:markerInfo,matrix:this.transform_mat,matrixGL_RH:this.transformGL_RH}})}var nftMarkerCount=this.nftMarkerCount;this.detectNFTMarker();var MARKER_LOST_TIME=200;for(var i=0;i=0){visible=true;this.dispatchEvent({name:"getMultiMarker",target:this,data:{multiMarkerId:i,matrix:this.transform_mat,matrixGL_RH:this.transformGL_RH}});break}}if(visible){for(var j=0;j-1){this.listeners[name].splice(index,1)}}};ARController.prototype.dispatchEvent=function(event){var listeners=this.listeners[event.name];if(listeners){for(var i=0;i>3;q+=4}}if(this.dataHeap){this.dataHeap.set(data);return true}return false};ARController.prototype._debugMarker=function(marker){var vertex,pos;vertex=marker.vertex;var ctx=this.ctx;ctx.strokeStyle="red";ctx.beginPath();ctx.moveTo(vertex[0][0],vertex[0][1]);ctx.lineTo(vertex[1][0],vertex[1][1]);ctx.stroke();ctx.beginPath();ctx.moveTo(vertex[2][0],vertex[2][1]);ctx.lineTo(vertex[3][0],vertex[3][1]);ctx.stroke();ctx.strokeStyle="green";ctx.beginPath();ctx.lineTo(vertex[1][0],vertex[1][1]);ctx.lineTo(vertex[2][0],vertex[2][1]);ctx.stroke();ctx.beginPath();ctx.moveTo(vertex[3][0],vertex[3][1]);ctx.lineTo(vertex[0][0],vertex[0][1]);ctx.stroke();pos=marker.pos;ctx.beginPath();ctx.arc(pos[0],pos[1],8,0,Math.PI*2);ctx.fillStyle="red";ctx.fill()};ARController.getUserMedia=function(configuration){var facing=configuration.facingMode||"environment";var onSuccess=configuration.onSuccess;var onError=configuration.onError||function(err){console.error("ARController.getUserMedia",err)};var video=document.createElement("video");var readyToPlay=false;var eventNames=["touchstart","touchend","touchmove","touchcancel","click","mousedown","mouseup","mousemove","keydown","keyup","keypress","scroll"];var play=function(){if(readyToPlay){video.play().then(function(){onSuccess(video)}).catch(function(error){onError(error);ARController._teardownVideo(video)});if(!video.paused){eventNames.forEach(function(eventName){window.removeEventListener(eventName,play,true)})}}};eventNames.forEach(function(eventName){window.addEventListener(eventName,play,true)});var success=function(stream){if(window.URL.createObjectURL){try{video.srcObject=stream}catch(ex){}}video.srcObject=stream;readyToPlay=true;video.autoplay=true;video.playsInline=true;play()};var constraints={};var mediaDevicesConstraints={};if(configuration.width){mediaDevicesConstraints.width=configuration.width;if(typeof configuration.width==="object"){if(configuration.width.max){constraints.maxWidth=configuration.width.max}if(configuration.width.min){constraints.minWidth=configuration.width.min}}else{constraints.maxWidth=configuration.width}}if(configuration.height){mediaDevicesConstraints.height=configuration.height;if(typeof configuration.height==="object"){if(configuration.height.max){constraints.maxHeight=configuration.height.max}if(configuration.height.min){constraints.minHeight=configuration.height.min}}else{constraints.maxHeight=configuration.height}}mediaDevicesConstraints.facingMode=facing;mediaDevicesConstraints.deviceId=configuration.deviceId;navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var hdConstraints={audio:false,video:constraints};if(navigator.mediaDevices||window.MediaStreamTrack.getSources){if(navigator.mediaDevices){navigator.mediaDevices.getUserMedia({audio:false,video:mediaDevicesConstraints}).then(success,onError)}else{window.MediaStreamTrack.getSources(function(sources){var facingDir=mediaDevicesConstraints.facingMode;if(facing&&facing.exact){facingDir=facing.exact}for(var i=0;i-1){writeStringToFS(filename,url,writeCallback)}else{ajax(url,filename,writeCallback,errorCallback)}}function writeStringToFS(target,string,callback){var byteArray=new Uint8Array(string.length);for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}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);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(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 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>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=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}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){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&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(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}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}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 len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=57888,DYNAMIC_BASE=5300768,DYNAMICTOP_PTR=57696;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||67108864;if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __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 initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){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)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw what}var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var tempDouble;var tempI64;var ASM_CONSTS=[function($0,$1,$2,$3,$4,$5){if(!artoolkit["frameMalloc"]){artoolkit["frameMalloc"]={}}var frameMalloc=artoolkit["frameMalloc"];frameMalloc["framepointer"]=$1;frameMalloc["framesize"]=$2;frameMalloc["camera"]=$3;frameMalloc["transform"]=$4;frameMalloc["videoLumaPointer"]=$5},function($0,$1,$2,$3){if(!artoolkit["multiEachMarkerInfo"]){artoolkit["multiEachMarkerInfo"]={}}var multiEachMarker=artoolkit["multiEachMarkerInfo"];multiEachMarker["visible"]=$0;multiEachMarker["pattId"]=$1;multiEachMarker["pattType"]=$2;multiEachMarker["width"]=$3},function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32){var $a=arguments;var i=12;if(!artoolkit["markerInfo"]){artoolkit["markerInfo"]={pos:[0,0],line:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],vertex:[[0,0],[0,0],[0,0],[0,0]]}}var markerInfo=artoolkit["markerInfo"];markerInfo["area"]=$0;markerInfo["id"]=$1;markerInfo["idPatt"]=$2;markerInfo["idMatrix"]=$3;markerInfo["dir"]=$4;markerInfo["dirPatt"]=$5;markerInfo["dirMatrix"]=$6;markerInfo["cf"]=$7;markerInfo["cfPatt"]=$8;markerInfo["cfMatrix"]=$9;markerInfo["pos"][0]=$10;markerInfo["pos"][1]=$11;markerInfo["line"][0][0]=$a[i++];markerInfo["line"][0][1]=$a[i++];markerInfo["line"][0][2]=$a[i++];markerInfo["line"][1][0]=$a[i++];markerInfo["line"][1][1]=$a[i++];markerInfo["line"][1][2]=$a[i++];markerInfo["line"][2][0]=$a[i++];markerInfo["line"][2][1]=$a[i++];markerInfo["line"][2][2]=$a[i++];markerInfo["line"][3][0]=$a[i++];markerInfo["line"][3][1]=$a[i++];markerInfo["line"][3][2]=$a[i++];markerInfo["vertex"][0][0]=$a[i++];markerInfo["vertex"][0][1]=$a[i++];markerInfo["vertex"][1][0]=$a[i++];markerInfo["vertex"][1][1]=$a[i++];markerInfo["vertex"][2][0]=$a[i++];markerInfo["vertex"][2][1]=$a[i++];markerInfo["vertex"][3][0]=$a[i++];markerInfo["vertex"][3][1]=$a[i++];markerInfo["errorCorrected"]=$a[i++]},function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13){var $a=arguments;var i=0;if(!artoolkit["NFTMarkerInfo"]){artoolkit["NFTMarkerInfo"]={id:0,error:-1,found:0,pose:[0,0,0,0,0,0,0,0,0,0,0,0]}}var markerInfo=artoolkit["NFTMarkerInfo"];markerInfo["id"]=$a[i++];markerInfo["error"]=$a[i++];markerInfo["found"]=1;markerInfo["pose"][0]=$a[i++];markerInfo["pose"][1]=$a[i++];markerInfo["pose"][2]=$a[i++];markerInfo["pose"][3]=$a[i++];markerInfo["pose"][4]=$a[i++];markerInfo["pose"][5]=$a[i++];markerInfo["pose"][6]=$a[i++];markerInfo["pose"][7]=$a[i++];markerInfo["pose"][8]=$a[i++];markerInfo["pose"][9]=$a[i++];markerInfo["pose"][10]=$a[i++];markerInfo["pose"][11]=$a[i++]},function($0){var $a=arguments;var i=0;if(!artoolkit["NFTMarkerInfo"]){artoolkit["NFTMarkerInfo"]={id:0,error:-1,found:0,pose:[0,0,0,0,0,0,0,0,0,0,0,0]}}var markerInfo=artoolkit["NFTMarkerInfo"];markerInfo["id"]=$a[i++];markerInfo["error"]=-1;markerInfo["found"]=0;markerInfo["pose"][0]=0;markerInfo["pose"][1]=0;markerInfo["pose"][2]=0;markerInfo["pose"][3]=0;markerInfo["pose"][4]=0;markerInfo["pose"][5]=0;markerInfo["pose"][6]=0;markerInfo["pose"][7]=0;markerInfo["pose"][8]=0;markerInfo["pose"][9]=0;markerInfo["pose"][10]=0;markerInfo["pose"][11]=0}];function _emscripten_asm_const_iiiiiii(code,a0,a1,a2,a3,a4,a5){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5)}function _emscripten_asm_const_iiiid(code,a0,a1,a2,a3){return ASM_CONSTS[code](a0,a1,a2,a3)}function _emscripten_asm_const_iiddddddddddddd(code,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _emscripten_asm_const_iiiiiiiidddddddddddddddddddddddddi(code,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)}__ATINIT__.push({func:function(){__GLOBAL__I_000101()}},{func:function(){__GLOBAL__sub_I_ARToolKitJS_cpp()}},{func:function(){___emscripten_environ_constructor()}},{func:function(){__GLOBAL__sub_I_bind_cpp()}},{func:function(){__GLOBAL__sub_I_iostream_cpp()}});memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAACKTQAAkU0AAJ1NAACnTQAAtU0AAAAAAAAAAAAAAAAAAP//////////AAAAAAEAAAABAAAAAQAAAAAAAAD/////AAAAAAEAAAABAAAAAQAAAAAAAAD///////////////8AAAABAAEBAQACBP//BQMBAAL/Bgf/AwECAgMCAwIDAwD/BAYHBf8BBAUEBAUFBAUHBgYGBwcHBv8CBAYHBQP/AAEBAQEBAQABAQEAAAEBAQEBAAEBAAEBAQABAQEBAAEBAAEBAQEAAQEBAAEBAAEBAQEBAAABAQEAAQEBAQEBAAD//wP/BQb//wkK/wz//w//ERL/FP//Fxj//xv/HR7//wEC/wT//wcI//8L/w0O/xD//xP/FRb//xka/xz//x8BAAAAAgAAAAQAAAAIAAAAEAAAAAUAAAAKAAAAFAAAAA0AAAAaAAAAEQAAAAcAAAAOAAAAHAAAAB0AAAAfAAAAGwAAABMAAAADAAAABgAAAAwAAAAYAAAAFQAAAA8AAAAeAAAAGQAAABcAAAALAAAAFgAAAAkAAAASAAAAAAAAAAEAAAACAAAABAAAAAgAAAADAAAABgAAAAwAAAALAAAABQAAAAoAAAAHAAAADgAAAA8AAAANAAAACQAAAAAAAAD/////AAAAAAEAAAASAAAAAgAAAAUAAAATAAAACwAAAAMAAAAdAAAABgAAABsAAAAUAAAACAAAAAwAAAAXAAAABAAAAAoAAAAeAAAAEQAAAAcAAAAWAAAAHAAAABoAAAAVAAAAGQAAAAkAAAAQAAAADQAAAA4AAAAYAAAADwAAAP////8AAAAAAQAAAAQAAAACAAAACAAAAAUAAAAKAAAAAwAAAA4AAAAJAAAABwAAAAYAAAANAAAACwAAAAwAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAAwAAAAYAAAAMAAAAGAAAADAAAABgAAAAQwAAAAUAAAAKAAAAFAAAACgAAABQAAAAIwAAAEYAAAAPAAAAHgAAADwAAAB4AAAAcwAAAGUAAABJAAAAEQAAACIAAABEAAAACwAAABYAAAAsAAAAWAAAADMAAABmAAAATwAAAB0AAAA6AAAAdAAAAGsAAABVAAAAKQAAAFIAAAAnAAAATgAAAB8AAAA+AAAAfAAAAHsAAAB1AAAAaQAAAFEAAAAhAAAAQgAAAAcAAAAOAAAAHAAAADgAAABwAAAAYwAAAEUAAAAJAAAAEgAAACQAAABIAAAAEwAAACYAAABMAAAAGwAAADYAAABsAAAAWwAAADUAAABqAAAAVwAAAC0AAABaAAAANwAAAG4AAABfAAAAPQAAAHoAAAB3AAAAbQAAAFkAAAAxAAAAYgAAAEcAAAANAAAAGgAAADQAAABoAAAAUwAAACUAAABKAAAAFwAAAC4AAABcAAAAOwAAAHYAAABvAAAAXQAAADkAAAByAAAAZwAAAE0AAAAZAAAAMgAAAGQAAABLAAAAFQAAACoAAABUAAAAKwAAAFYAAAAvAAAAXgAAAD8AAAB+AAAAfwAAAH0AAAB5AAAAcQAAAGEAAABBAAAAAAAAAP////8AAAAAAQAAAAcAAAACAAAADgAAAAgAAAA4AAAAAwAAAD8AAAAPAAAAHwAAAAkAAABaAAAAOQAAABUAAAAEAAAAHAAAAEAAAABDAAAAEAAAAHAAAAAgAAAAYQAAAAoAAABsAAAAWwAAAEYAAAA6AAAAJgAAABYAAAAvAAAABQAAADYAAAAdAAAAEwAAAEEAAABfAAAARAAAAC0AAAARAAAAKwAAAHEAAABzAAAAIQAAAE0AAABiAAAAdQAAAAsAAABXAAAAbQAAACMAAABcAAAASgAAAEcAAABPAAAAOwAAAGgAAAAnAAAAZAAAABcAAABSAAAAMAAAAHcAAAAGAAAAfgAAADcAAAANAAAAHgAAAD4AAAAUAAAAWQAAAEIAAAAbAAAAYAAAAG8AAABFAAAAawAAAC4AAAAlAAAAEgAAADUAAAAsAAAAXgAAAHIAAAAqAAAAdAAAAEwAAAAiAAAAVgAAAE4AAABJAAAAYwAAAGcAAAB2AAAAUQAAAAwAAAB9AAAAWAAAAD0AAABuAAAAGgAAACQAAABqAAAAXQAAADQAAABLAAAAKQAAAEgAAABVAAAAUAAAAGYAAAA8AAAAfAAAAGkAAAAZAAAAKAAAADMAAABlAAAAVAAAABgAAAB7AAAAUwAAADIAAAAxAAAAegAAAHgAAAB5AAAABAAAAIgAAAAFAAAAkAAAAAYAAACYAAAACQAAALAAAAA3VAAAPVQAAEJUAABKVAAAAAAAALK+uT4S3KC+kL45PhLcoL6Qvjm+AAAAgLK+ub4S3KA+kL45vhLcoD6Qvjk+0nIYvwAAAADScpi+OgYEv9JymD46BgS/0nIYPwAAAIDScpg+OgYEP9JymL46BgQ/AAAAgFa4Pb9mTSQ/Vri9vmZNJD9WuL0+AAAAAFa4PT9mTSS/Vri9PmZNJL9WuL2+DOlYPwAAAIAM6dg+mdk7Pwzp2L6Z2Ts/DOlYvwAAAAAM6di+mdk7vwzp2D6Z2Tu/AAAAAPxTbj/xZU6/DVTuPvFlTr8NVO6+AAAAgPxTbr/xZU4/DVTuvvFlTj8NVO4+AACAvwAAAAAAAAC/0LNdvwAAAD/Qs12/AACAPwAAAIAAAAA/0LNdPwAAAL/Qs10/ADcAAAA3AAAANwAAADcAAAAAAAABAAAACAAAABAAAAAJAAAAAgAAAAMAAAAKAAAAEQAAABgAAAAgAAAAGQAAABIAAAALAAAABAAAAAUAAAAMAAAAEwAAABoAAAAhAAAAKAAAADAAAAApAAAAIgAAABsAAAAUAAAADQAAAAYAAAAHAAAADgAAABUAAAAcAAAAIwAAACoAAAAxAAAAOAAAADkAAAAyAAAAKwAAACQAAAAdAAAAFgAAAA8AAAAXAAAAHgAAACUAAAAsAAAAMwAAADoAAAA7AAAANAAAAC0AAAAmAAAAHwAAACcAAAAuAAAANQAAADwAAAA9AAAANgAAAC8AAAA3AAAAPgAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAAAAAAAEAAAAIAAAAEAAAAAkAAAACAAAAAwAAAAoAAAARAAAAGAAAACAAAAAZAAAAEgAAAAsAAAAEAAAABQAAAAwAAAATAAAAGgAAACEAAAAoAAAAMAAAACkAAAAiAAAAGwAAABQAAAANAAAABgAAAA4AAAAVAAAAHAAAACMAAAAqAAAAMQAAADIAAAArAAAAJAAAAB0AAAAWAAAAHgAAACUAAAAsAAAAMwAAADQAAAAtAAAAJgAAAC4AAAA1AAAANgAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAQAAAACQAAAAIAAAADAAAACgAAABEAAAAYAAAAIAAAABkAAAASAAAACwAAAAQAAAAFAAAADAAAABMAAAAaAAAAIQAAACgAAAApAAAAIgAAABsAAAAUAAAADQAAABUAAAAcAAAAIwAAACoAAAArAAAAJAAAAB0AAAAlAAAALAAAAC0AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAAAAAAAEAAAAIAAAAEAAAAAkAAAACAAAAAwAAAAoAAAARAAAAGAAAACAAAAAZAAAAEgAAAAsAAAAEAAAADAAAABMAAAAaAAAAIQAAACIAAAAbAAAAFAAAABwAAAAjAAAAJAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAQAAAACQAAAAIAAAADAAAACgAAABEAAAAYAAAAGQAAABIAAAALAAAAEwAAABoAAAAbAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAAAAAAABAAAACAAAABAAAAAJAAAAAgAAAAoAAAARAAAAEgAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAJAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAIEBHVoOAoYlEAMUERIECwgUBdgDFwbaARkH5QAcCG8AHgk2ACEKGgAjCw0ACQwGAAoNAwAMDQEAjw9/WiQQJT8mEfIsJxJ8ICgTuRcqFIIRKxXvDC0WoQkuFy8HMBhcBTEZBgQzGgMDNBtAAjYcsQE4HUQBOR71ADsftwA8IIoAPiFoAD8iTgAgIzsAIQksAKUl4VpAJkxIQScNOkMo8S5EKR8mRSozH0YrqBlILBgVSS13EUoudA5LL/sLTTD4CU4xYQhPMgYHMDPNBTI03gQyNQ8EMzZjAzQ31AI1OFwCNjn4ATc6pAE4O2ABOTwlATo99gA7PssAPT+rAD0gjwDBQRJbUEIETVFDLEFSRNg3U0XoL1RGPClWR3kjV0jfHldJqRpISk4XSEskFEpMnBFKTWsPS05RDU1PtgtNMEAK0FEyWFhSHE1ZU45DWlTdO1tV7jRcVq4uXVeaKVZHFiXYWXBVX1qpTGBb2URhXCI+Y10kOGNetDJdVhcu32CoVmVhRk9mYuVHZ2PPQWhkPTxjXV43aWYxUmpnD0xraDlGZ2NeQelqJ1Zsa+dQbWeFS25tl1Vva09Q7m8QWnBtIlXwb+tZcXEdWgAAAAAAAAAA1aMAAOujAAALpAAAMKQAAEqkAABppAAAfqQAAJukAADFpAAABaUAACSlAAA7pQAAUaUAAGWlAACipQAA0qUAAO6lAAARpgAASKYAAH+mAACWpgAAtqYAAOCmAAAtpwAASKcAAHOnAACPpwAAtKcAANqnAAD/pwAAEqgAACeoAAA6qAAATagAAHKoAACHqAAAm6gAALyoAADSqAAAAakAACmpAABKqQAAa6kAAJqpAACrqQAAx6kAAAWqAAAsqgAAU6oAAGeqAACVqgAAvaoAANmqAAD+qgAAIKsAAEqrAAB1qwAAk6sAAMGrAADpqwAAEKwAADusAABorAAAmKwAAMKsAADvrAAAEq0AADCtAABOrQAAhK0AAK6tAADNrQAA8K0AABeuAAAsrgAAQK4AAHWuAACFrgAAw64AAAWvAAAvrwAAW68AAIKvAACerwAAya8AAOSvAAD4rwAAD7AAABywAABEsAAAebAAALWwAADjsAAABLEAACuxAABEsQAAbLEAAI+xAACnsQAAy7EAAPCxAAD2sQAAL7IAAGmyAACIsgAAl7IAALSyAADSsgAA77IAAAizAAAhswAAY7MAAJ2zAADTswAAB7QAABu0AAAytAAAWLQAAH+0AADBtAAA/bQAAC61AABStQAAgLUAAJu1AADTtQAA/rUAAAAAAAAAAAAAAQAAAAIAAAADAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAAGAAAAAwAAAAcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAABgAAAAIAAAAEAAAABwAAAAwAAAADAAAACAAAAAsAAAANAAAACQAAAAoAAAAOAAAADwAAAAAAAAABAAAABQAAAAYAAAAOAAAAAgAAAAQAAAAHAAAADQAAAA8AAAADAAAACAAAAAwAAAAQAAAAFQAAAAkAAAALAAAAEQAAABQAAAAWAAAACgAAABIAAAATAAAAFwAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAGAAAADgAAAA8AAAACAAAABAAAAAcAAAANAAAAEAAAABkAAAADAAAACAAAAAwAAAARAAAAGAAAABoAAAAJAAAACwAAABIAAAAXAAAAGwAAACAAAAAKAAAAEwAAABYAAAAcAAAAHwAAACEAAAAUAAAAFQAAAB0AAAAeAAAAIgAAACMAAAAAAAAAAQAAAAUAAAAGAAAADgAAAA8AAAAbAAAAAgAAAAQAAAAHAAAADQAAABAAAAAaAAAAHAAAAAMAAAAIAAAADAAAABEAAAAZAAAAHQAAACYAAAAJAAAACwAAABIAAAAYAAAAHgAAACUAAAAnAAAACgAAABMAAAAXAAAAHwAAACQAAAAoAAAALQAAABQAAAAWAAAAIAAAACMAAAApAAAALAAAAC4AAAAVAAAAIQAAACIAAAAqAAAAKwAAAC8AAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAABgAAAA4AAAAPAAAAGwAAABwAAAACAAAABAAAAAcAAAANAAAAEAAAABoAAAAdAAAAKgAAAAMAAAAIAAAADAAAABEAAAAZAAAAHgAAACkAAAArAAAACQAAAAsAAAASAAAAGAAAAB8AAAAoAAAALAAAADUAAAAKAAAAEwAAABcAAAAgAAAAJwAAAC0AAAA0AAAANgAAABQAAAAWAAAAIQAAACYAAAAuAAAAMwAAADcAAAA8AAAAFQAAACIAAAAlAAAALwAAADIAAAA4AAAAOwAAAD0AAAAjAAAAJAAAADAAAAAxAAAAOQAAADoAAAA+AAAAPwAAAAAAAAABAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAAAQMVYn1NCSwBASTKjIqgRxVghe/xzYmjFWL9FCzB+GJ9T/HNBbVRin1OzQUEtEhdCS2JoVGJ+WEJLITu6KMMUAEDFWJ9TQksAQEkyoyKoEUkyv0WzQSE7STKCJzcb4A2jIgswQS26KKMiNxu/Eo4JqBF+GBIXwxSoEeANjgnfBAAAAAAAAPA/72FIsVAx9j/Kb02Rruf0P6oRbO9i0PI/AAAAAAAA8D87v6fAaSTpP7sgx3t6UeE/Xaty3lWo0T8AwDDwDMw8/APDM/MPzz//gECwcIxMvHyDQ7Nzj0+/fyDgENAs7BzcI+MT0y/vH9+gYJBQrGycXKNjk1Ovb59fCMg4+ATENPQLyzv7B8c394hIuHiERLR0i0u7e4dHt3co6BjYJOQU1CvrG9sn5xfXqGiYWKRklFSra5tbp2eXVwLCMvIOzj7+AcEx8Q3NPf2CQrJyjk6+foFBsXGNTb19IuIS0i7uHt4h4RHRLe0d3aJiklKubp5eoWGRUa1tnV0Kyjr6BsY29gnJOfkFxTX1ikq6eoZGtnaJSbl5hUW1dSrqGtom5hbWKekZ2SXlFdWqappapmaWVqlpmVmlZZVV3hIElQAAAAD///////////////8AAAAAAAAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNMAAAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAyACIAIgAiACIAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAFgBMAEwATABMAEwATABMAEwATABMAEwATABMAEwATACNgI2AjYCNgI2AjYCNgI2AjYCNgEwATABMAEwATABMAEwAjVCNUI1QjVCNUI1QjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUEwATABMAEwATABMAI1gjWCNYI1gjWCNYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGBMAEwATABMACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAbgAAAG8AAABwAAAAcQAAAHIAAABzAAAAdAAAAHUAAAB2AAAAdwAAAHgAAAB5AAAAegAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZEkQ7Aj8sRxQ9MzAKGwZGS0U3D0kOjhcDQB08aSs2H0otHAEgJSkhCAwVFiIuEDg+CzQxGGR0dXYvQQl/OREjQzJCiYqLBQQmKCcNKh41jAcaSJMTlJUAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFTENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVMAAAAAAAAAAAAAAAAAAgAAAAMAAAAFAAAABwAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAfwAAAIMAAACJAAAAiwAAAJUAAACXAAAAnQAAAKMAAACnAAAArQAAALMAAAC1AAAAvwAAAMEAAADFAAAAxwAAANMAAAABAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB5AAAAfwAAAIMAAACJAAAAiwAAAI8AAACVAAAAlwAAAJ0AAACjAAAApwAAAKkAAACtAAAAswAAALUAAAC7AAAAvwAAAMEAAADFAAAAxwAAANEAAAAwMTIzNDU2Nzg5YWJjZGVmQUJDREVGeFgrLXBQaUluTgAAAAAAAAAAAAAAAAAAAAAlAAAAbQAAAC8AAAAlAAAAZAAAAC8AAAAlAAAAeQAAACUAAABZAAAALQAAACUAAABtAAAALQAAACUAAABkAAAAJQAAAEkAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAHAAAAAAAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAAAAAAAAAAAAAAAAAAlAAAASAAAADoAAAAlAAAATQAAADoAAAAlAAAAUwAAACUAAABIAAAAOgAAACUAAABNAAAAOgAAACUAAABTAAAApD8AABVdAADMPwAAiWkAAIAzAAAAAAAAzD8AAHRsAAA4NgAAAAAAAMw/AAAjdwAAGD0AAAAAAADMPwAAi4cAABg9AAAAAAAAzD8AAP+HAAAYPQAAAAAAADhAAADlngAAAAAAAAEAAADwMwAAAAAAAKQ/AAAknwAABQAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAABG4QAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAIyQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAYzQAAAAQAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACv////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApD8AAEe3AADMPwAAp7cAAFA2AAAAAAAAzD8AAFS3AABgNgAAAAAAAKQ/AAB1twAAzD8AAIK3AABANgAAAAAAAMw/AADxtwAAODYAAAAAAADMPwAAAbgAAHg2AAAAAAAAzD8AABK4AABQNgAAAAAAAMw/AAA0uAAAmDYAAAAAAADMPwAAWLgAAFA2AAAAAAAAHEAAAIC4AAAcQAAAgrgAABxAAACEuAAAHEAAAIa4AAAcQAAAiLgAABxAAACKuAAAHEAAAIy4AAAcQAAAjrgAABxAAACQuAAAHEAAAA3BAAAcQAAAkrgAABxAAACUuAAAHEAAAJa4AADMPwAAmLgAAEA2AAAAAAAApD8AANu7AACkPwAA+rsAAKQ/AAAZvAAApD8AADi8AACkPwAAV7wAAKQ/AAB2vAAApD8AAJW8AACkPwAAtLwAAKQ/AADTvAAApD8AAPK8AACkPwAAEb0AAKQ/AAAwvQAApD8AAE+9AAA4QAAAYr0AAAAAAAABAAAA8DMAAAAAAAA4QAAAob0AAAAAAAABAAAA8DMAAAAAAADMPwAA8r0AAOg3AAAAAAAApD8AAOC9AADMPwAAHL4AAOg3AAAAAAAApD8AAEa+AACkPwAAd74AADhAAACovgAAAAAAAAEAAADYNwAAA/T//zhAAADXvgAAAAAAAAEAAADwNwAAA/T//zhAAAAGvwAAAAAAAAEAAADYNwAAA/T//zhAAAA1vwAAAAAAAAEAAADwNwAAA/T//8w/AABkvwAACDgAAAAAAADMPwAAfb8AAAA4AAAAAAAAzD8AALy/AAAIOAAAAAAAAMw/AADUvwAAADgAAAAAAADMPwAA7L8AAMA4AAAAAAAAzD8AAADAAAAQPQAAAAAAAMw/AAAWwAAAwDgAAAAAAAA4QAAAL8AAAAAAAAACAAAAwDgAAAIAAAAAOQAAAAAAADhAAABzwAAAAAAAAAEAAAAYOQAAAAAAAKQ/AACJwAAAOEAAAKLAAAAAAAAAAgAAAMA4AAACAAAAQDkAAAAAAAA4QAAA5sAAAAAAAAABAAAAGDkAAAAAAAA4QAAAD8EAAAAAAAACAAAAwDgAAAIAAAB4OQAAAAAAADhAAABTwQAAAAAAAAEAAACQOQAAAAAAAKQ/AABpwQAAOEAAAILBAAAAAAAAAgAAAMA4AAACAAAAuDkAAAAAAAA4QAAAxsEAAAAAAAABAAAAkDkAAAAAAAA4QAAAHMMAAAAAAAADAAAAwDgAAAIAAAD4OQAAAgAAAAA6AAAACAAApD8AAIPDAACkPwAAYcMAADhAAACWwwAAAAAAAAMAAADAOAAAAgAAAPg5AAACAAAAMDoAAAAIAACkPwAA28MAADhAAAD9wwAAAAAAAAIAAADAOAAAAgAAAFg6AAAACAAApD8AAELEAAA4QAAAV8QAAAAAAAACAAAAwDgAAAIAAABYOgAAAAgAADhAAACcxAAAAAAAAAIAAADAOAAAAgAAAKA6AAACAAAApD8AALjEAAA4QAAAzcQAAAAAAAACAAAAwDgAAAIAAACgOgAAAgAAADhAAADpxAAAAAAAAAIAAADAOAAAAgAAAKA6AAACAAAAOEAAAAXFAAAAAAAAAgAAAMA4AAACAAAAoDoAAAIAAAA4QAAAMMUAAAAAAAACAAAAwDgAAAIAAAAoOwAAAAAAAKQ/AAB2xQAAOEAAAJrFAAAAAAAAAgAAAMA4AAACAAAAUDsAAAAAAACkPwAA4MUAADhAAAD/xQAAAAAAAAIAAADAOAAAAgAAAHg7AAAAAAAApD8AAEXGAAA4QAAAXsYAAAAAAAACAAAAwDgAAAIAAACgOwAAAAAAAKQ/AACkxgAAOEAAAL3GAAAAAAAAAgAAAMA4AAACAAAAyDsAAAIAAACkPwAA0sYAADhAAABpxwAAAAAAAAIAAADAOAAAAgAAAMg7AAACAAAAzD8AAOrGAAAAPAAAAAAAADhAAAANxwAAAAAAAAIAAADAOAAAAgAAACA8AAACAAAApD8AADDHAADMPwAAR8cAAAA8AAAAAAAAOEAAAH7HAAAAAAAAAgAAAMA4AAACAAAAIDwAAAIAAAA4QAAAoMcAAAAAAAACAAAAwDgAAAIAAAAgPAAAAgAAADhAAADCxwAAAAAAAAIAAADAOAAAAgAAACA8AAACAAAAzD8AAOXHAADAOAAAAAAAADhAAAD7xwAAAAAAAAIAAADAOAAAAgAAAMg8AAACAAAApD8AAA3IAAA4QAAAIsgAAAAAAAACAAAAwDgAAAIAAADIPAAAAgAAAMw/AAA/yAAAwDgAAAAAAADMPwAAVMgAAMA4AAAAAAAApD8AAGnIAAA4QAAAgsgAAAAAAAABAAAAED0AAAAAAAABAAAAAAAAAIgzAAABAAAAAgAAAAAAAACAMwAAAwAAAAQAAAAAAAAAmDMAAAUAAAAGAAAAAQAAALlSjD6OWuc+uVKMPgAAAACoMwAABwAAAAgAAAAJAAAAAQAAAAoAAAAAAAAAuDMAAAcAAAALAAAADAAAAAIAAAANAAAAAAAAAMgzAAAHAAAADgAAAA8AAAADAAAAEAAAAP/////+/////f///8g2AAAANwAAIDcAAMg2AAAANwAAADcAACg3AAAANwAAyDYAAAA3AAAoNwAAADcAAMg2AAAANwAAADcAANgzAAAANwAAADcAAAA3AAAANwAAADcAANgzAAAANwAAADcAAAEAAAAAAAAAAgAAAEAGAACAPgAAAAAAAIgTAABAFgAAFAAAAEMuVVRGLTgAAAAAAAAAAAAAAAAAUD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA+DMAAIg0AAAYNQAAGDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGwAAIB8AACAlAABfcIkA/wkvDwAAAABANgAAEQAAABIAAAATAAAAFAAAAAQAAAABAAAAAQAAAAEAAAAAAAAAaDYAABEAAAAVAAAAEwAAABQAAAAEAAAAAgAAAAIAAAACAAAAAAAAAHg2AAAWAAAAFwAAAAQAAAAAAAAAiDYAABYAAAAYAAAABAAAAAAAAAC4NgAAEQAAABkAAAATAAAAFAAAAAUAAAAAAAAAMDcAABEAAAAaAAAAEwAAABQAAAAEAAAAAwAAAAMAAAADAAAAAAAAAOg3AAAbAAAAHAAAAAAAAAAAOAAAHQAAAB4AAAABAAAABgAAAAQAAAAEAAAABQAAAAYAAAAHAAAABwAAAAgAAAAEAAAACAAAAAUAAAAAAAAACDgAAB8AAAAgAAAAAgAAAAkAAAAFAAAABQAAAAkAAAAKAAAACgAAAAsAAAAMAAAABgAAAAsAAAAHAAAACAAAAAAAAAAQOAAAIQAAACIAAAD4////+P///xA4AAAjAAAAJAAAAPRAAAAIQQAACAAAAAAAAAAoOAAAJQAAACYAAAD4////+P///yg4AAAnAAAAKAAAACRBAAA4QQAABAAAAAAAAABAOAAAKQAAACoAAAD8/////P///0A4AAArAAAALAAAAFRBAABoQQAABAAAAAAAAABYOAAALQAAAC4AAAD8/////P///1g4AAAvAAAAMAAAAIRBAACYQQAAAAAAAHA4AAAfAAAAMQAAAAMAAAAJAAAABQAAAAUAAAANAAAACgAAAAoAAAALAAAADAAAAAYAAAAMAAAACAAAAAAAAACAOAAAHQAAADIAAAAEAAAABgAAAAQAAAAEAAAADgAAAAYAAAAHAAAABwAAAAgAAAAEAAAADQAAAAkAAAAAAAAAkDgAAB8AAAAzAAAABQAAAAkAAAAFAAAABQAAAAkAAAAKAAAACgAAAA8AAAAQAAAACgAAAAsAAAAHAAAAAAAAAKA4AAAdAAAANAAAAAYAAAAGAAAABAAAAAQAAAAFAAAABgAAAAcAAAARAAAAEgAAAAsAAAAIAAAABQAAAAAAAACwOAAANQAAADYAAAA3AAAAAQAAAAYAAAAOAAAAAAAAANA4AAA4AAAAOQAAADcAAAACAAAABwAAAA8AAAAAAAAA4DgAADoAAAA7AAAANwAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAAAAAAACA5AAA8AAAAPQAAADcAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAAAAAAABYOQAAPgAAAD8AAAA3AAAAAwAAAAQAAAAXAAAABQAAABgAAAABAAAAAgAAAAYAAAAAAAAAmDkAAEAAAABBAAAANwAAAAcAAAAIAAAAGQAAAAkAAAAaAAAAAwAAAAQAAAAKAAAAAAAAANA5AABCAAAAQwAAADcAAAATAAAAGwAAABwAAAAdAAAAHgAAAB8AAAABAAAA+P///9A5AAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAAAAAAAg6AABEAAAARQAAADcAAAAbAAAAIAAAACEAAAAiAAAAIwAAACQAAAACAAAA+P///wg6AAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAAAAAAJQAAAG0AAAAvAAAAJQAAAGQAAAAvAAAAJQAAAHkAAAAAAAAAJQAAAEkAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAHAAAAAAAAAAJQAAAGEAAAAgAAAAJQAAAGIAAAAgAAAAJQAAAGQAAAAgAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAFkAAAAAAAAAQQAAAE0AAAAAAAAAUAAAAE0AAAAAAAAASgAAAGEAAABuAAAAdQAAAGEAAAByAAAAeQAAAAAAAABGAAAAZQAAAGIAAAByAAAAdQAAAGEAAAByAAAAeQAAAAAAAABNAAAAYQAAAHIAAABjAAAAaAAAAAAAAABBAAAAcAAAAHIAAABpAAAAbAAAAAAAAABNAAAAYQAAAHkAAAAAAAAASgAAAHUAAABuAAAAZQAAAAAAAABKAAAAdQAAAGwAAAB5AAAAAAAAAEEAAAB1AAAAZwAAAHUAAABzAAAAdAAAAAAAAABTAAAAZQAAAHAAAAB0AAAAZQAAAG0AAABiAAAAZQAAAHIAAAAAAAAATwAAAGMAAAB0AAAAbwAAAGIAAABlAAAAcgAAAAAAAABOAAAAbwAAAHYAAABlAAAAbQAAAGIAAABlAAAAcgAAAAAAAABEAAAAZQAAAGMAAABlAAAAbQAAAGIAAABlAAAAcgAAAAAAAABKAAAAYQAAAG4AAAAAAAAARgAAAGUAAABiAAAAAAAAAE0AAABhAAAAcgAAAAAAAABBAAAAcAAAAHIAAAAAAAAASgAAAHUAAABuAAAAAAAAAEoAAAB1AAAAbAAAAAAAAABBAAAAdQAAAGcAAAAAAAAAUwAAAGUAAABwAAAAAAAAAE8AAABjAAAAdAAAAAAAAABOAAAAbwAAAHYAAAAAAAAARAAAAGUAAABjAAAAAAAAAFMAAAB1AAAAbgAAAGQAAABhAAAAeQAAAAAAAABNAAAAbwAAAG4AAABkAAAAYQAAAHkAAAAAAAAAVAAAAHUAAABlAAAAcwAAAGQAAABhAAAAeQAAAAAAAABXAAAAZQAAAGQAAABuAAAAZQAAAHMAAABkAAAAYQAAAHkAAAAAAAAAVAAAAGgAAAB1AAAAcgAAAHMAAABkAAAAYQAAAHkAAAAAAAAARgAAAHIAAABpAAAAZAAAAGEAAAB5AAAAAAAAAFMAAABhAAAAdAAAAHUAAAByAAAAZAAAAGEAAAB5AAAAAAAAAFMAAAB1AAAAbgAAAAAAAABNAAAAbwAAAG4AAAAAAAAAVAAAAHUAAABlAAAAAAAAAFcAAABlAAAAZAAAAAAAAABUAAAAaAAAAHUAAAAAAAAARgAAAHIAAABpAAAAAAAAAFMAAABhAAAAdAAAAAAAAAAAAAAAODoAAEYAAABHAAAANwAAAAEAAAAAAAAAYDoAAEgAAABJAAAANwAAAAIAAAAAAAAAgDoAAEoAAABLAAAANwAAACMAAAAkAAAABwAAAAgAAAAJAAAACgAAACUAAAALAAAADAAAAAAAAACoOgAATAAAAE0AAAA3AAAAJgAAACcAAAANAAAADgAAAA8AAAAQAAAAKAAAABEAAAASAAAAAAAAAMg6AABOAAAATwAAADcAAAApAAAAKgAAABMAAAAUAAAAFQAAABYAAAArAAAAFwAAABgAAAAAAAAA6DoAAFAAAABRAAAANwAAACwAAAAtAAAAGQAAABoAAAAbAAAAHAAAAC4AAAAdAAAAHgAAAAAAAAAIOwAAUgAAAFMAAAA3AAAAAwAAAAQAAAAAAAAAMDsAAFQAAABVAAAANwAAAAUAAAAGAAAAAAAAAFg7AABWAAAAVwAAADcAAAABAAAAJQAAAAAAAACAOwAAWAAAAFkAAAA3AAAAAgAAACYAAAAAAAAAqDsAAFoAAABbAAAANwAAABAAAAAGAAAAHwAAAAAAAADQOwAAXAAAAF0AAAA3AAAAEQAAAAcAAAAgAAAAAAAAACg8AABeAAAAXwAAADcAAAADAAAABAAAAAsAAAAvAAAAMAAAAAwAAAAxAAAAAAAAAPA7AABeAAAAYAAAADcAAAADAAAABAAAAAsAAAAvAAAAMAAAAAwAAAAxAAAAAAAAAFg8AABhAAAAYgAAADcAAAAFAAAABgAAAA0AAAAyAAAAMwAAAA4AAAA0AAAAAAAAAJg8AABjAAAAZAAAADcAAAAAAAAAqDwAAGUAAABmAAAANwAAAAwAAAASAAAADQAAABMAAAAOAAAAAwAAABQAAAAPAAAAAAAAAPA8AABnAAAAaAAAADcAAAA1AAAANgAAACEAAAAiAAAAIwAAAAAAAAAAPQAAaQAAAGoAAAA3AAAANwAAADgAAAAkAAAAJQAAACYAAABmAAAAYQAAAGwAAABzAAAAZQAAAAAAAAB0AAAAcgAAAHUAAABlAAAAAAAAAAAAAADAOAAAXgAAAGsAAAA3AAAAAAAAANA8AABeAAAAbAAAADcAAAAVAAAABAAAAAUAAAAGAAAADwAAABYAAAAQAAAAFwAAABEAAAAHAAAAGAAAABAAAAAAAAAAODwAAF4AAABtAAAANwAAAAcAAAAIAAAAEQAAADkAAAA6AAAAEgAAADsAAAAAAAAAeDwAAF4AAABuAAAANwAAAAkAAAAKAAAAEwAAADwAAAA9AAAAFAAAAD4AAAAAAAAAADwAAF4AAABvAAAANwAAAAMAAAAEAAAACwAAAC8AAAAwAAAADAAAADEAAAAAAAAAADoAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAAAAAAMDoAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAABFcnJvcjogbGFiZWxpbmcgd29yayBvdmVyZmxvdy4KAFVua25vd24gb3IgdW5zdXBwb3J0ZWQgbGFiZWxpbmcgdGhyZXNob2xkIG1vZGUgcmVxdWVzdGVkLiBTZXQgdG8gbWFudWFsLgoATGFiZWxpbmcgdGhyZXNob2xkIG1vZGUgc2V0IHRvICVzLgoATUFOVUFMAEFVVE9fTUVESUFOAEFVVE9fT1RTVQBBVVRPX0FEQVBUSVZFAEFVVE9fQlJBQ0tFVElORwBFcnJvcjogVW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICglZCkgcmVxdWVzdGVkLgoAQXV0byB0aHJlc2hvbGQgKGJyYWNrZXQpIG1hcmtlciBjb3VudHMgLVslM2Q6ICUzZF0gWyUzZDogJTNkXSBbJTNkOiAlM2RdKy4KAEF1dG8gdGhyZXNob2xkIChicmFja2V0KSBhZGp1c3RlZCB0aHJlc2hvbGQgdG8gJWQuCgBtZWRpYW4AT3RzdQBBdXRvIHRocmVzaG9sZCAoJXMpIGFkanVzdGVkIHRocmVzaG9sZCB0byAlZC4KAD8/PyAxCgA/Pz8gMgoAPz8/IDMKAEVycm9yOiB1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQuCgBFcnJvcjogTlVMTCBwYXR0SGFuZGxlLgoARXJyb3I6IGNhbid0IGxvYWQgcGF0dGVybiBmcm9tIE5VTEwgYnVmZmVyLgoARXJyb3I6IG91dCBvZiBtZW1vcnkuCgAgCQoNAFBhdHRlcm4gRGF0YSByZWFkIGVycm9yISEKAEVycm9yIHJlYWRpbmcgcGF0dGVybiBmaWxlICclcycuCgBFcnJvciAoJWQpOiB1bmFibGUgdG8gb3BlbiBjYW1lcmEgcGFyYW1ldGVycyBmaWxlICIlcyIgZm9yIHJlYWRpbmcuCgBFcnJvciAoJWQpOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGZpbGUgbGVuZ3RoLgBFcnJvcjogc3VwcGxpZWQgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYW4gQVJUb29sS2l0IGNhbWVyYSBwYXJhbWV0ZXIgZmlsZS4KAEVycm9yICglZCk6IHVuYWJsZSB0byByZWFkIGZyb20gZmlsZS4AYXJnbENhbWVyYUZydXN0dW1SSCgpOiBhclBhcmFtRGVjb21wTWF0KCkgaW5kaWNhdGVkIHBhcmFtZXRlciBlcnJvci4KAEVycm9yOiBpY3BHZXRKX1VfWGMARXJyb3IgMTogaWNwR2V0SW5pdFh3MlhjCgBFcnJvciAyOiBpY3BHZXRJbml0WHcyWGMKAEVycm9yIDM6IGljcEdldEluaXRYdzJYYwoARXJyb3IgNDogaWNwR2V0SW5pdFh3MlhjCgBFcnJvciA1OiBpY3BHZXRJbml0WHcyWGMKAEVycm9yIDY6IGljcEdldEluaXRYdzJYYwoARXJyb3IgNzogaWNwR2V0SW5pdFh3MlhjCgBFcnJvcjogdW5hYmxlIHRvIG9wZW4gbXVsdGltYXJrZXIgY29uZmlnIGZpbGUgJyVzJy4KAEVycm9yIHByb2Nlc3NpbmcgbXVsdGltYXJrZXIgY29uZmlnIGZpbGUgJyVzJzogRmlyc3QgbGluZSBtdXN0IGJlIG51bWJlciBvZiBtYXJrZXIgY29uZmlncyB0byByZWFkLgoAJWxsdSVjAEVycm9yIHByb2Nlc3NpbmcgbXVsdGltYXJrZXIgY29uZmlnIGZpbGUgJyVzJzogcGF0dGVybiAnJXMnIHNwZWNpZmllZCBpbiBtdWx0aW1hcmtlciBjb25maWd1cmF0aW9uIHdoaWxlIGluIGJhcmNvZGUtb25seSBtb2RlLgoARXJyb3IgcHJvY2Vzc2luZyBtdWx0aW1hcmtlciBjb25maWcgZmlsZSAnJXMnOiBVbmFibGUgdG8gZGV0ZXJtaW5lIGRpcmVjdG9yeSBuYW1lLgoARXJyb3IgcHJvY2Vzc2luZyBtdWx0aW1hcmtlciBjb25maWcgZmlsZSAnJXMnOiBVbmFibGUgdG8gbG9hZCBwYXR0ZXJuICclcycuCgAlbGYARXJyb3IgcHJvY2Vzc2luZyBtdWx0aW1hcmtlciBjb25maWcgZmlsZSAnJXMnLCBtYXJrZXIgZGVmaW5pdGlvbiAlM2Q6IEZpcnN0IGxpbmUgbXVzdCBiZSBwYXR0ZXJuIHdpZHRoLgoAJWxmICVsZiAlbGYgJWxmACVmICVmAEVycm9yIHByb2Nlc3NpbmcgbXVsdGltYXJrZXIgY29uZmlnIGZpbGUgJyVzJywgbWFya2VyIGRlZmluaXRpb24gJTNkOiBMaW5lcyAyIC0gNCBtdXN0IGJlIG1hcmtlciB0cmFuc2Zvcm0uCgBbJXNdIABkZWJ1ZwBpbmZvAHdhcm5pbmcAZXJyb3IAJXMlcwAuaXNldABFcnJvcjogdW5hYmxlIHRvIG9wZW4gZmlsZSAnJXMlcycgZm9yIHJlYWRpbmcuCgBFcnJvciByZWFkaW5nIGltYWdlU2V0LgoASW1hZ2VzZXQgY29udGFpbnMgJWQgaW1hZ2VzLgoARmFsbGluZyBiYWNrIHRvIHJlYWRpbmcgJyVzJXMnIGluIEFSVG9vbEtpdCB2NC54IGZvcm1hdC4KAEVycm9yIHJlYWRpbmcgSlBFRyBmaWxlLgoARXJyb3IgcmVhZGluZyBKUEVHIGZpbGUgaGVhZGVyLgoAJWYARmlsZSBvcGVuIGVycm9yLiAlcwoAUmVhZCBlcnJvciEhCgByAEVycm9yIG9wZW5pbmcgZmlsZSAnJXMnOiAAJXMlcwoAJWQACiMjIyBTdXJmYWNlIE5vLiVkICMjIwoAJXMAICBSZWFkIEltYWdlU2V0LgoARXJyb3Igb3BlbmluZyBmaWxlICclcy5pc2V0Jy4KACAgICBlbmQuCgAgIFJlYWQgRmVhdHVyZVNldC4KAEVycm9yIG9wZW5pbmcgZmlsZSAnJXMuZnNldCcuCgAgIFJlYWQgTWFya2VyU2V0LgoAbXJrAEVycm9yIG9wZW5pbmcgZmlsZSAnJXMubXJrJy4KACVmICVmICVmICVmAFRyYW5zZm9ybWF0aW9uIG1hdHJpeCByZWFkIGVycm9yISEKAGpwZwBrcG1EZWxldGVSZWZEYXRhU2V0KCk6IE5VTEwgcmVmRGF0YVNldFB0cjEvcmVmRGF0YVNldFB0cjIuCgBrcG1EZWxldGVSZWZEYXRhU2V0KCk6IE5VTEwgcmVmRGF0YVNldFB0ci4KAHJiAGtwbUxvYWRSZWZEYXRhU2V0KCk6IE5VTEwgZmlsZW5hbWUvcmVmRGF0YVNldFB0ci4KAEVycm9yIGxvYWRpbmcgS1BNIGRhdGE6IHVuYWJsZSB0byBvcGVuIGZpbGUgJyVzJXMlcycgZm9yIHJlYWRpbmcuCgBFcnJvciBsb2FkaW5nIEtQTSBkYXRhOiBlcnJvciByZWFkaW5nIGRhdGEuCgBrcG1DaGFuZ2VQYWdlTm9PZlJlZkRhdGFTZXQoKTogTlVMTCByZWZEYXRhU2V0LgoAa3BtU2V0UmVmRGF0YVNldCgpOiBOVUxMIGtwbUhhbmRsZS9yZWZEYXRhU2V0LgoAa3BtU2V0UmVmRGF0YVNldCgpOiByZWZEYXRhU2V0LgoAcG9pbnRzLSVkCgBrcG1NYXRjaGluZygpOiBOVUxMIGtwbUhhbmRsZS9pbkltYWdlTHVtYS4KAFBhZ2VbJWRdICBwcmU6JTNkLCBhZnQ6JTNkLCBlcnJvciA9ICVmCgAlcy4lcwBBc3NlcnRpb24gYHB5cmFtaWQtPnNpemUoKSA+IDBgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL2RldGVjdG9ycy9Eb0dfc2NhbGVfaW52YXJpYW50X2RldGVjdG9yLmNwcABQeXJhbWlkIGlzIG5vdCBhbGxvY2F0ZWQAT2N0YXZlIG91dCBvZiByYW5nZQBTY2FsZSBvdXQgb2YgcmFuZ2UAQXNzZXJ0aW9uIGBtSW1hZ2VzLnNpemUoKSA+IDBgIGZhaWxlZCBpbiAATGFwbGFjaWFuIHB5cmFtaWQgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZABBc3NlcnRpb24gYHB5cmFtaWQtPm51bU9jdGF2ZXMoKSA+IDBgIGZhaWxlZCBpbiAAUHlyYW1pZCBkb2VzIG5vdCBjb250YWluIGFueSBsZXZlbHMAQXNzZXJ0aW9uIGBkeW5hbWljX2Nhc3Q8Y29uc3QgQmlub21pYWxQeXJhbWlkMzJmKj4ocHlyYW1pZClgIGZhaWxlZCBpbiAAT25seSBiaW5vbWlhbCBweXJhbWlkIGlzIHN1cHBvcnRlZABBc3NlcnRpb24gYGQudHlwZSgpID09IElNQUdFX0YzMmAgZmFpbGVkIGluIABPbmx5IEYzMiBpbWFnZXMgc3VwcG9ydGVkAEFzc2VydGlvbiBgaW0xLnR5cGUoKSA9PSBJTUFHRV9GMzJgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpbTIudHlwZSgpID09IElNQUdFX0YzMmAgZmFpbGVkIGluIABBc3NlcnRpb24gYGQuY2hhbm5lbHMoKSA9PSAxYCBmYWlsZWQgaW4gAE9ubHkgc2luZ2xlIGNoYW5uZWwgaW1hZ2VzIHN1cHBvcnRlZABBc3NlcnRpb24gYGltMS5jaGFubmVscygpID09IDFgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpbTIuY2hhbm5lbHMoKSA9PSAxYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgZC53aWR0aCgpID09IGltMi53aWR0aCgpYCBmYWlsZWQgaW4gAEltYWdlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgAQXNzZXJ0aW9uIGBkLmhlaWdodCgpID09IGltMi5oZWlnaHQoKWAgZmFpbGVkIGluIABJbWFnZXMgbXVzdCBoYXZlIHRoZSBzYW1lIGhlaWdodABBc3NlcnRpb24gYGltMS53aWR0aCgpID09IGltMi53aWR0aCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgaW0xLmhlaWdodCgpID09IGltMi5oZWlnaHQoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYHJvdyA8IG1IZWlnaHRgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL2ZyYW1ld29yay9pbWFnZS5oAHJvdyBvdXQgb2YgYm91bmRzAE42dmlzaW9uMjVHYXVzc2lhblNjYWxlU3BhY2VQeXJhbWlkRQBEb0cgUHlyYW1pZABOb24tbWF4IHN1cHByZXNzaW9uAFN1YnBpeGVsAHBydW5lRmVhdHVyZXMARmluZCBPcmllbnRhdGlvbnMAQXNzZXJ0aW9uIGBtQnVja2V0cy5zaXplKCkgPT0gbU51bUJ1Y2tldHNYYCBmYWlsZWQgaW4gAEJ1Y2tldHMgYXJlIG5vdCBhbGxvY2F0ZWQAQXNzZXJ0aW9uIGBtQnVja2V0c1swXS5zaXplKCkgPT0gbU51bUJ1Y2tldHNZYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgbUZlYXR1cmVQb2ludHMuc2l6ZSgpIDw9IG1NYXhOdW1GZWF0dXJlUG9pbnRzYCBmYWlsZWQgaW4gAFRvbyBtYW55IGZlYXR1cmUgcG9pbnRzAEFzc2VydGlvbiBgYnVja2V0WzBdLmZpcnN0ID49IGJ1Y2tldFtuXS5maXJzdGAgZmFpbGVkIGluIABudGhfZWxlbWVudCBmYWlsZWQAQXNzZXJ0aW9uIGBrcC5zY2FsZSA8IG1MYXBsYWNpYW5QeXJhbWlkLm51bVNjYWxlUGVyT2N0YXZlKClgIGZhaWxlZCBpbiAARmVhdHVyZSBwb2ludCBzY2FsZSBpcyBvdXQgb2YgYm91bmRzAEFzc2VydGlvbiBga3Auc2NvcmUgPT0gbGFwMS5nZXQ8ZmxvYXQ+KHkpW3hdYCBmYWlsZWQgaW4gAFNjb3JlIGlzIG5vdCBjb25zaXN0ZW50IHdpdGggdGhlIERvRyBpbWFnZQBBc3NlcnRpb24gYGxhcDAuaGVpZ2h0KCkgPT0gbGFwMS5oZWlnaHQoKSA9PSBsYXAyLmhlaWdodCgpYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9kZXRlY3RvcnMvRG9HX3NjYWxlX2ludmFyaWFudF9kZXRlY3Rvci5oAFdpZHRoL2hlaWdodCBhcmUgbm90IGNvbnNpc3RlbnQAQXNzZXJ0aW9uIGAobGFwMC5oZWlnaHQoKSA9PSBsYXAxLmhlaWdodCgpKSAmJiAoKGxhcDEuaGVpZ2h0KCk+PjEpID09IGxhcDIuaGVpZ2h0KCkpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKChsYXAwLndpZHRoKCk+PjEpID09IGxhcDEud2lkdGgoKSkgJiYgKGxhcDEud2lkdGgoKSA9PSBsYXAyLndpZHRoKCkpYCBmYWlsZWQgaW4gAEltYWdlIHNpemVzIGFyZSBpbmNvbnNpc3RlbnQAQXNzZXJ0aW9uIGAoeC0xKSA+PSAwICYmICh4KzEpIDwgbGFwMS53aWR0aCgpYCBmYWlsZWQgaW4gAHggb3V0IG9mIGJvdW5kcwBBc3NlcnRpb24gYCh5LTEpID49IDAgJiYgKHkrMSkgPCBsYXAxLmhlaWdodCgpYCBmYWlsZWQgaW4gAHkgb3V0IG9mIGJvdW5kcwBBc3NlcnRpb24gYChsYXAwLndpZHRoKCk+PjEpID09IGxhcDEud2lkdGgoKWAgZmFpbGVkIGluIABJbWFnZSBkaW1lbnNpb25zIGluY29uc2lzdGVudABBc3NlcnRpb24gYChsYXAwLndpZHRoKCk+PjEpID09IGxhcDIud2lkdGgoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYChsYXAwLmhlaWdodCgpPj4xKSA9PSBsYXAxLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKGxhcDAuaGVpZ2h0KCk+PjEpID09IGxhcDIuaGVpZ2h0KClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGAoaW50KXN0ZDo6Zmxvb3IoeCkgPT0gKGludCl4YCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9kZXRlY3RvcnMvaW50ZXJwb2xhdGUuaABmbG9vcigpIGFuZCBjYXN0IG5vdCB0aGUgc2FtZQBBc3NlcnRpb24gYChpbnQpc3RkOjpmbG9vcih5KSA9PSAoaW50KXlgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGB5cCA+PSAwICYmIHlwIDwgaGVpZ2h0YCBmYWlsZWQgaW4gAHlwIG91dCBvZiBib3VuZHMAQXNzZXJ0aW9uIGB5cF9wbHVzXzEgPj0gMCAmJiB5cF9wbHVzXzEgPCBoZWlnaHRgIGZhaWxlZCBpbiAAeXBfcGx1c18xIG91dCBvZiBib3VuZHMAQXNzZXJ0aW9uIGB4cCA+PSAwICYmIHhwIDwgd2lkdGhgIGZhaWxlZCBpbiAAeHAgb3V0IG9mIGJvdW5kcwBBc3NlcnRpb24gYHhwX3BsdXNfMSA+PSAwICYmIHhwX3BsdXNfMSA8IHdpZHRoYCBmYWlsZWQgaW4gAHhwX3BsdXNfMSBvdXQgb2YgYm91bmRzAEFzc2VydGlvbiBgdzAgPj0gMCAmJiB3MCA8PSAxLjAwMDFgIGZhaWxlZCBpbiAAT3V0IG9mIHJhbmdlAEFzc2VydGlvbiBgdzEgPj0gMCAmJiB3MSA8PSAxLjAwMDFgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGB3MiA+PSAwICYmIHcyIDw9IDEuMDAwMWAgZmFpbGVkIGluIABBc3NlcnRpb24gYHczID49IDAgJiYgdzMgPD0gMS4wMDAxYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKHcwK3cxK3cyK3czKSA8PSAxLjAwMDFgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGAoeC0xKSA+PSAwICYmICh4KzEpIDwgaW0ud2lkdGgoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYCh5LTEpID49IDAgJiYgKHkrMSkgPCBpbS5oZWlnaHQoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYGxhcDAud2lkdGgoKSA9PSBsYXAxLndpZHRoKClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBsYXAwLmhlaWdodCgpID09IGxhcDEuaGVpZ2h0KClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGB4X2Rpdl8yLTAuNWYgPj0gMGAgZmFpbGVkIGluIAB4X2Rpdl8yIG91dCBvZiBib3VuZHMgb3V0IG9mIGJvdW5kcyBmb3IgaW50ZXJwb2xhdGlvbgBBc3NlcnRpb24gYHlfZGl2XzItMC41ZiA+PSAwYCBmYWlsZWQgaW4gAHlfZGl2XzIgb3V0IG9mIGJvdW5kcyBvdXQgb2YgYm91bmRzIGZvciBpbnRlcnBvbGF0aW9uAEFzc2VydGlvbiBgeF9kaXZfMiswLjVmIDwgbGFwMi53aWR0aCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgeV9kaXZfMiswLjVmIDwgbGFwMi5oZWlnaHQoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYGxhcDAud2lkdGgoKSA9PSBsYXAyLndpZHRoKClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBsYXAwLmhlaWdodCgpID09IGxhcDIuaGVpZ2h0KClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpbTAuaGVpZ2h0KCkgPT0gaW0xLmhlaWdodCgpYCBmYWlsZWQgaW4gAEhlaWdodCBpcyBpbmNvbnNpc3RlbnQAQXNzZXJ0aW9uIGBpbTAuaGVpZ2h0KCkgPT0gaW0yLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKGltMS5oZWlnaHQoKT4+MSkgPT0gaW0yLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKGltMC5oZWlnaHQoKT4+MSkgPT0gaW0xLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKGltMC5oZWlnaHQoKT4+MSkgPT0gaW0yLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgaW5kZXggPCBtSW1hZ2VzLnNpemUoKWAgZmFpbGVkIGluIABJbmRleCBpcyBvdXQgb2YgcmFuZ2UATjZ2aXNpb24xOEJpbm9taWFsUHlyYW1pZDMyZkUAQXNzZXJ0aW9uIGB3aWR0aCA+PSA1YCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9kZXRlY3RvcnMvZ2F1c3NpYW5fc2NhbGVfc3BhY2VfcHlyYW1pZC5jcHAASW1hZ2UgaXMgdG9vIHNtYWxsAEFzc2VydGlvbiBgaGVpZ2h0ID49IDVgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpbWFnZS50eXBlKCkgPT0gSU1BR0VfVUlOVDhgIGZhaWxlZCBpbiAASW1hZ2UgbXVzdCBiZSBncmF5c2NhbGUAQXNzZXJ0aW9uIGBpbWFnZS5jaGFubmVscygpID09IDFgIGZhaWxlZCBpbiAASW1hZ2UgbXVzdCBoYXZlIDEgY2hhbm5lbABBc3NlcnRpb24gYG1QeXJhbWlkLnNpemUoKSA9PSBtTnVtT2N0YXZlcyptTnVtU2NhbGVzUGVyT2N0YXZlYCBmYWlsZWQgaW4gAFB5cmFtaWQgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZCB5ZXQAQXNzZXJ0aW9uIGBpbWFnZS53aWR0aCgpID09IG1QeXJhbWlkWzBdLndpZHRoKClgIGZhaWxlZCBpbiAASW1hZ2Ugb2Ygd3Jvbmcgc2l6ZSBmb3IgcHlyYW1pZABBc3NlcnRpb24gYGltYWdlLmhlaWdodCgpID09IG1QeXJhbWlkWzBdLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgZHN0LnR5cGUoKSA9PSBJTUFHRV9GMzJgIGZhaWxlZCBpbiAARGVzdGluYXRpb24gaW1hZ2Ugc2hvdWxkIGJlIGEgZmxvYXQAVW5rbm93biBpbWFnZSB0eXBlAFVuc3VwcG9ydGVkIGltYWdlIHR5cGUATjZ2aXNpb245RXhjZXB0aW9uRQBBc3NlcnRpb24gYGltLndpZHRoKCkgPT0gaW0uc3RlcCgpL3NpemVvZihmbG9hdClgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL2RldGVjdG9ycy9vcmllbnRhdGlvbl9hc3NpZ25tZW50LmNwcABTdGVwIHNpemUgbXVzdCBiZSBlcXVhbCB0byB3aWR0aCBmb3Igbm93AEFzc2VydGlvbiBgeCA+PSAwYCBmYWlsZWQgaW4gAHggbXVzdCBiZSBwb3NpdGl2ZQBBc3NlcnRpb24gYHggPCBtR3JhZGllbnRzW29jdGF2ZSptTnVtU2NhbGVzUGVyT2N0YXZlK3NjYWxlXS53aWR0aCgpYCBmYWlsZWQgaW4gAHggbXVzdCBiZSBsZXNzIHRoYW4gdGhlIGltYWdlIHdpZHRoAEFzc2VydGlvbiBgeSA+PSAwYCBmYWlsZWQgaW4gAHkgbXVzdCBiZSBwb3NpdGl2ZQBBc3NlcnRpb24gYHkgPCBtR3JhZGllbnRzW29jdGF2ZSptTnVtU2NhbGVzUGVyT2N0YXZlK3NjYWxlXS5oZWlnaHQoKWAgZmFpbGVkIGluIAB5IG11c3QgYmUgbGVzcyB0aGFuIHRoZSBpbWFnZSBoZWlnaHQAQXNzZXJ0aW9uIGBnLmNoYW5uZWxzKCkgPT0gMmAgZmFpbGVkIGluIABOdW1iZXIgb2YgY2hhbm5lbHMgc2hvdWxkIGJlIDIAQXNzZXJ0aW9uIGBtYXhfaGVpZ2h0ID4gMGAgZmFpbGVkIGluIABNYXhpbXVtIGJpbiBzaG91bGQgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBoaXN0ICE9IE5VTExgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL2RldGVjdG9ycy9vcmllbnRhdGlvbl9hc3NpZ25tZW50LmgASGlzdG9ncmFtIHBvaW50ZXIgaXMgTlVMTABBc3NlcnRpb24gYChmYmluKzAuNWYpID4gMCAmJiAoZmJpbi0wLjVmKSA8IG51bV9iaW5zYCBmYWlsZWQgaW4gAERlY2ltYWwgYmluIHBvc2l0aW9uIGluZGV4IG91dCBvZiByYW5nZQBBc3NlcnRpb24gYG1hZ25pdHVkZSA+PSAwYCBmYWlsZWQgaW4gAE1hZ25pdHVkZSBjYW5ub3QgYmUgbmVnYXRpdmUAQXNzZXJ0aW9uIGBudW1fYmlucyA+PSAwYCBmYWlsZWQgaW4gAE51bWJlciBiaW5zIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGB3MSA+PSAwYCBmYWlsZWQgaW4gAHcxIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGB3MiA+PSAwYCBmYWlsZWQgaW4gAHcyIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBiMSA+PSAwICYmIGIxIDwgbnVtX2JpbnNgIGZhaWxlZCBpbiAAYjEgYmluIGluZGV4IG91dCBvZiByYW5nZQBBc3NlcnRpb24gYGIyID49IDAgJiYgYjIgPCBudW1fYmluc2AgZmFpbGVkIGluIABiMiBiaW4gaW5kZXggb3V0IG9mIHJhbmdlAElEIGFscmVhZHkgZXhpc3RzAEJ1aWxkIFB5cmFtaWQARXh0cmFjdCBGZWF0dXJlcwBBc3NlcnRpb24gYGFzc2lnbm1lbnQuc2l6ZSgpID09IG51bV9pbmRpY2VzYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9tYXRjaGVycy9iaW5hcnlfaGllcmFyY2hpY2FsX2NsdXN0ZXJpbmcuaABBc3NpZ25tZW50IHNpemUgd3JvbmcAQXNzZXJ0aW9uIGBhc3NpZ25tZW50W2ldICE9IC0xYCBmYWlsZWQgaW4gAEFzc2lnbm1lbnQgaXMgaW52YWxpZABBc3NlcnRpb24gYGFzc2lnbm1lbnRbaV0gPCBudW1faW5kaWNlc2AgZmFpbGVkIGluIABBc3NpZ25tZW50IG91dCBvZiByYW5nZQBBc3NlcnRpb24gYGluZGljZXNbYXNzaWdubWVudFtpXV0gPCBudW1fZmVhdHVyZXNgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpdC0+c2Vjb25kLnNpemUoKSAhPSAwYCBmYWlsZWQgaW4gAENsdXN0ZXIgbXVzdCBoYXZlIGF0bGVhc2V0IDEgZmVhdHVyZQBBc3NlcnRpb24gYG1LID09IG1DZW50ZXJzLnNpemUoKWAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvbWF0Y2hlcnMva21lZG9pZHMuaABrIHNob3VsZCBtYXRjaCB0aGUgbnVtYmVyIG9mIGNsdXN0ZXIgY2VudGVycwBBc3NlcnRpb24gYG51bV9mZWF0dXJlcyA+IDBgIGZhaWxlZCBpbiAATnVtYmVyIG9mIGZlYXR1cmVzIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBudW1faW5kaWNlcyA8PSBudW1fZmVhdHVyZXNgIGZhaWxlZCBpbiAATW9yZSBpbmRpY2VzIHRoYW4gZmVhdHVyZXMAQXNzZXJ0aW9uIGBudW1faW5kaWNlcyA+PSBtS2AgZmFpbGVkIGluIABOb3QgZW5vdWdoIGZlYXR1cmVzAEFzc2lnbm1lbnQgc2l6ZSBpcyBpbmNvcnJlY3QAQXNzZXJ0aW9uIGBudW1fY2VudGVycyA+IDBgIGZhaWxlZCBpbiAAVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCAxIGNlbnRlcgAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvbWF0Y2hlcnMvdmlzdWFsX2RhdGFiYXNlLmgAQXNzZXJ0aW9uIGBkZXRlY3RvcmAgZmFpbGVkIGluIABEZXRlY3RvciBpcyBOVUxMAEFzc2VydGlvbiBgcHlyYW1pZC0+aW1hZ2VzKCkuc2l6ZSgpID4gMGAgZmFpbGVkIGluIABQeXJhbWlkIGlzIGVtcHR5AEFzc2VydGlvbiBgcHlyYW1pZC0+aW1hZ2VzKClbMF0ud2lkdGgoKSA9PSBkZXRlY3Rvci0+d2lkdGgoKWAgZmFpbGVkIGluIABQeXJhbWlkIGFuZCBkZXRlY3RvciBzaXplIG1pc21hdGNoAEFzc2VydGlvbiBgcHlyYW1pZC0+aW1hZ2VzKClbMF0uaGVpZ2h0KCkgPT0gZGV0ZWN0b3ItPmhlaWdodCgpYCBmYWlsZWQgaW4gAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42dmlzaW9uOEtleWZyYW1lSUxpOTZFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZ2aXNpb244S2V5ZnJhbWVJTGk5NkVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVOU185YWxsb2NhdG9ySVMzX0VFRUUAWyVzXSBbJXNdIFslc10gOiBGb3VuZCAlZCBmZWF0dXJlcyBpbiBxdWVyeQBib29sIHZpc2lvbjo6VmlzdWFsRGF0YWJhc2U8dmlzaW9uOjpGUkVBS0V4dHJhY3RvciwgdmlzaW9uOjpCaW5hcnlGZWF0dXJlU3RvcmUsIHZpc2lvbjo6QmluYXJ5RmVhdHVyZU1hdGNoZXI8OTY+ID46OnF1ZXJ5KGNvbnN0IHZpc2lvbjo6R2F1c3NpYW5TY2FsZVNwYWNlUHlyYW1pZCAqKSBbRkVBVFVSRV9FWFRSQUNUT1IgPSB2aXNpb246OkZSRUFLRXh0cmFjdG9yLCBTVE9SRSA9IHZpc2lvbjo6QmluYXJ5RmVhdHVyZVN0b3JlLCBNQVRDSEVSID0gdmlzaW9uOjpCaW5hcnlGZWF0dXJlTWF0Y2hlcjw5Nj5dAEZpbmQgTWF0Y2hlcyAoMSkASG91Z2ggVm90aW5nICgxKQBGaW5kIEhvdWdoIE1hdGNoZXMgKDEpAEVzdGltYXRlIEhvbW9ncmFwaHkgKDEpAEZpbmQgSW5saWVycyAoMSkARmluZCBNYXRjaGVzICgyKQBIb3VnaCBWb3RpbmcgKDIpAEZpbmQgSG91Z2ggTWF0Y2hlcyAoMikARXN0aW1hdGUgSG9tb2dyYXBoeSAoMikARmluZCBJbmxpZXJzICgyKQBBc3NlcnRpb24gYDBgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL21hdGNoZXJzL2ZlYXR1cmVfbWF0Y2hlci1pbmxpbmUuaABGYWlsZWQgdG8gY29tcHV0ZSBtYXRyaXggaW52ZXJzZQBBc3NlcnRpb24gYGJlc3RfaW5kZXggIT0gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKWAgZmFpbGVkIGluIABTb21ldGhpbmcgc3RyYW5nZQBBc3NlcnRpb24gYG1NYXRjaGVzLnNpemUoKSA8PSBmZWF0dXJlczEtPnNpemUoKWAgZmFpbGVkIGluIABOdW1iZXIgb2YgbWF0Y2hlcyBzaG91bGQgYmUgbG93ZXIAQXNzZXJ0aW9uIGBoeXAuc2l6ZSgpID49IDkqbWF4X251bV9oeXBvdGhlc2VzYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9ob21vZ3JhcGh5X2VzdGltYXRpb24vcm9idXN0X2hvbW9ncmFwaHkuaABoeXAgdmVjdG9yIHNob3VsZCBiZSBvZiBzaXplIDkqbWF4X251bV9oeXBvdGhlc2VzAEFzc2VydGlvbiBgdG1wX2kuc2l6ZSgpID49IG51bV9wb2ludHNgIGZhaWxlZCBpbiAAdG1wX2kgdmVjdG9yIHNob3VsZCBiZSBvZiBzaXplIG51bV9wb2ludHMAQXNzZXJ0aW9uIGBoeXBfY29zdHMuc2l6ZSgpID49IG1heF9udW1faHlwb3RoZXNlc2AgZmFpbGVkIGluIABoeXBfY29zdHMgdmVjdG9yIHNob3VsZCBiZSBvZiBzaXplIG1heF9udW1faHlwb3RoZXNlcwBBc3NlcnRpb24gYG4gPD0gaW5fbWF0Y2hlcy5zaXplKClgIGZhaWxlZCBpbiAAU2hvdWxkIGJlIHRoZSBzYW1lAEFzc2VydGlvbiBgZGlzdEJpbkFuZ2xlID49IDBgIGZhaWxlZCBpbiAAZGlzdEJpbkFuZ2xlIG11c3Qgbm90IGJlIG5lZ2F0aXZlAEFzc2VydGlvbiBgbVJvb3QuZ2V0KClgIGZhaWxlZCBpbiAAUm9vdCBjYW5ub3QgYmUgTlVMTABBc3NlcnRpb24gYG1pbmkgIT0gLTFgIGZhaWxlZCBpbiAATWluaW11bSBpbmRleCBub3Qgc2V0AEFzc2VydGlvbiBgeCA+PSBtTWluWGAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvbWF0Y2hlcnMvaG91Z2hfc2ltaWxhcml0eV92b3RpbmcuaAB4IG91dCBvZiByYW5nZQBBc3NlcnRpb24gYHggPCBtTWF4WGAgZmFpbGVkIGluIABBc3NlcnRpb24gYHkgPj0gbU1pbllgIGZhaWxlZCBpbiAAeSBvdXQgb2YgcmFuZ2UAQXNzZXJ0aW9uIGB5IDwgbU1heFlgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBhbmdsZSA+IC1QSWAgZmFpbGVkIGluIABhbmdsZSBvdXQgb2YgcmFuZ2UAQXNzZXJ0aW9uIGBhbmdsZSA8PSBQSWAgZmFpbGVkIGluIABBc3NlcnRpb24gYHNjYWxlID49IG1NaW5TY2FsZWAgZmFpbGVkIGluIABzY2FsZSBvdXQgb2YgcmFuZ2UAQXNzZXJ0aW9uIGBzY2FsZSA8IG1NYXhTY2FsZWAgZmFpbGVkIGluIABBc3NlcnRpb24gYGluZGV4ID49IDBgIGZhaWxlZCBpbiAAaW5kZXggb3V0IG9mIHJhbmdlAEFzc2VydGlvbiBgYmluWCA+PSAwYCBmYWlsZWQgaW4gAGJpblggb3V0IG9mIHJhbmdlAEFzc2VydGlvbiBgYmluWCA8IG1OdW1YQmluc2AgZmFpbGVkIGluIABBc3NlcnRpb24gYGJpblkgPj0gMGAgZmFpbGVkIGluIABiaW5ZIG91dCBvZiByYW5nZQBBc3NlcnRpb24gYGJpblkgPCBtTnVtWUJpbnNgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBiaW5BbmdsZSA+PSAwYCBmYWlsZWQgaW4gAGJpbkFuZ2xlIG91dCBvZiByYW5nZQBBc3NlcnRpb24gYGJpbkFuZ2xlIDwgbU51bUFuZ2xlQmluc2AgZmFpbGVkIGluIABBc3NlcnRpb24gYGJpblNjYWxlID49IDBgIGZhaWxlZCBpbiAAYmluU2NhbGUgb3V0IG9mIHJhbmdlAEFzc2VydGlvbiBgYmluU2NhbGUgPCBtTnVtU2NhbGVCaW5zYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgaW5kZXggPD0gKGJpblggKyBiaW5ZKm1OdW1YQmlucyArIGJpbkFuZ2xlKm1OdW1YQmlucyptTnVtWUJpbnMgKyBiaW5TY2FsZSptTnVtWEJpbnMqbU51bVlCaW5zKm1OdW1BbmdsZUJpbnMpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgc2l6ZSA+IDBgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL21hdGNoZXJzL2hvdWdoX3NpbWlsYXJpdHlfdm90aW5nLmNwcABzaXplIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBtUmVmSW1hZ2VXaWR0aCA+IDBgIGZhaWxlZCBpbiAAd2lkdGggbXVzdCBiZSBwb3NpdGl2ZQBBc3NlcnRpb24gYG1SZWZJbWFnZUhlaWdodCA+IDBgIGZhaWxlZCBpbiAAaGVpZ2h0IG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBuID4gMGAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvdXRpbHMvcGFydGlhbF9zb3J0LmgAbiBtdXN0IGJlIHBvc2l0aXZlAEFzc2VydGlvbiBgayA+IDBgIGZhaWxlZCBpbiAAayBtdXN0IGJlIHBvc2l0aXZlAEFzc2VydGlvbiBgcHlyYW1pZGAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvbWF0Y2hlcnMvZnJlYWsuaABQeXJhbWlkIGlzIE5VTEwAQXNzZXJ0aW9uIGBzdG9yZS5zaXplKCkgPT0gcG9pbnRzLnNpemUoKWAgZmFpbGVkIGluIABGZWF0dXJlIHN0b3JlIGhhcyBub3QgYmVlbiBhbGxvY2F0ZWQAQXNzZXJ0aW9uIGBudW1fcG9pbnRzID09IHBvaW50cy5zaXplKClgIGZhaWxlZCBpbiAAU2hvdWxkIGJlIHNhbWUgc2l6ZQBBc3NlcnRpb24gYG9jdGF2ZSA+PSAwYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9kZXRlY3RvcnMvZ2F1c3NpYW5fc2NhbGVfc3BhY2VfcHlyYW1pZC5oAE9jdGF2ZSBtdXN0IGJlIHBvc2l0aXZlAEFzc2VydGlvbiBgb2N0YXZlIDwgbU51bU9jdGF2ZXNgIGZhaWxlZCBpbiAAT2N0YXZlIG11c3QgYmUgbGVzcyB0aGFuIG51bWJlciBvZiBvY3RhdmVzAEFzc2VydGlvbiBgc2NhbGUgPj0gMGAgZmFpbGVkIGluIABTY2FsZSBtdXN0IGJlIHBvc2l0aXZlAEFzc2VydGlvbiBgc2NhbGUgPCBtTnVtU2NhbGVzUGVyT2N0YXZlYCBmYWlsZWQgaW4gAFNjYWxlIG11c3QgYmUgbGVzcyB0aGFuIG51bWJlciBvZiBzY2FsZSBwZXIgb2N0YXZlACVtLSVkLSVZLSVILSVNLSVTAEFzc2VydGlvbiBgd2lkdGggPiAwYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9mcmFtZXdvcmsvaW1hZ2UuY3BwAFdpZHRoIGNhbm5vdCBiZSB6ZXJvAEFzc2VydGlvbiBgaGVpZ2h0ID4gMGAgZmFpbGVkIGluIABIZWlnaHQgY2Fubm90IGJlIHplcm8AQXNzZXJ0aW9uIGBzdGVwID49IHdpZHRoYCBmYWlsZWQgaW4gAFN0ZXAgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdGhlIHdpZHRoAEFzc2VydGlvbiBgY2hhbm5lbHMgPiAwYCBmYWlsZWQgaW4gAE51bWJlciBvZiBjaGFubmVscyBjYW5ub3QgYmUgemVybwBBc3NlcnRpb24gYG1EYXRhLmdldCgpYCBmYWlsZWQgaW4gAERhdGEgcG9pbnRlciBpcyBOVUxMAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSWhFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQaE5TXzE0ZGVmYXVsdF9kZWxldGVJaEVFTlNfOWFsbG9jYXRvckloRUVFRQBJbnZhbGlkIGltYWdlIHR5cGUAMTZOdWxsQXJyYXlEZWxldGVySWhFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBoMTZOdWxsQXJyYXlEZWxldGVySWhFTlNfOWFsbG9jYXRvckloRUVFRQBBc3NlcnRpb24gYG1TdGFydFRpbWUgPj0gMGAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvZnJhbWV3b3JrL3RpbWVycy5jcHAAIGxpbmUgADogAENsb2NrIGhhcyBub3QgYmVlbiBzdGFydGVkAEFzc2VydGlvbiBgbVN0b3BUaW1lID49IDBgIGZhaWxlZCBpbiAAQ2xvY2sgaGFzIG5vdCBiZWVuIHN0b3BwZWQAWyVzXSBbJXNdIFslc10gOiAlczogJWYgbXMAIElORk8gIAB2aXNpb246OlNjb3BlZFRpbWVyOjp+U2NvcGVkVGltZXIoKQBzZXR1cAB0ZWFyZG93bgBzZXR1cEFSMgBfYWRkTWFya2VyAF9hZGRNdWx0aU1hcmtlcgBfYWRkTkZUTWFya2VyAGdldE11bHRpTWFya2VyTnVtAGdldE11bHRpTWFya2VyQ291bnQAX2xvYWRDYW1lcmEAc2V0TWFya2VySW5mb0RpcgBzZXRNYXJrZXJJbmZvVmVydGV4AGdldFRyYW5zTWF0U3F1YXJlAGdldFRyYW5zTWF0U3F1YXJlQ29udABnZXRUcmFuc01hdE11bHRpU3F1YXJlAGdldFRyYW5zTWF0TXVsdGlTcXVhcmVSb2J1c3QAZGV0ZWN0TWFya2VyAGdldE1hcmtlck51bQBkZXRlY3RORlRNYXJrZXIAZ2V0TXVsdGlFYWNoTWFya2VyAGdldE1hcmtlcgBnZXRORlRNYXJrZXIAc2V0RGVidWdNb2RlAGdldERlYnVnTW9kZQBnZXRQcm9jZXNzaW5nSW1hZ2UAc2V0TG9nTGV2ZWwAZ2V0TG9nTGV2ZWwAc2V0UHJvamVjdGlvbk5lYXJQbGFuZQBnZXRQcm9qZWN0aW9uTmVhclBsYW5lAHNldFByb2plY3Rpb25GYXJQbGFuZQBnZXRQcm9qZWN0aW9uRmFyUGxhbmUAc2V0VGhyZXNob2xkTW9kZQBnZXRUaHJlc2hvbGRNb2RlAHNldFRocmVzaG9sZABnZXRUaHJlc2hvbGQAc2V0UGF0dGVybkRldGVjdGlvbk1vZGUAZ2V0UGF0dGVybkRldGVjdGlvbk1vZGUAc2V0UGF0dFJhdGlvAGdldFBhdHRSYXRpbwBzZXRNYXRyaXhDb2RlVHlwZQBnZXRNYXRyaXhDb2RlVHlwZQBzZXRMYWJlbGluZ01vZGUAZ2V0TGFiZWxpbmdNb2RlAHNldEltYWdlUHJvY01vZGUAZ2V0SW1hZ2VQcm9jTW9kZQBFUlJPUl9BUkNPTlRST0xMRVJfTk9UX0ZPVU5EAEVSUk9SX01VTFRJTUFSS0VSX05PVF9GT1VORABFUlJPUl9NQVJLRVJfSU5ERVhfT1VUX09GX0JPVU5EUwBBUl9ERUJVR19ESVNBQkxFAEFSX0RFQlVHX0VOQUJMRQBBUl9ERUZBVUxUX0RFQlVHX01PREUAQVJfTEFCRUxJTkdfV0hJVEVfUkVHSU9OAEFSX0xBQkVMSU5HX0JMQUNLX1JFR0lPTgBBUl9ERUZBVUxUX0xBQkVMSU5HX01PREUAQVJfREVGQVVMVF9MQUJFTElOR19USFJFU0gAQVJfSU1BR0VfUFJPQ19GUkFNRV9JTUFHRQBBUl9JTUFHRV9QUk9DX0ZJRUxEX0lNQUdFAEFSX0RFRkFVTFRfSU1BR0VfUFJPQ19NT0RFAEFSX1RFTVBMQVRFX01BVENISU5HX0NPTE9SAEFSX1RFTVBMQVRFX01BVENISU5HX01PTk8AQVJfTUFUUklYX0NPREVfREVURUNUSU9OAEFSX1RFTVBMQVRFX01BVENISU5HX0NPTE9SX0FORF9NQVRSSVgAQVJfVEVNUExBVEVfTUFUQ0hJTkdfTU9OT19BTkRfTUFUUklYAEFSX0RFRkFVTFRfUEFUVEVSTl9ERVRFQ1RJT05fTU9ERQBBUl9VU0VfVFJBQ0tJTkdfSElTVE9SWQBBUl9OT1VTRV9UUkFDS0lOR19ISVNUT1JZAEFSX1VTRV9UUkFDS0lOR19ISVNUT1JZX1YyAEFSX0RFRkFVTFRfTUFSS0VSX0VYVFJBQ1RJT05fTU9ERQBBUl9NQVhfTE9PUF9DT1VOVABBUl9MT09QX0JSRUFLX1RIUkVTSABBUl9MT0dfTEVWRUxfREVCVUcAQVJfTE9HX0xFVkVMX0lORk8AQVJfTE9HX0xFVkVMX1dBUk4AQVJfTE9HX0xFVkVMX0VSUk9SAEFSX0xPR19MRVZFTF9SRUxfSU5GTwBBUl9NQVRSSVhfQ09ERV8zeDMAQVJfTUFUUklYX0NPREVfM3gzX0hBTU1JTkc2MwBBUl9NQVRSSVhfQ09ERV8zeDNfUEFSSVRZNjUAQVJfTUFUUklYX0NPREVfNHg0AEFSX01BVFJJWF9DT0RFXzR4NF9CQ0hfMTNfOV8zAEFSX01BVFJJWF9DT0RFXzR4NF9CQ0hfMTNfNV81AEFSX0xBQkVMSU5HX1RIUkVTSF9NT0RFX01BTlVBTABBUl9MQUJFTElOR19USFJFU0hfTU9ERV9BVVRPX01FRElBTgBBUl9MQUJFTElOR19USFJFU0hfTU9ERV9BVVRPX09UU1UAQVJfTEFCRUxJTkdfVEhSRVNIX01PREVfQVVUT19BREFQVElWRQBBUl9NQVJLRVJfSU5GT19DVVRPRkZfUEhBU0VfTk9ORQBBUl9NQVJLRVJfSU5GT19DVVRPRkZfUEhBU0VfUEFUVEVSTl9FWFRSQUNUSU9OAEFSX01BUktFUl9JTkZPX0NVVE9GRl9QSEFTRV9NQVRDSF9HRU5FUklDAEFSX01BUktFUl9JTkZPX0NVVE9GRl9QSEFTRV9NQVRDSF9DT05UUkFTVABBUl9NQVJLRVJfSU5GT19DVVRPRkZfUEhBU0VfTUFUQ0hfQkFSQ09ERV9OT1RfRk9VTkQAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX01BVENIX0JBUkNPREVfRURDX0ZBSUwAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX01BVENIX0NPTkZJREVOQ0UAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX1BPU0VfRVJST1IAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX1BPU0VfRVJST1JfTVVMVEkAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX0hFVVJJU1RJQ19UUk9VQkxFU09NRV9NQVRSSVhfQ09ERVMAYWxsb2NhdG9yPFQ+OjphbGxvY2F0ZShzaXplX3QgbikgJ24nIGV4Y2VlZHMgbWF4aW11bSBzdXBwb3J0ZWQgc2l6ZQBJbWFnZSBwcm9jLiBtb2RlIHNldCB0byAlZC4KAExhYmVsaW5nIG1vZGUgc2V0IHRvICVkCgB2aWlmAFBhdHRlcm4gcmF0aW8gc2l6ZSBzZXQgdG8gJWYuCgBQYXR0ZXJuIGRldGVjdGlvbiBtb2RlIHNldCB0byAlZC4KAFRocmVzaG9sZCBzZXQgdG8gJWQKAHZpaWkAVGhyZXNob2xkIG1vZGUgc2V0IHRvICVkCgBkaWkAdmlpZABpaQB2aWkAb24uAG9mZi4ARGVidWcgbW9kZSBzZXQgdG8gJXMKAFRyYWNraW5nIGxvc3QuICVkCgBUcmFja2VkIHBhZ2UgJWQgKG1heCAlZCkuCgB7IHZhciAkYSA9IGFyZ3VtZW50czsgdmFyIGkgPSAwOyBpZiAoIWFydG9vbGtpdFsiTkZUTWFya2VySW5mbyJdKSB7IGFydG9vbGtpdFsiTkZUTWFya2VySW5mbyJdID0gKHsgaWQ6IDAsIGVycm9yOiAtMSwgZm91bmQ6IDAsIHBvc2U6IFswLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwXSB9KTsgfSB2YXIgbWFya2VySW5mbyA9IGFydG9vbGtpdFsiTkZUTWFya2VySW5mbyJdOyBtYXJrZXJJbmZvWyJpZCJdID0gJGFbaSsrXTsgbWFya2VySW5mb1siZXJyb3IiXSA9ICRhW2krK107IG1hcmtlckluZm9bImZvdW5kIl0gPSAxOyBtYXJrZXJJbmZvWyJwb3NlIl1bMF0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bMV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bMl0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bM10gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bNF0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bNV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bNl0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bN10gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bOF0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bOV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bMTBdID0gJGFbaSsrXTsgbWFya2VySW5mb1sicG9zZSJdWzExXSA9ICRhW2krK107IH0AeyB2YXIgJGEgPSBhcmd1bWVudHM7IHZhciBpID0gMDsgaWYgKCFhcnRvb2xraXRbIk5GVE1hcmtlckluZm8iXSkgeyBhcnRvb2xraXRbIk5GVE1hcmtlckluZm8iXSA9ICh7IGlkOiAwLCBlcnJvcjogLTEsIGZvdW5kOiAwLCBwb3NlOiBbMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMF0gfSk7IH0gdmFyIG1hcmtlckluZm8gPSBhcnRvb2xraXRbIk5GVE1hcmtlckluZm8iXTsgbWFya2VySW5mb1siaWQiXSA9ICRhW2krK107IG1hcmtlckluZm9bImVycm9yIl0gPSAtMTsgbWFya2VySW5mb1siZm91bmQiXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVswXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVsxXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVsyXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVszXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs0XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs1XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs2XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs3XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs4XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs5XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVsxMF0gPSAwOyBtYXJrZXJJbmZvWyJwb3NlIl1bMTFdID0gMDsgfQB7IHZhciAkYSA9IGFyZ3VtZW50czsgdmFyIGkgPSAxMjsgaWYgKCFhcnRvb2xraXRbIm1hcmtlckluZm8iXSkgeyBhcnRvb2xraXRbIm1hcmtlckluZm8iXSA9ICh7IHBvczogWzAsMF0sIGxpbmU6IFtbMCwwLDBdLCBbMCwwLDBdLCBbMCwwLDBdLCBbMCwwLDBdXSwgdmVydGV4OiBbWzAsMF0sIFswLDBdLCBbMCwwXSwgWzAsMF1dIH0pOyB9IHZhciBtYXJrZXJJbmZvID0gYXJ0b29sa2l0WyJtYXJrZXJJbmZvIl07IG1hcmtlckluZm9bImFyZWEiXSA9ICQwOyBtYXJrZXJJbmZvWyJpZCJdID0gJDE7IG1hcmtlckluZm9bImlkUGF0dCJdID0gJDI7IG1hcmtlckluZm9bImlkTWF0cml4Il0gPSAkMzsgbWFya2VySW5mb1siZGlyIl0gPSAkNDsgbWFya2VySW5mb1siZGlyUGF0dCJdID0gJDU7IG1hcmtlckluZm9bImRpck1hdHJpeCJdID0gJDY7IG1hcmtlckluZm9bImNmIl0gPSAkNzsgbWFya2VySW5mb1siY2ZQYXR0Il0gPSAkODsgbWFya2VySW5mb1siY2ZNYXRyaXgiXSA9ICQ5OyBtYXJrZXJJbmZvWyJwb3MiXVswXSA9ICQxMDsgbWFya2VySW5mb1sicG9zIl1bMV0gPSAkMTE7IG1hcmtlckluZm9bImxpbmUiXVswXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVswXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVswXVsyXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsxXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsxXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsxXVsyXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsyXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsyXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsyXVsyXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVszXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVszXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVszXVsyXSA9ICRhW2krK107IG1hcmtlckluZm9bInZlcnRleCJdWzBdWzBdID0gJGFbaSsrXTsgbWFya2VySW5mb1sidmVydGV4Il1bMF1bMV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJ2ZXJ0ZXgiXVsxXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bInZlcnRleCJdWzFdWzFdID0gJGFbaSsrXTsgbWFya2VySW5mb1sidmVydGV4Il1bMl1bMF0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJ2ZXJ0ZXgiXVsyXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bInZlcnRleCJdWzNdWzBdID0gJGFbaSsrXTsgbWFya2VySW5mb1sidmVydGV4Il1bM11bMV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJlcnJvckNvcnJlY3RlZCJdID0gJGFbaSsrXTsgfQB7IGlmICghYXJ0b29sa2l0WyJtdWx0aUVhY2hNYXJrZXJJbmZvIl0pIHsgYXJ0b29sa2l0WyJtdWx0aUVhY2hNYXJrZXJJbmZvIl0gPSAoe30pOyB9IHZhciBtdWx0aUVhY2hNYXJrZXIgPSBhcnRvb2xraXRbIm11bHRpRWFjaE1hcmtlckluZm8iXTsgbXVsdGlFYWNoTWFya2VyWyd2aXNpYmxlJ10gPSAkMDsgbXVsdGlFYWNoTWFya2VyWydwYXR0SWQnXSA9ICQxOyBtdWx0aUVhY2hNYXJrZXJbJ3BhdHRUeXBlJ10gPSAkMjsgbXVsdGlFYWNoTWFya2VyWyd3aWR0aCddID0gJDM7IH0AaWlpAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUAbG9hZENhbWVyYSgpOiBFcnJvciBsb2FkaW5nIHBhcmFtZXRlciBmaWxlICVzIGZvciBjYW1lcmEuCgBpaWlpAEFSVG9vbEtpdEpTKCk6IFVuYWJsZSB0byBzZXQgdXAgTkZUIG1hcmtlci4KAFJlYWRpbmcgJXMuZnNldDMKAGZzZXQzAEVycm9yIHJlYWRpbmcgS1BNIGRhdGEgZnJvbSAlcy5mc2V0MwoAICBBc3NpZ25lZCBwYWdlIG5vLiAlZC4KAEVycm9yOiBrcG1DaGFuZ2VQYWdlTm9PZlJlZkRhdGFTZXQKAEVycm9yOiBrcG1NZXJnZVJlZkRhdGFTZXQKACAgRG9uZS4KAFJlYWRpbmcgJXMuZnNldAoAZnNldABFcnJvciByZWFkaW5nIGRhdGEgZnJvbSAlcy5mc2V0CgBFcnJvcjoga3BtU2V0UmVmRGF0YVNldAoATG9hZGluZyBvZiBORlQgZGF0YSBjb21wbGV0ZS4KAEFSVG9vbEtpdEpTKCk6IFVuYWJsZSB0byBzZXQgdXAgQVIgbXVsdGltYXJrZXIuCgBjb25maWcgZGF0YSBsb2FkIGVycm9yICEhCgBBUlRvb2xLaXRKUygpOiBVbmFibGUgdG8gc2V0IHVwIEFSIG1hcmtlci4KAGxvYWRNYXJrZXIoKTogRXJyb3IgbG9hZGluZyBwYXR0ZXJuIGZpbGUgJXMuCgBFcnJvcjogYXIyQ3JlYXRlSGFuZGxlLgoAaWlpaWkAc2V0dXAoKTogRXJyb3I6IGFyUGF0dENyZWF0ZUhhbmRsZS4KAEFsbG9jYXRlZCB2aWRlb0ZyYW1lU2l6ZSAlZAoAeyBpZiAoIWFydG9vbGtpdFsiZnJhbWVNYWxsb2MiXSkgeyBhcnRvb2xraXRbImZyYW1lTWFsbG9jIl0gPSAoe30pOyB9IHZhciBmcmFtZU1hbGxvYyA9IGFydG9vbGtpdFsiZnJhbWVNYWxsb2MiXTsgZnJhbWVNYWxsb2NbImZyYW1lcG9pbnRlciJdID0gJDE7IGZyYW1lTWFsbG9jWyJmcmFtZXNpemUiXSA9ICQyOyBmcmFtZU1hbGxvY1siY2FtZXJhIl0gPSAkMzsgZnJhbWVNYWxsb2NbInRyYW5zZm9ybSJdID0gJDQ7IGZyYW1lTWFsbG9jWyJ2aWRlb0x1bWFQb2ludGVyIl0gPSAkNTsgfQAqKiogQ2FtZXJhIFBhcmFtZXRlciByZXNpemVkIGZyb20gJWQsICVkLiAqKioKAHNldENhbWVyYSgpOiBFcnJvcjogYXJQYXJhbUxUQ3JlYXRlLgoAc2V0Q2FtZXJhKCk6IEVycm9yOiBhckNyZWF0ZUhhbmRsZS4KAHNldENhbWVyYSgpOiBFcnJvciBjcmVhdGluZyAzRCBoYW5kbGUAT3V0IG9mIG1lbW9yeSEhCgBFcnJvcjogbWFsbG9jCgAjIyMgRmVhdHVyZSBjYW5kaWRhdGVzIGZvciB0cmFja2luZyBhcmUgb3ZlcmZsb3cuCgBCb2d1cyBtZXNzYWdlIGNvZGUgJWQAQUxJR05fVFlQRSBpcyB3cm9uZywgcGxlYXNlIGZpeABNQVhfQUxMT0NfQ0hVTksgaXMgd3JvbmcsIHBsZWFzZSBmaXgAQm9ndXMgYnVmZmVyIGNvbnRyb2wgbW9kZQBJbnZhbGlkIGNvbXBvbmVudCBJRCAlZCBpbiBTT1MASW52YWxpZCBjcm9wIHJlcXVlc3QARENUIGNvZWZmaWNpZW50IG91dCBvZiByYW5nZQBEQ1Qgc2NhbGVkIGJsb2NrIHNpemUgJWR4JWQgbm90IHN1cHBvcnRlZABDb21wb25lbnQgaW5kZXggJWQ6IG1pc21hdGNoaW5nIHNhbXBsaW5nIHJhdGlvICVkOiVkLCAlZDolZCwgJWMAQm9ndXMgSHVmZm1hbiB0YWJsZSBkZWZpbml0aW9uAEJvZ3VzIGlucHV0IGNvbG9yc3BhY2UAQm9ndXMgSlBFRyBjb2xvcnNwYWNlAEJvZ3VzIG1hcmtlciBsZW5ndGgAV3JvbmcgSlBFRyBsaWJyYXJ5IHZlcnNpb246IGxpYnJhcnkgaXMgJWQsIGNhbGxlciBleHBlY3RzICVkAFNhbXBsaW5nIGZhY3RvcnMgdG9vIGxhcmdlIGZvciBpbnRlcmxlYXZlZCBzY2FuAEludmFsaWQgbWVtb3J5IHBvb2wgY29kZSAlZABVbnN1cHBvcnRlZCBKUEVHIGRhdGEgcHJlY2lzaW9uICVkAEludmFsaWQgcHJvZ3Jlc3NpdmUgcGFyYW1ldGVycyBTcz0lZCBTZT0lZCBBaD0lZCBBbD0lZABJbnZhbGlkIHByb2dyZXNzaXZlIHBhcmFtZXRlcnMgYXQgc2NhbiBzY3JpcHQgZW50cnkgJWQAQm9ndXMgc2FtcGxpbmcgZmFjdG9ycwBJbnZhbGlkIHNjYW4gc2NyaXB0IGF0IGVudHJ5ICVkAEltcHJvcGVyIGNhbGwgdG8gSlBFRyBsaWJyYXJ5IGluIHN0YXRlICVkAEpQRUcgcGFyYW1ldGVyIHN0cnVjdCBtaXNtYXRjaDogbGlicmFyeSB0aGlua3Mgc2l6ZSBpcyAldSwgY2FsbGVyIGV4cGVjdHMgJXUAQm9ndXMgdmlydHVhbCBhcnJheSBhY2Nlc3MAQnVmZmVyIHBhc3NlZCB0byBKUEVHIGxpYnJhcnkgaXMgdG9vIHNtYWxsAFN1c3BlbnNpb24gbm90IGFsbG93ZWQgaGVyZQBDQ0lSNjAxIHNhbXBsaW5nIG5vdCBpbXBsZW1lbnRlZCB5ZXQAVG9vIG1hbnkgY29sb3IgY29tcG9uZW50czogJWQsIG1heCAlZABVbnN1cHBvcnRlZCBjb2xvciBjb252ZXJzaW9uIHJlcXVlc3QAQm9ndXMgREFDIGluZGV4ICVkAEJvZ3VzIERBQyB2YWx1ZSAweCV4AEJvZ3VzIERIVCBpbmRleCAlZABCb2d1cyBEUVQgaW5kZXggJWQARW1wdHkgSlBFRyBpbWFnZSAoRE5MIG5vdCBzdXBwb3J0ZWQpAFJlYWQgZnJvbSBFTVMgZmFpbGVkAFdyaXRlIHRvIEVNUyBmYWlsZWQARGlkbid0IGV4cGVjdCBtb3JlIHRoYW4gb25lIHNjYW4ASW5wdXQgZmlsZSByZWFkIGVycm9yAE91dHB1dCBmaWxlIHdyaXRlIGVycm9yIC0tLSBvdXQgb2YgZGlzayBzcGFjZT8ARnJhY3Rpb25hbCBzYW1wbGluZyBub3QgaW1wbGVtZW50ZWQgeWV0AEh1ZmZtYW4gY29kZSBzaXplIHRhYmxlIG92ZXJmbG93AE1pc3NpbmcgSHVmZm1hbiBjb2RlIHRhYmxlIGVudHJ5AE1heGltdW0gc3VwcG9ydGVkIGltYWdlIGRpbWVuc2lvbiBpcyAldSBwaXhlbHMARW1wdHkgaW5wdXQgZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGlucHV0IGZpbGUAQ2Fubm90IHRyYW5zY29kZSBkdWUgdG8gbXVsdGlwbGUgdXNlIG9mIHF1YW50aXphdGlvbiB0YWJsZSAlZABTY2FuIHNjcmlwdCBkb2VzIG5vdCB0cmFuc21pdCBhbGwgZGF0YQBJbnZhbGlkIGNvbG9yIHF1YW50aXphdGlvbiBtb2RlIGNoYW5nZQBOb3QgaW1wbGVtZW50ZWQgeWV0AFJlcXVlc3RlZCBmZWF0dXJlIHdhcyBvbWl0dGVkIGF0IGNvbXBpbGUgdGltZQBBcml0aG1ldGljIHRhYmxlIDB4JTAyeCB3YXMgbm90IGRlZmluZWQAQmFja2luZyBzdG9yZSBub3Qgc3VwcG9ydGVkAEh1ZmZtYW4gdGFibGUgMHglMDJ4IHdhcyBub3QgZGVmaW5lZABKUEVHIGRhdGFzdHJlYW0gY29udGFpbnMgbm8gaW1hZ2UAUXVhbnRpemF0aW9uIHRhYmxlIDB4JTAyeCB3YXMgbm90IGRlZmluZWQATm90IGEgSlBFRyBmaWxlOiBzdGFydHMgd2l0aCAweCUwMnggMHglMDJ4AEluc3VmZmljaWVudCBtZW1vcnkgKGNhc2UgJWQpAENhbm5vdCBxdWFudGl6ZSBtb3JlIHRoYW4gJWQgY29sb3IgY29tcG9uZW50cwBDYW5ub3QgcXVhbnRpemUgdG8gZmV3ZXIgdGhhbiAlZCBjb2xvcnMAQ2Fubm90IHF1YW50aXplIHRvIG1vcmUgdGhhbiAlZCBjb2xvcnMASW52YWxpZCBKUEVHIGZpbGUgc3RydWN0dXJlOiAlcyBiZWZvcmUgU09GAEludmFsaWQgSlBFRyBmaWxlIHN0cnVjdHVyZTogdHdvIFNPRiBtYXJrZXJzAEludmFsaWQgSlBFRyBmaWxlIHN0cnVjdHVyZTogbWlzc2luZyBTT1MgbWFya2VyAFVuc3VwcG9ydGVkIEpQRUcgcHJvY2VzczogU09GIHR5cGUgMHglMDJ4AEludmFsaWQgSlBFRyBmaWxlIHN0cnVjdHVyZTogdHdvIFNPSSBtYXJrZXJzAEZhaWxlZCB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUgJXMAUmVhZCBmYWlsZWQgb24gdGVtcG9yYXJ5IGZpbGUAU2VlayBmYWlsZWQgb24gdGVtcG9yYXJ5IGZpbGUAV3JpdGUgZmFpbGVkIG9uIHRlbXBvcmFyeSBmaWxlIC0tLSBvdXQgb2YgZGlzayBzcGFjZT8AQXBwbGljYXRpb24gdHJhbnNmZXJyZWQgdG9vIGZldyBzY2FubGluZXMAVW5zdXBwb3J0ZWQgbWFya2VyIHR5cGUgMHglMDJ4AFZpcnR1YWwgYXJyYXkgY29udHJvbGxlciBtZXNzZWQgdXAASW1hZ2UgdG9vIHdpZGUgZm9yIHRoaXMgaW1wbGVtZW50YXRpb24AUmVhZCBmcm9tIFhNUyBmYWlsZWQAV3JpdGUgdG8gWE1TIGZhaWxlZABDb3B5cmlnaHQgKEMpIDIwMTgsIFRob21hcyBHLiBMYW5lLCBHdWlkbyBWb2xsYmVkaW5nADljICAxNC1KYW4tMjAxOABDYXV0aW9uOiBxdWFudGl6YXRpb24gdGFibGVzIGFyZSB0b28gY29hcnNlIGZvciBiYXNlbGluZSBKUEVHAEFkb2JlIEFQUDE0IG1hcmtlcjogdmVyc2lvbiAlZCwgZmxhZ3MgMHglMDR4IDB4JTA0eCwgdHJhbnNmb3JtICVkAFVua25vd24gQVBQMCBtYXJrZXIgKG5vdCBKRklGKSwgbGVuZ3RoICV1AFVua25vd24gQVBQMTQgbWFya2VyIChub3QgQWRvYmUpLCBsZW5ndGggJXUARGVmaW5lIEFyaXRobWV0aWMgVGFibGUgMHglMDJ4OiAweCUwMngARGVmaW5lIEh1ZmZtYW4gVGFibGUgMHglMDJ4AERlZmluZSBRdWFudGl6YXRpb24gVGFibGUgJWQgIHByZWNpc2lvbiAlZABEZWZpbmUgUmVzdGFydCBJbnRlcnZhbCAldQBGcmVlZCBFTVMgaGFuZGxlICV1AE9idGFpbmVkIEVNUyBoYW5kbGUgJXUARW5kIE9mIEltYWdlACAgICAgICAgJTNkICUzZCAlM2QgJTNkICUzZCAlM2QgJTNkICUzZABKRklGIEFQUDAgbWFya2VyOiB2ZXJzaW9uICVkLiUwMmQsIGRlbnNpdHkgJWR4JWQgICVkAFdhcm5pbmc6IHRodW1ibmFpbCBpbWFnZSBzaXplIGRvZXMgbm90IG1hdGNoIGRhdGEgbGVuZ3RoICV1AEpGSUYgZXh0ZW5zaW9uIG1hcmtlcjogdHlwZSAweCUwMngsIGxlbmd0aCAldQAgICAgd2l0aCAlZCB4ICVkIHRodW1ibmFpbCBpbWFnZQBNaXNjZWxsYW5lb3VzIG1hcmtlciAweCUwMngsIGxlbmd0aCAldQBVbmV4cGVjdGVkIG1hcmtlciAweCUwMngAICAgICAgICAlNHUgJTR1ICU0dSAlNHUgJTR1ICU0dSAlNHUgJTR1AFF1YW50aXppbmcgdG8gJWQgPSAlZColZColZCBjb2xvcnMAUXVhbnRpemluZyB0byAlZCBjb2xvcnMAU2VsZWN0ZWQgJWQgY29sb3JzIGZvciBxdWFudGl6YXRpb24AQXQgbWFya2VyIDB4JTAyeCwgcmVjb3ZlcnkgYWN0aW9uICVkAFJTVCVkAFNtb290aGluZyBub3Qgc3VwcG9ydGVkIHdpdGggbm9uc3RhbmRhcmQgc2FtcGxpbmcgcmF0aW9zAFN0YXJ0IE9mIEZyYW1lIDB4JTAyeDogd2lkdGg9JXUsIGhlaWdodD0ldSwgY29tcG9uZW50cz0lZAAgICAgQ29tcG9uZW50ICVkOiAlZGh4JWR2IHE9JWQAU3RhcnQgb2YgSW1hZ2UAU3RhcnQgT2YgU2NhbjogJWQgY29tcG9uZW50cwAgICAgQ29tcG9uZW50ICVkOiBkYz0lZCBhYz0lZAAgIFNzPSVkLCBTZT0lZCwgQWg9JWQsIEFsPSVkAENsb3NlZCB0ZW1wb3JhcnkgZmlsZSAlcwBPcGVuZWQgdGVtcG9yYXJ5IGZpbGUgJXMASkZJRiBleHRlbnNpb24gbWFya2VyOiBKUEVHLWNvbXByZXNzZWQgdGh1bWJuYWlsIGltYWdlLCBsZW5ndGggJXUASkZJRiBleHRlbnNpb24gbWFya2VyOiBwYWxldHRlIHRodW1ibmFpbCBpbWFnZSwgbGVuZ3RoICV1AEpGSUYgZXh0ZW5zaW9uIG1hcmtlcjogUkdCIHRodW1ibmFpbCBpbWFnZSwgbGVuZ3RoICV1AFVucmVjb2duaXplZCBjb21wb25lbnQgSURzICVkICVkICVkLCBhc3N1bWluZyBZQ2JDcgBGcmVlZCBYTVMgaGFuZGxlICV1AE9idGFpbmVkIFhNUyBoYW5kbGUgJXUAVW5rbm93biBBZG9iZSBjb2xvciB0cmFuc2Zvcm0gY29kZSAlZABDb3JydXB0IEpQRUcgZGF0YTogYmFkIGFyaXRobWV0aWMgY29kZQBJbmNvbnNpc3RlbnQgcHJvZ3Jlc3Npb24gc2VxdWVuY2UgZm9yIGNvbXBvbmVudCAlZCBjb2VmZmljaWVudCAlZABDb3JydXB0IEpQRUcgZGF0YTogJXUgZXh0cmFuZW91cyBieXRlcyBiZWZvcmUgbWFya2VyIDB4JTAyeABDb3JydXB0IEpQRUcgZGF0YTogcHJlbWF0dXJlIGVuZCBvZiBkYXRhIHNlZ21lbnQAQ29ycnVwdCBKUEVHIGRhdGE6IGJhZCBIdWZmbWFuIGNvZGUAV2FybmluZzogdW5rbm93biBKRklGIHJldmlzaW9uIG51bWJlciAlZC4lMDJkAFByZW1hdHVyZSBlbmQgb2YgSlBFRyBmaWxlAENvcnJ1cHQgSlBFRyBkYXRhOiBmb3VuZCBtYXJrZXIgMHglMDJ4IGluc3RlYWQgb2YgUlNUJWQASW52YWxpZCBTT1MgcGFyYW1ldGVycyBmb3Igc2VxdWVudGlhbCBKUEVHAEFwcGxpY2F0aW9uIHRyYW5zZmVycmVkIHRvbyBtYW55IHNjYW5saW5lcwBTT1MATFNFAEpQRUdNRU0AJWxkJWMAJXMKAAABAgQHAwYFAC0rICAgMFgweAAobnVsbCkALTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYATkFOAC4AaW5maW5pdHkAbmFuAExDX0FMTABMQU5HAEMuVVRGLTgAUE9TSVgATVVTTF9MT0NQQVRIAHJ3YQB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZABTdDExbG9naWNfZXJyb3IAU3QxMmxlbmd0aF9lcnJvcgBOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTIzX19mdW5kYW1lbnRhbF90eXBlX2luZm9FAHYAYgBjAGgAYQBzAHQAaQBqAG0AZgBkAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAdm9pZABib29sAGNoYXIAc2lnbmVkIGNoYXIAdW5zaWduZWQgY2hhcgBzaG9ydAB1bnNpZ25lZCBzaG9ydABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBmbG9hdABkb3VibGUAc3RkOjpzdHJpbmcAc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4Ac3RkOjp3c3RyaW5nAGVtc2NyaXB0ZW46OnZhbABlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmcgZG91YmxlPgBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0llRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWZFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ltRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lpRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjhpb3NfYmFzZUUATlN0M19fMjliYXNpY19pb3NJY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjliYXNpY19pb3NJd05TXzExY2hhcl90cmFpdHNJd0VFRUUATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzIxNWJhc2ljX3N0cmVhbWJ1Zkl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTNiYXNpY19pc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzIxM2Jhc2ljX2lzdHJlYW1Jd05TXzExY2hhcl90cmFpdHNJd0VFRUUATlN0M19fMjEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBOU3QzX18yMTNiYXNpY19vc3RyZWFtSXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFAE5TdDNfXzIxMV9fc3Rkb3V0YnVmSXdFRQBOU3QzX18yMTFfX3N0ZG91dGJ1ZkljRUUAdW5zdXBwb3J0ZWQgbG9jYWxlIGZvciBzdGFuZGFyZCBpbnB1dABOU3QzX18yMTBfX3N0ZGluYnVmSXdFRQBOU3QzX18yMTBfX3N0ZGluYnVmSWNFRQBOU3QzX18yN2NvbGxhdGVJY0VFAE5TdDNfXzI2bG9jYWxlNWZhY2V0RQBOU3QzX18yN2NvbGxhdGVJd0VFACVwAEMATlN0M19fMjdudW1fZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yOV9fbnVtX2dldEljRUUATlN0M19fMjE0X19udW1fZ2V0X2Jhc2VFAE5TdDNfXzI3bnVtX2dldEl3TlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjlfX251bV9nZXRJd0VFACVwAAAAAEwAbGwAJQAAAAAAbABOU3QzX18yN251bV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzI5X19udW1fcHV0SWNFRQBOU3QzX18yMTRfX251bV9wdXRfYmFzZUUATlN0M19fMjdudW1fcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yOV9fbnVtX3B1dEl3RUUAJUg6JU06JVMAJW0vJWQvJXkAJUk6JU06JVMgJXAAJWEgJWIgJWQgJUg6JU06JVMgJVkAQU0AUE0ASmFudWFyeQBGZWJydWFyeQBNYXJjaABBcHJpbABNYXkASnVuZQBKdWx5AEF1Z3VzdABTZXB0ZW1iZXIAT2N0b2JlcgBOb3ZlbWJlcgBEZWNlbWJlcgBKYW4ARmViAE1hcgBBcHIASnVuAEp1bABBdWcAU2VwAE9jdABOb3YARGVjAFN1bmRheQBNb25kYXkAVHVlc2RheQBXZWRuZXNkYXkAVGh1cnNkYXkARnJpZGF5AFNhdHVyZGF5AFN1bgBNb24AVHVlAFdlZABUaHUARnJpAFNhdAAlbS8lZC8leSVZLSVtLSVkJUk6JU06JVMgJXAlSDolTSVIOiVNOiVTJUg6JU06JVNOU3QzX18yOHRpbWVfZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yMjBfX3RpbWVfZ2V0X2Nfc3RvcmFnZUljRUUATlN0M19fMjl0aW1lX2Jhc2VFAE5TdDNfXzI4dGltZV9nZXRJd05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIyMF9fdGltZV9nZXRfY19zdG9yYWdlSXdFRQBOU3QzX18yOHRpbWVfcHV0SWNOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yMTBfX3RpbWVfcHV0RQBOU3QzX18yOHRpbWVfcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTBtb25leXB1bmN0SWNMYjBFRUUATlN0M19fMjEwbW9uZXlfYmFzZUUATlN0M19fMjEwbW9uZXlwdW5jdEljTGIxRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMEVFRQBOU3QzX18yMTBtb25leXB1bmN0SXdMYjFFRUUAMDEyMzQ1Njc4OQAlTGYATlN0M19fMjltb25leV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfZ2V0SWNFRQAwMTIzNDU2Nzg5AE5TdDNfXzI5bW9uZXlfZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTFfX21vbmV5X2dldEl3RUUAJS4wTGYATlN0M19fMjltb25leV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfcHV0SWNFRQBOU3QzX18yOW1vbmV5X3B1dEl3TlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjExX19tb25leV9wdXRJd0VFAE5TdDNfXzI4bWVzc2FnZXNJY0VFAE5TdDNfXzIxM21lc3NhZ2VzX2Jhc2VFAE5TdDNfXzIxN19fd2lkZW5fZnJvbV91dGY4SUxtMzJFRUUATlN0M19fMjdjb2RlY3Z0SURpYzExX19tYnN0YXRlX3RFRQBOU3QzX18yMTJjb2RlY3Z0X2Jhc2VFAE5TdDNfXzIxNl9fbmFycm93X3RvX3V0ZjhJTG0zMkVFRQBOU3QzX18yOG1lc3NhZ2VzSXdFRQBOU3QzX18yN2NvZGVjdnRJY2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjdjb2RlY3Z0SXdjMTFfX21ic3RhdGVfdEVFAE5TdDNfXzI3Y29kZWN2dElEc2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjZsb2NhbGU1X19pbXBFAE5TdDNfXzI1Y3R5cGVJY0VFAE5TdDNfXzIxMGN0eXBlX2Jhc2VFAE5TdDNfXzI1Y3R5cGVJd0VFAGZhbHNlAHRydWUATlN0M19fMjhudW1wdW5jdEljRUUATlN0M19fMjhudW1wdW5jdEl3RUUATlN0M19fMjE0X19zaGFyZWRfY291bnRFAE5TdDNfXzIxOV9fc2hhcmVkX3dlYWtfY291bnRF";var tempDoublePtr=57872;function demangle(func){return func}function demangleAll(text){var regex=/\b__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var ENV={};function ___buildEnvironment(environ){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]="web_user";ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";ENV["_"]=thisProgram;poolPtr=getMemory(TOTAL_ENV_SIZE);envPtr=getMemory(MAX_ENV_VALUES*4);HEAP32[envPtr>>2]=poolPtr;HEAP32[environ>>2]=envPtr}else{envPtr=HEAP32[environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in ENV){if(typeof ENV[key]==="string"){var line=key+"="+ENV[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=value;return value}function ___map_file(pathname,size){___setErrNo(63);return-1}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)}};var PATH_FS={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_FS.resolve(from).substr(1);to=PATH_FS.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){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(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(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}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(32)}}}}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 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}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 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}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(33)},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(70)}},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){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(10)}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(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}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(28)}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);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(28)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}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)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";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(29)}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(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);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;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];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-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}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=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(fd){if(fd===undefined)fd=SYSCALLS.get();var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};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-28}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:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:___setErrNo(28);return-1;default:{return-28}}}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 ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_syscall_munmap(addr,len){if(addr===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();return __emscripten_syscall_munmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_close(){return _fd_close.apply(null,arguments)}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_read(){return _fd_read.apply(null,arguments)}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];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 ___wasi_fd_seek(){return _fd_seek.apply(null,arguments)}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_write(){return _fd_write.apply(null,arguments)}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function __embind_register_constant(name,type,value){name=readLatin1String(name);whenDependentTypesAreResolved([],[type],function(type){type=type[0];Module[name]=type["fromWireType"](value);return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;iLIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _llvm_exp2_f32(x){return Math.pow(2,x)}function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);stackRestore(ret)}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(stackSave());return self.LLVM_SAVEDSTACKS.length-1}var ___tm_current=57728;var ___tm_timezone=(stringToUTF8("GMT",57776,4),57776);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocate(intArrayFromString(winterName),"i8",ALLOC_NORMAL);var summerNamePtr=allocate(intArrayFromString(summerName),"i8",ALLOC_NORMAL);if(summer.getTimezoneOffset()>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}FS.staticInit();embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var ASSERTIONS=false;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}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){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("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i>2]|0;g=h>>8;if(h&1)g=c[(c[d>>2]|0)+g>>2]|0;a=c[a>>2]|0;Yb[c[(c[a>>2]|0)+24>>2]&63](a,b,d+g|0,(h&2|0)==0?2:e,f);return}function nB(a){a=a|0;return ((oB(a)|0)^1)&1|0}function oB(b){b=b|0;return (a[b>>0]|0)!=0|0}function pB(a){a=a|0;c[a>>2]=0;qB(a);return}function qB(a){a=a|0;c[a>>2]=c[a>>2]|1;return}function rB(a){a=a|0;c[a>>2]=0;return}function sB(){return 0}function tB(a){a=a|0;var b=0;b=(a|0)==0?1:a;while(1){a=FO(b)|0;if(a|0)break;a=sB()|0;if(!a){a=0;break}Rb[a&1]()}return a|0}function uB(a){a=a|0;return tB(a)|0}function vB(a){a=a|0;SA(a);return}function wB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=c[d>>2];a=Jb[c[(c[a>>2]|0)+16>>2]&63](a,b,e)|0;if(a)c[d>>2]=c[e>>2];zb=f;return a&1|0}function xB(a){a=a|0;if(!a)a=0;else a=(NA(a,13904,13992,0)|0)!=0&1;return a|0}function yB(){return 0}function zB(){N(55684);return}function AB(){return 55668}function BB(){return 55676}function CB(){return 55680}function DB(){return 55684}function EB(){FB();return}function FB(){GB(57670);return}function GB(a){a=a|0;var b=0;b=zb;zb=zb+16|0;c[b>>2]=a;HB();zb=b;return}function HB(){pa(IB()|0,47294);ga(JB()|0,47299,1,1,0);KB(47304);LB(47309);MB(47321);NB(47335);OB(47341);PB(47356);QB(47360);RB(47373);SB(47378);TB(47392);UB(47398);na(VB()|0,47405);na(WB()|0,47417);oa(XB()|0,4,47450);ia(YB()|0,47463);ZB(47479);_B(47509);$B(47546);aC(47585);bC(47616);cC(47656);dC(47685);eC(47723);fC(47753);_B(47792);$B(47824);aC(47857);bC(47890);cC(47924);dC(47957);gC(47991);hC(48022);iC(48054);return}function IB(){return sD()|0}function JB(){return rD()|0}function KB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=pD()|0;la(a|0,c[d>>2]|0,1,-128<<24>>24|0,127<<24>>24|0);zb=b;return}function LB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=nD()|0;la(a|0,c[d>>2]|0,1,-128<<24>>24|0,127<<24>>24|0);zb=b;return}function MB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=lD()|0;la(a|0,c[d>>2]|0,1,0,255);zb=b;return}function NB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=jD()|0;la(a|0,c[d>>2]|0,2,-32768<<16>>16|0,32767<<16>>16|0);zb=b;return}function OB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=hD()|0;la(a|0,c[d>>2]|0,2,0,65535);zb=b;return}function PB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=fD()|0;la(a|0,c[d>>2]|0,4,-2147483648,2147483647);zb=b;return}function QB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=dD()|0;la(a|0,c[d>>2]|0,4,0,-1);zb=b;return}function RB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=bD()|0;la(a|0,c[d>>2]|0,4,-2147483648,2147483647);zb=b;return}function SB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=$C()|0;la(a|0,c[d>>2]|0,4,0,-1);zb=b;return}function TB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=ZC()|0;ja(a|0,c[d>>2]|0,4);zb=b;return}function UB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=XC()|0;ja(a|0,c[d>>2]|0,8);zb=b;return}function VB(){return WC()|0}function WB(){return VC()|0}function XB(){return UC()|0}function YB(){return TC()|0}function ZB(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=QC()|0;a=RC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function _B(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=NC()|0;a=OC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function $B(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=KC()|0;a=LC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function aC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=HC()|0;a=IC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function bC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=EC()|0;a=FC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function cC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=BC()|0;a=CC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function dC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=yC()|0;a=zC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function eC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=vC()|0;a=wC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function fC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=sC()|0;a=tC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function gC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=pC()|0;a=qC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function hC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=mC()|0;a=nC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function iC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=jC()|0;a=kC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function jC(){return lC()|0}function kC(){return 7}function lC(){return 14144}function mC(){return oC()|0}function nC(){return 7}function oC(){return 14152}function pC(){return rC()|0}function qC(){return 6}function rC(){return 14160}function sC(){return uC()|0}function tC(){return 5}function uC(){return 14168}function vC(){return xC()|0}function wC(){return 4}function xC(){return 14176}function yC(){return AC()|0}function zC(){return 5}function AC(){return 14184}function BC(){return DC()|0}function CC(){return 4}function DC(){return 14192}function EC(){return GC()|0}function FC(){return 3}function GC(){return 14200}function HC(){return JC()|0}function IC(){return 2}function JC(){return 14208}function KC(){return MC()|0}function LC(){return 1}function MC(){return 14216}function NC(){return PC()|0}function OC(){return 0}function PC(){return 14224}function QC(){return SC()|0}function RC(){return 0}function SC(){return 14232}function TC(){return 14240}function UC(){return 14248}function VC(){return 14272}function WC(){return 13272}function XC(){return YC()|0}function YC(){return 14120}function ZC(){return _C()|0}function _C(){return 14112}function $C(){return aD()|0}function aD(){return 14104}function bD(){return cD()|0}function cD(){return 14096}function dD(){return eD()|0}function eD(){return 14088}function fD(){return gD()|0}function gD(){return 14080}function hD(){return iD()|0}function iD(){return 14072}function jD(){return kD()|0}function kD(){return 14064}function lD(){return mD()|0}function mD(){return 14048}function nD(){return oD()|0}function oD(){return 14056}function pD(){return qD()|0}function qD(){return 14040}function rD(){return 14032}function sD(){return 14024}function tD(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b+4|0;e=b;c[e>>2]=a;c[d>>2]=c[e>>2];a=jz(c[(c[d>>2]|0)+4>>2]|0)|0;zb=b;return a|0}function uD(a){a=a|0;return 0}function vD(a){a=a|0;return 0}function wD(a,b){a=a|0;b=b|0;return 0}function xD(a){a=a|0;return 0}function yD(){return (zD()|0)>0|0}function zD(){return yB()|0}function AD(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;k=zb;zb=zb+16|0;d=k;i=k+8|0;e=k+4|0;c[i>>2]=a;do if(a>>>0>=212){h=(a>>>0)/210|0;b=h*210|0;c[e>>2]=a-b;a=0;g=(BD(12736,12928,e,d)|0)-12736>>2;a:while(1){f=(c[12736+(g<<2)>>2]|0)+b|0;b=5;while(1){if(b>>>0>=47){j=6;break}d=c[12544+(b<<2)>>2]|0;e=(f>>>0)/(d>>>0)|0;if(e>>>0>>0){j=107;break a}if((f|0)==(B(e,d)|0))break;else b=b+1|0}b:do if((j|0)==6){j=0;e=211;c:while(1){b=(f>>>0)/(e>>>0)|0;do if(b>>>0>=e>>>0)if((f|0)!=(B(b,e)|0)){b=e+10|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+12|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+16|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+18|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+22|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+28|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)==(B(d,b)|0))d=9;else{b=e+30|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+36|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+40|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+42|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+46|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+52|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+58|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+60|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+66|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+70|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+72|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+78|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+82|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+88|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+96|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+100|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+102|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+106|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+108|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+112|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+120|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+126|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+130|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+136|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+138|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+142|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+148|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+150|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+156|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+162|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+166|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+168|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+172|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+178|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+180|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+186|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+190|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+192|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+196|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+198|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+208|0;d=(f>>>0)/(b>>>0)|0;l=d>>>0>>0;d=(f|0)==(B(d,b)|0);b=l|d?b:e+210|0;d=l?1:d?9:0;a=l?f:a}else{d=1;a=f}}else d=9;else{d=1;a=f}}else d=9;else{d=1;a=f}}else d=9;else{d=1;a=f}}else d=9;else{d=1;a=f}}else d=9;else{d=1;a=f}}else{b=e;d=9}else{b=e;d=1;a=f}while(0);switch(d&15){case 9:break b;case 0:{e=b;break}default:break c}}if(d){j=108;break a}}while(0);l=g+1|0;f=(l|0)==48;b=h+(f&1)|0;h=b;b=b*210|0;g=f?0:l}if((j|0)==107){c[i>>2]=f;a=f;break}else if((j|0)==108){c[i>>2]=f;break}}else{a=BD(12544,12736,i,d)|0;a=c[a>>2]|0}while(0);zb=k;return a|0}function BD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[d>>2]|0;e=a;d=b-a>>2;while(1){if(!d)break;b=d>>>1;g=e+(b<<2)|0;a=(c[g>>2]|0)>>>0>>0;e=a?g+4|0:e;d=a?d+-1-b|0:b}return e|0}function CD(a){a=a|0;DD(a);return}function DD(a){a=a|0;c[a>>2]=16480;ED(a,0);YF(a+28|0);GO(c[a+32>>2]|0);GO(c[a+36>>2]|0);GO(c[a+48>>2]|0);GO(c[a+60>>2]|0);return}function ED(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+32|0;f=a+36|0;d=c[a+40>>2]|0;while(1){if(!d)break;g=d+-1|0;Wb[c[(c[e>>2]|0)+(g<<2)>>2]&3](b,a,c[(c[f>>2]|0)+(g<<2)>>2]|0);d=g}return}function FD(a){a=a|0;DD(a);SA(a);return}function GD(a){a=a|0;DD(a);return}function HD(a){a=a|0;c[a>>2]=16496;YF(a+4|0);return}function ID(a){a=a|0;HD(a);SA(a);return}function JD(a,b){a=a|0;b=b|0;return}function KD(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function LD(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}function MD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a;c[e>>2]=0;c[e+4>>2]=0;e=a+8|0;c[e>>2]=-1;c[e+4>>2]=-1;return}function ND(a){a=a|0;return 0}function OD(a){a=a|0;return 0}function PD(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;Wf()|0;i=b+12|0;j=b+16|0;h=0;while(1){if((h|0)>=(e|0))break;f=c[i>>2]|0;g=c[j>>2]|0;if(f>>>0>>0){g=g-f|0;k=e-h|0;g=(k|0)<(g|0)?k:g;VD(d,f,g)|0;c[i>>2]=(c[i>>2]|0)+g;d=d+g|0;f=g}else{f=Gb[c[(c[b>>2]|0)+40>>2]&127](b)|0;if((f|0)==-1)break;f=eg(f)|0;a[d>>0]=f;d=d+1|0;f=1}h=f+h|0}return h|0}function QD(a){a=a|0;return Wf()|0}function RD(b){b=b|0;var d=0;d=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;if((d|0)==(Wf()|0))b=Wf()|0;else{d=b+12|0;b=c[d>>2]|0;c[d>>2]=b+1;b=cg(a[b>>0]|0)|0}return b|0}function SD(a,b){a=a|0;b=b|0;return Wf()|0}function TD(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;i=Wf()|0;j=b+24|0;k=b+28|0;f=0;while(1){if((f|0)>=(e|0))break;g=c[j>>2]|0;h=c[k>>2]|0;if(g>>>0>>0){h=h-g|0;l=e-f|0;h=(l|0)<(h|0)?l:h;VD(g,d,h)|0;c[j>>2]=(c[j>>2]|0)+h;d=d+h|0;f=h+f|0}else{h=c[(c[b>>2]|0)+52>>2]|0;l=cg(a[d>>0]|0)|0;if((Ib[h&63](b,l)|0)==(i|0))break;d=d+1|0;f=f+1|0}}return f|0}function UD(a,b){a=a|0;b=b|0;return Wf()|0}function VD(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)_O(a|0,b|0,c|0)|0;return a|0}function WD(a){a=a|0;c[a>>2]=16560;YF(a+4|0);return}function XD(a){a=a|0;WD(a);SA(a);return}function YD(a,b){a=a|0;b=b|0;return}function ZD(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function _D(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}function $D(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a;c[e>>2]=0;c[e+4>>2]=0;e=a+8|0;c[e>>2]=-1;c[e+4>>2]=-1;return}function aE(a){a=a|0;return 0}function bE(a){a=a|0;return 0}function cE(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;iE()|0;h=a+12|0;i=a+16|0;g=0;while(1){if((g|0)>=(d|0))break;e=c[h>>2]|0;f=c[i>>2]|0;if(e>>>0>>0){f=f-e>>2;j=d-g|0;f=(j|0)<(f|0)?j:f;kE(b,e,f)|0;c[h>>2]=(c[h>>2]|0)+(f<<2);b=b+(f<<2)|0;e=f}else{e=Gb[c[(c[a>>2]|0)+40>>2]&127](a)|0;if((e|0)==-1)break;e=lE(e)|0;c[b>>2]=e;b=b+4|0;e=1}g=e+g|0}return g|0}function dE(a){a=a|0;return iE()|0}function eE(a){a=a|0;var b=0;b=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;if((b|0)==(iE()|0))a=iE()|0;else{b=a+12|0;a=c[b>>2]|0;c[b>>2]=a+4;a=jE(c[a>>2]|0)|0}return a|0}function fE(a,b){a=a|0;b=b|0;return iE()|0}function gE(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=iE()|0;i=a+24|0;j=a+28|0;e=0;while(1){if((e|0)>=(d|0))break;f=c[i>>2]|0;g=c[j>>2]|0;if(f>>>0>>0){g=g-f>>2;k=d-e|0;g=(k|0)<(g|0)?k:g;kE(f,b,g)|0;c[i>>2]=(c[i>>2]|0)+(g<<2);b=b+(g<<2)|0;e=g+e|0}else{g=c[(c[a>>2]|0)+52>>2]|0;k=jE(c[b>>2]|0)|0;if((Ib[g&63](a,k)|0)==(h|0))break;b=b+4|0;e=e+1|0}}return e|0}function hE(a,b){a=a|0;b=b|0;return iE()|0}function iE(){return -1}function jE(a){a=a|0;return a|0}function kE(a,b,c){a=a|0;b=b|0;c=c|0;if(c)gz(a,b,c)|0;return a|0}function lE(a){a=a|0;return a|0}function mE(a){a=a|0;qE(a,16656);CD(a+8|0);return}function nE(a){a=a|0;mE(a);SA(a);return}function oE(a){a=a|0;mE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function pE(a){a=a|0;nE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function qE(a,b){a=a|0;b=b|0;return}function rE(a){a=a|0;vE(a,16704);GD(a+8|0);return}function sE(a){a=a|0;rE(a);SA(a);return}function tE(a){a=a|0;rE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function uE(a){a=a|0;sE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function vE(a,b){a=a|0;b=b|0;return}function wE(a){a=a|0;AE(a,16752);CD(a+4|0);return}function xE(a){a=a|0;wE(a);SA(a);return}function yE(a){a=a|0;wE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function zE(a){a=a|0;xE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function AE(a,b){a=a|0;b=b|0;return}function BE(a){a=a|0;FE(a,16800);GD(a+4|0);return}function CE(a){a=a|0;BE(a);SA(a);return}function DE(a){a=a|0;BE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function EE(a){a=a|0;CE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function FE(a,b){a=a|0;b=b|0;return}function GE(a,b){a=a|0;b=b|0;c[a+16>>2]=(c[a+24>>2]|0)==0|b;return}function HE(a,b){a=a|0;b=b|0;var d=0;c[a+24>>2]=b;c[a+16>>2]=(b|0)==0&1;c[a+20>>2]=0;c[a+4>>2]=4098;c[a+12>>2]=0;c[a+8>>2]=6;d=a+28|0;b=a+32|0;a=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));YN(d);return}function IE(a,b){a=a|0;b=b|0;WN(a,b+28|0);return}function JE(a,b){a=a|0;b=b|0;return (a|0)==(b|0)|0}function KE(a){a=a|0;c[a>>2]=16496;YN(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function LE(a){a=a|0;c[a>>2]=16560;YN(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function ME(b){b=b|0;var d=0,e=0,f=0;e=zb;zb=zb+16|0;d=e;if(c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0){NE(d,b);if(a[d>>0]|0?(f=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0,(Gb[c[(c[f>>2]|0)+24>>2]&127](f)|0)==-1):0){f=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(f,c[f+16>>2]|1)}OE(d)}zb=e;return b|0}function NE(b,d){b=b|0;d=d|0;a[b>>0]=0;c[b+4>>2]=d;d=d+(c[(c[d>>2]|0)+-12>>2]|0)|0;if(!(c[d+16>>2]|0)){d=c[d+72>>2]|0;if(d|0)ME(d)|0;a[b>>0]=1}return}function OE(a){a=a|0;var b=0;a=a+4|0;b=c[a>>2]|0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;if((((c[b+24>>2]|0?(c[b+16>>2]|0)==0:0)?c[b+4>>2]&8192|0:0)?!(yD()|0):0)?(b=c[a>>2]|0,b=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0,(Gb[c[(c[b>>2]|0)+24>>2]&127](b)|0)==-1):0){b=c[a>>2]|0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(b,c[b+16>>2]|1)}return}function PE(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;l=zb;zb=zb+16|0;f=l+12|0;j=l+8|0;k=l;NE(k,b);if(a[k>>0]|0){IE(f,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);g=XF(f,56792)|0;YF(f);h=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;i=c[h+24>>2]|0;m=Wf()|0;e=h+76|0;if(_f(m,c[e>>2]|0)|0){IE(f,h);m=XF(f,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,32)|0;YF(f);m=m<<24>>24;c[e>>2]=m;e=m}else e=c[e>>2]|0;m=c[(c[g>>2]|0)+16>>2]|0;c[j>>2]=i;c[f>>2]=c[j>>2];if(!(Mb[m&31](g,f,h,e&255,d)|0)){m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(m,c[m+16>>2]|5)}}OE(k);zb=l;return b|0}function QE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;i=j;NE(i,b);do if(a[i>>0]|0){e=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;f=e;if(e|0){g=f+24|0;h=c[g>>2]|0;if((h|0)==(c[f+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;d=cg(d)|0;d=Ib[h&63](f,d)|0}else{c[g>>2]=h+1;a[h>>0]=d;d=cg(d)|0}if(!(_f(d,Wf()|0)|0))break}h=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(h,c[h+16>>2]|1)}while(0);OE(i);zb=j;return b|0}function RE(a){a=a|0;a=a+16|0;c[a>>2]=c[a>>2]|1;return}function SE(){UE();return}function TE(){return}function UE(){VE(0);return}function VE(a){a=a|0;var b=0,d=0;b=c[4002]|0;WE(56368,b,56424);c[13922]=16628;c[13924]=16648;c[13923]=0;HE(55696,56368);c[13942]=0;a=Wf()|0;c[13943]=a;XE(56432,b,56488);c[13944]=16676;c[13946]=16696;c[13945]=0;HE(55784,56432);c[13964]=0;b=iE()|0;c[13965]=b;b=c[4003]|0;YE(56496,b,56544);c[13966]=16724;c[13967]=16744;HE(55868,56496);c[13985]=0;a=Wf()|0;c[13986]=a;ZE(56552,b,56600);c[13987]=16772;c[13988]=16792;HE(55952,56552);c[14006]=0;b=iE()|0;c[14007]=b;b=c[4001]|0;YE(56608,b,56656);c[14008]=16724;c[14009]=16744;HE(56036,56608);c[14027]=0;a=Wf()|0;c[14028]=a;a=c[56032+(c[(c[14008]|0)+-12>>2]|0)+24>>2]|0;c[14050]=16724;c[14051]=16744;HE(56204,a);c[14069]=0;a=Wf()|0;c[14070]=a;ZE(56664,b,56712);c[14029]=16772;c[14030]=16792;HE(56120,56664);c[14048]=0;b=iE()|0;c[14049]=b;b=c[56116+(c[(c[14029]|0)+-12>>2]|0)+24>>2]|0;c[14071]=16772;c[14072]=16792;HE(56288,b);c[14090]=0;b=iE()|0;c[14091]=b;c[55688+(c[(c[13922]|0)+-12>>2]|0)+72>>2]=55864;c[55776+(c[(c[13944]|0)+-12>>2]|0)+72>>2]=55948;b=(c[14008]|0)+-12|0;a=56032+(c[b>>2]|0)+4|0;c[a>>2]=c[a>>2]|8192;a=(c[14029]|0)+-12|0;d=56116+(c[a>>2]|0)+4|0;c[d>>2]=c[d>>2]|8192;c[56032+(c[b>>2]|0)+72>>2]=55864;c[56116+(c[a>>2]|0)+72>>2]=55948;return}function WE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;KE(b);c[b>>2]=17008;c[b+32>>2]=d;c[b+40>>2]=e;e=Wf()|0;c[b+48>>2]=e;a[b+52>>0]=0;e=c[(c[b>>2]|0)+8>>2]|0;WN(g,b+4|0);Ub[e&63](b,g);YF(g);zb=f;return}function XE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;LE(b);c[b>>2]=16944;c[b+32>>2]=d;c[b+40>>2]=e;e=iE()|0;c[b+48>>2]=e;a[b+52>>0]=0;e=c[(c[b>>2]|0)+8>>2]|0;WN(g,b+4|0);Ub[e&63](b,g);YF(g);zb=f;return}function YE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;KE(b);c[b>>2]=16880;c[b+32>>2]=d;WN(g,b+4|0);d=XF(g,57040)|0;YF(g);c[b+36>>2]=d;c[b+40>>2]=e;e=(Gb[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;a[b+44>>0]=e;zb=f;return}function ZE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;LE(b);c[b>>2]=16816;c[b+32>>2]=d;WN(g,b+4|0);d=XF(g,57048)|0;YF(g);c[b+36>>2]=d;c[b+40>>2]=e;e=(Gb[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;a[b+44>>0]=e;zb=f;return}function _E(a){a=a|0;WD(a);SA(a);return}function $E(b,d){b=b|0;d=d|0;Gb[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=XF(d,57048)|0;c[b+36>>2]=d;d=(Gb[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;a[b+44>>0]=d;return}function aF(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;k=zb;zb=zb+16|0;d=k+8|0;e=k;f=a+36|0;g=a+40|0;h=d+8|0;i=d;b=a+32|0;a:while(1){a=c[f>>2]|0;a=Mb[c[(c[a>>2]|0)+20>>2]&31](a,c[g>>2]|0,d,h,e)|0;l=(c[e>>2]|0)-i|0;if((lz(d,1,l,c[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{j=4;break a}}}if((j|0)==4)a=((yz(c[b>>2]|0)|0)!=0)<<31>>31;zb=k;return a|0}function bF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!(a[b+44>>0]|0)){f=0;while(1){if((f|0)>=(e|0))break a;h=c[(c[b>>2]|0)+52>>2]|0;g=jE(c[d>>2]|0)|0;g=Ib[h&63](b,g)|0;if((g|0)==(iE()|0))break a;f=f+1|0;d=d+4|0}}else f=lz(d,4,e,c[b+32>>2]|0)|0;while(0);return f|0}function cF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+32|0;l=o+16|0;f=o+8|0;m=o+4|0;n=o;do if(!(JE(d,iE()|0)|0)){k=lE(d)|0;c[f>>2]=k;if(a[b+44>>0]|0){if((lz(f,4,1,c[b+32>>2]|0)|0)==1){e=15;break}b=iE()|0;break}c[m>>2]=l;e=f+4|0;g=b+36|0;h=b+40|0;i=l+8|0;j=l;k=b+32|0;while(1){b=c[g>>2]|0;b=Qb[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,f,e,n,l,i,m)|0;if((c[n>>2]|0)==(f|0)){e=14;break}if((b|0)==3){e=8;break}if(b>>>0>=2){e=14;break}f=(c[m>>2]|0)-j|0;if((lz(l,1,f,c[k>>2]|0)|0)!=(f|0)){e=14;break}if((b|0)==1)f=c[n>>2]|0;else{e=13;break}}if((e|0)==8)if((lz(f,1,1,c[k>>2]|0)|0)==1)e=13;else e=14;if((e|0)==13){e=15;break}else if((e|0)==14){b=iE()|0;break}}else e=15;while(0);if((e|0)==15)b=dF(d)|0;zb=o;return b|0}function dF(a){a=a|0;if(JE(a,iE()|0)|0)a=~(iE()|0);return a|0}function eF(a){a=a|0;HD(a);SA(a);return}function fF(b,d){b=b|0;d=d|0;Gb[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=XF(d,57040)|0;c[b+36>>2]=d;d=(Gb[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;a[b+44>>0]=d;return}function gF(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;k=zb;zb=zb+16|0;d=k+8|0;e=k;f=a+36|0;g=a+40|0;h=d+8|0;i=d;b=a+32|0;a:while(1){a=c[f>>2]|0;a=Mb[c[(c[a>>2]|0)+20>>2]&31](a,c[g>>2]|0,d,h,e)|0;l=(c[e>>2]|0)-i|0;if((lz(d,1,l,c[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{j=4;break a}}}if((j|0)==4)a=((yz(c[b>>2]|0)|0)!=0)<<31>>31;zb=k;return a|0}function hF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!(a[b+44>>0]|0)){f=0;while(1){if((f|0)>=(e|0))break a;h=c[(c[b>>2]|0)+52>>2]|0;g=cg(a[d>>0]|0)|0;g=Ib[h&63](b,g)|0;if((g|0)==(Wf()|0))break a;f=f+1|0;d=d+1|0}}else f=lz(d,1,e,c[b+32>>2]|0)|0;while(0);return f|0}function iF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+32|0;l=o+16|0;f=o+8|0;m=o+4|0;n=o;do if(!(_f(d,Wf()|0)|0)){k=eg(d)|0;a[f>>0]=k;if(a[b+44>>0]|0){if((lz(f,1,1,c[b+32>>2]|0)|0)==1){e=15;break}b=Wf()|0;break}c[m>>2]=l;e=f+1|0;g=b+36|0;h=b+40|0;i=l+8|0;j=l;k=b+32|0;while(1){b=c[g>>2]|0;b=Qb[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,f,e,n,l,i,m)|0;if((c[n>>2]|0)==(f|0)){e=14;break}if((b|0)==3){e=8;break}if(b>>>0>=2){e=14;break}f=(c[m>>2]|0)-j|0;if((lz(l,1,f,c[k>>2]|0)|0)!=(f|0)){e=14;break}if((b|0)==1)f=c[n>>2]|0;else{e=13;break}}if((e|0)==8)if((lz(f,1,1,c[k>>2]|0)|0)==1)e=13;else e=14;if((e|0)==13){e=15;break}else if((e|0)==14){b=Wf()|0;break}}else e=15;while(0);if((e|0)==15)b=dg(d)|0;zb=o;return b|0}function jF(a){a=a|0;WD(a);SA(a);return}function kF(b,d){b=b|0;d=d|0;var e=0,f=0;f=XF(d,57048)|0;e=b+36|0;c[e>>2]=f;f=Gb[c[(c[f>>2]|0)+24>>2]&127](f)|0;d=b+44|0;c[d>>2]=f;e=c[e>>2]|0;e=(Gb[c[(c[e>>2]|0)+28>>2]&127](e)|0)&1;a[b+53>>0]=e;if((c[d>>2]|0)>8)nJ(49046);else return}function lF(a){a=a|0;return oF(a,0)|0}function mF(a){a=a|0;return oF(a,1)|0}function nF(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;l=zb;zb=zb+32|0;h=l+16|0;i=l+8|0;f=l+4|0;g=l;j=JE(d,iE()|0)|0;k=b+52|0;e=(a[k>>0]|0)!=0;do if(j)if(e)e=d;else{e=c[b+48>>2]|0;d=((JE(e,iE()|0)|0)^1)&1;a[k>>0]=d}else{if(e){j=b+48|0;e=lE(c[j>>2]|0)|0;c[f>>2]=e;e=c[b+36>>2]|0;switch(Qb[c[(c[e>>2]|0)+12>>2]&15](e,c[b+40>>2]|0,f,f+4|0,g,h,h+8|0,i)|0){case 1:case 2:{g=11;break}case 3:{a[h>>0]=c[j>>2];c[i>>2]=h+1;g=8;break}default:g=8}a:do if((g|0)==8){e=b+32|0;while(1){f=c[i>>2]|0;if(f>>>0<=h>>>0){f=1;e=0;break a}b=f+-1|0;c[i>>2]=b;if((cA(a[b>>0]|0,c[e>>2]|0)|0)==-1){g=11;break}}}while(0);if((g|0)==11){f=0;e=iE()|0}if(f)e=j;else break}else e=b+48|0;c[e>>2]=d;a[k>>0]=1;e=d}while(0);zb=l;return e|0}function oF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=zb;zb=zb+32|0;p=r+16|0;q=r+8|0;l=r+4|0;m=r;g=b+52|0;if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){d=iE()|0;c[f>>2]=d;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;o=b+32|0;f=0;while(1){if(f>>>0>=e>>>0){n=9;break}g=Zz(c[o>>2]|0)|0;if((g|0)==-1){n=8;break}a[p+f>>0]=g;f=f+1|0}if((n|0)==8)e=iE()|0;else if((n|0)==9){do if(!(a[b+53>>0]|0)){i=b+40|0;j=b+36|0;k=q+4|0;a:while(1){s=c[i>>2]|0;g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;t=c[j>>2]|0;h=p+e|0;switch(Qb[c[(c[t>>2]|0)+16>>2]&15](t,s,p,h,l,q,k,m)|0){case 3:{n=15;break a}case 2:{n=17;break a}case 1:break;default:break a}t=c[i>>2]|0;c[t>>2]=f;c[t+4>>2]=g;if((e|0)==8){n=17;break}f=Zz(c[o>>2]|0)|0;if((f|0)==-1){n=17;break}a[h>>0]=f;e=e+1|0}if((n|0)==15)c[q>>2]=a[p>>0];else if((n|0)==17){e=iE()|0;break}n=19}else{c[q>>2]=a[p>>0];n=19}while(0);b:do if((n|0)==19){c:do if(d){t=jE(c[q>>2]|0)|0;c[b+48>>2]=t}else{do{if((e|0)<=0)break c;e=e+-1|0;t=jE(a[p+e>>0]|0)|0}while((cA(t,c[o>>2]|0)|0)!=-1);e=iE()|0;break b}while(0);e=jE(c[q>>2]|0)|0}while(0)}}zb=r;return e|0}function pF(a){a=a|0;HD(a);SA(a);return}function qF(b,d){b=b|0;d=d|0;var e=0,f=0;f=XF(d,57040)|0;e=b+36|0;c[e>>2]=f;f=Gb[c[(c[f>>2]|0)+24>>2]&127](f)|0;d=b+44|0;c[d>>2]=f;e=c[e>>2]|0;e=(Gb[c[(c[e>>2]|0)+28>>2]&127](e)|0)&1;a[b+53>>0]=e;if((c[d>>2]|0)>8)nJ(49046);else return}function rF(a){a=a|0;return uF(a,0)|0}function sF(a){a=a|0;return uF(a,1)|0}function tF(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;l=zb;zb=zb+32|0;h=l+16|0;i=l+4|0;f=l+8|0;g=l;j=_f(d,Wf()|0)|0;k=b+52|0;e=(a[k>>0]|0)!=0;do if(j)if(e)e=d;else{e=c[b+48>>2]|0;d=((_f(e,Wf()|0)|0)^1)&1;a[k>>0]=d}else{if(e){j=b+48|0;e=eg(c[j>>2]|0)|0;a[f>>0]=e;e=c[b+36>>2]|0;switch(Qb[c[(c[e>>2]|0)+12>>2]&15](e,c[b+40>>2]|0,f,f+1|0,g,h,h+8|0,i)|0){case 1:case 2:{g=11;break}case 3:{a[h>>0]=c[j>>2];c[i>>2]=h+1;g=8;break}default:g=8}a:do if((g|0)==8){e=b+32|0;while(1){f=c[i>>2]|0;if(f>>>0<=h>>>0){f=1;e=0;break a}b=f+-1|0;c[i>>2]=b;if((cA(a[b>>0]|0,c[e>>2]|0)|0)==-1){g=11;break}}}while(0);if((g|0)==11){f=0;e=Wf()|0}if(f)e=j;else break}else e=b+48|0;c[e>>2]=d;a[k>>0]=1;e=d}while(0);zb=l;return e|0}function uF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=zb;zb=zb+32|0;p=r+16|0;q=r+8|0;l=r+4|0;m=r;g=b+52|0;if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){d=Wf()|0;c[f>>2]=d;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;o=b+32|0;f=0;while(1){if(f>>>0>=e>>>0){n=9;break}g=Zz(c[o>>2]|0)|0;if((g|0)==-1){n=8;break}a[p+f>>0]=g;f=f+1|0}if((n|0)==8)e=Wf()|0;else if((n|0)==9){do if(!(a[b+53>>0]|0)){i=b+40|0;j=b+36|0;k=q+1|0;a:while(1){s=c[i>>2]|0;g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;t=c[j>>2]|0;h=p+e|0;switch(Qb[c[(c[t>>2]|0)+16>>2]&15](t,s,p,h,l,q,k,m)|0){case 3:{n=15;break a}case 2:{n=17;break a}case 1:break;default:break a}t=c[i>>2]|0;c[t>>2]=f;c[t+4>>2]=g;if((e|0)==8){n=17;break}f=Zz(c[o>>2]|0)|0;if((f|0)==-1){n=17;break}a[h>>0]=f;e=e+1|0}if((n|0)==15)a[q>>0]=a[p>>0]|0;else if((n|0)==17){e=Wf()|0;break}n=19}else{a[q>>0]=a[p>>0]|0;n=19}while(0);b:do if((n|0)==19){c:do if(d){t=cg(a[q>>0]|0)|0;c[b+48>>2]=t}else{do{if((e|0)<=0)break c;e=e+-1|0;t=cg(a[p+e>>0]|0)|0}while((cA(t,c[o>>2]|0)|0)!=-1);e=Wf()|0;break b}while(0);e=cg(a[q>>0]|0)|0}while(0)}}zb=r;return e|0}function vF(a){a=a|0;CF(a);return}function wF(a){a=a|0;vF(a);SA(a);return}function xF(a){a=a|0;if(a|0)Sb[c[(c[a>>2]|0)+4>>2]&255](a);return}function yF(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=c;while(1){if((e|0)==(f|0)){h=7;break}if((b|0)==(d|0)){b=-1;break}c=a[b>>0]|0;g=a[e>>0]|0;if(c<<24>>24>24){b=-1;break}if(g<<24>>24>24){b=1;break}e=e+1|0;b=b+1|0}if((h|0)==7)b=(b|0)!=(d|0)&1;return b|0}function zF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;BF(a,d,e);return}function AF(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;b=0;while(1){if((c|0)==(d|0))break;e=(b<<4)+(a[c>>0]|0)|0;f=e&-268435456;b=(f>>>24|f)^e;c=c+1|0}return b|0}function BF(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;j=zb;zb=zb+16|0;g=d;i=j;f=e-g|0;if(f>>>0>4294967279)eO(b);if(f>>>0<11){a[b+11>>0]=f;h=b}else{k=f+16&-16;h=tB(k)|0;c[b>>2]=h;c[b+8>>2]=k|-2147483648;c[b+4>>2]=f}f=e-g|0;b=h;while(1){if((d|0)==(e|0))break;bg(b,d);d=d+1|0;b=b+1|0}a[i>>0]=0;bg(h+f|0,i);zb=j;return}function CF(a){a=a|0;return}function DF(a){a=a|0;CF(a);return}function EF(a){a=a|0;DF(a);SA(a);return}function FF(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;a=b;while(1){if((e|0)==(f|0)){h=7;break}if((a|0)==(d|0)){a=-1;break}b=c[a>>2]|0;g=c[e>>2]|0;if((b|0)<(g|0)){a=-1;break}if((g|0)<(b|0)){a=1;break}e=e+4|0;a=a+4|0}if((h|0)==7)a=(a|0)!=(d|0)&1;return a|0}function GF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;IF(a,d,e);return}function HF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=0;while(1){if((b|0)==(d|0))break;e=(c[b>>2]|0)+(a<<4)|0;f=e&-268435456;a=(f>>>24|f)^e;b=b+4|0}return a|0}function IF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;i=j;h=e-d>>2;if(h>>>0>1073741807)eO(b);do if(h>>>0>=2){g=h+4&-4;if(g>>>0>1073741823)ua();else{f=tB(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=h;break}}else{a[b+8+3>>0]=h;f=b}while(0);while(1){if((d|0)==(e|0))break;JF(f,d);d=d+4|0;f=f+4|0}c[i>>2]=0;JF(f,i);zb=j;return}function JF(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];return}function KF(a){a=a|0;CF(a);return}function LF(a){a=a|0;CF(a);SA(a);return}function MF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+48|0;i=o+40|0;n=o;j=o+32|0;k=o+36|0;l=o+28|0;m=o+24|0;if(!(c[f+4>>2]&1)){c[j>>2]=-1;m=c[(c[b>>2]|0)+16>>2]|0;c[k>>2]=c[d>>2];c[l>>2]=c[e>>2];c[n>>2]=c[k>>2];c[i>>2]=c[l>>2];n=Ob[m&63](b,n,i,f,g,j)|0;c[d>>2]=n;switch(c[j>>2]|0){case 0:{a[h>>0]=0;break}case 1:{a[h>>0]=1;break}default:{a[h>>0]=1;c[g>>2]=4}}i=c[d>>2]|0}else{IE(i,f);l=XF(i,56736)|0;YF(i);IE(i,f);b=XF(i,56752)|0;YF(i);Ub[c[(c[b>>2]|0)+24>>2]&63](n,b);Ub[c[(c[b>>2]|0)+28>>2]&63](n+12|0,b);c[m>>2]=c[e>>2];b=n+24|0;c[i>>2]=c[m>>2];i=(FG(d,i,n,b,l,g,1)|0)==(n|0)&1;a[h>>0]=i;i=c[d>>2]|0;do{b=b+-12|0;jO(b)}while((b|0)!=(n|0))}zb=o;return i|0}function NF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=DG(a,j,i,e,f,g)|0;zb=h;return g|0}function OF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=BG(a,j,i,e,f,g)|0;zb=h;return g|0}function PF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=zG(a,j,i,e,f,g)|0;zb=h;return g|0}function QF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=xG(a,j,i,e,f,g)|0;zb=h;return g|0}function RF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=vG(a,j,i,e,f,g)|0;zb=h;return g|0}function SF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=pG(a,j,i,e,f,g)|0;zb=h;return g|0}function TF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=nG(a,j,i,e,f,g)|0;zb=h;return g|0}function UF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=lG(a,j,i,e,f,g)|0;zb=h;return g|0}function VF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=gG(a,j,i,e,f,g)|0;zb=h;return g|0}function WF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=zb;zb=zb+240|0;v=y+192|0;t=y+160|0;w=y+220|0;x=y+208|0;u=y+204|0;q=y;r=y+200|0;s=y+196|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[w+(b<<2)>>2]=0;b=b+1|0}IE(x,f);b=XF(x,56736)|0;Kb[c[(c[b>>2]|0)+32>>2]&15](b,12928,12954,t)|0;YF(x);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[x+(b<<2)>>2]=0;b=b+1|0}p=x+11|0;o=x+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;oO(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b;c[r>>2]=q;c[s>>2]=0;n=x+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;z=22;break}}else z=22;while(0);if((z|0)==22){z=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[u>>2]|0)==(b+f|0)){oO(x,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;oO(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,16,b,u,s,0,w,q,r,t)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}oO(x,(c[u>>2]|0)-b|0,0);t=(a[p>>0]|0)<0?c[x>>2]|0:x;u=_F()|0;c[v>>2]=h;if(($F(t,u,49194,v)|0)!=1)c[g>>2]=4;if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{z=52;break}else{c[e>>2]=0;z=50;break}}else z=50;while(0);if((z|0)==50?f:0)z=52;if((z|0)==52)c[g>>2]=c[g>>2]|2;z=c[d>>2]|0;jO(x);jO(w);zb=y;return z|0}function XF(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return bG(a,aG(b)|0)|0}function YF(a){a=a|0;var b=0,d=0;a=c[a>>2]|0;d=a+4|0;b=c[d>>2]|0;c[d>>2]=b+-1;if(!b)Sb[c[(c[a>>2]|0)+8>>2]&255](a);return}function ZF(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(a[l+24>>0]|0)==b<<24>>24;if(!m?(a[l+25>>0]|0)!=b<<24>>24:0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=a[i+11>>0]|0;if(b<<24>>24==h<<24>>24?((n<<24>>24<0?c[i+4>>2]|0:n&255)|0)!=0:0){m=c[k>>2]|0;if((m-j|0)>=160){m=0;break}f=c[g>>2]|0;c[k>>2]=m+4;c[m>>2]=f;c[g>>2]=0;m=0;break}i=l+26|0;h=0;while(1){m=l+h|0;if((h|0)==26){m=i;break}if((a[m>>0]|0)==b<<24>>24)break;else h=h+1|0}m=m-l|0;if((m|0)>23)m=-1;else{switch(d|0){case 10:case 8:{if((m|0)>=(d|0)){m=-1;break a}break}case 16:{if((m|0)>=22){if(p){m=-1;break a}if((o-e|0)>=3){m=-1;break a}if((a[o+-1>>0]|0)!=48){m=-1;break a}c[g>>2]=0;m=a[12928+m>>0]|0;c[f>>2]=o+1;a[o>>0]=m;m=0;break a}break}default:{}}m=a[12928+m>>0]|0;c[f>>2]=o+1;a[o>>0]=m;c[g>>2]=(c[g>>2]|0)+1;m=0}}while(0);return m|0}function _F(){var b=0;if((a[54800]|0)==0?nB(54800)|0:0){b=az(2147483647,49197,0)|0;c[14186]=b;pB(54800)}return c[14186]|0}function $F(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;c[g>>2]=e;e=ez(b)|0;b=Dz(a,d,g)|0;if(e|0)ez(e)|0;zb=f;return b|0}function aG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=zb;zb=zb+48|0;b=f+32|0;d=f+24|0;e=f;g=f+16|0;c[g>>2]=143;c[g+4>>2]=0;c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];dG(e,b,a);if((c[a>>2]|0)!=-1){c[b>>2]=e;c[d>>2]=b;$N(a,d,144)}zb=f;return (c[a+4>>2]|0)+-1|0}function bG(a,b){a=a|0;b=b|0;return c[(c[a+8>>2]|0)+(b<<2)>>2]|0}function cG(a){a=a|0;var b=0;b=c[14187]|0;c[14187]=b+1;c[a+4>>2]=b+1;return}function dG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b>>2]|0;b=c[b+4>>2]|0;c[a>>2]=d;c[a+4>>2]=e;c[a+8>>2]=b;return}function eG(a){a=a|0;fG(c[c[a>>2]>>2]|0);return}function fG(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;e=c[a+8>>2]|0;d=(c[a>>2]|0)+(e>>1)|0;if(!(e&1))a=b;else a=c[(c[d>>2]|0)+b>>2]|0;Sb[a&255](d);return}function gG(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+240|0;s=D+160|0;t=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;w=D;x=D+196|0;y=D+192|0;z=D+229|0;r=D+228|0;hG(C,f,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){f=c[k+12>>2]|0;if((f|0)==(c[k+16>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[p>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){oO(B,f<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}l=k+12|0;f=c[l>>2]|0;m=k+16|0;if((f|0)==(c[m>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=cg(a[f>>0]|0)|0;if(iG(f&255,z,r,b,v,a[t>>0]|0,a[u>>0]|0,C,w,x,y,s)|0)break;f=c[l>>2]|0;if((f|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=f+1;cg(a[f>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+jG(b,c[v>>2]|0,h);g[i>>3]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function hG(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;h=zb;zb=zb+16|0;i=h;IE(i,d);d=XF(i,56736)|0;Kb[c[(c[d>>2]|0)+32>>2]&15](d,12928,12960,e)|0;e=XF(i,56752)|0;d=Gb[c[(c[e>>2]|0)+12>>2]&127](e)|0;a[f>>0]=d;f=Gb[c[(c[e>>2]|0)+16>>2]&127](e)|0;a[g>>0]=f;Ub[c[(c[e>>2]|0)+20>>2]&63](b,e);YF(i);zb=h;return}function iG(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0;a:do if(b<<24>>24==h<<24>>24)if(a[d>>0]|0){a[d>>0]=0;e=c[g>>2]|0;c[g>>2]=e+1;a[e>>0]=46;g=a[j+11>>0]|0;if(((g<<24>>24<0?c[j+4>>2]|0:g&255)|0)!=0?(o=c[l>>2]|0,(o-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;o=0}else o=0}else o=-1;else{if(b<<24>>24==i<<24>>24?(i=a[j+11>>0]|0,(i<<24>>24<0?c[j+4>>2]|0:i&255)|0):0){if(!(a[d>>0]|0)){o=-1;break}o=c[l>>2]|0;if((o-k|0)>=160){o=0;break}k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;c[m>>2]=0;o=0;break}i=n+32|0;h=0;while(1){o=n+h|0;if((h|0)==32){o=i;break}if((a[o>>0]|0)==b<<24>>24)break;else h=h+1|0}h=o-n|0;if((h|0)>31)o=-1;else{i=a[12928+h>>0]|0;switch(h|0){case 24:case 25:{o=c[g>>2]|0;if((o|0)!=(f|0)?(a[o+-1>>0]&95)!=(a[e>>0]&127):0){o=-1;break a}c[g>>2]=o+1;a[o>>0]=i;o=0;break a}case 23:case 22:{a[e>>0]=80;o=c[g>>2]|0;c[g>>2]=o+1;a[o>>0]=i;o=0;break a}default:{o=i&95;if((((o|0)==(a[e>>0]|0)?(a[e>>0]=o|128,a[d>>0]|0):0)?(a[d>>0]=0,e=a[j+11>>0]|0,(e<<24>>24<0?c[j+4>>2]|0:e&255)|0):0)?(p=c[l>>2]|0,(p-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=p+4;c[p>>2]=k}l=c[g>>2]|0;c[g>>2]=l+1;a[l>>0]=i;if((h|0)>21){o=0;break a}c[m>>2]=(c[m>>2]|0)+1;o=0;break a}}}}while(0);return o|0}function jG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0,j=0;i=zb;zb=zb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=ox()|0;g=c[g>>2]|0;j=ox()|0;c[j>>2]=0;e=+rA(a,f,_F()|0);a=ox()|0;a=c[a>>2]|0;if(!a){j=ox()|0;c[j>>2]=g}if((c[f>>2]|0)==(b|0)){if((a|0)==68)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}zb=i;return +e}function kG(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;j=b+11|0;h=a[j>>0]|0;k=b+4|0;g=c[k>>2]|0;i=h&255;do if((h<<24>>24<0?g:i)|0){if((d|0)!=(e|0)){g=e;h=d;while(1){g=g+-4|0;if(h>>>0>=g>>>0)break;i=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=i;h=h+4|0}h=a[j>>0]|0;i=h&255;g=c[k>>2]|0}j=h<<24>>24<0;b=j?c[b>>2]|0:b;k=e+-4|0;j=b+(j?g:i)|0;g=b;while(1){h=a[g>>0]|0;i=h<<24>>24>0&h<<24>>24!=127;if(d>>>0>=k>>>0)break;if(i?(c[d>>2]|0)!=(h<<24>>24|0):0){l=11;break}d=d+4|0;g=(j-g|0)>1?g+1|0:g}if((l|0)==11){c[f>>2]=4;break}if(i?((c[k>>2]|0)+-1|0)>>>0>=h<<24>>24>>>0:0)c[f>>2]=4}while(0);return}function lG(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+240|0;s=D+160|0;t=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;w=D;x=D+196|0;y=D+192|0;z=D+229|0;r=D+228|0;hG(C,f,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){f=c[k+12>>2]|0;if((f|0)==(c[k+16>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[p>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){oO(B,f<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}l=k+12|0;f=c[l>>2]|0;m=k+16|0;if((f|0)==(c[m>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=cg(a[f>>0]|0)|0;if(iG(f&255,z,r,b,v,a[t>>0]|0,a[u>>0]|0,C,w,x,y,s)|0)break;f=c[l>>2]|0;if((f|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=f+1;cg(a[f>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+mG(b,c[v>>2]|0,h);g[i>>3]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function mG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0,j=0;i=zb;zb=zb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=ox()|0;g=c[g>>2]|0;j=ox()|0;c[j>>2]=0;e=+qA(a,f,_F()|0);a=ox()|0;a=c[a>>2]|0;if(!a){j=ox()|0;c[j>>2]=g}if((c[f>>2]|0)==(b|0)){if((a|0)==68)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}zb=i;return +e}function nG(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+240|0;s=D+160|0;t=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;w=D;x=D+196|0;y=D+192|0;z=D+229|0;r=D+228|0;hG(C,g,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){g=c[k+12>>2]|0;if((g|0)==(c[k+16>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=cg(a[g>>0]|0)|0;if(_f(g,Wf()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=cg(a[g>>0]|0)|0;if(!(_f(g,Wf()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}g=a[p>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[v>>2]|0)==(b+g|0)){oO(B,g<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+g}l=k+12|0;g=c[l>>2]|0;m=k+16|0;if((g|0)==(c[m>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=cg(a[g>>0]|0)|0;if(iG(g&255,z,r,b,v,a[t>>0]|0,a[u>>0]|0,C,w,x,y,s)|0)break;g=c[l>>2]|0;if((g|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=g+1;cg(a[g>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+oG(b,c[v>>2]|0,h);f[i>>2]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;g=1}else g=0}else g=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(g)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?g:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function oG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0,j=0;i=zb;zb=zb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=ox()|0;g=c[g>>2]|0;j=ox()|0;c[j>>2]=0;e=+pA(a,f,_F()|0);a=ox()|0;a=c[a>>2]|0;if(!a){j=ox()|0;c[j>>2]=g}if((c[f>>2]|0)==(b|0)){if((a|0)==68)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}zb=i;return +e}function pG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}w=tG(b,c[s>>2]|0,g,x)|0;x=F()|0;c[h>>2]=w;c[h+4>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function qG(a){a=a|0;switch(c[a+4>>2]&74){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function rG(a,b,c){a=a|0;b=b|0;c=c|0;return uG(a,b,c)|0}function sG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=zb;zb=zb+16|0;g=f;IE(g,d);d=XF(g,56752)|0;h=Gb[c[(c[d>>2]|0)+16>>2]&127](d)|0;a[e>>0]=h;Ub[c[(c[d>>2]|0)+20>>2]&63](b,d);YF(g);zb=f;return}function tG(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;k=zb;zb=zb+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;f=0;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;f=0;b=0;break}}h=ox()|0;h=c[h>>2]|0;g=ox()|0;c[g>>2]=0;b=tx(b,i,f,_F()|0)|0;g=F()|0;f=ox()|0;f=c[f>>2]|0;if(!f){l=ox()|0;c[l>>2]=h}do if((c[i>>2]|0)==(d|0))if((f|0)==68){c[e>>2]=4;b=-1;f=-1;break}else{l=PO(0,0,b|0,g|0)|0;f=F()|0;b=j?l:b;f=j?f:g;break}else{c[e>>2]=4;b=0;f=0}while(0)}while(0);E(f|0);zb=k;return b|0}function uG(a,b,c){a=a|0;b=b|0;c=c|0;return 12928}function vG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=wG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function wG(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;k=zb;zb=zb+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=ox()|0;h=c[h>>2]|0;g=ox()|0;c[g>>2]=0;b=tx(b,i,f,_F()|0)|0;f=F()|0;g=ox()|0;g=c[g>>2]|0;if(!g){l=ox()|0;c[l>>2]=h}do if((c[i>>2]|0)==(d|0))if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==68){c[e>>2]=4;b=-1;break}else{b=j?0-b|0:b;break}else{c[e>>2]=4;b=0}while(0)}while(0);zb=k;return b|0}function xG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=yG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function yG(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;k=zb;zb=zb+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=ox()|0;h=c[h>>2]|0;g=ox()|0;c[g>>2]=0;b=tx(b,i,f,_F()|0)|0;f=F()|0;g=ox()|0;g=c[g>>2]|0;if(!g){l=ox()|0;c[l>>2]=h}do if((c[i>>2]|0)==(d|0))if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==68){c[e>>2]=4;b=-1;break}else{b=j?0-b|0:b;break}else{c[e>>2]=4;b=0}while(0)}while(0);zb=k;return b|0}function zG(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,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=zb;zb=zb+240|0;s=C+224|0;z=C+212|0;A=C+200|0;t=C+196|0;u=C;w=C+192|0;x=C+188|0;y=qG(g)|0;r=rG(d,g,C+160|0)|0;sG(z,g,s);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[A+(d<<2)>>2]=0;d=d+1|0}p=A+11|0;q=A+8|0;if((a[p>>0]|0)<0)d=(c[q>>2]&2147483647)+-1|0;else d=10;oO(A,d,0);d=(a[p>>0]|0)<0?c[A>>2]|0:A;c[t>>2]=d;c[w>>2]=u;c[x>>2]=0;o=A+4|0;k=c[e>>2]|0;j=k;a:while(1){if(k){g=c[k+12>>2]|0;if((g|0)==(c[k+16>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=cg(a[g>>0]|0)|0;if(_f(g,Wf()|0)|0){c[e>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[f>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=cg(a[g>>0]|0)|0;if(!(_f(g,Wf()|0)|0))if(l)break;else break a;else{c[f>>2]=0;B=19;break}}else B=19;while(0);if((B|0)==19){B=0;if(l){j=0;break}else j=0}g=a[p>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[t>>2]|0)==(d+g|0)){oO(A,g<<1,0);if((a[p>>0]|0)<0)d=(c[q>>2]&2147483647)+-1|0;else d=10;oO(A,d,0);d=(a[p>>0]|0)<0?c[A>>2]|0:A;c[t>>2]=d+g}l=k+12|0;g=c[l>>2]|0;m=k+16|0;if((g|0)==(c[m>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=cg(a[g>>0]|0)|0;if(ZF(g&255,y,d,t,x,a[s>>0]|0,z,u,w,r)|0)break;g=c[l>>2]|0;if((g|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=g+1;cg(a[g>>0]|0)|0}j=n}s=a[z+11>>0]|0;if((s<<24>>24<0?c[z+4>>2]|0:s&255)|0?(v=c[w>>2]|0,(v-u|0)<160):0){x=c[x>>2]|0;c[w>>2]=v+4;c[v>>2]=x}y=AG(d,c[t>>2]|0,h,y)|0;b[i>>1]=y;kG(z,u,c[w>>2]|0,h);if(k){d=c[k+12>>2]|0;if((d|0)==(c[k+16>>2]|0))d=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else d=cg(a[d>>0]|0)|0;if(_f(d,Wf()|0)|0){c[e>>2]=0;g=1}else g=0}else g=1;do if(j){d=c[j+12>>2]|0;if((d|0)==(c[j+16>>2]|0))d=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else d=cg(a[d>>0]|0)|0;if(!(_f(d,Wf()|0)|0))if(g)break;else{B=50;break}else{c[f>>2]=0;B=48;break}}else B=48;while(0);if((B|0)==48?g:0)B=50;if((B|0)==50)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;jO(A);jO(z);zb=C;return B|0}function AG(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;k=zb;zb=zb+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=ox()|0;h=c[h>>2]|0;g=ox()|0;c[g>>2]=0;b=tx(b,i,f,_F()|0)|0;f=F()|0;g=ox()|0;g=c[g>>2]|0;if(!g){l=ox()|0;c[l>>2]=h}do if((c[i>>2]|0)==(d|0)){if(f>>>0>0|(f|0)==0&b>>>0>65535|(g|0)==68){c[e>>2]=4;b=-1;break}if(j)b=0-b&65535;else b=b&65535}else{c[e>>2]=4;b=0}while(0)}while(0);zb=k;return b|0}function BG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}w=CG(b,c[s>>2]|0,g,x)|0;x=F()|0;c[h>>2]=w;c[h+4>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function CG(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;i=zb;zb=zb+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;e=0;a=0}else{h=ox()|0;h=c[h>>2]|0;f=ox()|0;c[f>>2]=0;a=Cx(a,g,e,_F()|0)|0;e=F()|0;f=ox()|0;f=c[f>>2]|0;if(!f){j=ox()|0;c[j>>2]=h}if((c[g>>2]|0)==(b|0)){if((f|0)==68){c[d>>2]=4;e=(e|0)>0|(e|0)==0&a>>>0>0;a=e?-1:0;e=e?2147483647:-2147483648}}else{c[d>>2]=4;a=0;e=0}}E(e|0);zb=i;return a|0}function DG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=EG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function EG(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;i=zb;zb=zb+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;a=0}else{h=ox()|0;h=c[h>>2]|0;f=ox()|0;c[f>>2]=0;a=Cx(a,g,e,_F()|0)|0;e=F()|0;f=ox()|0;f=c[f>>2]|0;if(!f){j=ox()|0;c[j>>2]=h}a:do if((c[g>>2]|0)==(b|0)){do if((f|0)==68){c[d>>2]=4;if((e|0)>0|(e|0)==0&a>>>0>0){a=2147483647;break a}}else{if((e|0)<-1|(e|0)==-1&a>>>0<2147483648){c[d>>2]=4;break}if((e|0)>0|(e|0)==0&a>>>0>2147483647){c[d>>2]=4;a=2147483647;break a}else break a}while(0);a=-2147483648}else{c[d>>2]=4;a=0}while(0)}zb=i;return a|0}function FG(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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=zb;zb=zb+112|0;k=w;l=(f-e|0)/12|0;if(l>>>0>100){k=FO(l)|0;if(!k)aO();else{j=k;u=k}}else{j=k;u=0}n=e;o=j;k=0;while(1){if((n|0)==(f|0))break;m=a[n+11>>0]|0;if(m<<24>>24<0)m=c[n+4>>2]|0;else m=m&255;if(!m){a[o>>0]=2;l=l+-1|0;k=k+1|0}else a[o>>0]=1;n=n+12|0;o=o+1|0}t=0;r=k;while(1){k=c[b>>2]|0;do if(k){m=c[k+12>>2]|0;if((m|0)==(c[k+16>>2]|0))k=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else k=cg(a[m>>0]|0)|0;if(_f(k,Wf()|0)|0){c[b>>2]=0;o=1;break}else{o=(c[b>>2]|0)==0;break}}else o=1;while(0);m=c[d>>2]|0;if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=cg(a[k>>0]|0)|0;if(_f(k,Wf()|0)|0){c[d>>2]=0;k=1;m=0}else k=0}else{k=1;m=0}n=c[b>>2]|0;if(!((l|0)!=0&(o^k)))break;k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=cg(a[k>>0]|0)|0;k=k&255;if(!i)k=Ib[c[(c[g>>2]|0)+12>>2]&63](g,k)|0;s=t+1|0;p=e;o=0;q=j;while(1){if((p|0)==(f|0))break;do if((a[q>>0]|0)==1){n=p+11|0;if((a[n>>0]|0)<0)m=c[p>>2]|0;else m=p;m=a[m+t>>0]|0;if(!i)m=Ib[c[(c[g>>2]|0)+12>>2]&63](g,m)|0;if(k<<24>>24!=m<<24>>24){a[q>>0]=0;m=o;n=r;l=l+-1|0;break}m=a[n>>0]|0;if(m<<24>>24<0)m=c[p+4>>2]|0;else m=m&255;if((m|0)==(s|0)){a[q>>0]=2;m=1;n=r+1|0;l=l+-1|0}else{m=1;n=r}}else{m=o;n=r}while(0);p=p+12|0;o=m;q=q+1|0;r=n}a:do if(o){k=c[b>>2]|0;m=k+12|0;n=c[m>>2]|0;if((n|0)==(c[k+16>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[m>>2]=n+1;cg(a[n>>0]|0)|0}if((r+l|0)>>>0>1){n=e;o=j;k=r;while(1){if((n|0)==(f|0))break a;if((a[o>>0]|0)==2){m=a[n+11>>0]|0;if(m<<24>>24<0)m=c[n+4>>2]|0;else m=m&255;if((m|0)!=(s|0)){a[o>>0]=0;k=k+-1|0}}n=n+12|0;o=o+1|0}}else k=r}else k=r;while(0);t=s;r=k}do if(n){k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=cg(a[k>>0]|0)|0;if(_f(k,Wf()|0)|0){c[b>>2]=0;l=1;break}else{l=(c[b>>2]|0)==0;break}}else l=1;while(0);do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=cg(a[k>>0]|0)|0;if(!(_f(k,Wf()|0)|0))if(l)break;else{v=79;break}else{c[d>>2]=0;v=41;break}}else v=41;while(0);if((v|0)==41?l:0)v=79;if((v|0)==79)c[h>>2]=c[h>>2]|2;while(1){if((e|0)==(f|0)){v=84;break}if((a[j>>0]|0)==2)break;e=e+12|0;j=j+1|0}if((v|0)==84){c[h>>2]=c[h>>2]|4;e=f}GO(u);zb=w;return e|0}function GG(a){a=a|0;CF(a);return}function HG(a){a=a|0;CF(a);SA(a);return}function IG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+48|0;i=o+40|0;n=o;j=o+32|0;k=o+36|0;l=o+28|0;m=o+24|0;if(!(c[f+4>>2]&1)){c[j>>2]=-1;m=c[(c[b>>2]|0)+16>>2]|0;c[k>>2]=c[d>>2];c[l>>2]=c[e>>2];c[n>>2]=c[k>>2];c[i>>2]=c[l>>2];n=Ob[m&63](b,n,i,f,g,j)|0;c[d>>2]=n;switch(c[j>>2]|0){case 0:{a[h>>0]=0;break}case 1:{a[h>>0]=1;break}default:{a[h>>0]=1;c[g>>2]=4}}i=c[d>>2]|0}else{IE(i,f);l=XF(i,56768)|0;YF(i);IE(i,f);b=XF(i,56776)|0;YF(i);Ub[c[(c[b>>2]|0)+24>>2]&63](n,b);Ub[c[(c[b>>2]|0)+28>>2]&63](n+12|0,b);c[m>>2]=c[e>>2];b=n+24|0;c[i>>2]=c[m>>2];i=(gH(d,i,n,b,l,g,1)|0)==(n|0)&1;a[h>>0]=i;i=c[d>>2]|0;do{b=b+-12|0;wO(b)}while((b|0)!=(n|0))}zb=o;return i|0}function JG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=fH(a,j,i,e,f,g)|0;zb=h;return g|0}function KG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=eH(a,j,i,e,f,g)|0;zb=h;return g|0}function LG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=dH(a,j,i,e,f,g)|0;zb=h;return g|0}function MG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=cH(a,j,i,e,f,g)|0;zb=h;return g|0}function NG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=bH(a,j,i,e,f,g)|0;zb=h;return g|0}function OG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=ZG(a,j,i,e,f,g)|0;zb=h;return g|0}function PG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=YG(a,j,i,e,f,g)|0;zb=h;return g|0}function QG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=XG(a,j,i,e,f,g)|0;zb=h;return g|0}function RG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=UG(a,j,i,e,f,g)|0;zb=h;return g|0}function SG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=zb;zb=zb+304|0;v=y+264|0;t=y+160|0;w=y+292|0;x=y+280|0;u=y+276|0;q=y;r=y+272|0;s=y+268|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[w+(b<<2)>>2]=0;b=b+1|0}IE(x,f);b=XF(x,56768)|0;Kb[c[(c[b>>2]|0)+48>>2]&15](b,12928,12954,t)|0;YF(x);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[x+(b<<2)>>2]=0;b=b+1|0}p=x+11|0;o=x+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;oO(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b;c[r>>2]=q;c[s>>2]=0;n=x+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;z=22;break}}else z=22;while(0);if((z|0)==22){z=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[u>>2]|0)==(b+f|0)){oO(x,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;oO(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,16,b,u,s,0,w,q,r,t)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}oO(x,(c[u>>2]|0)-b|0,0);t=(a[p>>0]|0)<0?c[x>>2]|0:x;u=_F()|0;c[v>>2]=h;if(($F(t,u,49194,v)|0)!=1)c[g>>2]=4;if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{z=52;break}else{c[e>>2]=0;z=50;break}}else z=50;while(0);if((z|0)==50?f:0)z=52;if((z|0)==52)c[g>>2]=c[g>>2]|2;z=c[d>>2]|0;jO(x);jO(w);zb=y;return z|0}function TG(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(c[l+96>>2]|0)==(b|0);if(!m?(c[l+100>>2]|0)!=(b|0):0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=a[i+11>>0]|0;if((b|0)==(h|0)?((n<<24>>24<0?c[i+4>>2]|0:n&255)|0)!=0:0){m=c[k>>2]|0;if((m-j|0)>=160){m=0;break}f=c[g>>2]|0;c[k>>2]=m+4;c[m>>2]=f;c[g>>2]=0;m=0;break}i=l+104|0;h=0;while(1){m=l+(h<<2)|0;if((h|0)==26){m=i;break}if((c[m>>2]|0)==(b|0))break;else h=h+1|0}m=m-l|0;h=m>>2;if((m|0)>92)m=-1;else{switch(d|0){case 10:case 8:{if((h|0)>=(d|0)){m=-1;break a}break}case 16:{if((m|0)>=88){if(p){m=-1;break a}if((o-e|0)>=3){m=-1;break a}if((a[o+-1>>0]|0)!=48){m=-1;break a}c[g>>2]=0;m=a[12928+h>>0]|0;c[f>>2]=o+1;a[o>>0]=m;m=0;break a}break}default:{}}m=a[12928+h>>0]|0;c[f>>2]=o+1;a[o>>0]=m;c[g>>2]=(c[g>>2]|0)+1;m=0}}while(0);return m|0}function UG(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+336|0;s=D+160|0;t=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;w=D;x=D+292|0;y=D+288|0;z=D+333|0;r=D+332|0;VG(C,f,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){f=c[k+12>>2]|0;if((f|0)==(c[k+16>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[p>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){oO(B,f<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}l=k+12|0;f=c[l>>2]|0;m=k+16|0;if((f|0)==(c[m>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=jE(c[f>>2]|0)|0;if(WG(f,z,r,b,v,c[t>>2]|0,c[u>>2]|0,C,w,x,y,s)|0)break;f=c[l>>2]|0;if((f|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=f+4;jE(c[f>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+jG(b,c[v>>2]|0,h);g[i>>3]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|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,h=0;g=zb;zb=zb+16|0;h=g;IE(h,b);b=XF(h,56768)|0;Kb[c[(c[b>>2]|0)+48>>2]&15](b,12928,12960,d)|0;d=XF(h,56776)|0;b=Gb[c[(c[d>>2]|0)+12>>2]&127](d)|0;c[e>>2]=b;e=Gb[c[(c[d>>2]|0)+16>>2]&127](d)|0;c[f>>2]=e;Ub[c[(c[d>>2]|0)+20>>2]&63](a,d);YF(h);zb=g;return}function WG(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0;a:do if((b|0)==(h|0))if(a[d>>0]|0){a[d>>0]=0;e=c[g>>2]|0;c[g>>2]=e+1;a[e>>0]=46;g=a[j+11>>0]|0;if(((g<<24>>24<0?c[j+4>>2]|0:g&255)|0)!=0?(o=c[l>>2]|0,(o-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;o=0}else o=0}else o=-1;else{if((b|0)==(i|0)?(i=a[j+11>>0]|0,(i<<24>>24<0?c[j+4>>2]|0:i&255)|0):0){if(!(a[d>>0]|0)){o=-1;break}o=c[l>>2]|0;if((o-k|0)>=160){o=0;break}k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;c[m>>2]=0;o=0;break}i=n+128|0;h=0;while(1){o=n+(h<<2)|0;if((h|0)==32){o=i;break}if((c[o>>2]|0)==(b|0))break;else h=h+1|0}h=o-n|0;if((h|0)<=124){i=a[12928+(h>>2)>>0]|0;n=h+-88|0;switch(n>>>2|n<<30|0){case 2:case 3:{o=c[g>>2]|0;if((o|0)!=(f|0)?(a[o+-1>>0]&95)!=(a[e>>0]&127):0){o=-1;break a}c[g>>2]=o+1;a[o>>0]=i;o=0;break a}case 1:case 0:{a[e>>0]=80;break}default:{o=i&95;if((((o|0)==(a[e>>0]|0)?(a[e>>0]=o|128,a[d>>0]|0):0)?(a[d>>0]=0,e=a[j+11>>0]|0,(e<<24>>24<0?c[j+4>>2]|0:e&255)|0):0)?(p=c[l>>2]|0,(p-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=p+4;c[p>>2]=k}}}l=c[g>>2]|0;c[g>>2]=l+1;a[l>>0]=i;if((h|0)>84)o=0;else{c[m>>2]=(c[m>>2]|0)+1;o=0}}else o=-1}while(0);return o|0}function XG(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+336|0;s=D+160|0;t=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;w=D;x=D+292|0;y=D+288|0;z=D+333|0;r=D+332|0;VG(C,f,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){f=c[k+12>>2]|0;if((f|0)==(c[k+16>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[p>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){oO(B,f<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}l=k+12|0;f=c[l>>2]|0;m=k+16|0;if((f|0)==(c[m>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=jE(c[f>>2]|0)|0;if(WG(f,z,r,b,v,c[t>>2]|0,c[u>>2]|0,C,w,x,y,s)|0)break;f=c[l>>2]|0;if((f|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=f+4;jE(c[f>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+mG(b,c[v>>2]|0,h);g[i>>3]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function YG(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+336|0;s=D+160|0;t=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;w=D;x=D+292|0;y=D+288|0;z=D+333|0;r=D+332|0;VG(C,g,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){g=c[k+12>>2]|0;if((g|0)==(c[k+16>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=jE(c[g>>2]|0)|0;if(JE(g,iE()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=jE(c[g>>2]|0)|0;if(!(JE(g,iE()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}g=a[p>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[v>>2]|0)==(b+g|0)){oO(B,g<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+g}l=k+12|0;g=c[l>>2]|0;m=k+16|0;if((g|0)==(c[m>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=jE(c[g>>2]|0)|0;if(WG(g,z,r,b,v,c[t>>2]|0,c[u>>2]|0,C,w,x,y,s)|0)break;g=c[l>>2]|0;if((g|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=g+4;jE(c[g>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+oG(b,c[v>>2]|0,h);f[i>>2]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;g=1}else g=0}else g=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(g)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?g:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function ZG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}w=tG(b,c[s>>2]|0,g,x)|0;x=F()|0;c[h>>2]=w;c[h+4>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function _G(a,b,c){a=a|0;b=b|0;c=c|0;return aH(a,b,c)|0}function $G(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=zb;zb=zb+16|0;f=e;IE(f,b);b=XF(f,56776)|0;g=Gb[c[(c[b>>2]|0)+16>>2]&127](b)|0;c[d>>2]=g;Ub[c[(c[b>>2]|0)+20>>2]&63](a,b);YF(f);zb=e;return}function aH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=zb;zb=zb+16|0;e=a;IE(e,b);b=XF(e,56768)|0;Kb[c[(c[b>>2]|0)+48>>2]&15](b,12928,12954,d)|0;YF(e);zb=a;return d|0}function bH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=wG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function cH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=yG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function dH(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,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=zb;zb=zb+304|0;s=C+300|0;z=C+288|0;A=C+276|0;t=C+272|0;u=C;w=C+268|0;x=C+264|0;y=qG(g)|0;r=_G(d,g,C+160|0)|0;$G(z,g,s);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[A+(d<<2)>>2]=0;d=d+1|0}p=A+11|0;q=A+8|0;if((a[p>>0]|0)<0)d=(c[q>>2]&2147483647)+-1|0;else d=10;oO(A,d,0);d=(a[p>>0]|0)<0?c[A>>2]|0:A;c[t>>2]=d;c[w>>2]=u;c[x>>2]=0;o=A+4|0;k=c[e>>2]|0;j=k;a:while(1){if(k){g=c[k+12>>2]|0;if((g|0)==(c[k+16>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=jE(c[g>>2]|0)|0;if(JE(g,iE()|0)|0){c[e>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[f>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=jE(c[g>>2]|0)|0;if(!(JE(g,iE()|0)|0))if(l)break;else break a;else{c[f>>2]=0;B=19;break}}else B=19;while(0);if((B|0)==19){B=0;if(l){j=0;break}else j=0}g=a[p>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[t>>2]|0)==(d+g|0)){oO(A,g<<1,0);if((a[p>>0]|0)<0)d=(c[q>>2]&2147483647)+-1|0;else d=10;oO(A,d,0);d=(a[p>>0]|0)<0?c[A>>2]|0:A;c[t>>2]=d+g}l=k+12|0;g=c[l>>2]|0;m=k+16|0;if((g|0)==(c[m>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=jE(c[g>>2]|0)|0;if(TG(g,y,d,t,x,c[s>>2]|0,z,u,w,r)|0)break;g=c[l>>2]|0;if((g|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=g+4;jE(c[g>>2]|0)|0}j=n}s=a[z+11>>0]|0;if((s<<24>>24<0?c[z+4>>2]|0:s&255)|0?(v=c[w>>2]|0,(v-u|0)<160):0){x=c[x>>2]|0;c[w>>2]=v+4;c[v>>2]=x}y=AG(d,c[t>>2]|0,h,y)|0;b[i>>1]=y;kG(z,u,c[w>>2]|0,h);if(k){d=c[k+12>>2]|0;if((d|0)==(c[k+16>>2]|0))d=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else d=jE(c[d>>2]|0)|0;if(JE(d,iE()|0)|0){c[e>>2]=0;g=1}else g=0}else g=1;do if(j){d=c[j+12>>2]|0;if((d|0)==(c[j+16>>2]|0))d=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else d=jE(c[d>>2]|0)|0;if(!(JE(d,iE()|0)|0))if(g)break;else{B=50;break}else{c[f>>2]=0;B=48;break}}else B=48;while(0);if((B|0)==48?g:0)B=50;if((B|0)==50)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;jO(A);jO(z);zb=C;return B|0}function eH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}w=CG(b,c[s>>2]|0,g,x)|0;x=F()|0;c[h>>2]=w;c[h+4>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function fH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=EG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function gH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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=zb;zb=zb+112|0;k=w;l=(f-e|0)/12|0;if(l>>>0>100){k=FO(l)|0;if(!k)aO();else{j=k;u=k}}else{j=k;u=0}k=0;n=e;o=j;while(1){if((n|0)==(f|0))break;m=a[n+8+3>>0]|0;if(m<<24>>24<0)m=c[n+4>>2]|0;else m=m&255;if(!m){a[o>>0]=2;k=k+1|0;l=l+-1|0}else a[o>>0]=1;n=n+12|0;o=o+1|0}t=0;r=k;while(1){k=c[b>>2]|0;do if(k){m=c[k+12>>2]|0;if((m|0)==(c[k+16>>2]|0))k=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else k=jE(c[m>>2]|0)|0;if(JE(k,iE()|0)|0){c[b>>2]=0;o=1;break}else{o=(c[b>>2]|0)==0;break}}else o=1;while(0);m=c[d>>2]|0;if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=jE(c[k>>2]|0)|0;if(JE(k,iE()|0)|0){c[d>>2]=0;k=1;m=0}else k=0}else{k=1;m=0}n=c[b>>2]|0;if(!((l|0)!=0&(o^k)))break;k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=jE(c[k>>2]|0)|0;if(!i)k=Ib[c[(c[g>>2]|0)+28>>2]&63](g,k)|0;s=t+1|0;p=e;o=0;q=j;while(1){if((p|0)==(f|0))break;do if((a[q>>0]|0)==1){n=p+8+3|0;if((a[n>>0]|0)<0)m=c[p>>2]|0;else m=p;m=c[m+(t<<2)>>2]|0;if(!i)m=Ib[c[(c[g>>2]|0)+28>>2]&63](g,m)|0;if((k|0)!=(m|0)){a[q>>0]=0;m=o;n=r;l=l+-1|0;break}m=a[n>>0]|0;if(m<<24>>24<0)m=c[p+4>>2]|0;else m=m&255;if((m|0)==(s|0)){a[q>>0]=2;m=1;n=r+1|0;l=l+-1|0}else{m=1;n=r}}else{m=o;n=r}while(0);p=p+12|0;o=m;q=q+1|0;r=n}a:do if(o){k=c[b>>2]|0;m=k+12|0;n=c[m>>2]|0;if((n|0)==(c[k+16>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[m>>2]=n+4;jE(c[n>>2]|0)|0}if((r+l|0)>>>0>1){n=e;o=j;k=r;while(1){if((n|0)==(f|0))break a;if((a[o>>0]|0)==2){m=a[n+8+3>>0]|0;if(m<<24>>24<0)m=c[n+4>>2]|0;else m=m&255;if((m|0)!=(s|0)){a[o>>0]=0;k=k+-1|0}}n=n+12|0;o=o+1|0}}else k=r}else k=r;while(0);t=s;r=k}do if(n){k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=jE(c[k>>2]|0)|0;if(JE(k,iE()|0)|0){c[b>>2]=0;l=1;break}else{l=(c[b>>2]|0)==0;break}}else l=1;while(0);do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=jE(c[k>>2]|0)|0;if(!(JE(k,iE()|0)|0))if(l)break;else{v=79;break}else{c[d>>2]=0;v=41;break}}else v=41;while(0);if((v|0)==41?l:0)v=79;if((v|0)==79)c[h>>2]=c[h>>2]|2;while(1){if((e|0)==(f|0)){v=84;break}if((a[j>>0]|0)==2)break;e=e+12|0;j=j+1|0}if((v|0)==84){c[h>>2]=c[h>>2]|4;e=f}GO(u);zb=w;return e|0}function hH(a){a=a|0;CF(a);return}function iH(a){a=a|0;CF(a);SA(a);return}function jH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=zb;zb=zb+16|0;k=l+4|0;h=l;if(!(c[e+4>>2]&1)){j=c[(c[b>>2]|0)+24>>2]|0;c[h>>2]=c[d>>2];c[k>>2]=c[h>>2];b=Mb[j&31](b,k,e,f,g&1)|0}else{IE(k,e);b=XF(k,56752)|0;YF(k);e=c[b>>2]|0;if(g)Ub[c[e+24>>2]&63](k,b);else Ub[c[e+28>>2]&63](k,b);i=k+11|0;b=a[i>>0]|0;e=c[k>>2]|0;j=k+4|0;g=b<<24>>24<0?e:k;while(1){h=b<<24>>24<0;if((g|0)==((h?e:k)+(h?c[j>>2]|0:b&255)|0))break;b=a[g>>0]|0;e=c[d>>2]|0;if(e|0){f=e+24|0;h=c[f>>2]|0;if((h|0)==(c[e+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;b=cg(b)|0;b=Ib[h&63](e,b)|0}else{c[f>>2]=h+1;a[h>>0]=b;b=cg(b)|0}if(_f(b,Wf()|0)|0)c[d>>2]=0}g=g+1|0;b=a[i>>0]|0;e=c[k>>2]|0}b=c[d>>2]|0;jO(k)}zb=l;return b|0}function kH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=zb;zb=zb+32|0;j=b;n=b+16|0;m=b+12|0;l=b+4|0;k=b+8|0;a[n>>0]=a[49415]|0;a[n+1>>0]=a[49416]|0;a[n+2>>0]=a[49417]|0;a[n+3>>0]=a[49418]|0;a[n+4>>0]=a[49419]|0;a[n+5>>0]=a[49420]|0;p=e+4|0;wH(n+1|0,49421,1,c[p>>2]|0);p=(c[p>>2]|0)>>>9&1;q=p+13|0;h=Na()|0;o=zb;zb=zb+((1*q|0)+15&-16)|0;i=_F()|0;c[j>>2]=g;g=o+(rH(o,q,i,n,j)|0)|0;n=sH(o,g,e)|0;i=zb;zb=zb+((1*((p<<1|24)+-1|0)|0)+15&-16)|0;IE(j,e);xH(o,n,g,i,m,l,j);YF(j);c[k>>2]=c[d>>2];d=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=$f(j,i,d,g,e,f)|0;Ma(h|0);zb=b;return g|0}function lH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=zb;zb=zb+32|0;j=a+8|0;i=a;m=a+24|0;l=a+16|0;k=a+20|0;o=i;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;wH(i+1|0,49412,1,c[o>>2]|0);o=(c[o>>2]|0)>>>9&1;q=o+23|0;h=Na()|0;n=zb;zb=zb+((1*q|0)+15&-16)|0;p=_F()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(rH(n,q,p,i,j)|0)|0;g=sH(n,f,d)|0;i=zb;zb=zb+((1*((o<<1|44)+-1|0)|0)+15&-16)|0;IE(j,d);xH(n,g,f,i,m,l,j);YF(j);c[k>>2]=c[b>>2];f=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=$f(j,i,f,g,d,e)|0;Ma(h|0);zb=a;return g|0}function mH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=zb;zb=zb+32|0;j=b;n=b+16|0;m=b+12|0;l=b+4|0;k=b+8|0;a[n>>0]=a[49415]|0;a[n+1>>0]=a[49416]|0;a[n+2>>0]=a[49417]|0;a[n+3>>0]=a[49418]|0;a[n+4>>0]=a[49419]|0;a[n+5>>0]=a[49420]|0;p=e+4|0;wH(n+1|0,49421,0,c[p>>2]|0);p=(c[p>>2]|0)>>>9&1;q=p|12;h=Na()|0;o=zb;zb=zb+((1*q|0)+15&-16)|0;i=_F()|0;c[j>>2]=g;g=o+(rH(o,q,i,n,j)|0)|0;n=sH(o,g,e)|0;i=zb;zb=zb+((1*(p<<1|21)|0)+15&-16)|0;IE(j,e);xH(o,n,g,i,m,l,j);YF(j);c[k>>2]=c[d>>2];d=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=$f(j,i,d,g,e,f)|0;Ma(h|0);zb=b;return g|0}function nH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=zb;zb=zb+32|0;j=a+8|0;i=a;m=a+24|0;l=a+16|0;k=a+20|0;o=i;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;wH(i+1|0,49412,0,c[o>>2]|0);o=(c[o>>2]|0)>>>9&1|22;q=o+1|0;h=Na()|0;n=zb;zb=zb+((1*q|0)+15&-16)|0;p=_F()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(rH(n,q,p,i,j)|0)|0;g=sH(n,f,d)|0;i=zb;zb=zb+((1*((o<<1)+-1|0)|0)+15&-16)|0;IE(j,d);xH(n,g,f,i,m,l,j);YF(j);c[k>>2]=c[b>>2];f=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=$f(j,i,f,g,d,e)|0;Ma(h|0);zb=a;return g|0}function oH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;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;v=zb;zb=zb+176|0;r=v+168|0;m=v+144|0;l=v+128|0;i=v+120|0;h=v+104|0;k=v+96|0;o=v+64|0;n=v+164|0;p=v;u=v+160|0;s=v+156|0;t=v+152|0;j=k;c[j>>2]=37;c[j+4>>2]=0;j=tH(k+1|0,57671,c[d+4>>2]|0)|0;c[n>>2]=o;a=_F()|0;if(j){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=rH(o,30,a,k,h)|0}else{g[i>>3]=f;a=rH(o,30,a,k,i)|0}if((a|0)>29){a=_F()|0;if(j){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=uH(n,a,k,l)|0}else{g[m>>3]=f;h=uH(n,a,k,m)|0}a=c[n>>2]|0;if(!a)aO();else{q=h;y=a;z=a}}else{q=a;y=0;z=c[n>>2]|0}h=z+q|0;i=sH(z,h,d)|0;if((z|0)!=(o|0)){a=FO(q<<1)|0;if(!a)aO();else{w=a;x=a}}else{w=p;x=0}IE(r,d);vH(z,i,h,w,u,s,r);YF(r);c[t>>2]=c[b>>2];b=c[u>>2]|0;z=c[s>>2]|0;c[r>>2]=c[t>>2];z=$f(r,w,b,z,d,e)|0;GO(x);GO(y);zb=v;return z|0}function pH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;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;v=zb;zb=zb+176|0;r=v+168|0;m=v+144|0;l=v+128|0;i=v+120|0;h=v+104|0;k=v+96|0;o=v+64|0;n=v+164|0;p=v;u=v+160|0;s=v+156|0;t=v+152|0;j=k;c[j>>2]=37;c[j+4>>2]=0;j=tH(k+1|0,49410,c[d+4>>2]|0)|0;c[n>>2]=o;a=_F()|0;if(j){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=rH(o,30,a,k,h)|0}else{g[i>>3]=f;a=rH(o,30,a,k,i)|0}if((a|0)>29){a=_F()|0;if(j){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=uH(n,a,k,l)|0}else{g[m>>3]=f;h=uH(n,a,k,m)|0}a=c[n>>2]|0;if(!a)aO();else{q=h;y=a;z=a}}else{q=a;y=0;z=c[n>>2]|0}h=z+q|0;i=sH(z,h,d)|0;if((z|0)!=(o|0)){a=FO(q<<1)|0;if(!a)aO();else{w=a;x=a}}else{w=p;x=0}IE(r,d);vH(z,i,h,w,u,s,r);YF(r);c[t>>2]=c[b>>2];b=c[u>>2]|0;z=c[s>>2]|0;c[r>>2]=c[t>>2];z=$f(r,w,b,z,d,e)|0;GO(x);GO(y);zb=v;return z|0}function qH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=zb;zb=zb+96|0;l=b+72|0;k=b+80|0;h=b+48|0;j=b;m=b+76|0;a[k>>0]=a[49404]|0;a[k+1>>0]=a[49405]|0;a[k+2>>0]=a[49406]|0;a[k+3>>0]=a[49407]|0;a[k+4>>0]=a[49408]|0;a[k+5>>0]=a[49409]|0;i=_F()|0;c[l>>2]=g;g=rH(h,20,i,k,l)|0;k=h+g|0;i=sH(h,k,e)|0;IE(l,e);n=XF(l,56736)|0;YF(l);Kb[c[(c[n>>2]|0)+32>>2]&15](n,h,k,j)|0;g=j+g|0;c[m>>2]=c[d>>2];c[l>>2]=c[m>>2];g=$f(l,j,(i|0)==(k|0)?g:j+(i-h)|0,g,e,f)|0;zb=b;return g|0}function rH(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;g=zb;zb=zb+16|0;h=g;c[h>>2]=f;f=ez(d)|0;d=Jx(a,b,e,h)|0;if(f|0)ez(f)|0;zb=g;return d|0}function sH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;a:do switch((c[e+4>>2]&176)<<24>>24){case 16:{e=a[b>>0]|0;switch(e<<24>>24){case 43:case 45:{b=b+1|0;break a}default:{}}if((d-b|0)>1&e<<24>>24==48){switch(a[b+1>>0]|0){case 88:case 120:break;default:{f=7;break a}}b=b+2|0}else f=7;break}case 32:{b=d;break}default:f=7}while(0);return b|0}function tH(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;if(d&2048){a[b>>0]=43;b=b+1|0}if(d&1024){a[b>>0]=35;b=b+1|0}g=d&260;e=d&16384;f=(g|0)==260;if(f)h=0;else{a[b>>0]=46;a[b+1>>0]=42;h=1;b=b+2|0}while(1){d=a[c>>0]|0;if(!(d<<24>>24))break;a[b>>0]=d;c=c+1|0;b=b+1|0}a:do switch(g&511){case 4:{d=e>>>9&255^102;break}case 256:{d=e>>>9&255^101;break}default:{d=e>>>9&255;if(f){d=d^97;break a}else{d=d^103;break a}}}while(0);a[b>>0]=d;return h|0}function uH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;c[g>>2]=e;e=ez(b)|0;b=bA(a,d,g)|0;if(e|0)ez(e)|0;zb=f;return b|0}function vH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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;v=zb;zb=zb+16|0;s=v;t=XF(i,56736)|0;r=XF(i,56752)|0;Ub[c[(c[r>>2]|0)+20>>2]&63](s,r);c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{q=Ib[c[(c[t>>2]|0)+28>>2]&63](t,i)|0;j=c[h>>2]|0;c[h>>2]=j+1;a[j>>0]=q;j=b+1|0;break}default:j=b}q=e;a:do if((q-j|0)>1?(a[j>>0]|0)==48:0){i=j+1|0;switch(a[i>>0]|0){case 88:case 120:break;default:{u=4;break a}}o=Ib[c[(c[t>>2]|0)+28>>2]&63](t,48)|0;p=c[h>>2]|0;c[h>>2]=p+1;a[p>>0]=o;j=j+2|0;p=Ib[c[(c[t>>2]|0)+28>>2]&63](t,a[i>>0]|0)|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=p;i=j;while(1){if(i>>>0>=e>>>0)break a;p=a[i>>0]|0;if(!(_y(p,_F()|0)|0))break a;i=i+1|0}}else u=4;while(0);b:do if((u|0)==4){i=j;while(1){if(i>>>0>=e>>>0)break b;p=a[i>>0]|0;if(!(Zy(p,_F()|0)|0))break b;i=i+1|0}}while(0);o=s+11|0;n=a[o>>0]|0;p=s+4|0;c:do if((n<<24>>24<0?c[p>>2]|0:n&255)|0){d:do if((j|0)!=(i|0)){k=i;l=j;while(1){k=k+-1|0;if(l>>>0>=k>>>0)break d;n=a[l>>0]|0;a[l>>0]=a[k>>0]|0;a[k>>0]=n;l=l+1|0}}while(0);n=Gb[c[(c[r>>2]|0)+16>>2]&127](r)|0;m=j;l=0;k=0;while(1){if(m>>>0>=i>>>0)break;w=a[((a[o>>0]|0)<0?c[s>>2]|0:s)+k>>0]|0;if(w<<24>>24>0&(l|0)==(w<<24>>24|0)){l=c[h>>2]|0;c[h>>2]=l+1;a[l>>0]=n;l=a[o>>0]|0;k=k+(k>>>0<((l<<24>>24<0?c[p>>2]|0:l&255)+-1|0)>>>0&1)|0;l=0}x=Ib[c[(c[t>>2]|0)+28>>2]&63](t,a[m>>0]|0)|0;w=c[h>>2]|0;c[h>>2]=w+1;a[w>>0]=x;m=m+1|0;l=l+1|0}k=f+(j-b)|0;j=c[h>>2]|0;if((k|0)==(j|0))k=t;else while(1){j=j+-1|0;if(k>>>0>=j>>>0){k=t;break c}x=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=x;k=k+1|0}}else{Kb[c[(c[t>>2]|0)+32>>2]&15](t,j,i,c[h>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+(i-j);k=t}while(0);while(1){if(i>>>0>=e>>>0)break;j=a[i>>0]|0;if(j<<24>>24==46){u=32;break}w=Ib[c[(c[k>>2]|0)+28>>2]&63](t,j)|0;x=c[h>>2]|0;c[h>>2]=x+1;a[x>>0]=w;i=i+1|0}if((u|0)==32){w=Gb[c[(c[r>>2]|0)+12>>2]&127](r)|0;x=c[h>>2]|0;c[h>>2]=x+1;a[x>>0]=w;i=i+1|0}Kb[c[(c[t>>2]|0)+32>>2]&15](t,i,e,c[h>>2]|0)|0;x=(c[h>>2]|0)+(q-i)|0;c[h>>2]=x;c[g>>2]=(d|0)==(e|0)?x:f+(d-b)|0;jO(s);zb=v;return}function wH(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;if(e&2048){a[b>>0]=43;b=b+1|0}if(e&512){a[b>>0]=35;b=b+1|0}f=b;while(1){b=a[c>>0]|0;if(!(b<<24>>24))break;a[f>>0]=b;c=c+1|0;f=f+1|0}switch(e&74){case 64:{b=111;break}case 8:{b=e>>>9&32^120;break}default:b=d?100:117}a[f>>0]=b;return}function xH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=zb;zb=zb+16|0;q=r;p=XF(i,56736)|0;l=XF(i,56752)|0;Ub[c[(c[l>>2]|0)+20>>2]&63](q,l);n=q+11|0;m=a[n>>0]|0;o=q+4|0;if((m<<24>>24<0?c[o>>2]|0:m&255)|0){c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{m=Ib[c[(c[p>>2]|0)+28>>2]&63](p,i)|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=m;i=b+1|0;break}default:i=b}a:do if((e-i|0)>1?(a[i>>0]|0)==48:0){j=i+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:break a}m=Ib[c[(c[p>>2]|0)+28>>2]&63](p,48)|0;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=m;k=Ib[c[(c[p>>2]|0)+28>>2]&63](p,a[j>>0]|0)|0;m=c[h>>2]|0;c[h>>2]=m+1;a[m>>0]=k;i=i+2|0}while(0);b:do if((i|0)!=(e|0)){j=e;k=i;while(1){j=j+-1|0;if(k>>>0>=j>>>0)break b;m=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=m;k=k+1|0}}while(0);m=Gb[c[(c[l>>2]|0)+16>>2]&127](l)|0;l=i;j=0;k=0;while(1){if(l>>>0>=e>>>0)break;s=a[((a[n>>0]|0)<0?c[q>>2]|0:q)+j>>0]|0;if(s<<24>>24!=0&(k|0)==(s<<24>>24|0)){k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=m;k=a[n>>0]|0;j=j+(j>>>0<((k<<24>>24<0?c[o>>2]|0:k&255)+-1|0)>>>0&1)|0;k=0}t=Ib[c[(c[p>>2]|0)+28>>2]&63](p,a[l>>0]|0)|0;s=c[h>>2]|0;c[h>>2]=s+1;a[s>>0]=t;l=l+1|0;k=k+1|0}i=f+(i-b)|0;j=c[h>>2]|0;if((i|0)!=(j|0)){while(1){j=j+-1|0;if(i>>>0>=j>>>0)break;t=a[i>>0]|0;a[i>>0]=a[j>>0]|0;a[j>>0]=t;i=i+1|0}i=c[h>>2]|0}}else{Kb[c[(c[p>>2]|0)+32>>2]&15](p,b,e,f)|0;i=f+(e-b)|0;c[h>>2]=i}c[g>>2]=(d|0)==(e|0)?i:f+(d-b)|0;jO(q);zb=r;return}function yH(a){a=a|0;CF(a);return}function zH(a){a=a|0;CF(a);SA(a);return}function AH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=zb;zb=zb+16|0;k=l+4|0;h=l;if(!(c[e+4>>2]&1)){j=c[(c[b>>2]|0)+24>>2]|0;c[h>>2]=c[d>>2];c[k>>2]=c[h>>2];b=Mb[j&31](b,k,e,f,g&1)|0}else{IE(k,e);b=XF(k,56776)|0;YF(k);e=c[b>>2]|0;if(g)Ub[c[e+24>>2]&63](k,b);else Ub[c[e+28>>2]&63](k,b);i=k+8+3|0;b=a[i>>0]|0;e=c[k>>2]|0;j=k+4|0;g=b<<24>>24<0?e:k;while(1){h=b<<24>>24<0;if((g|0)==((h?e:k)+((h?c[j>>2]|0:b&255)<<2)|0))break;b=c[g>>2]|0;e=c[d>>2]|0;if(e|0){f=e+24|0;h=c[f>>2]|0;if((h|0)==(c[e+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;b=jE(b)|0;b=Ib[h&63](e,b)|0}else{c[f>>2]=h+4;c[h>>2]=b;b=jE(b)|0}if(JE(b,iE()|0)|0)c[d>>2]=0}g=g+4|0;b=a[i>>0]|0;e=c[k>>2]|0}b=c[d>>2]|0;wO(k)}zb=l;return b|0}function BH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=zb;zb=zb+32|0;j=b;n=b+16|0;m=b+12|0;l=b+4|0;k=b+8|0;a[n>>0]=a[49415]|0;a[n+1>>0]=a[49416]|0;a[n+2>>0]=a[49417]|0;a[n+3>>0]=a[49418]|0;a[n+4>>0]=a[49419]|0;a[n+5>>0]=a[49420]|0;p=e+4|0;wH(n+1|0,49421,1,c[p>>2]|0);p=(c[p>>2]|0)>>>9&1;q=p+13|0;h=Na()|0;o=zb;zb=zb+((1*q|0)+15&-16)|0;i=_F()|0;c[j>>2]=g;g=o+(rH(o,q,i,n,j)|0)|0;n=sH(o,g,e)|0;i=zb;zb=zb+((1*((p<<1|24)+-1<<2)|0)+15&-16)|0;IE(j,e);KH(o,n,g,i,m,l,j);YF(j);c[k>>2]=c[d>>2];d=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=IH(j,i,d,g,e,f)|0;Ma(h|0);zb=b;return g|0}function CH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=zb;zb=zb+32|0;j=a+8|0;i=a;m=a+24|0;l=a+16|0;k=a+20|0;o=i;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;wH(i+1|0,49412,1,c[o>>2]|0);o=(c[o>>2]|0)>>>9&1;q=o+23|0;h=Na()|0;n=zb;zb=zb+((1*q|0)+15&-16)|0;p=_F()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(rH(n,q,p,i,j)|0)|0;g=sH(n,f,d)|0;i=zb;zb=zb+((1*((o<<1|44)+-1<<2)|0)+15&-16)|0;IE(j,d);KH(n,g,f,i,m,l,j);YF(j);c[k>>2]=c[b>>2];f=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=IH(j,i,f,g,d,e)|0;Ma(h|0);zb=a;return g|0}function DH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=zb;zb=zb+32|0;j=b;n=b+16|0;m=b+12|0;l=b+4|0;k=b+8|0;a[n>>0]=a[49415]|0;a[n+1>>0]=a[49416]|0;a[n+2>>0]=a[49417]|0;a[n+3>>0]=a[49418]|0;a[n+4>>0]=a[49419]|0;a[n+5>>0]=a[49420]|0;p=e+4|0;wH(n+1|0,49421,0,c[p>>2]|0);p=(c[p>>2]|0)>>>9&1;q=p|12;h=Na()|0;o=zb;zb=zb+((1*q|0)+15&-16)|0;i=_F()|0;c[j>>2]=g;g=o+(rH(o,q,i,n,j)|0)|0;n=sH(o,g,e)|0;i=zb;zb=zb+((1*((p<<1|21)<<2)|0)+15&-16)|0;IE(j,e);KH(o,n,g,i,m,l,j);YF(j);c[k>>2]=c[d>>2];d=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=IH(j,i,d,g,e,f)|0;Ma(h|0);zb=b;return g|0}function EH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=zb;zb=zb+32|0;j=a+8|0;i=a;m=a+24|0;l=a+16|0;k=a+20|0;o=i;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;wH(i+1|0,49412,0,c[o>>2]|0);o=(c[o>>2]|0)>>>9&1|22;q=o+1|0;h=Na()|0;n=zb;zb=zb+((1*q|0)+15&-16)|0;p=_F()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(rH(n,q,p,i,j)|0)|0;g=sH(n,f,d)|0;i=zb;zb=zb+((1*((o<<1)+-1<<2)|0)+15&-16)|0;IE(j,d);KH(n,g,f,i,m,l,j);YF(j);c[k>>2]=c[b>>2];f=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=IH(j,i,f,g,d,e)|0;Ma(h|0);zb=a;return g|0}function FH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;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;x=zb;zb=zb+352|0;r=x+344|0;m=x+320|0;l=x+304|0;i=x+296|0;h=x+280|0;k=x+272|0;o=x+240|0;n=x+340|0;p=x;u=x+336|0;s=x+332|0;t=x+328|0;j=k;c[j>>2]=37;c[j+4>>2]=0;j=tH(k+1|0,57671,c[d+4>>2]|0)|0;c[n>>2]=o;a=_F()|0;if(j){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=rH(o,30,a,k,h)|0}else{g[i>>3]=f;a=rH(o,30,a,k,i)|0}if((a|0)>29){a=_F()|0;if(j){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=uH(n,a,k,l)|0}else{g[m>>3]=f;h=uH(n,a,k,m)|0}a=c[n>>2]|0;if(!a)aO();else{q=h;z=a;w=a}}else{q=a;z=0;w=c[n>>2]|0}h=w+q|0;i=sH(w,h,d)|0;do if((w|0)!=(o|0)){a=FO(q<<3)|0;if(!a)aO();else{v=a;y=0;A=a;break}}else{v=p;y=1;A=0}while(0);IE(r,d);JH(w,i,h,v,u,s,r);YF(r);c[t>>2]=c[b>>2];w=c[u>>2]|0;a=c[s>>2]|0;c[r>>2]=c[t>>2];a=IH(r,v,w,a,d,e)|0;c[b>>2]=a;if(!y)GO(A);GO(z);zb=x;return a|0}function GH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;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;x=zb;zb=zb+352|0;r=x+344|0;m=x+320|0;l=x+304|0;i=x+296|0;h=x+280|0;k=x+272|0;o=x+240|0;n=x+340|0;p=x;u=x+336|0;s=x+332|0;t=x+328|0;j=k;c[j>>2]=37;c[j+4>>2]=0;j=tH(k+1|0,49410,c[d+4>>2]|0)|0;c[n>>2]=o;a=_F()|0;if(j){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=rH(o,30,a,k,h)|0}else{g[i>>3]=f;a=rH(o,30,a,k,i)|0}if((a|0)>29){a=_F()|0;if(j){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=uH(n,a,k,l)|0}else{g[m>>3]=f;h=uH(n,a,k,m)|0}a=c[n>>2]|0;if(!a)aO();else{q=h;z=a;w=a}}else{q=a;z=0;w=c[n>>2]|0}h=w+q|0;i=sH(w,h,d)|0;do if((w|0)!=(o|0)){a=FO(q<<3)|0;if(!a)aO();else{v=a;y=0;A=a;break}}else{v=p;y=1;A=0}while(0);IE(r,d);JH(w,i,h,v,u,s,r);YF(r);c[t>>2]=c[b>>2];w=c[u>>2]|0;a=c[s>>2]|0;c[r>>2]=c[t>>2];a=IH(r,v,w,a,d,e)|0;c[b>>2]=a;if(!y)GO(A);GO(z);zb=x;return a|0}function HH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=zb;zb=zb+208|0;l=b+184|0;k=b+192|0;h=b+160|0;j=b;m=b+188|0;a[k>>0]=a[49404]|0;a[k+1>>0]=a[49405]|0;a[k+2>>0]=a[49406]|0;a[k+3>>0]=a[49407]|0;a[k+4>>0]=a[49408]|0;a[k+5>>0]=a[49409]|0;i=_F()|0;c[l>>2]=g;g=rH(h,20,i,k,l)|0;k=h+g|0;i=sH(h,k,e)|0;IE(l,e);n=XF(l,56768)|0;YF(l);Kb[c[(c[n>>2]|0)+48>>2]&15](n,h,k,j)|0;g=j+(g<<2)|0;c[m>>2]=c[d>>2];c[l>>2]=c[m>>2];g=IH(l,j,(i|0)==(k|0)?g:j+(i-h<<2)|0,g,e,f)|0;zb=b;return g|0}function IH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=zb;zb=zb+16|0;m=n;i=c[b>>2]|0;a:do if(!i)i=0;else{o=d;j=f-o>>2;l=g+12|0;g=c[l>>2]|0;g=(g|0)>(j|0)?g-j|0:0;j=e;o=j-o|0;k=o>>2;if((o|0)>0?(Jb[c[(c[i>>2]|0)+48>>2]&63](i,d,k)|0)!=(k|0):0){c[b>>2]=0;i=0;break}do if((g|0)>0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;uO(m,g,h);if((Jb[c[(c[i>>2]|0)+48>>2]&63](i,(a[m+8+3>>0]|0)<0?c[m>>2]|0:m,g)|0)==(g|0)){wO(m);break}else{c[b>>2]=0;wO(m);i=0;break a}}while(0);o=f-j|0;f=o>>2;if((o|0)>0?(Jb[c[(c[i>>2]|0)+48>>2]&63](i,e,f)|0)!=(f|0):0){c[b>>2]=0;i=0;break}c[l>>2]=0}while(0);zb=n;return i|0}function JH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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;v=zb;zb=zb+16|0;s=v;t=XF(i,56768)|0;q=XF(i,56776)|0;Ub[c[(c[q>>2]|0)+20>>2]&63](s,q);c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{r=Ib[c[(c[t>>2]|0)+44>>2]&63](t,i)|0;i=c[h>>2]|0;c[h>>2]=i+4;c[i>>2]=r;i=b+1|0;break}default:i=b}r=e;a:do if((r-i|0)>1?(a[i>>0]|0)==48:0){j=i+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:{u=4;break a}}o=Ib[c[(c[t>>2]|0)+44>>2]&63](t,48)|0;p=c[h>>2]|0;c[h>>2]=p+4;c[p>>2]=o;i=i+2|0;p=Ib[c[(c[t>>2]|0)+44>>2]&63](t,a[j>>0]|0)|0;j=c[h>>2]|0;c[h>>2]=j+4;c[j>>2]=p;j=i;while(1){if(j>>>0>=e>>>0)break a;p=a[j>>0]|0;if(!(_y(p,_F()|0)|0))break a;j=j+1|0}}else u=4;while(0);b:do if((u|0)==4){j=i;while(1){if(j>>>0>=e>>>0)break b;p=a[j>>0]|0;if(!(Zy(p,_F()|0)|0))break b;j=j+1|0}}while(0);o=s+11|0;n=a[o>>0]|0;p=s+4|0;c:do if((n<<24>>24<0?c[p>>2]|0:n&255)|0){d:do if((i|0)!=(j|0)){k=j;l=i;while(1){k=k+-1|0;if(l>>>0>=k>>>0)break d;n=a[l>>0]|0;a[l>>0]=a[k>>0]|0;a[k>>0]=n;l=l+1|0}}while(0);n=Gb[c[(c[q>>2]|0)+16>>2]&127](q)|0;m=i;k=0;l=0;while(1){if(m>>>0>=j>>>0)break;w=a[((a[o>>0]|0)<0?c[s>>2]|0:s)+k>>0]|0;if(w<<24>>24>0&(l|0)==(w<<24>>24|0)){l=c[h>>2]|0;c[h>>2]=l+4;c[l>>2]=n;l=a[o>>0]|0;k=k+(k>>>0<((l<<24>>24<0?c[p>>2]|0:l&255)+-1|0)>>>0&1)|0;l=0}x=Ib[c[(c[t>>2]|0)+44>>2]&63](t,a[m>>0]|0)|0;w=c[h>>2]|0;c[h>>2]=w+4;c[w>>2]=x;m=m+1|0;l=l+1|0}i=f+(i-b<<2)|0;l=c[h>>2]|0;if((i|0)==(l|0))k=t;else{k=l;while(1){k=k+-4|0;if(i>>>0>=k>>>0){k=t;i=l;break c}x=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=x;i=i+4|0}}}else{Kb[c[(c[t>>2]|0)+48>>2]&15](t,i,j,c[h>>2]|0)|0;i=(c[h>>2]|0)+(j-i<<2)|0;c[h>>2]=i;k=t}while(0);while(1){if(j>>>0>=e>>>0)break;i=a[j>>0]|0;if(i<<24>>24==46){u=32;break}w=Ib[c[(c[k>>2]|0)+44>>2]&63](t,i)|0;x=c[h>>2]|0;i=x+4|0;c[h>>2]=i;c[x>>2]=w;j=j+1|0}if((u|0)==32){w=Gb[c[(c[q>>2]|0)+12>>2]&127](q)|0;x=c[h>>2]|0;i=x+4|0;c[h>>2]=i;c[x>>2]=w;j=j+1|0}Kb[c[(c[t>>2]|0)+48>>2]&15](t,j,e,i)|0;x=(c[h>>2]|0)+(r-j<<2)|0;c[h>>2]=x;c[g>>2]=(d|0)==(e|0)?x:f+(d-b<<2)|0;jO(s);zb=v;return}function KH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=zb;zb=zb+16|0;q=r;p=XF(i,56768)|0;l=XF(i,56776)|0;Ub[c[(c[l>>2]|0)+20>>2]&63](q,l);n=q+11|0;m=a[n>>0]|0;o=q+4|0;if((m<<24>>24<0?c[o>>2]|0:m&255)|0){c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{m=Ib[c[(c[p>>2]|0)+44>>2]&63](p,i)|0;i=c[h>>2]|0;c[h>>2]=i+4;c[i>>2]=m;i=b+1|0;break}default:i=b}a:do if((e-i|0)>1?(a[i>>0]|0)==48:0){j=i+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:break a}m=Ib[c[(c[p>>2]|0)+44>>2]&63](p,48)|0;k=c[h>>2]|0;c[h>>2]=k+4;c[k>>2]=m;k=Ib[c[(c[p>>2]|0)+44>>2]&63](p,a[j>>0]|0)|0;m=c[h>>2]|0;c[h>>2]=m+4;c[m>>2]=k;i=i+2|0}while(0);b:do if((i|0)!=(e|0)){j=e;k=i;while(1){j=j+-1|0;if(k>>>0>=j>>>0)break b;m=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=m;k=k+1|0}}while(0);m=Gb[c[(c[l>>2]|0)+16>>2]&127](l)|0;l=i;j=0;k=0;while(1){if(l>>>0>=e>>>0)break;s=a[((a[n>>0]|0)<0?c[q>>2]|0:q)+j>>0]|0;if(s<<24>>24!=0&(k|0)==(s<<24>>24|0)){k=c[h>>2]|0;c[h>>2]=k+4;c[k>>2]=m;k=a[n>>0]|0;j=j+(j>>>0<((k<<24>>24<0?c[o>>2]|0:k&255)+-1|0)>>>0&1)|0;k=0}t=Ib[c[(c[p>>2]|0)+44>>2]&63](p,a[l>>0]|0)|0;s=c[h>>2]|0;c[h>>2]=s+4;c[s>>2]=t;l=l+1|0;k=k+1|0}i=f+(i-b<<2)|0;j=c[h>>2]|0;if((i|0)!=(j|0)){while(1){j=j+-4|0;if(i>>>0>=j>>>0)break;t=c[i>>2]|0;c[i>>2]=c[j>>2];c[j>>2]=t;i=i+4|0}i=c[h>>2]|0}}else{Kb[c[(c[p>>2]|0)+48>>2]&15](p,b,e,f)|0;i=f+(e-b<<2)|0;c[h>>2]=i}c[g>>2]=(d|0)==(e|0)?i:f+(d-b<<2)|0;jO(q);zb=r;return}function LH(a){a=a|0;CF(a);return}function MH(a){a=a|0;CF(a);SA(a);return}function NH(a){a=a|0;return 2}function OH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=eI(a,j,i,e,f,g,49940,49948)|0;zb=h;return g|0}function PH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=zb;zb=zb+16|0;j=i+12|0;k=i+8|0;m=i+4|0;l=i;n=b+8|0;n=Gb[c[(c[n>>2]|0)+20>>2]&127](n)|0;c[m>>2]=c[d>>2];c[l>>2]=c[e>>2];e=a[n+11>>0]|0;o=e<<24>>24<0;d=o?c[n>>2]|0:n;e=d+(o?c[n+4>>2]|0:e&255)|0;c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];h=eI(b,k,j,f,g,h,d,e)|0;zb=i;return h|0}function QH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56736)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];cI(a,g+24|0,b,i,f,e);zb=h;return c[b>>2]|0}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,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56736)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];dI(a,g+16|0,b,i,f,e);zb=h;return c[b>>2]|0}function SH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56736)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];pI(a,g+20|0,b,i,f,e);zb=h;return c[b>>2]|0}function TH(b,d,e,f,g,h,i,j){b=b|0;d=d|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,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;R=zb;zb=zb+144|0;k=R+128|0;j=R+112|0;P=R+124|0;Q=R+120|0;l=R+116|0;m=R+108|0;n=R+104|0;o=R+100|0;p=R+96|0;q=R+92|0;r=R+88|0;s=R+84|0;t=R+80|0;u=R+76|0;v=R+72|0;w=R+68|0;x=R+64|0;y=R+60|0;z=R+56|0;A=R+52|0;B=R+48|0;C=R+44|0;D=R+40|0;E=R+36|0;F=R+32|0;G=R+28|0;H=R+24|0;I=R+20|0;J=R+16|0;K=R+12|0;L=R+8|0;M=R+4|0;N=R;c[g>>2]=0;IE(k,f);O=XF(k,56736)|0;YF(k);do switch(i<<24>>24|0){case 65:case 97:{c[P>>2]=c[e>>2];c[k>>2]=c[P>>2];cI(b,h+24|0,d,k,g,O);S=26;break}case 104:case 66:case 98:{c[Q>>2]=c[e>>2];c[k>>2]=c[Q>>2];dI(b,h+16|0,d,k,g,O);S=26;break}case 99:{Q=b+8|0;Q=Gb[c[(c[Q>>2]|0)+12>>2]&127](Q)|0;c[l>>2]=c[d>>2];c[m>>2]=c[e>>2];S=a[Q+11>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+(e?c[Q+4>>2]|0:S&255)|0;c[j>>2]=c[l>>2];c[k>>2]=c[m>>2];S=eI(b,j,k,f,g,h,i,S)|0;c[d>>2]=S;S=26;break}case 101:case 100:{c[n>>2]=c[e>>2];c[k>>2]=c[n>>2];fI(b,h+12|0,d,k,g,O);S=26;break}case 68:{c[o>>2]=c[d>>2];c[p>>2]=c[e>>2];c[j>>2]=c[o>>2];c[k>>2]=c[p>>2];S=eI(b,j,k,f,g,h,49900,49908)|0;c[d>>2]=S;S=26;break}case 70:{c[q>>2]=c[d>>2];c[r>>2]=c[e>>2];c[j>>2]=c[q>>2];c[k>>2]=c[r>>2];S=eI(b,j,k,f,g,h,49908,49916)|0;c[d>>2]=S;S=26;break}case 72:{c[s>>2]=c[e>>2];c[k>>2]=c[s>>2];gI(b,h+8|0,d,k,g,O);S=26;break}case 73:{c[t>>2]=c[e>>2];c[k>>2]=c[t>>2];hI(b,h+8|0,d,k,g,O);S=26;break}case 106:{c[u>>2]=c[e>>2];c[k>>2]=c[u>>2];iI(b,h+28|0,d,k,g,O);S=26;break}case 109:{c[v>>2]=c[e>>2];c[k>>2]=c[v>>2];jI(b,h+16|0,d,k,g,O);S=26;break}case 77:{c[w>>2]=c[e>>2];c[k>>2]=c[w>>2];kI(b,h+4|0,d,k,g,O);S=26;break}case 116:case 110:{c[x>>2]=c[e>>2];c[k>>2]=c[x>>2];lI(b,d,k,g,O);S=26;break}case 112:{c[y>>2]=c[e>>2];c[k>>2]=c[y>>2];mI(b,h+8|0,d,k,g,O);S=26;break}case 114:{c[z>>2]=c[d>>2];c[A>>2]=c[e>>2];c[j>>2]=c[z>>2];c[k>>2]=c[A>>2];S=eI(b,j,k,f,g,h,49916,49927)|0;c[d>>2]=S;S=26;break}case 82:{c[B>>2]=c[d>>2];c[C>>2]=c[e>>2];c[j>>2]=c[B>>2];c[k>>2]=c[C>>2];S=eI(b,j,k,f,g,h,49927,49932)|0;c[d>>2]=S;S=26;break}case 83:{c[D>>2]=c[e>>2];c[k>>2]=c[D>>2];nI(b,h,d,k,g,O);S=26;break}case 84:{c[E>>2]=c[d>>2];c[F>>2]=c[e>>2];c[j>>2]=c[E>>2];c[k>>2]=c[F>>2];S=eI(b,j,k,f,g,h,49932,49940)|0;c[d>>2]=S;S=26;break}case 119:{c[G>>2]=c[e>>2];c[k>>2]=c[G>>2];oI(b,h+24|0,d,k,g,O);S=26;break}case 120:{i=c[(c[b>>2]|0)+20>>2]|0;c[H>>2]=c[d>>2];c[I>>2]=c[e>>2];c[j>>2]=c[H>>2];c[k>>2]=c[I>>2];j=Ob[i&63](b,j,k,f,g,h)|0;break}case 88:{Q=b+8|0;Q=Gb[c[(c[Q>>2]|0)+24>>2]&127](Q)|0;c[J>>2]=c[d>>2];c[K>>2]=c[e>>2];S=a[Q+11>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+(e?c[Q+4>>2]|0:S&255)|0;c[j>>2]=c[J>>2];c[k>>2]=c[K>>2];S=eI(b,j,k,f,g,h,i,S)|0;c[d>>2]=S;S=26;break}case 121:{c[L>>2]=c[e>>2];c[k>>2]=c[L>>2];pI(b,h+20|0,d,k,g,O);S=26;break}case 89:{c[M>>2]=c[e>>2];c[k>>2]=c[M>>2];qI(b,h+20|0,d,k,g,O);S=26;break}case 37:{c[N>>2]=c[e>>2];c[k>>2]=c[N>>2];rI(b,d,k,g,O);S=26;break}default:{c[g>>2]=c[g>>2]|4;S=26}}while(0);if((S|0)==26)j=c[d>>2]|0;zb=R;return j|0}function UH(b){b=b|0;if((a[54872]|0)==0?nB(54872)|0:0){bI();c[14216]=53856;pB(54872)}return c[14216]|0}function VH(b){b=b|0;if((a[54856]|0)==0?nB(54856)|0:0){aI();c[14215]=53568;pB(54856)}return c[14215]|0}function WH(b){b=b|0;if((a[54840]|0)==0?nB(54840)|0:0){$H();c[14214]=53536;pB(54840)}return c[14214]|0}function XH(b){b=b|0;if((a[54832]|0)==0?nB(54832)|0:0){c[14211]=0;c[14212]=0;c[14213]=0;gO(56844,49658,Yf(49658)|0);pB(54832)}return 56844}function YH(b){b=b|0;if((a[54824]|0)==0?nB(54824)|0:0){c[14208]=0;c[14209]=0;c[14210]=0;gO(56832,49646,Yf(49646)|0);pB(54824)}return 56832}function ZH(b){b=b|0;if((a[54816]|0)==0?nB(54816)|0:0){c[14205]=0;c[14206]=0;c[14207]=0;gO(56820,49637,Yf(49637)|0);pB(54816)}return 56820}function _H(b){b=b|0;if((a[54808]|0)==0?nB(54808)|0:0){c[14202]=0;c[14203]=0;c[14204]=0;gO(56808,49628,Yf(49628)|0);pB(54808)}return 56808}function $H(){var b=0,d=0;if((a[54848]|0)==0?nB(54848)|0:0){d=53536;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=53560);pB(54848)}nO(53536,49679)|0;nO(53548,49682)|0;return} function sd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;f=g+8|0;e=g;d=We(b,0)|0;if(!d){c[e>>2]=b;Ue(0,3,20325,e);a=ox()|0;a=By(c[a>>2]|0)|0;c[f>>2]=57671;c[f+4>>2]=a;Ue(0,3,21881,f);a=-1}else{a=rd(a,d)|0;GO(d)}zb=g;return a|0}function td(a,b){a=a|0;b=b|0;b=(c[a+8>>2]|0)+(b<<2)|0;if(!(c[b>>2]|0))b=-1;else{c[b>>2]=0;c[a>>2]=(c[a>>2]|0)+-1;b=1}return b|0}function ud(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0;d=0;while(1){if((d|0)==3)break;f=a+(d<<5)|0;h=a+(d<<5)+8|0;i=a+(d<<5)+16|0;e=0;while(1){if((e|0)==4)break;g[c+(d<<5)+(e<<3)>>3]=+g[f>>3]*+g[b+(e<<3)>>3]+ +g[h>>3]*+g[b+32+(e<<3)>>3]+ +g[i>>3]*+g[b+64+(e<<3)>>3];e=e+1|0}i=c+(d<<5)+24|0;g[i>>3]=+g[a+(d<<5)+24>>3]+ +g[i>>3];d=d+1|0}return 0}function vd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,h=0,i=0,j=0;d=0;while(1){if((d|0)==3)break;h=a+(d<<5)|0;i=a+(d<<5)+8|0;j=a+(d<<5)+16|0;e=0;while(1){if((e|0)==4)break;f[c+(d<<4)+(e<<2)>>2]=+f[b+(e<<2)>>2]*+g[h>>3]+ +f[b+16+(e<<2)>>2]*+g[i>>3]+ +f[b+32+(e<<2)>>2]*+g[j>>3];e=e+1|0}j=c+(d<<4)+12|0;f[j>>2]=+f[j>>2]+ +g[a+(d<<5)+24>>3];d=d+1|0}return 0}function wd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=0;while(1){if((d|0)==3)break;g=a+(d<<4)|0;h=a+(d<<4)+4|0;i=a+(d<<4)+8|0;e=0;while(1){if((e|0)==4)break;f[c+(d<<4)+(e<<2)>>2]=+f[g>>2]*+f[b+(e<<2)>>2]+ +f[h>>2]*+f[b+16+(e<<2)>>2]+ +f[i>>2]*+f[b+32+(e<<2)>>2];e=e+1|0}i=c+(d<<4)+12|0;f[i>>2]=+f[a+(d<<4)+12>>2]+ +f[i>>2];d=d+1|0}return 0}function xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0;h=Dd(4,4)|0;d=0;while(1){if((d|0)==3)break;f=d<<2;e=0;while(1){if((e|0)==4)break;g[(c[h>>2]|0)+(e+f<<3)>>3]=+g[a+(d<<5)+(e<<3)>>3];e=e+1|0}d=d+1|0}d=c[h>>2]|0;f=d+96|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;g[d+120>>3]=1.0;Xd(h)|0;d=0;while(1){if((d|0)==3)break;a=d<<2;e=0;while(1){if((e|0)==4)break;g[b+(d<<5)+(e<<3)>>3]=+g[(c[h>>2]|0)+(e+a<<3)>>3];e=e+1|0}d=d+1|0}Ld(h)|0;return 0}function yd(a,b){a=a|0;b=b|0;var d=0,e=0,h=0,i=0;i=Dd(4,4)|0;d=0;while(1){if((d|0)==3)break;h=d<<2;e=0;while(1){if((e|0)==4)break;g[(c[i>>2]|0)+(e+h<<3)>>3]=+f[a+(d<<4)+(e<<2)>>2];e=e+1|0}d=d+1|0}d=c[i>>2]|0;h=d+96|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;g[d+120>>3]=1.0;Xd(i)|0;d=0;while(1){if((d|0)==3)break;a=d<<2;e=0;while(1){if((e|0)==4)break;f[b+(d<<4)+(e<<2)>>2]=+g[(c[i>>2]|0)+(e+a<<3)>>3];e=e+1|0}d=d+1|0}Ld(i)|0;return 0}function zd(a){a=a|0;switch(a|0){case 1:case 0:{a=3;break}case 6:case 4:case 3:case 2:{a=4;break}case 14:case 13:case 12:case 5:{a=1;break}case 11:case 10:case 9:case 8:case 7:{a=2;break}default:a=0}return a|0}function Ad(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;do if((b|0)!=0&(c|0)!=0&(d|0)!=0){f=Oz(c,47)|0;if(!f){a[b>>0]=0;break}e=f+((e|0)!=0&1)-c|0;if((e+1|0)>>>0<=d>>>0){Wz(b,c,e)|0;a[b+e>>0]=0}else b=0}else b=0;while(0);return b|0}function Bd(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=0;h=0;a:while(1){switch(a[b+h>>0]|0){case 0:break a;case 46:{e=h;break}default:{}}h=h+1|0}f=b+h|0;g=(Qy(d)|0)+2|0;if(!e)if((g+h|0)>(c|0))e=-1;else{a[f>>0]=46;e=h;i=9}else if((g+e|0)>(c|0))e=-1;else i=9;if((i|0)==9){a[b+(e+1)>>0]=0;aA(b,d)|0;e=0}return e|0}function Cd(b){b=b|0;var c=0,d=0;c=-1;d=0;a:while(1){switch(a[b+d>>0]|0){case 0:break a;case 46:{c=d;break}default:{}}d=d+1|0}if((c|0)!=-1)a[b+c>>0]=0;return 0}function Dd(a,b){a=a|0;b=b|0;var d=0,e=0;d=FO(12)|0;do if(d){e=FO(B(a<<3,b)|0)|0;c[d>>2]=e;if(!e){GO(d);d=0;break}else{c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);return d|0}function Ed(a,b){a=a|0;b=b|0;var d=0,e=0;d=FO(12)|0;do if(d){e=FO(B(a<<2,b)|0)|0;c[d>>2]=e;if(!e){GO(d);d=0;break}else{c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);return d|0}function Fd(a){a=a|0;var b=0;b=Dd(c[a+4>>2]|0,c[a+8>>2]|0)|0;if(b){if((Kd(b,a)|0)<0){Ld(b)|0;b=0}}else b=0;return b|0}function Gd(a,b){a=a|0;b=b|0;var d=0;d=Dd(c[a+4>>2]|0,c[b+8>>2]|0)|0;if(d){if((Nd(d,a,b)|0)<0){Ld(d)|0;d=0}}else d=0;return d|0}function Hd(a,b){a=a|0;b=b|0;var d=0;d=Ed(c[a+4>>2]|0,c[b+8>>2]|0)|0;if(d){if((Od(d,a,b)|0)<0){Md(d)|0;d=0}}else d=0;return d|0}function Id(a){a=a|0;var b=0;b=Dd(c[a+8>>2]|0,c[a+4>>2]|0)|0;if(b){if(($d(b,a)|0)<0){Ld(b)|0;b=0}}else b=0;return b|0}function Jd(a){a=a|0;var b=0;b=Ed(c[a+8>>2]|0,c[a+4>>2]|0)|0;if(b){if((ae(b,a)|0)<0){Md(b)|0;b=0}}else b=0;return b|0}function Kd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;h=c[a+4>>2]|0;a:do if((h|0)==(c[b+4>>2]|0)?(i=c[a+8>>2]|0,(i|0)==(c[b+8>>2]|0)):0){e=0;while(1){if((e|0)>=(h|0)){d=0;break a}f=B(e,i)|0;d=0;while(1){if((d|0)>=(i|0))break;j=d+f|0;g[(c[a>>2]|0)+(j<<3)>>3]=+g[(c[b>>2]|0)+(j<<3)>>3];d=d+1|0}e=e+1|0}}else d=-1;while(0);return d|0}function Ld(a){a=a|0;if(a|0){GO(c[a>>2]|0);GO(a)}return 0}function Md(a){a=a|0;if(a|0){GO(c[a>>2]|0);GO(a)}return 0}function Nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;n=c[b+8>>2]|0;a:do if(((n|0)==(c[d+4>>2]|0)?(o=c[a+4>>2]|0,(o|0)==(c[b+4>>2]|0)):0)?(m=c[a+8>>2]|0,(m|0)==(c[d+8>>2]|0)):0){a=c[a>>2]|0;k=0;while(1){if((k|0)>=(o|0)){a=0;break a}l=B(k,n)|0;j=0;while(1){if((j|0)>=(m|0))break;g[a>>3]=0.0;e=(c[d>>2]|0)+(j<<3)|0;f=(c[b>>2]|0)+(l<<3)|0;h=0;i=0.0;while(1){if((h|0)>=(n|0))break;p=i+ +g[f>>3]*+g[e>>3];g[a>>3]=p;e=e+(m<<3)|0;f=f+8|0;h=h+1|0;i=p}j=j+1|0;a=a+8|0}k=k+1|0}}else a=-1;while(0);return a|0}function Od(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;n=c[b+8>>2]|0;a:do if(((n|0)==(c[d+4>>2]|0)?(o=c[a+4>>2]|0,(o|0)==(c[b+4>>2]|0)):0)?(m=c[a+8>>2]|0,(m|0)==(c[d+8>>2]|0)):0){a=c[a>>2]|0;k=0;while(1){if((k|0)>=(o|0)){a=0;break a}l=B(k,n)|0;j=0;while(1){if((j|0)>=(m|0))break;f[a>>2]=0.0;e=(c[d>>2]|0)+(j<<2)|0;g=(c[b>>2]|0)+(l<<2)|0;h=0;i=0.0;while(1){if((h|0)>=(n|0))break;p=i+ +f[g>>2]*+f[e>>2];f[a>>2]=p;e=e+(m<<2)|0;g=g+4|0;h=h+1|0;i=p}j=j+1|0;a=a+4|0}k=k+1|0}}else a=-1;while(0);return a|0}function Pd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,i=0,j=0,k=0,l=0;i=c[a+4>>2]|0;j=c[a+8>>2]|0;f=(i|0)<(j|0)?i:j;a:do if(((((!((i|0)<2|(j|0)<2)?(c[b+8>>2]|0)==(j|0):0)?(c[b+4>>2]|0)==(f|0):0)?(k=d+4|0,(c[k>>2]|0)==(f|0)):0)?(c[e+4>>2]|0)==(j|0):0)?(l=Fd(a)|0,(l|0)!=0):0){h=+u(+(+(i|0)));if((Qd(l,e)|0)<0){Ld(l)|0;a=-1;break}if((Rd(l,e)|0)<0){Ld(l)|0;a=-1;break}f=B(j,i)|0;a=0;while(1){if((a|0)>=(f|0))break;j=(c[l>>2]|0)+(a<<3)|0;g[j>>3]=+g[j>>3]/h;a=a+1|0}a=Sd(l,b,d)|0;Ld(l)|0;e=c[k>>2]|0;h=0.0;f=0;while(1){if((f|0)>=(e|0))break;h=h+ +g[(c[d>>2]|0)+(f<<3)>>3];f=f+1|0}f=0;while(1){if((f|0)>=(e|0))break a;l=(c[d>>2]|0)+(f<<3)|0;g[l>>3]=+g[l>>3]/h;f=f+1|0}}else a=-1;while(0);return a|0}function Qd(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0,i=0,j=0,k=0;j=c[a+4>>2]|0;k=c[a+8>>2]|0;a:do if(!((j|0)<1|(k|0)<1)?(c[b+4>>2]|0)==(k|0):0){d=0;while(1){if((d|0)==(k|0))break;g[(c[b>>2]|0)+(d<<3)>>3]=0.0;d=d+1|0}a=c[a>>2]|0;h=0;while(1){if((h|0)==(j|0))break;d=0;f=c[b>>2]|0;i=a;while(1){if((d|0)==(k|0))break;g[f>>3]=+g[i>>3]+ +g[f>>3];d=d+1|0;f=f+8|0;i=i+8|0}a=a+(k<<3)|0;h=h+1|0}e=+(j|0);d=0;while(1){if((d|0)==(k|0)){d=0;break a}j=(c[b>>2]|0)+(d<<3)|0;g[j>>3]=+g[j>>3]/e;d=d+1|0}}else d=-1;while(0);return d|0}function Rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;h=c[a+4>>2]|0;i=c[a+8>>2]|0;a:do if((c[b+4>>2]|0)==(i|0)){f=0;a=c[a>>2]|0;while(1){if((f|0)>=(h|0)){a=0;break a}d=0;e=c[b>>2]|0;while(1){if((d|0)>=(i|0))break;g[a>>3]=+g[a>>3]-+g[e>>3];d=d+1|0;e=e+8|0;a=a+8|0}f=f+1|0}}else a=-1;while(0);return a|0}function Sd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0;e=c[a+4>>2]|0;f=c[a+8>>2]|0;i=(f|0)<(e|0)?f:e;a:do if(((!((e|0)<2|(f|0)<2)?(c[b+8>>2]|0)==(f|0):0)?(c[b+4>>2]|0)==(i|0):0)?(c[d+4>>2]|0)==(i|0):0){h=Dd(i,i)|0;if((c[h+4>>2]|0)==(i|0)?(c[h+8>>2]|0)==(i|0):0){e=(e|0)<(f|0);if(e){if((Td(a,h)|0)<0){Ld(h)|0;e=-1;break}}else if((Ud(a,h)|0)<0){Ld(h)|0;e=-1;break}if((Vd(h,d)|0)<0){Ld(h)|0;e=-1;break}b:do if(e){if((Wd(a,h,b,d)|0)<0){Ld(h)|0;e=-1;break a}}else{a=0;f=c[h>>2]|0;e=c[b>>2]|0;while(1){if((a|0)>=(i|0))break;if(+g[(c[d>>2]|0)+(a<<3)>>3]<1.0e-16)break;b=0;while(1){if((b|0)>=(i|0))break;g[e>>3]=+g[f>>3];b=b+1|0;f=f+8|0;e=e+8|0}a=a+1|0}while(1){if((a|0)>=(i|0))break b;g[(c[d>>2]|0)+(a<<3)>>3]=0.0;f=0;while(1){if((f|0)>=(i|0))break;g[e>>3]=0.0;f=f+1|0;e=e+8|0}a=a+1|0}}while(0);Ld(h)|0;e=0;break}Ld(h)|0;e=-1}else e=-1;while(0);return e|0}function Td(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,o=0,p=0.0;n=c[a+4>>2]|0;o=c[a+8>>2]|0;a:do if((c[b+4>>2]|0)==(n|0)?(c[b+8>>2]|0)==(n|0):0){k=c[b>>2]|0;e=0;h=k;while(1){if((e|0)>=(n|0)){b=0;break a}l=B(e,o)|0;d=0;j=h;while(1){if((d|0)==(n|0))break;b:do if(d>>>0>>0){i=k+((B(d,n)|0)+e<<3)|0;g[j>>3]=+g[i>>3]}else{f=c[a>>2]|0;i=f+((B(d,o)|0)<<3)|0;g[j>>3]=0.0;b=0;f=f+(l<<3)|0;m=0.0;while(1){if((b|0)>=(o|0))break b;p=m+ +g[f>>3]*+g[i>>3];g[j>>3]=p;b=b+1|0;f=f+8|0;i=i+8|0;m=p}}while(0);d=d+1|0;j=j+8|0}e=e+1|0;h=h+(n<<3)|0}}else b=-1;while(0);return b|0}function Ud(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,n=0,o=0.0;m=c[a+4>>2]|0;n=c[a+8>>2]|0;a:do if((c[b+4>>2]|0)==(n|0)?(c[b+8>>2]|0)==(n|0):0){k=c[b>>2]|0;e=0;h=k;while(1){if((e|0)>=(n|0)){b=0;break a}d=0;j=h;while(1){if((d|0)==(n|0))break;b:do if(d>>>0>>0){i=k+((B(d,n)|0)+e<<3)|0;g[j>>3]=+g[i>>3]}else{i=c[a>>2]|0;g[j>>3]=0.0;b=0;f=i+(e<<3)|0;i=i+(d<<3)|0;l=0.0;while(1){if((b|0)>=(m|0))break b;o=l+ +g[f>>3]*+g[i>>3];g[j>>3]=o;b=b+1|0;f=f+(n<<3)|0;i=i+(n<<3)|0;l=o}}while(0);d=d+1|0;j=j+8|0}e=e+1|0;h=h+(n<<3)|0}}else b=-1;while(0);return b|0}function Vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0,K=0;F=zb;zb=zb+16|0;d=F;E=c[a+4>>2]|0;do if((!((E|0)<2?1:(E|0)!=(c[a+8>>2]|0))?(c[b+4>>2]|0)==(E|0):0)?(C=qe(E)|0,(C|0)!=0):0){D=E+-1|0;c[d+4>>2]=D;c[d>>2]=(c[C>>2]|0)+8;if((ue(a,b,d)|0)<0){re(C)|0;d=-1;break}A=c[C>>2]|0;g[A>>3]=0.0;y=D;while(1){if((y|0)<=0)break;z=y;while(1){if((z|0)<=0)break;n=+t(+(+g[A+(z<<3)>>3]));x=c[b>>2]|0;d=z+-1|0;o=+t(+(+g[x+(d<<3)>>3]));if(n>(o+ +t(+(+g[x+(z<<3)>>3])))*1.0e-06)z=d;else break}q=y+-1|0;a:do if((z|0)!=(y|0)){r=A+(y<<3)|0;s=A+(z+1<<3)|0;p=0;do{if(p>>>0>99)break a;p=p+1|0;v=c[b>>2]|0;w=v+(q<<3)|0;x=v+(y<<3)|0;h=+g[x>>3];o=(+g[w>>3]-h)*.5;m=+g[r>>3];m=m*m;j=+u(+(m+o*o));l=z;n=+g[s>>3];j=+g[v+(z<<3)>>3]-h+m/(o+(o<0.0?-j:j));while(1){if((l|0)>=(y|0))break;h=+t(+j);if(h>=+t(+n))if(h>1.0e-16){h=-n/j;o=1.0/+u(+(h*h+1.0));m=o;o=h*o}else{m=1.0;o=0.0}else{m=-j/n;o=1.0/+u(+(m*m+1.0));m=m*o}f=v+(l<<3)|0;I=+g[f>>3];k=l+1|0;d=v+(k<<3)|0;H=+g[d>>3];h=I-H;i=A+(k<<3)|0;G=o*(o*h+m*2.0*+g[i>>3]);g[f>>3]=I-G;g[d>>3]=H+G;d=A+(l<<3)|0;if((l|0)>(z|0))g[d>>3]=m*+g[d>>3]-n*o;I=+g[i>>3];g[i>>3]=I+o*(m*h-o*2.0*I);e=B(l,E)|0;f=B(k,E)|0;d=0;h=n;while(1){if((d|0)==(E|0))break;J=c[a>>2]|0;K=J+(d+e<<3)|0;j=+g[K>>3];J=J+(d+f<<3)|0;h=+g[J>>3];g[K>>3]=m*j-o*h;g[J>>3]=o*j+m*h;d=d+1|0}if((l|0)<(q|0)){j=+g[i>>3];K=A+(l+2<<3)|0;h=+g[K>>3];g[K>>3]=m*h;h=-(o*h)}l=k;n=h}H=+t(+(+g[r>>3]));I=+t(+(+g[w>>3]))}while(H>(I+ +t(+(+g[x>>3])))*1.0e-06)}while(0);y=q}d=0;while(1){if((d|0)==(D|0))break;f=c[b>>2]|0;i=f+(d<<3)|0;j=+g[i>>3];l=d+1|0;h=j;k=d;e=l;while(1){if((e|0)>=(E|0))break;I=+g[f+(e<<3)>>3];K=I>h;h=K?I:h;k=K?e:k;e=e+1|0}g[f+(k<<3)>>3]=j;g[i>>3]=h;e=c[a>>2]|0;f=e+((B(d,E)|0)<<3)|0;d=e+((B(k,E)|0)<<3)|0;e=0;while(1){if((e|0)==(E|0))break;I=+g[d>>3];g[d>>3]=+g[f>>3];g[f>>3]=I;f=f+8|0;d=d+8|0;e=e+1|0}d=l}re(C)|0;d=0}else d=-1;while(0);zb=F;return d|0}function Wd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0.0;p=c[a+4>>2]|0;q=c[a+8>>2]|0;a:do if(((((!((p|0)<1|(q|0)<1)?(c[b+4>>2]|0)==(p|0):0)?(c[b+8>>2]|0)==(p|0):0)?(c[d+4>>2]|0)==(p|0):0)?(c[d+8>>2]|0)==(q|0):0)?(c[e+4>>2]|0)==(p|0):0){h=0;d=c[d>>2]|0;while(1){if((h|0)>=(p|0))break;i=+g[(c[e>>2]|0)+(h<<3)>>3];if(i<1.0e-16)break;n=1.0/+u(+(+t(+i)));o=B(h,p)|0;j=0;m=d;while(1){if((j|0)==(q|0))break;f=0;k=(c[b>>2]|0)+(o<<3)|0;i=0.0;l=(c[a>>2]|0)+(j<<3)|0;while(1){if((f|0)==(p|0))break;r=i+ +g[k>>3]*+g[l>>3];f=f+1|0;k=k+8|0;i=r;l=l+(q<<3)|0}g[m>>3]=n*i;j=j+1|0;m=m+8|0}h=h+1|0;d=d+(q<<3)|0}while(1){if((h|0)>=(p|0)){d=0;break a}g[(c[e>>2]|0)+(h<<3)>>3]=0.0;f=0;while(1){if((f|0)>=(q|0))break;g[d>>3]=0.0;f=f+1|0;d=d+8|0}h=h+1|0}}else d=-1;while(0);return d|0}function Xd(a){a=a|0;var b=0;b=c[a+4>>2]|0;return ((Yd(c[a>>2]|0,b,b)|0)==0)<<31>>31|0}function Yd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;q=zb;zb=zb+2e3|0;p=q;a:do if((b|0)>500)a=0;else{switch(b|0){case 0:{a=0;break a}case 1:{g[a>>3]=1.0/+g[a>>3];break a}default:{}}e=0;while(1){if((e|0)>=(b|0))break;c[p+(e<<2)>>2]=e;e=e+1|0}o=a+(b+-1<<3)|0;l=0;n=o;while(1){if((l|0)>=(b|0))break;m=a+((B(l,d)|0)<<3)|0;k=0.0;e=m;i=-1;f=l;while(1){if((f|0)==(b|0))break;r=+t(+(+g[e>>3]));j=k>2]|0;f=p+(l<<2)|0;c[e>>2]=c[f>>2];c[f>>2]=h;f=0;h=m;e=a+((B(i,d)|0)<<3)|0;while(1){if((f|0)==(b|0))break;r=+g[e>>3];g[e>>3]=+g[h>>3];g[h>>3]=r;f=f+1|0;h=h+8|0;e=e+8|0}k=+g[m>>3];e=1;f=m;while(1){if((e|0)==(b|0))break;j=f+8|0;g[f>>3]=+g[j>>3]/k;e=e+1|0;f=j}g[n>>3]=1.0/k;e=0;j=o;while(1){if((e|0)==(b|0))break;if((e|0)!=(l|0)){i=a+((B(e,d)|0)<<3)|0;k=+g[i>>3];f=m;h=1;while(1){if((h|0)==(b|0))break;s=i+8|0;g[i>>3]=+g[s>>3]-k*+g[f>>3];f=f+8|0;h=h+1|0;i=s}g[j>>3]=-(k*+g[n>>3])}e=e+1|0;j=j+(d<<3)|0}l=l+1|0;n=n+(d<<3)|0}j=0;while(1){if((j|0)>=(b|0))break a;i=j;while(1){e=p+(i<<2)|0;if((i|0)>=(b|0))break;if((c[e>>2]|0)==(j|0))break;i=i+1|0}c[e>>2]=c[p+(j<<2)>>2];f=0;h=a+(j<<3)|0;e=a+(i<<3)|0;while(1){if((f|0)>=(b|0))break;r=+g[e>>3];g[e>>3]=+g[h>>3];g[h>>3]=r;f=f+1|0;h=h+(d<<3)|0;e=e+(d<<3)|0}j=j+1|0}}while(0);zb=q;return a|0}function Zd(a){a=a|0;var b=0;b=c[a+4>>2]|0;return ((_d(c[a>>2]|0,b,b)|0)==0)<<31>>31|0}function _d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;q=zb;zb=zb+2e3|0;p=q;a:do if((b|0)>500)a=0;else{switch(b|0){case 0:{a=0;break a}case 1:{f[a>>2]=1.0/+f[a>>2];break a}default:{}}e=0;while(1){if((e|0)>=(b|0))break;c[p+(e<<2)>>2]=e;e=e+1|0}o=a+(b+-1<<2)|0;l=0;n=o;while(1){if((l|0)>=(b|0))break;m=a+((B(l,d)|0)<<2)|0;k=0.0;e=m;i=-1;g=l;while(1){if((g|0)==(b|0))break;r=+t(+(+f[e>>2]));j=k>2]|0;g=p+(l<<2)|0;c[e>>2]=c[g>>2];c[g>>2]=h;g=0;h=m;e=a+((B(i,d)|0)<<2)|0;while(1){if((g|0)==(b|0))break;j=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=j;g=g+1|0;h=h+4|0;e=e+4|0}k=+f[m>>2];e=1;g=m;while(1){if((e|0)==(b|0))break;j=g+4|0;f[g>>2]=+f[j>>2]/k;e=e+1|0;g=j}f[n>>2]=1.0/k;e=0;j=o;while(1){if((e|0)==(b|0))break;if((e|0)!=(l|0)){i=a+((B(e,d)|0)<<2)|0;k=+f[i>>2];g=m;h=1;while(1){if((h|0)==(b|0))break;s=i+4|0;f[i>>2]=+f[s>>2]-k*+f[g>>2];g=g+4|0;h=h+1|0;i=s}f[j>>2]=-(k*+f[n>>2])}e=e+1|0;j=j+(d<<2)|0}l=l+1|0;n=n+(d<<2)|0}j=0;while(1){if((j|0)>=(b|0))break a;i=j;while(1){e=p+(i<<2)|0;if((i|0)>=(b|0))break;if((c[e>>2]|0)==(j|0))break;i=i+1|0}c[e>>2]=c[p+(j<<2)>>2];g=0;h=a+(j<<2)|0;e=a+(i<<2)|0;while(1){if((g|0)>=(b|0))break;s=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=s;g=g+1|0;h=h+(d<<2)|0;e=e+(d<<2)|0}j=j+1|0}}while(0);zb=q;return a|0}function $d(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;h=c[a+4>>2]|0;a:do if((h|0)==(c[b+8>>2]|0)?(i=c[a+8>>2]|0,(i|0)==(c[b+4>>2]|0)):0){a=c[a>>2]|0;f=0;while(1){if((f|0)>=(h|0)){a=0;break a}d=(c[b>>2]|0)+(f<<3)|0;e=0;while(1){if((e|0)>=(i|0))break;g[a>>3]=+g[d>>3];d=d+(h<<3)|0;e=e+1|0;a=a+8|0}f=f+1|0}}else a=-1;while(0);return a|0}function ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;a:do if((g|0)==(c[b+8>>2]|0)?(h=c[a+8>>2]|0,(h|0)==(c[b+4>>2]|0)):0){a=c[a>>2]|0;f=0;while(1){if((f|0)>=(g|0)){a=0;break a}d=(c[b>>2]|0)+(f<<2)|0;e=0;while(1){if((e|0)>=(h|0))break;c[a>>2]=c[d>>2];d=d+(g<<2)|0;e=e+1|0;a=a+4|0}f=f+1|0}}else a=-1;while(0);return a|0}function be(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0;h=+(b|0)/+(c[a>>2]|0);f=+(d|0)/+(c[a+4>>2]|0);c[e>>2]=b;c[e+4>>2]=d;b=0;while(1){if((b|0)==4)break;g[e+8+(b<<3)>>3]=h*+g[a+8+(b<<3)>>3];g[e+40+(b<<3)>>3]=f*+g[a+40+(b<<3)>>3];g[e+72+(b<<3)>>3]=+g[a+72+(b<<3)>>3];b=b+1|0}b=c[a+176>>2]|0;switch(b|0){case 4:{g[e+104>>3]=+g[a+104>>3];g[e+112>>3]=+g[a+112>>3];g[e+120>>3]=+g[a+120>>3];g[e+128>>3]=+g[a+128>>3];g[e+136>>3]=h*+g[a+136>>3];g[e+144>>3]=f*+g[a+144>>3];g[e+152>>3]=h*+g[a+152>>3];g[e+160>>3]=f*+g[a+160>>3];g[e+168>>3]=+g[a+168>>3];i=9;break}case 3:{g[e+104>>3]=h*+g[a+104>>3];g[e+112>>3]=f*+g[a+112>>3];g[e+120>>3]=+g[a+120>>3];g[e+128>>3]=+g[a+128>>3];g[e+136>>3]=+g[a+136>>3]/(h*f);g[e+144>>3]=+g[a+144>>3]/(f*(h*h*f));i=9;break}case 2:{g[e+104>>3]=h*+g[a+104>>3];g[e+112>>3]=f*+g[a+112>>3];g[e+120>>3]=+g[a+120>>3];g[e+128>>3]=+g[a+128>>3]/(h*f);g[e+136>>3]=+g[a+136>>3]/(f*(h*h*f));i=9;break}case 1:{g[e+104>>3]=h*+g[a+104>>3];g[e+112>>3]=f*+g[a+112>>3];g[e+120>>3]=+g[a+120>>3];g[e+128>>3]=+g[a+128>>3]/(h*f);i=9;break}default:b=-1}if((i|0)==9){c[e+176>>2]=b;b=0}return b|0}function ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0.0;h=zb;zb=zb+96|0;f=h;a:do if(!(+g[a+88>>3]>=0.0)){d=0;while(1){if((d|0)==3)break a;e=0;while(1){if((e|0)==4)break;g[f+(d<<5)+(e<<3)>>3]=-+g[a+(d<<5)+(e<<3)>>3];e=e+1|0}d=d+1|0}}else{d=0;while(1){if((d|0)==3)break a;e=0;while(1){if((e|0)==4)break;g[f+(d<<5)+(e<<3)>>3]=+g[a+(d<<5)+(e<<3)>>3];e=e+1|0}d=d+1|0}}while(0);d=0;while(1){if((d|0)==3)break;e=0;while(1){if((e|0)==4)break;g[b+(d<<5)+(e<<3)>>3]=0.0;e=e+1|0}d=d+1|0}i=+g[f+64>>3];n=+g[f+72>>3];o=+g[f+80>>3];w=+de(i,n,o);a=b+80|0;g[a>>3]=w;w=i/w;u=c+64|0;g[u>>3]=w;n=n/+g[a>>3];s=c+72|0;g[s>>3]=n;o=o/+g[a>>3];p=c+80|0;g[p>>3]=o;m=c+88|0;g[m>>3]=+g[f+88>>3]/+g[a>>3];i=+g[f+32>>3];j=+g[f+40>>3];r=+g[f+48>>3];o=+ee(w,n,o,i,j,r);l=b+48|0;g[l>>3]=o;i=i-o*+g[u>>3];j=j-o*+g[s>>3];o=r-o*+g[p>>3];r=+de(i,j,o);k=b+40|0;g[k>>3]=r;v=c+32|0;g[v>>3]=i/r;t=c+40|0;g[t>>3]=j/+g[k>>3];q=c+48|0;g[q>>3]=o/+g[k>>3];o=+g[f>>3];j=+g[f+8>>3];r=+g[f+16>>3];i=+ee(+g[u>>3],+g[s>>3],+g[p>>3],o,j,r);d=b+16|0;g[d>>3]=i;n=+ee(+g[v>>3],+g[t>>3],+g[q>>3],o,j,r);e=b+8|0;g[e>>3]=n;o=o-n*+g[v>>3]-i*+g[u>>3];j=j-n*+g[t>>3]-i*+g[s>>3];i=r-n*+g[q>>3]-i*+g[p>>3];n=+de(o,j,i);g[b>>3]=n;g[c>>3]=o/n;g[c+8>>3]=j/+g[b>>3];g[c+16>>3]=i/+g[b>>3];i=+g[m>>3];j=(+g[f+56>>3]-+g[l>>3]*i)/+g[k>>3];g[c+56>>3]=j;g[c+24>>3]=(+g[f+24>>3]-j*+g[e>>3]-i*+g[d>>3])/+g[b>>3];d=0;while(1){if((d|0)==3)break;e=0;while(1){if((e|0)==3)break;v=b+(d<<5)+(e<<3)|0;g[v>>3]=+g[v>>3]/+g[a>>3];e=e+1|0}d=d+1|0}zb=h;return 0}function de(a,b,c){a=+a;b=+b;c=+c;return +(+u(+(a*a+b*b+c*c)))}function ee(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=+d;e=+e;f=+f;return +(a*d+b*e+c*f)}function fe(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;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.0,p=0.0,q=0.0,r=0.0,s=0.0,t=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;switch(f|0){case 4:{t=+g[a>>3];v=+g[a+8>>3];r=+g[a+16>>3];s=+g[a+24>>3];x=+g[a+32>>3];y=+g[a+40>>3];z=+g[a+48>>3];A=+g[a+56>>3];w=+g[a+64>>3];q=(b-z)/x;l=(c-A)/y;m=r*2.0;n=s*6.0;o=s*2.0;p=r*6.0;i=q;j=l;k=q*q;b=l*l;f=1;while(1){if(!(b!=0.0|k!=0.0)){c=0.0;b=0.0;break}D=b+k;C=t*D+1.0+D*(v*D);c=k*3.0;B=b*c;c=i-(s*(D+k*2.0)+(j*(m*i)+i*C)-q)/(n*i+(m*j+(t*(b+c)+1.0+v*(b*b+(k*(k*5.0)+B)))));i=o*c;b=j-(r*(b*2.0+D)+j*C+j*i-l)/(p*j+(t*(k+b*3.0)+1.0+v*(b*(b*5.0)+(k*k+B)))+i);if((f|0)==4)break;i=c;j=b;k=c*c;b=b*b;f=f+1|0}g[d>>3]=z+x*c/w;b=A+y*b/w;h=22;break}case 3:{p=+g[a>>3];b=(b-p)/+g[a+24>>3];h=a+8|0;c=c-+g[h>>3];k=+g[a+32>>3]/1.0e8;l=+g[a+40>>3]/1.0e8/1.0e5;i=b*b+c*c;m=+u(+i);n=k*3.0;o=l*5.0;f=1;j=m;while(1){if(!(j!=0.0)){c=0.0;b=0.0;break}D=j-(j*(1.0-k*i-i*(l*i))-m)/(1.0-n*i-i*(o*i));b=b*D/j;c=c*D/j;if((f|0)==3)break;j=b*b+c*c;i=j;f=f+1|0;j=+u(+j)}a=a+16|0;g[d>>3]=p+b/+g[a>>3];b=c/+g[a>>3]+ +g[h>>3];h=22;break}case 2:{p=+g[a>>3];b=b-p;h=a+8|0;c=c-+g[h>>3];k=+g[a+24>>3]/1.0e8;l=+g[a+32>>3]/1.0e8/1.0e5;i=b*b+c*c;m=+u(+i);n=k*3.0;o=l*5.0;f=1;j=m;while(1){if(!(j!=0.0)){c=0.0;b=0.0;break}D=j-(j*(1.0-k*i-i*(l*i))-m)/(1.0-n*i-i*(o*i));b=b*D/j;c=c*D/j;if((f|0)==3)break;i=b*b+c*c;f=f+1|0;j=+u(+i)}a=a+16|0;g[d>>3]=p+b/+g[a>>3];b=c/+g[a>>3]+ +g[h>>3];h=22;break}case 1:{n=+g[a>>3];b=b-n;h=a+8|0;c=c-+g[h>>3];k=+g[a+24>>3]/1.0e8;i=b*b+c*c;l=+u(+i);m=k*3.0;f=1;j=l;while(1){if(!(j!=0.0)){c=0.0;b=0.0;break}D=j-(j*(1.0-k*i)-l)/(1.0-m*i);b=b*D/j;c=c*D/j;if((f|0)==3)break;i=b*b+c*c;f=f+1|0;j=+u(+i)}a=a+16|0;g[d>>3]=n+b/+g[a>>3];b=c/+g[a>>3]+ +g[h>>3];h=22;break}default:f=-1}if((h|0)==22){g[e>>3]=b;f=0}return f|0}function ge(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;a:do switch(f|0){case 4:{h=+g[a+16>>3];l=+g[a+24>>3];o=+g[a+32>>3];m=+g[a+40>>3];p=+g[a+48>>3];n=+g[a+56>>3];i=+g[a+64>>3];k=(b-p)*i/o;c=(c-n)*i/m;i=k*k+c*c;b=+g[a>>3]*i+1.0+i*(+g[a+8>>3]*i);g[d>>3]=p+o*(l*(i+k*(k*2.0))+(c*(h*2.0*k)+k*b));b=n+m*(c*(l*2.0*k)+(h*(i+c*(c*2.0))+c*b));j=12;break}case 3:{i=+g[a>>3];p=+g[a+16>>3];h=(b-i)*p;f=a+8|0;b=p*(c-+g[f>>3]);if(h==0.0&b==0.0){g[d>>3]=i;b=+g[f>>3];j=12;break a}else{p=h*h+b*b;p=1.0-p*(+g[a+32>>3]/1.0e8)-p*(p*(+g[a+40>>3]/1.0e8/1.0e5));g[d>>3]=i+ +g[a+24>>3]*(h*p);b=+g[f>>3]+b*p;j=12;break a}}case 2:{i=+g[a>>3];p=+g[a+16>>3];h=(b-i)*p;f=a+8|0;b=p*(c-+g[f>>3]);if(h==0.0&b==0.0){g[d>>3]=i;b=+g[f>>3];j=12;break a}else{p=h*h+b*b;p=1.0-p*(+g[a+24>>3]/1.0e8)-p*(p*(+g[a+32>>3]/1.0e8/1.0e5));g[d>>3]=i+h*p;b=+g[f>>3]+b*p;j=12;break a}}case 1:{i=+g[a>>3];p=+g[a+16>>3];h=(b-i)*p;f=a+8|0;b=p*(c-+g[f>>3]);if(h==0.0&b==0.0){g[d>>3]=i;b=+g[f>>3];j=12;break a}else{p=1.0-(h*h+b*b)*(+g[a+24>>3]/1.0e8);g[d>>3]=i+h*p;b=+g[f>>3]+b*p;j=12;break a}}default:f=-1}while(0);if((j|0)==12){g[e>>3]=b;f=0}return f|0}function he(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=zb;zb=zb+192|0;f=g;ie(a,f);ie(a+4|0,f+4|0);b=0;while(1){if((b|0)==3)break;d=0;while(1){if((d|0)==4)break;je(a+8+(b<<5)+(d<<3)|0,f+8+(b<<5)+(d<<3)|0);d=d+1|0}b=b+1|0}d=a+176|0;b=0;while(1){e=c[d>>2]|0;if((b|0)>=(c[1712+(e+-1<<3)>>2]|0))break;je(a+104+(b<<3)|0,f+104+(b<<3)|0);b=b+1|0}c[f+176>>2]=e;_O(a|0,f|0,184)|0;zb=g;return}function ie(b,c){b=b|0;c=c|0;var d=0;d=0;while(1){if((d|0)==4)break;a[c+d>>0]=a[b+(3-d)>>0]|0;d=d+1|0}return}function je(b,c){b=b|0;c=c|0;var d=0;d=0;while(1){if((d|0)==8)break;a[c+d>>0]=a[b+(7-d)>>0]|0;d=d+1|0}return}function ke(a,b,d,e){a=a|0;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,p=0,q=0,r=0,s=0,t=0.0;s=zb;zb=zb+256|0;n=s+248|0;l=s+240|0;k=s+232|0;j=s+224|0;i=s+216|0;h=s+208|0;f=s+200|0;p=s;q=s+16|0;do if((a|0)!=0&(b|0)>0&(d|0)!=0){r=rz(a,22236)|0;if(!r){r=ox()|0;c[f>>2]=c[r>>2];c[f+4>>2]=a;Ue(0,3,20359,f);a=ox()|0;a=By(c[a>>2]|0)|0;c[h>>2]=57671;c[h+4>>2]=a;Ue(0,3,21881,h);a=-1;break}Kz(r,0,2)|0;a:do if(!(Bz(r)|0)){h=hA(r)|0;iA(r);f=0;while(1){if(f>>>0>=4){o=9;break}a=c[1712+(f<<3)+4>>2]|0;f=f+1|0;if(!((h|0)%(a|0)|0)){m=f;break}}do if((o|0)==9)if((f|0)==4){Ue(0,3,20473,k);a=-1;break a}else{m=0;a=c[1712+(0<<3)+4>>2]|0;break}while(0);if((gA(q,a,1,r)|0)!=1){a=ox()|0;c[l>>2]=c[a>>2];Ue(0,3,20553,l);a=ox()|0;a=By(c[a>>2]|0)|0;c[n>>2]=57671;c[n+4>>2]=a;Ue(0,3,21881,n);a=-1;break}j=q+176|0;c[j>>2]=m;he(q);k=(m|0)==1;l=q+120|0;if(k){t=+g[l>>3];i=q+128|0;g[l>>3]=+g[i>>3];g[i>>3]=t}else i=q+128|0;_O(d|0,q|0,184)|0;c[p>>2]=e;f=d+176|0;a=1;while(1){if((a|0)>=(b|0)){a=0;break a}e=(c[p>>2]|0)+(4-1)&~(4-1);h=c[e>>2]|0;c[p>>2]=e+4;c[h+176>>2]=c[f>>2];if((gA(q,c[1712+((c[f>>2]|0)+-1<<3)+4>>2]|0,1,r)|0)!=1){a=-1;break a}c[j>>2]=m;he(q);if(k){t=+g[l>>3];g[l>>3]=+g[i>>3];g[i>>3]=t}_O(h|0,q|0,184)|0;a=a+1|0}}else{a=ox()|0;c[i>>2]=c[a>>2];Ue(0,3,20428,i);a=ox()|0;a=By(c[a>>2]|0)|0;c[j>>2]=57671;c[j+4>>2]=a;Ue(0,3,21881,j);a=-1}while(0);xz(r)|0}else a=-1;while(0);zb=s;return a|0}function le(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+416|0;j=o+304|0;m=o+208|0;k=o+128|0;n=o;l=c[a>>2]|0;f=c[a+4>>2]|0;a:do if((ce(a+8|0,j,m)|0)<0)Ue(0,3,20591,o+400|0);else{i=+(f+-1|0);a=0;while(1){if((a|0)==4)break;f=j+32+(a<<3)|0;g[f>>3]=+g[j+64+(a<<3)>>3]*i-+g[f>>3];a=a+1|0}h=+g[j+80>>3];f=0;while(1){if((f|0)==3)break;a=0;while(1){if((a|0)==3)break;g[k+(f*24|0)+(a<<3)>>3]=+g[j+(f<<5)+(a<<3)>>3]/h;a=a+1|0}f=f+1|0}h=+(l+-1|0);g[n>>3]=+g[k>>3]*2.0/h;g[n+8>>3]=+g[k+8>>3]*2.0/h;g[n+16>>3]=-(+g[k+16>>3]*2.0/h+-1.0);f=n+24|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[n+40>>3]=-(+g[k+32>>3]*2.0/i);g[n+48>>3]=-(+g[k+40>>3]*2.0/i+-1.0);f=n+56|0;h=b-d;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;g[n+80>>3]=(b+d)/h;g[n+88>>3]=d*2.0*b/h;f=n+96|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[n+112>>3]=-1.0;g[n+120>>3]=0.0;h=+g[m+24>>3];i=+g[m+56>>3];b=+g[m+88>>3];f=0;while(1){if((f|0)==4)break a;d=+g[n+(f<<5)>>3];j=n+(f<<5)+8|0;k=n+(f<<5)+16|0;a=0;while(1){if((a|0)==3)break;g[e+((a<<2)+f<<3)>>3]=d*+g[m+(a<<3)>>3]+ +g[j>>3]*+g[m+32+(a<<3)>>3]+ +g[k>>3]*+g[m+64+(a<<3)>>3];a=a+1|0}g[e+(f+12<<3)>>3]=+g[n+(f<<5)+24>>3]+(d*h+ +g[j>>3]*i+ +g[k>>3]*b);f=f+1|0}}while(0);zb=o;return}function me(a,b){a=a|0;b=b|0;var d=0,e=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.0;s=zb;zb=zb+64|0;n=s+24|0;o=s+16|0;p=s+8|0;q=s;r=FO(208)|0;if(!r){Ue(0,3,41858,s+32|0);Ea(1)}_O(r|0,a|0,184)|0;m=b<<1;l=(c[a>>2]|0)+m|0;c[r+192>>2]=l;m=(c[a+4>>2]|0)+m|0;c[r+196>>2]=m;c[r+200>>2]=b;c[r+204>>2]=b;d=B(l<<3,m)|0;e=FO(d)|0;c[r+184>>2]=e;if(!e){Ue(0,3,41858,s+40|0);Ea(1)}d=FO(d)|0;c[r+188>>2]=d;if(!d){Ue(0,3,41858,s+48|0);Ea(1)}k=a+104|0;j=c[a+176>>2]|0;i=0;a=e;while(1){if((i|0)>=(m|0))break;h=+(i-b|0);e=0;while(1){if((e|0)>=(l|0))break;t=+(e-b|0);ge(k,t,h,p,q,j)|0;f[a>>2]=+g[p>>3];f[a+4>>2]=+g[q>>3];fe(k,t,h,n,o,j)|0;f[d>>2]=+g[n>>3];f[d+4>>2]=+g[o>>3];e=e+1|0;d=d+8|0;a=a+8|0}i=i+1|0}zb=s;return r|0}function ne(a){a=a|0;var b=0;if((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0){GO(c[b+184>>2]|0);GO(c[(c[a>>2]|0)+188>>2]|0);GO(c[a>>2]|0);c[a>>2]=0;a=0}else a=-1;return a|0}function oe(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var g=0,h=0,i=0;h=(c[a+16>>2]|0)+~~(b+.5)|0;g=(c[a+20>>2]|0)+~~(d+.5)|0;if(((h|0)>=0?(i=c[a+8>>2]|0,!((g|0)<0|(h|0)>=(i|0))):0)?(g|0)<(c[a+12>>2]|0):0){g=(c[a>>2]|0)+((B(i,g)|0)+h<<1<<2)|0;c[e>>2]=c[g>>2];c[f>>2]=c[g+4>>2];g=0}else g=-1;return g|0}function pe(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var g=0,h=0,i=0;h=(c[a+16>>2]|0)+~~(b+.5)|0;g=(c[a+20>>2]|0)+~~(d+.5)|0;if(((h|0)>=0?(i=c[a+8>>2]|0,!((g|0)<0|(h|0)>=(i|0))):0)?(g|0)<(c[a+12>>2]|0):0){g=(c[a+4>>2]|0)+((B(i,g)|0)+h<<1<<2)|0;c[e>>2]=c[g>>2];c[f>>2]=c[g+4>>2];g=0}else g=-1;return g|0}function qe(a){a=a|0;var b=0,d=0;b=FO(8)|0;do if(b){d=FO(a<<3)|0;c[b>>2]=d;if(!d){GO(b);b=0;break}else{c[b+4>>2]=a;break}}else b=0;while(0);return b|0}function re(a){a=a|0;GO(c[a>>2]|0);GO(a);return 0}function se(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,h=0;b=+u(+(+te(a,a)));a:do if(b!=0.0){f=c[a>>2]|0;e=+g[f>>3];b=e<0.0?-b:b;e=e+b;g[f>>3]=e;e=1.0/+u(+(b*e));d=c[a+4>>2]|0;a=0;while(1){if((a|0)>=(d|0))break a;h=f+(a<<3)|0;g[h>>3]=e*+g[h>>3];a=a+1|0}}while(0);return +-b}function te(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0.0;f=c[a+4>>2]|0;if((f|0)!=(c[b+4>>2]|0))Ea(0);d=0;e=0.0;while(1){if((d|0)>=(f|0))break;h=e+ +g[(c[a>>2]|0)+(d<<3)>>3]*+g[(c[b>>2]|0)+(d<<3)>>3];d=d+1|0;e=h}return +e}function ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=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,w=0,x=0;x=zb;zb=zb+16|0;u=x+8|0;v=x;w=c[a+8>>2]|0;a:do if(((w|0)==(c[a+4>>2]|0)?(w|0)==(c[b+4>>2]|0):0)?(w|0)==((c[d+4>>2]|0)+1|0):0){r=w+-2|0;s=u+4|0;t=v+4|0;l=0;while(1){if((l|0)>=(r|0))break;m=(c[a>>2]|0)+((B(l,w)|0)<<3)|0;g[(c[b>>2]|0)+(l<<3)>>3]=+g[m+(l<<3)>>3];i=w-l+-1|0;c[s>>2]=i;p=l+1|0;k=m+(p<<3)|0;c[u>>2]=k;o=+se(u);g[(c[d>>2]|0)+(l<<3)>>3]=o;b:do if(!(o==0.0)){h=p;while(1){if((h|0)>=(w|0))break;e=p;j=0.0;while(1){if(e>>>0>=h>>>0)break;f=(c[a>>2]|0)+((B(e,w)|0)+h<<3)|0;o=j+ +g[f>>3]*+g[m+(e<<3)>>3];e=e+1|0;j=o}f=B(h,w)|0;e=h;while(1){if((e|0)>=(w|0))break;o=j+ +g[(c[a>>2]|0)+(e+f<<3)>>3]*+g[m+(e<<3)>>3];e=e+1|0;j=o}g[(c[b>>2]|0)+(h<<3)>>3]=j;h=h+1|0}c[t>>2]=i;c[s>>2]=i;c[u>>2]=k;c[v>>2]=(c[b>>2]|0)+(p<<3);o=+te(u,v)*.5;e=w;while(1){e=e+-1|0;if((e|0)<=(l|0))break b;j=+g[m+(e<<3)>>3];h=c[b>>2]|0;i=h+(e<<3)|0;n=+g[i>>3]-o*j;g[i>>3]=n;i=B(e,w)|0;f=e;while(1){if((f|0)>=(w|0))break;k=(c[a>>2]|0)+(f+i<<3)|0;g[k>>3]=+g[k>>3]-(j*+g[h+(f<<3)>>3]+n*+g[m+(f<<3)>>3]);f=f+1|0}}}while(0);l=p}if((w|0)<=1)if((w|0)==1){h=0;e=c[a>>2]|0;f=c[b>>2]|0;q=27}else i=w;else{e=c[a>>2]|0;q=B(r,w)|0;f=c[b>>2]|0;g[f+(r<<3)>>3]=+g[e+(q+r<<3)>>3];h=w+-1|0;g[(c[d>>2]|0)+(r<<3)>>3]=+g[e+(h+q<<3)>>3];q=27}if((q|0)==27){e=e+((B(h,w)|0)+h<<3)|0;i=w;j=+g[e>>3];e=f+(h<<3)|0;q=28}while(1){if((q|0)==28)g[e>>3]=j;d=i+-1|0;if((i|0)<=0){e=0;break a}m=(c[a>>2]|0)+((B(d,w)|0)<<3)|0;c:do if((i|0)<=(r|0)){h=w-d+-1|0;k=m+(i<<3)|0;e=i;while(1){if((e|0)>=(w|0))break c;c[t>>2]=h;c[s>>2]=h;c[u>>2]=k;l=B(e,w)|0;c[v>>2]=(c[a>>2]|0)+(l+i<<3);j=+te(u,v);f=i;while(1){if((f|0)>=(w|0))break;q=(c[a>>2]|0)+(f+l<<3)|0;g[q>>3]=+g[q>>3]-j*+g[m+(f<<3)>>3];f=f+1|0}e=e+1|0}}while(0);e=0;while(1){if((e|0)>=(w|0))break;g[m+(e<<3)>>3]=0.0;e=e+1|0}i=d;j=1.0;e=m+(d<<3)|0;q=28}}else e=-1;while(0);zb=x;return e|0}function ve(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0;f=+g[c>>3];h=+g[c+8>>3];e=+g[c+16>>3];d=+g[b+88>>3]+(f*+g[b+64>>3]+h*+g[b+72>>3]+e*+g[b+80>>3]);if(d==0.0)c=-1;else{i=+g[b+56>>3]+(f*+g[b+32>>3]+h*+g[b+40>>3]+e*+g[b+48>>3]);g[a>>3]=(+g[b+24>>3]+(f*+g[b>>3]+h*+g[b+8>>3]+e*+g[b+16>>3]))/d;g[a+8>>3]=i/d;c=0}return c|0}function we(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,h=0,i=0,j=0,k=0.0;j=zb;zb=zb+224|0;h=j+48|0;i=j;f=j+192|0;xe(h,f,c,d);a:do if((ye(i,b,f)|0)<0){Ue(0,3,20661,j+216|0);b=-1}else{c=0;while(1){if((c|0)==2){b=0;break a}d=0;while(1){if((d|0)==6)break;f=a+(c*48|0)+(d<<3)|0;g[f>>3]=0.0;b=0;e=0.0;while(1){if((b|0)==3)break;k=e+ +g[i+(c*24|0)+(b<<3)>>3]*+g[h+(b*48|0)+(d<<3)>>3];g[f>>3]=k;b=b+1|0;e=k}d=d+1|0}c=c+1|0}}while(0);zb=j;return b|0}function xe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=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;j=zb;zb=zb+864|0;h=j+576|0;i=j;u=c+8|0;e=d+8|0;n=+g[e>>3];t=c+16|0;v=d+16|0;l=+g[v>>3];g[b>>3]=+g[c+24>>3]+(+g[c>>3]*+g[d>>3]+ +g[u>>3]*n+ +g[t>>3]*l);s=c+32|0;o=+g[d>>3];r=c+40|0;q=c+48|0;g[b+8>>3]=+g[c+56>>3]+(+g[s>>3]*o+n*+g[r>>3]+l*+g[q>>3]);p=c+64|0;d=c+72|0;n=+g[e>>3];e=c+80|0;g[b+16>>3]=+g[c+88>>3]+(o*+g[p>>3]+ +g[d>>3]*n+l*+g[e>>3]);l=+g[c>>3];g[h>>3]=o*l;g[h+8>>3]=n*l;m=+g[v>>3];g[h+16>>3]=l*m;k=+g[u>>3];g[h+24>>3]=o*k;g[h+32>>3]=n*k;g[h+40>>3]=m*k;f=+g[t>>3];g[h+48>>3]=o*f;g[h+56>>3]=n*f;g[h+64>>3]=m*f;g[h+72>>3]=l;g[h+80>>3]=k;g[h+88>>3]=f;f=+g[s>>3];g[h+96>>3]=o*f;g[h+104>>3]=n*f;g[h+112>>3]=m*f;k=+g[r>>3];g[h+120>>3]=o*k;g[h+128>>3]=n*k;g[h+136>>3]=m*k;l=+g[q>>3];g[h+144>>3]=o*l;g[h+152>>3]=n*l;g[h+160>>3]=m*l;g[h+168>>3]=f;g[h+176>>3]=k;g[h+184>>3]=l;l=+g[p>>3];g[h+192>>3]=o*l;g[h+200>>3]=n*l;g[h+208>>3]=m*l;k=+g[d>>3];g[h+216>>3]=o*k;g[h+224>>3]=n*k;g[h+232>>3]=m*k;f=+g[e>>3];g[h+240>>3]=o*f;g[h+248>>3]=n*f;g[h+256>>3]=m*f;g[h+264>>3]=l;g[h+272>>3]=k;g[h+280>>3]=f;ze(i);c=0;while(1){if((c|0)==3)break;d=0;while(1){if((d|0)==6)break;e=a+(c*48|0)+(d<<3)|0;g[e>>3]=0.0;b=0;f=0.0;while(1){if((b|0)==12)break;o=f+ +g[h+(c*96|0)+(b<<3)>>3]*+g[i+(b*48|0)+(d<<3)>>3];g[e>>3]=o;b=b+1|0;f=o}d=d+1|0}c=c+1|0}zb=j;return}function ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0,h=0,i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0;o=+g[b>>3];r=+g[c>>3];p=b+8|0;q=+g[c+8>>3];n=b+16|0;d=+g[c+16>>3];e=+g[b+24>>3]+(o*r+ +g[p>>3]*q+ +g[n>>3]*d);c=b+32|0;f=b+40|0;h=b+48|0;i=+g[b+56>>3]+(r*+g[c>>3]+q*+g[f>>3]+d*+g[h>>3]);j=b+64|0;k=+g[j>>3];l=b+72|0;m=b+80|0;d=+g[b+88>>3]+(r*k+q*+g[l>>3]+d*+g[m>>3]);if(d==0.0)c=-1;else{r=d*d;g[a>>3]=(o*d-e*k)/r;g[a+8>>3]=(d*+g[p>>3]-e*+g[l>>3])/r;g[a+16>>3]=(d*+g[n>>3]-e*+g[m>>3])/r;g[a+24>>3]=(d*+g[c>>3]-i*+g[j>>3])/r;g[a+32>>3]=(d*+g[f>>3]-i*+g[l>>3])/r;g[a+40>>3]=(d*+g[h>>3]-i*+g[m>>3])/r;c=0}return c|0}function ze(a){a=a|0;var b=0,d=0,e=0;b=a+64|0;d=a;e=d+64|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=-1.0;b=a+72|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[b+24>>2]=0;c[b+28>>2]=0;g[a+104>>3]=1.0;b=a+160|0;d=a+112|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=1.0;b=a+240|0;d=a+168|0;e=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=-1.0;b=a+296|0;d=a+248|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=-1.0;b=a+304|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[b+24>>2]=0;c[b+28>>2]=0;g[a+336>>3]=1.0;b=a+456|0;d=a+344|0;e=d+112|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=1.0;b=a+512|0;d=a+464|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=1.0;b=a+568|0;d=a+520|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=1.0;return}function Ae(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;i=zb;zb=zb+48|0;h=i+24|0;g=i+12|0;f=i;c[h+4>>2]=6;c[h+8>>2]=1;c[h>>2]=a;c[g+4>>2]=e;c[g+8>>2]=1;c[g>>2]=b;c[f+4>>2]=e;c[f+8>>2]=6;c[f>>2]=d;d=Id(f)|0;do if(d){b=Gd(d,f)|0;if(!b){Ld(d)|0;a=-1;break}a=Gd(d,g)|0;if(!a){Ld(d)|0;Ld(b)|0;a=-1;break}if((Xd(b)|0)<0){Ld(d)|0;Ld(b)|0;Ld(a)|0;a=-1;break}else{Nd(h,b,a)|0;Ld(d)|0;Ld(b)|0;Ld(a)|0;a=0;break}}else a=-1;while(0);zb=i;return a|0}function Be(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,h=0,i=0,j=0;j=zb;zb=zb+256|0;f=j+192|0;h=j+96|0;i=j;Ce(f,b);De(h,f);b=0;while(1){if((b|0)==3)break;d=a+(b<<5)|0;e=a+(b<<5)+8|0;f=a+(b<<5)+16|0;c=0;while(1){if((c|0)==4)break;g[i+(b<<5)+(c<<3)>>3]=+g[d>>3]*+g[h+(c<<3)>>3]+ +g[e>>3]*+g[h+32+(c<<3)>>3]+ +g[f>>3]*+g[h+64+(c<<3)>>3];c=c+1|0}f=i+(b<<5)+24|0;g[f>>3]=+g[a+(b<<5)+24>>3]+ +g[f>>3];b=b+1|0}b=0;while(1){if((b|0)==3)break;c=0;while(1){if((c|0)==4)break;g[a+(b<<5)+(c<<3)>>3]=+g[i+(b<<5)+(c<<3)>>3];c=c+1|0}b=b+1|0}zb=j;return 0}function Ce(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0,f=0,h=0.0;d=+g[b>>3];e=b+8|0;h=+g[e>>3];f=b+16|0;c=+g[f>>3];c=d*d+h*h+c*c;if(c==0.0){g[a>>3]=1.0;g[a+8>>3]=0.0;d=0.0;c=0.0}else{c=+u(+c);g[a>>3]=d/c;g[a+8>>3]=+g[e>>3]/c;d=c;c=+g[f>>3]/c}g[a+16>>3]=c;g[a+24>>3]=d;g[a+32>>3]=+g[b+24>>3];g[a+40>>3]=+g[b+32>>3];g[a+48>>3]=+g[b+40>>3];return}function De(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0,h=0,i=0.0;c=+g[b+24>>3];e=+w(+c);d=1.0-e;c=+x(+c);i=+g[b>>3];g[a>>3]=e+i*i*d;h=b+8|0;f=b+16|0;g[a+8>>3]=d*(+g[b>>3]*+g[h>>3])-c*+g[f>>3];g[a+16>>3]=d*(+g[b>>3]*+g[f>>3])+c*+g[h>>3];g[a+24>>3]=+g[b+32>>3];g[a+32>>3]=d*(+g[h>>3]*+g[b>>3])+c*+g[f>>3];i=+g[h>>3];g[a+40>>3]=e+d*(i*i);g[a+48>>3]=d*(+g[h>>3]*+g[f>>3])-c*+g[b>>3];g[a+56>>3]=+g[b+40>>3];g[a+64>>3]=d*(+g[f>>3]*+g[b>>3])-c*+g[h>>3];g[a+72>>3]=d*(+g[f>>3]*+g[h>>3])+c*+g[b>>3];c=+g[f>>3];g[a+80>>3]=e+d*(c*c);g[a+88>>3]=+g[b+48>>3];return}function Ee(a){a=a|0;var b=0,d=0,e=0;b=FO(136)|0;if(!b)b=0;else{d=0;while(1){if((d|0)==3)break;e=0;while(1){if((e|0)==4)break;g[b+(d<<5)+(e<<3)>>3]=+g[a+(d<<5)+(e<<3)>>3];e=e+1|0}d=d+1|0}c[b+96>>2]=10;g[b+104>>3]=.10000000149011612;g[b+112>>3]=.9900000095367432;g[b+120>>3]=4.0;g[b+128>>3]=.5}return b|0}function Fe(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)a=-1;else{GO(b);c[a>>2]=0;a=0}return a|0}function Ge(a,b){a=a|0;b=+b;if(!a)a=-1;else{g[a+128>>3]=b;a=0}return a|0}function He(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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,u=0,v=0,w=0,x=0,y=0.0,z=0.0;x=zb;zb=zb+176|0;j=x+168|0;i=x+160|0;s=x+144|0;t=x+48|0;u=x;v=b+8|0;h=c[v>>2]|0;do if((h|0)>=3){w=FO(h*96|0)|0;if(!w){Ue(0,3,41875,i);h=-1;break}r=FO(h<<4)|0;if(!r){Ue(0,3,41875,j);GO(w);h=-1;break}h=0;while(1){if((h|0)==3)break;i=0;while(1){if((i|0)==4)break;g[e+(h<<5)+(i<<3)>>3]=+g[d+(h<<5)+(i<<3)>>3];i=i+1|0}h=h+1|0}d=b+4|0;m=s+8|0;n=a+104|0;o=a+96|0;p=a+120|0;q=a+112|0;l=0.0;j=0;a:while(1){ud(a,e,t)|0;k=0.0;i=0;while(1){h=c[v>>2]|0;if((i|0)>=(h|0))break;if((ve(s,t,(c[d>>2]|0)+(i*24|0)|0)|0)<0){i=16;break a}h=c[b>>2]|0;z=+g[h+(i<<4)>>3]-+g[s>>3];y=+g[h+(i<<4)+8>>3]-+g[m>>3];h=i<<1;g[r+(h<<3)>>3]=z;g[r+((h|1)<<3)>>3]=y;k=k+(z*z+y*y);i=i+1|0}k=k/+(h|0);if(k<+g[n>>3]){i=31;break}if((j|0?k<+g[p>>3]:0)?k/l>+g[q>>3]:0){i=31;break}if((j|0)==(c[o>>2]|0)){i=31;break}i=0;while(1){if((i|0)>=(h|0))break;if((we(w+(i*12<<3)|0,a,e,(c[d>>2]|0)+(i*24|0)|0)|0)<0){i=27;break a}i=i+1|0;h=c[v>>2]|0}if((Ae(u,r,w,h<<1)|0)<0){i=29;break}Be(e,u)|0;l=k;j=j+1|0}if((i|0)==16){Ie(w,r);h=-1;break}else if((i|0)==27){Ie(w,r);h=-1;break}else if((i|0)==29){Ie(w,r);h=-1;break}else if((i|0)==31){g[f>>3]=k;GO(w);GO(r);h=0;break}}else h=-1;while(0);zb=x;return h|0}function Ie(a,b){a=a|0;b=b|0;GO(a);GO(b);return}function Je(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=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,A=0,B=0,C=0,D=0,E=0,F=0;F=zb;zb=zb+192|0;l=F+184|0;k=F+176|0;j=F+168|0;h=F+160|0;A=F+144|0;B=F+48|0;C=F;D=b+8|0;i=c[D>>2]|0;do if((i|0)>=4){m=~~(+g[a+128>>3]*+(i|0))+-1|0;m=(m|0)>3?m:3;E=FO(i*96|0)|0;if(!E){Ue(0,3,41875,h);h=-1;break}z=FO(i<<4)|0;if(!z){Ue(0,3,41875,j);GO(E);h=-1;break}h=i<<3;y=FO(h)|0;if(!y){Ue(0,3,41875,k);GO(E);GO(z);h=-1;break}x=FO(h)|0;if(!x){Ue(0,3,41875,l);GO(E);GO(z);GO(y);h=-1;break}h=0;while(1){if((h|0)==3)break;i=0;while(1){if((i|0)==4)break;g[e+(h<<5)+(i<<3)>>3]=+g[d+(h<<5)+(i<<3)>>3];i=i+1|0}h=h+1|0}v=b+4|0;w=A+8|0;d=x+(m<<3)|0;m=a+104|0;s=a+96|0;t=a+120|0;u=a+112|0;q=0.0;l=0;a:while(1){ud(a,e,B)|0;h=0;while(1){i=c[D>>2]|0;if((h|0)>=(i|0))break;if((ve(A,B,(c[v>>2]|0)+(h*24|0)|0)|0)<0){i=20;break a}k=c[b>>2]|0;p=+g[k+(h<<4)>>3]-+g[A>>3];r=+g[k+(h<<4)+8>>3]-+g[w>>3];k=h<<1;g[z+(k<<3)>>3]=p;g[z+((k|1)<<3)>>3]=r;r=p*p+r*r;g[x+(h<<3)>>3]=r;g[y+(h<<3)>>3]=r;h=h+1|0}oy(x,i,8,18);r=+g[d>>3]*4.0;r=r<16.0?16.0:r;i=c[D>>2]|0;p=r/6.0;o=0.0;h=0;while(1){if((h|0)>=(i|0))break;n=+g[x+(h<<3)>>3];if(n>r)n=p;else{n=1.0-n/r;n=p*(1.0-n*(n*n))}o=o+n;h=h+1|0}o=o/+(i|0);if(o<+g[m>>3]){i=44;break}if((l|0?o<+g[t>>3]:0)?o/q>+g[u>>3]:0){i=44;break}if((l|0)==(c[s>>2]|0)){i=44;break}h=0;k=0;while(1){if((k|0)>=(i|0))break;n=+g[y+(k<<3)>>3];if(n<=r){j=h*6|0;i=E+(j<<3)|0;if((we(i,a,e,(c[v>>2]|0)+(k*24|0)|0)|0)<0){i=36;break a}q=1.0-n/r;q=q*q;g[i>>3]=q*+g[i>>3];i=E+((j|1)<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+2<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+3<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+4<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+5<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+6<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+7<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+8<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+9<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+10<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+11<<3)|0;g[i>>3]=q*+g[i>>3];i=k<<1;g[z+(h<<3)>>3]=q*+g[z+(i<<3)>>3];g[z+(h+1<<3)>>3]=q*+g[z+((i|1)<<3)>>3];h=h+2|0;i=c[D>>2]|0}k=k+1|0}if((h|0)<6){i=40;break}if((Ae(C,z,E,h)|0)<0){i=42;break}Be(e,C)|0;q=o;l=l+1|0}if((i|0)==20){Ke(E,z,y,x);h=-1;break}else if((i|0)==36){Ke(E,z,y,x);h=-1;break}else if((i|0)==40){Ke(E,z,y,x);h=-1;break}else if((i|0)==42){Ke(E,z,y,x);h=-1;break}else if((i|0)==44){g[f>>3]=o;GO(E);GO(z);GO(y);GO(x);h=0;break}}else h=-1;while(0);zb=F;return h|0}function Ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;GO(a);GO(b);GO(c);GO(d);return}function Le(a,b){a=a|0;b=b|0;var c=0.0;c=+g[a>>3]-+g[b>>3];return (c<0.0?-1:c>0.0&1)|0}function Me(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|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,v=0,w=0,x=0,y=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;t=zb;zb=zb+128|0;s=t+120|0;p=t+112|0;o=t+104|0;m=t+96|0;l=t+88|0;j=t+80|0;i=t+72|0;r=t;a:do if((e|0)>=4){h=0;while(1){if((h|0)>=(e|0))break;if(+g[d+(h*24|0)+16>>3]!=0.0){h=-1;break a}else h=h+1|0}if((((((((!(+g[a>>3]==0.0)?!(+g[a+32>>3]!=0.0):0)?(q=a+40|0,!(+g[q>>3]==0.0)):0)?!(+g[a+64>>3]!=0.0):0)?!(+g[a+72>>3]!=0.0):0)?!(+g[a+80>>3]!=1.0):0)?!(+g[a+24>>3]!=0.0):0)?!(+g[a+56>>3]!=0.0):0)?!(+g[a+88>>3]!=0.0):0){h=e<<1;n=Dd(h,8)|0;if(!n){Ue(0,3,20681,i);h=-1;break}k=Dd(h,1)|0;if(!k){Ld(n)|0;Ue(0,3,20707,j);h=-1;break}h=0;while(1){if((h|0)==(e|0))break;y=d+(h*24|0)|0;j=c[n>>2]|0;i=h<<4;g[j+(i<<3)>>3]=+g[y>>3];x=d+(h*24|0)+8|0;g[j+((i|1)<<3)>>3]=+g[x>>3];g[j+((i|2)<<3)>>3]=1.0;g[j+((i|3)<<3)>>3]=0.0;g[j+((i|4)<<3)>>3]=0.0;g[j+((i|5)<<3)>>3]=0.0;w=b+(h<<4)|0;g[j+((i|6)<<3)>>3]=-(+g[y>>3]*+g[w>>3]);g[j+((i|7)<<3)>>3]=-(+g[x>>3]*+g[w>>3]);g[j+((i|8)<<3)>>3]=0.0;g[j+((i|9)<<3)>>3]=0.0;g[j+((i|10)<<3)>>3]=0.0;g[j+((i|11)<<3)>>3]=+g[y>>3];g[j+((i|12)<<3)>>3]=+g[x>>3];g[j+((i|13)<<3)>>3]=1.0;v=b+(h<<4)+8|0;g[j+((i|14)<<3)>>3]=-(+g[y>>3]*+g[v>>3]);g[j+((i|15)<<3)>>3]=-(+g[x>>3]*+g[v>>3]);i=c[k>>2]|0;j=h<<1;g[i+(j<<3)>>3]=+g[w>>3];g[i+((j|1)<<3)>>3]=+g[v>>3];h=h+1|0}b=Id(n)|0;if(!b){Ld(n)|0;Ld(k)|0;Ue(0,3,20733,l);h=-1;break}j=Gd(b,n)|0;if(!j){Ld(n)|0;Ld(k)|0;Ld(b)|0;Ue(0,3,20759,m);h=-1;break}i=Gd(b,k)|0;if(!i){Ld(n)|0;Ld(k)|0;Ld(b)|0;Ld(j)|0;Ue(0,3,20785,o);h=-1;break}if((Xd(j)|0)<0){Ld(n)|0;Ld(k)|0;Ld(b)|0;Ld(j)|0;Ld(i)|0;Ue(0,3,20811,p);h=-1;break}h=Gd(j,i)|0;if(!h){Ld(n)|0;Ld(k)|0;Ld(b)|0;Ld(j)|0;Ld(i)|0;Ue(0,3,20837,s);h=-1;break}else{p=c[h>>2]|0;H=+g[p+48>>3];w=r+16|0;E=+g[a+48>>3];A=+g[q>>3];K=(+g[p+24>>3]-H*E)/A;s=r+8|0;D=+g[a+16>>3];C=+g[a+8>>3];B=+g[a>>3];N=(+g[p>>3]-H*D-K*C)/B;I=+g[p+56>>3];v=r+40|0;L=(+g[p+32>>3]-E*I)/A;x=r+32|0;J=(+g[p+8>>3]-D*I-C*L)/B;y=r+24|0;A=(+g[p+40>>3]-E)/A;E=+g[p+16>>3];Ld(n)|0;Ld(k)|0;Ld(b)|0;Ld(j)|0;Ld(i)|0;Ld(h)|0;M=+u(+(H*H+(K*K+N*N)));z=+u(+(I*I+(L*L+J*J)));g[r>>3]=N/M;g[s>>3]=K/M;g[w>>3]=H/M;g[y>>3]=J/z;g[x>>3]=L/z;g[v>>3]=I/z;z=(M+z)*.5;Ne(r);M=+g[s>>3];I=+g[v>>3];L=+g[w>>3];J=+g[x>>3];H=M*I-L*J;K=+g[y>>3];N=+g[r>>3];G=L*K-I*N;O=J*N-M*K;F=+u(+(O*O+(H*H+G*G)));H=H/F;g[r+48>>3]=H;G=G/F;g[r+56>>3]=G;F=O/F;g[r+64>>3]=F;g[f>>3]=N;g[f+32>>3]=M;g[f+64>>3]=L;g[f+8>>3]=K;g[f+40>>3]=J;g[f+72>>3]=I;g[f+16>>3]=H;g[f+48>>3]=G;g[f+80>>3]=F;g[f+24>>3]=(E-D-C*A)/B/z;g[f+56>>3]=A/z;g[f+88>>3]=1.0/z;h=0;break}}else h=-1}else h=-1;while(0);zb=t;return h|0}function Ne(a){a=a|0;var b=0.0,c=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,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=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,L=0,M=0,N=0,O=0,P=0;l=+g[a>>3];L=a+8|0;o=+g[L>>3];M=a+16|0;p=+g[M>>3];N=a+24|0;B=+g[N>>3];O=a+32|0;C=+g[O>>3];K=a+40|0;f=+g[K>>3];b=o*f-p*C;c=p*B-l*f;d=l*C-o*B;e=+u(+(d*d+(b*b+c*c)));do if(!(e==0.0)){m=b/e;k=c/e;j=d/e;A=l*B+o*C+p*f;A=A<0.0?-A:A;A=(+u(+(A+1.0))+ +u(+(1.0-A)))*.5;d=l*k;b=o*m;c=d-b;if(c!=0.0){n=0;y=m;h=l;i=o;z=k;e=p}else{P=l*j-p*m!=0.0;i=P?p:o;h=P?l:p;z=P?j:k;y=P?m:j;d=h*z;c=i*y;n=P?1:2;b=c;c=d-c;e=P?o:l;j=P?k:m}if(!(c==0.0)?(t=(i*j-e*z)/c,v=A*z/c,x=b-d,w=(h*j-e*y)/x,x=A*y/x,r=t*t+w*w+1.0,s=t*v+w*x,q=s*s-r*(v*v+x*x+-1.0),!(q<0.0)):0){d=+u(+q);h=(d-s)/r;i=v+t*h;e=x+w*h;d=(-s-d)/r;c=v+t*d;b=x+w*d;switch(n&3){case 1:{t=b;s=d;q=c;r=e;p=h;o=i;l=y;m=j;b=z;break}case 2:{t=c;s=b;q=d;r=i;p=e;o=h;l=j;m=z;b=y;break}default:{t=d;s=b;q=c;r=h;p=e;o=i;l=y;m=z;b=j}}c=B*m;d=C*l;e=c-d;if(e!=0.0){n=0;h=l;i=B;j=C;k=m}else{P=B*b-f*l!=0.0;j=P?f:C;i=P?B:f;k=P?b:m;h=P?l:b;f=i*k;e=j*h;n=P?1:2;c=f;d=e;e=f-e;f=P?C:B;b=P?m:l}if(!(e==0.0)?(G=(j*b-f*k)/e,H=A*k/e,J=d-c,I=(i*b-f*h)/J,J=A*h/J,E=G*G+I*I+1.0,F=G*H+I*J,D=F*F-E*(H*H+J*J+-1.0),!(D<0.0)):0){j=+u(+D);h=(j-F)/E;d=H+G*h;i=J+I*h;j=(-F-j)/E;c=H+G*j;b=J+I*j;switch(n&3){case 1:{l=b;b=j;j=c;k=i;i=h;h=d;break}case 2:{l=c;k=d;break}default:{l=j;j=c;k=h;h=d}}f=o*h+p*i+r*k;f=f<0.0?-f:f;e=o*j+p*b+r*l;e=e<0.0?-e:e;d=q*h+s*i+t*k;d=d<0.0?-d:d;c=q*j+s*b+t*l;c=c<0.0?-c:c;if(f>3]=o;g[L>>3]=p;g[M>>3]=r;g[N>>3]=h;g[O>>3]=i;g[K>>3]=k;break}else{g[a>>3]=q;g[L>>3]=s;g[M>>3]=t;g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}else{g[a>>3]=q;g[L>>3]=s;g[M>>3]=t;if(d>3]=h;g[O>>3]=i;g[K>>3]=k;break}else{g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}}else if(e>3]=o;g[L>>3]=p;g[M>>3]=r;g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}else{g[a>>3]=q;g[L>>3]=s;g[M>>3]=t;g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}else{g[a>>3]=q;g[L>>3]=s;g[M>>3]=t;if(d>3]=h;g[O>>3]=i;g[K>>3]=k;break}else{g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}}}}}while(0);return}function Oe(a){a=a|0;GO(c[a>>2]|0);GO(a);return 0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+Qe(a,b,c,d,0))}function Qe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=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;C=zb;zb=zb+208|0;w=C+200|0;v=C+192|0;y=C+96|0;x=C;z=e+4|0;i=c[z>>2]|0;u=e+112|0;p=e+120|0;o=0;while(1){if((o|0)>=(i|0))break;q=c[e>>2]|0;r=q+(o*320|0)|0;if(!(c[q+(o*320|0)+4>>2]|0)){j=-1;k=0;while(1){if((k|0)>=(d|0))break;if((c[b+(k<<8)+8>>2]|0)==(c[r>>2]|0)?(l=+g[b+(k<<8)+40>>3],!(l<+g[u>>3])):0)if(!((j|0)!=-1?!(+g[b+(j<<8)+40>>3]>2]=j;if((j|0)>-1)c[b+(j<<8)+16>>2]=c[b+(j<<8)+20>>2]}else{n=q+(o*320|0)+312|0;m=0;j=-1;while(1){if((m|0)>=(d|0))break;k=c[b+(m<<8)+12>>2]|0;if((k|0)==0?(t=b+(m<<8)+248|0,s=c[t>>2]|0,t=c[t+4>>2]|0,!((s|0)==0&(t|0)==0)):0){k=n;if((s|0)==(c[k>>2]|0)?(t|0)==(c[k+4>>2]|0):0)B=20}else if((k|0)==(c[r>>2]|0))B=20;if((B|0)==20){B=0;h=+g[b+(m<<8)+48>>3];if(!(h<+g[p>>3]))if(!((j|0)!=-1?!(+g[b+(j<<8)+48>>3]>2]=j;if((j|0)>-1)c[b+(j<<8)+16>>2]=c[b+(j<<8)+24>>2]}o=o+1|0}p=0;n=0;j=0;o=0;while(1){if((o|0)>=(i|0))break;i=c[e>>2]|0;k=c[i+(o*320|0)+304>>2]|0;do if((k|0)<0){k=p;i=n}else{m=b+(k<<8)|0;if(+Uc(a,m,+g[i+(o*320|0)+8>>3],x)>4.0){c[(c[e>>2]|0)+(o*320|0)+304>>2]=-1;i=b+(k<<8)+236|0;if(c[i>>2]|0){k=p;i=n;break}c[i>>2]=7;k=p;i=n;break}k=c[m>>2]|0;a:do if((p|0)==0|(n|0)<(k|0)){i=0;while(1){if((i|0)==3){i=k;j=o;break a}j=0;while(1){if((j|0)==4)break;g[y+(i<<5)+(j<<3)>>3]=+g[x+(i<<5)+(j<<3)>>3];j=j+1|0}i=i+1|0}}else i=n;while(0);k=p+1|0}while(0);p=k;n=i;o=o+1|0;i=c[z>>2]|0}b:do if((p|0)!=0?(p|0)>=(c[e+128>>2]|0):0){ud(y,(c[e>>2]|0)+(j*320|0)+112|0,x)|0;o=p<<2;q=FO(p<<6)|0;if(!q){Ue(0,3,41858,v);Ea(1)}p=FO(p*96|0)|0;if(!p){Ue(0,3,41858,w);Ea(1)}n=c[z>>2]|0;m=0;i=0;while(1){if((m|0)>=(n|0))break;j=c[e>>2]|0;k=c[j+(m*320|0)+304>>2]|0;if((k|0)>=0){v=c[b+(k<<8)+16>>2]|0;u=(4-v|0)%4|0;w=i<<3;g[q+(w<<3)>>3]=+g[b+(k<<8)+168+(u<<4)>>3];g[q+((w|1)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)+8>>3];u=(5-v|0)%4|0;g[q+((w|2)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)>>3];g[q+((w|3)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)+8>>3];u=(6-v|0)%4|0;g[q+((w|4)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)>>3];g[q+((w|5)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)+8>>3];v=(7-v|0)%4|0;g[q+((w|6)<<3)>>3]=+g[b+(k<<8)+168+(v<<4)>>3];g[q+((w|7)<<3)>>3]=+g[b+(k<<8)+168+(v<<4)+8>>3];w=i*12|0;g[p+(w<<3)>>3]=+g[j+(m*320|0)+208>>3];g[p+((w|1)<<3)>>3]=+g[j+(m*320|0)+216>>3];g[p+((w|2)<<3)>>3]=+g[j+(m*320|0)+224>>3];g[p+((w|3)<<3)>>3]=+g[j+(m*320|0)+232>>3];g[p+(w+4<<3)>>3]=+g[j+(m*320|0)+240>>3];g[p+(w+5<<3)>>3]=+g[j+(m*320|0)+248>>3];g[p+(w+6<<3)>>3]=+g[j+(m*320|0)+256>>3];g[p+(w+7<<3)>>3]=+g[j+(m*320|0)+264>>3];g[p+(w+8<<3)>>3]=+g[j+(m*320|0)+272>>3];g[p+(w+9<<3)>>3]=+g[j+(m*320|0)+280>>3];g[p+(w+10<<3)>>3]=+g[j+(m*320|0)+288>>3];g[p+(w+11<<3)>>3]=+g[j+(m*320|0)+296>>3];i=i+1|0}m=m+1|0}m=e+104|0;j=(f|0)!=0;if(!(c[m>>2]|0)){i=e+8|0;h=+Wc(a,x,q,p,o,i);if(j&h>=20.0){Ge(c[a>>2]|0,.8)|0;h=+Xc(a,x,q,p,o,i);if(h>=20.0){Ge(c[a>>2]|0,.6)|0;h=+Xc(a,x,q,p,o,i);if(h>=20.0){Ge(c[a>>2]|0,.4)|0;h=+Xc(a,x,q,p,o,i);if(h>=20.0){Ge(c[a>>2]|0,0.0)|0;h=+Xc(a,x,q,p,o,i)}}}}GO(p);GO(q)}else{h=+Wc(a,x,q,p,o,y);k=e+8|0;l=+Wc(a,k,q,p,o,k);i=h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l;while(0);if(h>=20.0){Ge(c[a>>2]|0,.8)|0;h=+Xc(a,x,q,p,o,y);l=+Xc(a,k,q,p,o,k);e:do if(h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l;while(0);if(h>=20.0){Ge(c[a>>2]|0,.6)|0;h=+Xc(a,x,q,p,o,y);l=+Xc(a,k,q,p,o,k);f:do if(h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l;while(0);if(h>=20.0){Ge(c[a>>2]|0,.4)|0;h=+Xc(a,x,q,p,o,y);l=+Xc(a,k,q,p,o,k);g:do if(h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l;while(0);if(h>=20.0){Ge(c[a>>2]|0,0.0)|0;h=+Xc(a,x,q,p,o,y);l=+Xc(a,k,q,p,o,k);if(h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l}}}}}else if(i){i=0;while(1){if((i|0)==3)break c;j=0;while(1){if((j|0)==4)break;g[e+8+(i<<5)+(j<<3)>>3]=+g[y+(i<<5)+(j<<3)>>3];j=j+1|0}i=i+1|0}}else h=l;while(0);GO(p);GO(q)}if(h<20.0){c[m>>2]=1;break}c[m>>2]=0;j=c[z>>2]|0;i=0;while(1){if((i|0)>=(j|0))break b;k=c[(c[e>>2]|0)+(i*320|0)+304>>2]|0;if((k|0)>=0?(A=b+(k<<8)+236|0,(c[A>>2]|0)==0):0)c[A>>2]=8;i=i+1|0}}else B=45;while(0);if((B|0)==45){c[e+104>>2]=0;h=-1.0}zb=C;return +h}function Re(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+Qe(a,b,c,d,1))}function Se(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,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.0,V=0.0;T=zb;zb=zb+2528|0;S=T+2512|0;Q=T+2504|0;G=T+2488|0;P=T+2480|0;F=T+2472|0;E=T+2456|0;O=T+2448|0;D=T+2440|0;N=T+2432|0;M=T+2424|0;L=T+2416|0;C=T+2408|0;h=T+2400|0;f=T+2392|0;H=T+2384|0;e=T+2376|0;d=T+2368|0;z=T+2304|0;I=T+2048|0;J=T;A=T+2524|0;R=T+2520|0;B=T+2516|0;K=rz(a,21853)|0;do if(!K){c[d>>2]=a;Ue(0,3,20863,d);d=ox()|0;d=By(c[d>>2]|0)|0;c[e>>2]=57671;c[e+4>>2]=d;Ue(0,3,21881,e);d=0}else{Te(I,K);c[H>>2]=R;if((Cz(I,21887,H)|0)!=1){c[f>>2]=a;Ue(0,3,20916,f);xz(K)|0;d=0;break}d=c[R>>2]|0;y=FO(d*320|0)|0;if(!y){Ue(0,3,41858,h);Ea(1)}p=(b|0)==0;q=z+8|0;r=z+16|0;s=z+24|0;t=z+32|0;u=z+40|0;v=z+48|0;w=z+56|0;x=0;f=0;a:while(1){if((x|0)>=(d|0)){d=31;break}Te(I,K);d=y+(x*320|0)|0;e=y+(x*320|0)+312|0;c[C>>2]=e;c[C+4>>2]=A;if((Cz(I,21017,C)|0)!=1){if(p){d=11;break}if(!(Ad(J,a,2048,1)|0)){d=13;break}sA(J,I,2047-(Qy(J)|0)|0)|0;o=sd(b,J)|0;c[d>>2]=o;if((o|0)<0){d=15;break}else{d=1;e=0}}else{e=c[e>>2]|0;c[d>>2]=(e&-32768|0)==0&0==0?e&32767:0;d=2;e=1}c[y+(x*320|0)+4>>2]=e;f=f|d;Te(I,K);e=y+(x*320|0)+8|0;c[D>>2]=e;if((Cz(I,21313,D)|0)!=1){d=18;break}Te(I,K);m=y+(x*320|0)+16|0;n=y+(x*320|0)+24|0;o=y+(x*320|0)+40|0;c[E>>2]=m;c[E+4>>2]=n;c[E+8>>2]=y+(x*320|0)+32;c[E+12>>2]=o;if((Cz(I,21422,E)|0)==4)d=1;else{c[F>>2]=H;c[F+4>>2]=B;if((Cz(I,21438,F)|0)!=2){d=23;break}d=0}do{Te(I,K);c[G>>2]=y+(x*320|0)+16+(d<<5);c[G+4>>2]=y+(x*320|0)+16+(d<<5)+8;c[G+8>>2]=y+(x*320|0)+16+(d<<5)+16;c[G+12>>2]=y+(x*320|0)+16+(d<<5)+24;if((Cz(I,21422,G)|0)!=4){d=25;break a}d=d+1|0}while(d>>>0<3);xd(m,y+(x*320|0)+112|0)|0;V=+g[e>>3];U=V*-.5;g[z>>3]=U;V=V*.5;g[q>>3]=V;g[r>>3]=V;g[s>>3]=V;g[t>>3]=V;g[u>>3]=U;g[v>>3]=U;g[w>>3]=U;e=y+(x*320|0)+48|0;h=y+(x*320|0)+56|0;i=y+(x*320|0)+72|0;j=y+(x*320|0)+80|0;k=y+(x*320|0)+88|0;l=y+(x*320|0)+104|0;d=0;while(1){if((d|0)==4)break;U=+g[z+(d<<4)>>3];V=+g[z+(d<<4)+8>>3];g[y+(x*320|0)+208+(d*24|0)>>3]=+g[o>>3]+(+g[m>>3]*U+ +g[n>>3]*V);g[y+(x*320|0)+208+(d*24|0)+8>>3]=+g[i>>3]+(U*+g[e>>3]+V*+g[h>>3]);g[y+(x*320|0)+208+(d*24|0)+16>>3]=+g[l>>3]+(U*+g[j>>3]+V*+g[k>>3]);d=d+1|0}x=x+1|0;d=c[R>>2]|0}if((d|0)==11){c[L>>2]=a;c[L+4>>2]=I;Ue(0,3,21024,L)}else if((d|0)==13){c[M>>2]=a;Ue(0,3,21152,M)}else if((d|0)==15){c[N>>2]=a;c[N+4>>2]=J;Ue(0,3,21236,N)}else if((d|0)==18){c[O>>2]=a;c[O+4>>2]=x+1;Ue(0,3,21317,O)}else if((d|0)==23){c[P>>2]=a;c[P+4>>2]=x+1;Ue(0,3,21444,P)}else if((d|0)==25){c[Q>>2]=a;c[Q+4>>2]=x+1;Ue(0,3,21444,Q)}else if((d|0)==31){xz(K)|0;d=FO(136)|0;if(!d){Ue(0,3,41858,S);Ea(1)}c[d>>2]=y;c[d+4>>2]=c[R>>2];c[d+128>>2]=0;c[d+104>>2]=0;do if((f&3|0)!=3){e=d+108|0;if(!(f&1)){c[e>>2]=1;break}else{c[e>>2]=0;break}}else c[d+108>>2]=2;while(0);g[d+112>>3]=.5;g[d+120>>3]=.5;break}xz(K)|0;GO(y);d=0}while(0);zb=T;return d|0}function Te(b,c){b=b|0;c=c|0;var d=0,e=0;a:while(1){if(!(Az(b,256,c)|0))break;d=Qy(b)|0;b:while(1){if(!d)break;d=d+-1|0;e=b+d|0;switch(a[e>>0]|0){case 13:case 10:break;default:break b}a[e>>0]=0}switch(a[b>>0]|0){case 0:case 35:break;default:break a}}return}function Ue(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=zb;zb=zb+16|0;b=g;if((e|0)!=0&(c[3916]|0)<=(d|0)?a[e>>0]|0:0){c[b>>2]=f;Ve(0,d,e,b)}zb=g;return}function Ve(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;l=zb;zb=zb+32|0;j=l+16|0;b=l;if((!((e|0)==0|(c[3916]|0)>(d|0))?a[e>>0]|0:0)?(c[b>>2]=c[f>>2],k=Jx(0,0,e,b)|0,k|0):0){if(d>>>0<4)b=(Qy(c[1744+(d<<2)>>2]|0)|0)+3|0;else b=0;g=b+k|0;h=g+1|0;i=FO(h)|0;if(b|0){c[j>>2]=c[1744+(d<<2)>>2];bz(i,b+1|0,21553,j)|0}Jx(i+b|0,k+1|0,e,f)|0;do if(0){if(0?(m=c[13864]|0,m>>>0<0):0){b=0+m|0;if(g>>>0>(-4-m+0|0)>>>0){a[b>>0]=46;a[b+1>>0]=46;a[b+2>>0]=46;a[b+3>>0]=0;c[13864]=0;break}else{Wz(b,i,h)|0;c[13864]=(c[13864]|0)+g;break}}}else kz(i,c[4001]|0)|0;while(0);GO(i)}zb=l;return}function We(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;do if(b){e=rz(b,22236)|0;if(e){Kz(e,0,2)|0;f=hA(e)|0;Kz(e,0,0)|0;g=f+1|0;b=FO(g)|0;if(!b){xz(e)|0;b=ox()|0;c[b>>2]=48;b=0;break}if(!(gA(b,f,1,e)|0)){GO(b);xz(e)|0;b=0;break}a[b+f>>0]=0;xz(e)|0;if(d)c[d>>2]=g}else b=0}else{b=ox()|0;c[b>>2]=28;b=0}while(0);return b|0}function Xe(a,b){a=a|0;b=+b;if(!a)a=-1;else{f[a+40>>2]=b;a=0}return a|0}function Ye(a,b){a=a|0;b=+b;if(!a)a=-1;else{f[a+44>>2]=b;a=0}return a|0}function Ze(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+24>>2]=b;a=0}return a|0}function _e(a,b){a=a|0;b=b|0;b=(b|0)<40?b:40;if(!a)b=-1;else{c[a+36>>2]=(b|0)>3?b:3;b=0}return b|0}function $e(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+28>>2]=b;a=0}return a|0}function af(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+32>>2]=b;a=0}return a|0}function bf(b,e){b=b|0;e=+e;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,C=0;z=zb;zb=zb+16|0;w=b+4|0;x=b+12|0;A=+f[x>>2];y=iz(+(c[w>>2]|0)*e/A)|0;t=b+8|0;u=iz(+(c[t>>2]|0)*e/A)|0;v=FO(16)|0;if(!v){Ue(0,3,41858,z);Ea(1)}c[v+4>>2]=y;c[v+8>>2]=u;f[v+12>>2]=e;g=FO(B(u,y)|0)|0;c[v>>2]=g;if(!g){Ue(0,3,41858,z+8|0);Ea(1)}h=0;while(1){if((h|0)>=(u|0))break;A=+f[x>>2];s=iz(A*+(h|0)/e)|0;h=h+1|0;r=iz(A*+(h|0)/e)|0;i=c[t>>2]|0;r=(r|0)>(i|0)?i:r;i=0;while(1){if((i|0)>=(y|0))break;A=+f[x>>2];q=iz(A*+(i|0)/e)|0;i=i+1|0;p=iz(A*+(i|0)/e)|0;o=c[w>>2]|0;p=(p|0)>(o|0)?o:p;j=0;k=0;l=s;while(1){if((l|0)>=(r|0))break;m=q;n=(c[b>>2]|0)+((B(l,o)|0)+q)|0;while(1){if((m|0)>=(p|0))break;C=j+(d[n>>0]|0)|0;m=m+1|0;n=n+1|0;j=C;k=k+1|0}l=l+1|0}a[g>>0]=(j|0)/(k|0)|0;g=g+1|0}}zb=z;return v|0}function cf(a){a=a|0;var b=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=zb;zb=zb+96|0;m=q+72|0;l=q+64|0;k=q+56|0;j=q+48|0;i=q+40|0;h=q+32|0;g=q+24|0;e=q+16|0;b=q+8|0;n=q+80|0;d=FO((Qy(a)|0)+6|0)|0;if(!d){Ue(0,3,41858,q);Ea(1)}c[b>>2]=a;c[b+4>>2]=21589;Hx(d,21584,b)|0;p=rz(d,22236)|0;GO(d);a:do if(!p){c[e>>2]=a;c[e+4>>2]=21589;Ue(0,3,21595,e);b=0}else{b=FO(8)|0;if(!b){Ue(0,3,41858,g);Ea(1)}d=b+4|0;if((gA(d,4,1,p)|0)==1?(o=c[d>>2]|0,(o|0)>=1):0){c[i>>2]=o;Ue(0,1,21668,i);e=o<<2;g=FO(e)|0;c[b>>2]=g;if(!g){Ue(0,3,41858,j);Ea(1)}j=FO(16)|0;c[g>>2]=j;if(!j){Ue(0,3,41858,k);Ea(1)}d=ff(p)|0;if(!d){c[l>>2]=a;c[l+4>>2]=21589;Ue(0,2,21698,l);GO(c[g>>2]|0);GO(g);GO(b);iA(p);b=df(p)|0;break}if((c[d+4>>2]|0)!=1){c[m>>2]=a;c[m+4>>2]=21589;Ue(0,2,21698,m);GO(c[g>>2]|0);GO(g);GO(b);GO(d);xz(p)|0;b=0;break}m=c[g>>2]|0;c[m+4>>2]=c[d+8>>2];c[m+8>>2]=c[d+12>>2];c[m+12>>2]=c[d+16>>2];c[m>>2]=c[d>>2];GO(d);Kz(p,4-e|0,2)|0;e=1;while(1){if((e|0)>=(o|0)){d=29;break}if((gA(n,4,1,p)|0)!=1){d=21;break}m=bf(c[g>>2]|0,+f[n>>2])|0;c[g+(e<<2)>>2]=m;if(!m){d=25;break}e=e+1|0}b:do if((d|0)==21){d=0;while(1){if((d|0)==(e|0))break b;o=g+(d<<2)|0;GO(c[c[o>>2]>>2]|0);GO(c[o>>2]|0);d=d+1|0}}else if((d|0)==25){d=0;while(1){if((d|0)==(e|0))break b;o=g+(d<<2)|0;GO(c[c[o>>2]>>2]|0);GO(c[o>>2]|0);d=d+1|0}}else if((d|0)==29){xz(p)|0;break a}while(0);GO(g)}else Ue(0,3,21643,h);GO(b);xz(p)|0;b=0}while(0);zb=q;return b|0}function df(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;l=zb;zb=zb+48|0;h=l+32|0;g=l+24|0;f=l+16|0;e=l+8|0;b=FO(8)|0;if(!b){Ue(0,3,41858,l);Ea(1)}d=b+4|0;a:do if((gA(d,4,1,a)|0)==1?(k=c[d>>2]|0,(k|0)>=1):0){j=FO(k<<2)|0;c[b>>2]=j;if(!j){Ue(0,3,41858,f);Ea(1)}d=0;while(1){if((d|0)>=(k|0))break;f=FO(16)|0;c[j+(d<<2)>>2]=f;if(!f){i=12;break}else d=d+1|0}if((i|0)==12){Ue(0,3,41858,g);Ea(1)}e=0;while(1){if((e|0)>=(k|0)){i=44;break}d=j+(e<<2)|0;if((gA((c[d>>2]|0)+4|0,4,1,a)|0)!=1){i=15;break}if((gA((c[d>>2]|0)+8|0,4,1,a)|0)!=1){i=22;break}if((gA((c[d>>2]|0)+12|0,4,1,a)|0)!=1){i=29;break}i=c[d>>2]|0;i=FO(B(c[i+8>>2]|0,c[i+4>>2]|0)|0)|0;c[c[d>>2]>>2]=i;if(!i){i=36;break}g=c[d>>2]|0;g=gA(c[g>>2]|0,1,B(c[g+8>>2]|0,c[g+4>>2]|0)|0,a)|0;i=c[d>>2]|0;e=e+1|0;if((g|0)!=(B(c[i+8>>2]|0,c[i+4>>2]|0)|0)){i=38;break}}b:do if((i|0)==15){d=0;while(1){if((d|0)==(e|0))break;GO(c[c[j+(d<<2)>>2]>>2]|0);d=d+1|0}d=0;while(1){if((d|0)==(k|0))break b;GO(c[j+(d<<2)>>2]|0);d=d+1|0}}else if((i|0)==22){d=0;while(1){if((d|0)==(e|0))break;GO(c[c[j+(d<<2)>>2]>>2]|0);d=d+1|0}d=0;while(1){if((d|0)==(k|0))break b;GO(c[j+(d<<2)>>2]|0);d=d+1|0}}else if((i|0)==29){d=0;while(1){if((d|0)==(e|0))break;GO(c[c[j+(d<<2)>>2]>>2]|0);d=d+1|0}d=0;while(1){if((d|0)==(k|0))break b;GO(c[j+(d<<2)>>2]|0);d=d+1|0}}else if((i|0)==36){Ue(0,3,41858,h);Ea(1)}else if((i|0)==38){d=0;while(1){if((d|0)==(e|0))break;GO(c[c[j+(d<<2)>>2]>>2]|0);d=d+1|0}d=0;while(1){if((d|0)==(k|0))break b;GO(c[j+(d<<2)>>2]|0);d=d+1|0}}else if((i|0)==44){xz(a)|0;break a}while(0);GO(j);i=46}else i=5;while(0);if((i|0)==5){Ue(0,3,21643,e);i=46}if((i|0)==46){GO(b);xz(a)|0;b=0}zb=l;return b|0}function ef(a){a=a|0;var b=0,d=0,e=0;if((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0){e=0;while(1){d=c[b>>2]|0;if((e|0)>=(c[b+4>>2]|0))break;GO(c[c[d+(e<<2)>>2]>>2]|0);GO(c[(c[c[a>>2]>>2]|0)+(e<<2)>>2]|0);e=e+1|0;b=c[a>>2]|0}GO(d);GO(c[a>>2]|0);c[a>>2]=0;b=0}else b=-1;return b|0}function ff(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=FO(20)|0;if(!b){Ue(0,3,41858,d);Ea(1)}a=gf(a,b+8|0,b+12|0,b+4|0,b+16|0)|0;c[b>>2]=a;if(!a){GO(b);b=0}zb=d;return b|0}function gf(d,e,g,h,k){d=d|0;e=e|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,C=0,D=0,N=0;N=zb;zb=zb+832|0;z=N+528|0;y=N+520|0;x=N+512|0;A=4;D=FO(40)|0;c[D>>2]=0;C=N+24|0;n=N+536|0;w=N;aP(C|0,0,488)|0;i=0;o=G(63,n|0)|0;l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)!=1){c[C>>2]=o;c[n>>2]=112;D=XO(n+132|0,1,D|0,A|0)|0;A=F()|0;i=0;l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1)m=l;else m=0}else m=l;a:while(1){if(m|0){i=0;J(113,C|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;M(8,0,3,21756,x|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}else{m=7;break}}i=0;L(1,C|0,90,488);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;K(39,C|0,d|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;m=H(19,C|0,1)|0;l=i;i=0;if((l|0)!=0&(j|0)!=0){n=YO(c[l>>2]|0,D|0,A|0)|0;if(!n)Qa(l|0,j|0);E(j|0)}else n=-1;l=F()|0;if((n|0)==1){m=l;continue}if((m|0)!=1){i=0;M(8,0,3,21782,y|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;J(113,C|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}else{m=14;break}}i=0;G(64,C|0)|0;l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}t=C+36|0;u=C+28|0;s=B(c[u>>2]|0,c[t>>2]|0)|0;v=C+32|0;l=B(s,c[v>>2]|0)|0;i=0;l=G(65,l|0)|0;m=i;i=0;if((m|0)!=0&(j|0)!=0){n=YO(c[m>>2]|0,D|0,A|0)|0;if(!n)Qa(m|0,j|0);E(j|0)}else n=-1;m=F()|0;if((n|0)==1)continue;if(!l){i=0;M(8,0,3,41858,z|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;J(113,C|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}else{m=20;break}}q=C+140|0;r=C+116|0;p=0;while(1){if((c[q>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;m=0;while(1){if((m|0)==5)break;o=l+(B(m+p|0,s)|0)|0;c[w+(m<<2)>>2]=o;m=m+1|0}i=0;n=I(25,C|0,w|0,5)|0;m=i;i=0;if((m|0)!=0&(j|0)!=0){o=YO(c[m>>2]|0,D|0,A|0)|0;if(!o)Qa(m|0,j|0);E(j|0)}else o=-1;m=F()|0;if((o|0)==1)continue a;p=n+p|0}i=0;G(66,C|0)|0;m=i;i=0;if((m|0)!=0&(j|0)!=0){n=YO(c[m>>2]|0,D|0,A|0)|0;if(!n)Qa(m|0,j|0);E(j|0)}else n=-1;m=F()|0;if((n|0)==1)continue;i=0;J(113,C|0);m=i;i=0;if((m|0)!=0&(j|0)!=0){n=YO(c[m>>2]|0,D|0,A|0)|0;if(!n)Qa(m|0,j|0);E(j|0)}else n=-1;m=F()|0;if((n|0)!=1){m=30;break}}b:do if((m|0)==7)l=0;else if((m|0)==14)l=0;else if((m|0)==20)l=0;else if((m|0)==30){if(e|0)c[e>>2]=c[u>>2];if(g|0)c[g>>2]=c[v>>2];if(h|0)c[h>>2]=c[t>>2];if(k){m=a[C+290>>0]|0;switch(m<<24>>24){case 1:{m=b[C+292>>1]|0;if(m<<16>>16==(b[C+294>>1]|0)){f[k>>2]=+(m&65535);break b}break}case 2:{m=b[C+292>>1]|0;if(m<<16>>16==(b[C+294>>1]|0)){f[k>>2]=+(m&65535)*2.5399999618530273;break b}break}default:if(((m&255)>2?(b[C+292>>1]|0)==0:0)?(b[C+294>>1]|0)==0:0){f[k>>2]=+(m&255);break b}}f[k>>2]=0.0}}while(0);GO(D|0);zb=N;return l|0}function hf(a){a=a|0;Qa((c[a>>2]|0)+132|0,1)}function jf(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;o=zb;zb=zb+1088|0;m=o+1072|0;l=o+1064|0;n=o+1056|0;g=o+1048|0;f=o+1040|0;e=o+1032|0;h=o+1024|0;i=o+768|0;j=o+512|0;k=o;c[h>>2]=a;c[h+4>>2]=b;Hx(k,22627,h)|0;k=rz(k,21853)|0;if(!k)a=0;else{a=FO(8)|0;if(!a){Ue(0,3,41858,e);Ea(1)}a:do if(kf(i,k)|0){h=a+4|0;c[f>>2]=h;if((Cz(i,21887,f)|0)!=1){GO(a);a=0;break}b=c[h>>2]|0;if((b|0)<1){GO(a);a=0;break}f=FO(b*56|0)|0;c[a>>2]=f;if(!f){Ue(0,3,41858,g);Ea(1)}f=0;b:while(1){if((f|0)>=(b|0))break a;if(!(kf(i,k)|0)){b=15;break}c[n>>2]=j;if((Cz(i,21914,n)|0)!=1){b=17;break}g=sd(d,j)|0;e=c[a>>2]|0;c[e+(f*56|0)+4>>2]=g;if((g|0)<0){b=19;break}if(!(kf(i,k)|0)){b=21;break}c[l>>2]=(c[a>>2]|0)+(f*56|0);if((Cz(i,21815,l)|0)!=1){b=24;break}b=0;while(1){if(b>>>0>=3)break;if(!(kf(i,k)|0)){b=27;break b}g=c[a>>2]|0;c[m>>2]=g+(f*56|0)+8+(b<<4);c[m+4>>2]=g+(f*56|0)+8+(b<<4)+4;c[m+8>>2]=g+(f*56|0)+8+(b<<4)+8;c[m+12>>2]=g+(f*56|0)+8+(b<<4)+12;if((Cz(i,22080,m)|0)==4)b=b+1|0;else{b=29;break b}}f=f+1|0;b=c[h>>2]|0}if((b|0)==15){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==17){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==19){GO(e);GO(a);a=0;break}else if((b|0)==21){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==24){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==27){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==29){GO(c[a>>2]|0);GO(a);a=0;break}}else{GO(a);a=0}while(0);xz(k)|0}zb=o;return a|0}function kf(b,c){b=b|0;c=c|0;var d=0;a:while(1){d=Az(b,256,c)|0;if(!d){d=0;break}switch(a[b>>0]|0){case 35:case 10:break;default:break a}}return d|0}function lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=zb;zb=zb+640|0;s=v+624|0;r=v+616|0;q=v+608|0;p=v+600|0;o=v+592|0;n=v+584|0;m=v+576|0;l=v+568|0;k=v+560|0;j=v+552|0;g=v+544|0;f=v+536|0;e=v+528|0;d=v+520|0;i=v+512|0;t=v;c[i>>2]=a;c[i+4>>2]=b;Hx(t,22627,i)|0;t=rz(t,22236)|0;if(!t){c[d>>2]=a;Ue(0,3,21818,d);b=0}else{b=FO(8)|0;if(!b){Ue(0,3,41858,e);Ea(1)}a=b+4|0;a:do if((gA(a,4,1,t)|0)==1){h=c[a>>2]|0;i=FO(h*20|0)|0;c[b>>2]=i;if(!i){Ue(0,3,41858,g);Ea(1)}g=0;b:while(1){if((g|0)>=(h|0))break a;if((gA(i+(g*20|0)+8|0,4,1,t)|0)!=1){u=12;break}if((gA(i+(g*20|0)+12|0,4,1,t)|0)!=1){u=15;break}if((gA(i+(g*20|0)+16|0,4,1,t)|0)!=1){u=17;break}e=i+(g*20|0)+4|0;if((gA(e,4,1,t)|0)!=1){u=19;break}a=c[e>>2]|0;d=FO(a*20|0)|0;f=i+(g*20|0)|0;c[f>>2]=d;if(!d){u=22;break}d=0;while(1){if((d|0)>=(a|0))break;if((gA((c[f>>2]|0)+(d*20|0)|0,4,1,t)|0)!=1){u=25;break b}if((gA((c[f>>2]|0)+(d*20|0)+4|0,4,1,t)|0)!=1){u=27;break b}if((gA((c[f>>2]|0)+(d*20|0)+8|0,4,1,t)|0)!=1){u=29;break b}if((gA((c[f>>2]|0)+(d*20|0)+12|0,4,1,t)|0)!=1){u=31;break b}if((gA((c[f>>2]|0)+(d*20|0)+16|0,4,1,t)|0)!=1){u=34;break b}d=d+1|0;a=c[e>>2]|0}g=g+1|0}switch(u|0){case 12:{Ue(0,3,21839,j);break}case 15:{Ue(0,3,21839,k);break}case 17:{Ue(0,3,21839,l);break}case 19:{Ue(0,3,21839,m);break}case 22:{Ue(0,3,41858,n);Ea(1);break}case 25:{Ue(0,3,21839,o);break}case 27:{Ue(0,3,21839,p);break}case 29:{Ue(0,3,21839,q);break}case 31:{Ue(0,3,21839,r);break}case 34:{Ue(0,3,21839,s);break}}a=0;while(1){if((a|0)==(g|0))break;GO(c[i+(a*20|0)>>2]|0);a=a+1|0}GO(i);u=39}else{Ue(0,3,21839,f);u=39}while(0);if((u|0)==39){GO(b);b=0}xz(t)|0}zb=v;return b|0}function mf(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(!b)b=-1;else{e=0;while(1){d=c[b>>2]|0;if((e|0)>=(c[b+4>>2]|0))break;GO(c[d+(e*20|0)>>2]|0);e=e+1|0;b=c[a>>2]|0}GO(d);GO(c[a>>2]|0);c[a>>2]=0;b=0}return b|0}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(!a)of(0,b,c,d)|0;else of(a,b,c,d)|0;return 0}function of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;m=zb;zb=zb+48|0;e=m;if(!a){t=+f[c>>2];w=+f[c+4>>2];s=+f[b>>2];o=t*s;v=+f[b+4>>2];n=w*v;p=+f[b+12>>2];i=+f[b+16>>2];q=t*i;g=+f[b+20>>2];k=w*g;r=+f[b+28>>2];z=+f[b+32>>2];x=t*z;h=+f[b+36>>2];j=w*h;y=+f[b+44>>2];l=y+(x+j);t=t+10.0;j=y+(t*z+j);w=w+10.0;h=y+(x+w*h);g=(r+(q+w*g))/h;h=(p+(o+w*v))/h;i=(r+(t*i+k))/j;j=(p+(t*s+n))/j;k=(r+(q+k))/l;l=(p+(o+n))/l}else{vd(a+8|0,b,e)|0;s=+f[c>>2];q=+f[c+4>>2];t=+f[e>>2];y=s*t;r=+f[e+4>>2];z=q*r;x=+f[e+12>>2];i=+f[e+16>>2];w=s*i;g=+f[e+20>>2];k=q*g;v=+f[e+28>>2];n=+f[e+32>>2];p=s*n;h=+f[e+36>>2];j=q*h;o=+f[e+44>>2];l=o+(p+j);s=s+10.0;j=o+(s*n+j);q=q+10.0;h=o+(p+q*h);g=(v+(w+q*g))/h;h=(x+(y+q*r))/h;i=(v+(s*i+k))/j;j=(x+(s*t+z))/j;k=(v+(w+k))/l;l=(x+(y+z))/l}x=j-l;y=i-k;y=x*x+y*y;x=h-l;z=g-k;z=x*x+z*z;e=y>2]=x;z=+u(+(e?y:z))*2.5399999618530273;f[d+4>>2]=z;zb=m;return 0}function pf(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=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.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0;G=zb;zb=zb+32|0;l=G+20|0;j=G+16|0;i=G+12|0;k=G+8|0;C=G+4|0;D=G;a:do if((d|0)<0)d=-1;else switch(d|0){case 0:{q=+((g|0)/8|0|0);r=+((g*7|0)/8|0|0);s=+((h|0)/8|0|0);t=+((h*7|0)/8|0|0);p=+((g|0)/2|0|0);o=+((h|0)/2|0|0);m=0.0;i=0;d=-1;b:while(1){switch(c[a+(i*24|0)+12>>2]|0){case -1:break b;case 0:{n=+f[a+(i*24|0)+16>>2];if((!(nr)?(u=+f[a+(i*24|0)+20>>2],!(ut)):0)?(B=n-p,v=u-o,v=B*B+v*v,v>m):0){m=v;d=i}break}default:{}}i=i+1|0}if((d|0)==-1){d=-1;break a}c[a+(d*24|0)+12>>2]=1;break a}case 1:{r=+((g|0)/8|0|0);p=+((g*7|0)/8|0|0);q=+((h|0)/8|0|0);o=+((h*7|0)/8|0|0);g=e+4|0;d=-1;i=0;m=0.0;c:while(1){switch(c[a+(i*24|0)+12>>2]|0){case -1:break c;case 0:{n=+f[a+(i*24|0)+16>>2];if((!(np)?(s=+f[a+(i*24|0)+20>>2],!(so)):0)?(B=n-+f[e>>2],t=s-+f[g>>2],t=B*B+t*t,t>m):0){d=i;m=t}break}default:{}}i=i+1|0}if((d|0)==-1){d=-1;break a}c[a+(d*24|0)+12>>2]=1;break a}case 2:{r=+((g|0)/8|0|0);p=+((g*7|0)/8|0|0);q=+((h|0)/8|0|0);o=+((h*7|0)/8|0|0);g=e+12|0;j=e+4|0;k=e+8|0;d=-1;i=0;m=0.0;d:while(1){switch(c[a+(i*24|0)+12>>2]|0){case -1:break d;case 0:{n=+f[a+(i*24|0)+16>>2];if((!(np)?(x=+f[a+(i*24|0)+20>>2],!(xo)):0)?(w=+f[e>>2],B=+f[j>>2],w=(n-w)*(+f[g>>2]-B)-(x-B)*(+f[k>>2]-w),w=w*w,w>m):0){d=i;m=w}break}default:{}}i=i+1|0}if((d|0)==-1){d=-1;break a}c[a+(d*24|0)+12>>2]=1;break a}case 3:{qf(e,e+8|0,l,j);qf(e,e+16|0,i,k);B=+((g|0)/8|0|0);w=+((g*7|0)/8|0|0);x=+((h|0)/8|0|0);v=+((h*7|0)/8|0|0);z=e+24|0;A=e+28|0;u=+f[i>>2];t=+f[j>>2];m=u*t;s=+f[k>>2];r=+f[l>>2];q=s*r;h=!(m-q>=0.0);y=!(q-m>=0.0);l=h?2:1;b=h?1:2;d=-1;k=0;m=0.0;e:while(1){f:do switch(c[a+(k*24|0)+12>>2]|0){case -1:break e;case 0:{n=+f[a+(k*24|0)+16>>2];if(!(nw)?(E=a+(k*24|0)+20|0,q=+f[E>>2],!(qv)):0){f[z>>2]=n;c[A>>2]=c[E>>2];qf(e,z,C,D);q=+f[C>>2];if(!h){n=+f[D>>2];if(!(t*q-r*n>=0.0))F=39;else{g=!(s*q-u*n>=0.0);i=g?2:3;g=g?3:2;j=1}}else{n=+f[D>>2];F=39}do if((F|0)==39){F=0;o=s*q;p=u*n;if(y|!(o-p>=0.0))if(p-o>=0.0?!(r*n-t*q>=0.0):1)break f;else{i=b;g=l;j=3;break}else{g=!(t*q-r*n>=0.0);i=g?1:3;g=g?3:1;j=2;break}}while(0);n=+rf(e,j,g,i);if(n>m){d=k;m=n}}break}default:{}}while(0);k=k+1|0}if((d|0)!=-1)c[a+(d*24|0)+12>>2]=1;break a}default:{l=0;g:while(1){d=b+(l*24|0)+12|0;h:do switch(c[d>>2]|0){case -1:break g;case 0:{c[d>>2]=1;i=b+(l*24|0)|0;g=b+(l*24|0)+4|0;j=b+(l*24|0)+8|0;d=0;while(1){k=a+(d*24|0)+12|0;switch(c[k>>2]|0){case -1:break h;case 0:{if(((c[i>>2]|0)==(c[a+(d*24|0)>>2]|0)?(c[g>>2]|0)==(c[a+(d*24|0)+4>>2]|0):0)?(c[j>>2]|0)==(c[a+(d*24|0)+8>>2]|0):0){F=55;break g}break}default:{}}d=d+1|0}}default:{}}while(0);l=l+1|0}if((F|0)==55){c[k>>2]=1;break a}c[b+12>>2]=-1;d=c[13865]|0;if(!d){_z(Ta(0)|0);d=c[13865]|0}d=d+1|0;c[13865]=(d|0)==128?0:d;d=0;i=0;i:while(1){switch(c[a+(i*24|0)+12>>2]|0){case -1:break i;case 0:{d=d+1|0;break}default:{}}i=i+1|0}if(!d){d=-1;break a}k=~~(+(d|0)*+($z()|0)*4.656612873077393e-10);d=0;i=0;j:while(1){g=a+(d*24|0)+12|0;j=c[g>>2]|0;switch(j|0){case -1:{d=j;break a}case 0:{if((i|0)==(k|0))break j;i=i+1|0;break}default:{}}d=d+1|0}c[g>>2]=1;break a}}while(0);zb=G;return d|0}function qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0.0;g=+f[b>>2]-+f[a>>2];e=+f[b+4>>2]-+f[a+4>>2];g=+u(+(g*g+e*e));if(!(g==0.0)){f[c>>2]=e/g;f[d>>2]=(+f[b>>2]-+f[a>>2])/g}return}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0;c=a+(c<<3)|0;e=+sf(a,a+(b<<3)|0,c);return +(e+ +sf(a,c,a+(d<<3)|0))}function sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;d=+f[a>>2];e=+f[a+4>>2];d=((+f[b>>2]-d)*(+f[c+4>>2]-e)-(+f[b+4>>2]-e)*(+f[c>>2]-d))*.5;return +(d<0.0?-d:d)}function tf(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=zb;zb=zb+1248|0;L=M+1232|0;K=M+1224|0;J=M+1208|0;I=M+1200|0;H=M+1184|0;G=M+1176|0;F=M+1160|0;E=M+1152|0;D=M+1144|0;C=M+1136|0;B=M+1128|0;A=M+1120|0;z=M+1112|0;y=M+1104|0;x=M+1096|0;w=M+1088|0;v=M+1080|0;u=M+1072|0;p=M+1064|0;l=M+1056|0;k=M+1048|0;j=M+1040|0;i=M+1032|0;h=M+1024|0;r=M+768|0;s=M+512|0;t=M+1236|0;g=M;do if(((d|0)!=0?(a[d>>0]|0)!=0:0)?(Fx(d,41063)|0)!=0:0){c[h>>2]=b;c[h+4>>2]=d;Hx(g,22627,h)|0;d=rz(g,21853)|0;if(!d){c[i>>2]=b;Ue(0,3,21855,i);q=ox()|0;q=By(c[q>>2]|0)|0;c[j>>2]=57671;c[j+4>>2]=q;Ue(0,3,21881,j);q=0;break}else{n=d;d=1;m=8;break}}else m=4;while(0);if((m|0)==4){Wz(s,b,255)|0;a[s+255>>0]=0;n=0;d=0;m=8}do if((m|0)==8){o=FO(1140)|0;if(!o){Ue(0,3,41858,k);Ea(1)}k=(d|0)!=0;if(k){if(!(uf(r,n)|0)){xz(n)|0;GO(o);q=0;break}c[l>>2]=t;if((Cz(r,21887,l)|0)!=1){xz(n)|0;GO(o);q=0;break}d=c[t>>2]|0;if((d|0)<1){xz(n)|0;GO(o);q=0;break}}else d=1;c[o+4>>2]=d;c[o+152>>2]=0;j=FO(d*112|0)|0;c[o>>2]=j;if(!j){Ue(0,3,41858,p);Ea(1)}i=(e|0)==0;g=0;a:while(1){c[t>>2]=g;if((g|0)>=(d|0)){m=57;break}c[u>>2]=g+1;Ue(0,1,21890,u);if(k){if(!(uf(r,n)|0)){m=57;break}c[v>>2]=s;if((Cz(r,21914,v)|0)!=1){m=57;break}If(s)|0}Ue(0,1,21917,w);p=cf(s)|0;c[j+((c[t>>2]|0)*112|0)>>2]=p;if(!p){m=26;break}Ue(0,1,21966,y);Ue(0,1,21976,z);p=lf(s,41063)|0;c[j+((c[t>>2]|0)*112|0)+4>>2]=p;if(!p){m=29;break}Ue(0,1,21966,B);if(i)c[j+((c[t>>2]|0)*112|0)+8>>2]=0;else{Ue(0,1,22027,C);If(s)|0;p=jf(s,22046,e)|0;c[j+((c[t>>2]|0)*112|0)+8>>2]=p;if(!p){m=33;break}Ue(0,1,21966,E)}b:do if(k){if(!(uf(r,n)|0)){m=57;break a}p=c[t>>2]|0;c[F>>2]=j+(p*112|0)+12;c[F+4>>2]=j+(p*112|0)+16;c[F+8>>2]=j+(p*112|0)+20;c[F+12>>2]=j+(p*112|0)+24;if((Cz(r,22080,F)|0)!=4){m=40;break a}if(!(uf(r,n)|0)){m=57;break a}p=c[t>>2]|0;c[H>>2]=j+(p*112|0)+28;c[H+4>>2]=j+(p*112|0)+32;c[H+8>>2]=j+(p*112|0)+36;c[H+12>>2]=j+(p*112|0)+40;if((Cz(r,22080,H)|0)!=4){m=43;break a}if(!(uf(r,n)|0)){m=57;break a}p=c[t>>2]|0;c[J>>2]=j+(p*112|0)+44;c[J+4>>2]=j+(p*112|0)+48;c[J+8>>2]=j+(p*112|0)+52;c[J+12>>2]=j+(p*112|0)+56;if((Cz(r,22080,J)|0)!=4){m=47;break a}g=c[t>>2]|0}else{g=c[t>>2]|0;b=0;while(1){if((b|0)==3)break b;h=0;while(1){if((h|0)==4)break;f[j+(g*112|0)+12+(b<<4)+(h<<2)>>2]=(b|0)==(h|0)?1.0:0.0;h=h+1|0}b=b+1|0}}while(0);yd(j+(g*112|0)+12|0,j+(g*112|0)+60|0)|0;Hf(s,256,22128)|0;g=FO(256)|0;c[j+((c[t>>2]|0)*112|0)+108>>2]=g;if(!g){m=55;break}Wz(g,s,256)|0;g=(c[t>>2]|0)+1|0}if((m|0)==26){c[x>>2]=s;Ue(0,3,21935,x);GO(j);GO(o);if(!n){q=0;break}xz(n)|0;q=0;break}else if((m|0)==29){c[A>>2]=s;Ue(0,3,21996,A);ef(j+((c[t>>2]|0)*112|0)|0)|0;GO(j);GO(o);if(!n){q=0;break}xz(n)|0;q=0;break}else if((m|0)==33){c[D>>2]=s;Ue(0,3,22050,D);mf(j+((c[t>>2]|0)*112|0)+4|0)|0;ef(j+((c[t>>2]|0)*112|0)|0)|0;GO(j);GO(o);if(!n){q=0;break}xz(n)|0;q=0;break}else if((m|0)==40){Ue(0,3,22092,G);xz(n)|0;Ea(0)}else if((m|0)==43){Ue(0,3,22092,I);xz(n)|0;Ea(0)}else if((m|0)==47){Ue(0,3,22092,K);xz(n)|0;Ea(0)}else if((m|0)==55){Ue(0,3,41858,L);Ea(1)}else if((m|0)==57){if(n|0)xz(n)|0;if((c[t>>2]|0)>=(d|0)){q=o;break}Ea(0)}}while(0);zb=M;return q|0}function uf(b,c){b=b|0;c=c|0;var d=0;a:while(1){d=Az(b,256,c)|0;if(!d){d=0;break}switch(a[b>>0]|0){case 35:case 10:break;default:break a}}return d|0}function vf(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a)d=-1;else{c[a+152>>2]=1;d=0;while(1){if((d|0)==3)break;e=0;while(1){if((e|0)==4)break;c[a+8+(d<<4)+(e<<2)>>2]=c[b+(d<<4)+(e<<2)>>2];e=e+1|0}d=d+1|0}c[a+168>>2]=-1;d=0}return d|0}function wf(b,e,g,h,i,j,k,l,m,n,o,p){b=b|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=zb;zb=zb+80|0;F=X+8|0;E=X;M=X+72|0;P=X+60|0;R=X+48|0;D=X+36|0;S=X+32|0;T=X+24|0;U=X+16|0;V=j+16|0;A=c[V>>2]|0;W=j+20|0;x=c[W>>2]|0;y=g+-1|0;z=h+-1|0;w=0;while(1){if(w>>>0>=3)break;q=c[m+(w<<3)>>2]|0;if((q|0)<0)break;u=q&-4|2;q=((c[m+(w<<3)+4>>2]|0)/4|0)<<2|2;v=u-k|0;v=(v|0)>0?v:0;u=u+k|0;u=(u|0)<(g|0)?u:y;t=q-l|0;q=q+l|0;q=(q|0)<(h|0)?q:z;t=(t|0)>0?t:0;while(1){if((t|0)>(q|0))break;r=v;s=e+((B(t,g)|0)+v)|0;while(1){if((r|0)>(u|0))break;a[s>>0]=0;r=r+1|0;s=s+1|0}t=t+1|0}w=w+1|0}c[M>>2]=0;C=x<<1;z=A<<1;K=j+12|0;L=j+8|0;r=1;y=0;while(1){if(y>>>0>=3){J=28;break}q=c[m+(y<<3)>>2]|0;if((q|0)<0){J=14;break}x=q&-4|2;u=((c[m+(y<<3)+4>>2]|0)/4|0)<<2|2;v=u+l|0;w=x-k|0;x=x+k|0;q=r;u=u-l|0;a:while(1){if((u|0)>(v|0))break;b:do if((u|0)>=(z|0)){if((u+C|0)>=(h|0))break a;t=B(u,g)|0;s=w;while(1){if((s|0)>(x|0))break b;if((s|0)>=(c[L>>2]<<1|0)){if(((c[K>>2]<<1)+s|0)>=(g|0))break b;r=e+(s+t)|0;if(!(a[r>>0]|0)){a[r>>0]=1;xf(b,g,i,j,s,u,S);yf(s,u,c[S>>2]|0,M,P,R,D);q=0}}s=s+4|0}}while(0);u=u+4|0}r=q;y=y+1|0}if((J|0)==14)if(!r)J=28;else q=-1;if((J|0)==28){I=j+4|0;q=B((c[j>>2]<<3)+32|0,(c[I>>2]<<1)+8|0)|0;H=FO(q)|0;if(!H){Ue(0,3,41858,E);Ea(1)}G=FO(q)|0;if(!G){Ue(0,3,41858,F);Ea(1)}F=j+36|0;r=0;E=0;q=-1;while(1){if((E|0)>=(c[M>>2]|0))break;u=c[j>>2]|0;s=c[I>>2]|0;c:do if((c[F>>2]|0)==(B(s,u)|0)){switch(i|0){case 5:case 12:case 13:case 14:break;default:{J=40;break c}}l=R+(E<<2)|0;k=c[l>>2]|0;m=k+-3-(c[V>>2]<<1)|0;if((((m|0)>=0?(k+3+(c[W>>2]<<1)|0)<(h|0):0)?(N=P+(E<<2)|0,O=c[N>>2]|0,Q=O+-3-(c[L>>2]<<1)|0,(Q|0)>=0):0)?(O+3+(c[K>>2]<<1)|0)<(g|0):0){k=(s<<1)+6|0;t=(u<<2)+16|0;v=G;w=H;s=0;while(1){if((s|0)>=(t|0))break;c[w>>2]=0;c[v>>2]=0;v=v+4|0;w=w+4|0;s=s+1|0}D=(u<<1)+6|0;e=b+(Q+(B(m,g)|0))|0;z=G;A=H;s=w;C=0;while(1){if((C|0)>=(k|0))break;y=s+8|0;u=v;t=0;while(1){if((t|0)==2)break;c[s>>2]=0;c[u>>2]=0;c[T+(t<<2)>>2]=0;c[U+(t<<2)>>2]=0;u=u+4|0;s=s+4|0;t=t+1|0}x=e;u=z+8|0;w=A+8|0;v=v+8|0;s=y;t=0;while(1){if((t|0)>=(D|0))break;y=t&1;A=T+(y<<2)|0;z=(c[A>>2]|0)+(d[x>>0]|0)|0;c[A>>2]=z;A=d[x>>0]|0;A=B(A,A)|0;y=U+(y<<2)|0;A=A+(c[y>>2]|0)|0;c[y>>2]=A;c[s>>2]=(c[w>>2]|0)+z;c[v>>2]=(c[u>>2]|0)+A;x=x+1|0;u=u+4|0;w=w+4|0;v=v+4|0;s=s+4|0;t=t+1|0}e=e+g|0;z=u;A=w;C=C+1|0}u=0;while(1){if((u|0)==7)break c;v=u+m|0;w=u+2|0;x=u+-3|0;t=0;while(1){if((t|0)==7)break;zf(b,g,t+Q|0,v,j,H,G,t+2|0,w,S);s=c[S>>2]|0;if((s|0)>(r|0)){c[n>>2]=t+-3+(c[N>>2]|0);c[o>>2]=x+(c[l>>2]|0);f[p>>2]=+(s|0)/1.0e4;q=0;r=s}t=t+1|0}u=u+1|0}}else J=40}else J=40;while(0);d:do if((J|0)==40){J=0;v=c[R+(E<<2)>>2]|0;w=v+3|0;x=P+(E<<2)|0;v=v+-3|0;while(1){if((v|0)>(w|0))break d;e:do if((v|0)>=(c[V>>2]<<1|0)){if(((c[W>>2]<<1)+v|0)>=(h|0))break d;t=c[x>>2]|0;u=t+3|0;t=t+-3|0;while(1){if((t|0)>(u|0))break e;if((t|0)>=(c[L>>2]<<1|0)){if(((c[K>>2]<<1)+t|0)>=(g|0))break e;xf(b,g,i,j,t,v,S);s=c[S>>2]|0;if((s|0)>(r|0)){c[n>>2]=t;c[o>>2]=v;f[p>>2]=+(s|0)/1.0e4;r=s;q=0}}t=t+1|0}}while(0);v=v+1|0}}while(0);E=E+1|0}GO(H);GO(G)}zb=X;return q|0}function xf(a,e,f,g,h,i,j){a=a|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,p=0,q=0,r=0,s=0,t=0,v=0,w=0;l=c[g+24>>2]|0;a:do switch(f|0){case 5:case 12:case 13:case 14:{s=0-(c[g+8>>2]|0)|0;t=c[g+12>>2]|0;q=0-(c[g+16>>2]|0)|0;v=c[g+20>>2]|0;w=e<<1;m=l;p=a+((s<<1)+h+(B((q<<1)+i|0,e)|0))|0;l=0;f=0;k=0;while(1){if((q|0)>(v|0)){m=l;break a}r=s;n=m;o=p;while(1){if((r|0)>(t|0))break;m=b[n>>1]|0;if(m<<16>>16!=4096){i=d[o>>0]|0;l=l+i|0;f=(B(i,i)|0)+f|0;k=(B(i,m&65535)|0)+k|0}r=r+1|0;n=n+2|0;o=o+2|0}m=n;p=p+w|0;q=q+1|0}}default:{if(f>>>0<2){s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;r=0-(c[g+16>>2]|0)|0;m=0;f=0;k=0;while(1){if((r|0)>(s|0))break a;w=(B((r<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;q=c[v>>2]|0;o=0-p|0;p=a+((w-(p<<1)|0)*3|0)|0;while(1){if((o|0)>(q|0))break;n=b[l>>1]|0;if(n<<16>>16!=4096){w=(((d[p+1>>0]|0)+(d[p>>0]|0)+(d[p+2>>0]|0)|0)>>>0)/3|0;m=w+m|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}o=o+1|0;p=p+6|0;l=l+2|0}r=r+1|0}}if((f|1|0)==3){s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;r=0-(c[g+16>>2]|0)|0;m=0;f=0;k=0;while(1){if((r|0)>(s|0))break a;w=(B((r<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;q=c[v>>2]|0;o=0-p|0;p=a+(w-(p<<1)<<2)|0;while(1){if((o|0)>(q|0))break;n=b[l>>1]|0;if(n<<16>>16!=4096){w=(((d[p+1>>0]|0)+(d[p>>0]|0)+(d[p+2>>0]|0)|0)>>>0)/3|0;m=w+m|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}o=o+1|0;p=p+8|0;l=l+2|0}r=r+1|0}}if((f|2|0)==6){s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;r=0-(c[g+16>>2]|0)|0;m=l;l=0;f=0;k=0;while(1){if((r|0)>(s|0)){m=l;break a}w=(B((r<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;q=c[v>>2]|0;o=0-p|0;p=a+(w-(p<<1)<<2)|0;while(1){if((o|0)>(q|0))break;n=b[m>>1]|0;if(n<<16>>16!=4096){w=(((d[p+2>>0]|0)+(d[p+1>>0]|0)+(d[p+3>>0]|0)|0)>>>0)/3|0;l=w+l|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}o=o+1|0;p=p+8|0;m=m+2|0}r=r+1|0}}switch(f|0){case 7:{s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;m=0;f=0;k=0;r=0-(c[g+16>>2]|0)|0;while(1){if((r|0)>(s|0))break a;w=(B((r<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;q=c[v>>2]|0;o=0-p|0;p=a+(w-(p<<1)<<1)|0;while(1){if((o|0)>(q|0))break;n=b[l>>1]|0;if(n<<16>>16!=4096){w=d[p+1>>0]|0;m=m+w|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}o=o+1|0;p=p+4|0;l=l+2|0}r=r+1|0}}case 8:{s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;m=0;f=0;k=0;q=0-(c[g+16>>2]|0)|0;while(1){if((q|0)>(s|0))break a;w=(B((q<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;r=c[v>>2]|0;o=0-p|0;p=a+(w-(p<<1)<<1)|0;while(1){if((o|0)>(r|0))break;n=b[l>>1]|0;if(n<<16>>16!=4096){w=d[p>>0]|0;m=m+w|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}l=l+2|0;o=o+1|0;p=p+4|0}q=q+1|0}}default:{m=0;f=0;k=0;break a}}}}while(0);l=c[g+36>>2]|0;f=f-((B(m,m)|0)/(l|0)|0)|0;if(!f)f=0;else{i=(k-((B(c[g+32>>2]|0,m)|0)/(l|0)|0)|0)*100|0;f=(((i|0)/(c[g+28>>2]|0)|0)*100|0)/(~~+u(+(+(f|0)))|0)|0}c[j>>2]=f;return}function yf(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=c[e>>2]|0;do if(!i){c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[e>>2]=1}else{j=0;while(1){if((j|0)>=(i|0))break;if((c[h+(j<<2)>>2]|0)<(d|0))break;j=j+1|0}if((j|0)==(i|0)){if(i>>>0>=3)break;c[f+(i<<2)>>2]=a;c[g+(i<<2)>>2]=b;c[h+(i<<2)>>2]=d;c[e>>2]=(c[e>>2]|0)+1;break}if((i|0)==3)i=2;else c[e>>2]=i+1;while(1){if((i|0)<=(j|0))break;e=i+-1|0;c[f+(i<<2)>>2]=c[f+(e<<2)>>2];c[g+(i<<2)>>2]=c[g+(e<<2)>>2];c[h+(i<<2)>>2]=c[h+(e<<2)>>2];i=e}c[f+(i<<2)>>2]=a;c[g+(i<<2)>>2]=b;c[h+(i<<2)>>2]=d}while(0);return}function zf(a,b,f,g,h,i,j,k,l,m){a=a|0;b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0;o=a+((B(g,b)|0)+f)|0;r=c[h+4>>2]|0;p=b<<1;q=c[h>>2]|0;b=0;a=c[h+24>>2]|0;s=0;while(1){if((b|0)>=(r|0))break;n=0;f=o;g=s;while(1){if((n|0)>=(q|0))break;s=(B(e[a>>1]|0,d[f>>0]|0)|0)+g|0;n=n+1|0;a=a+2|0;f=f+2|0;g=s}b=b+1|0;o=o+p|0;s=g}a=q<<1;q=a+8|0;g=k+-2|0;a=g+a|0;f=l+-2|0;l=B(q,f+(r<<1)|0)|0;f=B(q,f)|0;k=l+a|0;r=f+g|0;l=l+g|0;a=f+a|0;f=(c[i+(r<<2)>>2]|0)+(c[i+(k<<2)>>2]|0)-(c[i+(l<<2)>>2]|0)-(c[i+(a<<2)>>2]|0)|0;g=c[h+36>>2]|0;a=(c[j+(r<<2)>>2]|0)+(c[j+(k<<2)>>2]|0)-(c[j+(l<<2)>>2]|0)-(c[j+(a<<2)>>2]|0)-((B(f,f)|0)/(g|0)|0)|0;if(!a)a=0;else{j=(s-((B(c[h+32>>2]|0,f)|0)/(g|0)|0)|0)*100|0;a=(((j|0)/(c[h+28>>2]|0)|0)*100|0)/(~~+u(+(+(a|0)))|0)|0}c[m>>2]=a;return}function Af(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=FO(40)|0;if(!d){Ue(0,3,41858,e);Ea(1)}c[d+16>>2]=a;c[d+8>>2]=a;c[d+20>>2]=b;c[d+12>>2]=b;b=a+1+b|0;c[d>>2]=b;c[d+4>>2]=b;b=FO(B(b<<1,b)|0)|0;c[d+24>>2]=b;if(!b){Ue(0,3,41858,e+8|0);Ea(1)}else{zb=e;return d|0}return 0}function Bf(d,e,g,i,j,k){d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0;D=zb;zb=zb+80|0;l=D+60|0;m=D+56|0;z=D+52|0;A=D+48|0;x=D;C=D+64|0;a:do if(!d){x=c[i>>2]|0;y=c[x+(j*20|0)+8>>2]|0;c[l>>2]=y;p=+f[x+(j*20|0)+12>>2];f[m>>2]=p;if((Ef(0,e,(c[h>>2]=y,+f[h>>2]),p,z,A)|0)<0)d=-1;else{s=~~(+f[z>>2]+.5);l=c[k+16>>2]|0;t=k+20|0;v=k+8|0;w=k+12|0;r=i+8|0;q=0-l|0;i=~~(+f[A>>2]+.5)-(l<<1)|0;l=0;j=0;d=0;m=c[k+24>>2]|0;while(1){if((q|0)>(c[t>>2]|0)){n=25;break a}o=c[v>>2]|0;p=+(i|0);n=0-o|0;o=s-(o<<1)|0;while(1){if((n|0)>(c[w>>2]|0))break;if((Gf(0,e,c[(c[g>>2]|0)+(c[r>>2]<<2)>>2]|0,+(o|0),p,C)|0)<0)b[m>>1]=4096;else{A=a[C>>0]|0;b[m>>1]=A&255;A=A&255;l=l+1|0;j=(B(A,A)|0)+j|0;d=d+A|0}n=n+1|0;o=o+2|0;m=m+2|0}q=q+1|0;i=i+2|0}}}else{vd(d+8|0,e,x)|0;w=c[i>>2]|0;e=c[w+(j*20|0)+8>>2]|0;c[l>>2]=e;p=+f[w+(j*20|0)+12>>2];f[m>>2]=p;if((Ef(0,x,(c[h>>2]=e,+f[h>>2]),p,l,m)|0)>=0?(y=d+184|0,(oe(y,+f[l>>2],+f[m>>2],z,A)|0)>=0):0){s=~~(+f[z>>2]+.5);o=c[k+16>>2]|0;t=k+20|0;v=k+8|0;w=k+12|0;r=i+8|0;l=0;n=0-o|0;o=~~(+f[A>>2]+.5)-(o<<1)|0;j=0;d=0;m=c[k+24>>2]|0;while(1){if((n|0)>(c[t>>2]|0)){n=25;break a}q=c[v>>2]|0;p=+(o|0);i=0-q|0;q=s-(q<<1)|0;while(1){if((i|0)>(c[w>>2]|0))break;do if((pe(y,+(q|0),p,z,A)|0)>=0)if((Gf(0,x,c[(c[g>>2]|0)+(c[r>>2]<<2)>>2]|0,+f[z>>2],+f[A>>2],C)|0)<0){b[m>>1]=4096;break}else{e=a[C>>0]|0;b[m>>1]=e&255;e=e&255;l=l+1|0;j=(B(e,e)|0)+j|0;d=d+e|0;break}else b[m>>1]=4096;while(0);i=i+1|0;q=q+2|0;m=m+2|0}n=n+1|0;o=o+2|0}}else d=-1}while(0);if((n|0)==25)if(!l)d=-1;else{g=~~+u(+(+(j-((B(d,d)|0)/(l|0)|0)|0)));c[k+28>>2]=g;c[k+32>>2]=d;c[k+36>>2]=l;d=0}zb=D;return d|0}function Cf(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0;r=zb;zb=zb+32|0;m=r+20|0;n=r+16|0;o=r+12|0;p=r+8|0;j=r+4|0;k=r;l=+f[g+8>>2];i=+f[g+12>>2];if((b|0)!=0?(Ef(a,b,l,i,m,p)|0)>=0:0){c[h>>2]=~~+f[m>>2];c[h+4>>2]=~~+f[p>>2];if((d|0)!=0?(Ef(a,d,l,i,n,j)|0)>=0:0){c[h+8>>2]=~~(+f[m>>2]*2.0-+f[n>>2]);c[h+12>>2]=~~(+f[p>>2]*2.0-+f[j>>2]);if((e|0)!=0?(Ef(a,e,l,i,o,k)|0)>=0:0){c[h+16>>2]=~~(+f[o>>2]+(+f[m>>2]*3.0-+f[n>>2]*3.0));g=~~(+f[k>>2]+(+f[p>>2]*3.0-+f[j>>2]*3.0))}else q=10}else q=9}else{c[h>>2]=-1;c[h+4>>2]=-1;q=9}if((q|0)==9){c[h+8>>2]=-1;c[h+12>>2]=-1;q=10}if((q|0)==10){c[h+16>>2]=-1;g=-1}c[h+20>>2]=g;zb=r;return}function Df(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;g=g|0;var h=0,i=0.0,j=0,k=0,l=0,m=0.0;l=zb;zb=zb+64|0;h=l;j=l+52|0;k=l+48|0;if(a){vd(a+8|0,b,h)|0;m=+f[h+44>>2]+(+f[h+32>>2]*c+ +f[h+36>>2]*d);i=(+f[h+12>>2]+(+f[h>>2]*c+ +f[h+4>>2]*d))/m;c=(+f[h+28>>2]+(+f[h+16>>2]*c+ +f[h+20>>2]*d))/m;b=a+184|0;if((oe(b,i,c,e,g)|0)>=0?(pe(b,+f[e>>2],+f[g>>2],j,k)|0)>=0:0){i=i-+f[j>>2];m=c-+f[k>>2];b=(i*i+m*m>1.0)<<31>>31}else b=-1}else{i=+f[b+28>>2]+(+f[b+16>>2]*c+ +f[b+20>>2]*d);m=+f[b+44>>2]+(+f[b+32>>2]*c+ +f[b+36>>2]*d);f[e>>2]=(+f[b+12>>2]+(+f[b>>2]*c+ +f[b+4>>2]*d))/m;f[g>>2]=i/m;b=0}zb=l;return b|0}function Ef(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;g=g|0;var h=0,i=0,j=0.0,k=0.0;i=zb;zb=zb+48|0;h=i;if(!a){k=+f[b+28>>2]+(+f[b+16>>2]*c+ +f[b+20>>2]*d);j=+f[b+44>>2]+(+f[b+32>>2]*c+ +f[b+36>>2]*d);f[e>>2]=(+f[b+12>>2]+(+f[b>>2]*c+ +f[b+4>>2]*d))/j;f[g>>2]=k/j;a=0}else{vd(a+8|0,b,h)|0;k=+f[h+44>>2]+(+f[h+32>>2]*c+ +f[h+36>>2]*d);a=(oe(a+184|0,(+f[h+12>>2]+(+f[h>>2]*c+ +f[h+4>>2]*d))/k,(+f[h+28>>2]+(+f[h+16>>2]*c+ +f[h+20>>2]*d))/k,e,g)|0)>>31}zb=i;return a|0}function Ff(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;g=g|0;var h=0.0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0;r=zb;zb=zb+64|0;i=r+52|0;j=r+48|0;l=r;if(a)if((pe(a+184|0,c,d,i,j)|0)<0)a=-1;else{vd(a+8|0,b,l)|0;h=+f[l+32>>2];k=+f[i>>2];p=+f[l+36>>2];d=+f[j>>2];c=+f[l+44>>2];m=+f[l+12>>2]-k*c;n=p*d-+f[l+20>>2];o=h*d-+f[l+16>>2];p=k*p-+f[l+4>>2];k=h*k-+f[l>>2];h=+f[l+28>>2];c=d*c;q=5}else{k=+f[b+32>>2];p=+f[b+36>>2];s=+f[b+44>>2];m=+f[b+12>>2]-s*c;n=p*d-+f[b+20>>2];o=k*d-+f[b+16>>2];p=p*c-+f[b+4>>2];k=k*c-+f[b>>2];h=+f[b+28>>2];c=s*d;q=5}if((q|0)==5){c=h-c;h=k*n-p*o;if(h==0.0)a=-1;else{f[e>>2]=(n*m-p*c)/h;f[g>>2]=(k*c-o*m)/h;a=0}}zb=r;return a|0}function Gf(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=+g;h=+h;i=i|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;n=p+4|0;o=p;if((((Ff(b,d,g,h,n,o)|0)>=0?(j=+f[e+12>>2],k=~~(+f[n>>2]*j/25.399999618530273+.5),(k|0)>=0):0)?(l=c[e+4>>2]|0,(l|0)>(k|0)):0)?(n=c[e+8>>2]|0,m=~~(+(n|0)-j*+f[o>>2]/25.399999618530273+.5),(m|0)>-1&(n|0)>(m|0)):0){b=(B(l,m)|0)+k|0;a[i>>0]=a[(c[e>>2]|0)+b>>0]|0;b=0}else b=-1;zb=p;return b|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return Bd(a,b,c)|0}function If(a){a=a|0;return Cd(a)|0}function Jf(a){a=a|0;return Kf(a,c[a>>2]|0,c[a+4>>2]|0,1)|0}function Kf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=zb;zb=zb+16|0;f=HO(1,4156)|0;if(!f){Ue(0,3,41858,g);Ea(1)}else{h=tB(4)|0;Ij(h);c[f>>2]=h;c[f+4>>2]=a;c[f+8>>2]=e;c[f+12>>2]=b;c[f+16>>2]=d;c[f+20>>2]=1;c[f+24>>2]=-1;e=f+28|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;zb=g;return f|0}return 0}function Lf(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)b=-1;else{d=c[b>>2]|0;if(d){nk(d);SA(d);b=c[a>>2]|0}d=c[b+28>>2]|0;if(d){GO(d);b=c[a>>2]|0}d=c[b+36>>2]|0;if(d){GO(d);b=c[a>>2]|0}d=c[b+52>>2]|0;if(d){GO(d);b=c[a>>2]|0}d=c[b+44>>2]|0;if(d){GO(d);b=c[a>>2]|0}GO(b);c[a>>2]=0;b=0}return b|0}function Mf(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Nf(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-20|0;Of(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function Of(a){a=a|0;return}function Pf(a,b){a=a|0;b=b|0;Rf(a);return}function Qf(a){a=a|0;P(a|0)|0;UA()}function Rf(a){a=a|0;SA(a);return}function Sf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=zb;zb=zb+48|0;r=s+40|0;p=s+32|0;m=s+24|0;k=s+16|0;f=s+8|0;e=s;if((a|0)!=0&(b|0)!=0){e=c[a>>2]|0;do if(!e){e=FO(16)|0;c[a>>2]=e;if(!e){Ue(0,3,41858,f);Ea(1)}else{c[e+4>>2]=0;c[e>>2]=0;c[e+12>>2]=0;c[e+8>>2]=0;l=e;d=e;break}}else{l=e;d=e}while(0);f=c[b>>2]|0;if(!f)d=0;else{g=c[l+4>>2]|0;h=c[f+4>>2]|0;i=h+g|0;j=FO(i*132|0)|0;if(!j){Ue(0,3,41858,k);Ea(1)}e=0;while(1){if((e|0)>=(g|0))break;_O(j+(e*132|0)|0,(c[l>>2]|0)+(e*132|0)|0,132)|0;e=e+1|0}e=0;while(1){if((e|0)>=(h|0))break;_O(j+((e+g|0)*132|0)|0,(c[f>>2]|0)+(e*132|0)|0,132)|0;e=e+1|0}e=c[l>>2]|0;if(e){GO(e);d=c[a>>2]|0}c[d>>2]=j;h=c[a>>2]|0;c[h+4>>2]=i;k=c[h+12>>2]|0;g=c[b>>2]|0;l=c[g+12>>2]|0;g=g+8|0;h=h+8|0;d=0;f=0;while(1){if((f|0)>=(l|0))break;e=0;while(1){if((e|0)>=(k|0))break;if((c[(c[g>>2]|0)+(f*12|0)+8>>2]|0)==(c[(c[h>>2]|0)+(e*12|0)+8>>2]|0)){q=23;break}else e=e+1|0}if((q|0)==23){q=0;d=d+1|0}f=f+1|0}n=l+k-d|0;o=FO(n*12|0)|0;if(!o){Ue(0,3,41858,m);Ea(1)}j=0;while(1){if((j|0)>=(k|0))break;h=(c[a>>2]|0)+8|0;d=c[h>>2]|0;g=d+(j*12|0)+8|0;c[o+(j*12|0)+8>>2]=c[g>>2];d=c[d+(j*12|0)+4>>2]|0;f=0;while(1){if((f|0)>=(l|0))break;e=c[(c[b>>2]|0)+8>>2]|0;if((c[e+(f*12|0)+8>>2]|0)==(c[g>>2]|0))d=(c[e+(f*12|0)+4>>2]|0)+d|0;f=f+1|0}i=o+(j*12|0)|0;m=FO(d*12|0)|0;c[i>>2]=m;if(!m){q=36;break}h=c[(c[h>>2]|0)+(j*12|0)+4>>2]|0;e=0;while(1){if((e|0)>=(h|0))break;g=(c[(c[(c[a>>2]|0)+8>>2]|0)+(j*12|0)>>2]|0)+(e*12|0)|0;m=(c[i>>2]|0)+(e*12|0)|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];e=e+1|0}g=0;while(1){if((g|0)>=(l|0))break;e=c[(c[b>>2]|0)+8>>2]|0;if((c[e+(g*12|0)+8>>2]|0)==(c[(c[(c[a>>2]|0)+8>>2]|0)+(j*12|0)+8>>2]|0)){q=43;break}g=g+1|0}a:do if((q|0)==43){q=0;f=0;while(1){if((f|0)>=(c[e+(g*12|0)+4>>2]|0))break a;t=(c[e+(g*12|0)>>2]|0)+(f*12|0)|0;m=(c[i>>2]|0)+((f+h|0)*12|0)|0;c[m>>2]=c[t>>2];c[m+4>>2]=c[t+4>>2];c[m+8>>2]=c[t+8>>2];f=f+1|0;e=c[(c[b>>2]|0)+8>>2]|0}}while(0);c[o+(j*12|0)+4>>2]=d;j=j+1|0}if((q|0)==36){Ue(0,3,41858,p);Ea(1)}d=0;j=0;while(1){if((j|0)>=(l|0))break;f=c[(c[b>>2]|0)+8>>2]|0;g=c[f+(j*12|0)+8>>2]|0;e=0;while(1){if((e|0)>=(k|0)){q=53;break}if((g|0)==(c[(c[(c[a>>2]|0)+8>>2]|0)+(e*12|0)+8>>2]|0)){q=52;break}else e=e+1|0}if((q|0)==52){q=0;d=d+1|0}else if((q|0)==53){q=0;h=j+k-d|0;i=o+(h*12|0)|0;c[o+(h*12|0)+8>>2]=g;f=c[f+(j*12|0)+4>>2]|0;t=FO(f*12|0)|0;c[i>>2]=t;if(!t){q=55;break}e=0;while(1){if((e|0)>=(f|0))break;p=(c[(c[(c[b>>2]|0)+8>>2]|0)+(j*12|0)>>2]|0)+(e*12|0)|0;t=(c[i>>2]|0)+(e*12|0)|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];e=e+1|0}c[o+(h*12|0)+4>>2]=f}j=j+1|0}if((q|0)==55){Ue(0,3,41858,r);Ea(1)}e=c[a>>2]|0;d=e+8|0;g=c[d>>2]|0;if(g){f=0;d=g;while(1){if((f|0)>=(c[e+12>>2]|0))break;GO(c[d+(f*12|0)>>2]|0);t=c[a>>2]|0;f=f+1|0;e=t;d=c[t+8>>2]|0}GO(d);d=(c[a>>2]|0)+8|0}c[d>>2]=o;c[(c[a>>2]|0)+12>>2]=n;Tf(b)|0;d=0}}else{Ue(0,3,22132,e);d=-1}zb=s;return d|0}function Tf(a){a=a|0;var b=0,d=0,e=0,f=0;e=zb;zb=zb+16|0;if(a){b=c[a>>2]|0;if(!b)b=0;else{b=c[b>>2]|0;if(b|0)GO(b);b=0;while(1){f=c[a>>2]|0;d=f+8|0;if((b|0)>=(c[f+12>>2]|0))break;GO(c[(c[d>>2]|0)+(b*12|0)>>2]|0);b=b+1|0}GO(c[d>>2]|0);GO(c[a>>2]|0);c[a>>2]=0;b=0}}else{Ue(0,3,22192,e);b=-1}zb=e;return b|0}function Uf(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;p=zb;zb=zb+64|0;o=p+56|0;n=p+48|0;l=p+40|0;k=p+32|0;j=p+24|0;i=p+8|0;h=p;g=p+60|0;a[g>>0]=a[22236]|0;a[g+1>>0]=a[22237]|0;a[g+2>>0]=a[22238]|0;a:do if((b|0)!=0&(e|0)!=0){m=Hg(b,d,g)|0;if(!m){f=(d|0)!=0;c[i>>2]=b;c[i+4>>2]=f?46716:57671;c[i+8>>2]=f?d:57671;Ue(0,3,22290,i);f=-1;break}i=HO(1,16)|0;if(!i){Ue(0,3,41858,j);Ea(1)}h=i+4|0;b:do if((gA(h,4,1,m)|0)==1?(f=c[h>>2]|0,(f|0)>=1):0){j=FO(f*132|0)|0;c[i>>2]=j;if(!j){Ue(0,3,41858,k);Ea(1)}g=0;while(1){if((g|0)>=(f|0))break;if((gA((c[i>>2]|0)+(g*132|0)|0,8,1,m)|0)!=1)break b;if((gA((c[i>>2]|0)+(g*132|0)+8|0,8,1,m)|0)!=1)break b;if((gA((c[i>>2]|0)+(g*132|0)+16|0,108,1,m)|0)!=1)break b;if((gA((c[i>>2]|0)+(g*132|0)+124|0,4,1,m)|0)!=1)break b;if((gA((c[i>>2]|0)+(g*132|0)+128|0,4,1,m)|0)!=1)break b;g=g+1|0;f=c[h>>2]|0}b=i+12|0;if((gA(b,4,1,m)|0)==1){f=c[b>>2]|0;if((f|0)<1){c[i+8>>2]=0;break}k=FO(f*12|0)|0;d=i+8|0;c[d>>2]=k;if(!k){Ue(0,3,41858,l);Ea(1)}h=0;while(1){if((h|0)>=(f|0)){f=32;break}if((gA((c[d>>2]|0)+(h*12|0)+8|0,4,1,m)|0)!=1)break b;if((gA((c[d>>2]|0)+(h*12|0)+4|0,4,1,m)|0)!=1)break b;l=c[d>>2]|0;f=c[l+(h*12|0)+4>>2]|0;g=FO(f*12|0)|0;c[l+(h*12|0)>>2]=g;if(!g){f=29;break}if((gA(g,12,f,m)|0)!=(f|0))break b;h=h+1|0;f=c[b>>2]|0}if((f|0)==29){Ue(0,3,41858,n);Ea(1)}else if((f|0)==32){c[e>>2]=i;xz(m)|0;f=0;break a}}}while(0);Ue(0,3,22357,o);f=c[i+8>>2]|0;if(f|0)GO(f);f=c[i>>2]|0;if(f|0)GO(f);GO(i);xz(m)|0;f=-1}else{Ue(0,3,22239,h);f=-1}while(0);zb=p;return f|0}function Vf(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;j=zb;zb=zb+16|0;a:do if(!a){Ue(0,3,22402,j);e=-1}else{g=c[a+4>>2]|0;i=(b|0)==-1;e=0;while(1){if((e|0)>=(g|0))break;f=(c[a>>2]|0)+(e*132|0)+124|0;h=c[f>>2]|0;if((h|0)==(b|0)|i&(h|0)>-1)c[f>>2]=d;e=e+1|0}h=c[a+12>>2]|0;f=a+8|0;e=0;while(1){if((e|0)>=(h|0)){e=0;break a}g=(c[f>>2]|0)+(e*12|0)+8|0;a=c[g>>2]|0;if((a|0)==(b|0)|i&(a|0)>-1)c[g>>2]=d;e=e+1|0}}while(0);zb=j;return e|0}function Wf(){return -1}function Xf(a,b){a=a|0;b=b|0;return Zf(a,b,Yf(b)|0)|0}function Yf(a){a=a|0;return Qy(a)|0}function Zf(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;l=zb;zb=zb+16|0;g=l+12|0;j=l;k=l+8|0;NE(j,b);if(a[j>>0]|0){h=(c[b>>2]|0)+-12|0;c[k>>2]=c[b+(c[h>>2]|0)+24>>2];h=b+(c[h>>2]|0)|0;i=c[h+4>>2]|0;f=d+e|0;m=Wf()|0;e=h+76|0;if(_f(m,c[e>>2]|0)|0){IE(g,h);m=XF(g,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,32)|0;YF(g);m=m<<24>>24;c[e>>2]=m;e=m}else e=c[e>>2]|0;c[g>>2]=c[k>>2];if(!($f(g,d,(i&176|0)==32?f:d,f,h,e&255)|0)){m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(m,c[m+16>>2]|5)}}OE(j);zb=l;return b|0}function _f(a,b){a=a|0;b=b|0;return (a|0)==(b|0)|0}function $f(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;n=zb;zb=zb+16|0;m=n;i=c[b>>2]|0;a:do if(!i)i=0;else{k=d;j=f-k|0;l=g+12|0;g=c[l>>2]|0;g=(g|0)>(j|0)?g-j|0:0;j=e;k=j-k|0;if((k|0)>0?(Jb[c[(c[i>>2]|0)+48>>2]&63](i,d,k)|0)!=(k|0):0){c[b>>2]=0;i=0;break}do if((g|0)>0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;hO(m,g,h);if((Jb[c[(c[i>>2]|0)+48>>2]&63](i,(a[m+11>>0]|0)<0?c[m>>2]|0:m,g)|0)==(g|0)){jO(m);break}else{c[b>>2]=0;jO(m);i=0;break a}}while(0);f=f-j|0;if((f|0)>0?(Jb[c[(c[i>>2]|0)+48>>2]&63](i,e,f)|0)!=(f|0):0){c[b>>2]=0;i=0;break}c[l>>2]=0}while(0);zb=n;return i|0}function ag(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;j=zb;zb=zb+16|0;g=d;i=j;f=e-g|0;if(f>>>0>4294967279)eO(b);if(f>>>0<11){a[b+11>>0]=f;h=b}else{k=f+16&-16;h=tB(k)|0;c[b>>2]=h;c[b+8>>2]=k|-2147483648;c[b+4>>2]=f}f=e-g|0;b=h;while(1){if((d|0)==(e|0))break;bg(b,d);d=d+1|0;b=b+1|0}a[i>>0]=0;bg(h+f|0,i);zb=j;return}function bg(b,c){b=b|0;c=c|0;a[b>>0]=a[c>>0]|0;return}function cg(a){a=a|0;return a&255|0}function dg(a){a=a|0;if(_f(a,Wf()|0)|0)a=~(Wf()|0);return a|0}function eg(a){a=a|0;return a&255|0}function fg(b,d){b=b|0;d=d|0;var e=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;A=zb;zb=zb+112|0;z=A+48|0;p=A+40|0;n=A+32|0;l=A+24|0;h=A+16|0;g=A+8|0;e=A;v=A+96|0;w=A+84|0;x=A+72|0;y=A+52|0;a:do if((b|0)!=0&(d|0)!=0){i=d+4|0;e=c[i>>2]|0;if(!e){Ue(0,3,22499,g);e=-1;break}u=b+28|0;g=c[u>>2]|0;if(g){GO(g);e=c[i>>2]|0;if(!e){c[u>>2]=0;e=0}else j=7}else j=7;b:do if((j|0)==7){t=FO(e*132|0)|0;c[u>>2]=t;if(!t){Ue(0,3,41858,h);Ea(1)}g=0;while(1){if((g|0)>=(e|0))break b;_O((c[u>>2]|0)+(g*132|0)|0,(c[d>>2]|0)+(g*132|0)|0,132)|0;g=g+1|0;e=c[i>>2]|0}}while(0);m=b+32|0;c[m>>2]=e;t=b+36|0;e=c[t>>2]|0;if(e|0){i=b+40|0;h=0;while(1){if((h|0)>=(c[i>>2]|0))break;g=c[e+(h*12|0)>>2]|0;if(g){GO(g);e=c[t>>2]|0}h=h+1|0}GO(e)}k=d+12|0;e=c[k>>2]|0;c:do if(!e){c[t>>2]=0;o=0}else{s=FO(e*12|0)|0;c[t>>2]=s;if(!s){Ue(0,3,41858,l);Ea(1)}d=d+8|0;j=0;while(1){if((j|0)>=(e|0)){o=e;break c}i=c[d>>2]|0;g=c[t>>2]|0;c[g+(j*12|0)+8>>2]=c[i+(j*12|0)+8>>2];h=i+(j*12|0)+4|0;c[g+(j*12|0)+4>>2]=c[h>>2];h=c[h>>2]|0;if(!h)c[i+(j*12|0)>>2]=0;else{s=FO(h*12|0)|0;c[g+(j*12|0)>>2]=s;if(!s)break;g=0;e=i;while(1){if((g|0)>=(c[e+(j*12|0)+4>>2]|0))break;r=(c[e+(j*12|0)>>2]|0)+(g*12|0)|0;s=(c[(c[t>>2]|0)+(j*12|0)>>2]|0)+(g*12|0)|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];g=g+1|0;e=c[d>>2]|0}e=c[k>>2]|0}j=j+1|0}Ue(0,3,41858,n);Ea(1)}while(0);s=b+40|0;c[s>>2]=o;i=b+52|0;e=c[i>>2]|0;if(e|0){GO(e);c[i>>2]=0;c[b+56>>2]=0}g=c[k>>2]|0;d:do if((g|0)>0){c[b+56>>2]=g;h=FO(g*68|0)|0;c[i>>2]=h;if(!h){Ue(0,3,41858,p);Ea(1)}e=0;while(1){if((e|0)==(g|0))break d;c[h+(e*68|0)+64>>2]=0;e=e+1|0}}while(0);l=c[m>>2]|0;if(!l)e=0;else{m=v+4|0;n=v+8|0;o=w+4|0;p=w+8|0;q=x+4|0;r=x+8|0;k=0;e=0;while(1){if((k|0)>=(c[s>>2]|0)){e=0;break a}d=0;while(1){if((d|0)>=(c[(c[t>>2]|0)+(k*12|0)+4>>2]|0))break;c[v>>2]=0;c[m>>2]=0;c[n>>2]=0;c[w>>2]=0;c[o>>2]=0;c[p>>2]=0;c[x>>2]=0;c[q>>2]=0;c[r>>2]=0;j=0;while(1){if((j|0)>=(l|0))break;g=c[u>>2]|0;i=c[t>>2]|0;e:do if((c[g+(j*132|0)+128>>2]|0)==(c[(c[i+(k*12|0)>>2]|0)+(d*12|0)+8>>2]|0)?(c[g+(j*132|0)+124>>2]|0)==(c[i+(k*12|0)+8>>2]|0):0){gg(y,+f[g+(j*132|0)>>2],+f[g+(j*132|0)+4>>2],+f[g+(j*132|0)+112>>2],+f[g+(j*132|0)+116>>2],(c[g+(j*132|0)+120>>2]|0)!=0);g=c[m>>2]|0;if(g>>>0<(c[n>>2]|0)>>>0){c[g>>2]=c[y>>2];c[g+4>>2]=c[y+4>>2];c[g+8>>2]=c[y+8>>2];c[g+12>>2]=c[y+12>>2];c[g+16>>2]=c[y+16>>2];c[m>>2]=g+20}else hg(v,y);Of(y);g=c[u>>2]|0;ig(y,+f[g+(j*132|0)+8>>2],+f[g+(j*132|0)+12>>2],0.0);g=c[o>>2]|0;if(g>>>0<(c[p>>2]|0)>>>0){c[g>>2]=c[y>>2];c[g+4>>2]=c[y+4>>2];c[g+8>>2]=c[y+8>>2];c[o>>2]=(c[o>>2]|0)+12}else jg(w,y);g=0;while(1){if(g>>>0>=96)break e;h=(c[u>>2]|0)+(j*132|0)+16+g|0;i=c[q>>2]|0;if((i|0)==(c[r>>2]|0))kg(x,h);else{a[i>>0]=a[h>>0]|0;c[q>>2]=(c[q>>2]|0)+1}g=g+1|0}}while(0);j=j+1|0}c[z>>2]=((c[m>>2]|0)-(c[v>>2]|0)|0)/20|0;Ue(0,1,22532,z);j=c[t>>2]|0;c[b+60+(e<<2)>>2]=c[j+(k*12|0)+8>>2];j=c[j+(k*12|0)>>2]|0;em(c[b>>2]|0,v,x,w,c[j+(d*12|0)>>2]|0,c[j+(d*12|0)+4>>2]|0,e);Mf(x);lg(w);Nf(v);d=d+1|0;e=e+1|0}k=k+1|0}}}else{Ue(0,3,22451,e);e=-1}while(0);zb=A;return e|0}function gg(b,c,d,e,g,h){b=b|0;c=+c;d=+d;e=+e;g=+g;h=h|0;f[b>>2]=c;f[b+4>>2]=d;f[b+8>>2]=e;f[b+12>>2]=g;a[b+16>>0]=h&1;return}function hg(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=(((c[e>>2]|0)-(c[a>>2]|0)|0)/20|0)+1|0;g=ug(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=((c[a+8>>2]|0)-i|0)/20|0;j=k<<1;vg(d,k>>>0>>1>>>0?(j>>>0>>0?f:j):g,((c[e>>2]|0)-i|0)/20|0,a+8|0);g=d+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[g>>2]=(c[g>>2]|0)+20;wg(a,d);xg(d);zb=h;return}}function ig(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;f[a>>2]=b;f[a+4>>2]=c;f[a+8>>2]=d;return}function jg(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=(((c[e>>2]|0)-(c[a>>2]|0)|0)/12|0)+1|0;g=qg(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=((c[a+8>>2]|0)-i|0)/12|0;j=k<<1;rg(d,k>>>0>>1>>>0?(j>>>0>>0?f:j):g,((c[e>>2]|0)-i|0)/12|0,a+8|0);g=d+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[g>>2]=(c[g>>2]|0)+12;sg(a,d);tg(d);zb=h;return}}function kg(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;i=zb;zb=zb+32|0;e=i;f=b+4|0;g=(c[f>>2]|0)-(c[b>>2]|0)+1|0;h=mg(b)|0;if(h>>>0>>0)EO(b);else{j=c[b>>2]|0;l=(c[b+8>>2]|0)-j|0;k=l<<1;ng(e,l>>>0>>1>>>0?(k>>>0>>0?g:k):h,(c[f>>2]|0)-j|0,b+8|0);h=e+8|0;a[c[h>>2]>>0]=a[d>>0]|0;c[h>>2]=(c[h>>2]|0)+1;og(b,e);pg(e);zb=i;return}}function lg(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function mg(a){a=a|0;return 2147483647}function ng(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=tB(b)|0;c[a>>2]=e;d=e+d|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+b;return}function og(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-f)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function pg(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-1|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function qg(a){a=a|0;return 357913941}function rg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>357913941){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*12|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*12|0);return}function sg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(((f|0)/-12|0)*12|0)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function tg(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-12|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function ug(a){a=a|0;return 214748364}function vg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>214748364){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*20|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*20|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*20|0);return}function wg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;i=(c[g>>2]|0)+-20|0;h=d+-20|0;c[i>>2]=c[h>>2];c[i+4>>2]=c[h+4>>2];c[i+8>>2]=c[h+8>>2];c[i+12>>2]=c[h+12>>2];c[i+16>>2]=c[h+16>>2];c[g>>2]=(c[g>>2]|0)+-20;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;h=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=h;f=a+8|0;i=b+12|0;h=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=h;c[b>>2]=c[g>>2];return}function xg(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-20|0;c[d>>2]=e;Of(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function yg(a,b){a=a|0;b=b|0;var d=0,e=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,u=0;u=zb;zb=zb+48|0;r=u+16|0;o=u+8|0;d=u;e=u+44|0;h=u+40|0;do if((a|0)!=0&(b|0)!=0){i=c[a+12>>2]|0;j=c[a+16>>2]|0;m=c[a+20>>2]|0;n=(m|0)==1;if(!n){d=Bg(b,i,j,m,e,h)|0;if(!d){d=-1;break}else{s=d;t=1}}else{s=b;t=0}Em(c[a>>2]|0,s,i,j)|0;j=fp(c[a>>2]|0)|0;j=(c[j+4>>2]|0)-(c[j>>2]|0)|0;d=(j|0)/20|0;i=a+48|0;c[i>>2]=d;a:do if(!j){e=c[a+56>>2]|0;b=a+52|0;d=0;while(1){if((d|0)>=(e|0))break a;c[(c[b>>2]|0)+(d*68|0)+60>>2]=-1;d=d+1|0}}else{j=a+44|0;b=c[j>>2]|0;if(b){GO(b);d=c[i>>2]|0}h=FO(d<<3)|0;c[j>>2]=h;if(!h){Ue(0,3,41858,o);Ea(1)}e=fp(c[a>>2]|0)|0;b:do if(n){h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k;f[o+(d<<3)+4>>2]=l}else{o=c[j>>2]|0;pe(b+184|0,k,l,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}else switch(m|0){case 5:{h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k*1.5;f[o+(d<<3)+4>>2]=l*1.5}else{o=c[j>>2]|0;pe(b+184|0,k*1.5,l*1.5,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}case 2:{h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k*2.0;f[o+(d<<3)+4>>2]=l*2.0}else{o=c[j>>2]|0;pe(b+184|0,k*2.0,l*2.0,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}case 4:{h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k*3.0;f[o+(d<<3)+4>>2]=l*3.0}else{o=c[j>>2]|0;pe(b+184|0,k*3.0,l*3.0,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}default:{h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k*4.0;f[o+(d<<3)+4>>2]=l*4.0}else{o=c[j>>2]|0;pe(b+184|0,k*4.0,l*4.0,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}}while(0);i=a+56|0;j=a+36|0;b=a+52|0;d=0;while(1){e=c[i>>2]|0;if((d|0)>=(e|0))break a;o=c[b>>2]|0;c[o+(d*68|0)+48>>2]=c[(c[j>>2]|0)+(d*12|0)+8>>2];c[o+(d*68|0)+60>>2]=-1;if(((c[o+(d*68|0)+64>>2]|0)==0?(p=hp(c[a>>2]|0)|0,q=cp(c[a>>2]|0)|0,(q|0)>=0):0)?(e=c[h>>2]|0,m=ep(c[a>>2]|0,q)|0,n=fp(c[a>>2]|0)|0,o=c[b>>2]|0,(zg(e,p,m,n,o+(d*68|0)|0,o+(d*68|0)+52|0)|0)==0):0){n=c[b>>2]|0;c[n+(d*68|0)+60>>2]=0;o=(c[p+4>>2]|0)-(c[p>>2]|0)>>3;c[n+(d*68|0)+56>>2]=o;c[n+(d*68|0)+48>>2]=c[a+60+(q<<2)>>2];l=+f[n+(d*68|0)+52>>2];c[r>>2]=d;c[r+4>>2]=o;c[r+8>>2]=o;g[r+16>>3]=l;Ue(0,1,22587,r)}d=d+1|0}}while(0);d=0;while(1){if((d|0)>=(e|0))break;c[(c[b>>2]|0)+(d*68|0)+64>>2]=0;d=d+1|0}if(!t)d=0;else{GO(s);d=0}}else{Ue(0,3,22543,d);d=-1}while(0);zb=u;return d|0}function zg(a,b,d,e,h,i){a=a|0;b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=zb;zb=zb+240|0;k=u+208|0;j=u+200|0;s=u+224|0;p=u+212|0;q=u+96|0;t=u+192|0;r=u;l=c[b>>2]|0;b=(c[b+4>>2]|0)-l|0;m=b>>3;do if(m>>>0<4)b=-1;else{o=FO(b<<1)|0;if(!o){Ue(0,3,41858,j);Ea(1)}n=FO(m*24|0)|0;if(!n){Ue(0,3,41858,k);Ea(1)}e=c[e>>2]|0;j=c[d>>2]|0;b=0;while(1){if((b|0)==(m|0))break;d=c[l+(b<<3)>>2]|0;g[o+(b<<4)>>3]=+f[e+(d*20|0)>>2];g[o+(b<<4)+8>>3]=+f[e+(d*20|0)+4>>2];d=c[l+(b<<3)+4>>2]|0;g[n+(b*24|0)>>3]=+f[j+(d*12|0)>>2];g[n+(b*24|0)+8>>3]=+f[j+(d*12|0)+4>>2];g[n+(b*24|0)+16>>3]=0.0;b=b+1|0}c[p+8>>2]=m;c[p>>2]=o;c[p+4>>2]=n;b=a+8|0;if((Me(b,o,n,m,q)|0)<0){GO(o);GO(n);b=-1;break}b=Ee(b)|0;c[s>>2]=b;if(!b){GO(o);GO(n);b=-1;break}if((He(b,p,q,r,t)|0)<0){GO(o);GO(n);Fe(s)|0;b=-1}else{j=0;while(1){if((j|0)==3)break;b=0;while(1){if((b|0)==4)break;f[h+(j<<4)+(b<<2)>>2]=+g[r+(j<<5)+(b<<3)>>3];b=b+1|0}j=j+1|0}Fe(s)|0;GO(o);GO(n);v=+g[t>>3];f[i>>2]=v;b=(v>10.0)<<31>>31}}while(0);zb=u;return b|0}function Ag(a,b,d){a=a|0;b=b|0;d=d|0;if(!a)a=-1;else{c[b>>2]=c[a+52>>2];c[d>>2]=c[a+56>>2];a=0}return a|0}function Bg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;switch(d|0){case 1:{a=Cg(a,b,c,e,f)|0;break}case 5:{a=Dg(a,b,c,e,f)|0;break}case 2:{a=Eg(a,b,c,e,f)|0;break}case 4:{a=Fg(a,b,c,e,f)|0;break}default:a=Gg(a,b,c,e,f)|0}return a|0}function Cg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=zb;zb=zb+16|0;c[e>>2]=b;c[f>>2]=d;b=B(d,b)|0;d=FO(b)|0;if(!d){Ue(0,3,41858,g);Ea(1)}else{_O(d|0,a|0,b|0)|0;zb=g;return d|0}return 0}function Dg(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,s=0,t=0,u=0;q=zb;zb=zb+16|0;o=(e|0)/3|0;p=o<<1;c[g>>2]=p;n=(f|0)/3|0;m=n<<1;c[h>>2]=m;m=FO(B(m,p)|0)|0;if(!m){Ue(0,3,41858,q);Ea(1)}h=0;f=m;g=m;while(1){if((h|0)>=(n|0))break;l=h*3|0;i=0;j=b+(B(l+2|0,e)|0)|0;k=b+(B(l+1|0,e)|0)|0;l=b+(B(l,e)|0)|0;g=g+p|0;while(1){if((i|0)>=(o|0))break;u=l+1|0;s=k+1|0;a[f>>0]=(((d[u>>0]|0)>>>1&255)+(d[l>>0]|0)+((d[k>>0]|0)>>>1&255)+((d[s>>0]|0)>>>2&255)<<2>>>0)/9|0;r=j+1|0;a[g>>0]=((((d[s>>0]|0)>>>2)+((d[k>>0]|0)>>>1)&255)+(d[j>>0]|0)+((d[r>>0]|0)>>>1&255)<<2>>>0)/9|0;t=k+2|0;a[f+1>>0]=(((d[u>>0]|0)>>>1&255)+(d[l+2>>0]|0)+((d[s>>0]|0)>>>2&255)+((d[t>>0]|0)>>>1&255)<<2>>>0)/9|0;a[g+1>>0]=((((d[t>>0]|0)>>>1)+((d[s>>0]|0)>>>2)&255)+((d[r>>0]|0)>>>1&255)+(d[j+2>>0]|0)<<2>>>0)/9|0;i=i+1|0;j=j+3|0;k=k+3|0;l=l+3|0;f=f+2|0;g=g+2|0}h=h+1|0;f=f+p|0}zb=q;return m|0}function Eg(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;n=zb;zb=zb+16|0;m=(e|0)/2|0;c[g>>2]=m;l=(f|0)/2|0;c[h>>2]=l;k=FO(B(l,m)|0)|0;if(!k){Ue(0,3,41858,n);Ea(1)}g=0;f=k;while(1){if((g|0)>=(l|0))break;j=g<<1;h=0;i=b+(B(j,e)|0)|0;j=b+(B(j|1,e)|0)|0;while(1){if((h|0)>=(m|0))break;a[f>>0]=((d[i+1>>0]|0)+(d[i>>0]|0)+(d[j>>0]|0)+(d[j+1>>0]|0)|0)>>>2;h=h+1|0;i=i+2|0;j=j+2|0;f=f+1|0}g=g+1|0}zb=n;return k|0}function Fg(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;o=zb;zb=zb+16|0;n=(e|0)/3|0;c[g>>2]=n;m=(f|0)/3|0;c[h>>2]=m;l=FO(B(m,n)|0)|0;if(!l){Ue(0,3,41858,o);Ea(1)}g=0;f=l;while(1){if((g|0)>=(m|0))break;k=g*3|0;h=0;i=b+(B(k,e)|0)|0;j=b+(B(k+2|0,e)|0)|0;k=b+(B(k+1|0,e)|0)|0;while(1){if((h|0)>=(n|0))break;a[f>>0]=((d[i+1>>0]|0)+(d[i>>0]|0)+(d[i+2>>0]|0)+(d[k>>0]|0)+(d[k+1>>0]|0)+(d[k+2>>0]|0)+(d[j>>0]|0)+(d[j+1>>0]|0)+(d[j+2>>0]|0)|0)/9|0;h=h+1|0;i=i+3|0;j=j+3|0;k=k+3|0;f=f+1|0}g=g+1|0}zb=o;return l|0}function Gg(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;p=zb;zb=zb+16|0;o=(e|0)/4|0;c[g>>2]=o;n=(f|0)/4|0;c[h>>2]=n;m=FO(B(n,o)|0)|0;if(!m){Ue(0,3,41858,p);Ea(1)}g=0;f=m;while(1){if((g|0)>=(n|0))break;l=g<<2;h=0;i=b+(B(l,e)|0)|0;j=b+(B(l|3,e)|0)|0;k=b+(B(l|2,e)|0)|0;l=b+(B(l|1,e)|0)|0;while(1){if((h|0)>=(o|0))break;a[f>>0]=((d[i+1>>0]|0)+(d[i>>0]|0)+(d[i+2>>0]|0)+(d[i+3>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(d[k>>0]|0)+(d[k+1>>0]|0)+(d[k+2>>0]|0)+(d[k+3>>0]|0)+(d[j>>0]|0)+(d[j+1>>0]|0)+(d[j+2>>0]|0)+(d[j+3>>0]|0)|0)/16|0;h=h+1|0;i=i+4|0;j=j+4|0;k=k+4|0;l=l+4|0;f=f+1|0}g=g+1|0}zb=p;return m|0}function Hg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i+8|0;g=i;do if(a){if(!b){e=rz(a,d)|0;break}f=Qy(a)|0;f=FO(f+2+(Qy(b)|0)|0)|0;if(!f){Ue(0,3,41858,g);Ea(1)}else{c[h>>2]=a;c[h+4>>2]=b;Hx(f,22627,h)|0;e=rz(f,d)|0;GO(f);break}}else e=0;while(0);zb=i;return e|0}function Ig(a){a=a|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 Jg(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;m=zb;zb=zb+16|0;d=m;if(!(Kg(b)|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,22633)|0,22676)|0,35e3)|0,53)|0,35007)|0,22771)|0;IE(d,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(d,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(d);QE(l,k)|0;ME(l)|0;ua()}i=Mg(Lg(b,0,0)|0)|0;j=Ng(Lg(b,0,0)|0)|0;k=Og(Lg(b,0,0)|0)|0;e=Pg(b)|0;l=a+12|0;c[l>>2]=e;b=(Qg(b)|0)+-1|0;e=a+16|0;c[e>>2]=b;Rg(a,B(c[l>>2]|0,b)|0);b=0;while(1){if(b>>>0>=(c[l>>2]|0)>>>0)break;f=j>>>b;g=k>>>b;d=0;while(1){h=c[e>>2]|0;if(d>>>0>=h>>>0)break;h=(B(h,b)|0)+d|0;cq((c[a>>2]|0)+(h<<5)|0,i,f,g,-1,1);d=d+1|0}b=b+1|0}zb=m;return}function Kg(a){a=a|0;return (c[a+8>>2]|0)-(c[a+4>>2]|0)>>5|0}function Lg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=zb;zb=zb+16|0;f=g;if((c[a+16>>2]|0)>>>0<=b>>>0){e=Xf(Xf(PE(Xf(Xf(Xf(56032,34017)|0,33900)|0,35e3)|0,218)|0,35007)|0,22796)|0;IE(f,e+(c[(c[e>>2]|0)+-12>>2]|0)|0);h=XF(f,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(f);QE(e,h)|0;ME(e)|0;ua()}e=c[a+20>>2]|0;if(e>>>0>d>>>0){h=(B(e,b)|0)+d|0;zb=g;return (c[a+4>>2]|0)+(h<<5)|0}else{h=Xf(Xf(PE(Xf(Xf(Xf(56032,34161)|0,33900)|0,35e3)|0,219)|0,35007)|0,22816)|0;IE(f,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);g=XF(f,56736)|0;g=Ib[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;YF(f);QE(h,g)|0;ME(h)|0;ua()}return 0}function Mg(a){a=a|0;return c[a>>2]|0}function Ng(a){a=a|0;return c[a+4>>2]|0}function Og(a){a=a|0;return c[a+8>>2]|0}function Pg(a){a=a|0;return c[a+16>>2]|0}function Qg(a){a=a|0;return c[a+20>>2]|0}function Rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c[a>>2]|0;e=d-f>>5;if(e>>>0>=b>>>0){if(e>>>0>b>>>0){a=f+(b<<5)|0;while(1){if((d|0)==(a|0))break;f=d+-32|0;rq(f);d=f}c[g>>2]=a}}else Sg(a,b-e|0);return}function Sg(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>5>>>0>>0){d=(d-(c[a>>2]|0)>>5)+b|0;e=Ug(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>4;Vg(f,k>>5>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>5,a+8|0);Wg(f,b);Xg(a,f);Yg(f);break}}else Tg(a,b);while(0);zb=i;return}function Tg(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{_p(b);b=(c[d>>2]|0)+32|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Ug(a){a=a|0;return 134217727}function Vg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>134217727){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<5)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<5)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<5);return}function Wg(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{_p(b);b=(c[d>>2]|0)+32|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Xg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-32|0;bq((c[g>>2]|0)+-32|0,h);c[g>>2]=(c[g>>2]|0)+-32;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function Yg(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-32|0;c[d>>2]=e;rq(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function Zg(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;h=zb;zb=zb+16|0;d=h;if((c[a+4>>2]|0)==(c[a>>2]|0)){g=Xf(Xf(PE(Xf(Xf(Xf(56032,22835)|0,22676)|0,35e3)|0,72)|0,35007)|0,22877)|0;IE(d,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);f=XF(d,56736)|0;f=Ib[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;YF(d);QE(g,f)|0;ME(g)|0;ua()}if((Pg(b)|0)<=0){g=Xf(Xf(PE(Xf(Xf(Xf(56032,22918)|0,22676)|0,35e3)|0,73)|0,35007)|0,22967)|0;IE(d,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);f=XF(d,56736)|0;f=Ib[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;YF(d);QE(g,f)|0;ME(g)|0;ua()}if(b|0?NA(b,13184,13192,0)|0:0){f=a+12|0;g=a+16|0;e=0;while(1){if(e>>>0>=(c[f>>2]|0)>>>0)break;d=0;while(1){if(d>>>0>=(c[g>>2]|0)>>>0)break;k=_g(a,e,d)|0;j=Lg(b,e,d)|0;i=d+1|0;$g(0,k,j,Lg(b,e,i)|0);d=i}e=e+1|0}zb=h;return}k=Xf(Xf(PE(Xf(Xf(Xf(56032,23003)|0,22676)|0,35e3)|0,74)|0,35007)|0,23075)|0;IE(d,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);j=XF(d,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(d);QE(k,j)|0;ME(k)|0;ua()}function _g(a,b,d){a=a|0;b=b|0;d=d|0;d=(B(c[a+16>>2]|0,b)|0)+d|0;return (c[a>>2]|0)+(d<<5)|0}function $g(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;k=zb;zb=zb+16|0;a=k;if((Mg(b)|0)!=2){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23110)|0,22676)|0,35e3)|0,86)|0,35007)|0,23155)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((Mg(d)|0)!=2){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23181)|0,22676)|0,35e3)|0,87)|0,35007)|0,23155)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((Mg(e)|0)!=2){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23228)|0,22676)|0,35e3)|0,88)|0,35007)|0,23155)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((ah(b)|0)!=1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23275)|0,22676)|0,35e3)|0,89)|0,35007)|0,23316)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((ah(d)|0)!=1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23353)|0,22676)|0,35e3)|0,90)|0,35007)|0,23316)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((ah(e)|0)!=1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23396)|0,22676)|0,35e3)|0,91)|0,35007)|0,23316)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}j=Ng(b)|0;if((j|0)!=(Ng(e)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23439)|0,22676)|0,35e3)|0,92)|0,35007)|0,23487)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}j=Og(b)|0;if((j|0)!=(Og(e)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23519)|0,22676)|0,35e3)|0,93)|0,35007)|0,23569)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}j=Ng(d)|0;if((j|0)!=(Ng(e)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23602)|0,22676)|0,35e3)|0,94)|0,35007)|0,23487)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}j=Og(d)|0;if((j|0)!=(Og(e)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23652)|0,22676)|0,35e3)|0,95)|0,35007)|0,23569)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}g=0;while(1){if(g>>>0>=(Og(d)|0)>>>0)break;h=bh(b,g)|0;i=ch(d,g)|0;j=ch(e,g)|0;a=0;while(1){if(a>>>0>=(Ng(d)|0)>>>0)break;f[h+(a<<2)>>2]=+f[i+(a<<2)>>2]-+f[j+(a<<2)>>2];a=a+1|0}g=g+1|0}zb=k;return}function ah(a){a=a|0;return c[a+16>>2]|0}function bh(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;if((c[a+8>>2]|0)>>>0>b>>>0){d=(c[a+24>>2]|0)+(B(c[a+12>>2]|0,b)|0)|0;zb=e;return d|0}else{e=Xf(Xf(PE(Xf(Xf(Xf(56032,23704)|0,23741)|0,35e3)|0,119)|0,35007)|0,23811)|0;IE(d,e+(c[(c[e>>2]|0)+-12>>2]|0)|0);b=XF(d,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(d);QE(e,b)|0;ME(e)|0;ua()}return 0}function ch(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;if((c[a+8>>2]|0)>>>0>b>>>0){d=(c[a+24>>2]|0)+(B(c[a+12>>2]|0,b)|0)|0;zb=e;return d|0}else{e=Xf(Xf(PE(Xf(Xf(Xf(56032,23704)|0,23741)|0,35e3)|0,124)|0,35007)|0,23811)|0;IE(d,e+(c[(c[e>>2]|0)+-12>>2]|0)|0);b=XF(d,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(d);QE(e,b)|0;ME(e)|0;ua()}return 0}function dh(b){b=b|0;var d=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=10;c[b+12>>2]=10;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;a[b+28>>0]=1;Ig(b+32|0);f[b+52>>2]=0.0;f[b+56>>2]=10.0;d=b+60|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[d+20>>2]=0;f[b+88>>2]=9.0;sj(b+92|0);d=b+144|0;c[d>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;eh(b,5e3);fh(d,36);return}function eh(a,b){a=a|0;b=b|0;c[a+84>>2]=b;uh(a+60|0,b);return}function fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<2)}else nh(a,b-e|0);return}function gh(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function hh(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function ih(a){a=a|0;mh(a);return}function jh(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-12|0;kh(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function kh(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-12|0;lh(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function lh(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function mh(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-32|0;rq(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function nh(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>2>>>0>>0){d=(d-(c[a>>2]|0)>>2)+b|0;e=ph(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>1;qh(f,k>>2>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>2,a+8|0);rh(f,b);sh(a,f);th(f);break}}else oh(a,b);while(0);zb=i;return}function oh(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b<<2|0)|0;c[a>>2]=d+(b<<2);return}function ph(a){a=a|0;return 1073741823}function qh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>1073741823){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<2)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function rh(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b<<2|0)|0;c[a>>2]=d+(b<<2);return}function sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function th(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-4|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+32|0;d=f;e=c[a>>2]|0;if((((c[a+8>>2]|0)-e|0)/36|0)>>>0>>0){vh(d,b,((c[a+4>>2]|0)-e|0)/36|0,a+8|0);wh(a,d);xh(d)}zb=f;return}function vh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>119304647){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*36|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*36|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*36|0);return}function wh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(((f|0)/-36|0)*36|0)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function xh(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-36|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function yh(a){a=a|0;gh(a+144|0);tj(a+92|0);hh(a+72|0);hh(a+60|0);ih(a+32|0);jh(a+16|0);return} function aI(){var b=0,d=0;if((a[54864]|0)==0?nB(54864)|0:0){d=53568;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=53856);pB(54864)}nO(53568,49685)|0;nO(53580,49693)|0;nO(53592,49702)|0;nO(53604,49708)|0;nO(53616,49714)|0;nO(53628,49718)|0;nO(53640,49723)|0;nO(53652,49728)|0;nO(53664,49735)|0;nO(53676,49745)|0;nO(53688,49753)|0;nO(53700,49762)|0;nO(53712,49771)|0;nO(53724,49775)|0;nO(53736,49779)|0;nO(53748,49783)|0;nO(53760,49714)|0;nO(53772,49787)|0;nO(53784,49791)|0;nO(53796,49795)|0;nO(53808,49799)|0;nO(53820,49803)|0;nO(53832,49807)|0;nO(53844,49811)|0;return}function bI(){var b=0,d=0;if((a[54880]|0)==0?nB(54880)|0:0){d=53856;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=54024);pB(54880)}nO(53856,49815)|0;nO(53868,49822)|0;nO(53880,49829)|0;nO(53892,49837)|0;nO(53904,49847)|0;nO(53916,49856)|0;nO(53928,49863)|0;nO(53940,49872)|0;nO(53952,49876)|0;nO(53964,49880)|0;nO(53976,49884)|0;nO(53988,49888)|0;nO(54e3,49892)|0;nO(54012,49896)|0;return}function cI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;a=a+8|0;a=Gb[c[c[a>>2]>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];a=(FG(d,i,a,a+168|0,g,f,0)|0)-a|0;if((a|0)<168)c[b>>2]=((a|0)/12|0|0)%7|0;zb=h;return}function dI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;a=a+8|0;a=Gb[c[(c[a>>2]|0)+4>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];a=(FG(d,i,a,a+288|0,g,f,0)|0)-a|0;if((a|0)<288)c[b>>2]=((a|0)/12|0|0)%12|0;zb=h;return}function eI(d,e,f,g,h,i,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=zb;zb=zb+16|0;s=z+12|0;r=z+8|0;w=z+4|0;x=z;IE(s,g);t=XF(s,56736)|0;YF(s);c[h>>2]=0;u=t+8|0;m=0;a:while(1){l=c[e>>2]|0;if(!((j|0)!=(k|0)&(m|0)==0))break;n=l;if(l){m=c[l+12>>2]|0;if((m|0)==(c[l+16>>2]|0))m=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=cg(a[m>>0]|0)|0;if(_f(m,Wf()|0)|0){c[e>>2]=0;l=0;o=1;q=0}else{o=0;q=n}}else{l=0;o=1;q=n}p=c[f>>2]|0;m=p;do if(p){n=c[p+12>>2]|0;if((n|0)==(c[p+16>>2]|0))n=Gb[c[(c[p>>2]|0)+36>>2]&127](p)|0;else n=cg(a[n>>0]|0)|0;if(!(_f(n,Wf()|0)|0))if(o)break;else{y=63;break a}else{c[f>>2]=0;m=0;y=15;break}}else y=15;while(0);if((y|0)==15){y=0;if(o){y=63;break}else p=0}b:do if((Jb[c[(c[t>>2]|0)+36>>2]&63](t,a[j>>0]|0,0)|0)<<24>>24==37){p=j+1|0;if((p|0)==(k|0)){y=63;break a}n=Jb[c[(c[t>>2]|0)+36>>2]&63](t,a[p>>0]|0,0)|0;switch(n<<24>>24){case 48:case 69:{j=j+2|0;if((j|0)==(k|0)){y=63;break a}o=n;l=Jb[c[(c[t>>2]|0)+36>>2]&63](t,a[j>>0]|0,0)|0;j=p;break}default:{o=0;l=n}}p=c[(c[d>>2]|0)+36>>2]|0;c[w>>2]=q;c[x>>2]=m;c[r>>2]=c[w>>2];c[s>>2]=c[x>>2];q=Qb[p&15](d,r,s,g,h,i,l,o)|0;c[e>>2]=q;j=j+2|0}else{m=a[j>>0]|0;if(m<<24>>24>-1?(v=c[u>>2]|0,b[v+(m<<24>>24<<1)>>1]&8192):0){do{j=j+1|0;if((j|0)==(k|0)){j=k;break}m=a[j>>0]|0;if(m<<24>>24<=-1)break}while((b[v+(m<<24>>24<<1)>>1]&8192)!=0);while(1){if(l){m=c[l+12>>2]|0;if((m|0)==(c[l+16>>2]|0))m=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=cg(a[m>>0]|0)|0;if(_f(m,Wf()|0)|0){c[e>>2]=0;l=0;n=1}else n=0}else{l=0;n=1}do if(p){m=c[p+12>>2]|0;if((m|0)==(c[p+16>>2]|0))m=Gb[c[(c[p>>2]|0)+36>>2]&127](p)|0;else m=cg(a[m>>0]|0)|0;if(!(_f(m,Wf()|0)|0))if(n)break;else break b;else{c[f>>2]=0;y=42;break}}else y=42;while(0);if((y|0)==42){y=0;if(n)break b;else p=0}n=l+12|0;m=c[n>>2]|0;o=l+16|0;if((m|0)==(c[o>>2]|0))m=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=cg(a[m>>0]|0)|0;if((m&255)<<24>>24<=-1)break b;if(!(b[(c[u>>2]|0)+(m<<24>>24<<1)>>1]&8192))break b;m=c[n>>2]|0;if((m|0)==(c[o>>2]|0))Gb[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[n>>2]=m+1;cg(a[m>>0]|0)|0}}}n=l+12|0;m=c[n>>2]|0;o=l+16|0;if((m|0)==(c[o>>2]|0))m=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=cg(a[m>>0]|0)|0;q=Ib[c[(c[t>>2]|0)+12>>2]&63](t,m&255)|0;if(q<<24>>24!=(Ib[c[(c[t>>2]|0)+12>>2]&63](t,a[j>>0]|0)|0)<<24>>24){c[h>>2]=4;break}m=c[n>>2]|0;if((m|0)==(c[o>>2]|0))Gb[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[n>>2]=m+1;cg(a[m>>0]|0)|0}j=j+1|0}while(0);m=c[h>>2]|0}if((y|0)==63)c[h>>2]=4;if(l){j=c[l+12>>2]|0;if((j|0)==(c[l+16>>2]|0))j=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else j=cg(a[j>>0]|0)|0;if(_f(j,Wf()|0)|0){c[e>>2]=0;l=0;n=1}else n=0}else{l=0;n=1}j=c[f>>2]|0;do if(j){m=c[j+12>>2]|0;if((m|0)==(c[j+16>>2]|0))j=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else j=cg(a[m>>0]|0)|0;if(!(_f(j,Wf()|0)|0))if(n)break;else{y=78;break}else{c[f>>2]=0;y=76;break}}else y=76;while(0);if((y|0)==76?n:0)y=78;if((y|0)==78)c[h>>2]=c[h>>2]|2;zb=z;return l|0}function fI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<31&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function gI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<24&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function hI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<12&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function iI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,3)|0;d=c[f>>2]|0;if((a|0)<366&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;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,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<13&(d&4|0)==0)c[b>>2]=a+-1;else c[f>>2]=d|4;zb=h;return}function kI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<60&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function lI(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;j=h+8|0;a:while(1){d=c[e>>2]|0;do if(d){h=c[d+12>>2]|0;if((h|0)==(c[d+16>>2]|0))d=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0;else d=cg(a[h>>0]|0)|0;if(_f(d,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);i=c[f>>2]|0;do if(i){d=c[i+12>>2]|0;if((d|0)==(c[i+16>>2]|0))d=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else d=cg(a[d>>0]|0)|0;if(!(_f(d,Wf()|0)|0))if(h)break;else break a;else{c[f>>2]=0;k=15;break}}else k=15;while(0);if((k|0)==15){k=0;if(h){i=0;break}else i=0}d=c[e>>2]|0;h=c[d+12>>2]|0;if((h|0)==(c[d+16>>2]|0))d=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0;else d=cg(a[h>>0]|0)|0;if((d&255)<<24>>24<=-1)break;if(!(b[(c[j>>2]|0)+(d<<24>>24<<1)>>1]&8192))break;d=c[e>>2]|0;h=d+12|0;i=c[h>>2]|0;if((i|0)==(c[d+16>>2]|0))Gb[c[(c[d>>2]|0)+40>>2]&127](d)|0;else{c[h>>2]=i+1;cg(a[i>>0]|0)|0}}d=c[e>>2]|0;do if(d){h=c[d+12>>2]|0;if((h|0)==(c[d+16>>2]|0))d=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0;else d=cg(a[h>>0]|0)|0;if(_f(d,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);do if(i){d=c[i+12>>2]|0;if((d|0)==(c[i+16>>2]|0))d=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else d=cg(a[d>>0]|0)|0;if(!(_f(d,Wf()|0)|0))if(h)break;else{k=41;break}else{c[f>>2]=0;k=39;break}}else k=39;while(0);if((k|0)==39?h:0)k=41;if((k|0)==41)c[g>>2]=c[g>>2]|2;return}function mI(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;m=zb;zb=zb+16|0;k=m+4|0;l=m;j=b+8|0;j=Gb[c[(c[j>>2]|0)+8>>2]&127](j)|0;b=a[j+11>>0]|0;if(b<<24>>24<0)i=c[j+4>>2]|0;else i=b&255;b=a[j+12+11>>0]|0;if(b<<24>>24<0)b=c[j+16>>2]|0;else b=b&255;do if((i|0)!=(0-b|0)){c[l>>2]=c[f>>2];c[k>>2]=c[l>>2];b=(FG(e,k,j,j+24|0,h,g,0)|0)-j|0;i=c[d>>2]|0;if((i|0)==12&(b|0)==0){c[d>>2]=0;break}if((i|0)<12&(b|0)==12)c[d>>2]=i+12}else c[g>>2]=c[g>>2]|4;while(0);zb=m;return}function nI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<61&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function oI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,1)|0;d=c[f>>2]|0;if((a|0)<7&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function pI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,4)|0;if(!(c[f>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a|0)<100?a+1900|0:a;c[b>>2]=a+-1900}zb=h;return}function qI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,4)|0;if(!(c[f>>2]&4))c[b>>2]=a+-1900;zb=h;return}function rI(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;b=c[d>>2]|0;do if(b){h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[h>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;i=1;break}else{i=(c[d>>2]|0)==0;break}}else i=1;while(0);h=c[e>>2]|0;do if(h){b=c[h+12>>2]|0;if((b|0)==(c[h+16>>2]|0))b=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(i){j=h;k=17;break}else{k=16;break}else{c[e>>2]=0;k=14;break}}else k=14;while(0);if((k|0)==14)if(i)k=16;else{j=0;k=17}a:do if((k|0)==16)c[f>>2]=c[f>>2]|6;else if((k|0)==17){b=c[d>>2]|0;h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[h>>0]|0)|0;if((Jb[c[(c[g>>2]|0)+36>>2]&63](g,b&255,0)|0)<<24>>24!=37){c[f>>2]=c[f>>2]|4;break}b=c[d>>2]|0;h=b+12|0;i=c[h>>2]|0;if((i|0)==(c[b+16>>2]|0))Gb[c[(c[b>>2]|0)+40>>2]&127](b)|0;else{c[h>>2]=i+1;cg(a[i>>0]|0)|0}b=c[d>>2]|0;do if(b){h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[h>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;h=1;break}else{h=(c[d>>2]|0)==0;break}}else h=1;while(0);do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(h)break a;else break;else{c[e>>2]=0;k=38;break}}else k=38;while(0);if((k|0)==38?!h:0)break;c[f>>2]=c[f>>2]|2}while(0);return}function sI(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=c[d>>2]|0;do if(i){j=c[i+12>>2]|0;if((j|0)==(c[i+16>>2]|0))i=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else i=cg(a[j>>0]|0)|0;if(_f(i,Wf()|0)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);j=c[e>>2]|0;do if(j){i=c[j+12>>2]|0;if((i|0)==(c[j+16>>2]|0))i=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else i=cg(a[i>>0]|0)|0;if(!(_f(i,Wf()|0)|0))if(k){q=17;break}else{q=16;break}else{c[e>>2]=0;q=14;break}}else q=14;while(0);if((q|0)==14)if(k)q=16;else{j=0;q=17}a:do if((q|0)==16){c[f>>2]=c[f>>2]|6;i=0}else if((q|0)==17){i=c[d>>2]|0;k=c[i+12>>2]|0;if((k|0)==(c[i+16>>2]|0))i=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else i=cg(a[k>>0]|0)|0;k=i&255;if(k<<24>>24>-1?(p=g+8|0,b[(c[p>>2]|0)+(i<<24>>24<<1)>>1]&2048):0){i=(Jb[c[(c[g>>2]|0)+36>>2]&63](g,k,0)|0)<<24>>24;k=c[d>>2]|0;l=k+12|0;m=c[l>>2]|0;if((m|0)==(c[k+16>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=m+1;cg(a[m>>0]|0)|0}n=j;m=j;while(1){i=i+-48|0;o=h+-1|0;j=c[d>>2]|0;do if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))j=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else j=cg(a[k>>0]|0)|0;if(_f(j,Wf()|0)|0){c[d>>2]=0;l=1;break}else{l=(c[d>>2]|0)==0;break}}else l=1;while(0);if(m){j=c[m+12>>2]|0;if((j|0)==(c[m+16>>2]|0))j=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else j=cg(a[j>>0]|0)|0;if(_f(j,Wf()|0)|0){c[e>>2]=0;j=1;n=0;m=0}else j=0}else{j=1;m=0}k=c[d>>2]|0;if(!((h|0)>1&(l^j)))break;j=c[k+12>>2]|0;if((j|0)==(c[k+16>>2]|0))j=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else j=cg(a[j>>0]|0)|0;k=j&255;if(k<<24>>24<=-1)break a;if(!(b[(c[p>>2]|0)+(j<<24>>24<<1)>>1]&2048))break a;i=(i*10|0)+((Jb[c[(c[g>>2]|0)+36>>2]&63](g,k,0)|0)<<24>>24)|0;j=c[d>>2]|0;k=j+12|0;l=c[k>>2]|0;if((l|0)==(c[j+16>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=l+1;cg(a[l>>0]|0)|0}h=o}do if(k){j=c[k+12>>2]|0;if((j|0)==(c[k+16>>2]|0))j=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else j=cg(a[j>>0]|0)|0;if(_f(j,Wf()|0)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);do if(n){j=c[n+12>>2]|0;if((j|0)==(c[n+16>>2]|0))j=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else j=cg(a[j>>0]|0)|0;if(!(_f(j,Wf()|0)|0))if(k)break a;else break;else{c[e>>2]=0;q=63;break}}else q=63;while(0);if((q|0)==63?!k:0)break;c[f>>2]=c[f>>2]|2;break}c[f>>2]=c[f>>2]|4;i=0}while(0);return i|0}function tI(a){a=a|0;CF(a);return}function uI(a){a=a|0;CF(a);SA(a);return}function vI(a){a=a|0;return 2}function wI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=PI(a,j,i,e,f,g,13152,13184)|0;zb=h;return g|0}function xI(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=zb;zb=zb+16|0;j=i+12|0;k=i+8|0;m=i+4|0;l=i;n=b+8|0;n=Gb[c[(c[n>>2]|0)+20>>2]&127](n)|0;c[m>>2]=c[d>>2];c[l>>2]=c[e>>2];e=a[n+8+3>>0]|0;o=e<<24>>24<0;d=o?c[n>>2]|0:n;e=d+((o?c[n+4>>2]|0:e&255)<<2)|0;c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];h=PI(b,k,j,f,g,h,d,e)|0;zb=i;return h|0}function yI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56768)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];NI(a,g+24|0,b,i,f,e);zb=h;return c[b>>2]|0}function zI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56768)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];OI(a,g+16|0,b,i,f,e);zb=h;return c[b>>2]|0}function AI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56768)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];_I(a,g+20|0,b,i,f,e);zb=h;return c[b>>2]|0}function BI(b,d,e,f,g,h,i,j){b=b|0;d=d|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,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;R=zb;zb=zb+144|0;k=R+128|0;j=R+112|0;P=R+124|0;Q=R+120|0;l=R+116|0;m=R+108|0;n=R+104|0;o=R+100|0;p=R+96|0;q=R+92|0;r=R+88|0;s=R+84|0;t=R+80|0;u=R+76|0;v=R+72|0;w=R+68|0;x=R+64|0;y=R+60|0;z=R+56|0;A=R+52|0;B=R+48|0;C=R+44|0;D=R+40|0;E=R+36|0;F=R+32|0;G=R+28|0;H=R+24|0;I=R+20|0;J=R+16|0;K=R+12|0;L=R+8|0;M=R+4|0;N=R;c[g>>2]=0;IE(k,f);O=XF(k,56768)|0;YF(k);do switch(i<<24>>24|0){case 65:case 97:{c[P>>2]=c[e>>2];c[k>>2]=c[P>>2];NI(b,h+24|0,d,k,g,O);S=26;break}case 104:case 66:case 98:{c[Q>>2]=c[e>>2];c[k>>2]=c[Q>>2];OI(b,h+16|0,d,k,g,O);S=26;break}case 99:{Q=b+8|0;Q=Gb[c[(c[Q>>2]|0)+12>>2]&127](Q)|0;c[l>>2]=c[d>>2];c[m>>2]=c[e>>2];S=a[Q+8+3>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+((e?c[Q+4>>2]|0:S&255)<<2)|0;c[j>>2]=c[l>>2];c[k>>2]=c[m>>2];S=PI(b,j,k,f,g,h,i,S)|0;c[d>>2]=S;S=26;break}case 101:case 100:{c[n>>2]=c[e>>2];c[k>>2]=c[n>>2];QI(b,h+12|0,d,k,g,O);S=26;break}case 68:{c[o>>2]=c[d>>2];c[p>>2]=c[e>>2];c[j>>2]=c[o>>2];c[k>>2]=c[p>>2];S=PI(b,j,k,f,g,h,12976,13008)|0;c[d>>2]=S;S=26;break}case 70:{c[q>>2]=c[d>>2];c[r>>2]=c[e>>2];c[j>>2]=c[q>>2];c[k>>2]=c[r>>2];S=PI(b,j,k,f,g,h,13008,13040)|0;c[d>>2]=S;S=26;break}case 72:{c[s>>2]=c[e>>2];c[k>>2]=c[s>>2];RI(b,h+8|0,d,k,g,O);S=26;break}case 73:{c[t>>2]=c[e>>2];c[k>>2]=c[t>>2];SI(b,h+8|0,d,k,g,O);S=26;break}case 106:{c[u>>2]=c[e>>2];c[k>>2]=c[u>>2];TI(b,h+28|0,d,k,g,O);S=26;break}case 109:{c[v>>2]=c[e>>2];c[k>>2]=c[v>>2];UI(b,h+16|0,d,k,g,O);S=26;break}case 77:{c[w>>2]=c[e>>2];c[k>>2]=c[w>>2];VI(b,h+4|0,d,k,g,O);S=26;break}case 116:case 110:{c[x>>2]=c[e>>2];c[k>>2]=c[x>>2];WI(b,d,k,g,O);S=26;break}case 112:{c[y>>2]=c[e>>2];c[k>>2]=c[y>>2];XI(b,h+8|0,d,k,g,O);S=26;break}case 114:{c[z>>2]=c[d>>2];c[A>>2]=c[e>>2];c[j>>2]=c[z>>2];c[k>>2]=c[A>>2];S=PI(b,j,k,f,g,h,13040,13084)|0;c[d>>2]=S;S=26;break}case 82:{c[B>>2]=c[d>>2];c[C>>2]=c[e>>2];c[j>>2]=c[B>>2];c[k>>2]=c[C>>2];S=PI(b,j,k,f,g,h,13088,13108)|0;c[d>>2]=S;S=26;break}case 83:{c[D>>2]=c[e>>2];c[k>>2]=c[D>>2];YI(b,h,d,k,g,O);S=26;break}case 84:{c[E>>2]=c[d>>2];c[F>>2]=c[e>>2];c[j>>2]=c[E>>2];c[k>>2]=c[F>>2];S=PI(b,j,k,f,g,h,13120,13152)|0;c[d>>2]=S;S=26;break}case 119:{c[G>>2]=c[e>>2];c[k>>2]=c[G>>2];ZI(b,h+24|0,d,k,g,O);S=26;break}case 120:{i=c[(c[b>>2]|0)+20>>2]|0;c[H>>2]=c[d>>2];c[I>>2]=c[e>>2];c[j>>2]=c[H>>2];c[k>>2]=c[I>>2];j=Ob[i&63](b,j,k,f,g,h)|0;break}case 88:{Q=b+8|0;Q=Gb[c[(c[Q>>2]|0)+24>>2]&127](Q)|0;c[J>>2]=c[d>>2];c[K>>2]=c[e>>2];S=a[Q+8+3>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+((e?c[Q+4>>2]|0:S&255)<<2)|0;c[j>>2]=c[J>>2];c[k>>2]=c[K>>2];S=PI(b,j,k,f,g,h,i,S)|0;c[d>>2]=S;S=26;break}case 121:{c[L>>2]=c[e>>2];c[k>>2]=c[L>>2];_I(b,h+20|0,d,k,g,O);S=26;break}case 89:{c[M>>2]=c[e>>2];c[k>>2]=c[M>>2];$I(b,h+20|0,d,k,g,O);S=26;break}case 37:{c[N>>2]=c[e>>2];c[k>>2]=c[N>>2];aJ(b,d,k,g,O);S=26;break}default:{c[g>>2]=c[g>>2]|4;S=26}}while(0);if((S|0)==26)j=c[d>>2]|0;zb=R;return j|0}function CI(b){b=b|0;if((a[54952]|0)==0?nB(54952)|0:0){MI();c[14233]=54352;pB(54952)}return c[14233]|0}function DI(b){b=b|0;if((a[54936]|0)==0?nB(54936)|0:0){LI();c[14232]=54064;pB(54936)}return c[14232]|0}function EI(b){b=b|0;if((a[54920]|0)==0?nB(54920)|0:0){KI();c[14231]=54032;pB(54920)}return c[14231]|0}function FI(b){b=b|0;if((a[54912]|0)==0?nB(54912)|0:0){c[14228]=0;c[14229]=0;c[14230]=0;tO(56912,17648,JI(17648)|0);pB(54912)}return 56912}function GI(b){b=b|0;if((a[54904]|0)==0?nB(54904)|0:0){c[14225]=0;c[14226]=0;c[14227]=0;tO(56900,17600,JI(17600)|0);pB(54904)}return 56900}function HI(b){b=b|0;if((a[54896]|0)==0?nB(54896)|0:0){c[14222]=0;c[14223]=0;c[14224]=0;tO(56888,17564,JI(17564)|0);pB(54896)}return 56888}function II(b){b=b|0;if((a[54888]|0)==0?nB(54888)|0:0){c[14219]=0;c[14220]=0;c[14221]=0;tO(56876,17528,JI(17528)|0);pB(54888)}return 56876}function JI(a){a=a|0;return ly(a)|0}function KI(){var b=0,d=0;if((a[54928]|0)==0?nB(54928)|0:0){d=54032;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=54056);pB(54928)}AO(54032,17732)|0;AO(54044,17744)|0;return}function LI(){var b=0,d=0;if((a[54944]|0)==0?nB(54944)|0:0){d=54064;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=54352);pB(54944)}AO(54064,17756)|0;AO(54076,17788)|0;AO(54088,17824)|0;AO(54100,17848)|0;AO(54112,17872)|0;AO(54124,17888)|0;AO(54136,17908)|0;AO(54148,17928)|0;AO(54160,17956)|0;AO(54172,17996)|0;AO(54184,18028)|0;AO(54196,18064)|0;AO(54208,18100)|0;AO(54220,18116)|0;AO(54232,18132)|0;AO(54244,18148)|0;AO(54256,17872)|0;AO(54268,18164)|0;AO(54280,18180)|0;AO(54292,18196)|0;AO(54304,18212)|0;AO(54316,18228)|0;AO(54328,18244)|0;AO(54340,18260)|0;return}function MI(){var b=0,d=0;if((a[54960]|0)==0?nB(54960)|0:0){d=54352;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=54520);pB(54960)}AO(54352,18276)|0;AO(54364,18304)|0;AO(54376,18332)|0;AO(54388,18364)|0;AO(54400,18404)|0;AO(54412,18440)|0;AO(54424,18468)|0;AO(54436,18504)|0;AO(54448,18520)|0;AO(54460,18536)|0;AO(54472,18552)|0;AO(54484,18568)|0;AO(54496,18584)|0;AO(54508,18600)|0;return}function NI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;a=a+8|0;a=Gb[c[c[a>>2]>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];a=(gH(d,i,a,a+168|0,g,f,0)|0)-a|0;if((a|0)<168)c[b>>2]=((a|0)/12|0|0)%7|0;zb=h;return}function OI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;a=a+8|0;a=Gb[c[(c[a>>2]|0)+4>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];a=(gH(d,i,a,a+288|0,g,f,0)|0)-a|0;if((a|0)<288)c[b>>2]=((a|0)/12|0|0)%12|0;zb=h;return}function PI(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=zb;zb=zb+16|0;q=v+12|0;p=v+8|0;s=v+4|0;t=v;IE(q,e);r=XF(q,56768)|0;YF(q);c[f>>2]=0;k=0;a:while(1){j=c[b>>2]|0;if(!((h|0)!=(i|0)&(k|0)==0))break;l=j;if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))k=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=jE(c[k>>2]|0)|0;if(JE(k,iE()|0)|0){c[b>>2]=0;j=0;m=1;o=0}else{m=0;o=l}}else{j=0;m=1;o=l}n=c[d>>2]|0;k=n;do if(n){l=c[n+12>>2]|0;if((l|0)==(c[n+16>>2]|0))l=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else l=jE(c[l>>2]|0)|0;if(!(JE(l,iE()|0)|0))if(m)break;else{u=60;break a}else{c[d>>2]=0;k=0;u=15;break}}else u=15;while(0);if((u|0)==15){u=0;if(m){u=60;break}else n=0}b:do if((Jb[c[(c[r>>2]|0)+52>>2]&63](r,c[h>>2]|0,0)|0)<<24>>24==37){n=h+4|0;if((n|0)==(i|0)){u=60;break a}l=Jb[c[(c[r>>2]|0)+52>>2]&63](r,c[n>>2]|0,0)|0;switch(l<<24>>24){case 48:case 69:{h=h+8|0;if((h|0)==(i|0)){u=60;break a}m=l;j=Jb[c[(c[r>>2]|0)+52>>2]&63](r,c[h>>2]|0,0)|0;h=n;break}default:{m=0;j=l}}n=c[(c[a>>2]|0)+36>>2]|0;c[s>>2]=o;c[t>>2]=k;c[p>>2]=c[s>>2];c[q>>2]=c[t>>2];o=Qb[n&15](a,p,q,e,f,g,j,m)|0;c[b>>2]=o;h=h+8|0}else{if(!(Jb[c[(c[r>>2]|0)+12>>2]&63](r,8192,c[h>>2]|0)|0)){l=j+12|0;k=c[l>>2]|0;m=j+16|0;if((k|0)==(c[m>>2]|0))k=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=jE(c[k>>2]|0)|0;o=Ib[c[(c[r>>2]|0)+28>>2]&63](r,k)|0;if((o|0)!=(Ib[c[(c[r>>2]|0)+28>>2]&63](r,c[h>>2]|0)|0)){c[f>>2]=4;break}k=c[l>>2]|0;if((k|0)==(c[m>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[l>>2]=k+4;jE(c[k>>2]|0)|0}h=h+4|0;break}do{h=h+4|0;if((h|0)==(i|0)){h=i;break}}while(Jb[c[(c[r>>2]|0)+12>>2]&63](r,8192,c[h>>2]|0)|0);while(1){if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))k=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=jE(c[k>>2]|0)|0;if(JE(k,iE()|0)|0){c[b>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}do if(n){k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=jE(c[k>>2]|0)|0;if(!(JE(k,iE()|0)|0))if(l)break;else break b;else{c[d>>2]=0;u=40;break}}else u=40;while(0);if((u|0)==40){u=0;if(l)break b;else n=0}l=j+12|0;k=c[l>>2]|0;m=j+16|0;if((k|0)==(c[m>>2]|0))k=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=jE(c[k>>2]|0)|0;if(!(Jb[c[(c[r>>2]|0)+12>>2]&63](r,8192,k)|0))break b;k=c[l>>2]|0;if((k|0)==(c[m>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[l>>2]=k+4;jE(c[k>>2]|0)|0}}}while(0);k=c[f>>2]|0}if((u|0)==60)c[f>>2]=4;if(j){h=c[j+12>>2]|0;if((h|0)==(c[j+16>>2]|0))h=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else h=jE(c[h>>2]|0)|0;if(JE(h,iE()|0)|0){c[b>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}h=c[d>>2]|0;do if(h){k=c[h+12>>2]|0;if((k|0)==(c[h+16>>2]|0))h=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=jE(c[k>>2]|0)|0;if(!(JE(h,iE()|0)|0))if(l)break;else{u=75;break}else{c[d>>2]=0;u=73;break}}else u=73;while(0);if((u|0)==73?l:0)u=75;if((u|0)==75)c[f>>2]=c[f>>2]|2;zb=v;return j|0}function QI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<31&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function RI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<24&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function SI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<12&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function TI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,3)|0;d=c[f>>2]|0;if((a|0)<366&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function UI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<13&(d&4|0)==0)c[b>>2]=a+-1;else c[f>>2]=d|4;zb=h;return}function VI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<60&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function WI(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;a:while(1){a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(JE(a,iE()|0)|0){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);g=c[d>>2]|0;do if(g){a=c[g+12>>2]|0;if((a|0)==(c[g+16>>2]|0))a=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else a=jE(c[a>>2]|0)|0;if(!(JE(a,iE()|0)|0))if(h){h=g;break}else{h=g;break a}else{c[d>>2]=0;i=15;break}}else i=15;while(0);if((i|0)==15){i=0;if(h){h=0;break}else h=0}a=c[b>>2]|0;g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(!(Jb[c[(c[f>>2]|0)+12>>2]&63](f,8192,a)|0))break;a=c[b>>2]|0;g=a+12|0;h=c[g>>2]|0;if((h|0)==(c[a+16>>2]|0))Gb[c[(c[a>>2]|0)+40>>2]&127](a)|0;else{c[g>>2]=h+4;jE(c[h>>2]|0)|0}}a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(JE(a,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){a=c[h+12>>2]|0;if((a|0)==(c[h+16>>2]|0))a=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else a=jE(c[a>>2]|0)|0;if(!(JE(a,iE()|0)|0))if(g)break;else{i=40;break}else{c[d>>2]=0;i=38;break}}else i=38;while(0);if((i|0)==38?g:0)i=40;if((i|0)==40)c[e>>2]=c[e>>2]|2;return}function XI(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;m=zb;zb=zb+16|0;k=m+4|0;l=m;j=b+8|0;j=Gb[c[(c[j>>2]|0)+8>>2]&127](j)|0;b=a[j+8+3>>0]|0;if(b<<24>>24<0)i=c[j+4>>2]|0;else i=b&255;b=a[j+20+3>>0]|0;if(b<<24>>24<0)b=c[j+16>>2]|0;else b=b&255;do if((i|0)!=(0-b|0)){c[l>>2]=c[f>>2];c[k>>2]=c[l>>2];b=(gH(e,k,j,j+24|0,h,g,0)|0)-j|0;i=c[d>>2]|0;if((i|0)==12&(b|0)==0){c[d>>2]=0;break}if((i|0)<12&(b|0)==12)c[d>>2]=i+12}else c[g>>2]=c[g>>2]|4;while(0);zb=m;return}function YI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<61&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function ZI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,1)|0;d=c[f>>2]|0;if((a|0)<7&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function _I(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,4)|0;if(!(c[f>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a|0)<100?a+1900|0:a;c[b>>2]=a+-1900}zb=h;return}function $I(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,4)|0;if(!(c[f>>2]&4))c[b>>2]=a+-1900;zb=h;return}function aJ(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;a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(JE(a,iE()|0)|0){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);g=c[d>>2]|0;do if(g){a=c[g+12>>2]|0;if((a|0)==(c[g+16>>2]|0))a=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else a=jE(c[a>>2]|0)|0;if(!(JE(a,iE()|0)|0))if(h){i=g;j=17;break}else{j=16;break}else{c[d>>2]=0;j=14;break}}else j=14;while(0);if((j|0)==14)if(h)j=16;else{i=0;j=17}a:do if((j|0)==16)c[e>>2]=c[e>>2]|6;else if((j|0)==17){a=c[b>>2]|0;g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if((Jb[c[(c[f>>2]|0)+52>>2]&63](f,a,0)|0)<<24>>24!=37){c[e>>2]=c[e>>2]|4;break}a=c[b>>2]|0;g=a+12|0;h=c[g>>2]|0;if((h|0)==(c[a+16>>2]|0))Gb[c[(c[a>>2]|0)+40>>2]&127](a)|0;else{c[g>>2]=h+4;jE(c[h>>2]|0)|0}a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(JE(a,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(i){a=c[i+12>>2]|0;if((a|0)==(c[i+16>>2]|0))a=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else a=jE(c[a>>2]|0)|0;if(!(JE(a,iE()|0)|0))if(g)break a;else break;else{c[d>>2]=0;j=38;break}}else j=38;while(0);if((j|0)==38?!g:0)break;c[e>>2]=c[e>>2]|2}while(0);return}function bJ(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;g=c[a>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=jE(c[h>>2]|0)|0;if(JE(g,iE()|0)|0){c[a>>2]=0;i=1;break}else{i=(c[a>>2]|0)==0;break}}else i=1;while(0);h=c[b>>2]|0;do if(h){g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0))g=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else g=jE(c[g>>2]|0)|0;if(!(JE(g,iE()|0)|0))if(i){n=17;break}else{n=16;break}else{c[b>>2]=0;n=14;break}}else n=14;while(0);if((n|0)==14)if(i)n=16;else{h=0;n=17}a:do if((n|0)==16){c[d>>2]=c[d>>2]|6;g=0}else if((n|0)==17){g=c[a>>2]|0;i=c[g+12>>2]|0;if((i|0)==(c[g+16>>2]|0))g=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=jE(c[i>>2]|0)|0;if(!(Jb[c[(c[e>>2]|0)+12>>2]&63](e,2048,g)|0)){c[d>>2]=c[d>>2]|4;g=0;break}g=(Jb[c[(c[e>>2]|0)+52>>2]&63](e,g,0)|0)<<24>>24;i=c[a>>2]|0;j=i+12|0;k=c[j>>2]|0;if((k|0)==(c[i+16>>2]|0))Gb[c[(c[i>>2]|0)+40>>2]&127](i)|0;else{c[j>>2]=k+4;jE(c[k>>2]|0)|0}l=h;k=h;while(1){g=g+-48|0;m=f+-1|0;h=c[a>>2]|0;do if(h){i=c[h+12>>2]|0;if((i|0)==(c[h+16>>2]|0))h=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=jE(c[i>>2]|0)|0;if(JE(h,iE()|0)|0){c[a>>2]=0;j=1;break}else{j=(c[a>>2]|0)==0;break}}else j=1;while(0);if(k){h=c[k+12>>2]|0;if((h|0)==(c[k+16>>2]|0))h=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else h=jE(c[h>>2]|0)|0;if(JE(h,iE()|0)|0){c[b>>2]=0;h=1;l=0;k=0}else h=0}else{h=1;k=0}i=c[a>>2]|0;if(!((f|0)>1&(j^h)))break;h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=jE(c[h>>2]|0)|0;if(!(Jb[c[(c[e>>2]|0)+12>>2]&63](e,2048,h)|0))break a;g=(g*10|0)+((Jb[c[(c[e>>2]|0)+52>>2]&63](e,h,0)|0)<<24>>24)|0;h=c[a>>2]|0;i=h+12|0;j=c[i>>2]|0;if((j|0)==(c[h+16>>2]|0))Gb[c[(c[h>>2]|0)+40>>2]&127](h)|0;else{c[i>>2]=j+4;jE(c[j>>2]|0)|0}f=m}do if(i){h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=jE(c[h>>2]|0)|0;if(JE(h,iE()|0)|0){c[a>>2]=0;i=1;break}else{i=(c[a>>2]|0)==0;break}}else i=1;while(0);do if(l){h=c[l+12>>2]|0;if((h|0)==(c[l+16>>2]|0))h=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else h=jE(c[h>>2]|0)|0;if(!(JE(h,iE()|0)|0))if(i)break a;else break;else{c[b>>2]=0;n=61;break}}else n=61;while(0);if((n|0)==61?!i:0)break;c[d>>2]=c[d>>2]|2}while(0);return g|0}function cJ(a){a=a|0;hJ(a+8|0);CF(a);return}function dJ(a){a=a|0;hJ(a+8|0);CF(a);SA(a);return}function eJ(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;j=zb;zb=zb+112|0;e=j;f=j+100|0;c[f>>2]=e+100;fJ(b+8|0,e,f,g,h,i);i=c[f>>2]|0;h=e;e=c[d>>2]|0;while(1){if((h|0)==(i|0))break;f=a[h>>0]|0;if(!e)e=0;else{b=e+24|0;g=c[b>>2]|0;if((g|0)==(c[e+28>>2]|0)){d=c[(c[e>>2]|0)+52>>2]|0;f=cg(f)|0;f=Ib[d&63](e,f)|0}else{c[b>>2]=g+1;a[g>>0]=f;f=cg(f)|0}d=_f(f,Wf()|0)|0;e=d?0:e}h=h+1|0}zb=j;return e|0}function fJ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;l=zb;zb=zb+16|0;i=l;a[i>>0]=37;j=i+1|0;a[j>>0]=g;k=i+2|0;a[k>>0]=h;a[i+3>>0]=0;if(h<<24>>24){a[j>>0]=h;a[k>>0]=g}k=gJ(d,c[e>>2]|0)|0;k=d+(Sa(d|0,k|0,i|0,f|0,c[b>>2]|0)|0)|0;c[e>>2]=k;zb=l;return}function gJ(a,b){a=a|0;b=b|0;return b-a|0}function hJ(a){a=a|0;var b=0;b=c[a>>2]|0;if((b|0)!=(_F()|0))Vy(c[a>>2]|0);return}function iJ(a){a=a|0;hJ(a+8|0);CF(a);return}function jJ(a){a=a|0;hJ(a+8|0);CF(a);SA(a);return}function kJ(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=zb;zb=zb+416|0;d=i;e=i+400|0;c[e>>2]=d+400;lJ(a+8|0,d,e,f,g,h);h=c[e>>2]|0;g=d;d=c[b>>2]|0;while(1){if((g|0)==(h|0))break;e=c[g>>2]|0;if(!d)d=0;else{a=d+24|0;f=c[a>>2]|0;if((f|0)==(c[d+28>>2]|0)){b=c[(c[d>>2]|0)+52>>2]|0;e=jE(e)|0;e=Ib[b&63](d,e)|0}else{c[a>>2]=f+4;c[f>>2]=e;e=jE(e)|0}b=JE(e,iE()|0)|0;d=b?0:d}g=g+4|0}zb=i;return d|0}function lJ(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+128|0;k=h;l=h+116|0;i=h+104|0;j=h+112|0;c[l>>2]=k+100;fJ(a,k,l,e,f,g);e=i;c[e>>2]=0;c[e+4>>2]=0;c[j>>2]=k;e=mJ(b,c[d>>2]|0)|0;a=ez(c[a>>2]|0)|0;e=Sz(b,j,e,i)|0;if(a|0)ez(a)|0;if((e|0)==-1)nJ(0);else{c[d>>2]=b+(e<<2);zb=h;return}}function mJ(a,b){a=a|0;b=b|0;return b-a>>2|0}function nJ(a){a=a|0;ua()}function oJ(a){a=a|0;CF(a);return}function pJ(a){a=a|0;CF(a);SA(a);return}function qJ(a){a=a|0;return 127}function rJ(a){a=a|0;return 127}function sJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function tJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function uJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function vJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;hO(a,1,45);return}function wJ(a){a=a|0;return 0}function xJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function yJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function zJ(a){a=a|0;CF(a);return}function AJ(a){a=a|0;CF(a);SA(a);return}function BJ(a){a=a|0;return 127}function CJ(a){a=a|0;return 127}function DJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function EJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function FJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function GJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;hO(a,1,45);return}function HJ(a){a=a|0;return 0}function IJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function JJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function KJ(a){a=a|0;CF(a);return}function LJ(a){a=a|0;CF(a);SA(a);return}function MJ(a){a=a|0;return 2147483647}function NJ(a){a=a|0;return 2147483647}function OJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function PJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function QJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function RJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;uO(a,1,45);return}function SJ(a){a=a|0;return 0}function TJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function UJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function VJ(a){a=a|0;CF(a);return}function WJ(a){a=a|0;CF(a);SA(a);return}function XJ(a){a=a|0;return 2147483647}function YJ(a){a=a|0;return 2147483647}function ZJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function _J(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function $J(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function aK(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;uO(a,1,45);return}function bK(a){a=a|0;return 0}function cK(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function dK(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function eK(a){a=a|0;CF(a);return}function fK(a){a=a|0;CF(a);SA(a);return}function gK(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=zb;zb=zb+256|0;n=v+240|0;q=v+216|0;m=v+112|0;u=v+232|0;p=v+228|0;s=v+224|0;j=v+250|0;w=v+220|0;o=v;c[u>>2]=m;c[u+4>>2]=145;IE(s,g);b=XF(s,56736)|0;a[j>>0]=0;c[w>>2]=c[e>>2];l=c[g+4>>2]|0;c[n>>2]=c[w>>2];if(jK(d,n,f,s,l,h,j,b,u,p,m+100|0)|0){Kb[c[(c[b>>2]|0)+32>>2]&15](b,50465,50475,n)|0;l=c[p>>2]|0;f=c[u>>2]|0;b=l-f|0;if((b|0)>98){b=FO(b+2|0)|0;if(!b)aO();else{k=b;r=b}}else{k=o;r=0}if(!(a[j>>0]|0))b=k;else{a[k>>0]=45;b=k+1|0}k=n+10|0;m=n;j=f;g=b;b=l;while(1){if(j>>>0>=b>>>0)break;f=a[j>>0]|0;b=n;while(1){if((b|0)==(k|0)){b=k;break}if((a[b>>0]|0)==f<<24>>24)break;b=b+1|0}a[g>>0]=a[50465+(b-m)>>0]|0;j=j+1|0;g=g+1|0;b=c[p>>2]|0}a[g>>0]=0;c[q>>2]=i;if((Cz(o,50476,q)|0)!=1)nJ(0);if(r|0)GO(r)}b=c[d>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[f>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);b=c[e>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[f>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(g)break;else{t=34;break}else{c[e>>2]=0;t=32;break}}else t=32;while(0);if((t|0)==32?g:0)t=34;if((t|0)==34)c[h>>2]=c[h>>2]|2;f=c[d>>2]|0;YF(s);b=c[u>>2]|0;c[u>>2]=0;if(b|0)Sb[c[u+4>>2]&255](b);zb=v;return f|0}function hK(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+128|0;j=s+120|0;b=s;r=s+112|0;m=s+108|0;p=s+100|0;k=s+124|0;n=s+104|0;c[r>>2]=b;c[r+4>>2]=145;IE(p,g);l=XF(p,56736)|0;a[k>>0]=0;o=c[e>>2]|0;c[n>>2]=o;g=c[g+4>>2]|0;c[j>>2]=c[n>>2];n=o;if(jK(d,j,f,p,g,h,k,l,r,m,b+100|0)|0){b=i+11|0;if((a[b>>0]|0)<0){f=c[i>>2]|0;a[j>>0]=0;bg(f,j);c[i+4>>2]=0}else{a[j>>0]=0;bg(i,j);a[b>>0]=0}if(a[k>>0]|0)sO(i,Ib[c[(c[l>>2]|0)+28>>2]&63](l,45)|0);k=Ib[c[(c[l>>2]|0)+28>>2]&63](l,48)|0;g=c[m>>2]|0;j=g+-1|0;b=c[r>>2]|0;while(1){if(b>>>0>=j>>>0)break;if((a[b>>0]|0)!=k<<24>>24)break;b=b+1|0}kK(i,b,g)|0}b=c[d>>2]|0;do if(b){g=c[b+12>>2]|0;if((g|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[g>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);do if(o){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=Gb[c[(c[o>>2]|0)+36>>2]&127](n)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(g)break;else{q=27;break}else{c[e>>2]=0;q=25;break}}else q=25;while(0);if((q|0)==25?g:0)q=27;if((q|0)==27)c[h>>2]=c[h>>2]|2;g=c[d>>2]|0;YF(p);b=c[r>>2]|0;c[r>>2]=0;if(b|0)Sb[c[r+4>>2]&255](b);zb=s;return g|0}function iK(a){a=a|0;return}function jK(e,f,g,h,i,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;Y=zb;zb=zb+512|0;I=Y+488|0;O=Y;X=Y+480|0;Q=Y+472|0;J=Y+468|0;K=Y+496|0;L=Y+493|0;M=Y+492|0;S=Y+456|0;T=Y+444|0;U=Y+432|0;V=Y+420|0;W=Y+408|0;N=Y+404|0;R=Y+400|0;c[I>>2]=o;c[X>>2]=O;c[X+4>>2]=145;c[Q>>2]=O;c[J>>2]=O+400;c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[S+(o<<2)>>2]=0;o=o+1|0}c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[T+(o<<2)>>2]=0;o=o+1|0}c[U>>2]=0;c[U+4>>2]=0;c[U+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[U+(o<<2)>>2]=0;o=o+1|0}c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[V+(o<<2)>>2]=0;o=o+1|0}c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[W+(o<<2)>>2]=0;o=o+1|0}mK(g,h,K,L,M,S,T,U,V,N);c[n>>2]=c[m>>2];B=l+8|0;C=U+11|0;D=U+4|0;E=V+11|0;F=V+4|0;G=S+11|0;H=S+4|0;v=(i&512|0)!=0;w=T+11|0;x=K+3|0;y=T+4|0;z=W+11|0;A=W+4|0;O=0;u=0;a:while(1){if(u>>>0>=4){P=243;break}o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);g=c[f>>2]|0;do if(g){o=c[g+12>>2]|0;if((o|0)==(c[g+16>>2]|0))o=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(h){t=g;break}else{P=243;break a}else{c[f>>2]=0;P=31;break}}else P=31;while(0);if((P|0)==31){P=0;if(h){P=243;break}else t=0}b:do switch(a[K+u>>0]|0){case 1:{if((u|0)==3)o=O;else{o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((o&255)<<24>>24<=-1){P=45;break a}if(!(b[(c[B>>2]|0)+(o<<24>>24<<1)>>1]&8192)){P=45;break a}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;o=cg(a[h>>0]|0)|0}sO(W,o&255);P=47}break}case 0:{if((u|0)==3)o=O;else P=47;break}case 3:{o=a[C>>0]|0;o=o<<24>>24<0?c[D>>2]|0:o&255;l=a[E>>0]|0;l=l<<24>>24<0?c[F>>2]|0:l&255;if((o|0)==(0-l|0))o=O;else{i=(o|0)==0;o=c[e>>2]|0;g=c[o+12>>2]|0;h=(g|0)==(c[o+16>>2]|0);if(i|(l|0)==0){if(h)o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;o=o&255;if(i){if((a[((a[E>>0]|0)<0?c[V>>2]|0:V)>>0]|0)!=o<<24>>24){o=O;break b}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}a[k>>0]=1;o=a[E>>0]|0;o=(o<<24>>24<0?c[F>>2]|0:o&255)>>>0>1?V:O;break b}if((a[((a[C>>0]|0)<0?c[U>>2]|0:U)>>0]|0)!=o<<24>>24){a[k>>0]=1;o=O;break b}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}o=a[C>>0]|0;o=(o<<24>>24<0?c[D>>2]|0:o&255)>>>0>1?U:O;break b}if(h)o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;g=c[e>>2]|0;h=g+12|0;l=c[h>>2]|0;i=(l|0)==(c[g+16>>2]|0);if((a[((a[C>>0]|0)<0?c[U>>2]|0:U)>>0]|0)==(o&255)<<24>>24){if(i)Gb[c[(c[g>>2]|0)+40>>2]&127](g)|0;else{c[h>>2]=l+1;cg(a[l>>0]|0)|0}o=a[C>>0]|0;o=(o<<24>>24<0?c[D>>2]|0:o&255)>>>0>1?U:O;break b}if(i)o=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else o=cg(a[l>>0]|0)|0;if((a[((a[E>>0]|0)<0?c[V>>2]|0:V)>>0]|0)!=(o&255)<<24>>24){P=105;break a}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}a[k>>0]=1;o=a[E>>0]|0;o=(o<<24>>24<0?c[F>>2]|0:o&255)>>>0>1?V:O}break}case 2:{if(u>>>0<2|(O|0)!=0){o=a[w>>0]|0;h=o<<24>>24<0;g=c[T>>2]|0;l=h?g:T;i=l;if(!u)h=i;else{s=i;P=110}}else{if(!(v|(u|0)==2&(a[x>>0]|0)!=0)){o=0;break b}o=a[w>>0]|0;h=o<<24>>24<0;g=c[T>>2]|0;s=h?g:T;l=s;P=110}c:do if((P|0)==110){P=0;if((d[K+(u+-1)>>0]|0)<2){i=l+(h?c[y>>2]|0:o&255)|0;h=s;while(1){p=h;if((i|0)==(p|0))break;q=a[p>>0]|0;if(q<<24>>24<=-1)break;if(!(b[(c[B>>2]|0)+(q<<24>>24<<1)>>1]&8192))break;h=p+1|0}q=h-s|0;p=a[z>>0]|0;r=p<<24>>24<0;i=c[A>>2]|0;p=p&255;if(q>>>0<=(r?i:p)>>>0){Z=(c[W>>2]|0)+i|0;i=W+p|0;p=r?Z:i;i=r?Z+(0-q)|0:i+(0-q)|0;while(1){if((i|0)==(p|0))break c;if((a[i>>0]|0)!=(a[l>>0]|0)){h=s;break c}l=l+1|0;i=i+1|0}}else h=s}else h=s}while(0);i=h;h=t;d:while(1){Z=o<<24>>24<0;if((i|0)==((Z?g:T)+(Z?c[y>>2]|0:o&255)|0))break;o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(g){l=h;break}else break d;else{c[f>>2]=0;P=136;break}}else P=136;while(0);if((P|0)==136){P=0;if(g)break;else l=0}o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((a[i>>0]|0)!=(o&255)<<24>>24)break;o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}i=i+1|0;o=a[w>>0]|0;g=c[T>>2]|0;h=l}if(v?(Z=a[w>>0]|0,t=Z<<24>>24<0,(i|0)!=((t?c[T>>2]|0:T)+(t?c[y>>2]|0:Z&255)|0)):0){P=148;break a}else o=O;break}case 4:{i=0;l=t;o=t;e:while(1){g=c[e>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=cg(a[h>>0]|0)|0;if(_f(g,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);do if(l){g=c[l+12>>2]|0;if((g|0)==(c[l+16>>2]|0))g=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else g=cg(a[g>>0]|0)|0;if(!(_f(g,Wf()|0)|0))if(h){p=l;break}else{l=o;break e}else{c[f>>2]=0;o=0;P=162;break}}else P=162;while(0);if((P|0)==162){P=0;if(h){l=o;break}else p=0}g=c[e>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=cg(a[h>>0]|0)|0;h=g&255;if(h<<24>>24>-1?(b[(c[B>>2]|0)+(g<<24>>24<<1)>>1]&2048)!=0:0){g=c[n>>2]|0;if((g|0)==(c[I>>2]|0)){nK(m,n,I);g=c[n>>2]|0}c[n>>2]=g+1;a[g>>0]=h;g=i+1|0}else{Z=a[G>>0]|0;if(!((a[M>>0]|0)==h<<24>>24&(i|0?((Z<<24>>24<0?c[H>>2]|0:Z&255)|0)!=0:0))){l=o;break}g=c[Q>>2]|0;if((g|0)==(c[J>>2]|0)){oK(X,Q,J);g=c[Q>>2]|0}c[Q>>2]=g+4;c[g>>2]=i;g=0}h=c[e>>2]|0;l=h+12|0;i=c[l>>2]|0;if((i|0)==(c[h+16>>2]|0))Gb[c[(c[h>>2]|0)+40>>2]&127](h)|0;else{c[l>>2]=i+1;cg(a[i>>0]|0)|0}i=g;l=p}o=c[Q>>2]|0;if(i|0?(c[X>>2]|0)!=(o|0):0){if((o|0)==(c[J>>2]|0)){oK(X,Q,J);o=c[Q>>2]|0}c[Q>>2]=o+4;c[o>>2]=i}f:do if((c[N>>2]|0)>0){o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(l){o=c[l+12>>2]|0;if((o|0)==(c[l+16>>2]|0))o=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(g)break;else{P=204;break a}else{c[f>>2]=0;P=198;break}}else P=198;while(0);if((P|0)==198){P=0;if(g){P=204;break a}else l=0}o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((a[L>>0]|0)!=(o&255)<<24>>24){P=204;break a}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}h=l;while(1){if((c[N>>2]|0)<=0)break f;o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(g){l=h;break}else{P=230;break a}else{c[f>>2]=0;P=223;break}}else P=223;while(0);if((P|0)==223){P=0;if(g){P=230;break a}else l=0}o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((o&255)<<24>>24<=-1){P=230;break a}if(!(b[(c[B>>2]|0)+(o<<24>>24<<1)>>1]&2048)){P=230;break a}if((c[n>>2]|0)==(c[I>>2]|0))nK(m,n,I);o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;g=c[n>>2]|0;c[n>>2]=g+1;a[g>>0]=o;c[N>>2]=(c[N>>2]|0)+-1;o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}h=l}}while(0);if((c[n>>2]|0)==(c[m>>2]|0)){P=241;break a}else o=O;break}default:o=O}while(0);g:do if((P|0)==47){P=0;h=t;while(1){o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(g){l=h;break}else{o=O;break g}else{c[f>>2]=0;P=61;break}}else P=61;while(0);if((P|0)==61){P=0;if(g){o=O;break g}else l=0}o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((o&255)<<24>>24<=-1){o=O;break g}if(!(b[(c[B>>2]|0)+(o<<24>>24<<1)>>1]&8192)){o=O;break g}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;o=cg(a[h>>0]|0)|0}sO(W,o&255);h=l}}while(0);O=o;u=u+1|0}h:do if((P|0)==45){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==105){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==148){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==204){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==230){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==241){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==243){i:do if(O|0){i=O+11|0;p=O+4|0;l=1;j:while(1){o=a[i>>0]|0;if(o<<24>>24<0)o=c[p>>2]|0;else o=o&255;if(l>>>0>=o>>>0)break i;o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);o=c[f>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(h)break;else break j;else{c[f>>2]=0;P=262;break}}else P=262;while(0);if((P|0)==262?(P=0,h):0)break;o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((a[i>>0]|0)<0)g=c[O>>2]|0;else g=O;if((a[g+l>>0]|0)!=(o&255)<<24>>24)break;o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}l=l+1|0}c[j>>2]=c[j>>2]|4;g=0;break h}while(0);g=c[X>>2]|0;o=c[Q>>2]|0;if((g|0)!=(o|0)){c[R>>2]=0;kG(S,g,o,R);if(!(c[R>>2]|0)){g=1;break}else{c[j>>2]=c[j>>2]|4;g=0;break}}else g=1}while(0);jO(W);jO(V);jO(U);jO(T);jO(S);o=c[X>>2]|0;c[X>>2]=0;if(o|0)Sb[c[X+4>>2]&255](o);zb=Y;return g|0}function kK(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;o=zb;zb=zb+16|0;j=d;m=o;n=b+11|0;h=a[n>>0]|0;f=h<<24>>24<0;if(f){l=c[b+4>>2]|0;i=(c[b+8>>2]&2147483647)+-1|0}else{l=h&255;i=10}k=e-j|0;do if(k|0){if(f){g=c[b>>2]|0;f=c[b+4>>2]|0}else{g=b;f=h&255}if(lK(d,g,g+f|0)|0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;ag(m,d,e);n=a[m+11>>0]|0;l=n<<24>>24<0;rO(b,l?c[m>>2]|0:m,l?c[m+4>>2]|0:n&255)|0;jO(m);break}if((i-l|0)>>>0>>0)qO(b,i,l+k-i|0,l,l,0,0);if((a[n>>0]|0)<0)h=c[b>>2]|0;else h=b;g=e+(l-j)|0;f=h+l|0;while(1){if((d|0)==(e|0))break;bg(f,d);f=f+1|0;d=d+1|0}a[m>>0]=0;bg(h+g|0,m);d=l+k|0;if((a[n>>0]|0)<0){c[b+4>>2]=d;break}else{a[n>>0]=d;break}}while(0);zb=o;return b|0}function lK(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0>>0|0}function mK(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;o=zb;zb=zb+16|0;m=o+12|0;n=o;if(b){d=XF(d,56968)|0;Ub[c[(c[d>>2]|0)+44>>2]&63](m,d);b=c[m>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ub[c[(c[d>>2]|0)+32>>2]&63](n,d);b=k+11|0;if((a[b>>0]|0)<0){e=c[k>>2]|0;a[m>>0]=0;bg(e,m);c[k+4>>2]=0;if((a[b>>0]|0)<0){e=k+8|0;Pf(c[k>>2]|0,c[e>>2]&2147483647);c[e>>2]=0}}else{a[m>>0]=0;bg(k,m);a[b>>0]=0};c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);Ub[c[(c[d>>2]|0)+28>>2]&63](n,d);b=j+11|0;if((a[b>>0]|0)<0){k=c[j>>2]|0;a[m>>0]=0;bg(k,m);c[j+4>>2]=0;if((a[b>>0]|0)<0){k=j+8|0;Pf(c[j>>2]|0,c[k>>2]&2147483647);c[k>>2]=0}}else{a[m>>0]=0;bg(j,m);a[b>>0]=0};c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);b=Gb[c[(c[d>>2]|0)+12>>2]&127](d)|0;a[f>>0]=b;b=Gb[c[(c[d>>2]|0)+16>>2]&127](d)|0;a[g>>0]=b;Ub[c[(c[d>>2]|0)+20>>2]&63](n,d);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[m>>0]=0;bg(g,m);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Pf(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[m>>0]=0;bg(h,m);a[b>>0]=0};c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];c[h+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);Ub[c[(c[d>>2]|0)+24>>2]&63](n,d);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[m>>0]=0;bg(h,m);c[i+4>>2]=0;if((a[b>>0]|0)<0){m=i+8|0;Pf(c[i>>2]|0,c[m>>2]&2147483647);c[m>>2]=0}}else{a[m>>0]=0;bg(i,m);a[b>>0]=0};c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);b=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0}else{d=XF(d,56960)|0;Ub[c[(c[d>>2]|0)+44>>2]&63](m,d);b=c[m>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ub[c[(c[d>>2]|0)+32>>2]&63](n,d);b=k+11|0;if((a[b>>0]|0)<0){e=c[k>>2]|0;a[m>>0]=0;bg(e,m);c[k+4>>2]=0;if((a[b>>0]|0)<0){e=k+8|0;Pf(c[k>>2]|0,c[e>>2]&2147483647);c[e>>2]=0}}else{a[m>>0]=0;bg(k,m);a[b>>0]=0};c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);Ub[c[(c[d>>2]|0)+28>>2]&63](n,d);b=j+11|0;if((a[b>>0]|0)<0){k=c[j>>2]|0;a[m>>0]=0;bg(k,m);c[j+4>>2]=0;if((a[b>>0]|0)<0){k=j+8|0;Pf(c[j>>2]|0,c[k>>2]&2147483647);c[k>>2]=0}}else{a[m>>0]=0;bg(j,m);a[b>>0]=0};c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);b=Gb[c[(c[d>>2]|0)+12>>2]&127](d)|0;a[f>>0]=b;b=Gb[c[(c[d>>2]|0)+16>>2]&127](d)|0;a[g>>0]=b;Ub[c[(c[d>>2]|0)+20>>2]&63](n,d);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[m>>0]=0;bg(g,m);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Pf(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[m>>0]=0;bg(h,m);a[b>>0]=0};c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];c[h+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);Ub[c[(c[d>>2]|0)+24>>2]&63](n,d);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[m>>0]=0;bg(h,m);c[i+4>>2]=0;if((a[b>>0]|0)<0){m=i+8|0;Pf(c[i>>2]|0,c[m>>2]&2147483647);c[m>>2]=0}}else{a[m>>0]=0;bg(i,m);a[b>>0]=0};c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);b=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0}c[l>>2]=b;zb=o;return}function nK(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;i=a+4|0;f=(c[i>>2]|0)!=145;e=c[a>>2]|0;h=e;j=(c[d>>2]|0)-h|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?1:g):-1;h=(c[b>>2]|0)-h|0;e=IO(f?e:0,g)|0;if(!e)aO();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Sb[c[i>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[i>>2]=146;c[b>>2]=e+h;c[d>>2]=(c[a>>2]|0)+g;return}function oK(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;i=a+4|0;f=(c[i>>2]|0)!=145;e=c[a>>2]|0;h=e;j=(c[d>>2]|0)-h|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?4:g):-1;h=(c[b>>2]|0)-h>>2;e=IO(f?e:0,g)|0;if(!e)aO();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Sb[c[i>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[i>>2]=146;c[b>>2]=e+(h<<2);c[d>>2]=(c[a>>2]|0)+(g>>>2<<2);return}function pK(a){a=a|0;CF(a);return}function qK(a){a=a|0;CF(a);SA(a);return}function rK(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=zb;zb=zb+592|0;n=v+512|0;q=v+552|0;m=v+112|0;u=v+568|0;p=v+564|0;s=v+560|0;j=v+576|0;w=v+556|0;o=v;c[u>>2]=m;c[u+4>>2]=145;IE(s,g);b=XF(s,56768)|0;a[j>>0]=0;c[w>>2]=c[e>>2];l=c[g+4>>2]|0;c[n>>2]=c[w>>2];if(tK(d,n,f,s,l,h,j,b,u,p,m+400|0)|0){Kb[c[(c[b>>2]|0)+48>>2]&15](b,50575,50585,n)|0;l=c[p>>2]|0;f=c[u>>2]|0;b=l-f|0;if((b|0)>392){b=FO((b>>>2)+2|0)|0;if(!b)aO();else{k=b;r=b}}else{k=o;r=0}if(!(a[j>>0]|0))b=k;else{a[k>>0]=45;b=k+1|0}k=n+40|0;m=n;j=f;g=b;b=l;while(1){if(j>>>0>=b>>>0)break;f=c[j>>2]|0;b=n;while(1){if((b|0)==(k|0)){b=k;break}if((c[b>>2]|0)==(f|0))break;b=b+4|0}a[g>>0]=a[50575+(b-m>>2)>>0]|0;j=j+4|0;g=g+1|0;b=c[p>>2]|0}a[g>>0]=0;c[q>>2]=i;if((Cz(o,50476,q)|0)!=1)nJ(0);if(r|0)GO(r)}b=c[d>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=jE(c[f>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);b=c[e>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=jE(c[f>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(g)break;else{t=34;break}else{c[e>>2]=0;t=32;break}}else t=32;while(0);if((t|0)==32?g:0)t=34;if((t|0)==34)c[h>>2]=c[h>>2]|2;f=c[d>>2]|0;YF(s);b=c[u>>2]|0;c[u>>2]=0;if(b|0)Sb[c[u+4>>2]&255](b);zb=v;return f|0}function sK(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+432|0;j=s+424|0;b=s;r=s+416|0;m=s+408|0;p=s+400|0;k=s+428|0;n=s+404|0;c[r>>2]=b;c[r+4>>2]=145;IE(p,g);l=XF(p,56768)|0;a[k>>0]=0;o=c[e>>2]|0;c[n>>2]=o;g=c[g+4>>2]|0;c[j>>2]=c[n>>2];n=o;if(tK(d,j,f,p,g,h,k,l,r,m,b+400|0)|0){b=i+8+3|0;if((a[b>>0]|0)<0){f=c[i>>2]|0;c[j>>2]=0;JF(f,j);c[i+4>>2]=0}else{c[j>>2]=0;JF(i,j);a[b>>0]=0}if(a[k>>0]|0)DO(i,Ib[c[(c[l>>2]|0)+44>>2]&63](l,45)|0);k=Ib[c[(c[l>>2]|0)+44>>2]&63](l,48)|0;g=c[m>>2]|0;j=g+-4|0;b=c[r>>2]|0;while(1){if(b>>>0>=j>>>0)break;if((c[b>>2]|0)!=(k|0))break;b=b+4|0}uK(i,b,g)|0}b=c[d>>2]|0;do if(b){g=c[b+12>>2]|0;if((g|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=jE(c[g>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);do if(o){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=Gb[c[(c[o>>2]|0)+36>>2]&127](n)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(g)break;else{q=27;break}else{c[e>>2]=0;q=25;break}}else q=25;while(0);if((q|0)==25?g:0)q=27;if((q|0)==27)c[h>>2]=c[h>>2]|2;g=c[d>>2]|0;YF(p);b=c[r>>2]|0;c[r>>2]=0;if(b|0)Sb[c[r+4>>2]&255](b);zb=s;return g|0}function tK(b,e,f,g,h,i,j,k,l,m,n){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;X=zb;zb=zb+512|0;H=X+496|0;N=X;W=X+488|0;P=X+480|0;I=X+476|0;J=X+500|0;K=X+472|0;L=X+468|0;R=X+456|0;S=X+444|0;T=X+432|0;U=X+420|0;V=X+408|0;M=X+404|0;Q=X+400|0;c[H>>2]=n;c[W>>2]=N;c[W+4>>2]=145;c[P>>2]=N;c[I>>2]=N+400;c[R>>2]=0;c[R+4>>2]=0;c[R+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[R+(n<<2)>>2]=0;n=n+1|0}c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[S+(n<<2)>>2]=0;n=n+1|0}c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[T+(n<<2)>>2]=0;n=n+1|0}c[U>>2]=0;c[U+4>>2]=0;c[U+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[U+(n<<2)>>2]=0;n=n+1|0}c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[V+(n<<2)>>2]=0;n=n+1|0}xK(f,g,J,K,L,R,S,T,U,M);c[m>>2]=c[l>>2];B=T+8+3|0;C=T+4|0;D=U+8+3|0;E=U+4|0;F=R+11|0;G=R+4|0;v=(h&512|0)!=0;w=S+8+3|0;x=J+3|0;y=S+4|0;z=V+8+3|0;A=V+4|0;N=0;u=0;a:while(1){if(u>>>0>=4){O=239;break}n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);f=c[e>>2]|0;do if(f){n=c[f+12>>2]|0;if((n|0)==(c[f+16>>2]|0))n=Gb[c[(c[f>>2]|0)+36>>2]&127](f)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(g){t=f;break}else{O=239;break a}else{c[e>>2]=0;O=31;break}}else O=31;while(0);if((O|0)==31){O=0;if(g){O=239;break}else t=0}b:do switch(a[J+u>>0]|0){case 1:{if((u|0)==3)n=N;else{n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(!(Jb[c[(c[k>>2]|0)+12>>2]&63](k,8192,n)|0)){O=44;break a}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;n=jE(c[g>>2]|0)|0}DO(V,n);O=46}break}case 0:{if((u|0)==3)n=N;else O=46;break}case 3:{n=a[B>>0]|0;n=n<<24>>24<0?c[C>>2]|0:n&255;h=a[D>>0]|0;h=h<<24>>24<0?c[E>>2]|0:h&255;if((n|0)==(0-h|0))n=N;else{o=(n|0)==0;n=c[b>>2]|0;f=c[n+12>>2]|0;g=(f|0)==(c[n+16>>2]|0);if(o|(h|0)==0){if(g)n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(o){if((n|0)!=(c[((a[D>>0]|0)<0?c[U>>2]|0:U)>>2]|0)){n=N;break b}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}a[j>>0]=1;n=a[D>>0]|0;n=(n<<24>>24<0?c[E>>2]|0:n&255)>>>0>1?U:N;break b}if((n|0)!=(c[((a[B>>0]|0)<0?c[T>>2]|0:T)>>2]|0)){a[j>>0]=1;n=N;break b}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}n=a[B>>0]|0;n=(n<<24>>24<0?c[C>>2]|0:n&255)>>>0>1?T:N;break b}if(g)n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;f=c[b>>2]|0;g=f+12|0;h=c[g>>2]|0;o=(h|0)==(c[f+16>>2]|0);if((n|0)==(c[((a[B>>0]|0)<0?c[T>>2]|0:T)>>2]|0)){if(o)Gb[c[(c[f>>2]|0)+40>>2]&127](f)|0;else{c[g>>2]=h+4;jE(c[h>>2]|0)|0}n=a[B>>0]|0;n=(n<<24>>24<0?c[C>>2]|0:n&255)>>>0>1?T:N;break b}if(o)n=Gb[c[(c[f>>2]|0)+36>>2]&127](f)|0;else n=jE(c[h>>2]|0)|0;if((n|0)!=(c[((a[D>>0]|0)<0?c[U>>2]|0:U)>>2]|0)){O=103;break a}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}a[j>>0]=1;n=a[D>>0]|0;n=(n<<24>>24<0?c[E>>2]|0:n&255)>>>0>1?U:N}break}case 2:{if(u>>>0<2|(N|0)!=0){f=a[w>>0]|0;g=c[S>>2]|0;n=f<<24>>24<0?g:S;if(u)O=108}else{if(!(v|(u|0)==2&(a[x>>0]|0)!=0)){n=0;break b}f=a[w>>0]|0;g=c[S>>2]|0;n=f<<24>>24<0?g:S;O=108}c:do if((O|0)==108){O=0;if((d[J+(u+-1)>>0]|0)<2){h=f;while(1){s=h<<24>>24<0;f=n;if(((s?g:S)+((s?c[y>>2]|0:h&255)<<2)|0)==(f|0)){f=h;break}if(!(Jb[c[(c[k>>2]|0)+12>>2]&63](k,8192,c[f>>2]|0)|0)){O=112;break}n=f+4|0;h=a[w>>0]|0;g=c[S>>2]|0}if((O|0)==112){O=0;f=a[w>>0]|0;g=c[S>>2]|0}o=f<<24>>24<0?g:S;s=o;q=n-s>>2;p=a[z>>0]|0;r=p<<24>>24<0;h=c[A>>2]|0;p=p&255;if(q>>>0>(r?h:p)>>>0)n=s;else{Y=(c[V>>2]|0)+(h<<2)|0;h=V+(p<<2)|0;p=r?Y:h;h=(r?Y:h)+(0-q<<2)|0;while(1){if((h|0)==(p|0))break c;if((c[h>>2]|0)!=(c[o>>2]|0)){n=s;break c}o=o+4|0;h=h+4|0}}}}while(0);o=n;h=t;d:while(1){Y=f<<24>>24<0;if((o|0)==((Y?g:S)+((Y?c[y>>2]|0:f&255)<<2)|0))break;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(h){n=c[h+12>>2]|0;if((n|0)==(c[h+16>>2]|0))n=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(f)break;else break d;else{c[e>>2]=0;O=134;break}}else O=134;while(0);if((O|0)==134){O=0;if(f)break;else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if((n|0)!=(c[o>>2]|0))break;n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}o=o+4|0;f=a[w>>0]|0;g=c[S>>2]|0}if(v?(Y=a[w>>0]|0,t=Y<<24>>24<0,(o|0)!=((t?c[S>>2]|0:S)+((t?c[y>>2]|0:Y&255)<<2)|0)):0){O=146;break a}else n=N;break}case 4:{o=0;h=t;n=t;e:while(1){f=c[b>>2]|0;do if(f){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Gb[c[(c[f>>2]|0)+36>>2]&127](f)|0;else f=jE(c[g>>2]|0)|0;if(JE(f,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){f=c[h+12>>2]|0;if((f|0)==(c[h+16>>2]|0))f=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(g){p=h;break}else{h=n;break e}else{c[e>>2]=0;n=0;O=160;break}}else O=160;while(0);if((O|0)==160){O=0;if(g){h=n;break}else p=0}f=c[b>>2]|0;g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))g=Gb[c[(c[f>>2]|0)+36>>2]&127](f)|0;else g=jE(c[g>>2]|0)|0;if(Jb[c[(c[k>>2]|0)+12>>2]&63](k,2048,g)|0){f=c[m>>2]|0;if((f|0)==(c[H>>2]|0)){yK(l,m,H);f=c[m>>2]|0}c[m>>2]=f+4;c[f>>2]=g;f=o+1|0}else{Y=a[F>>0]|0;if(!((g|0)==(c[L>>2]|0)&(o|0?((Y<<24>>24<0?c[G>>2]|0:Y&255)|0)!=0:0))){h=n;break}f=c[P>>2]|0;if((f|0)==(c[I>>2]|0)){oK(W,P,I);f=c[P>>2]|0}c[P>>2]=f+4;c[f>>2]=o;f=0}g=c[b>>2]|0;h=g+12|0;o=c[h>>2]|0;if((o|0)==(c[g+16>>2]|0))Gb[c[(c[g>>2]|0)+40>>2]&127](g)|0;else{c[h>>2]=o+4;jE(c[o>>2]|0)|0}o=f;h=p}n=c[P>>2]|0;if(o|0?(c[W>>2]|0)!=(n|0):0){if((n|0)==(c[I>>2]|0)){oK(W,P,I);n=c[P>>2]|0}c[P>>2]=n+4;c[n>>2]=o}f:do if((c[M>>2]|0)>0){n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(h){n=c[h+12>>2]|0;if((n|0)==(c[h+16>>2]|0))n=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(f)break;else{O=201;break a}else{c[e>>2]=0;O=195;break}}else O=195;while(0);if((O|0)==195){O=0;if(f){O=201;break a}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if((n|0)!=(c[K>>2]|0)){O=201;break a}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}g=h;while(1){if((c[M>>2]|0)<=0)break f;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(g){n=c[g+12>>2]|0;if((n|0)==(c[g+16>>2]|0))n=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(f){h=g;break}else{O=226;break a}else{c[e>>2]=0;O=220;break}}else O=220;while(0);if((O|0)==220){O=0;if(f){O=226;break a}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(!(Jb[c[(c[k>>2]|0)+12>>2]&63](k,2048,n)|0)){O=226;break a}if((c[m>>2]|0)==(c[H>>2]|0))yK(l,m,H);n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;f=c[m>>2]|0;c[m>>2]=f+4;c[f>>2]=n;c[M>>2]=(c[M>>2]|0)+-1;n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}g=h}}while(0);if((c[m>>2]|0)==(c[l>>2]|0)){O=237;break a}else n=N;break}default:n=N}while(0);g:do if((O|0)==46){O=0;g=t;while(1){n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(g){n=c[g+12>>2]|0;if((n|0)==(c[g+16>>2]|0))n=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(f){h=g;break}else{n=N;break g}else{c[e>>2]=0;O=60;break}}else O=60;while(0);if((O|0)==60){O=0;if(f){n=N;break g}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(!(Jb[c[(c[k>>2]|0)+12>>2]&63](k,8192,n)|0)){n=N;break g}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;n=jE(c[g>>2]|0)|0}DO(V,n);g=h}}while(0);N=n;u=u+1|0}h:do if((O|0)==44){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==103){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==146){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==201){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==226){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==237){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==239){i:do if(N|0){o=N+8+3|0;p=N+4|0;h=1;j:while(1){n=a[o>>0]|0;if(n<<24>>24<0)n=c[p>>2]|0;else n=n&255;if(h>>>0>=n>>>0)break i;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);n=c[e>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(g)break;else break j;else{c[e>>2]=0;O=258;break}}else O=258;while(0);if((O|0)==258?(O=0,g):0)break;n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if((a[o>>0]|0)<0)f=c[N>>2]|0;else f=N;if((n|0)!=(c[f+(h<<2)>>2]|0))break;n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}h=h+1|0}c[i>>2]=c[i>>2]|4;f=0;break h}while(0);f=c[W>>2]|0;n=c[P>>2]|0;if((f|0)!=(n|0)){c[Q>>2]=0;kG(R,f,n,Q);if(!(c[Q>>2]|0)){f=1;break}else{c[i>>2]=c[i>>2]|4;f=0;break}}else f=1}while(0);wO(V);wO(U);wO(T);wO(S);jO(R);n=c[W>>2]|0;c[W>>2]=0;if(n|0)Sb[c[W+4>>2]&255](n);zb=X;return f|0}function uK(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;n=zb;zb=zb+16|0;k=n;f=b+8|0;m=f+3|0;i=a[m>>0]|0;g=i<<24>>24<0;if(g){l=c[b+4>>2]|0;h=(c[f>>2]&2147483647)+-1|0}else{l=i&255;h=1}f=e-d|0;j=f>>2;do if(f|0){if(g){g=c[b>>2]|0;f=c[b+4>>2]|0}else{g=b;f=i&255}if(vK(d,g,g+(f<<2)|0)|0){c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;wK(k,d,e);m=a[k+8+3>>0]|0;l=m<<24>>24<0;CO(b,l?c[k>>2]|0:k,l?c[k+4>>2]|0:m&255)|0;wO(k);break}if((h-l|0)>>>0>>0)BO(b,h,l+j-h|0,l,l,0,0);if((a[m>>0]|0)<0)f=c[b>>2]|0;else f=b;f=f+(l<<2)|0;while(1){if((d|0)==(e|0))break;JF(f,d);f=f+4|0;d=d+4|0}c[k>>2]=0;JF(f,k);d=l+j|0;if((a[m>>0]|0)<0){c[b+4>>2]=d;break}else{a[m>>0]=d;break}}while(0);zb=n;return b|0}function vK(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0>>0|0}function wK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;i=j;h=e-d>>2;if(h>>>0>1073741807)eO(b);do if(h>>>0>=2){g=h+4&-4;if(g>>>0>1073741823)ua();else{f=tB(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=h;break}}else{a[b+8+3>>0]=h;f=b}while(0);while(1){if((d|0)==(e|0))break;JF(f,d);d=d+4|0;f=f+4|0}c[i>>2]=0;JF(f,i);zb=j;return}function xK(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;n=p+12|0;o=p;if(b){m=XF(d,56984)|0;Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+8|0;d=b+3|0;if((a[d>>0]|0)<0){e=c[k>>2]|0;c[n>>2]=0;JF(e,n);c[k+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[d>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=j+8|0;d=b+3|0;if((a[d>>0]|0)<0){k=c[j>>2]|0;c[n>>2]=0;JF(k,n);c[j+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(j,n);a[d>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[f>>2]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;c[g>>2]=b;Ub[c[(c[m>>2]|0)+20>>2]&63](o,m);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[n>>0]=0;bg(g,n);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Pf(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[n>>0]=0;bg(h,n);a[b>>0]=0};c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[m>>2]|0)+24>>2]&63](o,m);b=i+8|0;d=b+3|0;if((a[d>>0]|0)<0){h=c[i>>2]|0;c[n>>2]=0;JF(h,n);c[i+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[i>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(i,n);a[d>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=XF(d,56976)|0;Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+8|0;d=b+3|0;if((a[d>>0]|0)<0){e=c[k>>2]|0;c[n>>2]=0;JF(e,n);c[k+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[d>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=j+8|0;d=b+3|0;if((a[d>>0]|0)<0){k=c[j>>2]|0;c[n>>2]=0;JF(k,n);c[j+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(j,n);a[d>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[f>>2]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;c[g>>2]=b;Ub[c[(c[m>>2]|0)+20>>2]&63](o,m);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[n>>0]=0;bg(g,n);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Pf(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[n>>0]=0;bg(h,n);a[b>>0]=0};c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[m>>2]|0)+24>>2]&63](o,m);b=i+8|0;d=b+3|0;if((a[d>>0]|0)<0){h=c[i>>2]|0;c[n>>2]=0;JF(h,n);c[i+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[i>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(i,n);a[d>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;zb=p;return}function yK(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;i=a+4|0;f=(c[i>>2]|0)!=145;e=c[a>>2]|0;h=e;j=(c[d>>2]|0)-h|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?4:g):-1;h=(c[b>>2]|0)-h>>2;e=IO(f?e:0,g)|0;if(!e)aO();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Sb[c[i>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[i>>2]=146;c[b>>2]=e+(h<<2);c[d>>2]=(c[a>>2]|0)+(g>>>2<<2);return}function zK(a){a=a|0;CF(a);return}function AK(a){a=a|0;CF(a);SA(a);return}function BK(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;E=zb;zb=zb+416|0;q=E+336|0;k=E+328|0;b=E+224|0;l=E+400|0;j=E+112|0;D=E+396|0;r=E+408|0;s=E+405|0;t=E+404|0;A=E+384|0;B=E+372|0;C=E+360|0;o=E+356|0;p=E;u=E+352|0;v=E+344|0;w=E+348|0;c[l>>2]=b;g[q>>3]=i;b=bz(b,100,50681,q)|0;if(b>>>0>99){b=_F()|0;g[k>>3]=i;b=uH(l,b,50681,k)|0;j=c[l>>2]|0;if(!j)aO();k=FO(b)|0;if(!k)aO();else{x=k;z=b;G=k;H=j}}else{x=j;z=b;G=0;H=0}IE(D,f);n=XF(D,56736)|0;m=c[l>>2]|0;Kb[c[(c[n>>2]|0)+32>>2]&15](n,m,m+z|0,x)|0;if(!z)m=0;else m=(a[c[l>>2]>>0]|0)==45;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[C+(b<<2)>>2]=0;b=b+1|0}DK(e,m,D,r,s,t,A,B,C,o);l=c[o>>2]|0;if((z|0)>(l|0)){k=a[C+11>>0]|0;b=a[B+11>>0]|0;b=b<<24>>24<0?c[B+4>>2]|0:b&255;j=l+1+(z-l<<1)|0;k=k<<24>>24<0?c[C+4>>2]|0:k&255}else{k=a[C+11>>0]|0;b=a[B+11>>0]|0;b=b<<24>>24<0?c[B+4>>2]|0:b&255;j=l+2|0;k=k<<24>>24<0?c[C+4>>2]|0:k&255}b=j+k+b|0;if(b>>>0>100){b=FO(b)|0;if(!b)aO();else{y=b;F=b}}else{y=p;F=0}EK(y,u,v,c[f+4>>2]|0,x,x+z|0,n,m,r,a[s>>0]|0,a[t>>0]|0,A,B,C,l);c[w>>2]=c[d>>2];d=c[u>>2]|0;b=c[v>>2]|0;c[q>>2]=c[w>>2];b=$f(q,y,d,b,f,h)|0;if(F|0)GO(F);jO(C);jO(B);jO(A);YF(D);if(G|0)GO(G);if(H|0)GO(H);zb=E;return b|0}function CK(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=zb;zb=zb+176|0;p=C+156|0;B=C+152|0;u=C+164|0;v=C+161|0;w=C+160|0;y=C+140|0;z=C+128|0;A=C+116|0;l=C+112|0;n=C;q=C+108|0;r=C+104|0;s=C+100|0;IE(B,f);t=XF(B,56736)|0;i=h+11|0;o=a[i>>0]|0;b=o<<24>>24<0;j=h+4|0;if(!((b?c[j>>2]|0:o&255)|0))o=0;else{o=a[(b?c[h>>2]|0:h)>>0]|0;o=o<<24>>24==(Ib[c[(c[t>>2]|0)+28>>2]&63](t,45)|0)<<24>>24};c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}DK(e,o,B,u,v,w,y,z,A,l);k=a[i>>0]|0;m=k<<24>>24<0;k=m?c[j>>2]|0:k&255;j=c[l>>2]|0;if((k|0)>(j|0)){e=a[A+11>>0]|0;b=a[z+11>>0]|0;b=b<<24>>24<0?c[z+4>>2]|0:b&255;i=j+1+(k-j<<1)|0;e=e<<24>>24<0?c[A+4>>2]|0:e&255}else{e=a[A+11>>0]|0;b=a[z+11>>0]|0;b=b<<24>>24<0?c[z+4>>2]|0:b&255;i=j+2|0;e=e<<24>>24<0?c[A+4>>2]|0:e&255}b=i+e+b|0;if(b>>>0>100){b=FO(b)|0;if(!b)aO();else{x=b;D=b}}else{x=n;D=0}h=m?c[h>>2]|0:h;EK(x,q,r,c[f+4>>2]|0,h,h+k|0,t,o,u,a[v>>0]|0,a[w>>0]|0,y,z,A,j);c[s>>2]=c[d>>2];h=c[q>>2]|0;b=c[r>>2]|0;c[p>>2]=c[s>>2];b=$f(p,x,h,b,f,g)|0;if(D|0)GO(D);jO(A);jO(z);jO(y);YF(B);zb=C;return b|0}function DK(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;n=p+12|0;o=p;if(b){m=XF(e,56968)|0;if(d){Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;bg(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Pf(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;bg(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);e=m}else{Ub[c[(c[m>>2]|0)+40>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;bg(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Pf(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;bg(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);e=m}b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;a[g>>0]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;a[h>>0]=b;Ub[c[(c[e>>2]|0)+20>>2]&63](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;bg(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Pf(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;bg(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[e>>2]|0)+24>>2]&63](o,m);b=j+11|0;if((a[b>>0]|0)<0){i=c[j>>2]|0;a[n>>0]=0;bg(i,n);c[j+4>>2]=0;if((a[b>>0]|0)<0){n=j+8|0;Pf(c[j>>2]|0,c[n>>2]&2147483647);c[n>>2]=0}}else{a[n>>0]=0;bg(j,n);a[b>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=XF(e,56960)|0;if(d){Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;bg(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Pf(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;bg(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);e=m}else{Ub[c[(c[m>>2]|0)+40>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;bg(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Pf(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;bg(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);e=m}b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;a[g>>0]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;a[h>>0]=b;Ub[c[(c[e>>2]|0)+20>>2]&63](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;bg(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Pf(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;bg(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[e>>2]|0)+24>>2]&63](o,m);b=j+11|0;if((a[b>>0]|0)<0){i=c[j>>2]|0;a[n>>0]=0;bg(i,n);c[j+4>>2]=0;if((a[b>>0]|0)<0){n=j+8|0;Pf(c[j>>2]|0,c[n>>2]&2147483647);c[n>>2]=0}}else{a[n>>0]=0;bg(j,n);a[b>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;zb=p;return}function EK(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var 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;c[f>>2]=d;y=q+11|0;G=q+4|0;z=p+11|0;A=p+4|0;B=(g&512|0)==0;C=j+8|0;D=(r|0)>0;E=o+11|0;F=o+4|0;x=0;while(1){if((x|0)==4)break;a:do switch(a[l+x>>0]|0){case 0:{c[e>>2]=c[f>>2];break}case 1:{c[e>>2]=c[f>>2];v=Ib[c[(c[j>>2]|0)+28>>2]&63](j,32)|0;w=c[f>>2]|0;c[f>>2]=w+1;a[w>>0]=v;break}case 3:{w=a[y>>0]|0;s=w<<24>>24<0;if((s?c[G>>2]|0:w&255)|0){v=a[(s?c[q>>2]|0:q)>>0]|0;w=c[f>>2]|0;c[f>>2]=w+1;a[w>>0]=v}break}case 2:{t=a[z>>0]|0;s=t<<24>>24<0;t=s?c[A>>2]|0:t&255;if(!(B|(t|0)==0)){w=s?c[p>>2]|0:p;u=w+t|0;s=c[f>>2]|0;t=w;while(1){if((t|0)==(u|0))break;a[s>>0]=a[t>>0]|0;s=s+1|0;t=t+1|0}c[f>>2]=s}break}case 4:{t=c[f>>2]|0;h=k?h+1|0:h;u=h;while(1){if(u>>>0>=i>>>0)break;s=a[u>>0]|0;if(s<<24>>24<=-1)break;if(!(b[(c[C>>2]|0)+(s<<24>>24<<1)>>1]&2048))break;u=u+1|0}if(D){v=r;while(1){s=(v|0)>0;if(!(u>>>0>h>>>0&s))break;w=u+-1|0;H=a[w>>0]|0;s=c[f>>2]|0;c[f>>2]=s+1;a[s>>0]=H;v=v+-1|0;u=w}if(s)w=Ib[c[(c[j>>2]|0)+28>>2]&63](j,48)|0;else w=0;s=v;while(1){v=c[f>>2]|0;c[f>>2]=v+1;if((s|0)<=0)break;a[v>>0]=w;s=s+-1|0}a[v>>0]=m}b:do if((u|0)==(h|0)){w=Ib[c[(c[j>>2]|0)+28>>2]&63](j,48)|0;H=c[f>>2]|0;c[f>>2]=H+1;a[H>>0]=w}else{H=a[E>>0]|0;s=H<<24>>24<0;if(!((s?c[F>>2]|0:H&255)|0))s=-1;else s=a[(s?c[o>>2]|0:o)>>0]|0;v=0;w=0;while(1){if((u|0)==(h|0))break b;if((w|0)==(s|0)){H=c[f>>2]|0;c[f>>2]=H+1;a[H>>0]=n;v=v+1|0;H=a[E>>0]|0;s=H<<24>>24<0;if(v>>>0<(s?c[F>>2]|0:H&255)>>>0){s=a[(s?c[o>>2]|0:o)+v>>0]|0;s=s<<24>>24==127?-1:s<<24>>24;w=0}else{s=w;w=0}}H=u+-1|0;J=a[H>>0]|0;I=c[f>>2]|0;c[f>>2]=I+1;a[I>>0]=J;w=w+1|0;u=H}}while(0);s=c[f>>2]|0;if((t|0)!=(s|0))while(1){s=s+-1|0;if(t>>>0>=s>>>0)break a;J=a[t>>0]|0;a[t>>0]=a[s>>0]|0;a[s>>0]=J;t=t+1|0}break}default:{}}while(0);x=x+1|0}h=a[y>>0]|0;s=h<<24>>24<0;h=s?c[G>>2]|0:h&255;if(h>>>0>1){J=s?c[q>>2]|0:q;t=J+h|0;s=c[f>>2]|0;h=J;while(1){h=h+1|0;if((h|0)==(t|0))break;a[s>>0]=a[h>>0]|0;s=s+1|0}c[f>>2]=s}switch((g&176)<<24>>24){case 32:{c[e>>2]=c[f>>2];break}case 16:break;default:c[e>>2]=d}return}function FK(a){a=a|0;CF(a);return}function GK(a){a=a|0;CF(a);SA(a);return}function HK(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;E=zb;zb=zb+992|0;q=E+912|0;k=E+904|0;b=E+800|0;l=E+984|0;j=E+400|0;D=E+980|0;r=E+988|0;s=E+976|0;t=E+972|0;A=E+960|0;B=E+948|0;C=E+936|0;o=E+932|0;p=E;u=E+928|0;v=E+920|0;w=E+924|0;c[l>>2]=b;g[q>>3]=i;b=bz(b,100,50681,q)|0;if(b>>>0>99){b=_F()|0;g[k>>3]=i;b=uH(l,b,50681,k)|0;j=c[l>>2]|0;if(!j)aO();k=FO(b<<2)|0;if(!k)aO();else{x=k;z=b;G=k;H=j}}else{x=j;z=b;G=0;H=0}IE(D,f);n=XF(D,56768)|0;m=c[l>>2]|0;Kb[c[(c[n>>2]|0)+48>>2]&15](n,m,m+z|0,x)|0;if(!z)m=0;else m=(a[c[l>>2]>>0]|0)==45;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[C+(b<<2)>>2]=0;b=b+1|0}JK(e,m,D,r,s,t,A,B,C,o);l=c[o>>2]|0;if((z|0)>(l|0)){k=a[C+8+3>>0]|0;b=a[B+8+3>>0]|0;b=b<<24>>24<0?c[B+4>>2]|0:b&255;j=l+1+(z-l<<1)|0;k=k<<24>>24<0?c[C+4>>2]|0:k&255}else{k=a[C+8+3>>0]|0;b=a[B+8+3>>0]|0;b=b<<24>>24<0?c[B+4>>2]|0:b&255;j=l+2|0;k=k<<24>>24<0?c[C+4>>2]|0:k&255}b=j+k+b|0;if(b>>>0>100){b=FO(b<<2)|0;if(!b)aO();else{y=b;F=b}}else{y=p;F=0}KK(y,u,v,c[f+4>>2]|0,x,x+(z<<2)|0,n,m,r,c[s>>2]|0,c[t>>2]|0,A,B,C,l);c[w>>2]=c[d>>2];d=c[u>>2]|0;b=c[v>>2]|0;c[q>>2]=c[w>>2];b=IH(q,y,d,b,f,h)|0;if(F|0)GO(F);wO(C);wO(B);jO(A);YF(D);if(G|0)GO(G);if(H|0)GO(H);zb=E;return b|0}function IK(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=zb;zb=zb+480|0;p=C+464|0;B=C+460|0;u=C+468|0;v=C+456|0;w=C+452|0;y=C+440|0;z=C+428|0;A=C+416|0;l=C+412|0;n=C;q=C+408|0;r=C+404|0;s=C+400|0;IE(B,f);t=XF(B,56768)|0;i=h+8+3|0;o=a[i>>0]|0;b=o<<24>>24<0;j=h+4|0;if(!((b?c[j>>2]|0:o&255)|0))o=0;else{o=c[(b?c[h>>2]|0:h)>>2]|0;o=(o|0)==(Ib[c[(c[t>>2]|0)+44>>2]&63](t,45)|0)};c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}JK(e,o,B,u,v,w,y,z,A,l);k=a[i>>0]|0;m=k<<24>>24<0;k=m?c[j>>2]|0:k&255;j=c[l>>2]|0;if((k|0)>(j|0)){e=a[A+8+3>>0]|0;b=a[z+8+3>>0]|0;b=b<<24>>24<0?c[z+4>>2]|0:b&255;i=j+1+(k-j<<1)|0;e=e<<24>>24<0?c[A+4>>2]|0:e&255}else{e=a[A+8+3>>0]|0;b=a[z+8+3>>0]|0;b=b<<24>>24<0?c[z+4>>2]|0:b&255;i=j+2|0;e=e<<24>>24<0?c[A+4>>2]|0:e&255}b=i+e+b|0;if(b>>>0>100){b=FO(b<<2)|0;if(!b)aO();else{x=b;D=b}}else{x=n;D=0}h=m?c[h>>2]|0:h;KK(x,q,r,c[f+4>>2]|0,h,h+(k<<2)|0,t,o,u,c[v>>2]|0,c[w>>2]|0,y,z,A,j);c[s>>2]=c[d>>2];h=c[q>>2]|0;b=c[r>>2]|0;c[p>>2]=c[s>>2];b=IH(p,x,h,b,f,g)|0;if(D|0)GO(D);wO(A);wO(z);jO(y);YF(B);zb=C;return b|0}function JK(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;n=p+12|0;o=p;if(b){m=XF(e,56984)|0;if(d){Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;JF(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o)}else{Ub[c[(c[m>>2]|0)+40>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;JF(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o)}b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[g>>2]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;c[h>>2]=b;Ub[c[(c[m>>2]|0)+20>>2]&63](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;bg(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Pf(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;bg(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[m>>2]|0)+24>>2]&63](o,m);b=j+8|0;e=b+3|0;if((a[e>>0]|0)<0){i=c[j>>2]|0;c[n>>2]=0;JF(i,n);c[j+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(j,n);a[e>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=XF(e,56976)|0;if(d){Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;JF(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o)}else{Ub[c[(c[m>>2]|0)+40>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;JF(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o)}b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[g>>2]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;c[h>>2]=b;Ub[c[(c[m>>2]|0)+20>>2]&63](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;bg(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Pf(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;bg(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[m>>2]|0)+24>>2]&63](o,m);b=j+8|0;e=b+3|0;if((a[e>>0]|0)<0){i=c[j>>2]|0;c[n>>2]=0;JF(i,n);c[j+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(j,n);a[e>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;zb=p;return}function KK(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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;c[e>>2]=b;z=p+8+3|0;G=p+4|0;A=o+8+3|0;B=o+4|0;C=(f&512|0)==0;D=(q|0)>0;E=n+11|0;F=n+4|0;y=0;while(1){if((y|0)==4)break;a:do switch(a[k+y>>0]|0){case 0:{c[d>>2]=c[e>>2];break}case 1:{c[d>>2]=c[e>>2];w=Ib[c[(c[i>>2]|0)+44>>2]&63](i,32)|0;x=c[e>>2]|0;c[e>>2]=x+4;c[x>>2]=w;break}case 3:{x=a[z>>0]|0;r=x<<24>>24<0;if((r?c[G>>2]|0:x&255)|0){w=c[(r?c[p>>2]|0:p)>>2]|0;x=c[e>>2]|0;c[e>>2]=x+4;c[x>>2]=w}break}case 2:{v=a[A>>0]|0;r=v<<24>>24<0;v=r?c[B>>2]|0:v&255;if(!(C|(v|0)==0)){u=r?c[o>>2]|0:o;s=u+(v<<2)|0;t=c[e>>2]|0;r=t;while(1){if((u|0)==(s|0))break;c[r>>2]=c[u>>2];r=r+4|0;u=u+4|0}c[e>>2]=t+(v<<2)}break}case 4:{s=c[e>>2]|0;g=j?g+4|0:g;r=g;while(1){if(r>>>0>=h>>>0)break;if(!(Jb[c[(c[i>>2]|0)+12>>2]&63](i,2048,c[r>>2]|0)|0))break;r=r+4|0}if(D){u=q;while(1){t=(u|0)>0;if(!(r>>>0>g>>>0&t))break;x=r+-4|0;v=c[x>>2]|0;w=c[e>>2]|0;c[e>>2]=w+4;c[w>>2]=v;u=u+-1|0;r=x}if(t)w=Ib[c[(c[i>>2]|0)+44>>2]&63](i,48)|0;else w=0;v=c[e>>2]|0;while(1){t=v+4|0;if((u|0)<=0)break;c[v>>2]=w;u=u+-1|0;v=t}c[e>>2]=t;c[v>>2]=l;t=r}else t=r;if((t|0)==(g|0)){w=Ib[c[(c[i>>2]|0)+44>>2]&63](i,48)|0;x=c[e>>2]|0;r=x+4|0;c[e>>2]=r;c[x>>2]=w}else{x=a[E>>0]|0;r=x<<24>>24<0;if(!((r?c[F>>2]|0:x&255)|0))r=-1;else r=a[(r?c[n>>2]|0:n)>>0]|0;u=0;v=0;x=t;while(1){if((x|0)==(g|0))break;t=c[e>>2]|0;if((v|0)==(r|0)){w=t+4|0;c[e>>2]=w;c[t>>2]=m;t=u+1|0;u=a[E>>0]|0;r=u<<24>>24<0;if(t>>>0<(r?c[F>>2]|0:u&255)>>>0){r=a[(r?c[n>>2]|0:n)+t>>0]|0;r=r<<24>>24==127?-1:r<<24>>24;u=t;v=0;t=w}else{r=v;u=t;v=0;t=w}}w=x+-4|0;H=c[w>>2]|0;c[e>>2]=t+4;c[t>>2]=H;v=v+1|0;x=w}r=c[e>>2]|0}if((s|0)!=(r|0))while(1){r=r+-4|0;if(s>>>0>=r>>>0)break a;H=c[s>>2]|0;c[s>>2]=c[r>>2];c[r>>2]=H;s=s+4|0}break}default:{}}while(0);y=y+1|0}r=a[z>>0]|0;g=r<<24>>24<0;r=g?c[G>>2]|0:r&255;if(r>>>0>1){s=c[p>>2]|0;u=g?s+4|0:G;r=(g?s:p)+(r<<2)|0;s=c[e>>2]|0;t=r-u|0;g=s;while(1){if((u|0)==(r|0))break;c[g>>2]=c[u>>2];g=g+4|0;u=u+4|0}c[e>>2]=s+(t>>>2<<2)}switch((f&176)<<24>>24){case 32:{c[d>>2]=c[e>>2];break}case 16:break;default:c[d>>2]=b}return}function LK(a){a=a|0;CF(a);return}function MK(a){a=a|0;CF(a);SA(a);return}function NK(b,d,e){b=b|0;d=d|0;e=e|0;e=Py((a[d+11>>0]|0)<0?c[d>>2]|0:d,1)|0;return e>>>((e|0)!=(-1|0)&1)|0}function OK(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;j=zb;zb=zb+16|0;i=j;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0}k=a[h+11>>0]|0;l=k<<24>>24<0;d=l?c[h>>2]|0:h;h=d+(l?c[h+4>>2]|0:k&255)|0;while(1){if(d>>>0>=h>>>0)break;sO(i,a[d>>0]|0);d=d+1|0}d=(a[i+11>>0]|0)<0?c[i>>2]|0:i;e=Oy((e|0)==-1?-1:e<<1,f,g,d)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[b+(h<<2)>>2]=0;h=h+1|0}h=d+(Qy(e)|0)|0;while(1){if(d>>>0>=h>>>0)break;sO(b,a[d>>0]|0);d=d+1|0}jO(i);zb=j;return}function PK(a,b){a=a|0;b=b|0;return}function QK(a){a=a|0;CF(a);return}function RK(a){a=a|0;CF(a);SA(a);return}function SK(b,d,e){b=b|0;d=d|0;e=e|0;e=Py((a[d+11>>0]|0)<0?c[d>>2]|0:d,1)|0;return e>>>((e|0)!=(-1|0)&1)|0}function TK(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=zb;zb=zb+176|0;p=t+168|0;q=t;r=t+164|0;s=t+160|0;n=t+128|0;l=t+152|0;o=t+144|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0}c[l+4>>2]=0;c[l>>2]=19072;j=a[h+8+3>>0]|0;k=j<<24>>24<0;d=k?c[h>>2]|0:h;j=d+((k?c[h+4>>2]|0:j&255)<<2)|0;k=q+32|0;h=d;d=0;while(1){if(!((d|0)!=2&h>>>0>>0))break;c[s>>2]=h;i=Qb[c[(c[l>>2]|0)+12>>2]&15](l,p,h,j,s,q,k,r)|0;if((i|0)==2?1:(c[s>>2]|0)==(h|0)){m=8;break}d=q;while(1){if(d>>>0>=(c[r>>2]|0)>>>0)break;sO(n,a[d>>0]|0);d=d+1|0}h=c[s>>2]|0;d=i}if((m|0)==8)nJ(0);CF(l);i=(a[n+11>>0]|0)<0?c[n>>2]|0:n;h=Oy((e|0)==-1?-1:e<<1,f,g,i)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}c[o+4>>2]=0;c[o>>2]=19120;j=i+(Qy(h)|0)|0;k=j;l=q+128|0;h=i;d=0;while(1){if(!((d|0)!=2&h>>>0>>0)){m=23;break}c[s>>2]=h;i=Qb[c[(c[o>>2]|0)+16>>2]&15](o,p,h,(k-h|0)>32?h+32|0:j,s,q,l,r)|0;if((i|0)==2?1:(c[s>>2]|0)==(h|0)){m=19;break}d=q;while(1){if(d>>>0>=(c[r>>2]|0)>>>0)break;DO(b,c[d>>2]|0);d=d+4|0}h=c[s>>2]|0;d=i}if((m|0)==19)nJ(0);else if((m|0)==23){CF(o);jO(n);zb=t;return}}function UK(a,b){a=a|0;b=b|0;return}function VK(a){a=a|0;CF(a);SA(a);return}function WK(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;b=zb;zb=zb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=dL(d,e,j,g,h,a,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];zb=b;return h|0}function XK(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;b=zb;zb=zb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=cL(d,e,j,g,h,a,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];zb=b;return h|0}function YK(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function ZK(a){a=a|0;return 0}function _K(a){a=a|0;return 0}function $K(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return bL(c,d,e,1114111,0)|0}function aL(a){a=a|0;return 4}function bL(b,c,e,f,g){b=b|0;c=c|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;o=c;if((((g&4|0)!=0?(o-b|0)>2:0)?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)g=(a[b+2>>0]|0)==-65?b+3|0:b;else g=b;n=0;a:while(1){if(!(n>>>0>>0&g>>>0>>0))break;k=a[g>>0]|0;m=k&255;do if(k<<24>>24<=-1){if((k&255)<194)break a;if((k&255)<224){if((o-g|0)<2)break a;h=d[g+1>>0]|0;if((h&192|0)!=128)break a;if((h&63|m<<6&1984)>>>0>f>>>0)break a;g=g+2|0;break}if((k&255)<240){if((o-g|0)<3)break a;i=a[g+1>>0]|0;h=a[g+2>>0]|0;switch(k<<24>>24){case -32:{if((i&-32)<<24>>24!=-96)break a;break}case -19:{if((i&-32)<<24>>24!=-128)break a;break}default:if((i&-64)<<24>>24!=-128)break a}h=h&255;if((h&192|0)!=128)break a;if(((i&63)<<6|m<<12&61440|h&63)>>>0>f>>>0)break a;else{g=g+3|0;break}}if((k&255)>=245)break a;if((o-g|0)<4)break a;l=a[g+1>>0]|0;h=a[g+2>>0]|0;j=a[g+3>>0]|0;switch(k<<24>>24){case -16:{if((l+112&255)>=48)break a;break}case -12:{if((l&-16)<<24>>24!=-128)break a;break}default:if((l&-64)<<24>>24!=-128)break a}i=h&255;if((i&192|0)!=128)break a;h=j&255;if((h&192|0)!=128)break a;if(((l&63)<<12|m<<18&1835008|i<<6&4032|h&63)>>>0>f>>>0)break a;else g=g+4|0}else{if(m>>>0>f>>>0)break a;g=g+1|0}while(0);n=n+1|0}return g-b|0}function cL(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;c[f>>2]=b;c[i>>2]=g;if(k&4){b=c[f>>2]|0;g=e;if((((g-b|0)>2?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)?(a[b+2>>0]|0)==-65:0)c[f>>2]=b+3}else g=e;a:while(1){p=c[f>>2]|0;if(p>>>0>=e>>>0){b=0;break}q=c[i>>2]|0;if(q>>>0>=h>>>0){b=1;break}n=a[p>>0]|0;b=n&255;do if(n<<24>>24>-1)if(b>>>0>j>>>0){b=2;break a}else k=1;else{if((n&255)<194){b=2;break a}if((n&255)<224){if((g-p|0)<2){b=1;break a}k=d[p+1>>0]|0;if((k&192|0)!=128){b=2;break a}b=k&63|b<<6&1984;if(b>>>0>j>>>0){b=2;break a}else{k=2;break}}if((n&255)<240){if((g-p|0)<3){b=1;break a}l=a[p+1>>0]|0;k=a[p+2>>0]|0;switch(n<<24>>24){case -32:{if((l&-32)<<24>>24!=-96){b=2;break a}break}case -19:{if((l&-32)<<24>>24!=-128){b=2;break a}break}default:if((l&-64)<<24>>24!=-128){b=2;break a}}k=k&255;if((k&192|0)!=128){b=2;break a}b=(l&63)<<6|b<<12&61440|k&63;if(b>>>0>j>>>0){b=2;break a}else{k=3;break}}if((n&255)>=245){b=2;break a}if((g-p|0)<4){b=1;break a}o=a[p+1>>0]|0;k=a[p+2>>0]|0;m=a[p+3>>0]|0;switch(n<<24>>24){case -16:{if((o+112&255)>=48){b=2;break a}break}case -12:{if((o&-16)<<24>>24!=-128){b=2;break a}break}default:if((o&-64)<<24>>24!=-128){b=2;break a}}l=k&255;if((l&192|0)!=128){b=2;break a}k=m&255;if((k&192|0)!=128){b=2;break a}b=(o&63)<<12|b<<18&1835008|l<<6&4032|k&63;if(b>>>0>j>>>0){b=2;break a}else k=4}while(0);c[q>>2]=b;c[f>>2]=p+k;c[i>>2]=(c[i>>2]|0)+4}return b|0}function dL(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;c[e>>2]=b;c[h>>2]=f;l=g;if(j&2)if((l-f|0)<3)b=1;else{c[h>>2]=f+1;a[f>>0]=-17;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=-69;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=-65;k=4}else k=4;a:do if((k|0)==4){b=c[e>>2]|0;while(1){if(b>>>0>=d>>>0){b=0;break a}f=c[b>>2]|0;if(f>>>0>i>>>0|(f&-2048|0)==55296){b=2;break a}do if(f>>>0>=128){if(f>>>0<2048){b=c[h>>2]|0;if((l-b|0)<2){b=1;break a}c[h>>2]=b+1;a[b>>0]=f>>>6|192;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f&63|128;break}b=c[h>>2]|0;g=l-b|0;if(f>>>0<65536){if((g|0)<3){b=1;break a}c[h>>2]=b+1;a[b>>0]=f>>>12|224;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f>>>6&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f&63|128;break}else{if((g|0)<4){b=1;break a}c[h>>2]=b+1;a[b>>0]=f>>>18|240;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f>>>12&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f>>>6&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f&63|128;break}}else{b=c[h>>2]|0;if((l-b|0)<1){b=1;break a}c[h>>2]=b+1;a[b>>0]=f}while(0);b=(c[e>>2]|0)+4|0;c[e>>2]=b}}while(0);return b|0}function eL(a){a=a|0;CF(a);SA(a);return}function fL(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function gL(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function hL(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function iL(a){a=a|0;return 1}function jL(a){a=a|0;return 1}function kL(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;d=d-c|0;return (d>>>0>>0?d:e)|0}function lL(a){a=a|0;return 1}function mL(b,d,e,f,g,h,i,j){b=b|0;d=d|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,p=0,q=0,r=0;q=zb;zb=zb+16|0;p=q;n=q+8|0;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(c[k>>2]|0))break;k=k+4|0}c[j>>2]=h;c[g>>2]=e;m=i;o=b+8|0;a:while(1){if((h|0)==(i|0)|(e|0)==(f|0)){k=36;break}r=d;l=c[r+4>>2]|0;b=p;c[b>>2]=c[r>>2];c[b+4>>2]=l;b=ez(c[o>>2]|0)|0;l=Uz(h,g,k-e>>2,m-h|0,d)|0;if(b|0)ez(b)|0;switch(l|0){case -1:{k=10;break a}case 0:{e=1;k=33;break a}default:{}}h=(c[j>>2]|0)+l|0;c[j>>2]=h;if((h|0)==(i|0)){k=34;break}if((k|0)==(f|0)){k=f;e=c[g>>2]|0}else{h=ez(c[o>>2]|0)|0;e=_x(n,0,d)|0;if(h|0)ez(h)|0;if((e|0)==-1){e=2;k=32;break}if(e>>>0>(m-(c[j>>2]|0)|0)>>>0){e=1;k=32;break}h=n;while(1){if(!e)break;l=a[h>>0]|0;r=c[j>>2]|0;c[j>>2]=r+1;a[r>>0]=l;h=h+1|0;e=e+-1|0}e=(c[g>>2]|0)+4|0;c[g>>2]=e;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(c[k>>2]|0))break;k=k+4|0}h=c[j>>2]|0}}if((k|0)==10){c[j>>2]=h;while(1){if((e|0)==(c[g>>2]|0))break;r=c[e>>2]|0;k=ez(c[o>>2]|0)|0;h=_x(h,r,p)|0;if(k|0)ez(k)|0;if((h|0)==-1)break;h=(c[j>>2]|0)+h|0;c[j>>2]=h;e=e+4|0}c[g>>2]=e;e=2;k=33}else if((k|0)==32)k=33;else if((k|0)==34){e=c[g>>2]|0;k=36}if((k|0)!=33)if((k|0)==36)e=(e|0)!=(f|0)&1;zb=q;return e|0}function nL(b,d,e,f,g,h,i,j){b=b|0;d=d|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,p=0,q=0;p=zb;zb=zb+16|0;o=p;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(a[k>>0]|0))break;k=k+1|0}c[j>>2]=h;c[g>>2]=e;m=i;n=b+8|0;while(1){if((h|0)==(i|0)|(e|0)==(f|0)){b=33;break}q=d;l=c[q+4>>2]|0;b=o;c[b>>2]=c[q>>2];c[b+4>>2]=l;b=ez(c[n>>2]|0)|0;l=Rz(h,g,k-e|0,m-h>>2,d)|0;if(b|0)ez(b)|0;if((l|0)==-1){b=10;break}h=(c[j>>2]|0)+(l<<2)|0;c[j>>2]=h;if((h|0)==(i|0)){b=30;break}e=c[g>>2]|0;if((k|0)==(f|0))k=f;else{k=ez(c[n>>2]|0)|0;e=Xy(h,e,1,d)|0;if(k|0)ez(k)|0;if(e|0){e=2;b=29;break}c[j>>2]=(c[j>>2]|0)+4;e=(c[g>>2]|0)+1|0;c[g>>2]=e;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(a[k>>0]|0))break;k=k+1|0}h=c[j>>2]|0}}do if((b|0)==10){a:while(1){c[j>>2]=h;if((e|0)==(c[g>>2]|0)){b=19;break}b=ez(c[n>>2]|0)|0;h=Xy(h,e,k-e|0,o)|0;if(b|0)ez(b)|0;switch(h|0){case -1:{b=15;break a}case -2:{b=16;break a}case 0:{h=1;break}default:{}}e=e+h|0;h=(c[j>>2]|0)+4|0}if((b|0)==15){c[g>>2]=e;e=2;b=29;break}else if((b|0)==16){c[g>>2]=e;e=1;b=29;break}else if((b|0)==19){c[g>>2]=e;e=(e|0)!=(f|0)&1;b=29;break}}else if((b|0)==30){e=c[g>>2]|0;b=33}while(0);if((b|0)!=29)if((b|0)==33)e=(e|0)!=(f|0)&1;zb=p;return e|0}function oL(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;i=zb;zb=zb+16|0;h=i;c[g>>2]=e;e=ez(c[b+8>>2]|0)|0;b=_x(h,0,d)|0;if(e|0)ez(e)|0;a:do if((b+1|0)>>>0>=2){b=b+-1|0;if(b>>>0>(f-(c[g>>2]|0)|0)>>>0)b=1;else while(1){if(!b){b=0;break a}d=a[h>>0]|0;f=c[g>>2]|0;c[g>>2]=f+1;a[f>>0]=d;h=h+1|0;b=b+-1|0}}else b=2;while(0);zb=i;return b|0}function pL(a){a=a|0;var b=0,d=0;a=a+8|0;b=ez(c[a>>2]|0)|0;d=pz(0,0,4)|0;if(b|0)ez(b)|0;if(!d){a=c[a>>2]|0;if(!a)a=1;else{b=ez(a)|0;a=hy()|0;if(b|0)ez(b)|0;return (a|0)==1|0}}else a=-1;return a|0}function qL(a){a=a|0;return 0}function rL(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;k=e;j=a+8|0;h=0;i=0;a:while(1){if((d|0)==(e|0)|h>>>0>=f>>>0)break;g=ez(c[j>>2]|0)|0;a=Qz(d,k-d|0,b)|0;if(g|0)ez(g)|0;switch(a|0){case -2:case -1:break a;case 0:{a=1;break}default:{}}h=h+1|0;i=a+i|0;d=d+a|0}return i|0}function sL(a){a=a|0;var b=0;a=c[a+8>>2]|0;if(a){b=ez(a)|0;a=hy()|0;if(b)ez(b)|0}else a=1;return a|0}function tL(a){a=a|0;var b=0,d=0;c[a>>2]=19168;b=a+8|0;d=c[b>>2]|0;if((d|0)!=(_F()|0))Vy(c[b>>2]|0);CF(a);return}function uL(a){a=a|0;tL(a);SA(a);return}function vL(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;b=zb;zb=zb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=EL(d,e,j,g,h,a,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];zb=b;return h|0}function wL(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;b=zb;zb=zb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=DL(d,e,j,g,h,a,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];zb=b;return h|0}function xL(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function yL(a){a=a|0;return 0}function zL(a){a=a|0;return 0}function AL(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return CL(c,d,e,1114111,0)|0}function BL(a){a=a|0;return 4}function CL(b,c,e,f,g){b=b|0;c=c|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;o=c;if((((g&4|0)!=0?(o-b|0)>2:0)?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)g=(a[b+2>>0]|0)==-65?b+3|0:b;else g=b;h=0;a:while(1){if(!(h>>>0>>0&g>>>0>>0))break;l=a[g>>0]|0;n=l&255;if(n>>>0>f>>>0)break;do if(l<<24>>24<=-1){if((l&255)<194)break a;if((l&255)<224){if((o-g|0)<2)break a;i=d[g+1>>0]|0;if((i&192|0)!=128)break a;if((i&63|n<<6&1984)>>>0>f>>>0)break a;else{g=g+2|0;break}}if((l&255)<240){if((o-g|0)<3)break a;j=a[g+1>>0]|0;i=a[g+2>>0]|0;switch(l<<24>>24){case -32:{if((j&-32)<<24>>24!=-96)break a;break}case -19:{if((j&-32)<<24>>24!=-128)break a;break}default:if((j&-64)<<24>>24!=-128)break a}i=i&255;if((i&192|0)!=128)break a;if(((j&63)<<6|n<<12&61440|i&63)>>>0>f>>>0)break a;else{g=g+3|0;break}}if((l&255)>=245)break a;if((e-h|0)>>>0<2|(o-g|0)<4)break a;m=a[g+1>>0]|0;i=a[g+2>>0]|0;k=a[g+3>>0]|0;switch(l<<24>>24){case -16:{if((m+112&255)>=48)break a;break}case -12:{if((m&-16)<<24>>24!=-128)break a;break}default:if((m&-64)<<24>>24!=-128)break a}j=i&255;if((j&192|0)!=128)break a;i=k&255;if((i&192|0)!=128)break a;if(((m&63)<<12|n<<18&1835008|j<<6&4032|i&63)>>>0>f>>>0)break a;else{h=h+1|0;g=g+4|0}}else g=g+1|0;while(0);h=h+1|0}return g-b|0}function DL(e,f,g,h,i,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0;c[g>>2]=e;c[j>>2]=h;if(l&4){e=c[g>>2]|0;h=f;if((((h-e|0)>2?(a[e>>0]|0)==-17:0)?(a[e+1>>0]|0)==-69:0)?(a[e+2>>0]|0)==-65:0)c[g>>2]=e+3}else h=f;s=i;a:while(1){n=c[g>>2]|0;if(n>>>0>=f>>>0){e=0;break}r=c[j>>2]|0;if(r>>>0>=i>>>0){e=1;break}m=a[n>>0]|0;q=m&255;if(q>>>0>k>>>0){e=2;break}do if(m<<24>>24>-1){b[r>>1]=m&255;e=n+1|0}else{if((m&255)<194){e=2;break a}if((m&255)<224){if((h-n|0)<2){e=1;break a}e=d[n+1>>0]|0;if((e&192|0)!=128){e=2;break a}e=e&63|q<<6&1984;if(e>>>0>k>>>0){e=2;break a}b[r>>1]=e;e=n+2|0;break}if((m&255)<240){if((h-n|0)<3){e=1;break a}l=a[n+1>>0]|0;e=a[n+2>>0]|0;switch(m<<24>>24){case -32:{if((l&-32)<<24>>24!=-96){e=2;break a}break}case -19:{if((l&-32)<<24>>24!=-128){e=2;break a}break}default:if((l&-64)<<24>>24!=-128){e=2;break a}}e=e&255;if((e&192|0)!=128){e=2;break a}e=(l&63)<<6|q<<12|e&63;if((e&65535)>>>0>k>>>0){e=2;break a}b[r>>1]=e;e=n+3|0;break}if((m&255)>=245){e=2;break a}if((h-n|0)<4){e=1;break a}o=a[n+1>>0]|0;e=a[n+2>>0]|0;l=a[n+3>>0]|0;switch(m<<24>>24){case -16:{if((o+112&255)>=48){e=2;break a}break}case -12:{if((o&-16)<<24>>24!=-128){e=2;break a}break}default:if((o&-64)<<24>>24!=-128){e=2;break a}}p=e&255;if((p&192|0)!=128){e=2;break a}e=l&255;if((e&192|0)!=128){e=2;break a}if((s-r|0)<4){e=1;break a}n=q&7;l=o&255;m=p<<6;e=e&63;if((l<<12&258048|n<<18|m&4032|e)>>>0>k>>>0){e=2;break a}b[r>>1]=l<<2&60|p>>>4&3|((l>>>4&3|n<<2)<<6)+16320|55296;r=r+2|0;c[j>>2]=r;b[r>>1]=e|m&960|56320;e=(c[g>>2]|0)+4|0}while(0);c[g>>2]=e;c[j>>2]=(c[j>>2]|0)+2}return e|0}function EL(d,f,g,h,i,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0;c[g>>2]=d;c[j>>2]=h;if(l&2)if((i-h|0)<3)d=1;else{c[j>>2]=h+1;a[h>>0]=-17;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=-69;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=-65;m=4}else m=4;a:do if((m|0)==4){n=f;d=c[g>>2]|0;while(1){if(d>>>0>=f>>>0){d=0;break a}h=b[d>>1]|0;m=h&65535;if(m>>>0>k>>>0){d=2;break a}do if((h&65535)<128){d=c[j>>2]|0;if((i-d|0)<1){d=1;break a}c[j>>2]=d+1;a[d>>0]=h}else{if((h&65535)<2048){d=c[j>>2]|0;if((i-d|0)<2){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>6|192;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m&63|128;break}if((h&65535)<55296){d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>12|224;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m>>>6&63|128;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m&63|128;break}if((h&65535)>=56320){if((h&65535)<57344){d=2;break a}d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>12|224;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m>>>6&63|128;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m&63|128;break}if((n-d|0)<4){d=1;break a}d=d+2|0;h=e[d>>1]|0;if((h&64512|0)!=56320){d=2;break a}if((i-(c[j>>2]|0)|0)<4){d=1;break a}l=m&960;if(((l<<10)+65536|m<<10&64512|h&1023)>>>0>k>>>0){d=2;break a}c[g>>2]=d;d=(l>>>6)+1|0;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=d>>>2|240;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m>>>2&15|d<<4&48|128;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m<<4&48|h>>>6&15|128;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=h&63|128}while(0);d=(c[g>>2]|0)+2|0;c[g>>2]=d}}while(0);return d|0}function FL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;c[a>>2]=19216;e=a+8|0;f=a+12|0;d=0;while(1){b=c[e>>2]|0;if(d>>>0>=(c[f>>2]|0)-b>>2>>>0)break;b=c[b+(d<<2)>>2]|0;if(b|0?(h=b+4|0,g=c[h>>2]|0,c[h>>2]=g+-1,(g|0)==0):0)Sb[c[(c[b>>2]|0)+8>>2]&255](b);d=d+1|0}jO(a+144|0);HL(e);CF(a);return}function GL(a){a=a|0;FL(a);SA(a);return}function HL(b){b=b|0;var d=0,e=0;d=c[b>>2]|0;e=d;do if(d|0){c[b+4>>2]=e;if((d|0)==(b+16|0)){a[b+128>>0]=0;break}else{Pf(d,(c[b+8>>2]|0)-e|0);break}}while(0);return}function IL(b){b=b|0;var d=0;c[b>>2]=19236;d=c[b+8>>2]|0;if(d|0?a[b+12>>0]|0:0)vB(d);CF(b);return}function JL(a){a=a|0;IL(a);SA(a);return}function KL(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(TL()|0)+((b&255)<<2)|0;b=c[b>>2]&255}return b|0}function LL(b,d,e){b=b|0;d=d|0;e=e|0;while(1){if((d|0)==(e|0))break;b=a[d>>0]|0;if(b<<24>>24>-1){b=TL()|0;b=c[b+(a[d>>0]<<2)>>2]&255}a[d>>0]=b;d=d+1|0}return e|0}function ML(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(SL()|0)+(b<<24>>24<<2)|0;b=c[b>>2]&255}return b|0}function NL(b,d,e){b=b|0;d=d|0;e=e|0;while(1){if((d|0)==(e|0))break;b=a[d>>0]|0;if(b<<24>>24>-1){b=SL()|0;b=c[b+(a[d>>0]<<2)>>2]&255}a[d>>0]=b;d=d+1|0}return e|0}function OL(a,b){a=a|0;b=b|0;return b|0}function PL(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;while(1){if((c|0)==(d|0))break;a[e>>0]=a[c>>0]|0;e=e+1|0;c=c+1|0}return d|0}function QL(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}function RL(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;while(1){if((c|0)==(d|0))break;b=a[c>>0]|0;a[f>>0]=b<<24>>24>-1?b:e;f=f+1|0;c=c+1|0}return d|0}function SL(){var a=0;a=jy()|0;return c[a>>2]|0}function TL(){var a=0;a=ky()|0;return c[a>>2]|0}function UL(){var a=0;a=gy()|0;return c[a>>2]|0}function VL(a){a=a|0;c[a>>2]=19288;jO(a+12|0);CF(a);return}function WL(a){a=a|0;VL(a);SA(a);return}function XL(b){b=b|0;return a[b+8>>0]|0}function YL(b){b=b|0;return a[b+9>>0]|0}function ZL(a,b){a=a|0;b=b|0;fO(a,b+12|0);return}function _L(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;gO(a,51258,Yf(51258)|0);return}function $L(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;gO(a,51252,Yf(51252)|0);return}function aM(a){a=a|0;c[a>>2]=19328;jO(a+16|0);CF(a);return}function bM(a){a=a|0;aM(a);SA(a);return}function cM(a){a=a|0;return c[a+8>>2]|0}function dM(a){a=a|0;return c[a+12>>2]|0}function eM(a,b){a=a|0;b=b|0;fO(a,b+16|0);return}function fM(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;tO(a,19384,JI(19384)|0);return}function gM(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;tO(a,19360,JI(19360)|0);return}function hM(a){a=a|0;CF(a);SA(a);return}function iM(a){a=a|0;CF(a);SA(a);return}function jM(a,c,d){a=a|0;c=c|0;d=d|0;if(d>>>0<128){a=(UL()|0)+(d<<1)|0;a=(b[a>>1]&c)<<16>>16!=0}else a=0;return a|0}function kM(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;while(1){if((d|0)==(f|0))break;if((c[d>>2]|0)>>>0<128){a=UL()|0;a=e[a+(c[d>>2]<<1)>>1]|0}else a=0;b[g>>1]=a;g=g+2|0;d=d+4|0}return f|0}function lM(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0)){e=f;break}if((c[e>>2]|0)>>>0<128?(a=UL()|0,(b[a+(c[e>>2]<<1)>>1]&d)<<16>>16):0)break;e=e+4|0}return e|0}function mM(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0)){e=f;break}if((c[e>>2]|0)>>>0>=128)break;a=UL()|0;if(!((b[a+(c[e>>2]<<1)>>1]&d)<<16>>16))break;e=e+4|0}return e|0}function nM(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(TL()|0)+(b<<2)|0;b=c[b>>2]|0}return b|0}function oM(a,b,d){a=a|0;b=b|0;d=d|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(a>>>0<128){a=TL()|0;a=c[a+(c[b>>2]<<2)>>2]|0}c[b>>2]=a;b=b+4|0}return d|0}function pM(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(SL()|0)+(b<<2)|0;b=c[b>>2]|0}return b|0}function qM(a,b,d){a=a|0;b=b|0;d=d|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(a>>>0<128){a=SL()|0;a=c[a+(c[b>>2]<<2)>>2]|0}c[b>>2]=a;b=b+4|0}return d|0}function rM(a,b){a=a|0;b=b|0;return b<<24>>24|0}function sM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;while(1){if((d|0)==(e|0))break;c[f>>2]=a[d>>0];f=f+4|0;d=d+1|0}return e|0}function tM(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}function uM(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;h=(e-d|0)>>>2;b=g;g=d;while(1){if((g|0)==(e|0))break;i=c[g>>2]|0;a[b>>0]=i>>>0<128?i&255:f;b=b+1|0;g=g+4|0}return d+(h<<2)|0}function vM(a){a=a|0;CF(a);SA(a);return}function wM(a){a=a|0;CF(a);SA(a);return}function xM(a){a=a|0;CF(a);SA(a);return}function yM(a){a=a|0;c[a>>2]=19644;return}function zM(a){a=a|0;c[a>>2]=19680;return}function AM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;c[b+4>>2]=f+-1;c[b>>2]=19236;f=b+8|0;c[f>>2]=d;a[b+12>>0]=e&1;if(!d){e=UL()|0;c[f>>2]=e}return}function BM(a,b){a=a|0;b=b|0;var d=0;c[a+4>>2]=b+-1;c[a>>2]=19216;b=a+8|0;CM(b,28);d=a+144|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;gO(d,49197,Yf(49197)|0);c[a+12>>2]=c[b>>2];DM();EM(a,54968);FM();GM(a,54976);HM();IM(a,54984);JM();KM(a,55e3);LM();MM(a,55008);NM();OM(a,55016);PM();QM(a,55032);RM();SM(a,55040);TM();UM(a,55048);VM();WM(a,55072);XM();YM(a,55104);ZM();_M(a,55112);$M();aN(a,55120);bN();cN(a,55128);dN();eN(a,55136);fN();gN(a,55144);hN();iN(a,55152);jN();kN(a,55160);lN();mN(a,55168);nN();oN(a,55176);pN();qN(a,55184);rN();sN(a,55192);tN();uN(a,55200);vN();wN(a,55216);xN();yN(a,55232);zN();AN(a,55248);BN();CN(a,55264);DN();EN(a,55272);return}function CM(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+128>>0]=0;if(d|0){RN(b,d);IN(b,d)}return}function DM(){c[13743]=0;c[13742]=17072;return}function EM(a,b){a=a|0;b=b|0;FN(a,b,aG(56720)|0);return}function FM(){c[13745]=0;c[13744]=17104;return}function GM(a,b){a=a|0;b=b|0;FN(a,b,aG(56728)|0);return}function HM(){AM(54984,0,0,1);return}function IM(a,b){a=a|0;b=b|0;FN(a,b,aG(56736)|0);return}function JM(){c[13751]=0;c[13750]=19432;return}function KM(a,b){a=a|0;b=b|0;FN(a,b,aG(56768)|0);return}function LM(){c[13753]=0;c[13752]=19500;return}function MM(a,b){a=a|0;b=b|0;FN(a,b,aG(57040)|0);return}function NM(){QN(55016,1);return}function OM(a,b){a=a|0;b=b|0;FN(a,b,aG(57048)|0);return}function PM(){c[13759]=0;c[13758]=19548;return}function QM(a,b){a=a|0;b=b|0;FN(a,b,aG(57056)|0);return}function RM(){c[13761]=0;c[13760]=19596;return}function SM(a,b){a=a|0;b=b|0;FN(a,b,aG(57064)|0);return}function TM(){PN(55048,1);return}function UM(a,b){a=a|0;b=b|0;FN(a,b,aG(56752)|0);return}function VM(){ON(55072,1);return}function WM(a,b){a=a|0;b=b|0;FN(a,b,aG(56776)|0);return}function XM(){c[13777]=0;c[13776]=17136;return}function YM(a,b){a=a|0;b=b|0;FN(a,b,aG(56760)|0);return}function ZM(){c[13779]=0;c[13778]=17200;return}function _M(a,b){a=a|0;b=b|0;FN(a,b,aG(56784)|0);return}function $M(){c[13781]=0;c[13780]=17264;return}function aN(a,b){a=a|0;b=b|0;FN(a,b,aG(56792)|0);return}function bN(){c[13783]=0;c[13782]=17316;return}function cN(a,b){a=a|0;b=b|0;FN(a,b,aG(56800)|0);return}function dN(){c[13785]=0;c[13784]=18672;return}function eN(a,b){a=a|0;b=b|0;FN(a,b,aG(56960)|0);return}function fN(){c[13787]=0;c[13786]=18728;return}function gN(a,b){a=a|0;b=b|0;FN(a,b,aG(56968)|0);return}function hN(){c[13789]=0;c[13788]=18784;return}function iN(a,b){a=a|0;b=b|0;FN(a,b,aG(56976)|0);return}function jN(){c[13791]=0;c[13790]=18840;return}function kN(a,b){a=a|0;b=b|0;FN(a,b,aG(56984)|0);return}function lN(){c[13793]=0;c[13792]=18896;return}function mN(a,b){a=a|0;b=b|0;FN(a,b,aG(56992)|0);return}function nN(){c[13795]=0;c[13794]=18924;return}function oN(a,b){a=a|0;b=b|0;FN(a,b,aG(57e3)|0);return}function pN(){c[13797]=0;c[13796]=18952;return}function qN(a,b){a=a|0;b=b|0;FN(a,b,aG(57008)|0);return}function rN(){c[13799]=0;c[13798]=18980;return}function sN(a,b){a=a|0;b=b|0;FN(a,b,aG(57016)|0);return}function tN(){c[13801]=0;c[13800]=19412;yM(55208);c[13800]=17368;c[13802]=17416;return}function uN(a,b){a=a|0;b=b|0;FN(a,b,aG(56868)|0);return}function vN(){c[13805]=0;c[13804]=19412;zM(55224);c[13804]=17452;c[13806]=17500;return}function wN(a,b){a=a|0;b=b|0;FN(a,b,aG(56936)|0);return}function xN(){var a=0;c[13809]=0;c[13808]=19412;a=_F()|0;c[13810]=a;c[13808]=18624;return}function yN(a,b){a=a|0;b=b|0;FN(a,b,aG(56944)|0);return}function zN(){var a=0;c[13813]=0;c[13812]=19412;a=_F()|0;c[13814]=a;c[13812]=18648;return}function AN(a,b){a=a|0;b=b|0;FN(a,b,aG(56952)|0);return}function BN(){c[13817]=0;c[13816]=19008;return}function CN(a,b){a=a|0;b=b|0;FN(a,b,aG(57024)|0);return}function DN(){c[13819]=0;c[13818]=19040;return}function EN(a,b){a=a|0;b=b|0;FN(a,b,aG(57032)|0);return}function FN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=b+4|0;c[f>>2]=(c[f>>2]|0)+1;f=a+8|0;e=c[f>>2]|0;if((c[a+12>>2]|0)-e>>2>>>0>d>>>0)a=f;else{GN(f,d+1|0);a=f;e=c[f>>2]|0}e=c[e+(d<<2)>>2]|0;if(e|0?(g=e+4|0,f=c[g>>2]|0,c[g>>2]=f+-1,(f|0)==0):0)Sb[c[(c[e>>2]|0)+8>>2]&255](e);c[(c[a>>2]|0)+(d<<2)>>2]=b;return}function GN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<2)}else HN(a,b-e|0);return}function HN(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>2>>>0>>0){d=(d-(c[a>>2]|0)>>2)+b|0;e=JN(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>1;KN(f,k>>2>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>2,a+16|0);LN(f,b);MN(a,f);NN(f);break}}else IN(a,b);while(0);zb=i;return}function IN(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function JN(a){a=a|0;return 1073741823}function KN(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=b+12|0;c[h>>2]=0;c[b+16>>2]=f;do if(d){g=f+112|0;if(d>>>0<29&(a[g>>0]|0)==0){a[g>>0]=1;break}else{f=tB(d<<2)|0;break}}else f=0;while(0);c[b>>2]=f;e=f+(e<<2)|0;c[b+8>>2]=e;c[b+4>>2]=e;c[h>>2]=f+(d<<2);return}function LN(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function MN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function NN(b){b=b|0;var d=0,e=0,f=0,g=0;d=c[b+4>>2]|0;e=b+8|0;f=c[e>>2]|0;while(1){if((f|0)==(d|0))break;g=f+-4|0;c[e>>2]=g;f=g}e=c[b>>2]|0;f=e;do if(e|0){d=c[b+16>>2]|0;if((e|0)==(d|0)){a[d+112>>0]=0;break}else{Pf(e,(c[b+12>>2]|0)-f|0);break}}while(0);return}function ON(a,b){a=a|0;b=b|0;c[a+4>>2]=b+-1;c[a>>2]=19328;c[a+8>>2]=46;c[a+12>>2]=44;b=a+16|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function PN(b,d){b=b|0;d=d|0;c[b+4>>2]=d+-1;c[b>>2]=19288;a[b+8>>0]=46;a[b+9>>0]=44;d=b+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function QN(a,b){a=a|0;b=b|0;c[a+4>>2]=b+-1;c[a>>2]=19168;b=_F()|0;c[a+8>>2]=b;return}function RN(b,d){b=b|0;d=d|0;var e=0;if((JN(b)|0)>>>0>>0)EO(b);e=b+128|0;if(d>>>0<29&(a[e>>0]|0)==0){a[e>>0]=1;e=b+16|0}else e=tB(d<<2)|0;c[b+4>>2]=e;c[b>>2]=e;c[b+8>>2]=e+(d<<2);return}function SN(){if((a[55280]|0)==0?nB(55280)|0:0){TN()|0;c[14269]=57072;pB(55280)}return c[14269]|0}function TN(){UN();c[14268]=55288;return 57072}function UN(){BM(55288,1);return}function VN(){WN(57080,SN()|0);return 57080}function WN(a,b){a=a|0;b=b|0;b=c[b>>2]|0;c[a>>2]=b;b=b+4|0;c[b>>2]=(c[b>>2]|0)+1;return}function XN(){if((a[55448]|0)==0?nB(55448)|0:0){VN()|0;c[14271]=57080;pB(55448)}return c[14271]|0}function YN(a){a=a|0;var b=0;b=XN()|0;b=c[b>>2]|0;c[a>>2]=b;a=b+4|0;c[a>>2]=(c[a>>2]|0)+1;return}function ZN(a){a=a|0;return}function _N(a){a=a|0;var b=0,d=0;b=a+8|0;if(!((c[b>>2]|0)!=0?(d=c[b>>2]|0,c[b>>2]=d+-1,(d|0)!=0):0))Sb[c[(c[a>>2]|0)+16>>2]&255](a);return}function $N(a,b,d){a=a|0;b=b|0;d=d|0;do{}while((c[a>>2]|0)==1);if(!(c[a>>2]|0)){c[a>>2]=1;Sb[d&255](b);c[a>>2]=-1}return}function aO(){ua()}function bO(a,b){a=a|0;b=b|0;var d=0,e=0;e=Qy(b)|0;d=tB(e+13|0)|0;c[d>>2]=e;c[d+4>>2]=e;c[d+8>>2]=0;d=cO(d)|0;_O(d|0,b|0,e+1|0)|0;c[a>>2]=d;return}function cO(a){a=a|0;return a+12|0}function dO(a,b){a=a|0;b=b|0;c[a>>2]=16372;bO(a+4|0,b);return}function eO(a){a=a|0;ua()}function fO(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if((a[d+11>>0]|0)<0)gO(b,c[d>>2]|0,c[d+4>>2]|0);else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}return}function gO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=zb;zb=zb+16|0;f=g;if(e>>>0>4294967279)eO(b);if(e>>>0<11)a[b+11>>0]=e;else{i=e+16&-16;h=tB(i)|0;c[b>>2]=h;c[b+8>>2]=i|-2147483648;c[b+4>>2]=e;b=h}VD(b,d,e)|0;a[f>>0]=0;bg(b+e|0,f);zb=g;return}function hO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=zb;zb=zb+16|0;f=g;if(d>>>0>4294967279)eO(b);if(d>>>0<11)a[b+11>>0]=d;else{i=d+16&-16;h=tB(i)|0;c[b>>2]=h;c[b+8>>2]=i|-2147483648;c[b+4>>2]=d;b=h}iO(b,d,e)|0;a[f>>0]=0;bg(b+d|0,f);zb=g;return}function iO(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)aP(a|0,(cg(c)|0)&255|0,b|0)|0;return a|0}function jO(b){b=b|0;if((a[b+11>>0]|0)<0)Pf(c[b>>2]|0,c[b+8>>2]&2147483647);return}function kO(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;k=zb;zb=zb+16|0;i=k;j=b+11|0;f=a[j>>0]|0;g=f<<24>>24<0;if(g)h=(c[b+8>>2]&2147483647)+-1|0;else h=10;do if(h>>>0>=e>>>0){if(g)f=c[b>>2]|0;else f=b;lO(f,d,e)|0;a[i>>0]=0;bg(f+e|0,i);if((a[j>>0]|0)<0){c[b+4>>2]=e;break}else{a[j>>0]=e;break}}else{if(g)f=c[b+4>>2]|0;else f=f&255;mO(b,h,e-h|0,f,0,f,e,d)}while(0);zb=k;return b|0}function lO(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)$O(a|0,b|0,c|0)|0;return a|0} function nw(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=c[(c[a+484>>2]|0)+24>>2]|0;h=c[d>>2]|0;j=d+4|0;l=c[j>>2]|0;o=d+8|0;n=c[o>>2]|0;p=d+12|0;m=c[p>>2]|0;q=d+16|0;k=c[q>>2]|0;r=d+20|0;s=c[r>>2]|0;a:do if((l|0)<=(h|0)|(n|0)>(m|0)|(k|0)>(s|0))i=h;else{i=h;b:while(1){g=c[t+(i<<2)>>2]|0;e=n;while(1){a=g+(e<<6)+(k<<1)|0;f=k;while(1){if(b[a>>1]|0)break b;if((f|0)<(s|0)){a=a+2|0;f=f+1|0}else break}if((e|0)<(m|0))e=e+1|0;else break}if((i|0)<(l|0))i=i+1|0;else{i=h;break a}}c[d>>2]=i}while(0);c:do if(!((l|0)<=(i|0)|(n|0)>(m|0)|(k|0)>(s|0))){e=l;d:while(1){h=c[t+(e<<2)>>2]|0;f=n;while(1){a=h+(f<<6)+(k<<1)|0;g=k;while(1){if(b[a>>1]|0)break d;if((g|0)<(s|0)){a=a+2|0;g=g+1|0}else break}if((f|0)<(m|0))f=f+1|0;else break}if((e|0)>(i|0))e=e+-1|0;else break c}c[j>>2]=e;l=e}while(0);e:do if(!((m|0)<=(n|0)|(l|0)<(i|0)|(k|0)>(s|0))){f=n;f:while(1){e=i;while(1){a=(c[t+(e<<2)>>2]|0)+(f<<6)+(k<<1)|0;g=k;while(1){if(b[a>>1]|0)break f;if((g|0)<(s|0)){a=a+2|0;g=g+1|0}else break}if((e|0)<(l|0))e=e+1|0;else break}if((f|0)<(m|0))f=f+1|0;else break e}c[o>>2]=f;n=f}while(0);g:do if(!((m|0)<=(n|0)|(l|0)<(i|0)|(k|0)>(s|0))){f=m;h:while(1){e=i;while(1){a=(c[t+(e<<2)>>2]|0)+(f<<6)+(k<<1)|0;g=k;while(1){if(b[a>>1]|0)break h;if((g|0)<(s|0)){a=a+2|0;g=g+1|0}else break}if((e|0)<(l|0))e=e+1|0;else break}if((f|0)>(n|0))f=f+-1|0;else break g}c[p>>2]=f;m=f}while(0);i:do if(!((s|0)<=(k|0)|(l|0)<(i|0)|(m|0)<(n|0))){f=k;j:while(1){a=i;while(1){e=n;g=(c[t+(a<<2)>>2]|0)+(n<<6)+(f<<1)|0;while(1){if(b[g>>1]|0)break j;if((e|0)<(m|0)){e=e+1|0;g=g+64|0}else break}if((a|0)<(l|0))a=a+1|0;else break}if((f|0)<(s|0))f=f+1|0;else break i}c[q>>2]=f;k=f}while(0);k:do if((s|0)<=(k|0)|(l|0)<(i|0)|(m|0)<(n|0))f=s;else{f=s;l:while(1){a=i;while(1){e=n;g=(c[t+(a<<2)>>2]|0)+(n<<6)+(f<<1)|0;while(1){if(b[g>>1]|0)break l;if((e|0)<(m|0)){e=e+1|0;g=g+64|0}else break}if((a|0)<(l|0))a=a+1|0;else break}if((f|0)>(k|0))f=f+-1|0;else{f=s;break k}}c[r>>2]=f}while(0);r=l-i<<4;q=(m-n|0)*12|0;s=f-k<<3;s=(B(q,q)|0)+(B(r,r)|0)+(B(s,s)|0)|0;c[d+24>>2]=s;if((l|0)<(i|0)|(m|0)<(n|0)|(f|0)<(k|0)){t=0;d=d+28|0;c[d>>2]=t;return}a=0;while(1){j=c[t+(i<<2)>>2]|0;h=n;while(1){e=k;g=j+(h<<6)+(k<<1)|0;while(1){a=a+((b[g>>1]|0)!=0&1)|0;if((e|0)>=(f|0))break;else{e=e+1|0;g=g+2|0}}if((h|0)<(m|0))h=h+1|0;else break}if((i|0)<(l|0))i=i+1|0;else break}d=d+28|0;c[d>>2]=a;return}function ow(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=a+484|0;j=c[b>>2]|0;c[a+136>>2]=c[j+16>>2];c[a+132>>2]=c[j+20>>2];switch(c[a+88>>2]|0){case 0:{b=j+4|0;if((c[a+120>>2]|0)==3){c[b>>2]=22;return}else{c[b>>2]=23;return}}case 1:{l=a+120|0;c[j+4>>2]=(c[l>>2]|0)==3?24:25;c[j+48>>2]=0;if(!(c[j+28>>2]|0))rw(a);if(c[j+52>>2]|0)return;j=c[b>>2]|0;b=c[l>>2]|0;if((b|0)<=0)return;k=a+4|0;i=0;do{f=c[j+32+(i<<2)>>2]|0;a:do if(i){e=0;while(1){if((f|0)==(c[j+32+(e<<2)>>2]|0))break;e=e+1|0;if(e>>>0>=i>>>0){m=15;break a}}e=c[j+52+(e<<2)>>2]|0;if(!e)m=15}else m=15;while(0);if((m|0)==15){m=0;e=Jb[c[c[k>>2]>>2]&63](a,1,1024)|0;h=(f<<9)+-512|0;g=0;do{f=0;do{n=255-((d[5440+(g<<4)+f>>0]|0)<<1)|0;b=n*255|0;if((n|0)<0)b=0-((0-b|0)/(h|0)|0)|0;else b=(b|0)/(h|0)|0;c[e+(g<<6)+(f<<2)>>2]=b;f=f+1|0}while((f|0)!=16);g=g+1|0}while((g|0)!=16);b=c[l>>2]|0}c[j+52+(i<<2)>>2]=e;i=i+1|0}while((i|0)<(b|0));return}case 2:{c[j+4>>2]=26;c[j+84>>2]=0;if(!(c[j+68>>2]|0)){b=a+112|0;g=(c[b>>2]<<1)+4|0;h=a+120|0;if((c[h>>2]|0)<=0)return;i=a+4|0;e=0;do{f=Jb[c[(c[i>>2]|0)+4>>2]&63](a,1,g)|0;c[j+68+(e<<2)>>2]=f;e=e+1|0;f=c[h>>2]|0}while((e|0)<(f|0))}else{f=a+120|0;h=f;b=a+112|0;f=c[f>>2]|0}e=(c[b>>2]<<1)+4|0;if((f|0)<=0)return;b=0;do{aP(c[j+68+(b<<2)>>2]|0,0,e|0)|0;b=b+1|0}while((b|0)<(c[h>>2]|0));return}default:{n=c[a>>2]|0;c[n+20>>2]=49;Sb[c[n>>2]&255](a);return}}}function pw(a){a=a|0;return}function qw(a){a=a|0;var b=0;b=c[a>>2]|0;c[b+20>>2]=47;Sb[c[b>>2]&255](a);return}function rw(b){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;m=c[b+484>>2]|0;d=(c[b+88>>2]|0)==1;c[m+28>>2]=d&1;l=b+120|0;e=Kb[c[(c[b+4>>2]|0)+8>>2]&15](b,1,d?766:256,c[l>>2]|0)|0;k=m+24|0;c[k>>2]=e;b=c[m+20>>2]|0;if((c[l>>2]|0)<=0)return;if(!d){d=0;while(1){f=c[m+32+(d<<2)>>2]|0;b=(b|0)/(f|0)|0;h=c[e+(d<<2)>>2]|0;i=f+-1|0;j=i<<1;e=0;f=(f+254|0)/(j|0)|0;g=0;do{if((g|0)>(f|0))do{e=e+1|0;f=(((e<<1|1)*255|0)+i|0)/(j|0)|0}while((g|0)>(f|0));n=(B(e,b)|0)&255;a[h+g>>0]=n;g=g+1|0}while((g|0)!=256);d=d+1|0;if((d|0)>=(c[l>>2]|0))break;e=c[k>>2]|0}return}d=0;while(1){f=c[m+32+(d<<2)>>2]|0;b=(b|0)/(f|0)|0;j=e+(d<<2)|0;c[j>>2]=(c[j>>2]|0)+255;j=c[(c[k>>2]|0)+(d<<2)>>2]|0;h=f+-1|0;i=h<<1;e=0;f=(f+254|0)/(i|0)|0;g=0;do{if((g|0)>(f|0))do{e=e+1|0;f=(((e<<1|1)*255|0)+h|0)/(i|0)|0}while((g|0)>(f|0));n=(B(e,b)|0)&255;a[j+g>>0]=n;g=g+1|0}while((g|0)!=256);f=j+255|0;e=1;do{a[j+(0-e)>>0]=a[j>>0]|0;a[j+(e+255)>>0]=a[f>>0]|0;e=e+1|0}while((e|0)!=256);d=d+1|0;if((d|0)>=(c[l>>2]|0))break;e=c[k>>2]|0}return}function sw(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;m=c[(c[b+484>>2]|0)+24>>2]|0;n=c[m>>2]|0;l=c[m+4>>2]|0;m=c[m+8>>2]|0;k=c[b+112>>2]|0;if((g|0)<1|(k|0)==0)return;h=0;do{b=k;i=c[f+(h<<2)>>2]|0;j=c[e+(h<<2)>>2]|0;while(1){a[i>>0]=(d[l+(d[j+1>>0]|0)>>0]|0)+(d[n+(d[j>>0]|0)>>0]|0)+(d[m+(d[j+2>>0]|0)>>0]|0);b=b+-1|0;if(!b)break;else{i=i+1|0;j=j+3|0}}h=h+1|0}while((h|0)!=(g|0));return}function tw(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;o=c[(c[b+484>>2]|0)+24>>2]|0;p=c[b+112>>2]|0;n=c[b+120>>2]|0;if((g|0)<1|(p|0)==0)return;if((n|0)<=0){b=0;do{aP(c[f+(b<<2)>>2]|0,0,p|0)|0;b=b+1|0}while((b|0)!=(g|0));return}i=0;do{h=p;j=c[f+(i<<2)>>2]|0;k=c[e+(i<<2)>>2]|0;while(1){b=0;l=0;m=k;while(1){l=l+(d[(c[o+(b<<2)>>2]|0)+(d[m>>0]|0)>>0]|0)|0;b=b+1|0;if((b|0)==(n|0))break;else m=m+1|0}a[j>>0]=l;h=h+-1|0;if(!h)break;else{j=j+1|0;k=k+n|0}}i=i+1|0}while((i|0)!=(g|0));return}function uw(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,v=0,w=0;h=c[b+484>>2]|0;u=c[h+24>>2]|0;v=c[u>>2]|0;t=c[u+4>>2]|0;u=c[u+8>>2]|0;q=c[b+112>>2]|0;if((g|0)<=0)return;w=h+48|0;r=h+52|0;s=h+56|0;p=h+60|0;b=c[w>>2]|0;if(!q){h=0;do{b=b+1&15;h=h+1|0}while((h|0)!=(g|0));c[w>>2]=b;return}o=0;do{l=c[r>>2]|0;m=c[s>>2]|0;n=c[p>>2]|0;h=q;i=0;j=c[f+(o<<2)>>2]|0;k=c[e+(o<<2)>>2]|0;while(1){a[j>>0]=(d[t+((c[m+(b<<6)+(i<<2)>>2]|0)+(d[k+1>>0]|0))>>0]|0)+(d[v+((c[l+(b<<6)+(i<<2)>>2]|0)+(d[k>>0]|0))>>0]|0)+(d[u+((c[n+(b<<6)+(i<<2)>>2]|0)+(d[k+2>>0]|0))>>0]|0);h=h+-1|0;if(!h)break;else{i=i+1&15;j=j+1|0;k=k+3|0}}b=b+1&15;c[w>>2]=b;o=o+1|0}while((o|0)!=(g|0));return}function vw(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,v=0,w=0;u=c[b+484>>2]|0;v=c[b+120>>2]|0;w=c[b+112>>2]|0;if((g|0)<=0)return;t=u+48|0;m=u+24|0;n=(w|0)==0;if((v|0)<=0){b=0;do{aP(c[f+(b<<2)>>2]|0,0,w|0)|0;c[t>>2]=(c[t>>2]|0)+1&15;b=b+1|0}while((b|0)!=(g|0));return}h=0;do{o=f+(h<<2)|0;aP(c[o>>2]|0,0,w|0)|0;p=c[t>>2]|0;q=e+(h<<2)|0;if(!n){i=0;do{r=c[(c[m>>2]|0)+(i<<2)>>2]|0;s=c[u+52+(i<<2)>>2]|0;b=w;j=c[o>>2]|0;k=0;l=(c[q>>2]|0)+i|0;while(1){a[j>>0]=(d[j>>0]|0)+(d[r+((c[s+(p<<6)+(k<<2)>>2]|0)+(d[l>>0]|0))>>0]|0);b=b+-1|0;if(!b)break;else{j=j+1|0;k=k+1&15;l=l+v|0}}i=i+1|0}while((i|0)!=(v|0))}c[t>>2]=p+1&15;h=h+1|0}while((h|0)!=(g|0));return}function ww(e,f,g,h){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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;J=c[e+484>>2]|0;K=c[e+120>>2]|0;L=c[e+112>>2]|0;y=c[e+336>>2]|0;if((h|0)<=0)return;z=(K|0)>0;A=J+84|0;C=J+24|0;D=J+16|0;E=(L|0)==0;F=L+-1|0;G=B(F,K)|0;H=0-K|0;I=L+1|0;x=0;do{v=g+(x<<2)|0;aP(c[v>>2]|0,0,L|0)|0;a:do if(z){w=f+(x<<2)|0;if(E){i=(c[A>>2]|0)==0;e=0;while(1){w=c[J+68+(e<<2)>>2]|0;b[(i?w:w+(I<<1)|0)>>1]=0;e=e+1|0;if((e|0)==(K|0))break a}}r=0;do{e=(c[w>>2]|0)+r|0;i=c[v>>2]|0;if(!(c[A>>2]|0)){s=K;t=1;u=c[J+68+(r<<2)>>2]|0}else{s=H;t=-1;u=(c[J+68+(r<<2)>>2]|0)+(I<<1)|0;e=e+G|0;i=i+F|0}o=c[(c[C>>2]|0)+(r<<2)>>2]|0;p=c[(c[D>>2]|0)+(r<<2)>>2]|0;q=B(L,t)|0;l=0;m=L;n=0;j=0;k=u;while(1){M=k;k=k+(t<<1)|0;N=d[y+((j+8+(b[k>>1]|0)>>4)+(d[e>>0]|0))>>0]|0;j=d[o+N>>0]|0;a[i>>0]=(d[i>>0]|0)+j;j=N-(d[p+j>>0]|0)|0;b[M>>1]=(j*3|0)+n;n=(j*5|0)+l|0;m=m+-1|0;if(!m)break;else{l=j;j=j*7|0;e=e+s|0;i=i+t|0}}b[u+(q<<1)>>1]=n;r=r+1|0}while((r|0)!=(K|0))}while(0);c[A>>2]=(c[A>>2]|0)==0&1;x=x+1|0}while((x|0)!=(h|0));return}function xw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+428|0;d=c[g>>2]|0;e=B(d,c[a+48>>2]|0)|0;f=c[a+52>>2]|0;do if(e>>>0>f>>>0){if(e>>>0<=f<<1>>>0){f=yw(c[a+28>>2]<<1,d)|0;c[a+112>>2]=f;f=2;b=c[a+32>>2]<<1;break}if(e>>>0<=(f*3|0)>>>0){f=yw((c[a+28>>2]|0)*3|0,d)|0;c[a+112>>2]=f;f=3;b=(c[a+32>>2]|0)*3|0;break}if(e>>>0<=f<<2>>>0){f=yw(c[a+28>>2]<<2,d)|0;c[a+112>>2]=f;f=4;b=c[a+32>>2]<<2;break}if(e>>>0<=(f*5|0)>>>0){f=yw((c[a+28>>2]|0)*5|0,d)|0;c[a+112>>2]=f;f=5;b=(c[a+32>>2]|0)*5|0;break}if(e>>>0<=(f*6|0)>>>0){f=yw((c[a+28>>2]|0)*6|0,d)|0;c[a+112>>2]=f;f=6;b=(c[a+32>>2]|0)*6|0;break}if(e>>>0<=(f*7|0)>>>0){f=yw((c[a+28>>2]|0)*7|0,d)|0;c[a+112>>2]=f;f=7;b=(c[a+32>>2]|0)*7|0;break}if(e>>>0<=f<<3>>>0){f=yw(c[a+28>>2]<<3,d)|0;c[a+112>>2]=f;f=8;b=c[a+32>>2]<<3;break}if(e>>>0<=(f*9|0)>>>0){f=yw((c[a+28>>2]|0)*9|0,d)|0;c[a+112>>2]=f;f=9;b=(c[a+32>>2]|0)*9|0;break}if(e>>>0<=(f*10|0)>>>0){f=yw((c[a+28>>2]|0)*10|0,d)|0;c[a+112>>2]=f;f=10;b=(c[a+32>>2]|0)*10|0;break}if(e>>>0<=(f*11|0)>>>0){f=yw((c[a+28>>2]|0)*11|0,d)|0;c[a+112>>2]=f;f=11;b=(c[a+32>>2]|0)*11|0;break}if(e>>>0<=(f*12|0)>>>0){f=yw((c[a+28>>2]|0)*12|0,d)|0;c[a+112>>2]=f;f=12;b=(c[a+32>>2]|0)*12|0;break}if(e>>>0<=(f*13|0)>>>0){f=yw((c[a+28>>2]|0)*13|0,d)|0;c[a+112>>2]=f;f=13;b=(c[a+32>>2]|0)*13|0;break}if(e>>>0<=(f*14|0)>>>0){f=yw((c[a+28>>2]|0)*14|0,d)|0;c[a+112>>2]=f;f=14;b=(c[a+32>>2]|0)*14|0;break}b=c[a+28>>2]|0;if(e>>>0>(f*15|0)>>>0){f=yw(b<<4,d)|0;c[a+112>>2]=f;f=16;b=c[a+32>>2]<<4;break}else{f=yw(b*15|0,d)|0;c[a+112>>2]=f;f=15;b=(c[a+32>>2]|0)*15|0;break}}else{f=yw(c[a+28>>2]|0,d)|0;c[a+112>>2]=f;f=1;b=c[a+32>>2]|0}while(0);e=yw(b,c[g>>2]|0)|0;c[a+116>>2]=e;c[a+324>>2]=f;c[a+328>>2]=f;e=c[a+36>>2]|0;if((e|0)<=0)return;d=0;b=c[a+216>>2]|0;while(1){c[b+36>>2]=f;c[b+40>>2]=f;d=d+1|0;if((d|0)>=(e|0))break;else b=b+88|0}return}function yw(a,b){a=a|0;b=b|0;return (a+-1+b|0)/(b|0)|0|0}function zw(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;j=zb;zb=zb+16|0;i=j;e=c[a+20>>2]|0;if((e|0)!=205){h=c[a>>2]|0;c[h+20>>2]=21;c[h+24>>2]=e;Sb[c[c[a>>2]>>2]&255](a)}e=a+140|0;f=c[e>>2]|0;g=c[a+116>>2]|0;if(f>>>0>=g>>>0){i=c[a>>2]|0;c[i+20>>2]=126;Ub[c[i+4>>2]&63](a,-1);i=0;zb=j;return i|0}h=c[a+8>>2]|0;if(h|0){c[h+4>>2]=f;c[h+8>>2]=g;Sb[c[h>>2]&255](a)}c[i>>2]=0;Xb[c[(c[a+448>>2]|0)+4>>2]&31](a,b,i,d);i=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+i;zb=j;return i|0}function Aw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=zb;zb=zb+16|0;j=k;g=k+8|0;h=k+12|0;d=b+4|0;c[d>>2]=0;e=Bw(b)|0;c[g>>2]=e;f=Cw(b,84)|0;if(!f){Dw(b);i=c[b>>2]|0;c[i+20>>2]=56;c[i+24>>2]=0;Sb[c[c[b>>2]>>2]&255](b)}c[f>>2]=33;c[f+4>>2]=34;c[f+8>>2]=9;c[f+12>>2]=10;c[f+16>>2]=39;c[f+20>>2]=40;c[f+24>>2]=135;c[f+28>>2]=21;c[f+32>>2]=22;c[f+36>>2]=52;c[f+40>>2]=136;c[f+48>>2]=1e9;i=f+44|0;c[i>>2]=e;c[f+56>>2]=0;c[f+64>>2]=0;c[f+52>>2]=0;c[f+60>>2]=0;c[f+68>>2]=0;c[f+72>>2]=0;c[f+76>>2]=84;c[d>>2]=f;b=Ja(46641)|0;if(!b){zb=k;return}a[h>>0]=120;c[j>>2]=g;c[j+4>>2]=h;if((Cz(b,46649,j)|0)>0){switch(a[h>>0]|0){case 77:case 109:{b=(c[g>>2]|0)*1e3|0;c[g>>2]=b;break}default:b=c[g>>2]|0}c[i>>2]=b*1e3}zb=k;return}function Bw(a){a=a|0;return 0}function Cw(a,b){a=a|0;b=b|0;return FO(b)|0}function Dw(a){a=a|0;return}function Ew(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;k=c[a+4>>2]|0;if(d>>>0>999999984){j=c[a>>2]|0;c[j+20>>2]=56;c[j+24>>2]=1;Sb[c[c[a>>2]>>2]&255](a)}j=d&7;j=((j|0)==0?0:8-j|0)+d|0;if(b>>>0>1){i=c[a>>2]|0;c[i+20>>2]=15;c[i+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}i=k+52+(b<<2)|0;d=c[i>>2]|0;a:do if(!d){d=0;f=9}else while(1){if((c[d+8>>2]|0)>>>0>=j>>>0)break a;e=c[d>>2]|0;if(!e){f=9;break}else d=e}while(0);do if((f|0)==9){h=(d|0)==0;b=c[(h?15936:15944)+(b<<2)>>2]|0;e=999999984-j|0;b=b>>>0>e>>>0?e:b;e=b+j|0;g=e+16|0;f=Cw(a,g)|0;if(!f){do{if(b>>>0<100){g=c[a>>2]|0;c[g+20>>2]=56;c[g+24>>2]=2;Sb[c[c[a>>2]>>2]&255](a)}b=b>>>1;e=b+j|0;g=e+16|0;f=Cw(a,g)|0}while(!(f|0));b=g}else b=g;k=k+76|0;c[k>>2]=(c[k>>2]|0)+b;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=e;if(h){c[i>>2]=f;d=f;break}else{c[d>>2]=f;d=f;break}}while(0);i=d+4|0;k=c[i>>2]|0;c[i>>2]=k+j;i=d+8|0;c[i>>2]=(c[i>>2]|0)-j;return d+16+k|0}function Fw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;if(d>>>0>999999984){f=c[a>>2]|0;c[f+20>>2]=56;c[f+24>>2]=3;Sb[c[c[a>>2]>>2]&255](a)}f=d&7;d=((f|0)==0?0:8-f|0)+d|0;if(b>>>0>1){f=c[a>>2]|0;c[f+20>>2]=15;c[f+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}e=d+16|0;f=Tw(a,e)|0;if(!f){h=c[a>>2]|0;c[h+20>>2]=56;c[h+24>>2]=4;Sb[c[c[a>>2]>>2]&255](a)}h=g+76|0;c[h>>2]=(c[h>>2]|0)+e;h=g+60+(b<<2)|0;c[f>>2]=c[h>>2];c[f+4>>2]=d;c[f+8>>2]=0;c[h>>2]=f;return f+16|0}function Gw(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;g=c[a+4>>2]|0;f=999999984/(d>>>0)|0;if(d>>>0>999999984){m=c[a>>2]|0;c[m+20>>2]=72;Sb[c[m>>2]&255](a)}h=(f|0)<(e|0)?f:e;c[g+80>>2]=h;l=Ew(a,b,e<<2)|0;if(!e)return l|0;m=~e;f=0;do{i=e-f|0;g=h;h=h>>>0>>0?h:i;i=Fw(a,b,B(h,d)|0)|0;if(h){j=f+m|0;k=~g;k=j>>>0>k>>>0?j:k;j=h;g=i;i=f;while(1){c[l+(i<<2)>>2]=g;j=j+-1|0;if(!j)break;else{g=g+d|0;i=i+1|0}}f=f+-1-k|0}}while(f>>>0>>0);return l|0}function Hw(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;g=c[a+4>>2]|0;n=d<<7;f=999999984/(n>>>0)|0;if(n>>>0>999999984){m=c[a>>2]|0;c[m+20>>2]=72;Sb[c[m>>2]&255](a)}h=(f|0)<(e|0)?f:e;c[g+80>>2]=h;l=Ew(a,b,e<<2)|0;if(!e)return l|0;m=~e;f=0;do{i=e-f|0;g=h;h=h>>>0>>0?h:i;i=Fw(a,b,B(n,h)|0)|0;if(h){j=f+m|0;k=~g;k=j>>>0>k>>>0?j:k;j=h;g=i;i=f;while(1){c[l+(i<<2)>>2]=g;j=j+-1|0;if(!j)break;else{g=g+(d<<7)|0;i=i+1|0}}f=f+-1-k|0}}while(f>>>0>>0);return l|0}function Iw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=c[a+4>>2]|0;if((b|0)==1)b=1;else{i=c[a>>2]|0;c[i+20>>2]=15;c[i+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}i=Ew(a,b,128)|0;c[i>>2]=0;c[i+4>>2]=f;c[i+8>>2]=e;c[i+12>>2]=g;c[i+32>>2]=d;c[i+40>>2]=0;h=h+68|0;c[i+44>>2]=c[h>>2];c[h>>2]=i;return i|0}function Jw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=c[a+4>>2]|0;if((b|0)==1)b=1;else{i=c[a>>2]|0;c[i+20>>2]=15;c[i+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}i=Ew(a,b,128)|0;c[i>>2]=0;c[i+4>>2]=f;c[i+8>>2]=e;c[i+12>>2]=g;c[i+32>>2]=d;c[i+40>>2]=0;h=h+72|0;c[i+44>>2]=c[h>>2];c[h>>2]=i;return i|0}function Kw(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;u=a+4|0;s=c[u>>2]|0;f=s+68|0;b=c[f>>2]|0;if(!b){d=0;e=0}else{d=0;e=0;do{if(!(c[b>>2]|0)){t=c[b+8>>2]|0;d=(B(t,c[b+12>>2]|0)|0)+d|0;e=(B(c[b+4>>2]|0,t)|0)+e|0}b=c[b+44>>2]|0}while((b|0)!=0)}r=s+72|0;b=c[r>>2]|0;if(!b)b=e;else{do{if(!(c[b>>2]|0)){t=c[b+8>>2]|0;d=(B(c[b+12>>2]<<7,t)|0)+d|0;e=(B(t<<7,c[b+4>>2]|0)|0)+e|0}b=c[b+44>>2]|0}while((b|0)!=0);b=e}if((d|0)<1)return;e=Rw(a,d,b,c[s+76>>2]|0)|0;if((e|0)<(b|0)){t=(e|0)/(d|0)|0;t=(t|0)>1?t:1}else t=1e9;b=c[f>>2]|0;if(b|0){q=s+80|0;do{if(!(c[b>>2]|0)){e=c[b+4>>2]|0;d=c[b+12>>2]|0;if(((((e+-1|0)>>>0)/(d>>>0)|0)+1|0)>(t|0)){d=B(d,t)|0;p=b+16|0;c[p>>2]=d;d=b+8|0;Sw(a,b+48|0,B(c[d>>2]|0,e)|0);c[b+40>>2]=1;e=c[p>>2]|0}else{c[b+16>>2]=e;d=b+8|0}p=c[d>>2]|0;f=c[u>>2]|0;d=999999984/(p>>>0)|0;if(p>>>0>999999984){o=c[a>>2]|0;c[o+20>>2]=72;Sb[c[o>>2]&255](a)}g=(d|0)<(e|0)?d:e;c[f+80>>2]=g;n=Ew(a,1,e<<2)|0;if(e|0){o=~e;d=0;do{f=e-d|0;j=g;g=g>>>0>>0?g:f;f=B(g,p)|0;i=c[u>>2]|0;if(f>>>0>999999984){m=c[a>>2]|0;c[m+20>>2]=56;c[m+24>>2]=3;Sb[c[c[a>>2]>>2]&255](a)}h=f&7;f=((h|0)==0?0:8-h|0)+f|0;h=f+16|0;m=Tw(a,h)|0;if(!m){l=c[a>>2]|0;c[l+20>>2]=56;c[l+24>>2]=4;Sb[c[c[a>>2]>>2]&255](a)}l=i+76|0;c[l>>2]=(c[l>>2]|0)+h;l=i+64|0;c[m>>2]=c[l>>2];c[m+4>>2]=f;c[m+8>>2]=0;c[l>>2]=m;if(g){l=d+o|0;j=~j;k=l>>>0>j>>>0;i=g;f=m+16|0;h=d;while(1){c[n+(h<<2)>>2]=f;i=i+-1|0;if(!i)break;else{f=f+p|0;h=h+1|0}}d=d+-1-(k?l:j)|0}}while(d>>>0>>0)}c[b>>2]=n;c[b+20>>2]=c[q>>2];c[b+24>>2]=0;c[b+28>>2]=0;c[b+36>>2]=0}b=c[b+44>>2]|0}while((b|0)!=0)}b=c[r>>2]|0;if(!b)return;r=s+80|0;do{if(!(c[b>>2]|0)){e=c[b+4>>2]|0;d=c[b+12>>2]|0;if(((((e+-1|0)>>>0)/(d>>>0)|0)+1|0)>(t|0)){d=B(d,t)|0;s=b+16|0;c[s>>2]=d;d=b+8|0;Sw(a,b+48|0,B(e<<7,c[d>>2]|0)|0);c[b+40>>2]=1;e=c[s>>2]|0}else{c[b+16>>2]=e;d=b+8|0}p=c[d>>2]|0;f=c[u>>2]|0;q=p<<7;d=999999984/(q>>>0)|0;if(q>>>0>999999984){s=c[a>>2]|0;c[s+20>>2]=72;Sb[c[s>>2]&255](a)}g=(d|0)<(e|0)?d:e;c[f+80>>2]=g;n=Ew(a,1,e<<2)|0;if(e|0){o=~e;d=0;do{f=e-d|0;j=g;g=g>>>0>>0?g:f;f=B(g,q)|0;h=c[u>>2]|0;if(f>>>0>999999984){s=c[a>>2]|0;c[s+20>>2]=56;c[s+24>>2]=3;Sb[c[c[a>>2]>>2]&255](a)}i=f|16;m=Tw(a,i)|0;if(!m){s=c[a>>2]|0;c[s+20>>2]=56;c[s+24>>2]=4;Sb[c[c[a>>2]>>2]&255](a)}s=h+76|0;c[s>>2]=(c[s>>2]|0)+i;s=h+64|0;c[m>>2]=c[s>>2];c[m+4>>2]=f;c[m+8>>2]=0;c[s>>2]=m;if(g){l=d+o|0;j=~j;k=l>>>0>j>>>0;i=g;f=m+16|0;h=d;while(1){c[n+(h<<2)>>2]=f;i=i+-1|0;if(!i)break;else{f=f+(p<<7)|0;h=h+1|0}}d=d+-1-(k?l:j)|0}}while(d>>>0>>0)}c[b>>2]=n;c[b+20>>2]=c[r>>2];c[b+24>>2]=0;c[b+28>>2]=0;c[b+36>>2]=0}b=c[b+44>>2]|0}while((b|0)!=0);return}function Lw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;w=e+d|0;s=b+4|0;if(!((w>>>0<=(c[s>>2]|0)>>>0?(c[b+12>>2]|0)>>>0>=e>>>0:0)?(c[b>>2]|0)!=0:0)){x=c[a>>2]|0;c[x+20>>2]=23;Sb[c[x>>2]&255](a)}x=b+24|0;n=c[x>>2]|0;if(!(n>>>0<=d>>>0?w>>>0<=((c[b+16>>2]|0)+n|0)>>>0:0))v=7;a:do if((v|0)==7){if(!(c[b+40>>2]|0)){n=c[a>>2]|0;c[n+20>>2]=71;Sb[c[n>>2]&255](a)}k=b+36|0;if(c[k>>2]|0){l=c[b+8>>2]|0;e=c[x>>2]|0;m=b+20|0;n=b+16|0;g=c[n>>2]|0;b:do if((g|0)>0?(o=b+28|0,p=b+48|0,q=b+52|0,h=c[m>>2]|0,h=(h|0)<(g|0)?h:g,j=(c[o>>2]|0)-e|0,j=(h|0)<(j|0)?h:j,h=(c[s>>2]|0)-e|0,h=(j|0)<(h|0)?j:h,(h|0)>=1):0){i=B(e,l)|0;j=0;e=h;while(1){h=B(e,l)|0;Yb[c[q>>2]&63](a,p,c[(c[b>>2]|0)+(j<<2)>>2]|0,i,h);e=c[m>>2]|0;j=e+j|0;g=c[n>>2]|0;if((g|0)<=(j|0))break b;y=g-j|0;y=(e|0)<(y|0)?e:y;e=j+(c[x>>2]|0)|0;g=(c[o>>2]|0)-e|0;g=(y|0)<(g|0)?y:g;e=(c[s>>2]|0)-e|0;e=(g|0)<(e|0)?g:e;if((e|0)<1)break;else i=h+i|0}}while(0);c[k>>2]=0}k=b+16|0;e=c[k>>2]|0;if((c[x>>2]|0)>>>0>>0)g=d;else{g=w-e|0;g=(g|0)>0?g:0}c[x>>2]=g;l=c[b+8>>2]|0;m=b+20|0;if((e|0)>0?(t=b+28|0,u=b+48|0,r=c[m>>2]|0,r=(r|0)<(e|0)?r:e,y=(c[t>>2]|0)-g|0,y=(r|0)<(y|0)?r:y,r=(c[s>>2]|0)-g|0,r=(y|0)<(r|0)?y:r,(r|0)>=1):0){i=B(l,g)|0;j=0;e=r;while(1){h=B(e,l)|0;Yb[c[u>>2]&63](a,u,c[(c[b>>2]|0)+(j<<2)>>2]|0,i,h);g=c[m>>2]|0;j=g+j|0;e=c[k>>2]|0;if((e|0)<=(j|0))break a;r=e-j|0;r=(g|0)<(r|0)?g:r;e=j+(c[x>>2]|0)|0;y=(c[t>>2]|0)-e|0;y=(r|0)<(y|0)?r:y;e=(c[s>>2]|0)-e|0;e=(y|0)<(e|0)?y:e;if((e|0)<1)break;else i=h+i|0}}}while(0);h=b+28|0;e=c[h>>2]|0;do if(e>>>0>>0){g=(f|0)==0;if(e>>>0>>0)if(g){e=d;g=0}else{e=c[a>>2]|0;c[e+20>>2]=23;Sb[c[e>>2]&255](a);e=d;v=28}else if(g)g=0;else v=28;if((v|0)==28){c[h>>2]=w;g=1}if(!(c[b+32>>2]|0)){if(g)break;y=c[a>>2]|0;c[y+20>>2]=23;Sb[c[y>>2]&255](a);break}h=c[b+8>>2]|0;g=c[x>>2]|0;e=e-g|0;g=w-g|0;if(e>>>0>>0)do{aP(c[(c[b>>2]|0)+(e<<2)>>2]|0,0,h|0)|0;e=e+1|0}while((e|0)!=(g|0))}while(0);if(!f){f=c[b>>2]|0;y=c[x>>2]|0;y=d-y|0;y=f+(y<<2)|0;return y|0}c[b+36>>2]=1;f=c[b>>2]|0;y=c[x>>2]|0;y=d-y|0;y=f+(y<<2)|0;return y|0}function Mw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;w=e+d|0;s=b+4|0;if(!((w>>>0<=(c[s>>2]|0)>>>0?(c[b+12>>2]|0)>>>0>=e>>>0:0)?(c[b>>2]|0)!=0:0)){x=c[a>>2]|0;c[x+20>>2]=23;Sb[c[x>>2]&255](a)}x=b+24|0;n=c[x>>2]|0;if(!(n>>>0<=d>>>0?w>>>0<=((c[b+16>>2]|0)+n|0)>>>0:0))v=7;a:do if((v|0)==7){if(!(c[b+40>>2]|0)){n=c[a>>2]|0;c[n+20>>2]=71;Sb[c[n>>2]&255](a)}k=b+36|0;if(c[k>>2]|0){l=c[b+8>>2]<<7;e=c[x>>2]|0;m=b+20|0;n=b+16|0;g=c[n>>2]|0;b:do if((g|0)>0?(o=b+28|0,p=b+48|0,q=b+52|0,h=c[m>>2]|0,h=(h|0)<(g|0)?h:g,j=(c[o>>2]|0)-e|0,j=(h|0)<(j|0)?h:j,h=(c[s>>2]|0)-e|0,h=(j|0)<(h|0)?j:h,(h|0)>=1):0){i=B(e,l)|0;j=0;e=h;while(1){h=B(e,l)|0;Yb[c[q>>2]&63](a,p,c[(c[b>>2]|0)+(j<<2)>>2]|0,i,h);e=c[m>>2]|0;j=e+j|0;g=c[n>>2]|0;if((g|0)<=(j|0))break b;y=g-j|0;y=(e|0)<(y|0)?e:y;e=j+(c[x>>2]|0)|0;g=(c[o>>2]|0)-e|0;g=(y|0)<(g|0)?y:g;e=(c[s>>2]|0)-e|0;e=(g|0)<(e|0)?g:e;if((e|0)<1)break;else i=h+i|0}}while(0);c[k>>2]=0}k=b+16|0;e=c[k>>2]|0;if((c[x>>2]|0)>>>0>>0)g=d;else{g=w-e|0;g=(g|0)>0?g:0}c[x>>2]=g;l=c[b+8>>2]<<7;m=b+20|0;if((e|0)>0?(t=b+28|0,u=b+48|0,r=c[m>>2]|0,r=(r|0)<(e|0)?r:e,y=(c[t>>2]|0)-g|0,y=(r|0)<(y|0)?r:y,r=(c[s>>2]|0)-g|0,r=(y|0)<(r|0)?y:r,(r|0)>=1):0){i=B(l,g)|0;j=0;e=r;while(1){h=B(e,l)|0;Yb[c[u>>2]&63](a,u,c[(c[b>>2]|0)+(j<<2)>>2]|0,i,h);e=c[m>>2]|0;j=e+j|0;g=c[k>>2]|0;if((g|0)<=(j|0))break a;r=g-j|0;r=(e|0)<(r|0)?e:r;e=j+(c[x>>2]|0)|0;y=(c[t>>2]|0)-e|0;y=(r|0)<(y|0)?r:y;e=(c[s>>2]|0)-e|0;e=(y|0)<(e|0)?y:e;if((e|0)<1)break;else i=h+i|0}}}while(0);h=b+28|0;e=c[h>>2]|0;do if(e>>>0>>0){g=(f|0)==0;if(e>>>0>>0)if(g){e=d;g=0}else{e=c[a>>2]|0;c[e+20>>2]=23;Sb[c[e>>2]&255](a);e=d;v=28}else if(g)g=0;else v=28;if((v|0)==28){c[h>>2]=w;g=1}if(!(c[b+32>>2]|0)){if(g)break;y=c[a>>2]|0;c[y+20>>2]=23;Sb[c[y>>2]&255](a);break}h=c[b+8>>2]<<7;g=c[x>>2]|0;e=e-g|0;g=w-g|0;if(e>>>0>>0)do{aP(c[(c[b>>2]|0)+(e<<2)>>2]|0,0,h|0)|0;e=e+1|0}while((e|0)!=(g|0))}while(0);if(!f){f=c[b>>2]|0;y=c[x>>2]|0;y=d-y|0;y=f+(y<<2)|0;return y|0}c[b+36>>2]=1;f=c[b>>2]|0;y=c[x>>2]|0;y=d-y|0;y=f+(y<<2)|0;return y|0}function Nw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;if(b>>>0<=1){if((b|0)==1){f=g+68|0;d=c[f>>2]|0;if(d|0)do{e=d+40|0;if(c[e>>2]|0){c[e>>2]=0;Ub[c[d+56>>2]&63](a,d+48|0)}d=c[d+44>>2]|0}while((d|0)!=0);c[f>>2]=0;f=g+72|0;d=c[f>>2]|0;if(d|0)do{e=d+40|0;if(c[e>>2]|0){c[e>>2]=0;Ub[c[d+56>>2]&63](a,d+48|0)}d=c[d+44>>2]|0}while((d|0)!=0);c[f>>2]=0}}else{f=c[a>>2]|0;c[f+20>>2]=15;c[f+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}f=g+60+(b<<2)|0;d=c[f>>2]|0;c[f>>2]=0;if(d|0){e=g+76|0;do{h=d;d=c[d>>2]|0;f=(c[h+4>>2]|0)+16+(c[h+8>>2]|0)|0;Qw(a,h,f);c[e>>2]=(c[e>>2]|0)-f}while((d|0)!=0)}h=g+52+(b<<2)|0;d=c[h>>2]|0;c[h>>2]=0;if(!d)return;e=g+76|0;do{g=d;d=c[d>>2]|0;h=(c[g+4>>2]|0)+16+(c[g+8>>2]|0)|0;Pw(a,g,h);c[e>>2]=(c[e>>2]|0)-h}while((d|0)!=0);return}function Ow(a){a=a|0;var b=0;Nw(a,1);Nw(a,0);b=a+4|0;Pw(a,c[b>>2]|0,84);c[b>>2]=0;Dw(a);return}function Pw(a,b,c){a=a|0;b=b|0;c=c|0;GO(b);return}function Qw(a,b,c){a=a|0;b=b|0;c=c|0;GO(b);return}function Rw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return c|0}function Sw(a,b,d){a=a|0;b=b|0;d=d|0;d=c[a>>2]|0;c[d+20>>2]=51;Sb[c[d>>2]&255](a);return}function Tw(a,b){a=a|0;b=b|0;return FO(b)|0}function Uw(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[b>>2]|0;if(d|0)Sb[c[d+40>>2]&255](a);c[b>>2]=0;c[a+20>>2]=0;return}function Vw(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)return;Ub[c[b+36>>2]&63](a,1);b=a+20|0;if(!(c[a+16>>2]|0)){c[b>>2]=100;return}else{c[b>>2]=200;c[a+312>>2]=0;return}}function Ww(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[a+4>>2]=0;if((b|0)!=90){e=c[a>>2]|0;c[e+20>>2]=13;c[e+24>>2]=90;c[(c[a>>2]|0)+28>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}if((d|0)==488)b=a;else{b=c[a>>2]|0;c[b+20>>2]=22;c[b+24>>2]=488;c[(c[a>>2]|0)+28>>2]=d;Sb[c[c[a>>2]>>2]&255](a);b=a}f=c[a>>2]|0;d=a+12|0;e=c[d>>2]|0;aP(a+4|0,0,484)|0;c[a>>2]=f;c[d>>2]=e;c[a+16>>2]=1;Aw(b);c[a+8>>2]=0;c[a+24>>2]=0;c[a+312>>2]=0;b=a+164|0;d=b+48|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Ut(a);Xw(a);c[a+20>>2]=200;return}function Xw(a){a=a|0;var b=0;b=Jb[c[c[a+4>>2]>>2]&63](a,0,28)|0;c[a+460>>2]=b;c[b>>2]=90;c[b+4>>2]=137;c[b+8>>2]=138;c[b+12>>2]=139;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=1;return}function Yw(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,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;G=a+460|0;b=c[G>>2]|0;H=b+20|0;if(c[H>>2]|0){a=2;return a|0}I=a+464|0;K=b+24|0;L=a+340|0;F=b+16|0;l=a+32|0;m=a+212|0;n=a+28|0;o=a+36|0;p=a+316|0;q=a+320|0;r=a+216|0;s=a+220|0;t=a+224|0;u=a+324|0;v=a+328|0;w=a+428|0;x=a+432|0;y=a+436|0;z=a+416|0;A=a+332|0;C=a+412|0;D=a+420|0;E=a+424|0;a:while(1){b=Gb[c[(c[I>>2]|0)+4>>2]&127](a)|0;switch(b|0){case 2:{k=58;break a}case 1:break;default:{k=63;break a}}b:do switch(c[K>>2]|0){case 0:{if(!(c[F>>2]|0)){j=c[a>>2]|0;c[j+20>>2]=36;Sb[c[j>>2]&255](a)}if(c[L>>2]|0){k=57;break a}break}case 1:{if(!((c[l>>2]|0)<=65500?(c[n>>2]|0)<=65500:0)){j=c[a>>2]|0;c[j+20>>2]=42;c[j+24>>2]=65500;Sb[c[c[a>>2]>>2]&255](a)}b=c[m>>2]|0;if((b+-8|0)>>>0>4){j=c[a>>2]|0;c[j+20>>2]=16;c[j+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}b=c[o>>2]|0;if((b|0)>10){j=c[a>>2]|0;c[j+20>>2]=27;c[j+24>>2]=b;c[(c[a>>2]|0)+28>>2]=10;Sb[c[c[a>>2]>>2]&255](a);b=c[o>>2]|0}c[p>>2]=1;c[q>>2]=1;if((b|0)>0){i=0;j=c[r>>2]|0;f=1;h=1;while(1){d=j+8|0;e=c[d>>2]|0;g=j+12|0;if((e+-1|0)>>>0<=3?(J=c[g>>2]|0,(J+-1|0)>>>0<=3):0)d=J;else{h=c[a>>2]|0;c[h+20>>2]=19;Sb[c[h>>2]&255](a);h=c[p>>2]|0;e=c[d>>2]|0;f=c[q>>2]|0;d=c[g>>2]|0;b=c[o>>2]|0}h=(h|0)>(e|0)?h:e;c[p>>2]=h;f=(f|0)>(d|0)?f:d;c[q>>2]=f;i=i+1|0;if((i|0)>=(b|0)){d=b;break}else j=j+88|0}}else d=b;c:do if(!(c[s>>2]|0)){if(c[t>>2]|0?c[L>>2]|0:0){k=22;break}do switch(c[z>>2]|0){case 0:{c[w>>2]=1;c[x>>2]=2064;c[y>>2]=0;b=1;break c}case 3:{c[w>>2]=2;c[x>>2]=3280;c[y>>2]=3;b=2;break c}case 8:{c[w>>2]=3;c[x>>2]=3168;c[y>>2]=8;b=3;break c}case 15:{c[w>>2]=4;c[x>>2]=3040;c[y>>2]=15;b=4;break c}case 24:{c[w>>2]=5;c[x>>2]=2864;c[y>>2]=24;b=5;break c}case 35:{c[w>>2]=6;c[x>>2]=2656;c[y>>2]=35;b=6;break c}case 48:{c[w>>2]=7;c[x>>2]=2384;c[y>>2]=48;b=7;break c}case 63:{c[w>>2]=8;c[x>>2]=2064;c[y>>2]=63;b=8;break c}case 80:{c[w>>2]=9;c[x>>2]=2064;c[y>>2]=63;b=9;break c}case 99:{c[w>>2]=10;c[x>>2]=2064;c[y>>2]=63;b=10;break c}case 120:{c[w>>2]=11;c[x>>2]=2064;c[y>>2]=63;b=11;break c}case 143:{c[w>>2]=12;c[x>>2]=2064;c[y>>2]=63;b=12;break c}case 168:{c[w>>2]=13;c[x>>2]=2064;c[y>>2]=63;b=13;break c}case 195:{c[w>>2]=14;c[x>>2]=2064;c[y>>2]=63;b=14;break c}case 224:{c[w>>2]=15;c[x>>2]=2064;c[y>>2]=63;b=15;break c}case 255:{c[w>>2]=16;c[x>>2]=2064;c[y>>2]=63;b=16;break c}default:{b=c[a>>2]|0;c[b+20>>2]=17;c[b+24>>2]=c[C>>2];c[(c[a>>2]|0)+28>>2]=c[z>>2];c[(c[a>>2]|0)+32>>2]=c[D>>2];c[(c[a>>2]|0)+36>>2]=c[E>>2];Sb[c[c[a>>2]>>2]&255](a);b=c[w>>2]|0;d=c[o>>2]|0;break c}}while(0)}else k=22;while(0);if((k|0)==22){c[w>>2]=8;c[x>>2]=2064;c[y>>2]=63;b=8}c[u>>2]=b;c[v>>2]=b;if((d|0)>0){d=0;e=c[r>>2]|0;while(1){c[e+36>>2]=b;c[e+40>>2]=b;k=e+8|0;j=B(c[k>>2]|0,c[n>>2]|0)|0;b=yw(j,B(c[p>>2]|0,b)|0)|0;c[e+28>>2]=b;b=e+12|0;j=B(c[b>>2]|0,c[l>>2]|0)|0;j=yw(j,B(c[w>>2]|0,c[q>>2]|0)|0)|0;c[e+32>>2]=j;k=B(c[k>>2]|0,c[n>>2]|0)|0;k=yw(k,c[p>>2]|0)|0;c[e+44>>2]=k;b=B(c[b>>2]|0,c[l>>2]|0)|0;b=yw(b,c[q>>2]|0)|0;c[e+48>>2]=b;c[e+52>>2]=1;c[e+80>>2]=0;b=d+1|0;if((b|0)>=(c[o>>2]|0))break;d=b;e=e+88|0;b=c[w>>2]|0}b=c[w>>2]|0}b=yw(c[l>>2]|0,B(b,c[q>>2]|0)|0)|0;c[A>>2]=b;b=c[L>>2]|0;if((b|0)>=(c[o>>2]|0)?(c[t>>2]|0)==0:0){c[(c[G>>2]|0)+16>>2]=0;k=50;break b}c[(c[G>>2]|0)+16>>2]=1;k=50;break}default:{b=c[L>>2]|0;k=50}}while(0);if((k|0)==50){k=0;if(b|0){k=52;break}c[K>>2]=2}}if((k|0)==52){c[K>>2]=0;a=1;return a|0}else if((k|0)==57){_w(a);a=1;return a|0}else if((k|0)==58){c[H>>2]=1;if(!(c[K>>2]|0)){d=a+152|0;b=c[a+144>>2]|0;if((c[d>>2]|0)<=(b|0)){a=2;return a|0}c[d>>2]=b;a=2;return a|0}else{if(!(c[(c[I>>2]|0)+16>>2]|0)){a=2;return a|0}L=c[a>>2]|0;c[L+20>>2]=62;Sb[c[L>>2]&255](a);a=2;return a|0}}else if((k|0)==63)return b|0;return 0}function Zw(a){a=a|0;var b=0;b=c[a+460>>2]|0;c[b>>2]=90;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=1;Sb[c[(c[a>>2]|0)+16>>2]&255](a);Sb[c[c[a+464>>2]>>2]&255](a);c[a+160>>2]=0;return}function _w(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=a+340|0;b=c[h>>2]|0;if((b|0)!=1){if((b+-1|0)>>>0>3){g=c[a>>2]|0;c[g+20>>2]=27;c[g+24>>2]=b;c[(c[a>>2]|0)+28>>2]=4;Sb[c[c[a>>2]>>2]&255](a)}f=a+428|0;g=yw(c[a+28>>2]|0,B(c[f>>2]|0,c[a+316>>2]|0)|0)|0;c[a+360>>2]=g;f=yw(c[a+32>>2]|0,B(c[f>>2]|0,c[a+320>>2]|0)|0)|0;c[a+364>>2]=f;f=a+368|0;c[f>>2]=0;if((c[h>>2]|0)<=0){g=a+468|0;g=c[g>>2]|0;g=c[g>>2]|0;Sb[g&255](a);g=a+452|0;h=c[g>>2]|0;h=c[h>>2]|0;Sb[h&255](a);g=c[g>>2]|0;g=g+4|0;g=c[g>>2]|0;h=a+460|0;h=c[h>>2]|0;c[h>>2]=g;return}d=0;e=0;while(1){g=c[a+344+(d<<2)>>2]|0;k=c[g+8>>2]|0;c[g+56>>2]=k;j=c[g+12>>2]|0;c[g+60>>2]=j;b=B(j,k)|0;c[g+64>>2]=b;i=B(c[g+36>>2]|0,k)|0;c[g+68>>2]=i;i=((c[g+28>>2]|0)>>>0)%(k>>>0)|0;c[g+72>>2]=(i|0)==0?k:i;i=((c[g+32>>2]|0)>>>0)%(j>>>0)|0;c[g+76>>2]=(i|0)==0?j:i;if((b+e|0)>10){k=c[a>>2]|0;c[k+20>>2]=14;Sb[c[k>>2]&255](a)}if((b|0)>0)while(1){k=c[f>>2]|0;c[f>>2]=k+1;c[a+372+(k<<2)>>2]=d;if((b|0)>1)b=b+-1|0;else break}d=d+1|0;b=c[h>>2]|0;if((d|0)>=(b|0))break;e=c[f>>2]|0}if((b|0)<=0){j=a+468|0;j=c[j>>2]|0;j=c[j>>2]|0;Sb[j&255](a);j=a+452|0;k=c[j>>2]|0;k=c[k>>2]|0;Sb[k&255](a);j=c[j>>2]|0;j=j+4|0;j=c[j>>2]|0;k=a+460|0;k=c[k>>2]|0;c[k>>2]=j;return}}else{b=c[a+344>>2]|0;c[a+360>>2]=c[b+28>>2];k=c[b+32>>2]|0;c[a+364>>2]=k;c[b+56>>2]=1;c[b+60>>2]=1;c[b+64>>2]=1;c[b+68>>2]=c[b+36>>2];c[b+72>>2]=1;j=c[b+12>>2]|0;k=(k>>>0)%(j>>>0)|0;c[b+76>>2]=(k|0)==0?j:k;c[a+368>>2]=1;c[a+372>>2]=0;b=1}g=a+4|0;f=0;do{d=c[a+344+(f<<2)>>2]|0;e=d+80|0;if(!(c[e>>2]|0)){d=c[d+16>>2]|0;b=a+164+(d<<2)|0;if(!(d>>>0<=3?(c[b>>2]|0)!=0:0)){k=c[a>>2]|0;c[k+20>>2]=54;c[k+24>>2]=d;Sb[c[c[a>>2]>>2]&255](a)}k=Jb[c[c[g>>2]>>2]&63](a,1,132)|0;_O(k|0,c[b>>2]|0,132)|0;c[e>>2]=k;b=c[h>>2]|0}f=f+1|0}while((f|0)<(b|0));j=a+468|0;j=c[j>>2]|0;j=c[j>>2]|0;Sb[j&255](a);j=a+452|0;k=c[j>>2]|0;k=c[k>>2]|0;Sb[k&255](a);j=c[j>>2]|0;j=j+4|0;j=c[j>>2]|0;k=a+460|0;k=c[k>>2]|0;c[k>>2]=j;return}function $w(a){a=a|0;Sb[c[(c[a+468>>2]|0)+8>>2]&255](a);c[c[a+460>>2]>>2]=90;return}function ax(a){a=a|0;Uw(a);return}function bx(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+20>>2]|0;if((d&-2|0)!=200){e=c[a>>2]|0;c[e+20>>2]=21;c[e+24>>2]=d;Sb[c[c[a>>2]>>2]&255](a)}d=cx(a)|0;switch(d|0){case 1:{e=1;return e|0}case 2:{if(b){e=c[a>>2]|0;c[e+20>>2]=53;Sb[c[e>>2]&255](a)}Vw(a);e=2;return e|0}default:{e=d;return e|0}}return 0}function cx(b){b=b|0;var d=0,e=0,f=0,h=0,i=0;i=b+20|0;d=c[i>>2]|0;switch(d|0){case 200:{d=b+460|0;Sb[c[(c[d>>2]|0)+4>>2]&255](b);Sb[c[(c[b+24>>2]|0)+8>>2]&255](b);c[i>>2]=201;break}case 201:{d=b+460|0;break}case 210:case 208:case 207:case 206:case 205:case 204:case 203:{i=Gb[c[c[b+460>>2]>>2]&127](b)|0;return i|0}case 202:{i=1;return i|0}default:{i=c[b>>2]|0;c[i+20>>2]=21;c[i+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b);i=0;return i|0}}d=Gb[c[c[d>>2]>>2]&127](b)|0;if((d|0)!=1){i=d;return i|0}d=c[b+36>>2]|0;a:do switch(d|0){case 1:{e=d;break}case 3:{f=c[b+216>>2]|0;d=c[f>>2]|0;e=c[f+88>>2]|0;f=c[f+176>>2]|0;h=(d|0)==1;if(!(h&(e|0)==2&(f|0)==3))if(!(h&(e|0)==34&(f|0)==35))if(!((d|0)==82&(e|0)==71&(f|0)==66))if(!((d|0)==114&(e|0)==103&(f|0)==98))if(!(c[b+284>>2]|0)){if(!(c[b+296>>2]|0)){h=c[b>>2]|0;c[h+24>>2]=d;c[h+28>>2]=e;c[h+32>>2]=f;c[h+20>>2]=113;Ub[c[h+4>>2]&63](b,1);e=2;d=3;break a}d=a[b+300>>0]|0;switch(d<<24>>24){case 0:{e=2;d=2;break a}case 1:{e=2;d=3;break a}default:{e=c[b>>2]|0;c[e+20>>2]=116;c[e+24>>2]=d&255;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1);e=2;d=3;break a}}}else{e=2;d=3}else{e=2;d=6}else{e=2;d=2}else{e=2;d=7}else{e=2;d=3}break}case 4:{if(!(c[b+296>>2]|0)){e=4;d=4}else{d=a[b+300>>0]|0;switch(d<<24>>24){case 0:{e=4;d=4;break a}case 2:{e=4;d=5;break a}default:{e=c[b>>2]|0;c[e+20>>2]=116;c[e+24>>2]=d&255;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1);e=4;d=5;break a}}}break}default:{e=0;d=0}}while(0);c[b+40>>2]=d;c[b+44>>2]=e;h=c[b+428>>2]|0;c[b+48>>2]=h;c[b+52>>2]=h;g[b+56>>3]=1.0;c[b+64>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;c[b+76>>2]=1;c[b+80>>2]=1;c[b+84>>2]=0;c[b+88>>2]=2;c[b+92>>2]=1;c[b+96>>2]=256;c[b+136>>2]=0;c[b+100>>2]=0;c[b+104>>2]=0;c[b+108>>2]=0;c[i>>2]=202;i=1;return i|0}function dx(a){a=a|0;var b=0,d=0,e=0;b=a+20|0;d=c[b>>2]|0;if((d+-205|0)>>>0<2?(c[a+64>>2]|0)==0:0){if((c[a+140>>2]|0)>>>0<(c[a+116>>2]|0)>>>0){d=c[a>>2]|0;c[d+20>>2]=69;Sb[c[d>>2]&255](a)}Sb[c[(c[a+444>>2]|0)+4>>2]&255](a);c[b>>2]=210}else e=6;a:do if((e|0)==6)switch(d|0){case 210:break a;case 207:{c[b>>2]=210;break a}default:{e=c[a>>2]|0;c[e+20>>2]=21;c[e+24>>2]=d;Sb[c[c[a>>2]>>2]&255](a);break a}}while(0);d=a+460|0;b=c[d>>2]|0;b:do if(!(c[b+20>>2]|0)){while(1){if(!(Gb[c[b>>2]&127](a)|0)){b=0;break}b=c[d>>2]|0;if(c[b+20>>2]|0)break b}return b|0}while(0);Sb[c[(c[a+24>>2]|0)+24>>2]&255](a);Vw(a);a=1;return a|0}function ex(a){a=a|0;c[a>>2]=140;c[a+4>>2]=53;c[a+8>>2]=141;c[a+12>>2]=54;c[a+16>>2]=142;c[a+104>>2]=0;c[a+108>>2]=0;c[a+20>>2]=0;c[a+112>>2]=3824;c[a+116>>2]=126;c[a+120>>2]=0;c[a+124>>2]=0;c[a+128>>2]=0;return a|0}function fx(a){a=a|0;Sb[c[(c[a>>2]|0)+8>>2]&255](a);Uw(a);Ea(1)}function gx(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a>>2]|0;if((b|0)>=0){if((c[d+104>>2]|0)<(b|0))return;Sb[c[d+8>>2]&255](a);return}e=d+108|0;b=c[e>>2]|0;if(!((b|0)!=0?(c[d+104>>2]|0)<=2:0)){Sb[c[d+8>>2]&255](a);b=c[e>>2]|0}c[e>>2]=b+1;return}function hx(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+208|0;d=b+200|0;e=b;Ub[c[(c[a>>2]|0)+12>>2]&63](a,e);a=c[4001]|0;c[d>>2]=e;Lz(a,46655,d)|0;zb=b;return}function ix(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=zb;zb=zb+48|0;j=k+8|0;i=k;h=c[b>>2]|0;f=c[h+20>>2]|0;if((f|0)>0?(f|0)<=(c[h+116>>2]|0):0){b=(c[h+112>>2]|0)+(f<<2)|0;g=8}else{b=c[h+120>>2]|0;if(((b|0)!=0?(e=c[h+124>>2]|0,(f|0)>=(e|0)):0)?(f|0)<=(c[h+128>>2]|0):0){b=b+(f-e<<2)|0;g=8}else g=9}if((g|0)==8){b=c[b>>2]|0;if(!b)g=9}if((g|0)==9){c[h+24>>2]=f;b=c[c[h+112>>2]>>2]|0}e=b;a:while(1){f=e+1|0;switch(a[e>>0]|0){case 0:break a;case 37:{g=12;break a}default:e=f}}if((g|0)==12?(a[f>>0]|0)==115:0){c[i>>2]=h+24;Hx(d,b,i)|0;zb=k;return}n=c[h+28>>2]|0;m=c[h+32>>2]|0;l=c[h+36>>2]|0;e=c[h+40>>2]|0;f=c[h+44>>2]|0;g=c[h+48>>2]|0;i=c[h+52>>2]|0;c[j>>2]=c[h+24>>2];c[j+4>>2]=n;c[j+8>>2]=m;c[j+12>>2]=l;c[j+16>>2]=e;c[j+20>>2]=f;c[j+24>>2]=g;c[j+28>>2]=i;Hx(d,b,j)|0;zb=k;return}function jx(a){a=a|0;a=c[a>>2]|0;c[a+108>>2]=0;c[a+20>>2]=0;return}function kx(a){a=a|0;return (aa(px(c[a+60>>2]|0)|0)|0)&65535|0}function lx(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;l=zb;zb=zb+32|0;h=l;i=l+16|0;j=a+28|0;f=c[j>>2]|0;c[h>>2]=f;k=a+20|0;f=(c[k>>2]|0)-f|0;c[h+4>>2]=f;c[h+8>>2]=b;c[h+12>>2]=d;e=a+60|0;g=2;b=f+d|0;while(1){if(!(nx(da(c[e>>2]|0,h|0,g|0,i|0)|0)|0))f=c[i>>2]|0;else{c[i>>2]=-1;f=-1}if((b|0)==(f|0)){b=6;break}if((f|0)<0){b=8;break}p=c[h+4>>2]|0;n=f>>>0>p>>>0;m=n?h+8|0:h;p=f-(n?p:0)|0;c[m>>2]=(c[m>>2]|0)+p;o=m+4|0;c[o>>2]=(c[o>>2]|0)-p;g=g+(n<<31>>31)|0;b=b-f|0;h=m}if((b|0)==6){p=c[a+44>>2]|0;c[a+16>>2]=p+(c[a+48>>2]|0);c[j>>2]=p;c[k>>2]=p}else if((b|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)d=0;else d=d-(c[h+4>>2]|0)|0}zb=l;return d|0}function mx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=zb;zb=zb+16|0;f=g;if(!(nx(ca(c[a+60>>2]|0,b|0,d|0,e&255|0,f|0)|0)|0)){b=f;a=c[b+4>>2]|0;b=c[b>>2]|0}else{a=f;c[a>>2]=-1;c[a+4>>2]=-1;a=-1;b=-1}E(a|0);zb=g;return b|0}function nx(a){a=a|0;var b=0;if(!(a<<16>>16))a=0;else{b=ox()|0;c[b>>2]=a&65535;a=-1}return a|0}function ox(){return 55620}function px(a){a=a|0;return a|0}function qx(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;l=zb;zb=zb+32|0;i=l;f=l+16|0;c[i>>2]=d;g=i+4|0;j=b+48|0;m=c[j>>2]|0;c[g>>2]=e-((m|0)!=0&1);h=b+44|0;c[i+8>>2]=c[h>>2];c[i+12>>2]=m;if(!(nx(ba(c[b+60>>2]|0,i|0,2,f|0)|0)|0)){f=c[f>>2]|0;if((f|0)>=1){i=c[g>>2]|0;if(f>>>0>i>>>0){g=c[h>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-i);if(!(c[j>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else k=4}else{c[f>>2]=-1;f=-1;k=4}if((k|0)==4)c[b>>2]=f&48^16|c[b>>2];zb=l;return f|0}function rx(a){a=a|0;return 0}function sx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;E(0);return 0}function tx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=ux(a,b,c)|0;E(F()|0);return d|0}function ux(a,b,c){a=a|0;b=b|0;c=c|0;c=vx(a,b,c,-1,-1)|0;E(F()|0);return c|0}function vx(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;j=zb;zb=zb+144|0;h=j;c[h>>2]=0;i=h+4|0;c[i>>2]=a;c[h+44>>2]=a;g=h+8|0;c[g>>2]=(a|0)<0?-1:a+2147483647|0;c[h+76>>2]=-1;wx(h,0,0);d=xx(h,d,1,e,f)|0;e=F()|0;if(b|0)c[b>>2]=a+((c[i>>2]|0)+(c[h+120>>2]|0)-(c[g>>2]|0));E(e|0);zb=j;return d|0}function wx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=a+112|0;c[f>>2]=b;c[f+4>>2]=d;f=c[a+8>>2]|0;e=c[a+4>>2]|0;g=f-e|0;h=((g|0)<0)<<31>>31;i=a+120|0;c[i>>2]=g;c[i+4>>2]=h;if(((b|0)!=0|(d|0)!=0)&((h|0)>(d|0)|(h|0)==(d|0)&g>>>0>b>>>0))c[a+104>>2]=e+b;else c[a+104>>2]=f;return}function xx(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){h=ox()|0;c[h>>2]=28;h=0;g=0}else{r=b+4|0;q=b+104|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=yx(b)|0}while((zx(i)|0)!=0);b:do switch(i|0){case 43:case 45:{i=((i|0)==45)<<31>>31;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;p=i;i=d[j>>0]|0;break b}else{p=i;i=yx(b)|0;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=yx(b)|0;if((i|32|0)!=120)if(j){o=8;n=47;break}else{n=32;break}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=yx(b)|0;if((d[5937+i>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){wx(b,0,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{o=16;n=47}}else{e=j?10:e;if(e>>>0>(d[5937+i>>0]|0)>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;wx(b,0,0);h=ox()|0;c[h>>2]=28;h=0;g=0;break a}}while(0);c:do if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;do{i=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=yx(b)|0;e=j+-48|0}while(e>>>0<10&i>>>0<429496729);if(e>>>0<10){m=0;do{f=NO(i|0,m|0,10,0)|0;k=F()|0;l=((e|0)<0)<<31>>31;o=~l;if(k>>>0>o>>>0|(k|0)==(o|0)&f>>>0>~e>>>0){f=10;e=m;n=76;break c}i=OO(f|0,k|0,e|0,l|0)|0;m=F()|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=yx(b)|0;e=j+-48|0}while(e>>>0<10&(m>>>0<429496729|(m|0)==429496729&i>>>0<2576980378));if(e>>>0>9){j=p;e=m}else{f=10;e=m;n=76}}else{j=p;e=0}}else{j=p;e=0;i=0}}else{o=e;n=47}while(0);d:do if((n|0)==47){if(!(o+-1&o)){n=a[46659+((o*23|0)>>>5&7)>>0]|0;f=a[5937+i>>0]|0;e=f&255;if(o>>>0>e>>>0){i=0;do{i=e|i<>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=yx(b)|0;f=a[5937+j>>0]|0;e=f&255}while(i>>>0<134217728&o>>>0>e>>>0);k=e;e=0}else{j=i;k=e;e=0;i=0}l=TO(-1,-1,n|0)|0;m=F()|0;if(o>>>0<=k>>>0|(m>>>0>>0|(m|0)==(e|0)&l>>>0>>0)){f=o;n=76;break}while(1){i=UO(i|0,e|0,n|0)|0;e=F()|0;i=i|f&255;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=yx(b)|0;f=a[5937+j>>0]|0;if(o>>>0<=(f&255)>>>0|(e>>>0>m>>>0|(e|0)==(m|0)&i>>>0>l>>>0)){f=o;n=76;break d}}}e=a[5937+i>>0]|0;f=e&255;if(o>>>0>f>>>0){i=0;do{i=f+(B(i,o)|0)|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=yx(b)|0;e=a[5937+j>>0]|0;f=e&255}while(i>>>0<119304647&o>>>0>f>>>0);k=e;e=0}else{j=i;k=e;i=0;e=0}if(o>>>0>f>>>0){m=SO(-1,-1,o|0,0)|0;n=F()|0;f=k;while(1){if(e>>>0>n>>>0|(e|0)==(n|0)&i>>>0>m>>>0){f=o;n=76;break d}k=NO(i|0,e|0,o|0,0)|0;l=F()|0;f=f&255;if(l>>>0>4294967295|(l|0)==-1&k>>>0>~f>>>0){f=o;n=76;break d}i=OO(k|0,l|0,f|0,0)|0;e=F()|0;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=yx(b)|0;f=a[5937+j>>0]|0;if(o>>>0<=(f&255)>>>0){f=o;n=76;break}}}else{f=o;n=76}}while(0);if((n|0)==76)if(f>>>0>(d[5937+j>>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=yx(b)|0}while(f>>>0>(d[5937+i>>0]|0)>>>0);j=ox()|0;c[j>>2]=68;j=(g&1|0)==0&0==0?p:0;e=h;i=g}else j=p;if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(e>>>0>>0|(e|0)==(h|0)&i>>>0>>0)){if(!((g&1|0)!=0|0!=0|(j|0)!=0)){r=ox()|0;c[r>>2]=68;g=OO(g|0,h|0,-1,-1)|0;h=F()|0;break}if(e>>>0>h>>>0|(e|0)==(h|0)&i>>>0>g>>>0){r=ox()|0;c[r>>2]=68;break}}g=((j|0)<0)<<31>>31;g=PO(i^j|0,e^g|0,j|0,g|0)|0;h=F()|0}while(0);E(h|0);return g|0}function yx(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=b+112|0;f=g;e=c[f>>2]|0;f=c[f+4>>2]|0;if(!((e|0)==0&(f|0)==0)?(i=b+120|0,h=c[i+4>>2]|0,!((h|0)<(f|0)|((h|0)==(f|0)?(c[i>>2]|0)>>>0>>0:0))):0)j=4;else{e=Ax(b)|0;if((e|0)>=0){f=c[g>>2]|0;g=c[g+4>>2]|0;i=c[b+8>>2]|0;if(!((f|0)==0&(g|0)==0)){h=c[b+4>>2]|0;k=i-h|0;l=((k|0)<0)<<31>>31;m=b+120|0;f=PO(f|0,g|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=F()|0;g=i;if((m|0)>(l|0)|(m|0)==(l|0)&f>>>0>k>>>0)j=9;else c[b+104>>2]=h+(f+-1)}else{g=i;j=9}if((j|0)==9)c[b+104>>2]=i;f=b+4|0;if(!g)f=c[f>>2]|0;else{f=c[f>>2]|0;k=g+1-f|0;m=b+120|0;l=m;k=OO(c[l>>2]|0,c[l+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;l=F()|0;c[m>>2]=k;c[m+4>>2]=l}f=f+-1|0;if((e|0)!=(d[f>>0]|0|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+104>>2]=0;e=-1}return e|0}function zx(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Ax(a){a=a|0;var b=0,e=0;e=zb;zb=zb+16|0;b=e;if((Bx(a)|0)==0?(Jb[c[a+32>>2]&63](a,b,1)|0)==1:0)a=d[b>>0]|0;else a=-1;zb=e;return a|0}function Bx(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+28|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)Jb[c[b+36>>2]&63](b,0,0)|0;c[b+16>>2]=0;c[e>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(!(d&4)){e=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=e;c[b+4>>2]=e;d=d<<27>>31}else{c[b>>2]=d|32;d=-1}return d|0}function Cx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=Dx(a,b,c)|0;E(F()|0);return d|0}function Dx(a,b,c){a=a|0;b=b|0;c=c|0;c=vx(a,b,c,0,-2147483648)|0;E(F()|0);return c|0}function Ex(a,b){a=+a;b=+b;var d=0,e=0;g[h>>3]=a;e=c[h>>2]|0;d=c[h+4>>2]|0;g[h>>3]=b;d=c[h+4>>2]&-2147483648|d&2147483647;c[h>>2]=e;c[h+4>>2]=d;return +(+g[h>>3])}function Fx(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24)b=e;else{do{b=b+1|0;c=c+1|0;d=a[b>>0]|0;e=a[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));b=e}return (d&255)-(b&255)|0}function Gx(a){a=a|0;return (a+-48|0)>>>0<10|0}function Hx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+16|0;f=e;c[f>>2]=d;d=Ix(a,b,f)|0;zb=e;return d|0}function Ix(a,b,c){a=a|0;b=b|0;c=c|0;return Jx(a,2147483647,b,c)|0}function Jx(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;j=zb;zb=zb+160|0;g=j+144|0;i=j;_O(i|0,13736,144)|0;if((d+-1|0)>>>0>2147483646)if(!d){b=g;d=1;h=4}else{d=ox()|0;c[d>>2]=61;d=-1}else h=4;if((h|0)==4){h=-2-b|0;h=d>>>0>h>>>0?h:d;c[i+48>>2]=h;g=i+20|0;c[g>>2]=b;c[i+44>>2]=b;d=b+h|0;b=i+16|0;c[b>>2]=d;c[i+28>>2]=d;d=Kx(i,e,f)|0;if(h){i=c[g>>2]|0;a[i+(((i|0)==(c[b>>2]|0))<<31>>31)>>0]=0}}zb=j;return d|0}function Kx(a,b,c){a=a|0;b=b|0;c=c|0;return Nx(a,b,c,1,55)|0}function Lx(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=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,z=0,A=0,C=0,D=0,E=0,G=0,H=0;H=zb;zb=zb+560|0;l=H+32|0;u=H+536|0;G=H;E=G;m=H+540|0;c[u>>2]=0;D=m+12|0;dy(e)|0;j=F()|0;if((j|0)<0){e=-e;dy(e)|0;C=1;A=46685;j=F()|0}else{C=(h&2049|0)!=0&1;A=(h&2048|0)==0?((h&1|0)==0?46686:46691):46688}do if(0==0&(j&2146435072|0)==2146435072){G=(i&32|0)!=0;j=C+3|0;Yx(b,32,f,j,h&-65537);Rx(b,A,C);Rx(b,e!=e|0.0!=0.0?(G?46727:46712):G?46704:46708,3);Yx(b,32,f,j,h^8192)}else{q=+ey(e,u)*2.0;j=q!=0.0;if(j)c[u>>2]=(c[u>>2]|0)+-1;t=i|32;if((t|0)==97){o=i&32;r=(o|0)==0?A:A+9|0;p=C|2;j=12-g|0;do if(!(g>>>0>11|(j|0)==0)){e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[r>>0]|0)==45){e=-(e+(-q-e));break}else{e=q+e-e;break}}else e=q;while(0);k=c[u>>2]|0;j=(k|0)<0?0-k|0:k;j=Wx(j,((j|0)<0)<<31>>31,D)|0;if((j|0)==(D|0)){j=m+11|0;a[j>>0]=48}a[j+-1>>0]=(k>>31&2)+43;n=j+-2|0;a[n>>0]=i+15;k=(g|0)<1;l=(h&8|0)==0;m=G;do{C=~~e;j=m+1|0;a[m>>0]=o|d[6672+C>>0];e=(e-+(C|0))*16.0;if((j-E|0)==1?!(l&(k&e==0.0)):0){a[j>>0]=46;m=m+2|0}else m=j}while(e!=0.0);if((g|0)!=0?(-2-E+m|0)<(g|0):0){k=D;l=n;j=g+2+k-l|0}else{k=D;l=n;j=k-E-l+m|0}D=j+p|0;Yx(b,32,f,D,h);Rx(b,r,p);Yx(b,48,f,D,h^65536);E=m-E|0;Rx(b,G,E);G=k-l|0;Yx(b,48,j-(E+G)|0,0,0);Rx(b,n,G);Yx(b,32,f,D,h^8192);j=D;break}k=(g|0)<0?6:g;if(j){j=(c[u>>2]|0)+-28|0;c[u>>2]=j;e=q*268435456.0}else{e=q;j=c[u>>2]|0}z=(j|0)<0?l:l+288|0;l=z;do{x=~~e>>>0;c[l>>2]=x;l=l+4|0;e=(e-+(x>>>0))*1.0e9}while(e!=0.0);x=z;if((j|0)>0){o=z;while(1){n=(j|0)<29?j:29;j=l+-4|0;if(j>>>0>=o>>>0){m=0;do{s=UO(c[j>>2]|0,0,n|0)|0;s=OO(s|0,F()|0,m|0,0)|0;v=F()|0;m=SO(s|0,v|0,1e9,0)|0;w=NO(m|0,F()|0,1e9,0)|0;w=PO(s|0,v|0,w|0,F()|0)|0;F()|0;c[j>>2]=w;j=j+-4|0}while(j>>>0>=o>>>0);if(m){w=o+-4|0;c[w>>2]=m;m=w}else m=o}else m=o;a:do if(l>>>0>m>>>0){j=l;while(1){l=j+-4|0;if(c[l>>2]|0){l=j;break a}if(l>>>0>m>>>0)j=l;else break}}while(0);j=(c[u>>2]|0)-n|0;c[u>>2]=j;if((j|0)>0)o=m;else break}}else m=z;if((j|0)<0){g=((k+25|0)/9|0)+1|0;s=(t|0)==102;do{r=0-j|0;r=(r|0)<9?r:9;if(m>>>0>>0){n=(1<>>r;p=0;j=m;do{w=c[j>>2]|0;c[j>>2]=(w>>>r)+p;p=B(w&n,o)|0;j=j+4|0}while(j>>>0>>0);m=(c[m>>2]|0)==0?m+4|0:m;if(p){c[l>>2]=p;l=l+4|0}}else m=(c[m>>2]|0)==0?m+4|0:m;j=s?z:m;l=(l-j>>2|0)>(g|0)?j+(g<<2)|0:l;j=(c[u>>2]|0)+r|0;c[u>>2]=j}while((j|0)<0);s=m}else s=m;if(s>>>0>>0){j=(x-s>>2)*9|0;n=c[s>>2]|0;if(n>>>0>=10){m=10;do{m=m*10|0;j=j+1|0}while(n>>>0>=m>>>0)}}else j=0;v=(t|0)==103;w=(k|0)!=0;m=k-((t|0)==102?0:j)+((w&v)<<31>>31)|0;if((m|0)<(((l-x>>2)*9|0)+-9|0)){u=m+9216|0;m=(u|0)/9|0;g=z+4+(m+-1024<<2)|0;m=u-(m*9|0)|0;if((m|0)<8){n=10;while(1){n=n*10|0;if((m|0)<7)m=m+1|0;else break}}else n=10;p=c[g>>2]|0;m=(p>>>0)/(n>>>0)|0;r=p-(B(m,n)|0)|0;o=(g+4|0)==(l|0);if(!(o&(r|0)==0)){q=(m&1|0)==0?9007199254740992.0:9007199254740994.0;u=n>>>1;e=r>>>0>>0?.5:o&(r|0)==(u|0)?1.0:1.5;if(C){u=(a[A>>0]|0)==45;e=u?-e:e;q=u?-q:q}m=p-r|0;c[g>>2]=m;if(q+e!=q){u=m+n|0;c[g>>2]=u;if(u>>>0>999999999){n=g;j=s;while(1){m=n+-4|0;c[n>>2]=0;if(m>>>0>>0){j=j+-4|0;c[j>>2]=0}u=(c[m>>2]|0)+1|0;c[m>>2]=u;if(u>>>0>999999999)n=m;else{n=j;break}}}else{m=g;n=s}j=(x-n>>2)*9|0;p=c[n>>2]|0;if(p>>>0>=10){o=10;do{o=o*10|0;j=j+1|0}while(p>>>0>=o>>>0)}}else{m=g;n=s}}else{m=g;n=s}u=m+4|0;l=l>>>0>u>>>0?u:l}else n=s;g=0-j|0;b:do if(l>>>0>n>>>0)while(1){m=l+-4|0;if(c[m>>2]|0){u=l;t=1;break b}if(m>>>0>n>>>0)l=m;else{u=m;t=0;break}}else{u=l;t=0}while(0);do if(v){k=k+((w^1)&1)|0;if((k|0)>(j|0)&(j|0)>-5){o=i+-1|0;k=k+-1-j|0}else{o=i+-2|0;k=k+-1|0}if(!(h&8)){if(t?(y=c[u+-4>>2]|0,(y|0)!=0):0)if(!((y>>>0)%10|0)){m=0;l=10;do{l=l*10|0;m=m+1|0}while(!((y>>>0)%(l>>>0)|0|0))}else m=0;else m=9;l=((u-x>>2)*9|0)+-9|0;if((o|32|0)==102){i=l-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}else{i=l+j-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}}}else o=i;while(0);s=(k|0)!=0;p=s?1:h>>>3&1;r=(o|32|0)==102;if(r){v=0;j=(j|0)>0?j:0}else{l=(j|0)<0?g:j;l=Wx(l,((l|0)<0)<<31>>31,D)|0;m=D;if((m-l|0)<2)do{l=l+-1|0;a[l>>0]=48}while((m-l|0)<2);a[l+-1>>0]=(j>>31&2)+43;j=l+-2|0;a[j>>0]=o;v=j;j=m-j|0}j=C+1+k+p+j|0;Yx(b,32,f,j,h);Rx(b,A,C);Yx(b,48,f,j,h^65536);if(r){p=n>>>0>z>>>0?z:n;r=G+9|0;n=r;o=G+8|0;m=p;do{l=Wx(c[m>>2]|0,0,r)|0;if((m|0)==(p|0)){if((l|0)==(r|0)){a[o>>0]=48;l=o}}else if(l>>>0>G>>>0){aP(G|0,48,l-E|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}Rx(b,l,n-l|0);m=m+4|0}while(m>>>0<=z>>>0);if(!((h&8|0)==0&(s^1)))Rx(b,46716,1);if(m>>>0>>0&(k|0)>0)while(1){l=Wx(c[m>>2]|0,0,r)|0;if(l>>>0>G>>>0){aP(G|0,48,l-E|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}Rx(b,l,(k|0)<9?k:9);m=m+4|0;l=k+-9|0;if(!(m>>>0>>0&(k|0)>9)){k=l;break}else k=l}Yx(b,48,k+9|0,9,0)}else{u=t?u:n+4|0;if(n>>>0>>0&(k|0)>-1){g=G+9|0;s=(h&8|0)==0;t=g;p=0-E|0;r=G+8|0;o=n;do{l=Wx(c[o>>2]|0,0,g)|0;if((l|0)==(g|0)){a[r>>0]=48;l=r}do if((o|0)==(n|0)){m=l+1|0;Rx(b,l,1);if(s&(k|0)<1){l=m;break}Rx(b,46716,1);l=m}else{if(l>>>0<=G>>>0)break;aP(G|0,48,l+p|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}while(0);E=t-l|0;Rx(b,l,(k|0)>(E|0)?E:k);k=k-E|0;o=o+4|0}while(o>>>0>>0&(k|0)>-1)}Yx(b,48,k+18|0,18,0);Rx(b,v,D-v|0)}Yx(b,32,f,j,h^8192)}while(0);zb=H;return ((j|0)<(f|0)?f:j)|0}function Mx(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=(c[b>>2]|0)+(8-1)&~(8-1);d=+g[e>>3];c[b>>2]=e+8;g[a>>3]=d;return}function Nx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=zb;zb=zb+224|0;p=t+208|0;q=t+160|0;r=t+80|0;s=t;h=q;i=h+40|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c[p>>2]=c[e>>2];if((Ox(0,d,p,r,q,f,g)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)o=Px(b)|0;else o=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;h=b+48|0;if(!(c[h>>2]|0)){i=b+44|0;j=c[i>>2]|0;c[i>>2]=s;k=b+28|0;c[k>>2]=s;l=b+20|0;c[l>>2]=s;c[h>>2]=80;m=b+16|0;c[m>>2]=s+80;e=Ox(b,d,p,r,q,f,g)|0;if(j){Jb[c[b+36>>2]&63](b,0,0)|0;e=(c[l>>2]|0)==0?-1:e;c[i>>2]=j;c[h>>2]=0;c[m>>2]=0;c[k>>2]=0;c[l>>2]=0}}else e=Ox(b,d,p,r,q,f,g)|0;h=c[b>>2]|0;c[b>>2]=h|n;if(o|0)Qx(b);e=(h&32|0)==0?e:-1}zb=t;return e|0}function Ox(d,e,f,h,i,j,k){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0;J=zb;zb=zb+64|0;G=J+56|0;I=J+40|0;A=J;C=J+48|0;D=J+60|0;c[G>>2]=e;x=(d|0)!=0;y=A+40|0;z=y;A=A+39|0;B=C+4|0;l=0;e=0;n=0;a:while(1){do{do if((e|0)>-1)if((l|0)>(2147483647-e|0)){e=ox()|0;c[e>>2]=61;e=-1;break}else{e=l+e|0;break}while(0);r=c[G>>2]|0;l=a[r>>0]|0;if(!(l<<24>>24)){w=92;break a}m=r;b:while(1){switch(l<<24>>24){case 37:{w=10;break b}case 0:{l=m;break b}default:{}}v=m+1|0;c[G>>2]=v;l=a[v>>0]|0;m=v}c:do if((w|0)==10){w=0;l=m;do{if((a[m+1>>0]|0)!=37)break c;l=l+1|0;m=m+2|0;c[G>>2]=m}while((a[m>>0]|0)==37)}while(0);l=l-r|0;if(x)Rx(d,r,l)}while((l|0)!=0);v=(Gx(a[(c[G>>2]|0)+1>>0]|0)|0)==0;m=c[G>>2]|0;if(!v?(a[m+2>>0]|0)==36:0){t=(a[m+1>>0]|0)+-48|0;p=1;l=3}else{t=-1;p=n;l=1}l=m+l|0;c[G>>2]=l;m=a[l>>0]|0;n=(m<<24>>24)+-32|0;if(n>>>0>31|(1<>2]=l;m=a[l>>0]|0;n=(m<<24>>24)+-32|0}while(!(n>>>0>31|(1<>24==42){if((Gx(a[l+1>>0]|0)|0)!=0?(H=c[G>>2]|0,(a[H+2>>0]|0)==36):0){l=H+1|0;c[i+((a[l>>0]|0)+-48<<2)>>2]=10;l=c[h+((a[l>>0]|0)+-48<<3)>>2]|0;n=1;m=H+3|0}else{if(p|0){e=-1;break}if(x){v=(c[f>>2]|0)+(4-1)&~(4-1);l=c[v>>2]|0;c[f>>2]=v+4}else l=0;n=0;m=(c[G>>2]|0)+1|0}c[G>>2]=m;v=(l|0)<0;u=v?0-l|0:l;o=v?o|8192:o;v=n}else{l=Sx(G)|0;if((l|0)<0){e=-1;break}u=l;v=p;m=c[G>>2]|0}do if((a[m>>0]|0)==46){l=m+1|0;if((a[l>>0]|0)!=42){c[G>>2]=l;l=Sx(G)|0;m=c[G>>2]|0;break}if(Gx(a[m+2>>0]|0)|0?(E=c[G>>2]|0,(a[E+3>>0]|0)==36):0){l=E+2|0;c[i+((a[l>>0]|0)+-48<<2)>>2]=10;l=c[h+((a[l>>0]|0)+-48<<3)>>2]|0;m=E+4|0;c[G>>2]=m;break}if(v|0){e=-1;break a}if(x){s=(c[f>>2]|0)+(4-1)&~(4-1);l=c[s>>2]|0;c[f>>2]=s+4}else l=0;m=(c[G>>2]|0)+2|0;c[G>>2]=m}else l=-1;while(0);s=0;while(1){if(((a[m>>0]|0)+-65|0)>>>0>57){e=-1;break a}n=m;m=m+1|0;c[G>>2]=m;n=a[(a[n>>0]|0)+-65+(6208+(s*58|0))>>0]|0;p=n&255;if((p+-1|0)>>>0>=8)break;else s=p}if(!(n<<24>>24)){e=-1;break}q=(t|0)>-1;do if(n<<24>>24==19)if(q){e=-1;break a}else w=54;else{if(q){c[i+(t<<2)>>2]=p;q=h+(t<<3)|0;t=c[q+4>>2]|0;w=I;c[w>>2]=c[q>>2];c[w+4>>2]=t;w=54;break}if(!x){e=0;break a}Tx(I,p,f,k);m=c[G>>2]|0;w=55}while(0);if((w|0)==54){w=0;if(x)w=55;else l=0}d:do if((w|0)==55){w=0;m=a[m+-1>>0]|0;m=(s|0)!=0&(m&15|0)==3?m&-33:m;n=o&-65537;t=(o&8192|0)==0?o:n;e:do switch(m|0){case 110:switch((s&255)<<24>>24){case 0:{c[c[I>>2]>>2]=e;l=0;break d}case 1:{c[c[I>>2]>>2]=e;l=0;break d}case 2:{l=c[I>>2]|0;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=0;break d}case 3:{b[c[I>>2]>>1]=e;l=0;break d}case 4:{a[c[I>>2]>>0]=e;l=0;break d}case 6:{c[c[I>>2]>>2]=e;l=0;break d}case 7:{l=c[I>>2]|0;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=0;break d}default:{l=0;break d}}case 112:{m=120;l=l>>>0>8?l:8;n=t|8;w=67;break}case 88:case 120:{n=t;w=67;break}case 111:{q=I;q=Vx(c[q>>2]|0,c[q+4>>2]|0,y)|0;n=z-q|0;o=0;p=46668;l=(t&8|0)==0|(l|0)>(n|0)?l:n+1|0;n=t;w=73;break}case 105:case 100:{n=I;m=c[n>>2]|0;n=c[n+4>>2]|0;if((n|0)<0){m=PO(0,0,m|0,n|0)|0;n=F()|0;o=I;c[o>>2]=m;c[o+4>>2]=n;o=1;p=46668;w=72;break e}else{o=(t&2049|0)!=0&1;p=(t&2048|0)==0?((t&1|0)==0?46668:46670):46669;w=72;break e}}case 117:{n=I;o=0;p=46668;m=c[n>>2]|0;n=c[n+4>>2]|0;w=72;break}case 99:{a[A>>0]=c[I>>2];r=A;o=0;p=46668;q=1;m=n;l=z;break}case 115:{s=c[I>>2]|0;s=(s|0)==0?46678:s;t=Xx(s,0,l)|0;K=(t|0)==0;r=s;o=0;p=46668;q=K?l:t-s|0;m=n;l=K?s+l|0:t;break}case 67:{c[C>>2]=c[I>>2];c[B>>2]=0;c[I>>2]=C;p=-1;w=79;break}case 83:{if(!l){Yx(d,32,u,0,t);l=0;w=89}else{p=l;w=79}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{l=Hb[j&1](d,+g[I>>3],u,l,t,m)|0;break d}default:{o=0;p=46668;q=l;m=t;l=z}}while(0);f:do if((w|0)==67){q=I;q=Ux(c[q>>2]|0,c[q+4>>2]|0,y,m&32)|0;p=I;p=(n&8|0)==0|(c[p>>2]|0)==0&(c[p+4>>2]|0)==0;o=p?0:2;p=p?46668:46668+(m>>>4)|0;w=73}else if((w|0)==72){q=Wx(m,n,y)|0;n=t;w=73}else if((w|0)==79){w=0;o=c[I>>2]|0;l=0;while(1){m=c[o>>2]|0;if(!m)break;m=Zx(D,m)|0;n=(m|0)<0;if(n|m>>>0>(p-l|0)>>>0){w=83;break}l=m+l|0;if(p>>>0>l>>>0)o=o+4|0;else break}if((w|0)==83){w=0;if(n){e=-1;break a}}Yx(d,32,u,l,t);if(!l){l=0;w=89}else{n=c[I>>2]|0;o=0;while(1){m=c[n>>2]|0;if(!m){w=89;break f}m=Zx(D,m)|0;o=m+o|0;if((o|0)>(l|0)){w=89;break f}Rx(d,D,m);if(o>>>0>=l>>>0){w=89;break}else n=n+4|0}}}while(0);if((w|0)==73){w=0;m=I;m=(c[m>>2]|0)!=0|(c[m+4>>2]|0)!=0;K=(l|0)!=0|m;m=z-q+((m^1)&1)|0;r=K?q:y;q=K?((l|0)>(m|0)?l:m):0;m=(l|0)>-1?n&-65537:n;l=z}else if((w|0)==89){w=0;Yx(d,32,u,l,t^8192);l=(u|0)>(l|0)?u:l;break}t=l-r|0;s=(q|0)<(t|0)?t:q;K=s+o|0;l=(u|0)<(K|0)?K:u;Yx(d,32,l,K,m);Rx(d,p,o);Yx(d,48,l,K,m^65536);Yx(d,48,s,t,0);Rx(d,r,t);Yx(d,32,l,K,m^8192)}while(0);n=v}g:do if((w|0)==92)if(!d)if(!n)e=0;else{e=1;while(1){l=c[i+(e<<2)>>2]|0;if(!l)break;Tx(h+(e<<3)|0,l,f,k);e=e+1|0;if(e>>>0>=10){e=1;break g}}while(1){if(c[i+(e<<2)>>2]|0){e=-1;break g}e=e+1|0;if(e>>>0>=10){e=1;break}}}while(0);zb=J;return e|0}function Px(a){a=a|0;return 1}function Qx(a){a=a|0;return}function Rx(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))by(b,d,a)|0;return}function Sx(b){b=b|0;var d=0,e=0;if(!(Gx(a[c[b>>2]>>0]|0)|0))d=0;else{d=0;do{e=c[b>>2]|0;d=(d*10|0)+-48+(a[e>>0]|0)|0;e=e+1|0;c[b>>2]=e}while((Gx(a[e>>0]|0)|0)!=0)}return d|0}function Tx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{b=(c[d>>2]|0)+(4-1)&~(4-1);e=c[b>>2]|0;c[d>>2]=b+4;c[a>>2]=e;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);h=+g[f>>3];c[d>>2]=f+8;g[a>>3]=h;break a}case 18:{Ub[e&63](a,d);break a}default:break a}while(0);while(0);return}function Ux(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[6672+(b&15)>>0]|0|f;b=TO(b|0,c|0,4)|0;c=F()|0}while(!((b|0)==0&(c|0)==0));return e|0}function Vx(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=TO(b|0,c|0,3)|0;c=F()|0}while(!((b|0)==0&(c|0)==0));return d|0}function Wx(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){do{e=b;b=SO(b|0,c|0,10,0)|0;f=c;c=F()|0;g=NO(b|0,c|0,10,0)|0;g=PO(e|0,f|0,g|0,F()|0)|0;F()|0;d=d+-1|0;a[d>>0]=g&255|48}while(f>>>0>9|(f|0)==9&e>>>0>4294967295);c=b}else c=b;if(c)do{g=c;c=(c>>>0)/10|0;d=d+-1|0;a[d>>0]=g-(c*10|0)|48}while(g>>>0>=10);return d|0}function Xx(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 i=16;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)==g<<24>>24)if(!e){i=16;break}else break;f=B(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break c;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break}}else i=11;while(0);if((i|0)==11)if(!e){i=16;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;e=e+-1|0;if(!e){i=16;break}else b=b+1|0}}while(0);if((i|0)==16)b=0;return b|0}function Yx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=zb;zb=zb+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;aP(f|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;do{Rx(a,f,256);e=e+-256|0}while(e>>>0>255);e=b&255}Rx(a,f,e)}zb=g;return}function Zx(a,b){a=a|0;b=b|0;if(!a)a=0;else a=_x(a,b,0)|0;return a|0}function _x(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}e=($x()|0)+188|0;if(!(c[c[e>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{b=ox()|0;c[b>>2]=25;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{b=ox()|0;c[b>>2]=25;b=-1;break}}else b=1;while(0);return b|0}function $x(){return ay()|0}function ay(){return 16020}function by(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(cy(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){j=e+20|0;i=c[j>>2]|0;f=i;if((g-i|0)>>>0>>0){f=Jb[c[e+36>>2]&63](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){h=0;g=b}else{i=d;while(1){g=i+-1|0;if((a[b+g>>0]|0)==10)break;if(!g){h=0;g=b;break b}else i=g}f=Jb[c[e+36>>2]&63](e,b,i)|0;if(f>>>0>>0)break a;h=i;g=b+i|0;d=d-i|0;f=c[j>>2]|0}while(0);_O(f|0,g|0,d|0)|0;c[j>>2]=(c[j>>2]|0)+d;f=h+d|0}while(0);return f|0}function cy(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;e=c[b+44>>2]|0;c[b+28>>2]=e;c[b+20>>2]=e;c[b+16>>2]=e+(c[b+48>>2]|0);b=0}else{c[b>>2]=d|32;b=-1}return b|0}function dy(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;E(c[h+4>>2]|0);return b|0}function ey(a,b){a=+a;b=b|0;var d=0,e=0,f=0;g[h>>3]=a;d=c[h>>2]|0;e=c[h+4>>2]|0;f=TO(d|0,e|0,52)|0;F()|0;switch(f&2047){case 0:{if(a!=0.0){a=+ey(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&2047)+-1022;c[h>>2]=d;c[h+4>>2]=e&-2146435073|1071644672;a=+g[h>>3]}}return +a}function fy(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;_O(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function gy(){return 16264}function hy(){var a=0;a=(iy()|0)+188|0;return ((c[c[a>>2]>>2]|0)==0?1:4)|0}function iy(){return ay()|0}function jy(){return 16268}function ky(){return 16272}function ly(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function my(a){a=a|0;return (((a|32)+-97|0)>>>0<6|(Gx(a)|0)!=0)&1|0}function ny(a){a=a|0;var b=0;if(a>>>0>4294963200){b=ox()|0;c[b>>2]=0-a;a=-1}return a|0}function oy(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;m=zb;zb=zb+208|0;j=m;k=m+192|0;h=B(d,b)|0;i=k;c[i>>2]=1;c[i+4>>2]=0;a:do if(h|0){i=0-d|0;c[j+4>>2]=d;c[j>>2]=d;f=2;b=d;g=d;while(1){b=b+d+g|0;c[j+(f<<2)>>2]=b;if(b>>>0>>0){n=g;f=f+1|0;g=b;b=n}else break}g=a+h+i|0;if(g>>>0>a>>>0){h=g;f=1;b=1;do{do if((b&3|0)!=3){b=f+-1|0;if((c[j+(b<<2)>>2]|0)>>>0<(h-a|0)>>>0)py(a,d,e,f,j);else ry(a,d,e,k,f,0,j);if((f|0)==1){sy(k,1);f=0;break}else{sy(k,b);f=1;break}}else{py(a,d,e,f,j);qy(k,2);f=f+2|0}while(0);b=c[k>>2]|1;c[k>>2]=b;a=a+d|0}while(a>>>0>>0)}else{f=1;b=1}ry(a,d,e,k,f,0,j);g=k+4|0;while(1){if((f|0)==1&(b|0)==1)if(!(c[g>>2]|0))break a;else l=19;else if((f|0)<2)l=19;else{sy(k,2);n=f+-2|0;c[k>>2]=c[k>>2]^7;qy(k,1);ry(a+(0-(c[j+(n<<2)>>2]|0))+i|0,d,e,k,f+-1|0,1,j);sy(k,1);b=c[k>>2]|1;c[k>>2]=b;a=a+i|0;ry(a,d,e,k,n,1,j);f=n}if((l|0)==19){l=0;b=ty(k)|0;qy(k,b);a=a+i|0;f=b+f|0;b=c[k>>2]|0}}}while(0);zb=m;return}function py(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;m=zb;zb=zb+240|0;l=m;c[l>>2]=a;a:do if((e|0)>1){k=0-b|0;i=a;g=e;e=1;h=a;while(1){i=i+k|0;j=g+-2|0;a=i+(0-(c[f+(j<<2)>>2]|0))|0;if((Ib[d&63](h,a)|0)>-1?(Ib[d&63](h,i)|0)>-1:0)break a;h=l+(e<<2)|0;if((Ib[d&63](a,i)|0)>-1){c[h>>2]=a;g=g+-1|0}else{c[h>>2]=i;a=i;g=j}e=e+1|0;if((g|0)<=1)break a;i=a;h=c[l>>2]|0}}else e=1;while(0);vy(b,l,e);zb=m;return}function qy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;if(b>>>0>31){e=c[f>>2]|0;c[a>>2]=e;c[f>>2]=0;b=b+-32|0;d=0}else{d=c[f>>2]|0;e=c[a>>2]|0}c[a>>2]=d<<32-b|e>>>b;c[f>>2]=d>>>b;return}function ry(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=zb;zb=zb+240|0;m=o+232|0;n=o;p=c[e>>2]|0;c[m>>2]=p;j=c[e+4>>2]|0;k=m+4|0;c[k>>2]=j;c[n>>2]=a;a:do if((p|0)!=1|(j|0)!=0?(l=0-b|0,i=a+(0-(c[h+(f<<2)>>2]|0))|0,(Ib[d&63](i,a)|0)>=1):0){e=1;g=(g|0)==0;j=i;while(1){if(g&(f|0)>1){g=a+l|0;i=c[h+(f+-2<<2)>>2]|0;if((Ib[d&63](g,j)|0)>-1){i=10;break a}if((Ib[d&63](g+(0-i)|0,j)|0)>-1){i=10;break a}}g=e+1|0;c[n+(e<<2)>>2]=j;p=ty(m)|0;qy(m,p);f=p+f|0;if(!((c[m>>2]|0)!=1|(c[k>>2]|0)!=0)){e=g;a=j;i=10;break a}a=j+(0-(c[h+(f<<2)>>2]|0))|0;if((Ib[d&63](a,c[n>>2]|0)|0)<1){a=j;e=g;g=0;i=9;break}else{p=j;e=g;g=1;j=a;a=p}}}else{e=1;i=9}while(0);if((i|0)==9?(g|0)==0:0)i=10;if((i|0)==10){vy(b,n,e);py(a,b,d,f,h)}zb=o;return}function sy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;if(b>>>0>31){e=c[a>>2]|0;c[f>>2]=e;c[a>>2]=0;b=b+-32|0;d=0}else{d=c[a>>2]|0;e=c[f>>2]|0}c[f>>2]=d>>>(32-b|0)|e<>2]=d<>2]|0)+-1|0)|0;if(!b){b=uy(c[a+4>>2]|0)|0;return ((b|0)==0?0:b+32|0)|0}else return b|0;return 0}function uy(a){a=a|0;var b=0;if(a)if(!(a&1)){b=a;a=0;while(1){a=a+1|0;if(!(b&2))b=b>>>1;else break}}else a=0;else a=32;return a|0}function vy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=zb;zb=zb+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,a|0):0)while(1){f=a>>>0<256?a:256;_O(e|0,c[b>>2]|0,f|0)|0;e=0;do{i=b+(e<<2)|0;e=e+1|0;_O(c[i>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[i>>2]=(c[i>>2]|0)+f}while((e|0)!=(d|0));a=a-f|0;if(!a)break a;e=c[g>>2]|0}while(0);zb=h;return}function wy(b,e){b=b|0;e=e|0;var f=0,g=0;f=0;while(1){if((d[10528+f>>0]|0)==(b|0)){g=4;break}f=f+1|0;if((f|0)==87){b=87;g=5;break}}if((g|0)==4)if(!f)f=10624;else{b=f;g=5}if((g|0)==5){f=10624;do{do{g=f;f=f+1|0}while((a[g>>0]|0)!=0);b=b+-1|0}while((b|0)!=0)}return xy(f,c[e+20>>2]|0)|0}function xy(a,b){a=a|0;b=b|0;return yy(a,b)|0}function yy(a,b){a=a|0;b=b|0;if(!b)b=0;else b=zy(c[b>>2]|0,c[b+4>>2]|0,a)|0;return ((b|0)==0?a:b)|0}function zy(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;o=(c[b>>2]|0)+1794895138|0;h=Ay(c[b+8>>2]|0,o)|0;f=Ay(c[b+12>>2]|0,o)|0;g=Ay(c[b+16>>2]|0,o)|0;a:do if((h>>>0>>2>>>0?(n=d-(h<<2)|0,f>>>0>>0&g>>>0>>0):0)?((g|f)&3|0)==0:0){n=f>>>2;m=g>>>2;l=0;while(1){j=h>>>1;k=l+j|0;i=k<<1;g=i+n|0;f=Ay(c[b+(g<<2)>>2]|0,o)|0;g=Ay(c[b+(g+1<<2)>>2]|0,o)|0;if(!(g>>>0>>0&f>>>0<(d-g|0)>>>0)){f=0;break a}if(a[b+(g+f)>>0]|0){f=0;break a}f=Fx(e,b+g|0)|0;if(!f)break;f=(f|0)<0;if((h|0)==1){f=0;break a}l=f?l:k;h=f?j:h-j|0}f=i+m|0;g=Ay(c[b+(f<<2)>>2]|0,o)|0;f=Ay(c[b+(f+1<<2)>>2]|0,o)|0;if(f>>>0>>0&g>>>0<(d-f|0)>>>0)f=(a[b+(f+g)>>0]|0)==0?b+f|0:0;else f=0}else f=0;while(0);return f|0}function Ay(a,b){a=a|0;b=b|0;var c=0;c=WO(a|0)|0;return ((b|0)==0?a:c)|0}function By(a){a=a|0;var b=0;b=(Cy()|0)+188|0;return wy(a,c[b>>2]|0)|0}function Cy(){return ay()|0}function Dy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;switch(e|0){case 0:{l=-149;m=24;j=4;break}case 1:{l=-1074;m=53;j=4;break}case 2:{l=-1074;m=53;j=4;break}default:g=0.0}a:do if((j|0)==4){o=b+4|0;n=b+104|0;do{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=yx(b)|0}while((zx(e)|0)!=0);b:do switch(e|0){case 43:case 45:{i=1-(((e|0)==45&1)<<1)|0;e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;h=d[e>>0]|0;break b}else{h=yx(b)|0;break b}}default:{h=e;i=1}}while(0);e=0;while(1){if((h|32|0)!=(a[46718+e>>0]|0))break;do if(e>>>0<7){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=yx(b)|0;break}}while(0);e=e+1|0;if(e>>>0>=8){e=8;break}}c:do switch(e&2147483647|0){case 8:break;case 3:{j=23;break}default:{k=(f|0)!=0;if(k&e>>>0>3)if((e|0)==8)break c;else{j=23;break c}d:do if(!e){e=0;while(1){if((h|32|0)!=(a[46727+e>>0]|0))break d;do if(e>>>0<2){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=yx(b)|0;break}}while(0);e=e+1|0;if(e>>>0>=3){e=3;break}}}while(0);switch(e|0){case 3:{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=yx(b)|0;if((e|0)!=40){if(!(c[n>>2]|0)){g=q;break a}c[o>>2]=(c[o>>2]|0)+-1;g=q;break a}e=1;while(1){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0}else h=yx(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=q;break a}h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!k){o=ox()|0;c[o>>2]=28;wx(b,0,0);g=0.0;break a}if(!e){g=q;break a}while(1){e=e+-1|0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!e){g=q;break a}}}case 0:{if((h|0)==48){e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=yx(b)|0;if((e|32|0)==120){g=+Ey(b,m,l,i,f);break a}if(!(c[n>>2]|0))e=48;else{c[o>>2]=(c[o>>2]|0)+-1;e=48}}else e=h;g=+Fy(b,e,m,l,i,f);break a}default:{if(c[n>>2]|0)c[o>>2]=(c[o>>2]|0)+-1;o=ox()|0;c[o>>2]=28;wx(b,0,0);g=0.0;break a}}}}while(0);if((j|0)==23){h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[o>>2]=(c[o>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(i|0)*r}while(0);return +g}function Ey(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0.0,i=0,j=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,x=0,y=0;y=a+4|0;i=c[y>>2]|0;x=a+104|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;j=0;a:while(1){switch(i|0){case 46:{w=10;break a}case 48:break;default:{p=0;m=j;l=0;j=0;break a}}i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;j=1}if((w|0)==10){i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;if((i|0)==48){l=0;j=0;do{i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;l=OO(l|0,j|0,-1,-1)|0;j=F()|0}while((i|0)==48);p=1;m=1}else{p=1;m=j;l=0;j=0}}o=0;n=1.0;h=0.0;v=0;s=p;t=m;u=0;m=0;while(1){q=i+-48|0;p=i|32;if(q>>>0>=10){r=(i|0)==46;if(!(r|(p+-97|0)>>>0<6))break;if(r)if(!s){s=1;k=n;q=v;r=t;l=m;j=u;p=u}else{i=46;break}else w=24}else w=24;if((w|0)==24){w=0;i=(i|0)>57?p+-87|0:q;do if(!((u|0)<0|(u|0)==0&m>>>0<8))if((u|0)<0|(u|0)==0&m>>>0<14){n=n*.0625;k=n;h=h+n*+(i|0);i=v;break}else{i=(o|0)!=0|(i|0)==0;o=i?o:1;k=n;h=i?h:h+n*.5;i=v;break}else{k=n;i=i+(v<<4)|0}while(0);m=OO(m|0,u|0,1,0)|0;q=i;r=1;p=F()|0}i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;n=k;v=q;t=r;u=p}do if(!t){i=(c[x>>2]|0)==0;if(!i)c[y>>2]=(c[y>>2]|0)+-1;if(g){if(!i?(c[y>>2]=(c[y>>2]|0)+-1,!((s|0)==0|i)):0)c[y>>2]=(c[y>>2]|0)+-1}else wx(a,0,0);h=+(f|0)*0.0}else{o=(s|0)==0;p=o?m:l;o=o?u:j;if((u|0)<0|(u|0)==0&m>>>0<8){j=v;l=u;do{j=j<<4;w=m;m=OO(m|0,l|0,1,0)|0;v=l;l=F()|0}while((v|0)<0|(v|0)==0&w>>>0<7);m=j}else m=v;if((i|32|0)==112){j=Gy(a,g)|0;i=F()|0;if((j|0)==0&(i|0)==-2147483648){if(!g){wx(a,0,0);h=0.0;break}if(!(c[x>>2]|0)){j=0;i=0}else{c[y>>2]=(c[y>>2]|0)+-1;j=0;i=0}}}else if(!(c[x>>2]|0)){j=0;i=0}else{c[y>>2]=(c[y>>2]|0)+-1;j=0;i=0}l=UO(p|0,o|0,2)|0;l=OO(l|0,F()|0,-32,-1)|0;l=OO(l|0,F()|0,j|0,i|0)|0;i=F()|0;if(!m){h=+(f|0)*0.0;break}y=0-e|0;g=((y|0)<0)<<31>>31;if((i|0)>(g|0)|(i|0)==(g|0)&l>>>0>y>>>0){b=ox()|0;c[b>>2]=68;h=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}y=e+-106|0;g=((y|0)<0)<<31>>31;if((i|0)<(g|0)|(i|0)==(g|0)&l>>>0>>0){b=ox()|0;c[b>>2]=68;h=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((m|0)>-1){j=m;do{y=!(h>=.5);j=j<<1|(y^1)&1;h=h+(y?h:h+-1.0);l=OO(l|0,i|0,-1,-1)|0;i=F()|0}while((j|0)>-1);n=h;m=j}else n=h;y=((b|0)<0)<<31>>31;e=PO(32,0,e|0,((e|0)<0)<<31>>31|0)|0;i=OO(e|0,F()|0,l|0,i|0)|0;e=F()|0;if((e|0)<(y|0)|(e|0)==(y|0)&i>>>0>>0)if((i|0)>0)w=65;else{j=0;i=84;w=67}else{i=b;w=65}if((w|0)==65)if((i|0)<53){j=i;i=84-i|0;w=67}else{k=0.0;h=+(f|0)}if((w|0)==67){h=+(f|0);k=+Iy(+Hy(1.0,i),h);i=j}f=(m&1|0)==0&(n!=0.0&(i|0)<32);h=(f?0.0:n)*h+(k+h*+((m+(f&1)|0)>>>0))-k;if(!(h!=0.0)){f=ox()|0;c[f>>2]=68}h=+Ky(h,l)}while(0);return +h}function Fy(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0.0;I=zb;zb=zb+512|0;E=I;G=f+e|0;H=0-G|0;D=a+4|0;C=a+104|0;j=0;a:while(1){switch(b|0){case 46:{z=7;break a}case 48:break;default:{v=0;p=j;j=0;o=0;break a}}b=c[D>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=yx(a)|0;j=1}if((z|0)==7){b=c[D>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=yx(a)|0;if((b|0)==48){j=0;b=0;while(1){j=OO(j|0,b|0,-1,-1)|0;o=F()|0;b=c[D>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=yx(a)|0;if((b|0)==48)b=o;else{v=1;p=1;break}}}else{v=1;p=j;j=0;o=0}}c[E>>2]=0;n=b+-48|0;m=(b|0)==46;b:do if(m|n>>>0<10){A=E+496|0;w=0;l=0;s=0;x=v;y=p;z=n;p=0;n=0;c:while(1){do if(m)if(!x){x=1;j=p;o=n}else break c;else{p=OO(p|0,n|0,1,0)|0;n=F()|0;v=(b|0)!=48;if((l|0)>=125){if(!v)break;c[A>>2]=c[A>>2]|1;break}m=E+(l<<2)|0;if(!w)b=z;else b=b+-48+((c[m>>2]|0)*10|0)|0;c[m>>2]=b;w=w+1|0;y=(w|0)==9;w=y?0:w;l=l+(y&1)|0;s=v?p:s;y=1}while(0);b=c[D>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=yx(a)|0;z=b+-48|0;m=(b|0)==46;if(!(m|z>>>0<10)){v=x;m=y;z=31;break b}}b=w;m=(y|0)!=0;z=39}else{w=0;l=0;s=0;m=p;p=0;n=0;z=31}while(0);do if((z|0)==31){A=(v|0)==0;j=A?p:j;o=A?n:o;m=(m|0)!=0;if(!(m&(b|32|0)==101))if((b|0)>-1){b=w;z=39;break}else{b=w;z=41;break}m=Gy(a,h)|0;b=F()|0;if((m|0)==0&(b|0)==-2147483648){if(!h){wx(a,0,0);i=0.0;break}if(!(c[C>>2]|0)){m=0;b=0}else{c[D>>2]=(c[D>>2]|0)+-1;m=0;b=0}}j=OO(m|0,b|0,j|0,o|0)|0;b=w;o=F()|0;z=43}while(0);if((z|0)==39)if(c[C>>2]|0){c[D>>2]=(c[D>>2]|0)+-1;if(m)z=43;else z=42}else z=41;if((z|0)==41)if(m)z=43;else z=42;do if((z|0)==42){H=ox()|0;c[H>>2]=28;wx(a,0,0);i=0.0}else if((z|0)==43){m=c[E>>2]|0;if(!m){i=+(g|0)*0.0;break}if(((n|0)<0|(n|0)==0&p>>>0<10)&((j|0)==(p|0)&(o|0)==(n|0))?(e|0)>30|(m>>>e|0)==0:0){i=+(g|0)*+(m>>>0);break}a=(f|0)/-2|0;D=((a|0)<0)<<31>>31;if((o|0)>(D|0)|(o|0)==(D|0)&j>>>0>a>>>0){H=ox()|0;c[H>>2]=68;i=+(g|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=f+-106|0;D=((a|0)<0)<<31>>31;if((o|0)<(D|0)|(o|0)==(D|0)&j>>>0>>0){H=ox()|0;c[H>>2]=68;i=+(g|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(b){if((b|0)<9){n=E+(l<<2)|0;m=c[n>>2]|0;while(1){m=m*10|0;if((b|0)>=8)break;else b=b+1|0}c[n>>2]=m}l=l+1|0}if((s|0)<9?(s|0)<=(j|0)&(j|0)<18:0){if((j|0)==9){i=+(g|0)*+((c[E>>2]|0)>>>0);break}if((j|0)<9){i=+(g|0)*+((c[E>>2]|0)>>>0)/+(c[12432+(8-j<<2)>>2]|0);break}a=e+27+(B(j,-3)|0)|0;b=c[E>>2]|0;if((a|0)>30|(b>>>a|0)==0){i=+(g|0)*+(b>>>0)*+(c[12432+(j+-10<<2)>>2]|0);break}}b=(j|0)%9|0;if(!b)m=0;else{s=(j|0)>-1?b:b+9|0;o=c[12432+(8-s<<2)>>2]|0;if(l){p=1e9/(o|0)|0;n=0;m=0;b=0;do{C=E+(b<<2)|0;D=c[C>>2]|0;a=(D>>>0)/(o>>>0)|0;D=D-(B(a,o)|0)|0;a=a+n|0;c[C>>2]=a;n=B(p,D)|0;a=(b|0)==(m|0)&(a|0)==0;j=a?j+-9|0:j;m=a?m+1&127:m;b=b+1|0}while((b|0)!=(l|0));if(!n)b=l;else{c[E+(l<<2)>>2]=n;b=l+1|0}}else{m=0;b=0}l=b;j=9-s+j|0}b=0;d:while(1){v=(j|0)<18;w=(j|0)==18;x=E+(m<<2)|0;while(1){if(!v){if(!w)break d;if((c[x>>2]|0)>>>0>=9007199){j=18;break d}}n=0;y=l;l=l+127|0;while(1){p=l&127;o=E+(p<<2)|0;l=UO(c[o>>2]|0,0,29)|0;l=OO(l|0,F()|0,n|0,0)|0;n=F()|0;if(n>>>0>0|(n|0)==0&l>>>0>1e9){s=SO(l|0,n|0,1e9,0)|0;a=NO(s|0,F()|0,1e9,0)|0;l=PO(l|0,n|0,a|0,F()|0)|0;F()|0}else s=0;c[o>>2]=l;a=(p|0)==(m|0);o=(p|0)!=(y+127&127|0)|a?y:(l|0)==0?p:y;if(a)break;else{n=s;y=o;l=p+-1|0}}b=b+-29|0;if(!s)l=y;else break}m=m+127&127;l=o+127&127;n=E+((o+126&127)<<2)|0;if((m|0)==(o|0))c[n>>2]=c[n>>2]|c[E+(l<<2)>>2];else l=y;c[E+(m<<2)>>2]=s;j=j+9|0}e:while(1){w=l+1&127;x=E+((l+127&127)<<2)|0;while(1){p=(j|0)==18;v=(j|0)>27?9:1;y=m;while(1){o=0;while(1){m=o+y&127;if((m|0)==(l|0)){z=92;break}m=c[E+(m<<2)>>2]|0;n=c[16276+(o<<2)>>2]|0;if(m>>>0>>0){z=92;break}if(m>>>0>n>>>0)break;if((o+1|0)>>>0<2)o=1;else{z=92;break}}if((z|0)==92?(z=0,p):0)break e;b=v+b|0;if((y|0)==(l|0))y=l;else break}p=(1<>>v;o=0;m=y;n=y;do{C=E+(n<<2)|0;D=c[C>>2]|0;a=(D>>>v)+o|0;c[C>>2]=a;o=B(D&p,s)|0;a=(n|0)==(m|0)&(a|0)==0;j=a?j+-9|0:j;m=a?m+1&127:m;n=n+1&127}while((n|0)!=(l|0));if(o|0){if((w|0)!=(m|0))break;c[x>>2]=c[x>>2]|1}}c[E+(l<<2)>>2]=o;l=w}i=0.0;j=l;m=0;do{n=m+y&127;l=j+1&127;if((n|0)==(j|0)){c[E+(l+-1<<2)>>2]=0;j=l}i=i*1.0e9+ +((c[E+(n<<2)>>2]|0)>>>0);m=m+1|0}while((m|0)!=2);u=+(g|0);k=i*u;n=b+53|0;o=n-f|0;p=(o|0)<(e|0);m=p?((o|0)>0?o:0):e;if((m|0)<53){J=+Iy(+Hy(1.0,105-m|0),k);q=+Jy(k,+Hy(1.0,53-m|0));r=J;i=q;q=J+(k-q)}else{r=0.0;i=0.0;q=k}l=y+2&127;if((l|0)!=(j|0)){l=c[E+(l<<2)>>2]|0;do if(l>>>0>=5e8){if((l|0)!=5e8){i=u*.75+i;break}if((y+3&127|0)==(j|0)){i=u*.5+i;break}else{i=u*.75+i;break}}else{if((l|0)==0?(y+3&127|0)==(j|0):0)break;i=u*.25+i}while(0);if((53-m|0)>1?!(+Jy(i,1.0)!=0.0):0)k=i+1.0;else k=i}else k=i;i=q+k-r;do if((n&2147483647|0)>(-2-G|0)){G=!(+t(+i)>=9007199254740992.0);b=b+((G^1)&1)|0;i=G?i:i*.5;if((b+50|0)<=(H|0)?!(k!=0.0&(p&((m|0)!=(o|0)|G))):0)break;H=ox()|0;c[H>>2]=68}while(0);i=+Ky(i,b)}while(0);zb=I;return +i}function Gy(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;e=c[i>>2]|0;j=a+104|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;f=d[e>>0]|0}else f=yx(a)|0;switch(f|0){case 43:case 45:{g=(f|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=yx(a)|0;f=e+-48|0;if((b|0)!=0&f>>>0>9)if(!(c[j>>2]|0)){f=0;e=-2147483648}else{c[i>>2]=(c[i>>2]|0)+-1;k=14}else k=12;break}default:{g=0;e=f;f=f+-48|0;k=12}}if((k|0)==12)if(f>>>0>9)k=14;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=yx(a)|0;b=e+-48|0}while(b>>>0<10&(f|0)<214748364);h=((f|0)<0)<<31>>31;if(b>>>0<10){do{l=NO(f|0,h|0,10,0)|0;b=F()|0;e=OO(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=OO(e|0,F()|0,l|0,b|0)|0;h=F()|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=yx(a)|0;b=e+-48|0}while(b>>>0<10&((h|0)<21474836|(h|0)==21474836&f>>>0<2061584302));if(b>>>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=yx(a)|0}while((e+-48|0)>>>0<10);e=h}else e=h}else e=h;if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;j=(g|0)==0;i=PO(0,0,f|0,e|0)|0;l=F()|0;f=j?f:i;e=j?e:l}if((k|0)==14)if(!(c[j>>2]|0)){f=0;e=-2147483648}else{c[i>>2]=(c[i>>2]|0)+-1;f=0;e=-2147483648}E(e|0);return f|0}function Hy(a,b){a=+a;b=b|0;var d=0,e=0;if((b|0)<=1023){if((b|0)<-1022){a=a*2.2250738585072014e-308;e=(b|0)<-2044;d=b+2044|0;a=e?a*2.2250738585072014e-308:a;b=e?((d|0)>-1022?d:-1022):b+1022|0}}else{a=a*8988465674311579538646525.0e283;d=(b|0)>2046;e=b+-2046|0;a=d?a*8988465674311579538646525.0e283:a;b=d?((e|0)<1023?e:1023):b+-1023|0}d=UO(b+1023|0,0,52)|0;e=F()|0;c[h>>2]=d;c[h+4>>2]=e;return +(a*+g[h>>3])}function Iy(a,b){a=+a;b=+b;return +(+Ex(a,b))}function Jy(a,b){a=+a;b=+b;return +(+Ly(a,b))}function Ky(a,b){a=+a;b=b|0;return +(+Hy(a,b))}function Ly(a,b){a=+a;b=+b;var d=0,e=0,f=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g[h>>3]=a;j=c[h>>2]|0;l=c[h+4>>2]|0;g[h>>3]=b;n=c[h>>2]|0;o=c[h+4>>2]|0;e=TO(j|0,l|0,52)|0;F()|0;e=e&2047;m=TO(n|0,o|0,52)|0;F()|0;m=m&2047;p=l&-2147483648;i=UO(n|0,o|0,1)|0;k=F()|0;a:do if(!((i|0)==0&(k|0)==0)?(f=My(b)|0,d=(F()|0)&2147483647,!((e|0)==2047|(d>>>0>2146435072|(d|0)==2146435072&f>>>0>0))):0){d=UO(j|0,l|0,1)|0;f=F()|0;if(!(f>>>0>k>>>0|(f|0)==(k|0)&d>>>0>i>>>0))return +((d|0)==(i|0)&(f|0)==(k|0)?a*0.0:a);if(!e){d=UO(j|0,l|0,12)|0;f=F()|0;if((f|0)>-1|(f|0)==-1&d>>>0>4294967295){e=0;do{e=e+-1|0;d=UO(d|0,f|0,1)|0;f=F()|0}while((f|0)>-1|(f|0)==-1&d>>>0>4294967295)}else e=0;j=UO(j|0,l|0,1-e|0)|0;i=F()|0}else i=l&1048575|1048576;if(!m){f=UO(n|0,o|0,12)|0;k=F()|0;if((k|0)>-1|(k|0)==-1&f>>>0>4294967295){d=0;do{d=d+-1|0;f=UO(f|0,k|0,1)|0;k=F()|0}while((k|0)>-1|(k|0)==-1&f>>>0>4294967295)}else d=0;n=UO(n|0,o|0,1-d|0)|0;m=d;l=F()|0}else l=o&1048575|1048576;f=PO(j|0,i|0,n|0,l|0)|0;d=F()|0;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;b:do if((e|0)>(m|0)){while(1){if(k){if((f|0)==0&(d|0)==0)break}else{f=j;d=i}j=UO(f|0,d|0,1)|0;i=F()|0;e=e+-1|0;f=PO(j|0,i|0,n|0,l|0)|0;d=F()|0;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;if((e|0)<=(m|0))break b}b=a*0.0;break a}while(0);if(k){if((f|0)==0&(d|0)==0){b=a*0.0;break}}else{d=i;f=j}if(d>>>0<1048576|(d|0)==1048576&f>>>0<0)do{f=UO(f|0,d|0,1)|0;d=F()|0;e=e+-1|0}while(d>>>0<1048576|(d|0)==1048576&f>>>0<0);if((e|0)>0){o=OO(f|0,d|0,0,-1048576)|0;d=F()|0;e=UO(e|0,0,52)|0;d=d|(F()|0);e=o|e}else{e=TO(f|0,d|0,1-e|0)|0;d=F()|0}c[h>>2]=e;c[h+4>>2]=d|p;b=+g[h>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function My(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;E(c[h+4>>2]|0);return b|0}function Ny(a){a=a|0;return 0}function Oy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}function Py(a,b){a=a|0;b=b|0;return -1|0}function Qy(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=5;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=5;break}}}while(0);if((e|0)==5){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 Ry(a,b){a=a|0;b=b|0;var d=0,e=0;d=zb;zb=zb+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;b=ny(_(91,e|0)|0)|0;zb=d;return b|0}function Sy(b,c){b=b|0;c=c|0;b=Ty(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function Ty(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(Qy(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=B(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 Uy(){return}function Vy(a){a=a|0;if(Wy(a)|0)GO(a);return}function Wy(a){a=a|0;return (a|0)!=15980&((a|0)!=0&(a|0)!=55596)&1|0}function Xy(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;l=zb;zb=zb+16|0;h=l;j=(g|0)==0?55624:g;g=c[j>>2]|0;a:do if(!e)if(!g)g=0;else k=19;else{i=(b|0)==0?h:b;if(!f)g=-2;else{if(!g){g=a[e>>0]|0;if(g<<24>>24>-1){c[i>>2]=g&255;g=g<<24>>24!=0&1;break}h=(Yy()|0)+188|0;g=a[e>>0]|0;if(!(c[c[h>>2]>>2]|0)){c[i>>2]=g<<24>>24&57343;g=1;break}g=(g&255)+-194|0;if(g>>>0>50){k=19;break}g=c[5728+(g<<2)>>2]|0;h=f+-1|0;if(h){e=e+1|0;k=11}}else{h=f;k=11}b:do if((k|0)==11){b=d[e>>0]|0;m=b>>>3;if((m+-16|m+(g>>26))>>>0>7){k=19;break a}g=b+-128|g<<6;b=h+-1|0;if((g|0)<0)do{e=e+1|0;if(!b)break b;h=a[e>>0]|0;if((h&-64)<<24>>24!=-128){k=19;break a}g=(h&255)+-128|g<<6;b=b+-1|0}while((g|0)<0);c[j>>2]=0;c[i>>2]=g;g=f-b|0;break a}while(0);c[j>>2]=g;g=-2}}while(0);if((k|0)==19){c[j>>2]=0;g=ox()|0;c[g>>2]=25;g=-1}zb=l;return g|0}function Yy(){return ay()|0}function Zy(a,b){a=a|0;b=b|0;return Gx(a)|0}function _y(a,b){a=a|0;b=b|0;return my(a)|0}function $y(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+272|0;m=o;n=o+256|0;do if(!(a[d>>0]|0)){d=Ja(46731)|0;if(d|0?a[d>>0]|0:0)break;d=Ja(12464+(b*12|0)|0)|0;if(d|0?a[d>>0]|0:0)break;d=Ja(46738)|0;if(d|0?a[d>>0]|0:0)break;d=46743}while(0);e=0;a:while(1){switch(a[d+e>>0]|0){case 47:case 0:break a;default:{}}e=e+1|0;if(e>>>0>=15){e=15;break}}f=a[d>>0]|0;if(f<<24>>24!=46?(a[d+e>>0]|0)==0:0)if(f<<24>>24==67)l=15;else{k=d;l=16}else{d=46743;l=15}if((l|0)==15)if(!(a[d+1>>0]|0))l=18;else{k=d;l=16}b:do if((l|0)==16)if((Fx(k,46743)|0)!=0?(Fx(k,46751)|0)!=0:0){d=c[13907]|0;if(d|0)do{if(!(Fx(k,d+8|0)|0))break b;d=c[d+24>>2]|0}while((d|0)!=0);U(55632);d=c[13907]|0;c:do if(d|0){while(1){if(!(Fx(k,d+8|0)|0))break;d=c[d+24>>2]|0;if(!d)break c}$(55632);break b}while(0);d:do if(((c[13885]|0)==0?(g=Ja(46757)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0){i=254-e|0;j=e+1|0;f=g;while(1){h=Ty(f,58)|0;d=a[h>>0]|0;g=h-f+((d<<24>>24!=0)<<31>>31)|0;if(g>>>0>>0){_O(m|0,f|0,g|0)|0;f=m+g|0;a[f>>0]=47;_O(f+1|0,k|0,e|0)|0;a[m+(j+g)>>0]=0;f=V(m|0,n|0)|0;if(f|0)break;d=a[h>>0]|0}f=h+(d<<24>>24!=0&1)|0;if(!(a[f>>0]|0)){l=41;break d}}d=FO(28)|0;if(!d){Ry(f,c[n>>2]|0)|0;l=41;break}else{c[d>>2]=f;c[d+4>>2]=c[n>>2];n=d+8|0;_O(n|0,k|0,e|0)|0;a[n+e>>0]=0;c[d+24>>2]=c[13907];c[13907]=d;break}}else l=41;while(0);if((l|0)==41){d=FO(28)|0;if(d){c[d>>2]=c[3988];c[d+4>>2]=c[3989];n=d+8|0;_O(n|0,k|0,e|0)|0;a[n+e>>0]=0;c[d+24>>2]=c[13907];c[13907]=d}}$(55632);d=(b|0)==0&(d|0)==0?15952:d}else{d=k;l=18}while(0);do if((l|0)==18){if((b|0)==0?(a[d+1>>0]|0)==46:0){d=15952;break}d=0}while(0);zb=o;return d|0}function az(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;j=zb;zb=zb+32|0;i=j;a:do if(!(Wy(d)|0)){h=(d|0)!=0;f=0;g=0;do{e=1<>2]|0;else e=$y(g,(e|0)==0?57671:b)|0;f=f+((e|0)!=0&1)|0;c[i+(g<<2)>>2]=e;g=g+1|0}while((g|0)!=6);switch(f&2147483647|0){case 0:{d=55596;break a}case 1:{if((c[i>>2]|0)==15952){d=15980;break a}break}default:{}}}else{e=0;do{if(1<>2]=i}e=e+1|0}while((e|0)!=6)}while(0);zb=j;return d|0}function bz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;c[g>>2]=e;e=Jx(a,b,d,g)|0;zb=f;return e|0}function cz(a,b){a=a|0;b=b|0;dz(a,b)|0;return a|0}function dz(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009|0)break;else f=b}}f=10}else f=10;while(0);if((f|0)==10){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function ez(a){a=a|0;var b=0,d=0;b=(fz()|0)+188|0;d=c[b>>2]|0;if(a|0)c[b>>2]=(a|0)==(-1|0)?55572:a;return ((d|0)==55572?-1:d)|0}function fz(){return ay()|0}function gz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{b=b+4|0;e=e+4|0}}}return a|0}function hz(a,b){a=+a;b=b|0;return +(+Hy(a,b))}function iz(a){a=+a;return ~~+bP(+a)|0}function jz(a){a=a|0;var b=0,c=0;b=(Qy(a)|0)+1|0;c=FO(b)|0;if(!c)a=0;else a=_O(c|0,a|0,b|0)|0;return a|0}function kz(a,b){a=a|0;b=b|0;var c=0;c=Qy(a)|0;return ((lz(a,1,c,b)|0)!=(c|0))<<31>>31|0}function lz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=B(d,b)|0;d=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){g=(Px(e)|0)==0;a=by(a,f,e)|0;if(!g)Qx(e)}else a=by(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function mz(a){a=a|0;var b=0;if(c[a+68>>2]|0){b=c[a+132>>2]|0;a=a+128|0;if(b|0)c[b+128>>2]=c[a>>2];a=c[a>>2]|0;if(!a)a=(nz()|0)+232|0;else a=a+132|0;c[a>>2]=b}return}function nz(){return ay()|0}function oz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=zb;zb=zb+16|0;j=l;k=e&255;a[j>>0]=k;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(cy(b)|0)){h=c[g>>2]|0;i=4}else f=-1;else i=4;do if((i|0)==4){i=b+20|0;g=c[i>>2]|0;if(g>>>0>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[i>>2]=g+1;a[g>>0]=k;break}if((Jb[c[b+36>>2]&63](b,j,1)|0)==1)f=d[j>>0]|0;else f=-1}while(0);zb=l;return f|0}function pz(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;g=j;a:do if(!e)b=0;else{do if(f|0){i=(b|0)==0?g:b;b=a[e>>0]|0;if(b<<24>>24>-1){c[i>>2]=b&255;b=b<<24>>24!=0&1;break a}h=(qz()|0)+188|0;b=a[e>>0]|0;if(!(c[c[h>>2]>>2]|0)){c[i>>2]=b<<24>>24&57343;b=1;break a}b=(b&255)+-194|0;if(b>>>0<=50){g=e+1|0;h=c[5728+(b<<2)>>2]|0;if(f>>>0<4?h&-2147483648>>>((f*6|0)+-6|0)|0:0)break;b=d[g>>0]|0;f=b>>>3;if((f+-16|f+(h>>26))>>>0<=7){b=b+-128|h<<6;if((b|0)>=0){c[i>>2]=b;b=2;break a}g=(d[e+2>>0]|0)+-128|0;if(g>>>0<=63){g=g|b<<6;if((g|0)>=0){c[i>>2]=g;b=3;break a}b=(d[e+3>>0]|0)+-128|0;if(b>>>0<=63){c[i>>2]=b|g<<6;b=4;break a}}}}}while(0);b=ox()|0;c[b>>2]=25;b=-1}while(0);zb=j;return b|0}function qz(){return ay()|0}function rz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=zb;zb=zb+16|0;e=f;if(Sy(46770,a[d>>0]|0)|0){g=sz(d)|0|32768;c[e>>2]=b;c[e+4>>2]=g;c[e+8>>2]=438;e=ny(Y(5,e|0)|0)|0;if((e|0)>=0){b=tz(e,d)|0;if(!b){aa(e|0)|0;b=0}}else b=0}else{b=ox()|0;c[b>>2]=28;b=0}zb=f;return b|0}function sz(b){b=b|0;var c=0,d=0,e=0;d=(Sy(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(Sy(b,120)|0)==0;d=e?d:d|128;b=(Sy(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 tz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=zb;zb=zb+48|0;i=j+24|0;g=j+8|0;f=j;h=j+40|0;if(Sy(46770,a[d>>0]|0)|0){e=FO(1176)|0;if(!e)e=0;else{aP(e|0,0,144)|0;k=(Sy(d,43)|0)==0;d=a[d>>0]|0;if(k)c[e>>2]=d<<24>>24==114?8:4;if(d<<24>>24==97){c[f>>2]=b;c[f+4>>2]=3;d=X(221,f|0)|0;if(!(d&1024)){c[g>>2]=b;c[g+4>>2]=4;c[g+8>>2]=d|1024;X(221,g|0)|0}f=c[e>>2]|128;c[e>>2]=f}else f=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+152;c[e+48>>2]=1024;d=e+75|0;a[d>>0]=-1;if((f&8|0)==0?(c[i>>2]=b,c[i+4>>2]=21523,c[i+8>>2]=h,(Z(54,i|0)|0)==0):0)a[d>>0]=10;c[e+32>>2]=2;c[e+36>>2]=1;c[e+40>>2]=1;c[e+12>>2]=2;if(!(c[13884]|0))c[e+76>>2]=-1;uz(e)|0}}else{e=ox()|0;c[e>>2]=28;e=0}zb=j;return e|0}function uz(a){a=a|0;var b=0,d=0;b=vz()|0;c[a+56>>2]=c[b>>2];d=c[b>>2]|0;if(d|0)c[d+52>>2]=a;c[b>>2]=a;wz();return a|0}function vz(){U(55640);return 55648}function wz(){$(55640);return}function xz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((c[a+76>>2]|0)>-1)f=Px(a)|0;else f=0;mz(a);g=(c[a>>2]&1|0)!=0;if(!g){e=vz()|0;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[e>>2]|0)==(a|0))c[e>>2]=b;wz()}b=yz(a)|0;b=Gb[c[a+12>>2]&127](a)|0|b;d=c[a+96>>2]|0;if(d|0)GO(d);if(g){if(f|0)Qx(a)}else GO(a);return b|0}function yz(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=zz(a)|0;break}d=(Px(a)|0)==0;b=zz(a)|0;if(!d)Qx(a)}else{if(!(c[4004]|0))b=0;else b=yz(c[4004]|0)|0;a=vz()|0;a=c[a>>2]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=Px(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=zz(a)|0|b;if(d|0)Qx(a);a=c[a+56>>2]|0}while((a|0)!=0);wz()}while(0);return b|0}function zz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(Jb[c[a+36>>2]&63](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0>>0){g=e-g|0;Kb[c[a+40>>2]&15](a,g,((g|0)<0)<<31>>31,1)|0;F()|0}c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function Az(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;if((c[f+76>>2]|0)>-1)m=Px(f)|0;else m=0;g=e+-1|0;if((e|0)<2){n=f+74|0;l=a[n>>0]|0;a[n>>0]=l+255|l;if(m|0)Qx(f);if(!g)a[b>>0]=0;else b=0}else{a:do if(g){k=f+4|0;l=f+8|0;e=b;while(1){h=c[k>>2]|0;o=h;p=(c[l>>2]|0)-o|0;j=Xx(h,10,p)|0;i=(j|0)==0;j=i?p:1-o+j|0;j=j>>>0>>0?j:g;_O(e|0,h|0,j|0)|0;h=(c[k>>2]|0)+j|0;c[k>>2]=h;e=e+j|0;j=g-j|0;if(!(i&(j|0)!=0)){n=17;break a}if(h>>>0>=(c[l>>2]|0)>>>0){g=Ax(f)|0;if((g|0)<0)break;else h=g}else{c[k>>2]=h+1;h=d[h>>0]|0}i=e+1|0;a[e>>0]=h;g=j+-1|0;if((h&255|0)==10|(g|0)==0){e=i;n=17;break a}else e=i}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)n=17;else b=0}else{e=b;n=17}while(0);if((n|0)==17)if(!b)b=0;else a[e>>0]=0;if(m)Qx(f)}return b|0}function Bz(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Px(a)|0)==0;a=(c[a>>2]|0)>>>5&1}else a=(c[a>>2]|0)>>>5&1;return a|0}function Cz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+16|0;f=e;c[f>>2]=d;d=Dz(a,b,f)|0;zb=e;return d|0}function Dz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+144|0;f=e;aP(f|0,0,144)|0;c[f+32>>2]=35;c[f+44>>2]=a;c[f+76>>2]=-1;c[f+84>>2]=a;d=Fz(f,b,d)|0;zb=e;return d|0}function Ez(a,b,c){a=a|0;b=b|0;c=c|0;return Jz(a,b,c)|0}function Fz(e,h,i){e=e|0;h=h|0;i=i|0;var j=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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=zb;zb=zb+288|0;K=Q+264|0;L=Q;M=Q+260|0;N=Q+272|0;if((c[e+76>>2]|0)>-1)P=Px(e)|0;else P=0;j=a[h>>0]|0;a:do if(j<<24>>24){B=e+4|0;C=e+104|0;D=e+120|0;E=e+8|0;G=L+10|0;H=L+33|0;I=L+46|0;J=L+94|0;A=K+4|0;m=h;h=0;k=0;l=j;j=0;u=0;v=0;b:while(1){c:do if(!(zx(l&255)|0)){n=(a[m>>0]|0)==37;d:do if(n){l=m+1|0;o=a[l>>0]|0;e:do switch(o<<24>>24){case 37:break d;case 42:{z=0;l=m+2|0;break}default:{if(Gx(o&255)|0?(a[m+2>>0]|0)==36:0){z=Gz(i,(d[l>>0]|0)+-48|0)|0;l=m+3|0;break e}y=(c[i>>2]|0)+(4-1)&~(4-1);z=c[y>>2]|0;c[i>>2]=y+4}}while(0);if(!(Gx(d[l>>0]|0)|0)){r=0;o=l}else{m=0;do{m=(m*10|0)+-48+(d[l>>0]|0)|0;l=l+1|0}while((Gx(d[l>>0]|0)|0)!=0);r=m;o=l}n=a[o>>0]|0;q=o+1|0;if(n<<24>>24==109){l=(z|0)!=0&1;k=0;m=q;o=o+2|0;n=a[q>>0]|0;j=0}else{l=0;m=o;o=q}switch(n<<24>>24){case 104:{y=(a[o>>0]|0)==104;n=y?-2:-1;m=y?m+2|0:o;break}case 108:{y=(a[o>>0]|0)==108;n=y?3:1;m=y?m+2|0:o;break}case 106:{n=3;m=o;break}case 116:case 122:{n=1;m=o;break}case 76:{n=2;m=o;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{n=0;break}default:{O=143;break b}}s=d[m>>0]|0;t=(s&47|0)==3;s=t?s|32:s;t=t?1:n;q=s&255;switch(q<<24>>24){case 99:{y=(r|0)>1?r:1;break}case 91:{y=r;break}case 110:{Hz(z,t,u,v);n=u;o=v;break c}default:{wx(e,0,0);do{n=c[B>>2]|0;if(n>>>0<(c[C>>2]|0)>>>0){c[B>>2]=n+1;n=d[n>>0]|0}else n=yx(e)|0}while((zx(n)|0)!=0);if(!(c[C>>2]|0))n=c[B>>2]|0;else{n=(c[B>>2]|0)+-1|0;c[B>>2]=n}x=D;y=n-(c[E>>2]|0)|0;u=OO(c[x>>2]|0,c[x+4>>2]|0,u|0,v|0)|0;u=OO(u|0,F()|0,y|0,((y|0)<0)<<31>>31|0)|0;y=r;v=F()|0}}x=((y|0)<0)<<31>>31;wx(e,y,x);o=c[B>>2]|0;n=c[C>>2]|0;if(o>>>0>>0)c[B>>2]=o+1;else{if((yx(e)|0)<0){O=143;break b}n=c[C>>2]|0}if(n|0)c[B>>2]=(c[B>>2]|0)+-1;f:do switch(q<<24>>24){case 91:case 99:case 115:{w=(s|0)==99;g:do if((s|16|0)==115){aP(L|0,-1,257)|0;a[L>>0]=0;if((s|0)==115){a[H>>0]=0;b[G>>1]=0;b[G+2>>1]=0;a[G+4>>0]=0}}else{s=m+1|0;r=(a[s>>0]|0)==94;n=r&1;m=r?m+2|0:s;aP(L|0,n|0,257)|0;a[L>>0]=0;switch(a[m>>0]|0){case 45:{q=(n^1)&255;a[I>>0]=q;m=m+1|0;break}case 93:{q=(n^1)&255;a[J>>0]=q;m=m+1|0;break}default:q=(n^1)&255}while(1){n=a[m>>0]|0;h:do switch(n<<24>>24){case 0:{O=143;break b}case 93:break g;case 45:{o=m+1|0;n=a[o>>0]|0;switch(n<<24>>24){case 93:case 0:{n=45;break h}default:{}}m=a[m+-1>>0]|0;if((m&255)<(n&255)){m=m&255;do{m=m+1|0;a[L+m>>0]=q;n=a[o>>0]|0}while(m>>>0<(n&255)>>>0);m=o}else m=o;break}default:{}}while(0);a[L+((n&255)+1)>>0]=q;m=m+1|0}}while(0);n=w?y+1|0:31;s=(t|0)==1;t=(l|0)!=0;i:do if(s){if(t){j=FO(n<<2)|0;if(!j){k=0;j=0;O=143;break b}}else j=z;c[K>>2]=0;c[A>>2]=0;k=0;j:while(1){q=(j|0)==0;do{k:while(1){o=c[B>>2]|0;if(o>>>0<(c[C>>2]|0)>>>0){c[B>>2]=o+1;o=d[o>>0]|0}else o=yx(e)|0;if(!(a[L+(o+1)>>0]|0))break j;a[N>>0]=o;switch(Xy(M,N,1,K)|0){case -1:{k=0;O=143;break b}case -2:break;default:break k}}if(!q){c[j+(k<<2)>>2]=c[M>>2];k=k+1|0}}while(!(t&(k|0)==(n|0)));n=n<<1|1;o=IO(j,n<<2)|0;if(!o){k=0;O=143;break b}else j=o}if(!(Iz(K)|0)){k=0;O=143;break b}else{q=k;k=0;r=j}}else{if(t){k=FO(n)|0;if(!k){k=0;j=0;O=143;break b}j=0;while(1){q=j;do{j=c[B>>2]|0;if(j>>>0<(c[C>>2]|0)>>>0){c[B>>2]=j+1;j=d[j>>0]|0}else j=yx(e)|0;if(!(a[L+(j+1)>>0]|0)){r=0;j=0;break i}r=q;q=q+1|0;a[k+r>>0]=j}while((q|0)!=(n|0));n=n<<1|1;o=IO(k,n)|0;if(!o){j=0;O=143;break b}else{j=q;k=o}}}if(!z)while(1){j=c[B>>2]|0;if(j>>>0<(c[C>>2]|0)>>>0){c[B>>2]=j+1;j=d[j>>0]|0}else j=yx(e)|0;if(!(a[L+(j+1)>>0]|0)){q=0;k=0;r=0;j=0;break i}}k=0;while(1){j=c[B>>2]|0;if(j>>>0<(c[C>>2]|0)>>>0){c[B>>2]=j+1;j=d[j>>0]|0}else j=yx(e)|0;if(!(a[L+(j+1)>>0]|0)){q=k;k=z;r=0;j=0;break i}a[z+k>>0]=j;k=k+1|0}}while(0);if(!(c[C>>2]|0))n=c[B>>2]|0;else{n=(c[B>>2]|0)+-1|0;c[B>>2]=n}o=D;n=n-(c[E>>2]|0)|0;n=OO(c[o>>2]|0,c[o+4>>2]|0,n|0,((n|0)<0)<<31>>31|0)|0;o=F()|0;if((n|0)==0&(o|0)==0)break b;if(!((n|0)==(y|0)&(o|0)==(x|0)|w^1))break b;do if(t)if(s){c[z>>2]=r;break}else{c[z>>2]=k;break}while(0);if(!w){if(r|0)c[r+(q<<2)>>2]=0;if(!k){k=0;break f}a[k+q>>0]=0}break}case 120:case 88:case 112:{n=16;O=131;break}case 111:{n=8;O=131;break}case 117:case 100:{n=10;O=131;break}case 105:{n=0;O=131;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{p=+Dy(e,t,0);y=D;w=c[y>>2]|0;y=c[y+4>>2]|0;x=(c[B>>2]|0)-(c[E>>2]|0)|0;x=PO(0,0,x|0,((x|0)<0)<<31>>31|0)|0;if((w|0)==(x|0)&(y|0)==(F()|0))break b;if(z)switch(t|0){case 0:{f[z>>2]=p;break f}case 1:{g[z>>3]=p;break f}case 2:{g[z>>3]=p;break f}default:break f}break}default:{}}while(0);do if((O|0)==131){O=0;n=xx(e,n,0,-1,-1)|0;o=F()|0;y=D;w=c[y>>2]|0;y=c[y+4>>2]|0;x=(c[B>>2]|0)-(c[E>>2]|0)|0;x=PO(0,0,x|0,((x|0)<0)<<31>>31|0)|0;if((w|0)==(x|0)&(y|0)==(F()|0))break b;if((z|0)!=0&(s|0)==112){c[z>>2]=n;break}else{Hz(z,t,n,o);break}}while(0);o=D;n=(c[B>>2]|0)-(c[E>>2]|0)|0;o=OO(c[o>>2]|0,c[o+4>>2]|0,u|0,v|0)|0;n=OO(o|0,F()|0,n|0,((n|0)<0)<<31>>31|0)|0;h=h+((z|0)!=0&1)|0;o=F()|0;break c}while(0);m=m+(n&1)|0;wx(e,0,0);l=c[B>>2]|0;if(l>>>0<(c[C>>2]|0)>>>0){c[B>>2]=l+1;l=d[l>>0]|0}else l=yx(e)|0;if((l|0)!=(d[m>>0]|0)){O=23;break b}n=OO(u|0,v|0,1,0)|0;o=F()|0}else{while(1){l=m+1|0;if(!(zx(d[l>>0]|0)|0))break;else m=l}wx(e,0,0);do{l=c[B>>2]|0;if(l>>>0<(c[C>>2]|0)>>>0){c[B>>2]=l+1;l=d[l>>0]|0}else l=yx(e)|0}while((zx(l)|0)!=0);if(!(c[C>>2]|0))l=c[B>>2]|0;else{l=(c[B>>2]|0)+-1|0;c[B>>2]=l}o=D;n=l-(c[E>>2]|0)|0;o=OO(c[o>>2]|0,c[o+4>>2]|0,u|0,v|0)|0;n=OO(o|0,F()|0,n|0,((n|0)<0)<<31>>31|0)|0;o=F()|0}while(0);m=m+1|0;l=a[m>>0]|0;if(!(l<<24>>24))break a;else{u=n;v=o}}if((O|0)==23){if(c[C>>2]|0)c[B>>2]=(c[B>>2]|0)+-1;if((h|0)!=0|(l|0)>-1)break;else{l=0;h=k;O=144}}else if((O|0)==143)if(!h){h=k;O=144}if((O|0)==144){k=h;h=-1}if(l){GO(k);GO(j)}}else h=0;while(0);if(P|0)Qx(e);zb=Q;return h|0}function Gz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=c[a>>2];while(1){f=(c[d>>2]|0)+(4-1)&~(4-1);a=c[f>>2]|0;c[d>>2]=f+4;if(b>>>0>1)b=b+-1|0;else break}zb=e;return a|0}function Hz(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;a:do if(d|0)switch(e|0){case -2:{a[d>>0]=f;break a}case -1:{b[d>>1]=f;break a}case 0:{c[d>>2]=f;break a}case 1:{c[d>>2]=f;break a}case 3:{e=d;c[e>>2]=f;c[e+4>>2]=g;break a}default:break a}while(0);return}function Iz(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0&1;return a|0}function Jz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=Xx(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0>>0?f:d;_O(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function Kz(a,b,c){a=a|0;b=b|0;c=c|0;return Mz(a,b,((b|0)<0)<<31>>31,c)|0}function Lz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+16|0;f=e;c[f>>2]=d;d=Kx(a,b,f)|0;zb=e;return d|0}function Mz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((c[a+76>>2]|0)>-1){f=(Px(a)|0)==0;b=Nz(a,b,d,e)|0;if(!f)Qx(a)}else b=Nz(a,b,d,e)|0;return b|0}function Nz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if((e|0)==1){g=(c[a+8>>2]|0)-(c[a+4>>2]|0)|0;b=PO(b|0,d|0,g|0,((g|0)<0)<<31>>31|0)|0;d=F()|0}f=a+20|0;g=a+28|0;if((c[f>>2]|0)>>>0>(c[g>>2]|0)>>>0?(Jb[c[a+36>>2]&63](a,0,0)|0,(c[f>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[g>>2]=0;c[f>>2]=0;Kb[c[a+40>>2]&15](a,b,d,e)|0;if((F()|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function Oz(a,b){a=a|0;b=b|0;return Pz(a,b,(Qy(a)|0)+1|0)|0}function Pz(b,c,d){b=b|0;c=c|0;d=d|0;a:do if(!d)d=0;else{c=c&255;while(1){d=d+-1|0;if((a[b+d>>0]|0)==c<<24>>24)break;if(!d){d=0;break a}}d=b+d|0}while(0);return d|0}function Qz(a,b,c){a=a|0;b=b|0;c=c|0;return Xy(0,a,b,(c|0)==0?55652:c)|0}function Rz(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;n=zb;zb=zb+1040|0;k=n;l=n+1024|0;j=c[b>>2]|0;c[l>>2]=j;m=(a|0)!=0;h=m?e:256;i=m?a:k;g=j;a:do if((h|0)!=0&(j|0)!=0){e=0;j=i;while(1){a=d>>>2;i=a>>>0>=h>>>0;if(!(d>>>0>131|i)){i=j;break a}a=i?h:a;d=d-a|0;a=Sz(j,l,a,f)|0;if((a|0)==-1)break;i=(j|0)==(k|0);h=h-(i?0:a)|0;i=i?j:j+(a<<2)|0;e=a+e|0;g=c[l>>2]|0;if((h|0)!=0&(g|0)!=0)j=i;else break a}e=-1;i=j;h=0;g=c[l>>2]|0}else e=0;while(0);b:do if((g|0)!=0?(h|0)!=0&(d|0)!=0:0){while(1){a=Xy(i,g,d,f)|0;if((a+2|0)>>>0<3)break;g=(c[l>>2]|0)+a|0;c[l>>2]=g;d=d-a|0;h=h+-1|0;e=e+1|0;if(!((h|0)!=0&(d|0)!=0))break b;else i=i+4|0}switch(a|0){case -1:{e=a;break b}case 0:{c[l>>2]=0;break b}default:{c[f>>2]=0;break b}}}while(0);if(m)c[b>>2]=c[l>>2];zb=n;return e|0}function Sz(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;h=c[e>>2]|0;if((g|0)!=0?(i=c[g>>2]|0,(i|0)!=0):0)if(!b){j=h;g=f;l=26}else{c[g>>2]=0;k=f;j=h;l=48}else l=5;a:do if((l|0)==5){l=(Tz()|0)+188|0;g=(b|0)!=0;if(c[c[l>>2]>>2]|0)if(g){g=f;l=33;break}else{g=f;l=15;break}if(!g){f=Qy(h)|0;l=63;break}b:do if(f){g=f;while(1){i=a[h>>0]|0;if(!(i<<24>>24))break;h=h+1|0;c[b>>2]=i<<24>>24&57343;g=g+-1|0;if(!g)break b;else b=b+4|0}c[b>>2]=0;c[e>>2]=0;f=f-g|0;l=63;break a}while(0);c[e>>2]=h;l=63}while(0);c:while(1){d:do if((l|0)==15){while(1){i=a[h>>0]|0;if(((i&255)+-1|0)>>>0<127?(h&3|0)==0:0){l=c[h>>2]|0;i=l&255;if(!((l+-16843009|l)&-2139062144)){do{h=h+4|0;g=g+-4|0;i=c[h>>2]|0}while(!((i+-16843009|i)&-2139062144|0));i=i&255}}i=i&255;if((i+-1|0)>>>0>=127)break;g=g+-1|0;h=h+1|0}i=i+-194|0;if(i>>>0>50)l=57;else{i=c[5728+(i<<2)>>2]|0;j=h+1|0;l=26;continue c}}else if((l|0)==26){l=(d[j>>0]|0)>>>3;if((l+-16|l+(i>>26))>>>0>7){h=j;l=56}else{h=j+1|0;if(i&33554432){if((a[h>>0]&-64)<<24>>24!=-128){h=j;l=56;break}h=j+2|0;if(i&524288){if((a[h>>0]&-64)<<24>>24!=-128){h=j;l=56;break}h=j+3|0}}g=g+-1|0;l=15;continue c}}else if((l|0)==33){l=0;e:do if(g){while(1){i=d[h>>0]|0;j=i+-1|0;if(j>>>0<127){if((h&3|0)==0&g>>>0>4){while(1){i=c[h>>2]|0;if((i+-16843009|i)&-2139062144|0){l=42;break}c[b>>2]=i&255;c[b+4>>2]=d[h+1>>0];c[b+8>>2]=d[h+2>>0];j=h+4|0;i=b+16|0;c[b+12>>2]=d[h+3>>0];g=g+-4|0;if(g>>>0>4){b=i;h=j}else{l=41;break}}if((l|0)==41){b=i;h=j;i=a[j>>0]|0}else if((l|0)==42)i=i&255;i=i&255;j=i+-1|0;l=44}}else l=44;if((l|0)==44){l=0;if(j>>>0>=127)break}h=h+1|0;c[b>>2]=i;g=g+-1|0;if(!g)break e;else b=b+4|0}i=i+-194|0;if(i>>>0>50){l=57;break d}i=c[5728+(i<<2)>>2]|0;k=g;j=h+1|0;l=48;continue c}while(0);c[e>>2]=h;l=63;continue c}else if((l|0)==48){l=0;g=d[j>>0]|0;h=g>>>3;if((h+-16|h+(i>>26))>>>0>7){h=j;g=k;l=56}else{h=j+1|0;g=g+-128|i<<6;do if((g|0)<0){i=(d[h>>0]|0)+-128|0;if(i>>>0<=63){h=j+2|0;g=i|g<<6;if((g|0)>=0)break;i=(d[h>>0]|0)+-128|0;if(i>>>0<=63){h=j+3|0;g=i|g<<6;break}}h=ox()|0;c[h>>2]=25;h=j+-1|0;break d}while(0);c[b>>2]=g;b=b+4|0;g=k+-1|0;l=33;continue c}}else if((l|0)==63)return f|0;while(0);if((l|0)==56){h=h+-1|0;if(!i)l=57;else{f=b;l=61}}if((l|0)==57)if(!(a[h>>0]|0)){if(b|0){c[b>>2]=0;c[e>>2]=0}f=f-g|0;l=63;continue}else{f=b;l=61}if((l|0)==61){l=ox()|0;c[l>>2]=25;if(!f){f=-1;l=63;continue}}c[e>>2]=h;f=-1;l=63}return 0}function Tz(){return ay()|0}function Uz(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;l=zb;zb=zb+272|0;i=l;j=l+256|0;f=c[b>>2]|0;c[j>>2]=f;k=(a|0)!=0;g=k?e:256;h=k?a:i;e=f;a:do if((g|0)!=0&(f|0)!=0){f=0;a=e;while(1){e=d>>>0>=g>>>0;if(!(e|d>>>0>32)){e=a;break a}e=e?g:d;d=d-e|0;e=Vz(h,j,e,0)|0;if((e|0)==-1)break;a=(h|0)==(i|0);g=g-(a?0:e)|0;h=a?h:h+e|0;f=e+f|0;e=c[j>>2]|0;if((g|0)!=0&(e|0)!=0)a=e;else break a}f=-1;g=0;e=c[j>>2]|0}else f=0;while(0);b:do if((e|0)!=0?(g|0)!=0&(d|0)!=0:0){while(1){a=_x(h,c[e>>2]|0,0)|0;if((a+1|0)>>>0<2)break;e=(c[j>>2]|0)+4|0;c[j>>2]=e;d=d+-1|0;g=g-a|0;f=a+f|0;if(!((g|0)!=0&(d|0)!=0))break b;else h=h+a|0}if(!a)c[j>>2]=0;else f=-1}while(0);if(k)c[b>>2]=c[j>>2];zb=l;return f|0}function Vz(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;j=zb;zb=zb+16|0;i=j;a:do if(!b){e=c[d>>2]|0;f=c[e>>2]|0;if(!f)e=0;else{b=e;e=0;do{if(f>>>0>127){f=_x(i,f,0)|0;if((f|0)==-1){e=-1;break a}}else f=1;e=f+e|0;b=b+4|0;f=c[b>>2]|0}while((f|0)!=0)}}else{b:do if(e>>>0>3){f=e;g=c[d>>2]|0;while(1){h=c[g>>2]|0;if((h+-1|0)>>>0>126){if(!h)break;h=_x(b,h,0)|0;if((h|0)==-1){e=-1;break a}b=b+h|0;f=f-h|0}else{a[b>>0]=h;b=b+1|0;f=f+-1|0;g=c[d>>2]|0}g=g+4|0;c[d>>2]=g;if(f>>>0<=3)break b}a[b>>0]=0;c[d>>2]=0;e=e-f|0;break a}else f=e;while(0);if(f){g=c[d>>2]|0;while(1){h=c[g>>2]|0;if((h+-1|0)>>>0>126){if(!h){g=20;break}h=_x(i,h,0)|0;if((h|0)==-1){e=-1;break a}if(f>>>0>>0){g=23;break}_x(b,c[g>>2]|0,0)|0;b=b+h|0;f=f-h|0}else{a[b>>0]=h;b=b+1|0;f=f+-1|0;g=c[d>>2]|0}g=g+4|0;c[d>>2]=g;if(!f)break a}if((g|0)==20){a[b>>0]=0;c[d>>2]=0;e=e-f|0;break}else if((g|0)==23){e=e-f|0;break}}}while(0);zb=j;return e|0}function Wz(a,b,c){a=a|0;b=b|0;c=c|0;Xz(a,b,c)|0;return a|0}function Xz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;a:do if(!((g^b)&3)){f=(e|0)!=0;if(f&(g&3|0)!=0)do{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}while(f&(d&3|0)!=0);if(f){if(a[d>>0]|0){b:do if(e>>>0>3){f=d;while(1){d=c[f>>2]|0;if((d&-2139062144^-2139062144)&d+-16843009|0){d=f;break b}c[b>>2]=d;e=e+-4|0;d=f+4|0;b=b+4|0;if(e>>>0>3)f=d;else break}}while(0);h=13}}else e=0}else h=13;while(0);c:do if((h|0)==13)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);aP(b|0,0,e|0)|0;return b|0}function Yz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=zb;zb=zb+32|0;f=g;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[f+24>>2]=0;c[f+28>>2]=0;e=a[d>>0]|0;do if(!(e<<24>>24))d=0;else{if(!(a[d+1>>0]|0)){d=b;while(1)if((a[d>>0]|0)==e<<24>>24)d=d+1|0;else break;d=d-b|0;break}do{i=e&255;h=f+(i>>>5<<2)|0;c[h>>2]=c[h>>2]|1<<(i&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);e=a[b>>0]|0;a:do if(!(e<<24>>24))d=b;else{d=b;do{i=e&255;if(!(c[f+(i>>>5<<2)>>2]&1<<(i&31)))break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}while(0);d=d-b|0}while(0);zb=g;return d|0}function Zz(a){a=a|0;var b=0,e=0,f=0;if((c[a+76>>2]|0)>=0?(Px(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0}else b=Ax(a)|0}else f=3;do if((f|0)==3){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0;break}else{b=Ax(a)|0;break}}while(0);return b|0}function _z(a){a=a|0;var b=0;b=54792;c[b>>2]=a+-1;c[b+4>>2]=0;return}function $z(){var a=0,b=0,d=0;b=54792;b=NO(c[b>>2]|0,c[b+4>>2]|0,1284865837,1481765933)|0;b=OO(b|0,F()|0,1,0)|0;a=F()|0;d=54792;c[d>>2]=b;c[d+4>>2]=a;a=TO(b|0,a|0,33)|0;F()|0;return a|0}function aA(a,b){a=a|0;b=b|0;cz(a+(Qy(a)|0)|0,b)|0;return a|0}function bA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=zb;zb=zb+16|0;e=h;c[e>>2]=c[d>>2];e=Jx(0,0,b,e)|0;if((e|0)>=0?(f=e+1|0,g=FO(f)|0,c[a>>2]=g,(g|0)!=0):0)a=Jx(g,f,b,d)|0;else a=-1;zb=h;return a|0}function cA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;do if((b|0)!=-1){if((c[d+76>>2]|0)>-1)g=Px(d)|0;else g=0;h=d+4|0;e=c[h>>2]|0;if(!e){Bx(d)|0;e=c[h>>2]|0;if(e|0){f=e;i=6}}else{f=e;i=6}if((i|0)==6?f>>>0>((c[d+44>>2]|0)+-8|0)>>>0:0){i=f+-1|0;c[h>>2]=i;a[i>>0]=b;c[d>>2]=c[d>>2]&-17;if(!g)break;Qx(d);break}if(g){Qx(d);b=-1}else b=-1}else b=-1;while(0);return b|0}function dA(a){a=a|0;var b=0,d=0,e=0;if((c[a+76>>2]|0)>-1){e=(Px(a)|0)==0;d=eA(a)|0;b=F()|0;if(e)a=d;else{Qx(a);a=d}}else{a=eA(a)|0;b=F()|0}E(b|0);return a|0}function eA(a){a=a|0;var b=0,d=0,e=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=Kb[c[a+40>>2]&15](a,0,0,b)|0;d=F()|0;if((d|0)>=0){e=(c[a+8>>2]|0)-(c[a+4>>2]|0)|0;e=PO(b|0,d|0,e|0,((e|0)<0)<<31>>31|0)|0;d=F()|0;b=(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;b=OO(e|0,d|0,b|0,((b|0)<0)<<31>>31|0)|0;d=F()|0}E(d|0);return b|0}function fA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((c[d+76>>2]|0)>=0?(Px(d)|0)!=0:0){f=b&255;e=b&255;if((e|0)!=(a[d+75>>0]|0)?(i=d+20|0,j=c[i>>2]|0,j>>>0<(c[d+16>>2]|0)>>>0):0){c[i>>2]=j+1;a[j>>0]=f}else e=oz(d,b)|0;Qx(d)}else k=3;do if((k|0)==3){f=b&255;e=b&255;if((e|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=f;break}e=oz(d,b)|0}while(0);return e|0}function gA(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;k=B(e,d)|0;e=(d|0)==0?0:e;if((c[f+76>>2]|0)>-1)j=Px(f)|0;else j=0;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;i=(c[f+8>>2]|0)-h|0;if((i|0)>0){i=i>>>0>>0?i:k;_O(b|0,h|0,i|0)|0;c[g>>2]=(c[g>>2]|0)+i;g=k-i|0;b=b+i|0}else g=k;a:do if(!g)l=13;else{i=f+32|0;while(1){if(Bx(f)|0)break;h=Jb[c[i>>2]&63](f,b,g)|0;if((h+1|0)>>>0<2)break;g=g-h|0;if(!g){l=13;break a}else b=b+h|0}if(j|0)Qx(f);e=((k-g|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(j)Qx(f);return e|0}function hA(a){a=a|0;var b=0;a=dA(a)|0;b=F()|0;if((b|0)>0|(b|0)==0&a>>>0>2147483647){a=ox()|0;c[a>>2]=61;a=-1}return a|0}function iA(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Px(a)|0)==0;Nz(a,0,0,0)|0;c[a>>2]=c[a>>2]&-33;if(!b)Qx(a)}else{Nz(a,0,0,0)|0;c[a>>2]=c[a>>2]&-33}return}function jA(a,b){a=a|0;b=b|0;return +(+kA(a,b,1))}function kA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,h=0,i=0;g=zb;zb=zb+144|0;e=g;aP(e|0,0,144)|0;i=e+4|0;c[i>>2]=a;h=e+8|0;c[h>>2]=-1;c[e+44>>2]=a;c[e+76>>2]=-1;wx(e,0,0);f=+Dy(e,d,1);e=e+120|0;d=(c[i>>2]|0)-(c[h>>2]|0)|0;d=OO(c[e>>2]|0,c[e+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;e=F()|0;if(b|0)c[b>>2]=(d|0)==0&(e|0)==0?a:a+d|0;zb=g;return +f}function lA(b){b=b|0;var c=0,d=0,e=0,f=0,g=0;while(1){e=b+1|0;if(!(zx(a[b>>0]|0)|0))break;else b=e}d=a[b>>0]|0;switch(d|0){case 45:{b=1;f=5;break}case 43:{b=0;f=5;break}default:{g=0;c=b;b=d}}if((f|0)==5){g=b;c=e;b=a[e>>0]|0}if(!(Gx(b)|0))b=0;else{b=0;do{b=(b*10|0)+48-(a[c>>0]|0)|0;c=c+1|0}while((Gx(a[c>>0]|0)|0)!=0)}return ((g|0)==0?0-b|0:b)|0}function mA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=zb;zb=zb+32|0;f=h;e=a[d>>0]|0;a:do if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){aP(f|0,0,32)|0;e=a[d>>0]|0;if(e<<24>>24)do{j=e&255;i=f+(j>>>5<<2)|0;c[i>>2]=c[i>>2]|1<<(j&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);d=a[b>>0]|0;if(!(d<<24>>24))e=b;else{e=b;do{j=d&255;if(c[f+(j>>>5<<2)>>2]&1<<(j&31)|0)break a;e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0)}}else g=3;while(0);if((g|0)==3)e=Ty(b,e<<24>>24)|0;zb=h;return e-b|0}function nA(a,b){a=a|0;b=b|0;return +(+kA(a,b,0))}function oA(a,b){a=a|0;b=b|0;return +(+kA(a,b,2))}function pA(a,b,c){a=a|0;b=b|0;c=c|0;return +(+nA(a,b))}function qA(a,b,c){a=a|0;b=b|0;c=c|0;return +(+jA(a,b))}function rA(a,b,c){a=a|0;b=b|0;c=c|0;return +(+oA(a,b))}function sA(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=b+(Qy(b)|0)|0;a:do if(d)while(1){g=a[c>>0]|0;if(!(g<<24>>24))break a;d=d+-1|0;f=e+1|0;a[e>>0]=g;if(!d){e=f;break}else{c=c+1|0;e=f}}while(0);a[e>>0]=0;return b|0}function tA(b,d){b=b|0;d=d|0;var e=0;if(!b){b=c[13914]|0;if(!b)b=0;else e=3}else e=3;do if((e|0)==3){b=b+(Yz(b,d)|0)|0;if(!(a[b>>0]|0)){c[13914]=0;b=0;break}d=b+(mA(b,d)|0)|0;c[13914]=d;if(!(a[d>>0]|0)){c[13914]=0;break}else{c[13914]=d+1;a[d>>0]=0;break}}while(0);return b|0}function uA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=b;if(!d)break;else e=e+4|0}}return a|0}function vA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(a-b>>2>>>0>=d>>>0){if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{b=b+4|0;e=e+4|0}}}}else do{d=d+-1|0;c[a+(d<<2)>>2]=c[b+(d<<2)>>2]}while((d|0)!=0);return a|0}function wA(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0;e=zb;zb=zb+48|0;g=e+32|0;b=e+24|0;h=e+16|0;f=e;e=e+36|0;a=xA()|0;if(a|0?(d=c[a>>2]|0,d|0):0){a=d+48|0;if(!(yA(a)|0)){c[b>>2]=46910;AA(46860,b)}b=zA(a)|0;if((b|0)==1126902529&(F()|0)==1129074247)a=c[d+44>>2]|0;else a=d+80|0;c[e>>2]=a;d=c[d>>2]|0;a=c[d+4>>2]|0;if(Jb[c[(c[3470]|0)+16>>2]&63](13880,d,e)|0){h=c[e>>2]|0;h=Gb[c[(c[h>>2]|0)+8>>2]&127](h)|0;c[f>>2]=46910;c[f+4>>2]=a;c[f+8>>2]=h;AA(46774,f)}else{c[h>>2]=46910;c[h+4>>2]=a;AA(46819,h)}}AA(46898,g)}function xA(){return 55660}function yA(a){a=a|0;return 0}function zA(a){a=a|0;E(0);return 0}function AA(a,b){a=a|0;b=b|0;var d=0;d=zb;zb=zb+16|0;c[d>>2]=b;b=c[4001]|0;Kx(b,a,d)|0;fA(10,b)|0;ua()}function BA(a){a=a|0;return}function CA(a){a=a|0;BA(a);SA(a);return}function DA(a){a=a|0;return}function EA(a){a=a|0;return}function FA(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=zb;zb=zb+64|0;j=l;if(!(JA(d,e,0)|0))if((e|0)!=0?(k=NA(e,13904,13888,0)|0,(k|0)!=0):0){c[j>>2]=k;c[j+4>>2]=0;c[j+8>>2]=d;c[j+12>>2]=-1;d=j+16|0;e=j+24|0;g=j+48|0;h=d;i=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));b[d+36>>1]=0;a[d+38>>0]=0;c[g>>2]=1;Xb[c[(c[k>>2]|0)+28>>2]&31](k,j,c[f>>2]|0,1);if((c[e>>2]|0)==1){c[f>>2]=c[d>>2];d=1}else d=0}else d=0;else d=1;zb=l;return d|0}function GA(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(JA(a,c[b+8>>2]|0,g)|0)MA(0,b,d,e,f);return}function HA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;do if(!(JA(b,c[d+8>>2]|0,g)|0)){if(JA(b,c[d>>2]|0,g)|0){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}}else LA(0,d,e,f);while(0);return}function IA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(JA(a,c[b+8>>2]|0,0)|0)KA(0,b,d,e);return}function JA(a,b,d){a=a|0;b=b|0;d=d|0;if(d)a=(Fx(c[a+4>>2]|0,c[b+4>>2]|0)|0)==0;else a=(a|0)==(b|0);return a|0}function KA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){f=d+36|0;c[f>>2]=(c[f>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}b=d+24|0;if((c[b>>2]|0)==2)c[b>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function LA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((c[b+4>>2]|0)==(d|0)?(f=b+28|0,(c[f>>2]|0)!=1):0)c[f>>2]=e;return}function MA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;f=c[b>>2]|0;if(!f){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((f|0)!=(e|0)){g=d+36|0;c[g>>2]=(c[g>>2]|0)+1;a[d+54>>0]=1;break}f=d+24|0;b=c[f>>2]|0;if((b|0)==2){c[f>>2]=g;b=g}if((b|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function NA(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=zb;zb=zb+64|0;n=p;m=c[d>>2]|0;o=d+(c[m+-8>>2]|0)|0;m=c[m+-4>>2]|0;c[n>>2]=f;c[n+4>>2]=d;c[n+8>>2]=e;c[n+12>>2]=g;d=n+16|0;e=n+20|0;g=n+24|0;h=n+28|0;i=n+32|0;j=n+40|0;k=d;l=k+36|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(l|0));b[d+36>>1]=0;a[d+38>>0]=0;a:do if(JA(m,f,0)|0){c[n+48>>2]=1;Zb[c[(c[m>>2]|0)+20>>2]&7](m,n,o,o,1,0);d=(c[g>>2]|0)==1?o:0}else{Yb[c[(c[m>>2]|0)+24>>2]&63](m,n,o,1,0);switch(c[n+36>>2]|0){case 0:{d=(c[j>>2]|0)==1&(c[h>>2]|0)==1&(c[i>>2]|0)==1?c[e>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((c[g>>2]|0)!=1?!((c[j>>2]|0)==0&(c[h>>2]|0)==1&(c[i>>2]|0)==1):0){d=0;break}d=c[d>>2]|0}while(0);zb=p;return d|0}function OA(a){a=a|0;BA(a);SA(a);return}function PA(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(JA(a,c[b+8>>2]|0,g)|0)MA(0,b,d,e,f);else{a=c[a+8>>2]|0;Zb[c[(c[a>>2]|0)+20>>2]&7](a,b,d,e,f,g)}return}function QA(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;a:do if(!(JA(b,c[d+8>>2]|0,g)|0)){if(!(JA(b,c[d>>2]|0,g)|0)){i=c[b+8>>2]|0;Yb[c[(c[i>>2]|0)+24>>2]&63](i,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;f=d+44|0;do if((c[f>>2]|0)!=4){h=d+52|0;a[h>>0]=0;j=d+53|0;a[j>>0]=0;b=c[b+8>>2]|0;Zb[c[(c[b>>2]|0)+20>>2]&7](b,d,e,e,1,g);if(a[j>>0]|0){j=(a[h>>0]|0)==0;c[f>>2]=3;if(j)break;else break a}else{c[f>>2]=4;break}}while(0);c[i>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)!=1)break;if((c[d+24>>2]|0)!=2)break;a[d+54>>0]=1;break}if((f|0)==1)c[d+32>>2]=1}else LA(0,d,e,f);while(0);return}function RA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(JA(a,c[b+8>>2]|0,0)|0)KA(0,b,d,e);else{a=c[a+8>>2]|0;Xb[c[(c[a>>2]|0)+28>>2]&31](a,b,d,e)}return}function SA(a){a=a|0;GO(a);return}function TA(a){a=a|0;return}function UA(){var a=0,b=0;a=xA()|0;if((a|0?(b=c[a>>2]|0,b|0):0)?yA(b+48|0)|0:0)VA(c[b+12>>2]|0);VA(WA()|0)}function VA(a){a=a|0;var b=0;b=zb;zb=zb+16|0;Rb[a&1]();AA(47049,b)}function WA(){return 1}function XA(a){a=a|0;return}function YA(a){a=a|0;c[a>>2]=16372;aB(a+4|0);return}function ZA(a){a=a|0;YA(a);SA(a);return}function _A(a){a=a|0;return $A(a+4|0)|0}function $A(a){a=a|0;return c[a>>2]|0}function aB(a){a=a|0;var b=0,d=0;if(bB(a)|0?(b=cB(c[a>>2]|0)|0,d=b+8|0,a=c[d>>2]|0,c[d>>2]=a+-1,(a|0)<1):0)SA(b);return}function bB(a){a=a|0;return 1}function cB(a){a=a|0;return a+-12|0}function dB(a){a=a|0;YA(a);SA(a);return}function eB(a){a=a|0;BA(a);SA(a);return}function fB(a,b,c){a=a|0;b=b|0;c=c|0;return JA(a,b,0)|0}function gB(a){a=a|0;BA(a);SA(a);return}function hB(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(JA(b,c[d+8>>2]|0,h)|0)MA(0,d,e,f,g);else{r=d+52|0;j=a[r>>0]|0;q=d+53|0;i=a[q>>0]|0;p=c[b+12>>2]|0;m=b+16+(p<<3)|0;a[r>>0]=0;a[q>>0]=0;lB(b+16|0,d,e,f,g,h);k=a[r>>0]|0;j=k|j;l=a[q>>0]|0;i=l|i;a:do if((p|0)>1){n=d+24|0;o=b+8|0;p=d+54|0;b=b+24|0;do{i=i&1;j=j&1;if(a[p>>0]|0)break a;if(!(k<<24>>24)){if(l<<24>>24?(c[o>>2]&1|0)==0:0)break a}else{if((c[n>>2]|0)==1)break a;if(!(c[o>>2]&2))break a}a[r>>0]=0;a[q>>0]=0;lB(b,d,e,f,g,h);k=a[r>>0]|0;j=k|j;l=a[q>>0]|0;i=l|i;b=b+8|0}while(b>>>0>>0)}while(0);a[r>>0]=j<<24>>24!=0&1;a[q>>0]=i<<24>>24!=0&1}return}function iB(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if(!(JA(b,c[d+8>>2]|0,g)|0)){if(!(JA(b,c[d>>2]|0,g)|0)){p=c[b+12>>2]|0;k=b+16+(p<<3)|0;mB(b+16|0,d,e,f,g);h=b+24|0;if((p|0)<=1)break;b=c[b+8>>2]|0;if((b&2|0)==0?(j=d+36|0,(c[j>>2]|0)!=1):0){if(!(b&1)){b=d+54|0;while(1){if(a[b>>0]|0)break a;if((c[j>>2]|0)==1)break a;mB(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}b=d+24|0;i=d+54|0;while(1){if(a[i>>0]|0)break a;if((c[j>>2]|0)==1?(c[b>>2]|0)==1:0)break a;mB(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}b=d+54|0;while(1){if(a[b>>0]|0)break a;mB(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}if((c[d+16>>2]|0)!=(e|0)?(p=d+20|0,(c[p>>2]|0)!=(e|0)):0){c[d+32>>2]=f;o=d+44|0;if((c[o>>2]|0)!=4){j=b+16+(c[b+12>>2]<<3)|0;k=d+52|0;f=d+53|0;l=d+54|0;m=b+8|0;n=d+24|0;h=0;i=b+16|0;b=0;b:while(1){if(i>>>0>=j>>>0){i=18;break}a[k>>0]=0;a[f>>0]=0;lB(i,d,e,e,1,g);if(a[l>>0]|0){i=18;break}do if(a[f>>0]|0){if(!(a[k>>0]|0))if(!(c[m>>2]&1)){i=19;break b}else{b=1;break}if((c[n>>2]|0)==1){h=1;i=19;break b}if(!(c[m>>2]&2)){h=1;i=19;break b}else{h=1;b=1}}while(0);i=i+8|0}if((i|0)==18)if(b)i=19;else b=4;if((i|0)==19)b=3;c[o>>2]=b;if(h&1)break}c[p>>2]=e;e=d+40|0;c[e>>2]=(c[e>>2]|0)+1;if((c[d+36>>2]|0)!=1)break;if((c[d+24>>2]|0)!=2)break;a[d+54>>0]=1;break}if((f|0)==1)c[d+32>>2]=1}else LA(0,d,e,f);while(0);return}function jB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if(!(JA(b,c[d+8>>2]|0,0)|0)){h=c[b+12>>2]|0;g=b+16+(h<<3)|0;kB(b+16|0,d,e,f);if((h|0)>1){h=d+54|0;b=b+24|0;do{kB(b,d,e,f);if(a[h>>0]|0)break a;b=b+8|0}while(b>>>0>>0)}}else KA(0,d,e,f);while(0);return}function kB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+4>>2]|0;if(d){f=g>>8;if(g&1)f=c[(c[d>>2]|0)+f>>2]|0}else f=0;a=c[a>>2]|0;Xb[c[(c[a>>2]|0)+28>>2]&31](a,b,d+f|0,(g&2|0)==0?2:e);return}function lB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=c[a+4>>2]|0;h=i>>8;if(i&1)h=c[(c[e>>2]|0)+h>>2]|0;a=c[a>>2]|0;Zb[c[(c[a>>2]|0)+20>>2]&7](a,b,d,e+h|0,(i&2|0)==0?2:f,g);return} function $b(a){a=a|0;var b=0;b=zb;zb=zb+a|0;zb=zb+15&-16;return b|0}function ac(){return zb|0}function bc(a){a=a|0;zb=a}function cc(a,b){a=a|0;b=b|0;zb=a;Ab=b}function dc(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=zb;zb=zb+16|0;v=y;x=(e|0)/2|0;w=(f|0)/2|0;m=c[i>>2]|0;u=w+-1|0;f=m;j=m+((B(u,x)|0)<<1)|0;k=0;while(1){if((k|0)>=(x|0))break;b[j>>1]=0;b[f>>1]=0;f=f+2|0;j=j+2|0;k=k+1|0}t=x+-1|0;f=m;j=m+(t<<1)|0;k=0;while(1){if((k|0)>=(w|0))break;b[j>>1]=0;b[f>>1]=0;f=f+(x<<1)|0;j=j+(x<<1)|0;k=k+1|0}l=i+1179664|0;s=0-x|0;j=a+((e<<1)+2)|0;r=1;o=0;k=m+(x+1<<1)|0;a:while(1){if((r|0)>=(u|0)){j=59;break}q=j;f=o;p=1;while(1){if((p|0)>=(t|0))break;do if((d[q>>0]|0|0)>(h|0))b[k>>1]=0;else{a=k+(s<<1)|0;j=b[a>>1]|0;if(j<<16>>16>0){b[k>>1]=j;o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+r;c[i+1310736+(o+-1<<2)>>2]=r;break}n=b[a+2>>1]|0;o=n<<16>>16;j=b[a+-2>>1]|0;m=j<<16>>16;a=j<<16>>16>0;if(n<<16>>16<=0){if(a){b[k>>1]=j;j=m*7|0;a=i+1310736+(j+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(j+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+p;a=i+1310736+(j+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+r;a=i+1310736+(j+-3<<2)|0;if((c[a>>2]|0)<(p|0))c[a>>2]=p;c[i+1310736+(j+-1<<2)>>2]=r;break}j=b[k+-2>>1]|0;if(j<<16>>16>0){b[k>>1]=j;j=(j<<16>>16)*7|0;o=i+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+p;o=i+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=i+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(p|0))break;c[j>>2]=p;break}else{j=f+1|0;if((f|0)>32767){j=54;break a}b[k>>1]=j;c[i+1179664+(f<<2)>>2]=j<<16>>16;f=f*7|0;c[i+1310736+(f<<2)>>2]=1;c[i+1310736+(f+1<<2)>>2]=p;c[i+1310736+(f+2<<2)>>2]=r;c[i+1310736+(f+3<<2)>>2]=p;c[i+1310736+(f+4<<2)>>2]=p;c[i+1310736+(f+5<<2)>>2]=r;c[i+1310736+(f+6<<2)>>2]=r;f=j;break}}if(a){j=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+(m+-1<<2)>>2]|0;b:do if((j|0)<=(n|0)){b[k>>1]=j;if((j|0)<(n|0)){a=l;m=0;while(1){if((m|0)>=(f|0))break b;if((c[a>>2]|0)==(n|0))c[a>>2]=j;a=a+4|0;m=m+1|0}}}else{b[k>>1]=n;a=l;m=0;while(1){if((m|0)>=(f|0)){j=n;break b}if((c[a>>2]|0)==(j|0))c[a>>2]=n;a=a+4|0;m=m+1|0}}while(0);o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+r;c[i+1310736+(o+-1<<2)>>2]=r;break}a=b[k+-2>>1]|0;if(a<<16>>16<=0){b[k>>1]=n;j=o*7|0;a=i+1310736+(j+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(j+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+p;a=i+1310736+(j+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+r;a=i+1310736+(j+-4<<2)|0;if((c[a>>2]|0)>(p|0))c[a>>2]=p;c[i+1310736+(j+-1<<2)>>2]=r;break}j=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+((a<<16>>16)+-1<<2)>>2]|0;c:do if((j|0)<=(n|0)){b[k>>1]=j;if((j|0)<(n|0)){a=l;m=0;while(1){if((m|0)>=(f|0))break c;if((c[a>>2]|0)==(n|0))c[a>>2]=j;a=a+4|0;m=m+1|0}}}else{b[k>>1]=n;a=l;m=0;while(1){if((m|0)>=(f|0)){j=n;break c}if((c[a>>2]|0)==(j|0))c[a>>2]=n;a=a+4|0;m=m+1|0}}while(0);o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;o=i+1310736+(o+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+r}while(0);q=q+2|0;p=p+1|0;k=k+2|0}j=q+e+4|0;r=r+1|0;o=f;k=k+4|0}d:do if((j|0)==54){Ue(0,3,19708,v);f=-1}else if((j|0)==59){m=i+12|0;f=1;a=1;while(1){if((a|0)>(o|0))break;j=c[l>>2]|0;if((j|0)==(a|0))k=f+1|0;else{k=f;f=c[i+1179664+(j+-1<<2)>>2]|0}c[l>>2]=f;f=k;a=a+1|0;l=l+4|0}n=i+8|0;j=f+-1|0;c[n>>2]=j;if(!j)f=0;else{aP(m|0,0,j<<2|0)|0;aP(i+655376|0,0,j<<4|0)|0;f=0;while(1){if((f|0)>=(j|0))break;v=f<<2;c[i+131084+(v<<2)>>2]=x;c[i+131084+((v|1)<<2)>>2]=0;c[i+131084+((v|2)<<2)>>2]=w;c[i+131084+((v|3)<<2)>>2]=0;f=f+1|0}a=0;while(1){if((a|0)>=(o|0))break;k=(c[i+1179664+(a<<2)>>2]|0)+-1|0;l=a*7|0;f=i+12+(k<<2)|0;c[f>>2]=(c[f>>2]|0)+(c[i+1310736+(l<<2)>>2]|0);f=k<<1;j=i+655376+(f<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(l+1<<2)>>2]|0);f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]+ +(c[i+1310736+(l+2<<2)>>2]|0);k=k<<2;f=i+131084+(k<<2)|0;j=c[i+1310736+(l+3<<2)>>2]|0;if((c[f>>2]|0)>(j|0))c[f>>2]=j;f=i+131084+((k|1)<<2)|0;j=c[i+1310736+(l+4<<2)>>2]|0;if((c[f>>2]|0)<(j|0))c[f>>2]=j;f=i+131084+((k|2)<<2)|0;j=c[i+1310736+(l+5<<2)>>2]|0;if((c[f>>2]|0)>(j|0))c[f>>2]=j;j=i+131084+((k|3)<<2)|0;f=c[i+1310736+(l+6<<2)>>2]|0;if((c[j>>2]|0)<(f|0))c[j>>2]=f;a=a+1|0}j=c[n>>2]|0;f=0;while(1){if((f|0)>=(j|0)){f=0;break d}z=+(c[i+12+(f<<2)>>2]|0);x=f<<1;w=i+655376+(x<<3)|0;g[w>>3]=+g[w>>3]/z;x=i+655376+((x|1)<<3)|0;g[x>>3]=+g[x>>3]/z;f=f+1|0}}}while(0);zb=y;return f|0}function ec(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=zb;zb=zb+16|0;w=x;n=c[i>>2]|0;v=f+-1|0;j=n;k=n+((B(v,e)|0)<<1)|0;l=0;while(1){if((l|0)>=(e|0))break;b[k>>1]=0;b[j>>1]=0;j=j+2|0;k=k+2|0;l=l+1|0}u=e+-1|0;j=n;k=n+(u<<1)|0;l=0;while(1){if((l|0)>=(f|0))break;b[k>>1]=0;b[j>>1]=0;j=j+(e<<1)|0;k=k+(e<<1)|0;l=l+1|0}m=i+1179664|0;l=e+1|0;t=0-e|0;k=a+l|0;s=1;p=0;l=n+(l<<1)|0;a:while(1){if((s|0)>=(v|0)){k=59;break}r=k;j=p;q=1;while(1){if((q|0)>=(u|0))break;do if((d[r>>0]|0|0)>(h|0))b[l>>1]=0;else{a=l+(t<<1)|0;k=b[a>>1]|0;if(k<<16>>16>0){b[l>>1]=k;p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=i+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;c[i+1310736+(p+-1<<2)>>2]=s;break}o=b[a+2>>1]|0;p=o<<16>>16;k=b[a+-2>>1]|0;n=k<<16>>16;a=k<<16>>16>0;if(o<<16>>16<=0){if(a){b[l>>1]=k;k=n*7|0;a=i+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+q;a=i+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=i+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(q|0))c[a>>2]=q;c[i+1310736+(k+-1<<2)>>2]=s;break}k=b[l+-2>>1]|0;if(k<<16>>16>0){b[l>>1]=k;k=(k<<16>>16)*7|0;p=i+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=i+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=i+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=i+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0))break;c[k>>2]=q;break}else{k=j+1|0;if((j|0)>32767){k=54;break a}b[l>>1]=k;c[i+1179664+(j<<2)>>2]=k<<16>>16;j=j*7|0;c[i+1310736+(j<<2)>>2]=1;c[i+1310736+(j+1<<2)>>2]=q;c[i+1310736+(j+2<<2)>>2]=s;c[i+1310736+(j+3<<2)>>2]=q;c[i+1310736+(j+4<<2)>>2]=q;c[i+1310736+(j+5<<2)>>2]=s;c[i+1310736+(j+6<<2)>>2]=s;j=k;break}}if(a){k=c[i+1179664+(p+-1<<2)>>2]|0;o=c[i+1179664+(n+-1<<2)>>2]|0;b:do if((k|0)<=(o|0)){b[l>>1]=k;if((k|0)<(o|0)){a=m;n=0;while(1){if((n|0)>=(j|0))break b;if((c[a>>2]|0)==(o|0))c[a>>2]=k;a=a+4|0;n=n+1|0}}}else{b[l>>1]=o;a=m;n=0;while(1){if((n|0)>=(j|0)){k=o;break b}if((c[a>>2]|0)==(k|0))c[a>>2]=o;a=a+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=i+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;c[i+1310736+(p+-1<<2)>>2]=s;break}k=b[l+-2>>1]|0;if(k<<16>>16<=0){b[l>>1]=o;k=p*7|0;a=i+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+q;a=i+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=i+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(q|0))c[a>>2]=q;c[i+1310736+(k+-1<<2)>>2]=s;break}o=c[i+1179664+(p+-1<<2)>>2]|0;k=c[i+1179664+((k<<16>>16)+-1<<2)>>2]|0;c:do if((o|0)<=(k|0)){b[l>>1]=o;if((o|0)<(k|0)){a=m;n=0;while(1){if((n|0)>=(j|0)){k=o;break c}if((c[a>>2]|0)==(k|0))c[a>>2]=o;a=a+4|0;n=n+1|0}}else k=o}else{b[l>>1]=k;a=m;n=0;while(1){if((n|0)>=(j|0))break c;if((c[a>>2]|0)==(o|0))c[a>>2]=k;a=a+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;p=i+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+s}while(0);r=r+1|0;q=q+1|0;l=l+2|0}k=r+2|0;s=s+1|0;p=j;l=l+4|0}d:do if((k|0)==54){Ue(0,3,19708,w);j=-1}else if((k|0)==59){n=i+12|0;j=1;a=1;while(1){if((a|0)>(p|0))break;k=c[m>>2]|0;if((k|0)==(a|0))l=j+1|0;else{l=j;j=c[i+1179664+(k+-1<<2)>>2]|0}c[m>>2]=j;j=l;a=a+1|0;m=m+4|0}o=i+8|0;k=j+-1|0;c[o>>2]=k;if(!k)j=0;else{aP(n|0,0,k<<2|0)|0;aP(i+655376|0,0,k<<4|0)|0;j=0;while(1){if((j|0)>=(k|0))break;w=j<<2;c[i+131084+(w<<2)>>2]=e;c[i+131084+((w|1)<<2)>>2]=0;c[i+131084+((w|2)<<2)>>2]=f;c[i+131084+((w|3)<<2)>>2]=0;j=j+1|0}a=0;while(1){if((a|0)>=(p|0))break;l=(c[i+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;j=i+12+(l<<2)|0;c[j>>2]=(c[j>>2]|0)+(c[i+1310736+(m<<2)>>2]|0);j=l<<1;k=i+655376+(j<<3)|0;g[k>>3]=+g[k>>3]+ +(c[i+1310736+(m+1<<2)>>2]|0);j=i+655376+((j|1)<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(m+2<<2)>>2]|0);l=l<<2;j=i+131084+(l<<2)|0;k=c[i+1310736+(m+3<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;j=i+131084+((l|1)<<2)|0;k=c[i+1310736+(m+4<<2)>>2]|0;if((c[j>>2]|0)<(k|0))c[j>>2]=k;j=i+131084+((l|2)<<2)|0;k=c[i+1310736+(m+5<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;k=i+131084+((l|3)<<2)|0;j=c[i+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(j|0))c[k>>2]=j;a=a+1|0}k=c[o>>2]|0;j=0;while(1){if((j|0)>=(k|0)){j=0;break d}y=+(c[i+12+(j<<2)>>2]|0);f=j<<1;e=i+655376+(f<<3)|0;g[e>>3]=+g[e>>3]/y;f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]/y;j=j+1|0}}}while(0);zb=x;return j|0}function fc(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=zb;zb=zb+16|0;w=x;n=c[i>>2]|0;v=f+-1|0;j=n;k=0;l=n+((B(v,e)|0)<<1)|0;while(1){if((k|0)>=(e|0))break;b[l>>1]=0;b[j>>1]=0;j=j+2|0;k=k+1|0;l=l+2|0}u=e+-1|0;j=n;k=0;l=n+(u<<1)|0;while(1){if((k|0)>=(f|0))break;b[l>>1]=0;b[j>>1]=0;j=j+(e<<1)|0;k=k+1|0;l=l+(e<<1)|0}m=i+1179664|0;l=e+1|0;t=0-e|0;a=a+l|0;k=h+l|0;s=1;o=0;l=n+(l<<1)|0;a:while(1){if((s|0)>=(v|0)){k=59;break}q=k;j=o;p=1;r=l;while(1){if((p|0)>=(u|0))break;do if((d[a>>0]|0)>(d[q>>0]|0))b[r>>1]=0;else{l=r+(t<<1)|0;k=b[l>>1]|0;if(k<<16>>16>0){b[r>>1]=k;o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+s;c[i+1310736+(o+-1<<2)>>2]=s;break}n=b[l+2>>1]|0;o=n<<16>>16;k=b[l+-2>>1]|0;h=k<<16>>16;l=k<<16>>16>0;if(n<<16>>16<=0){if(l){b[r>>1]=k;k=h*7|0;l=i+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=i+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+p;l=i+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=i+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(p|0))c[l>>2]=p;c[i+1310736+(k+-1<<2)>>2]=s;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;o=i+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+p;o=i+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;k=i+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0))break;c[k>>2]=p;break}else{k=j+1|0;if((j|0)>32767){k=54;break a}b[r>>1]=k;c[i+1179664+(j<<2)>>2]=k<<16>>16;j=j*7|0;c[i+1310736+(j<<2)>>2]=1;c[i+1310736+(j+1<<2)>>2]=p;c[i+1310736+(j+2<<2)>>2]=s;c[i+1310736+(j+3<<2)>>2]=p;c[i+1310736+(j+4<<2)>>2]=p;c[i+1310736+(j+5<<2)>>2]=s;c[i+1310736+(j+6<<2)>>2]=s;j=k;break}}if(l){k=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+(h+-1<<2)>>2]|0;b:do if((k|0)<=(n|0)){b[r>>1]=k;if((k|0)<(n|0)){l=m;h=0;while(1){if((h|0)>=(j|0))break b;if((c[l>>2]|0)==(n|0))c[l>>2]=k;l=l+4|0;h=h+1|0}}}else{b[r>>1]=n;l=m;h=0;while(1){if((h|0)>=(j|0)){k=n;break b}if((c[l>>2]|0)==(k|0))c[l>>2]=n;l=l+4|0;h=h+1|0}}while(0);o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+s;c[i+1310736+(o+-1<<2)>>2]=s;break}l=b[r+-2>>1]|0;if(l<<16>>16<=0){b[r>>1]=n;k=o*7|0;l=i+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=i+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+p;l=i+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=i+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(p|0))c[l>>2]=p;c[i+1310736+(k+-1<<2)>>2]=s;break}k=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+((l<<16>>16)+-1<<2)>>2]|0;c:do if((k|0)<=(n|0)){b[r>>1]=k;if((k|0)<(n|0)){l=m;h=0;while(1){if((h|0)>=(j|0))break c;if((c[l>>2]|0)==(n|0))c[l>>2]=k;l=l+4|0;h=h+1|0}}}else{b[r>>1]=n;l=m;h=0;while(1){if((h|0)>=(j|0)){k=n;break c}if((c[l>>2]|0)==(k|0))c[l>>2]=n;l=l+4|0;h=h+1|0}}while(0);o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;o=i+1310736+(o+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s}while(0);a=a+1|0;q=q+1|0;p=p+1|0;r=r+2|0}a=a+2|0;k=q+2|0;s=s+1|0;o=j;l=r+4|0}d:do if((k|0)==54){Ue(0,3,19708,w);j=-1}else if((k|0)==59){h=i+12|0;j=1;a=1;while(1){if((a|0)>(o|0))break;k=c[m>>2]|0;if((k|0)==(a|0))l=j+1|0;else{l=j;j=c[i+1179664+(k+-1<<2)>>2]|0}c[m>>2]=j;j=l;a=a+1|0;m=m+4|0}n=i+8|0;k=j+-1|0;c[n>>2]=k;if(!k)j=0;else{aP(h|0,0,k<<2|0)|0;aP(i+655376|0,0,k<<4|0)|0;j=0;while(1){if((j|0)>=(k|0))break;w=j<<2;c[i+131084+(w<<2)>>2]=e;c[i+131084+((w|1)<<2)>>2]=0;c[i+131084+((w|2)<<2)>>2]=f;c[i+131084+((w|3)<<2)>>2]=0;j=j+1|0}a=0;while(1){if((a|0)>=(o|0))break;l=(c[i+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;j=i+12+(l<<2)|0;c[j>>2]=(c[j>>2]|0)+(c[i+1310736+(m<<2)>>2]|0);j=l<<1;k=i+655376+(j<<3)|0;g[k>>3]=+g[k>>3]+ +(c[i+1310736+(m+1<<2)>>2]|0);j=i+655376+((j|1)<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(m+2<<2)>>2]|0);l=l<<2;j=i+131084+(l<<2)|0;k=c[i+1310736+(m+3<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;j=i+131084+((l|1)<<2)|0;k=c[i+1310736+(m+4<<2)>>2]|0;if((c[j>>2]|0)<(k|0))c[j>>2]=k;j=i+131084+((l|2)<<2)|0;k=c[i+1310736+(m+5<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;k=i+131084+((l|3)<<2)|0;j=c[i+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(j|0))c[k>>2]=j;a=a+1|0}k=c[n>>2]|0;j=0;while(1){if((j|0)>=(k|0)){j=0;break d}y=+(c[i+12+(j<<2)>>2]|0);f=j<<1;e=i+655376+(f<<3)|0;g[e>>3]=+g[e>>3]/y;f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]/y;j=j+1|0}}}while(0);zb=x;return j|0}function gc(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=zb;zb=zb+16|0;v=y;x=(e|0)/2|0;w=(f|0)/2|0;m=c[i>>2]|0;u=w+-1|0;f=m;j=m+((B(u,x)|0)<<1)|0;k=0;while(1){if((k|0)>=(x|0))break;b[j>>1]=0;b[f>>1]=0;f=f+2|0;j=j+2|0;k=k+1|0}t=x+-1|0;f=m;j=m+(t<<1)|0;k=0;while(1){if((k|0)>=(w|0))break;b[j>>1]=0;b[f>>1]=0;f=f+(x<<1)|0;j=j+(x<<1)|0;k=k+1|0}l=i+1179664|0;s=0-x|0;j=a+((e<<1)+2)|0;r=1;o=0;k=m+(x+1<<1)|0;a:while(1){if((r|0)>=(u|0)){j=59;break}q=j;f=o;p=1;while(1){if((p|0)>=(t|0))break;do if((d[q>>0]|0|0)>(h|0)){a=k+(s<<1)|0;j=b[a>>1]|0;if(j<<16>>16>0){b[k>>1]=j;o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+r;c[i+1310736+(o+-1<<2)>>2]=r;break}n=b[a+2>>1]|0;o=n<<16>>16;j=b[a+-2>>1]|0;m=j<<16>>16;a=j<<16>>16>0;if(n<<16>>16<=0){if(a){b[k>>1]=j;j=m*7|0;a=i+1310736+(j+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(j+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+p;a=i+1310736+(j+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+r;a=i+1310736+(j+-3<<2)|0;if((c[a>>2]|0)<(p|0))c[a>>2]=p;c[i+1310736+(j+-1<<2)>>2]=r;break}j=b[k+-2>>1]|0;if(j<<16>>16>0){b[k>>1]=j;j=(j<<16>>16)*7|0;o=i+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+p;o=i+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=i+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(p|0))break;c[j>>2]=p;break}else{j=f+1|0;if((f|0)>32767){j=54;break a}b[k>>1]=j;c[i+1179664+(f<<2)>>2]=j<<16>>16;f=f*7|0;c[i+1310736+(f<<2)>>2]=1;c[i+1310736+(f+1<<2)>>2]=p;c[i+1310736+(f+2<<2)>>2]=r;c[i+1310736+(f+3<<2)>>2]=p;c[i+1310736+(f+4<<2)>>2]=p;c[i+1310736+(f+5<<2)>>2]=r;c[i+1310736+(f+6<<2)>>2]=r;f=j;break}}if(a){j=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+(m+-1<<2)>>2]|0;b:do if((j|0)<=(n|0)){b[k>>1]=j;if((j|0)<(n|0)){a=l;m=0;while(1){if((m|0)>=(f|0))break b;if((c[a>>2]|0)==(n|0))c[a>>2]=j;a=a+4|0;m=m+1|0}}}else{b[k>>1]=n;a=l;m=0;while(1){if((m|0)>=(f|0)){j=n;break b}if((c[a>>2]|0)==(j|0))c[a>>2]=n;a=a+4|0;m=m+1|0}}while(0);o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+r;c[i+1310736+(o+-1<<2)>>2]=r;break}a=b[k+-2>>1]|0;if(a<<16>>16<=0){b[k>>1]=n;j=o*7|0;a=i+1310736+(j+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(j+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+p;a=i+1310736+(j+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+r;a=i+1310736+(j+-4<<2)|0;if((c[a>>2]|0)>(p|0))c[a>>2]=p;c[i+1310736+(j+-1<<2)>>2]=r;break}j=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+((a<<16>>16)+-1<<2)>>2]|0;c:do if((j|0)<=(n|0)){b[k>>1]=j;if((j|0)<(n|0)){a=l;m=0;while(1){if((m|0)>=(f|0))break c;if((c[a>>2]|0)==(n|0))c[a>>2]=j;a=a+4|0;m=m+1|0}}}else{b[k>>1]=n;a=l;m=0;while(1){if((m|0)>=(f|0)){j=n;break c}if((c[a>>2]|0)==(j|0))c[a>>2]=n;a=a+4|0;m=m+1|0}}while(0);o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;o=i+1310736+(o+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+r}else b[k>>1]=0;while(0);q=q+2|0;p=p+1|0;k=k+2|0}j=q+e+4|0;r=r+1|0;o=f;k=k+4|0}d:do if((j|0)==54){Ue(0,3,19708,v);f=-1}else if((j|0)==59){m=i+12|0;f=1;a=1;while(1){if((a|0)>(o|0))break;j=c[l>>2]|0;if((j|0)==(a|0))k=f+1|0;else{k=f;f=c[i+1179664+(j+-1<<2)>>2]|0}c[l>>2]=f;f=k;a=a+1|0;l=l+4|0}n=i+8|0;j=f+-1|0;c[n>>2]=j;if(!j)f=0;else{aP(m|0,0,j<<2|0)|0;aP(i+655376|0,0,j<<4|0)|0;f=0;while(1){if((f|0)>=(j|0))break;v=f<<2;c[i+131084+(v<<2)>>2]=x;c[i+131084+((v|1)<<2)>>2]=0;c[i+131084+((v|2)<<2)>>2]=w;c[i+131084+((v|3)<<2)>>2]=0;f=f+1|0}a=0;while(1){if((a|0)>=(o|0))break;k=(c[i+1179664+(a<<2)>>2]|0)+-1|0;l=a*7|0;f=i+12+(k<<2)|0;c[f>>2]=(c[f>>2]|0)+(c[i+1310736+(l<<2)>>2]|0);f=k<<1;j=i+655376+(f<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(l+1<<2)>>2]|0);f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]+ +(c[i+1310736+(l+2<<2)>>2]|0);k=k<<2;f=i+131084+(k<<2)|0;j=c[i+1310736+(l+3<<2)>>2]|0;if((c[f>>2]|0)>(j|0))c[f>>2]=j;f=i+131084+((k|1)<<2)|0;j=c[i+1310736+(l+4<<2)>>2]|0;if((c[f>>2]|0)<(j|0))c[f>>2]=j;f=i+131084+((k|2)<<2)|0;j=c[i+1310736+(l+5<<2)>>2]|0;if((c[f>>2]|0)>(j|0))c[f>>2]=j;j=i+131084+((k|3)<<2)|0;f=c[i+1310736+(l+6<<2)>>2]|0;if((c[j>>2]|0)<(f|0))c[j>>2]=f;a=a+1|0}j=c[n>>2]|0;f=0;while(1){if((f|0)>=(j|0)){f=0;break d}z=+(c[i+12+(f<<2)>>2]|0);x=f<<1;w=i+655376+(x<<3)|0;g[w>>3]=+g[w>>3]/z;x=i+655376+((x|1)<<3)|0;g[x>>3]=+g[x>>3]/z;f=f+1|0}}}while(0);zb=y;return f|0}function hc(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=zb;zb=zb+16|0;w=x;n=c[i>>2]|0;v=f+-1|0;j=n;k=n+((B(v,e)|0)<<1)|0;l=0;while(1){if((l|0)>=(e|0))break;b[k>>1]=0;b[j>>1]=0;j=j+2|0;k=k+2|0;l=l+1|0}u=e+-1|0;j=n;k=n+(u<<1)|0;l=0;while(1){if((l|0)>=(f|0))break;b[k>>1]=0;b[j>>1]=0;j=j+(e<<1)|0;k=k+(e<<1)|0;l=l+1|0}m=i+1179664|0;l=e+1|0;t=0-e|0;k=a+l|0;s=1;p=0;l=n+(l<<1)|0;a:while(1){if((s|0)>=(v|0)){k=59;break}r=k;j=p;q=1;while(1){if((q|0)>=(u|0))break;do if((d[r>>0]|0|0)>(h|0)){a=l+(t<<1)|0;k=b[a>>1]|0;if(k<<16>>16>0){b[l>>1]=k;p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=i+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;c[i+1310736+(p+-1<<2)>>2]=s;break}o=b[a+2>>1]|0;p=o<<16>>16;k=b[a+-2>>1]|0;n=k<<16>>16;a=k<<16>>16>0;if(o<<16>>16<=0){if(a){b[l>>1]=k;k=n*7|0;a=i+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+q;a=i+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=i+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(q|0))c[a>>2]=q;c[i+1310736+(k+-1<<2)>>2]=s;break}k=b[l+-2>>1]|0;if(k<<16>>16>0){b[l>>1]=k;k=(k<<16>>16)*7|0;p=i+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=i+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=i+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=i+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0))break;c[k>>2]=q;break}else{k=j+1|0;if((j|0)>32767){k=54;break a}b[l>>1]=k;c[i+1179664+(j<<2)>>2]=k<<16>>16;j=j*7|0;c[i+1310736+(j<<2)>>2]=1;c[i+1310736+(j+1<<2)>>2]=q;c[i+1310736+(j+2<<2)>>2]=s;c[i+1310736+(j+3<<2)>>2]=q;c[i+1310736+(j+4<<2)>>2]=q;c[i+1310736+(j+5<<2)>>2]=s;c[i+1310736+(j+6<<2)>>2]=s;j=k;break}}if(a){k=c[i+1179664+(p+-1<<2)>>2]|0;o=c[i+1179664+(n+-1<<2)>>2]|0;b:do if((k|0)<=(o|0)){b[l>>1]=k;if((k|0)<(o|0)){a=m;n=0;while(1){if((n|0)>=(j|0))break b;if((c[a>>2]|0)==(o|0))c[a>>2]=k;a=a+4|0;n=n+1|0}}}else{b[l>>1]=o;a=m;n=0;while(1){if((n|0)>=(j|0)){k=o;break b}if((c[a>>2]|0)==(k|0))c[a>>2]=o;a=a+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=i+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;c[i+1310736+(p+-1<<2)>>2]=s;break}k=b[l+-2>>1]|0;if(k<<16>>16<=0){b[l>>1]=o;k=p*7|0;a=i+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+q;a=i+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=i+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(q|0))c[a>>2]=q;c[i+1310736+(k+-1<<2)>>2]=s;break}o=c[i+1179664+(p+-1<<2)>>2]|0;k=c[i+1179664+((k<<16>>16)+-1<<2)>>2]|0;c:do if((o|0)<=(k|0)){b[l>>1]=o;if((o|0)<(k|0)){a=m;n=0;while(1){if((n|0)>=(j|0)){k=o;break c}if((c[a>>2]|0)==(k|0))c[a>>2]=o;a=a+4|0;n=n+1|0}}else k=o}else{b[l>>1]=k;a=m;n=0;while(1){if((n|0)>=(j|0))break c;if((c[a>>2]|0)==(o|0))c[a>>2]=k;a=a+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;p=i+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+s}else b[l>>1]=0;while(0);r=r+1|0;q=q+1|0;l=l+2|0}k=r+2|0;s=s+1|0;p=j;l=l+4|0}d:do if((k|0)==54){Ue(0,3,19708,w);j=-1}else if((k|0)==59){n=i+12|0;j=1;a=1;while(1){if((a|0)>(p|0))break;k=c[m>>2]|0;if((k|0)==(a|0))l=j+1|0;else{l=j;j=c[i+1179664+(k+-1<<2)>>2]|0}c[m>>2]=j;j=l;a=a+1|0;m=m+4|0}o=i+8|0;k=j+-1|0;c[o>>2]=k;if(!k)j=0;else{aP(n|0,0,k<<2|0)|0;aP(i+655376|0,0,k<<4|0)|0;j=0;while(1){if((j|0)>=(k|0))break;w=j<<2;c[i+131084+(w<<2)>>2]=e;c[i+131084+((w|1)<<2)>>2]=0;c[i+131084+((w|2)<<2)>>2]=f;c[i+131084+((w|3)<<2)>>2]=0;j=j+1|0}a=0;while(1){if((a|0)>=(p|0))break;l=(c[i+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;j=i+12+(l<<2)|0;c[j>>2]=(c[j>>2]|0)+(c[i+1310736+(m<<2)>>2]|0);j=l<<1;k=i+655376+(j<<3)|0;g[k>>3]=+g[k>>3]+ +(c[i+1310736+(m+1<<2)>>2]|0);j=i+655376+((j|1)<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(m+2<<2)>>2]|0);l=l<<2;j=i+131084+(l<<2)|0;k=c[i+1310736+(m+3<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;j=i+131084+((l|1)<<2)|0;k=c[i+1310736+(m+4<<2)>>2]|0;if((c[j>>2]|0)<(k|0))c[j>>2]=k;j=i+131084+((l|2)<<2)|0;k=c[i+1310736+(m+5<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;k=i+131084+((l|3)<<2)|0;j=c[i+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(j|0))c[k>>2]=j;a=a+1|0}k=c[o>>2]|0;j=0;while(1){if((j|0)>=(k|0)){j=0;break d}y=+(c[i+12+(j<<2)>>2]|0);f=j<<1;e=i+655376+(f<<3)|0;g[e>>3]=+g[e>>3]/y;f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]/y;j=j+1|0}}}while(0);zb=x;return j|0}function ic(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=zb;zb=zb+16|0;w=x;n=c[i>>2]|0;v=f+-1|0;j=n;k=0;l=n+((B(v,e)|0)<<1)|0;while(1){if((k|0)>=(e|0))break;b[l>>1]=0;b[j>>1]=0;j=j+2|0;k=k+1|0;l=l+2|0}u=e+-1|0;j=n;k=0;l=n+(u<<1)|0;while(1){if((k|0)>=(f|0))break;b[l>>1]=0;b[j>>1]=0;j=j+(e<<1)|0;k=k+1|0;l=l+(e<<1)|0}m=i+1179664|0;l=e+1|0;t=0-e|0;a=a+l|0;k=h+l|0;s=1;o=0;l=n+(l<<1)|0;a:while(1){if((s|0)>=(v|0)){k=59;break}q=k;j=o;p=1;r=l;while(1){if((p|0)>=(u|0))break;do if((d[a>>0]|0)>(d[q>>0]|0)){l=r+(t<<1)|0;k=b[l>>1]|0;if(k<<16>>16>0){b[r>>1]=k;o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+s;c[i+1310736+(o+-1<<2)>>2]=s;break}n=b[l+2>>1]|0;o=n<<16>>16;k=b[l+-2>>1]|0;h=k<<16>>16;l=k<<16>>16>0;if(n<<16>>16<=0){if(l){b[r>>1]=k;k=h*7|0;l=i+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=i+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+p;l=i+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=i+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(p|0))c[l>>2]=p;c[i+1310736+(k+-1<<2)>>2]=s;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;o=i+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+p;o=i+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;k=i+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0))break;c[k>>2]=p;break}else{k=j+1|0;if((j|0)>32767){k=54;break a}b[r>>1]=k;c[i+1179664+(j<<2)>>2]=k<<16>>16;j=j*7|0;c[i+1310736+(j<<2)>>2]=1;c[i+1310736+(j+1<<2)>>2]=p;c[i+1310736+(j+2<<2)>>2]=s;c[i+1310736+(j+3<<2)>>2]=p;c[i+1310736+(j+4<<2)>>2]=p;c[i+1310736+(j+5<<2)>>2]=s;c[i+1310736+(j+6<<2)>>2]=s;j=k;break}}if(l){k=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+(h+-1<<2)>>2]|0;b:do if((k|0)<=(n|0)){b[r>>1]=k;if((k|0)<(n|0)){l=m;h=0;while(1){if((h|0)>=(j|0))break b;if((c[l>>2]|0)==(n|0))c[l>>2]=k;l=l+4|0;h=h+1|0}}}else{b[r>>1]=n;l=m;h=0;while(1){if((h|0)>=(j|0)){k=n;break b}if((c[l>>2]|0)==(k|0))c[l>>2]=n;l=l+4|0;h=h+1|0}}while(0);o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+s;c[i+1310736+(o+-1<<2)>>2]=s;break}l=b[r+-2>>1]|0;if(l<<16>>16<=0){b[r>>1]=n;k=o*7|0;l=i+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=i+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+p;l=i+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=i+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(p|0))c[l>>2]=p;c[i+1310736+(k+-1<<2)>>2]=s;break}k=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+((l<<16>>16)+-1<<2)>>2]|0;c:do if((k|0)<=(n|0)){b[r>>1]=k;if((k|0)<(n|0)){l=m;h=0;while(1){if((h|0)>=(j|0))break c;if((c[l>>2]|0)==(n|0))c[l>>2]=k;l=l+4|0;h=h+1|0}}}else{b[r>>1]=n;l=m;h=0;while(1){if((h|0)>=(j|0)){k=n;break c}if((c[l>>2]|0)==(k|0))c[l>>2]=n;l=l+4|0;h=h+1|0}}while(0);o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;o=i+1310736+(o+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s}else b[r>>1]=0;while(0);a=a+1|0;q=q+1|0;p=p+1|0;r=r+2|0}a=a+2|0;k=q+2|0;s=s+1|0;o=j;l=r+4|0}d:do if((k|0)==54){Ue(0,3,19708,w);j=-1}else if((k|0)==59){h=i+12|0;j=1;a=1;while(1){if((a|0)>(o|0))break;k=c[m>>2]|0;if((k|0)==(a|0))l=j+1|0;else{l=j;j=c[i+1179664+(k+-1<<2)>>2]|0}c[m>>2]=j;j=l;a=a+1|0;m=m+4|0}n=i+8|0;k=j+-1|0;c[n>>2]=k;if(!k)j=0;else{aP(h|0,0,k<<2|0)|0;aP(i+655376|0,0,k<<4|0)|0;j=0;while(1){if((j|0)>=(k|0))break;w=j<<2;c[i+131084+(w<<2)>>2]=e;c[i+131084+((w|1)<<2)>>2]=0;c[i+131084+((w|2)<<2)>>2]=f;c[i+131084+((w|3)<<2)>>2]=0;j=j+1|0}a=0;while(1){if((a|0)>=(o|0))break;l=(c[i+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;j=i+12+(l<<2)|0;c[j>>2]=(c[j>>2]|0)+(c[i+1310736+(m<<2)>>2]|0);j=l<<1;k=i+655376+(j<<3)|0;g[k>>3]=+g[k>>3]+ +(c[i+1310736+(m+1<<2)>>2]|0);j=i+655376+((j|1)<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(m+2<<2)>>2]|0);l=l<<2;j=i+131084+(l<<2)|0;k=c[i+1310736+(m+3<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;j=i+131084+((l|1)<<2)|0;k=c[i+1310736+(m+4<<2)>>2]|0;if((c[j>>2]|0)<(k|0))c[j>>2]=k;j=i+131084+((l|2)<<2)|0;k=c[i+1310736+(m+5<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;k=i+131084+((l|3)<<2)|0;j=c[i+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(j|0))c[k>>2]=j;a=a+1|0}k=c[n>>2]|0;j=0;while(1){if((j|0)>=(k|0)){j=0;break d}y=+(c[i+12+(j<<2)>>2]|0);f=j<<1;e=i+655376+(f<<3)|0;g[e>>3]=+g[e>>3]/y;f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]/y;j=j+1|0}}}while(0);zb=x;return j|0}function jc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0.0;A=zb;zb=zb+16|0;x=A;z=(f|0)/2|0;y=(h|0)/2|0;n=c[j>>2]|0;w=y+-1|0;h=n;k=n+((B(w,z)|0)<<1)|0;l=0;while(1){if((l|0)>=(z|0))break;b[k>>1]=0;b[h>>1]=0;h=h+2|0;k=k+2|0;l=l+1|0}v=z+-1|0;h=n;k=n+(v<<1)|0;l=0;while(1){if((l|0)>=(y|0))break;b[k>>1]=0;b[h>>1]=0;h=h+(z<<1)|0;k=k+(z<<1)|0;l=l+1|0}m=j+1179664|0;s=z+1|0;u=0-z|0;k=e+((f<<1)+2)|0;t=1;p=0;l=(c[j+4>>2]|0)+s|0;e=n+(s<<1)|0;a:while(1){if((t|0)>=(w|0)){k=59;break}r=k;h=p;s=l;q=1;while(1){if((q|0)>=(v|0))break;do if((d[r>>0]|0|0)>(i|0)){b[e>>1]=0;a[s>>0]=0}else{a[s>>0]=-1;l=e+(u<<1)|0;k=b[l>>1]|0;if(k<<16>>16>0){b[e>>1]=k;p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=j+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+t;c[j+1310736+(p+-1<<2)>>2]=t;break}o=b[l+2>>1]|0;p=o<<16>>16;k=b[l+-2>>1]|0;n=k<<16>>16;l=k<<16>>16>0;if(o<<16>>16<=0){if(l){b[e>>1]=k;k=n*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+q;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+t;l=j+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(q|0))c[l>>2]=q;c[j+1310736+(k+-1<<2)>>2]=t;break}k=b[e+-2>>1]|0;if(k<<16>>16>0){b[e>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+t;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0))break;c[k>>2]=q;break}else{k=h+1|0;if((h|0)>32767){k=54;break a}b[e>>1]=k;c[j+1179664+(h<<2)>>2]=k<<16>>16;h=h*7|0;c[j+1310736+(h<<2)>>2]=1;c[j+1310736+(h+1<<2)>>2]=q;c[j+1310736+(h+2<<2)>>2]=t;c[j+1310736+(h+3<<2)>>2]=q;c[j+1310736+(h+4<<2)>>2]=q;c[j+1310736+(h+5<<2)>>2]=t;c[j+1310736+(h+6<<2)>>2]=t;h=k;break}}if(l){k=c[j+1179664+(p+-1<<2)>>2]|0;o=c[j+1179664+(n+-1<<2)>>2]|0;b:do if((k|0)<=(o|0)){b[e>>1]=k;if((k|0)<(o|0)){l=m;n=0;while(1){if((n|0)>=(h|0))break b;if((c[l>>2]|0)==(o|0))c[l>>2]=k;l=l+4|0;n=n+1|0}}}else{b[e>>1]=o;l=m;n=0;while(1){if((n|0)>=(h|0)){k=o;break b}if((c[l>>2]|0)==(k|0))c[l>>2]=o;l=l+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=j+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+t;c[j+1310736+(p+-1<<2)>>2]=t;break}l=b[e+-2>>1]|0;if(l<<16>>16<=0){b[e>>1]=o;k=p*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+q;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+t;l=j+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(q|0))c[l>>2]=q;c[j+1310736+(k+-1<<2)>>2]=t;break}k=c[j+1179664+(p+-1<<2)>>2]|0;o=c[j+1179664+((l<<16>>16)+-1<<2)>>2]|0;c:do if((k|0)<=(o|0)){b[e>>1]=k;if((k|0)<(o|0)){l=m;n=0;while(1){if((n|0)>=(h|0))break c;if((c[l>>2]|0)==(o|0))c[l>>2]=k;l=l+4|0;n=n+1|0}}}else{b[e>>1]=o;l=m;n=0;while(1){if((n|0)>=(h|0)){k=o;break c}if((c[l>>2]|0)==(k|0))c[l>>2]=o;l=l+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;p=j+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+t}while(0);r=r+2|0;s=s+1|0;q=q+1|0;e=e+2|0}k=r+f+4|0;t=t+1|0;p=h;l=s+2|0;e=e+4|0}d:do if((k|0)==54){Ue(0,3,19708,x);h=-1}else if((k|0)==59){n=j+12|0;h=1;e=1;while(1){if((e|0)>(p|0))break;k=c[m>>2]|0;if((k|0)==(e|0))l=h+1|0;else{l=h;h=c[j+1179664+(k+-1<<2)>>2]|0}c[m>>2]=h;h=l;e=e+1|0;m=m+4|0}o=j+8|0;k=h+-1|0;c[o>>2]=k;if(!k)h=0;else{aP(n|0,0,k<<2|0)|0;aP(j+655376|0,0,k<<4|0)|0;h=0;while(1){if((h|0)>=(k|0))break;x=h<<2;c[j+131084+(x<<2)>>2]=z;c[j+131084+((x|1)<<2)>>2]=0;c[j+131084+((x|2)<<2)>>2]=y;c[j+131084+((x|3)<<2)>>2]=0;h=h+1|0}e=0;while(1){if((e|0)>=(p|0))break;l=(c[j+1179664+(e<<2)>>2]|0)+-1|0;m=e*7|0;h=j+12+(l<<2)|0;c[h>>2]=(c[h>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);h=l<<1;k=j+655376+(h<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;h=j+131084+(l<<2)|0;k=c[j+1310736+(m+3<<2)>>2]|0;if((c[h>>2]|0)>(k|0))c[h>>2]=k;h=j+131084+((l|1)<<2)|0;k=c[j+1310736+(m+4<<2)>>2]|0;if((c[h>>2]|0)<(k|0))c[h>>2]=k;h=j+131084+((l|2)<<2)|0;k=c[j+1310736+(m+5<<2)>>2]|0;if((c[h>>2]|0)>(k|0))c[h>>2]=k;k=j+131084+((l|3)<<2)|0;h=c[j+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(h|0))c[k>>2]=h;e=e+1|0}k=c[o>>2]|0;h=0;while(1){if((h|0)>=(k|0)){h=0;break d}C=+(c[j+12+(h<<2)>>2]|0);z=h<<1;y=j+655376+(z<<3)|0;g[y>>3]=+g[y>>3]/C;z=j+655376+((z|1)<<3)|0;g[z>>3]=+g[z>>3]/C;h=h+1|0}}}while(0);zb=A;return h|0}function kc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;y=z;o=c[j>>2]|0;x=h+-1|0;k=o;l=o+((B(x,f)|0)<<1)|0;m=0;while(1){if((m|0)>=(f|0))break;b[l>>1]=0;b[k>>1]=0;k=k+2|0;l=l+2|0;m=m+1|0}w=f+-1|0;k=o;l=o+(w<<1)|0;m=0;while(1){if((m|0)>=(h|0))break;b[l>>1]=0;b[k>>1]=0;k=k+(f<<1)|0;l=l+(f<<1)|0;m=m+1|0}n=j+1179664|0;t=f+1|0;v=0-f|0;l=e+t|0;u=1;q=0;m=(c[j+4>>2]|0)+t|0;e=o+(t<<1)|0;a:while(1){if((u|0)>=(x|0)){l=59;break}s=l;k=q;t=m;r=1;while(1){if((r|0)>=(w|0))break;do if((d[s>>0]|0|0)>(i|0)){b[e>>1]=0;a[t>>0]=0}else{a[t>>0]=-1;m=e+(v<<1)|0;l=b[m>>1]|0;if(l<<16>>16>0){b[e>>1]=l;q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;p=j+1310736+(q+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;c[j+1310736+(q+-1<<2)>>2]=u;break}p=b[m+2>>1]|0;q=p<<16>>16;l=b[m+-2>>1]|0;o=l<<16>>16;m=l<<16>>16>0;if(p<<16>>16<=0){if(m){b[e>>1]=l;l=o*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(l+-1<<2)>>2]=u;break}l=b[e+-2>>1]|0;if(l<<16>>16>0){b[e>>1]=l;l=(l<<16>>16)*7|0;q=j+1310736+(l+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=j+1310736+(l+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+r;q=j+1310736+(l+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+u;l=j+1310736+(l+-3<<2)|0;if((c[l>>2]|0)>=(r|0))break;c[l>>2]=r;break}else{l=k+1|0;if((k|0)>32767){l=54;break a}b[e>>1]=l;c[j+1179664+(k<<2)>>2]=l<<16>>16;k=k*7|0;c[j+1310736+(k<<2)>>2]=1;c[j+1310736+(k+1<<2)>>2]=r;c[j+1310736+(k+2<<2)>>2]=u;c[j+1310736+(k+3<<2)>>2]=r;c[j+1310736+(k+4<<2)>>2]=r;c[j+1310736+(k+5<<2)>>2]=u;c[j+1310736+(k+6<<2)>>2]=u;k=l;break}}if(m){l=c[j+1179664+(q+-1<<2)>>2]|0;p=c[j+1179664+(o+-1<<2)>>2]|0;b:do if((l|0)<=(p|0)){b[e>>1]=l;if((l|0)<(p|0)){m=n;o=0;while(1){if((o|0)>=(k|0))break b;if((c[m>>2]|0)==(p|0))c[m>>2]=l;m=m+4|0;o=o+1|0}}}else{b[e>>1]=p;m=n;o=0;while(1){if((o|0)>=(k|0)){l=p;break b}if((c[m>>2]|0)==(l|0))c[m>>2]=p;m=m+4|0;o=o+1|0}}while(0);q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;p=j+1310736+(q+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;c[j+1310736+(q+-1<<2)>>2]=u;break}m=b[e+-2>>1]|0;if(m<<16>>16<=0){b[e>>1]=p;l=q*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(l+-1<<2)>>2]=u;break}l=c[j+1179664+(q+-1<<2)>>2]|0;p=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;c:do if((l|0)<=(p|0)){b[e>>1]=l;if((l|0)<(p|0)){m=n;o=0;while(1){if((o|0)>=(k|0))break c;if((c[m>>2]|0)==(p|0))c[m>>2]=l;m=m+4|0;o=o+1|0}}}else{b[e>>1]=p;m=n;o=0;while(1){if((o|0)>=(k|0)){l=p;break c}if((c[m>>2]|0)==(l|0))c[m>>2]=p;m=m+4|0;o=o+1|0}}while(0);q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;q=j+1310736+(q+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+u}while(0);s=s+1|0;t=t+1|0;r=r+1|0;e=e+2|0}l=s+2|0;u=u+1|0;q=k;m=t+2|0;e=e+4|0}d:do if((l|0)==54){Ue(0,3,19708,y);k=-1}else if((l|0)==59){o=j+12|0;k=1;e=1;while(1){if((e|0)>(q|0))break;l=c[n>>2]|0;if((l|0)==(e|0))m=k+1|0;else{m=k;k=c[j+1179664+(l+-1<<2)>>2]|0}c[n>>2]=k;k=m;e=e+1|0;n=n+4|0}p=j+8|0;l=k+-1|0;c[p>>2]=l;if(!l)k=0;else{aP(o|0,0,l<<2|0)|0;aP(j+655376|0,0,l<<4|0)|0;k=0;while(1){if((k|0)>=(l|0))break;y=k<<2;c[j+131084+(y<<2)>>2]=f;c[j+131084+((y|1)<<2)>>2]=0;c[j+131084+((y|2)<<2)>>2]=h;c[j+131084+((y|3)<<2)>>2]=0;k=k+1|0}e=0;while(1){if((e|0)>=(q|0))break;m=(c[j+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(n<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;g[l>>3]=+g[l>>3]+ +(c[j+1310736+(n+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(n+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(n+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(n+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(n+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(n+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;e=e+1|0}l=c[p>>2]|0;k=0;while(1){if((k|0)>=(l|0)){k=0;break d}A=+(c[j+12+(k<<2)>>2]|0);h=k<<1;f=j+655376+(h<<3)|0;g[f>>3]=+g[f>>3]/A;h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]/A;k=k+1|0}}}while(0);zb=z;return k|0}function lc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;y=z;p=c[j>>2]|0;x=h+-1|0;k=p;l=0;m=p+((B(x,f)|0)<<1)|0;while(1){if((l|0)>=(f|0))break;b[m>>1]=0;b[k>>1]=0;k=k+2|0;l=l+1|0;m=m+2|0}w=f+-1|0;k=p;l=0;m=p+(w<<1)|0;while(1){if((l|0)>=(h|0))break;b[m>>1]=0;b[k>>1]=0;k=k+(f<<1)|0;l=l+1|0;m=m+(f<<1)|0}n=j+1179664|0;t=f+1|0;v=0-f|0;o=e+t|0;l=i+t|0;u=1;q=0;m=(c[j+4>>2]|0)+t|0;e=p+(t<<1)|0;a:while(1){if((u|0)>=(x|0)){l=59;break}r=l;k=q;s=m;q=1;t=e;while(1){if((q|0)>=(w|0))break;do if((d[o>>0]|0)>(d[r>>0]|0)){b[t>>1]=0;a[s>>0]=0}else{a[s>>0]=-1;m=t+(v<<1)|0;l=b[m>>1]|0;if(l<<16>>16>0){b[t>>1]=l;p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;i=j+1310736+(p+-5<<2)|0;c[i>>2]=(c[i>>2]|0)+u;c[j+1310736+(p+-1<<2)>>2]=u;break}i=b[m+2>>1]|0;p=i<<16>>16;l=b[m+-2>>1]|0;e=l<<16>>16;m=l<<16>>16>0;if(i<<16>>16<=0){if(m){b[t>>1]=l;l=e*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+q;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-3<<2)|0;if((c[m>>2]|0)<(q|0))c[m>>2]=q;c[j+1310736+(l+-1<<2)>>2]=u;break}l=b[t+-2>>1]|0;if(l<<16>>16>0){b[t>>1]=l;l=(l<<16>>16)*7|0;p=j+1310736+(l+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(l+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=j+1310736+(l+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;l=j+1310736+(l+-3<<2)|0;if((c[l>>2]|0)>=(q|0))break;c[l>>2]=q;break}else{l=k+1|0;if((k|0)>32767){l=54;break a}b[t>>1]=l;c[j+1179664+(k<<2)>>2]=l<<16>>16;k=k*7|0;c[j+1310736+(k<<2)>>2]=1;c[j+1310736+(k+1<<2)>>2]=q;c[j+1310736+(k+2<<2)>>2]=u;c[j+1310736+(k+3<<2)>>2]=q;c[j+1310736+(k+4<<2)>>2]=q;c[j+1310736+(k+5<<2)>>2]=u;c[j+1310736+(k+6<<2)>>2]=u;k=l;break}}if(m){l=c[j+1179664+(p+-1<<2)>>2]|0;i=c[j+1179664+(e+-1<<2)>>2]|0;b:do if((l|0)<=(i|0)){b[t>>1]=l;if((l|0)<(i|0)){m=n;e=0;while(1){if((e|0)>=(k|0))break b;if((c[m>>2]|0)==(i|0))c[m>>2]=l;m=m+4|0;e=e+1|0}}}else{b[t>>1]=i;m=n;e=0;while(1){if((e|0)>=(k|0)){l=i;break b}if((c[m>>2]|0)==(l|0))c[m>>2]=i;m=m+4|0;e=e+1|0}}while(0);p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;i=j+1310736+(p+-5<<2)|0;c[i>>2]=(c[i>>2]|0)+u;c[j+1310736+(p+-1<<2)>>2]=u;break}m=b[t+-2>>1]|0;if(m<<16>>16<=0){b[t>>1]=i;l=p*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+q;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-4<<2)|0;if((c[m>>2]|0)>(q|0))c[m>>2]=q;c[j+1310736+(l+-1<<2)>>2]=u;break}l=c[j+1179664+(p+-1<<2)>>2]|0;i=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;c:do if((l|0)<=(i|0)){b[t>>1]=l;if((l|0)<(i|0)){m=n;e=0;while(1){if((e|0)>=(k|0))break c;if((c[m>>2]|0)==(i|0))c[m>>2]=l;m=m+4|0;e=e+1|0}}}else{b[t>>1]=i;m=n;e=0;while(1){if((e|0)>=(k|0)){l=i;break c}if((c[m>>2]|0)==(l|0))c[m>>2]=i;m=m+4|0;e=e+1|0}}while(0);p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;p=j+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u}while(0);o=o+1|0;r=r+1|0;s=s+1|0;q=q+1|0;t=t+2|0}o=o+2|0;l=r+2|0;u=u+1|0;q=k;m=s+2|0;e=t+4|0}d:do if((l|0)==54){Ue(0,3,19708,y);k=-1}else if((l|0)==59){i=j+12|0;k=1;e=1;while(1){if((e|0)>(q|0))break;l=c[n>>2]|0;if((l|0)==(e|0))m=k+1|0;else{m=k;k=c[j+1179664+(l+-1<<2)>>2]|0}c[n>>2]=k;k=m;e=e+1|0;n=n+4|0}o=j+8|0;l=k+-1|0;c[o>>2]=l;if(!l)k=0;else{aP(i|0,0,l<<2|0)|0;aP(j+655376|0,0,l<<4|0)|0;k=0;while(1){if((k|0)>=(l|0))break;y=k<<2;c[j+131084+(y<<2)>>2]=f;c[j+131084+((y|1)<<2)>>2]=0;c[j+131084+((y|2)<<2)>>2]=h;c[j+131084+((y|3)<<2)>>2]=0;k=k+1|0}e=0;while(1){if((e|0)>=(q|0))break;m=(c[j+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(n<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;g[l>>3]=+g[l>>3]+ +(c[j+1310736+(n+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(n+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(n+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(n+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(n+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(n+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;e=e+1|0}l=c[o>>2]|0;k=0;while(1){if((k|0)>=(l|0)){k=0;break d}A=+(c[j+12+(k<<2)>>2]|0);h=k<<1;f=j+655376+(h<<3)|0;g[f>>3]=+g[f>>3]/A;h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]/A;k=k+1|0}}}while(0);zb=z;return k|0}function mc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0.0;A=zb;zb=zb+16|0;x=A;z=(f|0)/2|0;y=(h|0)/2|0;n=c[j>>2]|0;w=y+-1|0;h=n;k=n+((B(w,z)|0)<<1)|0;l=0;while(1){if((l|0)>=(z|0))break;b[k>>1]=0;b[h>>1]=0;h=h+2|0;k=k+2|0;l=l+1|0}v=z+-1|0;h=n;k=n+(v<<1)|0;l=0;while(1){if((l|0)>=(y|0))break;b[k>>1]=0;b[h>>1]=0;h=h+(z<<1)|0;k=k+(z<<1)|0;l=l+1|0}m=j+1179664|0;s=z+1|0;u=0-z|0;k=e+((f<<1)+2)|0;t=1;p=0;l=(c[j+4>>2]|0)+s|0;e=n+(s<<1)|0;a:while(1){if((t|0)>=(w|0)){k=59;break}r=k;h=p;s=l;q=1;while(1){if((q|0)>=(v|0))break;do if((d[r>>0]|0|0)>(i|0)){a[s>>0]=-1;l=e+(u<<1)|0;k=b[l>>1]|0;if(k<<16>>16>0){b[e>>1]=k;p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=j+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+t;c[j+1310736+(p+-1<<2)>>2]=t;break}o=b[l+2>>1]|0;p=o<<16>>16;k=b[l+-2>>1]|0;n=k<<16>>16;l=k<<16>>16>0;if(o<<16>>16<=0){if(l){b[e>>1]=k;k=n*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+q;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+t;l=j+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(q|0))c[l>>2]=q;c[j+1310736+(k+-1<<2)>>2]=t;break}k=b[e+-2>>1]|0;if(k<<16>>16>0){b[e>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+t;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0))break;c[k>>2]=q;break}else{k=h+1|0;if((h|0)>32767){k=54;break a}b[e>>1]=k;c[j+1179664+(h<<2)>>2]=k<<16>>16;h=h*7|0;c[j+1310736+(h<<2)>>2]=1;c[j+1310736+(h+1<<2)>>2]=q;c[j+1310736+(h+2<<2)>>2]=t;c[j+1310736+(h+3<<2)>>2]=q;c[j+1310736+(h+4<<2)>>2]=q;c[j+1310736+(h+5<<2)>>2]=t;c[j+1310736+(h+6<<2)>>2]=t;h=k;break}}if(l){k=c[j+1179664+(p+-1<<2)>>2]|0;o=c[j+1179664+(n+-1<<2)>>2]|0;b:do if((k|0)<=(o|0)){b[e>>1]=k;if((k|0)<(o|0)){l=m;n=0;while(1){if((n|0)>=(h|0))break b;if((c[l>>2]|0)==(o|0))c[l>>2]=k;l=l+4|0;n=n+1|0}}}else{b[e>>1]=o;l=m;n=0;while(1){if((n|0)>=(h|0)){k=o;break b}if((c[l>>2]|0)==(k|0))c[l>>2]=o;l=l+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=j+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+t;c[j+1310736+(p+-1<<2)>>2]=t;break}l=b[e+-2>>1]|0;if(l<<16>>16<=0){b[e>>1]=o;k=p*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+q;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+t;l=j+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(q|0))c[l>>2]=q;c[j+1310736+(k+-1<<2)>>2]=t;break}k=c[j+1179664+(p+-1<<2)>>2]|0;o=c[j+1179664+((l<<16>>16)+-1<<2)>>2]|0;c:do if((k|0)<=(o|0)){b[e>>1]=k;if((k|0)<(o|0)){l=m;n=0;while(1){if((n|0)>=(h|0))break c;if((c[l>>2]|0)==(o|0))c[l>>2]=k;l=l+4|0;n=n+1|0}}}else{b[e>>1]=o;l=m;n=0;while(1){if((n|0)>=(h|0)){k=o;break c}if((c[l>>2]|0)==(k|0))c[l>>2]=o;l=l+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;p=j+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+t}else{b[e>>1]=0;a[s>>0]=0}while(0);r=r+2|0;s=s+1|0;q=q+1|0;e=e+2|0}k=r+f+4|0;t=t+1|0;p=h;l=s+2|0;e=e+4|0}d:do if((k|0)==54){Ue(0,3,19708,x);h=-1}else if((k|0)==59){n=j+12|0;h=1;e=1;while(1){if((e|0)>(p|0))break;k=c[m>>2]|0;if((k|0)==(e|0))l=h+1|0;else{l=h;h=c[j+1179664+(k+-1<<2)>>2]|0}c[m>>2]=h;h=l;e=e+1|0;m=m+4|0}o=j+8|0;k=h+-1|0;c[o>>2]=k;if(!k)h=0;else{aP(n|0,0,k<<2|0)|0;aP(j+655376|0,0,k<<4|0)|0;h=0;while(1){if((h|0)>=(k|0))break;x=h<<2;c[j+131084+(x<<2)>>2]=z;c[j+131084+((x|1)<<2)>>2]=0;c[j+131084+((x|2)<<2)>>2]=y;c[j+131084+((x|3)<<2)>>2]=0;h=h+1|0}e=0;while(1){if((e|0)>=(p|0))break;l=(c[j+1179664+(e<<2)>>2]|0)+-1|0;m=e*7|0;h=j+12+(l<<2)|0;c[h>>2]=(c[h>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);h=l<<1;k=j+655376+(h<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;h=j+131084+(l<<2)|0;k=c[j+1310736+(m+3<<2)>>2]|0;if((c[h>>2]|0)>(k|0))c[h>>2]=k;h=j+131084+((l|1)<<2)|0;k=c[j+1310736+(m+4<<2)>>2]|0;if((c[h>>2]|0)<(k|0))c[h>>2]=k;h=j+131084+((l|2)<<2)|0;k=c[j+1310736+(m+5<<2)>>2]|0;if((c[h>>2]|0)>(k|0))c[h>>2]=k;k=j+131084+((l|3)<<2)|0;h=c[j+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(h|0))c[k>>2]=h;e=e+1|0}k=c[o>>2]|0;h=0;while(1){if((h|0)>=(k|0)){h=0;break d}C=+(c[j+12+(h<<2)>>2]|0);z=h<<1;y=j+655376+(z<<3)|0;g[y>>3]=+g[y>>3]/C;z=j+655376+((z|1)<<3)|0;g[z>>3]=+g[z>>3]/C;h=h+1|0}}}while(0);zb=A;return h|0}function nc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;y=z;o=c[j>>2]|0;x=h+-1|0;k=o;l=o+((B(x,f)|0)<<1)|0;m=0;while(1){if((m|0)>=(f|0))break;b[l>>1]=0;b[k>>1]=0;k=k+2|0;l=l+2|0;m=m+1|0}w=f+-1|0;k=o;l=o+(w<<1)|0;m=0;while(1){if((m|0)>=(h|0))break;b[l>>1]=0;b[k>>1]=0;k=k+(f<<1)|0;l=l+(f<<1)|0;m=m+1|0}n=j+1179664|0;t=f+1|0;v=0-f|0;l=e+t|0;u=1;q=0;m=(c[j+4>>2]|0)+t|0;e=o+(t<<1)|0;a:while(1){if((u|0)>=(x|0)){l=59;break}s=l;k=q;t=m;r=1;while(1){if((r|0)>=(w|0))break;do if((d[s>>0]|0|0)>(i|0)){a[t>>0]=-1;m=e+(v<<1)|0;l=b[m>>1]|0;if(l<<16>>16>0){b[e>>1]=l;q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;p=j+1310736+(q+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;c[j+1310736+(q+-1<<2)>>2]=u;break}p=b[m+2>>1]|0;q=p<<16>>16;l=b[m+-2>>1]|0;o=l<<16>>16;m=l<<16>>16>0;if(p<<16>>16<=0){if(m){b[e>>1]=l;l=o*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(l+-1<<2)>>2]=u;break}l=b[e+-2>>1]|0;if(l<<16>>16>0){b[e>>1]=l;l=(l<<16>>16)*7|0;q=j+1310736+(l+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=j+1310736+(l+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+r;q=j+1310736+(l+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+u;l=j+1310736+(l+-3<<2)|0;if((c[l>>2]|0)>=(r|0))break;c[l>>2]=r;break}else{l=k+1|0;if((k|0)>32767){l=54;break a}b[e>>1]=l;c[j+1179664+(k<<2)>>2]=l<<16>>16;k=k*7|0;c[j+1310736+(k<<2)>>2]=1;c[j+1310736+(k+1<<2)>>2]=r;c[j+1310736+(k+2<<2)>>2]=u;c[j+1310736+(k+3<<2)>>2]=r;c[j+1310736+(k+4<<2)>>2]=r;c[j+1310736+(k+5<<2)>>2]=u;c[j+1310736+(k+6<<2)>>2]=u;k=l;break}}if(m){l=c[j+1179664+(q+-1<<2)>>2]|0;p=c[j+1179664+(o+-1<<2)>>2]|0;b:do if((l|0)<=(p|0)){b[e>>1]=l;if((l|0)<(p|0)){m=n;o=0;while(1){if((o|0)>=(k|0))break b;if((c[m>>2]|0)==(p|0))c[m>>2]=l;m=m+4|0;o=o+1|0}}}else{b[e>>1]=p;m=n;o=0;while(1){if((o|0)>=(k|0)){l=p;break b}if((c[m>>2]|0)==(l|0))c[m>>2]=p;m=m+4|0;o=o+1|0}}while(0);q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;p=j+1310736+(q+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;c[j+1310736+(q+-1<<2)>>2]=u;break}m=b[e+-2>>1]|0;if(m<<16>>16<=0){b[e>>1]=p;l=q*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(l+-1<<2)>>2]=u;break}l=c[j+1179664+(q+-1<<2)>>2]|0;p=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;c:do if((l|0)<=(p|0)){b[e>>1]=l;if((l|0)<(p|0)){m=n;o=0;while(1){if((o|0)>=(k|0))break c;if((c[m>>2]|0)==(p|0))c[m>>2]=l;m=m+4|0;o=o+1|0}}}else{b[e>>1]=p;m=n;o=0;while(1){if((o|0)>=(k|0)){l=p;break c}if((c[m>>2]|0)==(l|0))c[m>>2]=p;m=m+4|0;o=o+1|0}}while(0);q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;q=j+1310736+(q+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+u}else{b[e>>1]=0;a[t>>0]=0}while(0);s=s+1|0;t=t+1|0;r=r+1|0;e=e+2|0}l=s+2|0;u=u+1|0;q=k;m=t+2|0;e=e+4|0}d:do if((l|0)==54){Ue(0,3,19708,y);k=-1}else if((l|0)==59){o=j+12|0;k=1;e=1;while(1){if((e|0)>(q|0))break;l=c[n>>2]|0;if((l|0)==(e|0))m=k+1|0;else{m=k;k=c[j+1179664+(l+-1<<2)>>2]|0}c[n>>2]=k;k=m;e=e+1|0;n=n+4|0}p=j+8|0;l=k+-1|0;c[p>>2]=l;if(!l)k=0;else{aP(o|0,0,l<<2|0)|0;aP(j+655376|0,0,l<<4|0)|0;k=0;while(1){if((k|0)>=(l|0))break;y=k<<2;c[j+131084+(y<<2)>>2]=f;c[j+131084+((y|1)<<2)>>2]=0;c[j+131084+((y|2)<<2)>>2]=h;c[j+131084+((y|3)<<2)>>2]=0;k=k+1|0}e=0;while(1){if((e|0)>=(q|0))break;m=(c[j+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(n<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;g[l>>3]=+g[l>>3]+ +(c[j+1310736+(n+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(n+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(n+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(n+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(n+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(n+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;e=e+1|0}l=c[p>>2]|0;k=0;while(1){if((k|0)>=(l|0)){k=0;break d}A=+(c[j+12+(k<<2)>>2]|0);h=k<<1;f=j+655376+(h<<3)|0;g[f>>3]=+g[f>>3]/A;h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]/A;k=k+1|0}}}while(0);zb=z;return k|0}function oc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;y=z;p=c[j>>2]|0;x=h+-1|0;k=p;l=0;m=p+((B(x,f)|0)<<1)|0;while(1){if((l|0)>=(f|0))break;b[m>>1]=0;b[k>>1]=0;k=k+2|0;l=l+1|0;m=m+2|0}w=f+-1|0;k=p;l=0;m=p+(w<<1)|0;while(1){if((l|0)>=(h|0))break;b[m>>1]=0;b[k>>1]=0;k=k+(f<<1)|0;l=l+1|0;m=m+(f<<1)|0}n=j+1179664|0;t=f+1|0;v=0-f|0;o=e+t|0;l=i+t|0;u=1;q=0;m=(c[j+4>>2]|0)+t|0;e=p+(t<<1)|0;a:while(1){if((u|0)>=(x|0)){l=59;break}r=l;k=q;s=m;q=1;t=e;while(1){if((q|0)>=(w|0))break;do if((d[o>>0]|0)>(d[r>>0]|0)){a[s>>0]=-1;m=t+(v<<1)|0;l=b[m>>1]|0;if(l<<16>>16>0){b[t>>1]=l;p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;i=j+1310736+(p+-5<<2)|0;c[i>>2]=(c[i>>2]|0)+u;c[j+1310736+(p+-1<<2)>>2]=u;break}i=b[m+2>>1]|0;p=i<<16>>16;l=b[m+-2>>1]|0;e=l<<16>>16;m=l<<16>>16>0;if(i<<16>>16<=0){if(m){b[t>>1]=l;l=e*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+q;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-3<<2)|0;if((c[m>>2]|0)<(q|0))c[m>>2]=q;c[j+1310736+(l+-1<<2)>>2]=u;break}l=b[t+-2>>1]|0;if(l<<16>>16>0){b[t>>1]=l;l=(l<<16>>16)*7|0;p=j+1310736+(l+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(l+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=j+1310736+(l+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;l=j+1310736+(l+-3<<2)|0;if((c[l>>2]|0)>=(q|0))break;c[l>>2]=q;break}else{l=k+1|0;if((k|0)>32767){l=54;break a}b[t>>1]=l;c[j+1179664+(k<<2)>>2]=l<<16>>16;k=k*7|0;c[j+1310736+(k<<2)>>2]=1;c[j+1310736+(k+1<<2)>>2]=q;c[j+1310736+(k+2<<2)>>2]=u;c[j+1310736+(k+3<<2)>>2]=q;c[j+1310736+(k+4<<2)>>2]=q;c[j+1310736+(k+5<<2)>>2]=u;c[j+1310736+(k+6<<2)>>2]=u;k=l;break}}if(m){l=c[j+1179664+(p+-1<<2)>>2]|0;i=c[j+1179664+(e+-1<<2)>>2]|0;b:do if((l|0)<=(i|0)){b[t>>1]=l;if((l|0)<(i|0)){m=n;e=0;while(1){if((e|0)>=(k|0))break b;if((c[m>>2]|0)==(i|0))c[m>>2]=l;m=m+4|0;e=e+1|0}}}else{b[t>>1]=i;m=n;e=0;while(1){if((e|0)>=(k|0)){l=i;break b}if((c[m>>2]|0)==(l|0))c[m>>2]=i;m=m+4|0;e=e+1|0}}while(0);p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;i=j+1310736+(p+-5<<2)|0;c[i>>2]=(c[i>>2]|0)+u;c[j+1310736+(p+-1<<2)>>2]=u;break}m=b[t+-2>>1]|0;if(m<<16>>16<=0){b[t>>1]=i;l=p*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+q;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-4<<2)|0;if((c[m>>2]|0)>(q|0))c[m>>2]=q;c[j+1310736+(l+-1<<2)>>2]=u;break}l=c[j+1179664+(p+-1<<2)>>2]|0;i=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;c:do if((l|0)<=(i|0)){b[t>>1]=l;if((l|0)<(i|0)){m=n;e=0;while(1){if((e|0)>=(k|0))break c;if((c[m>>2]|0)==(i|0))c[m>>2]=l;m=m+4|0;e=e+1|0}}}else{b[t>>1]=i;m=n;e=0;while(1){if((e|0)>=(k|0)){l=i;break c}if((c[m>>2]|0)==(l|0))c[m>>2]=i;m=m+4|0;e=e+1|0}}while(0);p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;p=j+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u}else{b[t>>1]=0;a[s>>0]=0}while(0);o=o+1|0;r=r+1|0;s=s+1|0;q=q+1|0;t=t+2|0}o=o+2|0;l=r+2|0;u=u+1|0;q=k;m=s+2|0;e=t+4|0}d:do if((l|0)==54){Ue(0,3,19708,y);k=-1}else if((l|0)==59){i=j+12|0;k=1;e=1;while(1){if((e|0)>(q|0))break;l=c[n>>2]|0;if((l|0)==(e|0))m=k+1|0;else{m=k;k=c[j+1179664+(l+-1<<2)>>2]|0}c[n>>2]=k;k=m;e=e+1|0;n=n+4|0}o=j+8|0;l=k+-1|0;c[o>>2]=l;if(!l)k=0;else{aP(i|0,0,l<<2|0)|0;aP(j+655376|0,0,l<<4|0)|0;k=0;while(1){if((k|0)>=(l|0))break;y=k<<2;c[j+131084+(y<<2)>>2]=f;c[j+131084+((y|1)<<2)>>2]=0;c[j+131084+((y|2)<<2)>>2]=h;c[j+131084+((y|3)<<2)>>2]=0;k=k+1|0}e=0;while(1){if((e|0)>=(q|0))break;m=(c[j+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(n<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;g[l>>3]=+g[l>>3]+ +(c[j+1310736+(n+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(n+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(n+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(n+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(n+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(n+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;e=e+1|0}l=c[o>>2]|0;k=0;while(1){if((k|0)>=(l|0)){k=0;break d}A=+(c[j+12+(k<<2)>>2]|0);h=k<<1;f=j+655376+(h<<3)|0;g[f>>3]=+g[f>>3]/A;h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]/A;k=k+1|0}}}while(0);zb=z;return k|0}function pc(a){a=a|0;return qc(a+8|0)|0}function qc(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=FO(4)|0;if(!b){Ue(0,3,41858,d);Ea(1)}a=Ee(a)|0;c[b>>2]=a;if(!a){GO(b);b=0}zb=d;return b|0}function rc(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)a=-1;else{Fe(b)|0;GO(c[a>>2]|0);c[a>>2]=0;a=0}return a|0}function sc(a){a=a|0;var b=0,d=0,e=0;d=zb;zb=zb+16|0;b=FO(7062432)|0;if(!b){Ue(0,3,41858,d);Ea(1)}c[b>>2]=0;c[b+4834148>>2]=0;c[b+7062408>>2]=0;c[b+4>>2]=-1;c[b+8>>2]=0;c[b+12>>2]=1;c[b+16>>2]=100;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=2;g[b+7062416>>3]=.5;c[b+7062424>>2]=3;c[b+32>>2]=a;e=c[a>>2]|0;c[b+36>>2]=e;a=c[a+4>>2]|0;c[b+40>>2]=a;c[b+44>>2]=0;c[b+15408>>2]=0;c[b+4834152>>2]=0;c[b+4818296>>2]=0;a=FO(B(e<<1,a)|0)|0;c[b+4834144>>2]=a;if(!a){Ue(0,3,41858,d+8|0);Ea(1)}else{c[b+7062384>>2]=0;tc(b,0)|0;c[b+7062388>>2]=-1;uc(b,0)|0;vc(b,7)|0;zb=d;return b|0}return 0}function tc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;do if(a)if((c[a>>2]|0)!=(b|0)){c[a>>2]=b;if(!b){d=a+4834148|0;GO(c[d>>2]|0);c[d>>2]=0;d=0;break}b=FO(B(c[a+40>>2]|0,c[a+36>>2]|0)|0)|0;c[a+4834148>>2]=b;if(!b){Ue(0,3,41858,e);Ea(1)}else d=0}else d=0;else d=-1;while(0);zb=f;return d|0}function uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i+8|0;f=i;if(a){g=a+7062388|0;if((c[g>>2]|0)!=(b|0)){d=a+7062408|0;e=c[d>>2]|0;if(e|0){Zc(e);c[d>>2]=0}switch(b|0){case 3:case 2:case 1:{f=Yc(c[a+36>>2]|0,c[a+40>>2]|0)|0;c[d>>2]=f;break}case 4:{c[a+7062404>>2]=1;c[a+7062400>>2]=1;b=4;break}case 0:break;default:{Ue(0,3,19740,f);b=0}}c[g>>2]=b;if((c[a>>2]|0)==1){c[h>>2]=c[16+(b<<2)>>2];Ue(0,3,19814,h);b=0}else b=0}else b=0}else b=-1;zb=i;return b|0}function vc(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+7062392>>2]=b;c[a+7062396>>2]=0;a=0}return a|0}function wc(a){a=a|0;var b=0,d=0;if(!a)a=-1;else{b=a+7062408|0;d=c[b>>2]|0;if(d|0){Zc(d);c[b>>2]=0}GO(c[a+4834144>>2]|0);GO(c[a+4834148>>2]|0);GO(a);a=0}return a|0}function xc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a>>2];a=0}else a=-1;return a|0}function yc(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<2){c[a+12>>2]=b;a=0}else a=-1;return a|0}function zc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+12>>2];a=0}else a=-1;return a|0}function Ac(a,b){a=a|0;b=b|0;if((a|0)==0|b>>>0>255)a=-1;else{c[a+16>>2]=b;a=0}return a|0}function Bc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+16>>2];a=0}else a=-1;return a|0}function Cc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+7062388>>2];a=0}else a=-1;return a|0}function Dc(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<2){c[a+20>>2]=b;a=0}else a=-1;return a|0}function Ec(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[b>>2]=c[a+20>>2];a=0}return a|0}function Fc(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<5){c[a+24>>2]=b;a=0}else a=-1;return a|0}function Gc(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+7062424>>2]=b;a=0}return a|0}function Hc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+7062424>>2];a=0}else a=-1;return a|0}function Ic(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[b>>2]=c[a+24>>2];a=0}return a|0}function Jc(a,b){a=a|0;b=+b;if((a|0)!=0?!(b<=0.0|b>=1.0):0){g[a+7062416>>3]=b;a=0}else a=-1;return a|0}function Kc(a,b){a=a|0;b=b|0;if(!a)a=-1;else{g[b>>3]=+g[a+7062416>>3];a=0}return a|0}function Lc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;a:do if(a){d=a+4|0;if((c[d>>2]|0)!=(b|0)){if(b>>>0>=15){c[e>>2]=b;Ue(0,3,19909,e);a=-1;break}c[d>>2]=b;d=zd(b)|0;c[a+8>>2]=d;a=a+24|0;d=c[a>>2]|0;if(!(28704>>>(b&32767)&1))switch(d|0){case 1:{c[a>>2]=4;a=0;break a}case 4:{c[a>>2]=3;a=0;break a}default:{a=0;break a}}else switch(d|0){case 0:{c[a>>2]=1;a=0;break a}case 3:{c[a>>2]=4;a=0;break a}default:{a=0;break a}}}else a=0}else a=-1;while(0);zb=f;return a|0}function Mc(a,b){a=a|0;b=b|0;var e=0,f=0,h=0,i=0,j=0,k=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,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.0,O=0,P=0,Q=0.0,R=0.0;P=zb;zb=zb+64|0;L=P+32|0;F=P+24|0;y=P;J=P+52|0;C=P+40|0;a:do if((a|0)!=0&(b|0)!=0){O=a+44|0;c[O>>2]=0;K=a+7062388|0;e=c[K>>2]|0;b:do if((e|0)==4){H=a+7062396|0;e=c[H>>2]|0;do if((e|0)>0)c[H>>2]=e+-1;else{B=a+16|0;D=c[B>>2]|0;E=a+7062400|0;z=(c[E>>2]|0)+D|0;z=(z|0)<255?z:255;c[J>>2]=z;G=a+7062404|0;A=D-(c[G>>2]|0)|0;A=(A|0)>0?A:0;c[J+4>>2]=A;c[J+8>>2]=D;f=b+12|0;h=a+36|0;i=a+40|0;j=a+12|0;k=a+20|0;n=a+4834144|0;p=a+15416|0;q=a+15408|0;r=a+4|0;s=a+7062384|0;t=a+24|0;u=a+32|0;v=a+7062416|0;w=a+48|0;x=a+7062424|0;e=0;while(1){if(e>>>0>=3)break;if((ed(c[f>>2]|0,c[h>>2]|0,c[i>>2]|0,c[a>>2]|0,c[j>>2]|0,c[J+(e<<2)>>2]|0,c[k>>2]|0,n,0)|0)<0){M=29;break}if((Oc(c[h>>2]|0,c[i>>2]|0,n,c[k>>2]|0,1e6,70,1.0,p,q)|0)<0){M=29;break}if((Tc(c[b>>2]|0,c[h>>2]|0,c[i>>2]|0,c[r>>2]|0,p,c[q>>2]|0,c[s>>2]|0,c[k>>2]|0,c[t>>2]|0,(c[u>>2]|0)+184|0,+g[v>>3],w,O,c[x>>2]|0)|0)<0){M=29;break}c[C+(e<<2)>>2]=c[O>>2];e=e+1|0}if((M|0)==29){e=-1;break a}if((c[a>>2]|0)==1){x=c[C+4>>2]|0;h=c[C+8>>2]|0;f=c[C>>2]|0;c[y>>2]=A;c[y+4>>2]=x;c[y+8>>2]=D;c[y+12>>2]=h;c[y+16>>2]=z;c[y+20>>2]=f;Ue(0,3,19958,y)}else{f=c[C>>2]|0;h=c[C+8>>2]|0}e=c[C+4>>2]|0;if((f|0)>(h|0)|(e|0)>(h|0)){f=(f|0)<(e|0)?A:z;c[B>>2]=f;e=f-D|0;if((e|0)>0){c[E>>2]=e;e=1}else{c[E>>2]=1;e=0-e|0}c[G>>2]=e;if((c[a>>2]|0)==1){c[F>>2]=f;Ue(0,3,20034,F);c[H>>2]=c[a+7062392>>2];break}else{c[H>>2]=c[a+7062392>>2];break}}e=c[E>>2]|0;f=c[G>>2]|0;do if((e|0)>=(f|0))if((e|0)>(f|0)){c[G>>2]=f+1;break}else{e=e+1|0;c[E>>2]=e;c[G>>2]=f+1;break}else{e=e+1|0;c[E>>2]=e}while(0);if((e+D|0)>254){c[E>>2]=1;e=1}if((D|0)<=(e|0))c[G>>2]=1;c[H>>2]=c[a+7062392>>2];break b}while(0);h=c[K>>2]|0;M=33}else{h=e;M=33}while(0);if((M|0)==33){c:do switch(h|0){case 3:{f=a+7062408|0;h=b+12|0;e=dd(c[f>>2]|0,c[h>>2]|0,9,-7)|0;if((e|0)<0)break a;e=c[f>>2]|0;k=a+4834144|0;e=ed(c[h>>2]|0,c[e+4>>2]|0,c[e+8>>2]|0,c[a>>2]|0,c[a+12>>2]|0,0,0,k,c[e>>2]|0)|0;if((e|0)<0)break a;e=a+36|0;f=a+40|0;h=a+20|0;break}case 2:case 1:{i=a+7062396|0;e=c[i>>2]|0;if((e|0)>0){c[i>>2]=e+-1;M=48;break c}e=c[a+7062408>>2]|0;f=c[b+12>>2]|0;if((h|0)==1)e=bd(e,f,J)|0;else e=cd(e,f,J)|0;if((e|0)<0)break a;e=a+16|0;if((c[a>>2]|0)==1?(I=d[J>>0]|0,(c[e>>2]|0)!=(I|0)):0){c[L>>2]=(c[K>>2]|0)==1?20086:20093;c[L+4>>2]=I;Ue(0,3,20098,L)}c[e>>2]=d[J>>0];c[i>>2]=c[a+7062392>>2];M=48;break}default:M=48}while(0);if((M|0)==48){e=a+36|0;f=a+40|0;h=a+20|0;k=a+4834144|0;if((ed(c[b+12>>2]|0,c[e>>2]|0,c[f>>2]|0,c[a>>2]|0,c[a+12>>2]|0,c[a+16>>2]|0,c[h>>2]|0,k,0)|0)<0){e=-1;break}}i=a+15416|0;j=a+15408|0;if((Oc(c[e>>2]|0,c[f>>2]|0,k,c[h>>2]|0,1e6,70,1.0,i,j)|0)<0){e=-1;break}if((Tc(c[b>>2]|0,c[e>>2]|0,c[f>>2]|0,c[a+4>>2]|0,i,c[j>>2]|0,c[a+7062384>>2]|0,c[h>>2]|0,c[a+24>>2]|0,(c[a+32>>2]|0)+184|0,+g[a+7062416>>3],a+48|0,O,c[a+7062424>>2]|0)|0)<0){e=-1;break}}s=a+28|0;if((c[s>>2]|0)==1){Nc(a);e=0;break}t=a+4818296|0;q=c[t>>2]|0;r=a+24|0;p=0;while(1){if((p|0)>=(q|0))break;h=c[O>>2]|0;i=a+4818304+(p*264|0)|0;j=a+4818304+(p*264|0)+56|0;k=a+4818304+(p*264|0)+64|0;f=0;n=-1;l=.5;while(1){if((f|0)>=(h|0))break;m=+(c[a+48+(f<<8)>>2]|0);o=+(c[i>>2]|0)/m;if(!(o<.7|o>1.43)?(o=+g[a+48+(f<<8)+56>>3]-+g[j>>3],N=+g[a+48+(f<<8)+64>>3]-+g[k>>3],N=(o*o+N*N)/m,N-1){k=c[r>>2]|0;switch(k|0){case 2:case 1:case 0:break;case 4:case 3:{f=a+48+(n<<8)+40|0;m=+g[a+4818304+(p*264|0)+40>>3];if(!(+g[f>>3]>3];if(!(+g[e>>3]>3]}g[f>>3]=m;c[a+48+(n<<8)+8>>2]=c[a+4818304+(p*264|0)+8>>2];g[e>>3]=l;c[a+48+(n<<8)+12>>2]=c[a+4818304+(p*264|0)+12>>2];f=0;h=-1;m=1.0e8;while(1){if((f|0)==4)break;e=0;l=0.0;while(1){if((e|0)==4)break;b=e+f&3;Q=+g[a+4818304+(p*264|0)+168+(e<<4)>>3]-+g[a+48+(n<<8)+168+(b<<4)>>3];o=+g[a+4818304+(p*264|0)+168+(e<<4)+8>>3]-+g[a+48+(n<<8)+168+(b<<4)+8>>3];e=e+1|0;l=l+(Q*Q+o*o)}b=l>2]=(b+(c[a+4818304+(p*264|0)+20>>2]|0)|0)%4|0;c[a+48+(n<<8)+24>>2]=(b+(c[a+4818304+(p*264|0)+24>>2]|0)|0)%4|0;break d}default:{e=-1;break a}}e=a+48+(n<<8)+32|0;o=+g[a+4818304+(p*264|0)+32>>3];if(+g[e>>3]>3]=o;i=c[a+4818304+(p*264|0)+4>>2]|0;c[a+48+(n<<8)+4>>2]=i;j=a+4818304+(p*264|0)+16|0;f=-1;l=1.0e8;h=0;while(1){if((h|0)==4)break;e=0;m=0.0;while(1){if((e|0)==4)break;b=e+h&3;R=+g[a+4818304+(p*264|0)+168+(e<<4)>>3]-+g[a+48+(n<<8)+168+(b<<4)>>3];Q=+g[a+4818304+(p*264|0)+168+(e<<4)+8>>3]-+g[a+48+(n<<8)+168+(b<<4)+8>>3];e=e+1|0;m=m+(R*R+Q*Q)}if(m>2]|0)|0)%4|0;l=m}else e=f;f=e;h=h+1|0}c[a+48+(n<<8)+16>>2]=f;if(k>>>0<2){c[a+48+(n<<8)+8>>2]=i;g[a+48+(n<<8)+40>>3]=o;c[a+48+(n<<8)+20>>2]=f;break}else{c[a+48+(n<<8)+12>>2]=i;g[a+48+(n<<8)+48>>3]=o;c[a+48+(n<<8)+24>>2]=f;break}}}while(0);p=p+1|0}Nc(a);f=0;e=0;while(1){if((f|0)>=(c[t>>2]|0))break;M=a+4818304+(f*264|0)+256|0;b=c[M>>2]|0;c[M>>2]=b+1;if((b|0)<3){if((f|0)!=(e|0))_O(a+4818304+(e*264|0)|0,a+4818304+(f*264|0)|0,264)|0;e=e+1|0}f=f+1|0}c[t>>2]=e;f=c[O>>2]|0;k=0;while(1){if((k|0)>=(f|0))break;j=a+48+(k<<8)|0;h=c[a+48+(k<<8)+4>>2]|0;if((h|0)>=0){i=0;while(1){if((i|0)>=(e|0))break;if((c[a+4818304+(i*264|0)+4>>2]|0)==(h|0))break;i=i+1|0}if((i|0)==(e|0)){if((e|0)==60)break;e=e+1|0;c[t>>2]=e}_O(a+4818304+(i*264|0)|0,j|0,256)|0;c[a+4818304+(i*264|0)+256>>2]=1}k=k+1|0}if((c[s>>2]|0)==2)e=0;else{n=0;while(1){if((n|0)>=(e|0)){e=0;break a}i=a+4818304+(n*264|0)|0;j=a+4818304+(n*264|0)+56|0;k=a+4818304+(n*264|0)+64|0;h=0;while(1){if((h|0)>=(f|0))break;l=+(c[a+48+(h<<8)>>2]|0);R=+(c[i>>2]|0)/l;if(!(R<.7|R>1.43)?(Q=+g[a+48+(h<<8)+56>>3]-+g[j>>3],R=+g[a+48+(h<<8)+64>>3]-+g[k>>3],(Q*Q+R*R)/l<.5):0)break;h=h+1|0}if((h|0)==(f|0)){_O(a+48+(f<<8)|0,a+4818304+(n*264|0)|0,256)|0;f=f+1|0;c[O>>2]=f;e=c[t>>2]|0}n=n+1|0}}}else e=-1;while(0);zb=P;return e|0}function Nc(a){a=a|0;var b=0,d=0,e=0,f=0;a:do switch(c[a+24>>2]|0){case 1:case 0:{d=c[a+44>>2]|0;b=0;while(1){if((b|0)>=(d|0))break a;e=a+48+(b<<8)+4|0;if((c[e>>2]|0)>-1?+g[a+48+(b<<8)+32>>3]<.5:0){c[a+48+(b<<8)+8>>2]=-1;c[e>>2]=-1;c[a+48+(b<<8)+236>>2]=6}b=b+1|0}}case 2:{d=c[a+44>>2]|0;b=0;while(1){if((b|0)>=(d|0))break a;e=a+48+(b<<8)+4|0;if((c[e>>2]|0)>-1?+g[a+48+(b<<8)+32>>3]<.5:0){c[a+48+(b<<8)+12>>2]=-1;c[e>>2]=-1;c[a+48+(b<<8)+236>>2]=6}b=b+1|0}}default:{f=c[a+44>>2]|0;e=0;while(1){if((e|0)>=(f|0))break a;b=a+48+(e<<8)+8|0;if((c[b>>2]|0)>-1?+g[a+48+(e<<8)+40>>3]<.5:0){c[b>>2]=-1;b=0}else b=1;d=a+48+(e<<8)+12|0;if(((c[d>>2]|0)>-1?+g[a+48+(e<<8)+48>>3]<.5:0)?(c[d>>2]=-1,(b|0)==0):0)c[a+48+(e<<8)+236>>2]=6;e=e+1|0}}}while(0);return}function Oc(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;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;r=(e|0)==1;if(r){a=(a|0)/2|0;b=(b|0)/2|0;f=(f|0)/4|0;h=(h|0)/4|0}c[k>>2]=0;n=d+8|0;o=a+-2|0;b=b+-2|0;l=d+1179664|0;e=0;while(1){if((e|0)>=(c[n>>2]|0)){q=5;break}m=d+12+(e<<2)|0;s=c[m>>2]|0;if(((((((!((s|0)<(h|0)|(s|0)>(f|0))?(p=d+131084+(e<<4)|0,(c[p>>2]|0)!=1):0)?(c[d+131084+(e<<4)+4>>2]|0)!=(o|0):0)?(c[d+131084+(e<<4)+8>>2]|0)!=1:0)?(c[d+131084+(e<<4)+12>>2]|0)!=(b|0):0)?(Pc(c[d>>2]|0,a,0,l,e+1|0,p,j+((c[k>>2]|0)*80048|0)|0)|0)>=0:0)?(Qc(c[m>>2]|0,j+((c[k>>2]|0)*80048|0)|0,i)|0)>=0:0)?(c[j+((c[k>>2]|0)*80048|0)>>2]=c[m>>2],s=c[k>>2]|0,g[j+(s*80048|0)+8>>3]=+g[d+655376+(e<<4)>>3],g[j+(s*80048|0)+16>>3]=+g[d+655376+(e<<4)+8>>3],s=s+1|0,c[k>>2]=s,(s|0)==60):0){e=60;break}e=e+1|0}if((q|0)==5)e=c[k>>2]|0;a=0;while(1){if((a|0)>=(e|0))break;l=a+1|0;m=j+(a*80048|0)+8|0;n=j+(a*80048|0)+16|0;h=j+(a*80048|0)|0;f=l;while(1){if((f|0)>=(e|0))break;t=+g[m>>3]-+g[j+(f*80048|0)+8>>3];i=+g[n>>3]-+g[j+(f*80048|0)+16>>3];i=t*t+i*i;e=c[h>>2]|0;a=j+(f*80048|0)|0;b=c[a>>2]|0;if((e|0)>(b|0)){if(i<+((e|0)/4|0|0))c[a>>2]=0}else if(i<+((b|0)/4|0|0))c[h>>2]=0;f=f+1|0;e=c[k>>2]|0}a=l}f=0;while(1){if((f|0)>=(e|0))break;if(!(c[j+(f*80048|0)>>2]|0)){b=f;while(1){a=b+1|0;if((a|0)>=(e|0))break;_O(j+(b*80048|0)|0,j+(a*80048|0)|0,80048)|0;b=a;e=c[k>>2]|0}e=e+-1|0;c[k>>2]=e}f=f+1|0}a:do if(r){b=0;while(1){if((b|0)>=(e|0))break a;c[j>>2]=c[j>>2]<<2;a=j+8|0;g[a>>3]=+g[a>>3]*2.0;a=j+16|0;g[a>>3]=+g[a>>3]*2.0;a=c[j+24>>2]|0;e=0;while(1){if((e|0)>=(a|0))break;s=j+28+(e<<2)|0;c[s>>2]=c[s>>2]<<1;s=j+40028+(e<<2)|0;c[s>>2]=c[s>>2]<<1;e=e+1|0}j=j+80048|0;b=b+1|0;e=c[k>>2]|0}}while(0);return 0}function Pc(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=zb;zb=zb+80032|0;n=w+80016|0;m=w+80008|0;j=w+8e4|0;u=w+4e4|0;v=w;s=c[h+8>>2]|0;t=B(s,d)|0;e=c[h>>2]|0;h=c[h+4>>2]|0;r=e;e=a+(t+e<<1)|0;while(1){if((r|0)>(h|0)){t=7;break}t=b[e>>1]|0;if(t<<16>>16>0?(c[f+((t<<16>>16)+-1<<2)>>2]|0)==(g|0):0){t=6;break}r=r+1|0;e=e+2|0}do if((t|0)==6)if((r|0)!=-1){o=i+24|0;c[o>>2]=1;p=i+28|0;c[p>>2]=r;q=i+40028|0;c[q>>2]=s;g=5;e=s;l=r;f=1;while(1){k=a+((B(e,d)|0)+l<<1)|0;j=0;e=g+5|0;while(1){g=(e|0)%8|0;if(j>>>0>=8){t=13;break}e=c[48+(g<<2)>>2]|0;x=B(e,d)|0;h=c[80+(g<<2)>>2]|0;if((b[k+(x+h<<1)>>1]|0)>0)break;j=j+1|0;e=g+1|0}if((t|0)==13){t=0;if((j|0)==8){t=15;break}h=c[80+(g<<2)>>2]|0;e=c[48+(g<<2)>>2]|0}c[i+28+(f<<2)>>2]=h+l;j=c[o>>2]|0;c[i+40028+(j<<2)>>2]=e+(c[i+40028+(j+-1<<2)>>2]|0);j=c[o>>2]|0;h=i+28+(j<<2)|0;if((c[h>>2]|0)==(r|0)?(c[i+40028+(j<<2)>>2]|0)==(s|0):0){t=18;break}f=j+1|0;c[o>>2]=f;if((f|0)==9999){t=21;break}e=c[i+40028+(j<<2)>>2]|0;l=c[h>>2]|0}if((t|0)==15){Ue(0,3,20152,m);e=-1;break}else if((t|0)==18){f=0;e=0;h=1;while(1){if((h|0)>=(j|0))break;x=(c[i+28+(h<<2)>>2]|0)-r|0;x=B(x,x)|0;d=(c[i+40028+(h<<2)>>2]|0)-s|0;x=(B(d,d)|0)+x|0;d=(x|0)>(e|0);f=d?h:f;e=d?x:e;h=h+1|0}e=0;while(1){if((e|0)>=(f|0))break;c[u+(e<<2)>>2]=c[i+28+(e<<2)>>2];c[v+(e<<2)>>2]=c[i+40028+(e<<2)>>2];e=e+1|0}h=f;e=j;while(1){if((h|0)>=(e|0))break;e=h-f|0;c[i+28+(e<<2)>>2]=c[i+28+(h<<2)>>2];c[i+40028+(e<<2)>>2]=c[i+40028+(h<<2)>>2];h=h+1|0;e=c[o>>2]|0}e=0;while(1){if((e|0)>=(f|0))break;x=e-f|0;c[i+28+((c[o>>2]|0)+x<<2)>>2]=c[u+(e<<2)>>2];c[i+40028+((c[o>>2]|0)+x<<2)>>2]=c[v+(e<<2)>>2];e=e+1|0}c[i+28+(c[o>>2]<<2)>>2]=c[p>>2];c[i+40028+(c[o>>2]<<2)>>2]=c[q>>2];c[o>>2]=(c[o>>2]|0)+1;e=0;break}else if((t|0)==21){Ue(0,3,20159,n);e=-1;break}}else t=7;while(0);if((t|0)==7){Ue(0,3,20145,j);e=-1}zb=w;return e|0}function Qc(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;r=zb;zb=zb+96|0;o=r+48|0;k=r+92|0;p=r;l=r+88|0;m=b+28|0;j=c[m>>2]|0;n=b+40028|0;h=c[n>>2]|0;q=b+24|0;i=(c[q>>2]|0)+-1|0;f=1;g=0;e=0;while(1){if((f|0)>=(i|0))break;t=(c[b+28+(f<<2)>>2]|0)-j|0;t=B(t,t)|0;u=(c[b+40028+(f<<2)>>2]|0)-h|0;t=(B(u,u)|0)+t|0;u=(t|0)>(g|0);s=u?f:e;f=f+1|0;g=u?t:g;e=s}d=+(a|0)/.75*.01*d;c[k>>2]=0;c[l>>2]=0;a:do if((Rc(m,n,0,e,d,o,k)|0)>=0?(Rc(m,n,e,(c[q>>2]|0)+-1|0,d,p,l)|0)>=0:0){f=c[k>>2]|0;g=c[l>>2]|0;do if((f|0)==1&(g|0)==1){f=c[p>>2]|0;g=c[o>>2]|0}else{if((f|0)>1&(g|0)==0){f=(e|0)/2|0;c[l>>2]=0;c[k>>2]=0;if((Rc(m,n,0,f,d,o,k)|0)<0){e=-1;break a}if((Rc(m,n,f,e,d,p,l)|0)<0){e=-1;break a}if(!((c[k>>2]|0)==1&(c[l>>2]|0)==1)){e=-1;break a}f=e;g=c[o>>2]|0;e=c[p>>2]|0;break}if(!((f|0)==0&(g|0)>1)){e=-1;break a}f=(e+-1+(c[q>>2]|0)|0)/2|0;c[l>>2]=0;c[k>>2]=0;if((Rc(m,n,e,f,d,o,k)|0)<0){e=-1;break a}if((Rc(m,n,f,(c[q>>2]|0)+-1|0,d,p,l)|0)<0){e=-1;break a}if(!((c[k>>2]|0)==1&(c[l>>2]|0)==1)){e=-1;break a}f=c[p>>2]|0;g=e;e=c[o>>2]|0}while(0);c[b+80028>>2]=0;c[b+80032>>2]=g;c[b+80036>>2]=e;c[b+80040>>2]=f;c[b+80044>>2]=(c[q>>2]|0)+-1;e=0}else e=-1;while(0);zb=r;return e|0}function Rc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=g|0;h=h|0;var i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0.0;j=c[b+(e<<2)>>2]|0;q=c[b+(d<<2)>>2]|0;l=+(j-q|0);i=c[a+(d<<2)>>2]|0;r=c[a+(e<<2)>>2]|0;m=+(i-r|0);n=+((B(r,q)|0)-(B(i,j)|0)|0);j=d+1|0;i=j;k=0.0;while(1){if((j|0)>=(e|0))break;s=l*+(c[a+(j<<2)>>2]|0)+m*+(c[b+(j<<2)>>2]|0)+n;s=s*s;r=s>k;i=r?j:i;j=j+1|0;k=r?s:k}if(k/(l*l+m*m)>f)if(((Rc(a,b,d,i,f,g,h)|0)>=0?(o=c[h>>2]|0,(o|0)<=5):0)?(c[g+(o<<2)>>2]=i,c[h>>2]=(c[h>>2]|0)+1,(Rc(a,b,i,e,f,g,h)|0)>=0):0)p=8;else i=-1;else p=8;if((p|0)==8)i=0;return i|0}function Sc(a,b,d,e,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=zb;zb=zb+16|0;r=y+4|0;s=y;x=qe(2)|0;u=qe(2)|0;v=Dd(2,2)|0;k=0;a:while(1){if(k>>>0>=4){q=10;break}l=k+1|0;q=c[e+(l<<2)>>2]|0;n=c[e+(k<<2)>>2]|0;p=+(q+1-n|0)*.05+.5;n=~~(p+ +(n|0));q=~~(+(q|0)-p)-n|0;w=Dd(q+1|0,2)|0;d=0;while(1){if((d|0)>(q|0))break;z=d+n|0;if((pe(h,+(c[a+(z<<2)>>2]|0),+(c[b+(z<<2)>>2]|0),r,s)|0)<0){q=6;break a}A=c[w>>2]|0;z=d<<1;g[A+(z<<3)>>3]=+f[r>>2];g[A+((z|1)<<3)>>3]=+f[s>>2];d=d+1|0}if((Pd(w,v,x,u)|0)<0){q=14;break}A=c[v>>2]|0;o=+g[A+8>>3];g[i+(k*24|0)>>3]=o;p=-+g[A>>3];g[i+(k*24|0)+8>>3]=p;A=c[u>>2]|0;g[i+(k*24|0)+16>>3]=-(o*+g[A>>3]+ +g[A+8>>3]*p);Ld(w)|0;k=l}b:do if((q|0)==6)q=14;else if((q|0)==10){Ld(v)|0;re(u)|0;re(x)|0;d=0;while(1){if(d>>>0>=4){d=0;break b}k=d+3&3;l=i+(k*24|0)|0;m=+g[i+(d*24|0)+8>>3];n=i+(d*24|0)|0;o=+g[i+(k*24|0)+8>>3];p=+g[l>>3]*m-+g[n>>3]*o;if(+t(+p)<.0001){d=-1;break b}A=i+(d*24|0)+16|0;z=i+(k*24|0)+16|0;g[j+(d<<4)>>3]=(o*+g[A>>3]-m*+g[z>>3])/p;g[j+(d<<4)+8>>3]=(+g[n>>3]*+g[z>>3]-+g[l>>3]*+g[A>>3])/p;d=d+1|0}}while(0);if((q|0)==14){Ld(w)|0;Ld(v)|0;re(u)|0;re(x)|0;d=-1}zb=y;return d|0}function Tc(a,b,d,e,h,i,j,k,l,m,n,o,p,q){a=a|0;b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=+n;o=o|0;p=p|0;q=q|0;var 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;G=zb;zb=zb+16|0;A=G+4|0;B=G;C=l>>>0<2;D=(l|0)==2;z=0;r=0;while(1){if((z|0)>=(i|0))break;c[o+(r<<8)>>2]=c[h+(z*80048|0)>>2];if((pe(m,+g[h+(z*80048|0)+8>>3],+g[h+(z*80048|0)+16>>3],A,B)|0)>=0?(g[o+(r<<8)+56>>3]=+f[A>>2],g[o+(r<<8)+64>>3]=+f[B>>2],E=o+(r<<8)+168|0,(Sc(h+(z*80048|0)+28|0,h+(z*80048|0)+40028|0,c[h+(z*80048|0)+24>>2]|0,h+(z*80048|0)+80028|0,m,o+(r<<8)+72|0,E)|0)>=0):0){v=o+(r<<8)+8|0;s=o+(r<<8)+20|0;t=o+(r<<8)+40|0;w=o+(r<<8)+12|0;y=o+(r<<8)+24|0;x=o+(r<<8)+48|0;u=od(j,k,l,a,b,d,e,m,E,n,v,s,t,w,y,x,q,o+(r<<8)+240|0,o+(r<<8)+248|0)|0;switch(u|0){case 0:{F=12;break}case -1:{u=2;F=12;break}case -2:{u=3;F=12;break}case -3:{u=4;F=12;break}case -4:{u=5;F=12;break}case -5:{u=9;F=12;break}case -6:{u=1;F=12;break}default:{}}if((F|0)==12){F=0;c[o+(r<<8)+236>>2]=u}if(!C){if(D){c[o+(r<<8)+4>>2]=c[w>>2];t=x;s=y;F=17}}else{c[o+(r<<8)+4>>2]=c[v>>2];F=17}if((F|0)==17){F=0;c[o+(r<<8)+16>>2]=c[s>>2];g[o+(r<<8)+32>>3]=+g[t>>3]}r=r+1|0}z=z+1|0}c[p>>2]=r;zb=G;return 0}function Uc(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0;m=zb;zb=zb+288|0;h=m+192|0;i=m+96|0;j=m+264|0;k=m;l=m+256|0;do if((c[b+12>>2]|0)>=0)if((c[b+8>>2]|0)<0){f=b+24|0;break}else{f=b+16|0;break}else f=b+20|0;while(0);f=c[f>>2]|0;o=(4-f|0)%4|0;g[h>>3]=+g[b+168+(o<<4)>>3];g[h+8>>3]=+g[b+168+(o<<4)+8>>3];o=(5-f|0)%4|0;g[h+16>>3]=+g[b+168+(o<<4)>>3];g[h+24>>3]=+g[b+168+(o<<4)+8>>3];o=(6-f|0)%4|0;g[h+32>>3]=+g[b+168+(o<<4)>>3];g[h+40>>3]=+g[b+168+(o<<4)+8>>3];f=(7-f|0)%4|0;g[h+48>>3]=+g[b+168+(f<<4)>>3];g[h+56>>3]=+g[b+168+(f<<4)+8>>3];n=d*-.5;g[i>>3]=n;d=d*.5;g[i+8>>3]=d;g[i+16>>3]=0.0;g[i+24>>3]=d;g[i+32>>3]=d;g[i+40>>3]=0.0;g[i+48>>3]=d;g[i+56>>3]=n;g[i+64>>3]=0.0;g[i+72>>3]=n;g[i+80>>3]=n;g[i+88>>3]=0.0;c[j>>2]=h;c[j+4>>2]=i;c[j+8>>2]=4;if((Me(c[a>>2]|0,h,i,4,k)|0)<0)d=1.0e8;else{o=(He(c[a>>2]|0,j,k,e,l)|0)<0;d=o?1.0e8:+g[l>>3]}zb=m;return +d}function Vc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0;m=zb;zb=zb+192|0;i=m+96|0;j=m;k=m+168|0;l=m+160|0;do if((c[b+12>>2]|0)>=0)if((c[b+8>>2]|0)<0){h=b+24|0;break}else{h=b+16|0;break}else h=b+20|0;while(0);h=c[h>>2]|0;o=(4-h|0)%4|0;g[i>>3]=+g[b+168+(o<<4)>>3];g[i+8>>3]=+g[b+168+(o<<4)+8>>3];o=(5-h|0)%4|0;g[i+16>>3]=+g[b+168+(o<<4)>>3];g[i+24>>3]=+g[b+168+(o<<4)+8>>3];o=(6-h|0)%4|0;g[i+32>>3]=+g[b+168+(o<<4)>>3];g[i+40>>3]=+g[b+168+(o<<4)+8>>3];h=(7-h|0)%4|0;g[i+48>>3]=+g[b+168+(h<<4)>>3];g[i+56>>3]=+g[b+168+(h<<4)+8>>3];n=e*-.5;g[j>>3]=n;e=e*.5;g[j+8>>3]=e;g[j+16>>3]=0.0;g[j+24>>3]=e;g[j+32>>3]=e;g[j+40>>3]=0.0;g[j+48>>3]=e;g[j+56>>3]=n;g[j+64>>3]=0.0;g[j+72>>3]=n;g[j+80>>3]=n;g[j+88>>3]=0.0;c[k>>2]=i;c[k+4>>2]=j;c[k+8>>2]=4;k=(He(c[a>>2]|0,k,d,f,l)|0)<0;zb=m;return +(k?1.0e8:+g[l>>3])}function Wc(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,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+32|0;l=o+20|0;m=o;n=FO(f<<4)|0;c[l>>2]=n;if(!n){Ue(0,3,41858,o+8|0);Ea(1)}j=FO(f*24|0)|0;k=l+4|0;c[k>>2]=j;if(!j){Ue(0,3,41858,o+16|0);Ea(1)}i=0;while(1){if((i|0)>=(f|0))break;g[n+(i<<4)>>3]=+g[d+(i<<4)>>3];g[n+(i<<4)+8>>3]=+g[d+(i<<4)+8>>3];g[j+(i*24|0)>>3]=+g[e+(i*24|0)>>3];g[j+(i*24|0)+8>>3]=+g[e+(i*24|0)+8>>3];g[j+(i*24|0)+16>>3]=+g[e+(i*24|0)+16>>3];i=i+1|0}c[l+8>>2]=f;if((He(c[a>>2]|0,l,b,h,m)|0)<0)g[m>>3]=1.0e8;GO(c[l>>2]|0);GO(c[k>>2]|0);zb=o;return +(+g[m>>3])}function Xc(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,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+32|0;l=o+20|0;m=o;n=FO(f<<4)|0;c[l>>2]=n;if(!n){Ue(0,3,41858,o+8|0);Ea(1)}j=FO(f*24|0)|0;k=l+4|0;c[k>>2]=j;if(!j){Ue(0,3,41858,o+16|0);Ea(1)}i=0;while(1){if((i|0)>=(f|0))break;g[n+(i<<4)>>3]=+g[d+(i<<4)>>3];g[n+(i<<4)+8>>3]=+g[d+(i<<4)+8>>3];g[j+(i*24|0)>>3]=+g[e+(i*24|0)>>3];g[j+(i*24|0)+8>>3]=+g[e+(i*24|0)+8>>3];g[j+(i*24|0)+16>>3]=+g[e+(i*24|0)+16>>3];i=i+1|0}c[l+8>>2]=f;if((Je(c[a>>2]|0,l,b,h,m)|0)<0)g[m>>3]=1.0e8;GO(c[l>>2]|0);GO(c[k>>2]|0);zb=o;return +(+g[m>>3])}function Yc(a,b){a=a|0;b=b|0;var d=0;d=FO(2064)|0;if(d|0){c[d>>2]=0;c[d+4>>2]=a;c[d+8>>2]=b}return d|0}function Zc(a){a=a|0;if(a|0){GO(c[a>>2]|0);GO(a)}return}function _c(a,b){a=a|0;b=b|0;var e=0,f=0;a:do if((a|0)!=0&(b|0)!=0){aP(a+12|0,0,1024)|0;e=b+(B(c[a+8>>2]|0,c[a+4>>2]|0)|0)|0;while(1){if(b>>>0>=e>>>0){b=0;break a}f=a+12+((d[b>>0]|0)<<2)|0;c[f>>2]=(c[f>>2]|0)+1;b=b+1|0}}else b=-1;while(0);return b|0}function $c(a,b){a=a|0;b=b|0;var d=0;b=_c(a,b)|0;if((b|0)>=0){b=0;d=0;do{b=(c[a+12+(d<<2)>>2]|0)+b|0;c[a+1036+(d<<2)>>2]=b;d=d+1|0}while((d|0)!=256);b=0}return b|0}function ad(b,d,e,f){b=b|0;d=d|0;e=+e;f=f|0;var g=0,h=0,i=0,j=0;if(!(e<0.0|e>1.0)){d=$c(b,d)|0;if((d|0)>=0){i=~~(+(B(c[b+8>>2]|0,c[b+4>>2]|0)|0)*e)>>>0;d=0;while(1){j=d&255;g=c[b+1036+(j<<2)>>2]|0;if(g>>>0>>0)d=d+1<<24>>24;else break}while(1){h=d+1<<24>>24;if((g|0)!=(i|0))break;d=h;g=c[b+1036+((h&255)<<2)>>2]|0}a[f>>0]=((d&255)+j|0)>>>1;d=0}}else d=-1;return d|0}function bd(a,b,c){a=a|0;b=b|0;c=c|0;return ad(a,b,.5,c)|0}function cd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0.0;d=_c(b,d)|0;if((d|0)>=0){m=0.0;d=1;do{m=m+ +((B(c[b+12+(d<<2)>>2]|0,d)|0)>>>0);d=d+1|0}while((d|0)!=256);k=+(B(c[b+8>>2]|0,c[b+4>>2]|0)|0);d=0;h=0.0;j=0.0;g=0.0;l=0;while(1){f=c[b+12+(l<<2)>>2]|0;j=j+ +(f>>>0);if(j!=0.0){i=k-j;if(i==0.0)break;g=g+ +((B(f,l)|0)>>>0);o=g/j-(m-g)/i;i=o*(j*i*o);n=i>h;f=l&255;d=n?f:d;h=n?i:h}else f=l&255;if(f<<24>>24==-1)break;else l=l+1|0}a[e>>0]=d;d=0}return d|0}function dd(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;h=_c(b,e)|0;a:do if((h|0)>=0){if(!(c[b>>2]|0)){h=b+4|0;i=b+8|0;s=FO(B(c[i>>2]|0,c[h>>2]|0)|0)|0;c[b>>2]=s;if(!s){h=-1;break}else{s=h;r=i}}else{s=b+4|0;r=b+8|0}p=f>>1;q=0-p|0;o=0;while(1){h=c[r>>2]|0;if((o|0)>=(h|0))break;l=0;while(1){n=c[s>>2]|0;if((l|0)>=(n|0))break;m=q;f=0;h=0;while(1){if((m|0)>(p|0))break;i=m+o|0;b:do if((i|0)>=0?(i|0)<(c[r>>2]|0):0){k=B(i,n)|0;j=q;i=f;while(1){if((j|0)>(p|0))break b;f=j+l|0;if((f|0)>-1&(f|0)<(n|0)){i=i+1|0;h=h+(d[e+(f+k)>>0]|0)|0}j=j+1|0}}else i=f;while(0);m=m+1|0;f=i}n=(c[b>>2]|0)+((B(n,o)|0)+l)|0;a[n>>0]=(h|0)/(f|0)|0;l=l+1|0}o=o+1|0}if(!g)h=0;else{i=0;while(1){if((i|0)>=(B(h,c[s>>2]|0)|0)){h=0;break a}h=(c[b>>2]|0)+i|0;a[h>>0]=(d[h>>0]|0)+g;i=i+1|0;h=c[r>>2]|0}}}while(0);return h|0}function ed(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;e=(e|0)==1;j=(i|0)!=0;do if(!d)if(e){if(j){e=fc(a,b,c,i,h)|0;break}if(!g){e=ec(a,b,c,f,h)|0;break}else{e=dc(a,b,c,f,h)|0;break}}else{if(j){e=ic(a,b,c,i,h)|0;break}if(!g){e=hc(a,b,c,f,h)|0;break}else{e=gc(a,b,c,f,h)|0;break}}else if(e){if(j){e=lc(a,b,c,i,h)|0;break}if(!g){e=kc(a,b,c,f,h)|0;break}else{e=jc(a,b,c,f,h)|0;break}}else{if(j){e=oc(a,b,c,i,h)|0;break}if(!g){e=nc(a,b,c,f,h)|0;break}else{e=mc(a,b,c,f,h)|0;break}}while(0);return e|0}function fd(a,b){a=a|0;b=b|0;var d=0;if((a|0)!=0?(d=a+7062384|0,(c[d>>2]|0)==0):0){c[d>>2]=b;a=0}else a=-1;return a|0}function gd(a){a=a|0;var b=0;if((a|0)!=0?(b=a+7062384|0,(c[b>>2]|0)!=0):0){c[b>>2]=0;a=0}else a=-1;return a|0}function hd(){return id(16,50)|0}function id(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;q=zb;zb=zb+64|0;p=q+56|0;o=q+48|0;i=q+40|0;h=q+32|0;g=q+24|0;f=q+16|0;e=q+8|0;d=q;a:do if(!((a+-16|0)>>>0>48|(b|0)<1)){m=FO(32)|0;if(!m){Ue(0,3,41858,d);Ea(1)}c[m>>2]=0;c[m+4>>2]=b;c[m+28>>2]=a;l=FO(b<<2)|0;c[m+8>>2]=l;if(!l){Ue(0,3,41858,e);Ea(1)}d=b<<4;k=FO(d)|0;c[m+12>>2]=k;if(!k){Ue(0,3,41858,f);Ea(1)}f=FO(d)|0;j=m+20|0;c[j>>2]=f;if(!f){Ue(0,3,41858,g);Ea(1)}d=b<<5;g=FO(d)|0;c[m+16>>2]=g;if(!g){Ue(0,3,41858,h);Ea(1)}h=FO(d)|0;c[m+24>>2]=h;if(!h){Ue(0,3,41858,i);Ea(1)}g=B(a,a)|0;f=g*12|0;g=g<<2;e=0;b:while(1){if((e|0)>=(b|0)){n=m;break a}c[l+(e<<2)>>2]=0;a=e<<2;d=0;while(1){if(d>>>0>=4)break;i=FO(f)|0;h=d+a|0;c[k+(h<<2)>>2]=i;if(!i){d=19;break b}i=FO(g)|0;c[(c[j>>2]|0)+(h<<2)>>2]=i;if(!i){d=21;break b}else d=d+1|0}e=e+1|0}if((d|0)==19){Ue(0,3,41858,o);Ea(1)}else if((d|0)==21){Ue(0,3,41858,p);Ea(1)}}else n=0;while(0);zb=q;return n|0}function jd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)b=-1;else{f=a+4|0;g=a+8|0;h=a+12|0;i=a+20|0;d=0;while(1){if((d|0)>=(c[f>>2]|0))break;if(c[(c[g>>2]|0)+(d<<2)>>2]|0)td(a,d)|0;e=d<<2;b=0;while(1){if((b|0)==4)break;j=b+e|0;GO(c[(c[h>>2]|0)+(j<<2)>>2]|0);GO(c[(c[i>>2]|0)+(j<<2)>>2]|0);b=b+1|0}d=d+1|0}GO(c[h>>2]|0);GO(c[i>>2]|0);GO(c[g>>2]|0);GO(c[a+16>>2]|0);GO(c[a+24>>2]|0);GO(a);b=0}return b|0}function kd(b,e,f,h,i,j,k){b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=zb;zb=zb+32|0;p=u+24|0;o=u;t=u+16|0;a:do if((e+-3|0)>>>0>5){c[f>>2]=-1;c[h>>2]=0;g[i>>3]=-1.0;l=-1}else{c[o>>2]=0;s=e+-1|0;q=B(s,e)|0;c[o+4>>2]=q;q=B(e,e)|0;c[o+8>>2]=q+-1;c[o+12>>2]=s;l=0;m=0;n=-1;while(1){if((l|0)==4)break;r=a[b+(c[o+(l<<2)>>2]|0)>>0]|0;l=l+1|0;m=(r&255)>(m&255)?r:m;n=(r&255)<(n&255)?r:n}m=m&255;l=n&255;if((m-l|0)<30){c[f>>2]=-1;c[h>>2]=0;g[i>>3]=-1.0;l=-2;break}n=(m+l|0)>>>1;l=0;while(1){if((l|0)==4)break;a[p+l>>0]=n>>>0>(d[b+(c[o+(l<<2)>>2]|0)>>0]|0)>>>0&1;l=l+1|0}m=0;while(1){if(m>>>0>=4){l=18;break}l=m+1|0;if(((a[p+m>>0]|0)==1?(a[p+(l&3)>>0]|0)==1:0)?(a[p+(m+2&3)>>0]|0)==0:0){l=17;break}m=l}if((l|0)==17)c[h>>2]=m;else if((l|0)==18?(m|0)==4:0){c[f>>2]=-1;c[h>>2]=0;g[i>>3]=-1.0;l=-3;break}r=255;l=0;while(1){if((l|0)==(q|0))break;o=b+l|0;m=d[o>>0]|0;p=m-n|0;p=(p|0)<0?0-p|0:p;a[o>>0]=n>>>0>m>>>0&1;r=(p|0)<(r|0)?p:r;l=l+1|0}l=c[h>>2]|0;b:do switch(l|0){case 0:{n=l;m=0;l=0;while(1){if((n|0)>=(e|0))break b;p=(n|0)==(s|0);q=B(n,e)|0;o=0;while(1){if((o|0)==(e|0))break;if((o|n|0)!=0?!(p&((o|0)==0|(o|0)==(s|0))):0){m=UO(m|0,l|0,1)|0;l=F()|0;m=m|(a[b+(o+q)>>0]|0)!=0}o=o+1|0}n=n+1|0}}case 1:{o=0;m=0;l=0;while(1){if((o|0)>=(e|0))break b;p=(o|0)==0;q=(o|0)==(s|0);n=s;while(1){if((n|0)<=-1)break;h=(n|0)==(s|0);if(!(p&h)?!(q&(h|(n|0)==0)):0){h=UO(m|0,l|0,1)|0;l=F()|0;m=b+((B(n,e)|0)+o)|0;m=h|(a[m>>0]|0)!=0}n=n+-1|0}o=o+1|0}}case 2:{n=s;m=0;l=0;while(1){if((n|0)<=-1)break b;q=(n|0)==(s|0)|(n|0)==0;p=B(n,e)|0;o=s;while(1){if((o|0)<=-1)break;if(!(q&(o|0)==(s|0)|(o|n|0)==0)){m=UO(m|0,l|0,1)|0;l=F()|0;m=m|(a[b+(o+p)>>0]|0)!=0}o=o+-1|0}n=n+-1|0}}case 3:{o=s;m=0;l=0;while(1){if((o|0)<=-1)break b;p=(o|0)==(s|0);q=(o|0)==0;n=0;while(1){if((n|0)>=(e|0))break;if(!(p&(n|0)==0|(n|o|0)==0|q&(n|0)==(s|0))){h=UO(m|0,l|0,1)|0;l=F()|0;m=b+((B(n,e)|0)+o)|0;m=h|(a[m>>0]|0)!=0}n=n+1|0}o=o+-1|0}}default:{m=0;l=0}}while(0);g[i>>3]=(r|0)>30?1.0:+(r|0)/30.0;switch(j|0){case 259:{k=a[240+m>>0]|0;s=k<<24>>24;j=t;c[j>>2]=s;c[j+4>>2]=((s|0)<0)<<31>>31;if(k<<24>>24<0){c[f>>2]=-1;g[i>>3]=-1.0;l=-4;break a}break}case 515:{l=a[112+m>>0]|0;s=l<<24>>24;j=t;c[j>>2]=s;c[j+4>>2]=((s|0)<0)<<31>>31;if(k|0)c[k>>2]=d[176+m>>0];if(l<<24>>24<0){c[f>>2]=-1;g[i>>3]=-1.0;l=-4;break a}break}case 772:case 1028:case 1029:case 1285:{l=md(j,m,l,0,t)|0;if((l|0)<0){c[f>>2]=-1;g[i>>3]=-1.0;l=-4;break a}if((k|0)!=0&(l|0)!=0)c[k>>2]=l;break}default:{k=t;c[k>>2]=m;c[k+4>>2]=l}}c[f>>2]=c[t>>2];l=0}while(0);zb=u;return l|0}function ld(b,d,e,f,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;l=z+8|0;k=z;a:do if((b|0)==0|(f|0)<1){c[h>>2]=0;c[i>>2]=0;g[j>>3]=-1.0;d=-1}else switch(d|0){case 0:{x=B(f,f)|0;w=x*3|0;x=FO(x*12|0)|0;if(!x){Ue(0,3,41858,k);Ea(1)}d=0;k=0;while(1){if((d|0)==(w|0))break;t=k+(~a[e+d>>0]&255)|0;d=d+1|0;k=t}l=(k>>>0)/(w>>>0)|0;d=0;k=0;while(1){if((k|0)==(w|0))break;t=(~a[e+k>>0]&255)-l|0;c[x+(k<<2)>>2]=t;d=(B(t,t)|0)+d|0;k=k+1|0}v=+u(+(+(d|0)));if(v/(+(f|0)*1.7320508)<15.0){c[h>>2]=0;c[i>>2]=0;g[j>>3]=-1.0;GO(x);d=-2;break a}r=c[b>>2]|0;s=b+8|0;t=b+12|0;q=b+16|0;m=0.0;p=0;d=-1;e=-1;k=-1;while(1){if((p|0)>=(r|0))break;l=c[s>>2]|0;b:while(1){d=d+1|0;switch(c[l+(d<<2)>>2]|0){case 0:break;case 2:{l=e;break b}default:{y=18;break b}}}c:do if((y|0)==18){y=0;o=d<<2;n=0;l=e;while(1){if((n|0)==4)break c;b=n+o|0;e=0;f=0;while(1){if((f|0)==(w|0))break;e=(B(c[(c[(c[t>>2]|0)+(b<<2)>>2]|0)+(f<<2)>>2]|0,c[x+(f<<2)>>2]|0)|0)+e|0;f=f+1|0}A=+(e|0)/+g[(c[q>>2]|0)+(b<<3)>>3]/v;f=A>m;b=f?n:k;n=n+1|0;m=f?A:m;l=f?d:l;k=b}}while(0);p=p+1|0;e=l}c[i>>2]=k;c[h>>2]=e;g[j>>3]=m;GO(x);d=0;break a}case 1:{w=B(f,f)|0;x=FO(w<<2)|0;if(!x){Ue(0,3,41858,l);Ea(1)}d=0;k=0;while(1){if((k|0)==(w|0))break;d=d+(~a[e+k>>0]&255)|0;k=k+1|0}l=(d>>>0)/(w>>>0)|0;d=0;k=0;while(1){if((k|0)==(w|0))break;t=(~a[e+k>>0]&255)-l|0;c[x+(k<<2)>>2]=t;d=(B(t,t)|0)+d|0;k=k+1|0}v=+u(+(+(d|0)));if(v/+(f|0)<15.0){c[h>>2]=0;c[i>>2]=0;g[j>>3]=-1.0;GO(x);d=-2;break a}r=c[b>>2]|0;s=b+8|0;t=b+20|0;q=b+24|0;p=0;d=-1;m=0.0;e=-1;k=-1;while(1){if((p|0)>=(r|0))break;l=c[s>>2]|0;d:while(1){d=d+1|0;switch(c[l+(d<<2)>>2]|0){case 0:break;case 2:{l=e;break d}default:{y=40;break d}}}e:do if((y|0)==40){y=0;o=d<<2;n=0;l=e;while(1){if((n|0)==4)break e;b=n+o|0;e=0;f=0;while(1){if((f|0)==(w|0))break;e=(B(c[(c[(c[t>>2]|0)+(b<<2)>>2]|0)+(f<<2)>>2]|0,c[x+(f<<2)>>2]|0)|0)+e|0;f=f+1|0}A=+(e|0)/+g[(c[q>>2]|0)+(b<<3)>>3]/v;f=A>m;b=f?n:k;n=n+1|0;m=f?A:m;l=f?d:l;k=b}}while(0);p=p+1|0;e=l}c[i>>2]=k;c[h>>2]=e;g[j>>3]=m;GO(x);d=0;break a}default:{d=-1;break a}}while(0);zb=z;return d|0}function md(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,G=0,H=0,I=0;I=zb;zb=zb+2384|0;l=I+2320|0;D=I+880|0;A=I+800|0;H=I+720|0;C=I+640|0;y=I+560|0;G=I+48|0;E=I;switch(b|0){case 2830:{l=g;u=1200;x=688;m=120;n=127;w=64;o=9;i=8;break}case 772:{j=624;k=432;m=13;n=15;b=9;o=1;i=5;break}case 1028:{j=624;k=432;m=13;n=15;b=5;o=2;i=5;break}case 1029:{b=12;g=2;i=4;break}case 1285:{b=7;g=3;i=4;break}default:b=-1}if((i|0)==4){j=496;k=304;m=22;n=31;o=g;i=5}a:do if((i|0)==5){i=0;g=f;while(1){if((i|0)==(m|0)){u=j;x=k;w=b;i=8;break a}a[l+i>>0]=e&1;x=TO(e|0,g|0,1)|0;i=i+1|0;e=x;g=F()|0}}while(0);b:do if((i|0)==8){t=o<<1;g=0;i=1;while(1){if((i|0)>(t|0))break;j=y+(i<<2)|0;c[j>>2]=0;e=0;b=0;while(1){if((e|0)>=(m|0))break;if(a[l+e>>0]|0){v=x+(((B(e,i)|0)%(n|0)|0)<<2)|0;b=b^c[v>>2];c[j>>2]=b}e=e+1|0}c[j>>2]=c[u+(b<<2)>>2];g=(b|0)==0?g:1;i=i+1|0}v=(g|0)!=0;c:do if(v){c[A>>2]=0;g=c[y+4>>2]|0;c[A+4>>2]=g;c[D>>2]=0;c[D+72>>2]=1;b=1;while(1){if((b|0)>=(t|0))break;c[D+(b<<2)>>2]=-1;c[D+72+(b<<2)>>2]=0;b=b+1|0}c[H>>2]=0;c[H+4>>2]=0;c[C>>2]=-1;c[C+4>>2]=0;s=0;r=0;while(1){f=s;s=s+1|0;d:do if((g|0)==-1){f=f+2|0;c[H+(f<<2)>>2]=r;b=0;while(1){if((b|0)>(r|0)){q=r;break d}q=D+(s*72|0)+(b<<2)|0;p=c[q>>2]|0;c[D+(f*72|0)+(b<<2)>>2]=p;c[q>>2]=c[u+(p<<2)>>2];b=b+1|0}}else{e=f;while(1){b=(e|0)>0;if(b&(c[A+(e<<2)>>2]|0)==-1)e=e+-1|0;else break}if(b){b=e;i=e;while(1){j=i;i=i+-1|0;if((c[A+(i<<2)>>2]|0)==-1)e=b;else e=(c[C+(b<<2)>>2]|0)<(c[C+(i<<2)>>2]|0)?i:b;if((j|0)<=1)break;else b=e}}i=H+(e<<2)|0;p=s-e|0;q=p+(c[i>>2]|0)|0;f=f+2|0;q=(r|0)>(q|0)?r:q;c[H+(f<<2)>>2]=q;b=0;while(1){if((b|0)>=(t|0))break;c[D+(f*72|0)+(b<<2)>>2]=0;b=b+1|0}j=g+n|0;k=A+(e<<2)|0;g=c[i>>2]|0;b=0;while(1){if((b|0)>(g|0))break;i=c[D+(e*72|0)+(b<<2)>>2]|0;if((i|0)!=-1)c[D+(f*72|0)+(p+b<<2)>>2]=c[x+(((j+i-(c[k>>2]|0)|0)%(n|0)|0)<<2)>>2];b=b+1|0}b=0;while(1){if((b|0)>(r|0))break d;p=D+(s*72|0)+(b<<2)|0;k=c[p>>2]|0;j=D+(f*72|0)+(b<<2)|0;c[j>>2]=c[j>>2]^k;c[p>>2]=c[u+(k<<2)>>2];b=b+1|0}}while(0);c[C+(f<<2)>>2]=s-q;if((s|0)>=(t|0))break;b=c[y+(f<<2)>>2]|0;if((b|0)==-1)b=0;else b=c[x+(b<<2)>>2]|0;i=A+(f<<2)|0;c[i>>2]=b;e=1;while(1){if((e|0)>(q|0))break;g=c[y+(f-e<<2)>>2]|0;if((g|0)!=-1?(z=c[D+(f*72|0)+(e<<2)>>2]|0,(z|0)!=0):0){b=b^c[x+((((c[u+(z<<2)>>2]|0)+g|0)%(n|0)|0)<<2)>>2];c[i>>2]=b}e=e+1|0}g=c[u+(b<<2)>>2]|0;c[i>>2]=g;if((q|0)>(o|0))break;else r=q}if((q|0)>(o|0)){b=-1;break b}b=0;while(1){if((b|0)>(q|0))break;C=D+(f*72|0)+(b<<2)|0;c[C>>2]=c[u+(c[C>>2]<<2)>>2];b=b+1|0}b=1;while(1){if((b|0)>(q|0))break;c[E+(b<<2)>>2]=c[D+(f*72|0)+(b<<2)>>2];b=b+1|0}b=0;k=1;while(1){if((n|0)<(k|0))break;j=1;g=1;while(1){if((j|0)>(q|0))break;e=E+(j<<2)|0;i=c[e>>2]|0;if((i|0)!=-1){D=(i+j|0)%(n|0)|0;c[e>>2]=D;g=c[x+(D<<2)>>2]^g}j=j+1|0}if(!g){c[G+(b<<2)>>2]=n-k;b=b+1|0}k=k+1|0}if((b|0)!=(q|0)){b=-1;break b}b=0;while(1){if((b|0)>=(q|0))break c;E=l+(c[G+(b<<2)>>2]|0)|0;a[E>>0]=a[E>>0]^1;b=b+1|0}}else f=0;while(0);b=h;c[b>>2]=0;c[b+4>>2]=0;b=m-w|0;g=1;e=0;i=0;j=0;while(1){if((b|0)>=(m|0))break;E=NO(g|0,e|0,d[l+b>>0]|0,0)|0;E=OO(E|0,F()|0,i|0,j|0)|0;G=F()|0;D=h;c[D>>2]=E;c[D+4>>2]=G;D=UO(g|0,e|0,1)|0;b=b+1|0;g=D;e=F()|0;i=E;j=G}if(v)b=c[H+(f<<2)>>2]|0;else b=0}while(0);zb=I;return b|0}function nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=Dd(8,8)|0;h=Dd(8,1)|0;i=Dd(8,1)|0;e=0;while(1){if((e|0)==4)break;o=a+(e<<4)|0;j=c[f>>2]|0;k=e<<4;g[j+(k<<3)>>3]=+g[o>>3];n=a+(e<<4)+8|0;g[j+((k|1)<<3)>>3]=+g[n>>3];g[j+((k|2)<<3)>>3]=1.0;g[j+((k|3)<<3)>>3]=0.0;g[j+((k|4)<<3)>>3]=0.0;g[j+((k|5)<<3)>>3]=0.0;m=b+(e<<4)|0;g[j+((k|6)<<3)>>3]=-(+g[o>>3]*+g[m>>3]);g[j+((k|7)<<3)>>3]=-(+g[n>>3]*+g[m>>3]);g[j+((k|8)<<3)>>3]=0.0;g[j+((k|9)<<3)>>3]=0.0;g[j+((k|10)<<3)>>3]=0.0;g[j+((k|11)<<3)>>3]=+g[o>>3];g[j+((k|12)<<3)>>3]=+g[n>>3];g[j+((k|13)<<3)>>3]=1.0;l=b+(e<<4)+8|0;g[j+((k|14)<<3)>>3]=-(+g[o>>3]*+g[l>>3]);g[j+((k|15)<<3)>>3]=-(+g[n>>3]*+g[l>>3]);k=c[h>>2]|0;j=e<<1;g[k+(j<<3)>>3]=+g[m>>3];g[k+((j|1)<<3)>>3]=+g[l>>3];e=e+1|0}Xd(f)|0;Nd(i,f,h)|0;a=c[i>>2]|0;e=0;while(1){if((e|0)==2)break;o=e*3|0;g[d+(e*24|0)>>3]=+g[a+(o<<3)>>3];g[d+(e*24|0)+8>>3]=+g[a+(o+1<<3)>>3];g[d+(e*24|0)+16>>3]=+g[a+(o+2<<3)>>3];e=e+1|0}g[d+48>>3]=+g[a+48>>3];g[d+56>>3]=+g[a+56>>3];g[d+64>>3]=1.0;Ld(f)|0;Ld(h)|0;Ld(i)|0;return}function od(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=+k;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;var u=0,v=0,w=0;w=zb;zb=zb+12304|0;v=w;u=w+12288|0;do if((d+-2|0)>>>0<3){if((r|0)!=2830){u=r&255;if((pd(b,2,u,u*3|0,e,f,g,h,i,j,k,v)|0)<0){c[o>>2]=-1;r=-6;break}u=kd(v,u,o,p,q,r,s)|0;if(!t){r=u;break}r=t;c[r>>2]=0;c[r+4>>2]=0;r=u;break}if((pd(b,2,14,42,e,f,g,h,i,j,.875,v)|0)<0){c[o>>2]=-1;r=-6;break}r=qd(v,u,p,q,s)|0;if((r|0)<0){c[o>>2]=-1;break}p=u;u=c[p>>2]|0;p=c[p+4>>2]|0;if((u|0)==-1&(p|0)==-1){c[o>>2]=-1;r=-5;break}c[o>>2]=(u&-32768|0)==0&0==0?u&32767:0;if(t){c[t>>2]=u;c[t+4>>2]=p}}else r=1;while(0);a:do switch(d|0){case 0:case 1:case 3:case 4:{if(!a){c[l>>2]=-1;u=-1;break a}u=a+28|0;p=c[u>>2]|0;q=p<<2;switch(d|0){case 0:case 3:if((pd(b,0,p,q,e,f,g,h,i,j,k,v)|0)<0){c[l>>2]=-1;u=-6;break a}else{u=ld(a,0,v,c[u>>2]|0,l,m,n)|0;break a}default:if((pd(b,1,p,q,e,f,g,h,i,j,k,v)|0)<0){c[l>>2]=-1;u=-6;break a}else{u=ld(a,1,v,c[u>>2]|0,l,m,n)|0;break a}}}default:u=1}while(0);if((r|0)!=1)u=(u|0)==1?r:(u&r|0)<0?u:0;zb=w;return u|0}function pd(b,e,h,i,j,k,l,m,n,o,p,q){b=b|0;e=e|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=+p;q=q|0;var r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.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,V=0.0,W=0,X=0;R=zb;zb=zb+256|0;A=R+232|0;z=R+224|0;D=R+216|0;C=R+208|0;s=R+144|0;t=R+80|0;N=R;O=R+240|0;P=R+236|0;g[s>>3]=100.0;g[s+8>>3]=100.0;g[s+16>>3]=110.0;g[s+24>>3]=100.0;g[s+32>>3]=110.0;g[s+40>>3]=110.0;g[s+48>>3]=100.0;g[s+56>>3]=110.0;r=0;while(1){if((r|0)==4)break;g[t+(r<<4)>>3]=+g[o+(r<<4)>>3];g[t+(r<<4)+8>>3]=+g[o+(r<<4)+8>>3];r=r+1|0}nd(s,t,N);y=+g[t>>3];T=+g[t+16>>3];w=y-T;I=+g[t+8>>3];S=+g[t+24>>3];u=I-S;r=~~(w*w+u*u);u=+g[t+32>>3];w=+g[t+48>>3];V=u-w;v=+g[t+40>>3];x=+g[t+56>>3];U=v-x;L=~~(V*V+U*U);u=T-u;v=S-v;t=~~(u*u+v*v);y=w-y;I=x-I;M=~~(y*y+I*I);r=~~(+(((L|0)>(r|0)?L:r)|0)*p*p);t=~~(+(((M|0)>(t|0)?M:t)|0)*p*p);if(!b){s=h;while(1)if((s|0)<(i|0)&(B(s,s)|0)<(r|0))s=s<<1;else break;r=h;while(1)if((r|0)<(i|0)&(B(r,r)|0)<(t|0))r=r<<1;else break}else{s=h;while(1)if((s|0)<(i|0)&(B(s<<2,s)|0)<(r|0))s=s<<1;else break;r=h;while(1)if((r|0)<(i|0)&(B(r<<2,r)|0)<(t|0))r=r<<1;else break}M=(s|0)>(i|0)?i:s;J=(r|0)>(i|0)?i:r;K=(M|0)/(h|0)|0;L=(J|0)/(h|0)|0;u=(1.0-p)*.5*10.0;I=p*10.0;H=B(h,h)|0;a:do if(!e){H=H*3|0;r=HO(H,4)|0;if(!r){Ue(0,3,41858,C);Ea(1)}b:do switch(m|0){case 0:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=((B(t,k)|0)+s|0)*3|0;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t+2)>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t+1)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+t>>0]|0)}i=i+1|0}o=o+1|0}}case 1:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=((B(t,k)|0)+s|0)*3|0;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+t>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t+1)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+(t+2)>>0]|0)}i=i+1|0}o=o+1|0}}case 2:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=(B(t,k)|0)+s<<2;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|2)>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|1)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+t>>0]|0)}i=i+1|0}o=o+1|0}}case 3:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=(B(t,k)|0)+s<<2;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+t>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|1)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+(t|2)>>0]|0)}i=i+1|0}o=o+1|0}}case 4:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=(B(t,k)|0)+s<<2;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|1)>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|2)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+(t|3)>>0]|0)}i=i+1|0}o=o+1|0}}case 5:case 12:case 13:case 14:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=j+((B(t,k)|0)+s)|0;t=d[t>>0]|0;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+t;s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+t;b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+t}i=i+1|0}o=o+1|0}}case 6:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=(B(t,k)|0)+s<<2;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|3)>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|2)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+(t|1)>>0]|0)}i=i+1|0}o=o+1|0}}case 7:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){X=B(t,k)|0;W=(s&65534)+X<<1;T=+((d[j+W>>0]|0)+-128|0);V=+((d[j+(W+2)>>0]|0)+-128|0);U=+((d[j+(X+s<<1|1)>>0]|0)+-16|0)*298.0820007324219;X=~~(T*516.4110107421875+U)>>8;W=~~(U-T*100.29100036621094-V*208.1199951171875)>>8;t=~~(U+V*408.5830078125)>>8;X=(X|0)>0?X:0;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=((X|0)<255?X:255)+(c[s>>2]|0);W=(W|0)>0?W:0;s=r+(b+1<<2)|0;c[s>>2]=((W|0)<255?W:255)+(c[s>>2]|0);t=(t|0)>0?t:0;b=r+(b+2<<2)|0;c[b>>2]=((t|0)<255?t:255)+(c[b>>2]|0)}i=i+1|0}o=o+1|0}}case 8:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=B(t,k)|0;W=(s&65534)+t<<1;T=+((d[j+(W|1)>>0]|0)+-128|0);V=+((d[j+(W+3)>>0]|0)+-128|0);U=+((d[j+(t+s<<1)>>0]|0)+-16|0)*298.0820007324219;s=~~(U+T*516.4110107421875)>>8;t=~~(U-T*100.29100036621094-V*208.1199951171875)>>8;W=~~(U+V*408.5830078125)>>8;s=(s|0)>0?s:0;X=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;b=r+(X<<2)|0;c[b>>2]=((s|0)<255?s:255)+(c[b>>2]|0);t=(t|0)>0?t:0;b=r+(X+1<<2)|0;c[b>>2]=((t|0)<255?t:255)+(c[b>>2]|0);W=(W|0)>0?W:0;X=r+(X+2<<2)|0;c[X>>2]=((W|0)<255?W:255)+(c[X>>2]|0)}i=i+1|0}o=o+1|0}}case 9:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;i=0;while(1){if((i|0)>=(J|0))break b;v=w+I*(+(i|0)+.5)/x;o=0;while(1){if((o|0)>=(M|0))break;u=w+I*(+(o|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;t=a[j+(W|1)>>0]|0;X=((B((i|0)/(L|0)|0,h)|0)+((o|0)/(K|0)|0)|0)*3|0;b=r+(X<<2)|0;c[b>>2]=(c[b>>2]|0)+((t<<3&255|4)&255);W=a[j+W>>0]|0;b=r+(X+1<<2)|0;c[b>>2]=((t&-32&255)>>>3|W<<5&255|2)+(c[b>>2]|0);X=r+(X+2<<2)|0;c[X>>2]=(c[X>>2]|0)+((W&-8|4)&255)}o=o+1|0}i=i+1|0}}case 10:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;t=a[j+(W|1)>>0]|0;X=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;b=r+(X<<2)|0;c[b>>2]=(c[b>>2]|0)+((t<<2&255|4)&255);W=a[j+W>>0]|0;b=r+(X+1<<2)|0;c[b>>2]=((t&-64&255)>>>3|W<<5&255|4)+(c[b>>2]|0);X=r+(X+2<<2)|0;c[X>>2]=(c[X>>2]|0)+((W&-8|4)&255)}i=i+1|0}o=o+1|0}}case 11:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;X=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;b=r+(X<<2)|0;c[b>>2]=(c[b>>2]|0)+((a[j+(W|1)>>0]&-16|8)&255);W=a[j+W>>0]|0;b=r+(X+1<<2)|0;c[b>>2]=(c[b>>2]|0)+((W<<4&255|8)&255);X=r+(X+2<<2)|0;c[X>>2]=(c[X>>2]|0)+((W&-16|8)&255)}i=i+1|0}o=o+1|0}}default:{Ue(0,3,20166,D);Q=306;break a}}while(0);t=B(L,K)|0;s=0;while(1){if((s|0)==(H|0))break;a[q+s>>0]=((c[r+(s<<2)>>2]|0)>>>0)/(t>>>0)|0;s=s+1|0}GO(r);r=0}else{r=HO(H,4)|0;if(!r){Ue(0,3,41858,z);Ea(1)}c:do if(m>>>0<2){w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=((B(t,k)|0)+s|0)*3|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+((((d[j+(W+1)>>0]|0)+(d[j+W>>0]|0)+(d[j+(W+2)>>0]|0)|0)>>>0)/3|0)}i=i+1|0}o=o+1|0}}else{if((m|1|0)==3){w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<2;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+((((d[j+(W|1)>>0]|0)+(d[j+W>>0]|0)+(d[j+(W|2)>>0]|0)|0)>>>0)/3|0)}i=i+1|0}o=o+1|0}}if((m|2|0)==6){w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<2;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+((((d[j+(W|2)>>0]|0)+(d[j+(W|1)>>0]|0)+(d[j+(W|3)>>0]|0)|0)>>>0)/3|0)}i=i+1|0}o=o+1|0}}switch(m|0){case 5:case 12:case 13:case 14:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=j+((B(t,k)|0)+s)|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+(d[W>>0]|0)}i=i+1|0}o=o+1|0}}case 7:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=j+((B(t,k)|0)+s<<1|1)|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+(d[W>>0]|0)}i=i+1|0}o=o+1|0}}case 8:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=j+((B(t,k)|0)+s<<1)|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+(d[W>>0]|0)}i=i+1|0}o=o+1|0}}case 9:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;b=d[j+W>>0]|0;W=d[j+(W|1)>>0]|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=((((b<<5&224|W>>>3&28|2)+(b&248|4)+(W<<3&248|4)|0)>>>0)/3|0)+(c[X>>2]|0)}i=i+1|0}o=o+1|0}}case 10:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;b=d[j+W>>0]|0;W=d[j+(W|1)>>0]|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=((((b<<5&224|W>>>3&24|4)+(b&248|4)+(W<<2&248|4)|0)>>>0)/3|0)+(c[X>>2]|0)}i=i+1|0}o=o+1|0}}case 11:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;b=d[j+W>>0]|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=((((b<<4&240|8)+(b&240|8)+((a[j+(W|1)>>0]&-16|8)&255)|0)>>>0)/3|0)+(c[X>>2]|0)}i=i+1|0}o=o+1|0}}default:{Ue(0,3,20166,A);Q=306;break a}}}while(0);t=B(L,K)|0;s=0;while(1){if((s|0)==(H|0))break;a[q+s>>0]=((c[r+(s<<2)>>2]|0)>>>0)/(t>>>0)|0;s=s+1|0}GO(r);r=0}while(0);if((Q|0)==306){GO(r);r=-1}zb=R;return r|0}function qd(b,e,f,h,i){b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=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;y=zb;zb=zb+160|0;o=y+152|0;n=y+128|0;x=y+144|0;w=y;c[n>>2]=0;c[n+4>>2]=182;c[n+8>>2]=195;c[n+12>>2]=13;j=0;l=0;m=-1;while(1){if((j|0)==4)break;v=a[b+(c[n+(j<<2)>>2]|0)>>0]|0;j=j+1|0;l=(v&255)>(l&255)?v:l;m=(v&255)<(m&255)?v:m}l=l&255;j=m&255;a:do if((l-j|0)>=30){v=(l+j|0)>>>1;j=0;while(1){if((j|0)==4)break;a[o+j>>0]=v>>>0>(d[b+(c[n+(j<<2)>>2]|0)>>0]|0)>>>0&1;j=j+1|0}u=0;while(1){if(u>>>0>=4)break;j=u+1|0;if(((a[o+u>>0]|0)==1?(a[o+(j&3)>>0]|0)==1:0)?(a[o+(u+2&3)>>0]|0)==0:0)break;u=j}b:do switch(u&2147483647|0){case 4:{c[f>>2]=0;g[h>>3]=-1.0;j=-3;break a}case 0:{l=119;n=0;j=255;while(1){if((n|0)==14){p=57;break b}o=n+-3|0;p=(n&2147483646|0)==12;q=n*14|0;m=0;while(1){if((m|0)==14)break;if(((m+-3|o)>>>0>=8?(r=m&2147483646,((m|n)&2147483646|0)!=0):0)?!(p&((r|0)==0|(r|0)==12)):0){t=(d[b+(m+q)>>0]|0)-v|0;a[w+l>>0]=t>>>31;t=(t|0)>-1?t:0-t|0;l=l+-1|0;j=(t|0)<(j|0)?t:j}m=m+1|0}n=n+1|0}}case 1:{l=119;j=255;n=0;while(1){if((n|0)==14){p=57;break b}o=n+-3|0;q=n&2147483646;p=(q|0)==0;q=(q|0)==12;m=13;while(1){if((m|0)<=-1)break;if(((m+-3|o)>>>0>=8?(s=(m&-2|0)==12,!(p&s)):0)?!(q&(m>>>0<2|s)):0){t=(d[b+((m*14|0)+n)>>0]|0)-v|0;a[w+l>>0]=t>>>31;t=(t|0)>-1?t:0-t|0;l=l+-1|0;j=(t|0)<(j|0)?t:j}m=m+-1|0}n=n+1|0}}case 2:{m=13;l=119;j=255;while(1){if((m|0)<=-1){p=57;break b}n=m+-3|0;q=m>>>0<2|(m&-2|0)==12;p=m*14|0;o=13;while(1){if((o|0)<=-1)break;if((o+-3|n)>>>0>=8?!((o|m)>>>0<2|q&(o&-2|0)==12):0){t=(d[b+(o+p)>>0]|0)-v|0;a[w+l>>0]=t>>>31;t=(t|0)>-1?t:0-t|0;l=l+-1|0;j=(t|0)<(j|0)?t:j}o=o+-1|0}m=m+-1|0}}case 3:{n=13;l=119;j=255;while(1){if((n|0)<=-1){p=57;break b}o=n+-3|0;p=n&-2;q=(p|0)==12;r=(p|0)==0;m=0;while(1){if((m|0)==14)break;if(((m+-3|o)>>>0>=8?(t=m&2147483646,!(q&(t|0)==0)):0)?!((t|p|0)==0|r&(t|0)==12):0){s=(d[b+((m*14|0)+n)>>0]|0)-v|0;a[w+l>>0]=s>>>31;s=(s|0)>-1?s:0-s|0;l=l+-1|0;j=(s|0)<(j|0)?s:j}m=m+1|0}n=n+-1|0}}default:{c[f>>2]=u;k=1.0}}while(0);if((p|0)==57){c[f>>2]=u;k=(j|0)>30?1.0:+(j|0)/30.0}g[h>>3]=k;j=md(2830,0,0,w,x)|0;if((j|0)<0)j=-4;else{if(i|0)c[i>>2]=j;i=x;x=c[i+4>>2]|0;j=e;c[j>>2]=c[i>>2];c[j+4>>2]=x;j=0}}else{c[f>>2]=0;g[h>>3]=-1.0;j=-2}while(0);zb=y;return j|0}function rd(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,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0.0;A=zb;zb=zb+32|0;z=A+24|0;f=A+16|0;d=A+8|0;do if(a){if(!b){Ue(0,3,20225,d);d=-1;break}y=a+8|0;e=c[a+4>>2]|0;d=0;while(1){if((d|0)>=(e|0))break;if(!(c[(c[y>>2]|0)+(d<<2)>>2]|0))break;d=d+1|0}if((d|0)!=(e|0)){x=jz(b)|0;if(!x){Ue(0,3,20270,f);d=-1;break}p=a+28|0;q=a+12|0;r=d<<2;s=a+20|0;t=a+16|0;v=a+24|0;e=tA(x,20293)|0;o=0;a:while(1){if(o>>>0>=4){e=36;break}w=o+r|0;b=0;n=0;while(1){if(n>>>0>=3)break;l=(n|0)==0;m=(n|0)==2;k=0;f=c[p>>2]|0;while(1){if((k|0)>=(f|0))break;j=0;while(1){if((j|0)>=(f|0))break;if(!e){e=21;break a}f=lA(e)|0;e=tA(0,20293)|0;f=255-f|0;h=(c[(c[q>>2]|0)+(w<<2)>>2]|0)+((((B(c[p>>2]|0,k)|0)+j|0)*3|0)+n<<2)|0;c[h>>2]=f;h=c[(c[s>>2]|0)+(w<<2)>>2]|0;i=h+((B(c[p>>2]|0,k)|0)+j<<2)|0;if(!l){c[i>>2]=(c[i>>2]|0)+f;if(m){i=h+((B(c[p>>2]|0,k)|0)+j<<2)|0;c[i>>2]=(c[i>>2]|0)/3|0}}else c[i>>2]=f;j=j+1|0;b=f+b|0;f=c[p>>2]|0}k=k+1|0}n=n+1|0}i=c[p>>2]|0;j=(b|0)/(B(i*3|0,i)|0)|0;b=0;f=0;while(1){if(f>>>0>=(B(i*3|0,i)|0)>>>0)break;n=(c[(c[q>>2]|0)+(w<<2)>>2]|0)+(f<<2)|0;i=(c[n>>2]|0)-j|0;c[n>>2]=i;i=(B(i,i)|0)+b|0;b=i;f=f+1|0;i=c[p>>2]|0}C=+u(+(+(b|0)));g[(c[t>>2]|0)+(w<<3)>>3]=C==0.0?1.0e-07:C;f=0;h=0;b=i;while(1){if(h>>>0>=(B(b,b)|0)>>>0)break;n=(c[(c[s>>2]|0)+(w<<2)>>2]|0)+(h<<2)|0;b=(c[n>>2]|0)-j|0;c[n>>2]=b;b=(B(b,b)|0)+f|0;f=b;h=h+1|0;b=c[p>>2]|0}C=+u(+(+(f|0)));g[(c[v>>2]|0)+(w<<3)>>3]=C==0.0?1.0e-07:C;o=o+1|0}if((e|0)==21){Ue(0,3,20298,z);GO(x);d=-1;break}else if((e|0)==36){GO(x);c[(c[y>>2]|0)+(d<<2)>>2]=1;c[a>>2]=(c[a>>2]|0)+1;break}}else d=-1}else{Ue(0,3,20200,A);d=-1}while(0);zb=A;return d|0} function Lm(b,d,e,g){b=b|0;d=d|0;e=e|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;y=zb;zb=zb+16|0;v=y;w=b+4|0;c[w>>2]=c[b>>2];do if((Ak(d)|0)!=0?(Ak(e)|0)!=0:0){Ym(b,Ak(d)|0);t=b+8|0;u=b+12|0;s=0;a:while(1){if(s>>>0>=(Ak(d)|0)>>>0)break;n=Zm(d,s)|0;yo(g,n)|0;q=_m(d,s)|0;o=zo(g)|0;p=o+4|0;q=q+16|0;l=0;m=-1;j=-1;i=2147483647;while(1){h=c[o>>2]|0;if(l>>>0>=(c[p>>2]|0)-h>>2>>>0)break;z=a[q>>0]|0;k=(_m(e,c[h+(l<<2)>>2]|0)|0)+16|0;do if(z<<24>>24==(a[k>>0]|0)){h=yl(n,Zm(e,c[(c[o>>2]|0)+(l<<2)>>2]|0)|0)|0;if(h>>>0>>0){k=h;h=m;i=c[(c[o>>2]|0)+(l<<2)>>2]|0;break}else{k=m;h=h>>>0>>0?h:j;break}}else{k=m;h=j}while(0);l=l+1|0;m=k;j=h}do if((m|0)!=-1){if((i|0)==-1){x=15;break a}if((j|0)==-1){an(v,s,i);h=c[w>>2]|0;if(h>>>0<(c[t>>2]|0)>>>0){p=v;q=c[p+4>>2]|0;z=h;c[z>>2]=c[p>>2];c[z+4>>2]=q;c[w>>2]=(c[w>>2]|0)+8}else bn(b,v);break}if(+(m>>>0)/+(j>>>0)<+f[u>>2]){an(v,s,i);h=c[w>>2]|0;if(h>>>0<(c[t>>2]|0)>>>0){p=v;q=c[p+4>>2]|0;z=h;c[z>>2]=c[p>>2];c[z+4>>2]=q;c[w>>2]=(c[w>>2]|0)+8}else bn(b,v)}}while(0);s=s+1|0}if((x|0)==15){z=Xf(Xf(PE(Xf(Xf(Xf(56032,31276)|0,31157)|0,35e3)|0,160)|0,35007)|0,31348)|0;IE(v,z+(c[(c[z>>2]|0)+-12>>2]|0)|0);x=XF(v,56736)|0;x=Ib[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;YF(v);QE(z,x)|0;ME(z)|0;ua()}z=(c[w>>2]|0)-(c[b>>2]|0)>>3;if(z>>>0>(Ak(d)|0)>>>0){z=Xf(Xf(PE(Xf(Xf(Xf(56032,31366)|0,31157)|0,35e3)|0,175)|0,35007)|0,31426)|0;IE(v,z+(c[(c[z>>2]|0)+-12>>2]|0)|0);x=XF(v,56736)|0;x=Ib[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;YF(v);QE(z,x)|0;ME(z)|0;ua()}else{r=(c[w>>2]|0)-(c[b>>2]|0)>>3;break}}else r=0;while(0);zb=y;return r|0}function Mm(b,d,e){b=b|0;d=d|0;e=e|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;t=zb;zb=zb+16|0;r=t;s=b+4|0;c[s>>2]=c[b>>2];do if((Ak(d)|0)!=0?(Ak(e)|0)!=0:0){Ym(b,Ak(d)|0);p=b+8|0;q=b+12|0;o=0;while(1){if(o>>>0>=(Ak(d)|0)>>>0)break;l=Zm(d,o)|0;m=(_m(d,o)|0)+16|0;i=0;j=-1;g=2147483647;h=-1;while(1){if(i>>>0>=(Ak(e)|0)>>>0)break;u=a[m>>0]|0;k=(_m(e,i)|0)+16|0;if(u<<24>>24==(a[k>>0]|0)){u=yl(l,Zm(e,i)|0)|0;v=u>>>0>>0;k=v?u:j;g=v?i:g;h=v?j:u>>>0>>0?u:h}else k=j;i=i+1|0;j=k}do if((j|0)!=-1){if((h|0)==-1){an(r,o,g);g=c[s>>2]|0;if(g>>>0<(c[p>>2]|0)>>>0){m=r;u=c[m+4>>2]|0;v=g;c[v>>2]=c[m>>2];c[v+4>>2]=u;c[s>>2]=(c[s>>2]|0)+8}else bn(b,r);break}if(+(j>>>0)/+(h>>>0)<+f[q>>2]){an(r,o,g);g=c[s>>2]|0;if(g>>>0<(c[p>>2]|0)>>>0){m=r;u=c[m+4>>2]|0;v=g;c[v>>2]=c[m>>2];c[v+4>>2]=u;c[s>>2]=(c[s>>2]|0)+8}else bn(b,r)}}while(0);o=o+1|0}v=(c[s>>2]|0)-(c[b>>2]|0)>>3;if(v>>>0>(Ak(d)|0)>>>0){v=Xf(Xf(PE(Xf(Xf(Xf(56032,31366)|0,31157)|0,35e3)|0,112)|0,35007)|0,31426)|0;IE(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(r,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(r);QE(v,u)|0;ME(v)|0;ua()}else{n=(c[s>>2]|0)-(c[b>>2]|0)>>3;break}}else n=0;while(0);zb=t;return n|0}function Nm(a){a=a|0;return a|0}function Om(a){a=a|0;return c[a>>2]|0}function Pm(a){a=a|0;return c[a+4>>2]|0}function Qm(a,b,d,e,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0;u=zb;zb=zb+32|0;s=u+20|0;t=u+8|0;o=u+4|0;p=u;q=e+4|0;uo(s,(c[q>>2]|0)-(c[e>>2]|0)>>1);uo(t,(c[q>>2]|0)-(c[e>>2]|0)>>1);n=c[e>>2]|0;r=(c[q>>2]|0)-n>>3;m=c[b>>2]|0;d=c[d>>2]|0;k=c[s>>2]|0;l=c[t>>2]|0;b=0;while(1){if((b|0)==(r|0))break;y=c[n+(b<<3)>>2]|0;w=c[n+(b<<3)+4>>2]|0;v=b<<2;x=k+(v<<2)|0;c[x>>2]=c[m+(y*20|0)>>2];c[x+4>>2]=c[m+(y*20|0)+4>>2];c[x+8>>2]=c[m+(y*20|0)+8>>2];c[x+12>>2]=c[m+(y*20|0)+12>>2];v=l+(v<<2)|0;c[v>>2]=c[d+(w*20|0)>>2];c[v+4>>2]=c[d+(w*20|0)+4>>2];c[v+8>>2]=c[d+(w*20|0)+8>>2];c[v+12>>2]=c[d+(w*20|0)+12>>2];b=b+1|0}A=+(g|0);A=A*.20000000298023224+A;z=+(h|0);z=z*.20000000298023224+z;op(a,-A,A,-z,z,0,0,12,10);vo(a,+(i>>1|0),+(j>>1|0));wo(a,i,j);qp(a,c[s>>2]|0,c[t>>2]|0,(c[q>>2]|0)-(c[e>>2]|0)>>3);Fp(a,o,p);y=+f[o>>2]<3.0?-1:c[p>>2]|0;gh(t);gh(s);zb=u;return y|0}function Rm(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=+g;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;v=zb;zb=zb+48|0;h=v+32|0;r=v+28|0;s=v+24|0;t=v+20|0;u=v+16|0;n=v+12|0;o=v+8|0;p=v+4|0;q=v;qo(b,n,o,p,q,e);l=a+4|0;c[l>>2]=c[a>>2];m=ro(b)|0;m=(c[m+4>>2]|0)-(c[m>>2]|0)>>2;e=so(b)|0;if(m>>>0>(c[d+4>>2]|0)-(c[d>>2]|0)>>3>>>0){k=Xf(Xf(PE(Xf(Xf(Xf(56032,31870)|0,30067)|0,35e3)|0,342)|0,35007)|0,31916)|0;IE(h,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);j=XF(h,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(h);QE(k,j)|0;ME(k)|0;ua()}k=a+8|0;e=c[e>>2]|0;h=0;while(1){if((h|0)>=(m|0))break;to(b,r,s,t,u,+f[e>>2],+f[e+4>>2],+f[e+8>>2],+f[e+12>>2],+(c[n>>2]|0)+.5,+(c[o>>2]|0)+.5,+(c[p>>2]|0)+.5,+(c[q>>2]|0)+.5);do if((+f[r>>2]>2]>2]>2]>2]|0)+(c[(c[i>>2]|0)+(h<<2)>>2]<<3)|0;j=c[l>>2]|0;if((j|0)==(c[k>>2]|0)){hn(a,i);break}else{w=i;i=c[w+4>>2]|0;c[j>>2]=c[w>>2];c[j+4>>2]=i;c[l>>2]=(c[l>>2]|0)+8;break}}while(0);e=e+16|0;h=h+1|0}zb=v;return}function Sm(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;q=zb;zb=zb+64|0;o=q+44|0;p=q+32|0;n=q;m=e+4|0;jn(o,(c[m>>2]|0)-(c[e>>2]|0)>>3);jn(p,(c[m>>2]|0)-(c[e>>2]|0)>>3);l=c[e>>2]|0;m=(c[m>>2]|0)-l>>3;j=c[b>>2]|0;k=c[p>>2]|0;b=c[d>>2]|0;d=c[o>>2]|0;e=0;while(1){if((e|0)==(m|0))break;r=c[l+(e<<3)>>2]|0;c[k+(e<<3)>>2]=c[j+(r*20|0)>>2];c[k+(e<<3)+4>>2]=c[j+(r*20|0)+4>>2];r=c[l+(e<<3)+4>>2]|0;c[d+(e<<3)>>2]=c[b+(r*20|0)>>2];c[d+(e<<3)+4>>2]=c[b+(r*20|0)+4>>2];e=e+1|0}f[n>>2]=0.0;f[n+4>>2]=0.0;s=+(h|0);f[n+8>>2]=s;f[n+12>>2]=0.0;f[n+16>>2]=s;s=+(i|0);f[n+20>>2]=s;f[n+24>>2]=0.0;f[n+28>>2]=s;if(kn(g,a,d,k,m,n,4)|0)e=mn(a,h,i)|0;else e=0;ln(p);ln(o);zb=q;return e|0}function Tm(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;q=zb;zb=zb+16|0;p=q;h=+ji(h);o=g+4|0;Ym(a,(c[o>>2]|0)-(c[g>>2]|0)>>3);l=p+4|0;m=a+4|0;n=a+8|0;k=0;while(1){i=c[g>>2]|0;if(k>>>0>=(c[o>>2]|0)-i>>3>>>0)break;j=c[i+(k<<3)+4>>2]|0;i=c[e>>2]|0;$m(p,l,b,+f[i+(j*20|0)>>2],+f[i+(j*20|0)+4>>2]);r=+ji(+f[p>>2]-+f[(c[d>>2]|0)+((c[(c[g>>2]|0)+(k<<3)>>2]|0)*20|0)>>2]);do if(r+ +ji(+f[l>>2]-+f[(c[d>>2]|0)+((c[(c[g>>2]|0)+(k<<3)>>2]|0)*20|0)+4>>2])<=h){i=(c[g>>2]|0)+(k<<3)|0;j=c[m>>2]|0;if((j|0)==(c[n>>2]|0)){hn(a,i);break}else{s=i;i=c[s+4>>2]|0;c[j>>2]=c[s>>2];c[j+4>>2]=i;c[m>>2]=(c[m>>2]|0)+8;break}}while(0);k=k+1|0}zb=q;return}function Um(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=+h;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.0,B=0;z=zb;zb=zb+64|0;u=z+40|0;v=z;w=z+52|0;x=z+48|0;t=b+4|0;c[t>>2]=c[b>>2];do if((Ak(d)|0)!=0?(Ak(e)|0)!=0:0){h=+ji(h);if(!(Xm(v,g,0.0)|0)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,31132)|0,31157)|0,35e3)|0,196)|0,35007)|0,31243)|0;IE(u,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(u,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(u);QE(r,q)|0;ME(r)|0;ua()}Ym(b,Ak(d)|0);q=b+8|0;r=b+12|0;p=0;a:while(1){if(p>>>0>=(Ak(d)|0)>>>0)break;n=Zm(d,p)|0;o=_m(d,p)|0;$m(w,x,v,+f[o>>2],+f[o+4>>2]);o=o+16|0;l=0;m=-1;j=-1;i=2147483647;while(1){if(l>>>0>=(Ak(e)|0)>>>0)break;g=_m(e,l)|0;if((a[o>>0]|0)==(a[g+16>>0]|0)?(A=+ji(+f[w>>2]-+f[g>>2]),!(A+ +ji(+f[x>>2]-+f[g+4>>2])>h)):0){g=zl(n,Zm(e,l)|0)|0;B=g>>>0>>0;k=B?g:m;g=B?m:g>>>0>>0?g:j;i=B?l:i}else{k=m;g=j}l=l+1|0;m=k;j=g}do if((m|0)!=-1){if((i|0)==-1){y=16;break a}if((j|0)==-1){an(u,p,i);g=c[t>>2]|0;if(g>>>0<(c[q>>2]|0)>>>0){n=u;o=c[n+4>>2]|0;B=g;c[B>>2]=c[n>>2];c[B+4>>2]=o;c[t>>2]=(c[t>>2]|0)+8}else bn(b,u);break}if(+(m>>>0)/+(j>>>0)<+f[r>>2]){an(u,p,i);g=c[t>>2]|0;if(g>>>0<(c[q>>2]|0)>>>0){n=u;o=c[n+4>>2]|0;B=g;c[B>>2]=c[n>>2];c[B+4>>2]=o;c[t>>2]=(c[t>>2]|0)+8}else bn(b,u)}}while(0);p=p+1|0}if((y|0)==16){B=Xf(Xf(PE(Xf(Xf(Xf(56032,31276)|0,31157)|0,35e3)|0,241)|0,35007)|0,31348)|0;IE(u,B+(c[(c[B>>2]|0)+-12>>2]|0)|0);y=XF(u,56736)|0;y=Ib[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;YF(u);QE(B,y)|0;ME(B)|0;ua()}B=(c[t>>2]|0)-(c[b>>2]|0)>>3;if(B>>>0>(Ak(d)|0)>>>0){B=Xf(Xf(PE(Xf(Xf(Xf(56032,31366)|0,31157)|0,35e3)|0,256)|0,35007)|0,31426)|0;IE(u,B+(c[(c[B>>2]|0)+-12>>2]|0)|0);y=XF(u,56736)|0;y=Ib[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;YF(u);QE(B,y)|0;ME(B)|0;ua()}else{s=(c[t>>2]|0)-(c[b>>2]|0)>>3;break}}else s=0;while(0);zb=z;return s|0}function Vm(a,b){a=a|0;b=b|0;var d=0;d=a+36|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(d|0));return}function Wm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;b=b+8|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function Xm(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=+gn(b);if(!(+t(+d)<=c)){d=1.0/d;e=b+16|0;k=b+20|0;j=b+28|0;m=b+32|0;c=d*+xi(+f[e>>2],+f[k>>2],+f[j>>2],+f[m>>2]);f[a>>2]=c;l=b+8|0;h=b+4|0;c=d*+xi(+f[l>>2],+f[h>>2],+f[m>>2],+f[j>>2]);f[a+4>>2]=c;c=d*+xi(+f[h>>2],+f[l>>2],+f[e>>2],+f[k>>2]);f[a+8>>2]=c;g=b+12|0;i=b+24|0;c=d*+xi(+f[k>>2],+f[g>>2],+f[m>>2],+f[i>>2]);f[a+12>>2]=c;c=d*+xi(+f[b>>2],+f[l>>2],+f[i>>2],+f[m>>2]);f[a+16>>2]=c;c=d*+xi(+f[l>>2],+f[b>>2],+f[k>>2],+f[g>>2]);f[a+20>>2]=c;c=d*+xi(+f[g>>2],+f[e>>2],+f[i>>2],+f[j>>2]);f[a+24>>2]=c;c=d*+xi(+f[h>>2],+f[b>>2],+f[j>>2],+f[i>>2]);f[a+28>>2]=c;d=d*+xi(+f[b>>2],+f[h>>2],+f[g>>2],+f[e>>2]);f[a+32>>2]=d;a=1}else a=0;return a|0}function Ym(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+32|0;d=f;e=c[a>>2]|0;if((c[a+8>>2]|0)-e>>3>>>0>>0){dn(d,b,(c[a+4>>2]|0)-e>>3,a+8|0);en(a,d);fn(d)}zb=f;return}function Zm(a,b){a=a|0;b=b|0;b=B(c[a>>2]|0,b)|0;return (c[a+4>>2]|0)+b|0}function _m(a,b){a=a|0;b=b|0;return (c[a+16>>2]|0)+(b*20|0)|0}function $m(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;var g=0.0;g=+f[c+32>>2]+(+f[c+24>>2]*d+ +f[c+28>>2]*e);f[a>>2]=(+f[c+8>>2]+(+f[c>>2]*d+ +f[c+4>>2]*e))/g;f[b>>2]=(+f[c+20>>2]+(+f[c+12>>2]*d+ +f[c+16>>2]*e))/g;return}function an(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function bn(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=cn(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;dn(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;en(a,d);fn(d);zb=h;return}}function cn(a){a=a|0;return 536870911}function dn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function en(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function fn(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-8|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function gn(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0,g=0,h=0,i=0,j=0,k=0;h=a+16|0;k=a+20|0;e=a+28|0;j=a+32|0;d=+xi(+f[h>>2],+f[k>>2],+f[e>>2],+f[j>>2]);i=a+12|0;g=a+24|0;c=+xi(+f[i>>2],+f[k>>2],+f[g>>2],+f[j>>2]);b=+xi(+f[i>>2],+f[h>>2],+f[g>>2],+f[e>>2]);return +(d*+f[a>>2]-c*+f[a+4>>2]+b*+f[a+8>>2])}function hn(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=cn(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;dn(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;en(a,d);fn(d);zb=h;return}}function jn(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){no(a,b);oo(a,b)}return}function kn(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0;j=a+12|0;Vk(j,g);return wn(b,d,e,g,h,i,a,j,a+24|0,+f[a+36>>2],c[a+40>>2]|0,c[a+44>>2]|0,c[a+48>>2]|0)|0}function ln(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function mn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=zb;zb=zb+96|0;e=m+88|0;g=m+80|0;h=m+72|0;i=m+64|0;j=m;k=m+56|0;l=m+48|0;d=m+40|0;if(Xm(j,a,9.999999747378752e-06)|0){n=+(b|0);f[k>>2]=n;f[k+4>>2]=0.0;f[l>>2]=n;n=+(c|0);f[l+4>>2]=n;f[d>>2]=0.0;f[d+4>>2]=n;nn(e,j,55476);nn(g,j,k);nn(h,j,l);nn(i,j,d);n=+(B(c,b)|0)*.0001;if(+on(e,g,h,i)>2];e=c+4|0;g=+f[e>>2];d=+f[b+32>>2]+(+f[b+24>>2]*h+ +f[b+28>>2]*g);f[a>>2]=(+f[b+8>>2]+(h*+f[b>>2]+g*+f[b+4>>2]))/d;f[a+4>>2]=(+f[b+20>>2]+(+f[b+12>>2]*+f[c>>2]+ +f[b+16>>2]*+f[e>>2]))/d;return}function on(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0;f=zb;zb=zb+48|0;l=f+32|0;m=f+24|0;k=f+16|0;h=f+8|0;g=f;rn(l,b,a);rn(m,c,a);rn(k,d,a);rn(h,b,c);rn(g,d,c);j=+sn(l,m);i=+sn(m,k);e=+sn(l,k);e=+tn(j,i,e,+sn(h,g));zb=f;return +e}function pn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=+qn(a,b,c)>0.0;f=+qn(b,c,d)>0.0;c=+qn(c,d,a)>0.0;d=+qn(d,a,b)>0.0;d=(f?1:-1)+(e?1:-1)+(c?1:-1)+(d?1:-1)|0;return (((d|0)>-1?d:0-d|0)|0)==4|0}function qn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;d=+f[a>>2];e=+f[a+4>>2];return +((+f[b>>2]-d)*(+f[c+4>>2]-e)-(+f[b+4>>2]-e)*(+f[c>>2]-d))}function rn(a,b,c){a=a|0;b=b|0;c=c|0;f[a>>2]=+f[b>>2]-+f[c>>2];f[a+4>>2]=+f[b+4>>2]-+f[c+4>>2];return}function sn(a,b){a=a|0;b=b|0;return +(+t(+(+f[a>>2]*+f[b+4>>2]-+f[a+4>>2]*+f[b>>2]))*.5)}function tn(a,b,c,d){a=+a;b=+b;c=+c;d=+d;return +(+vn(+un(a,b,c),d))}function un(a,b,c){a=+a;b=+b;c=+c;return +(+vn(+vn(a,b),c))}function vn(a,b){a=+a;b=+b;return +(a>2]|0)-(c[i>>2]|0)>>2>>>0<(m*9|0)>>>0){z=Xf(Xf(PE(Xf(Xf(Xf(56032,31460)|0,31518)|0,35e3)|0,119)|0,35007)|0,31612)|0;IE(y,z+(c[(c[z>>2]|0)+-12>>2]|0)|0);x=XF(y,56736)|0;x=Ib[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;YF(y);QE(z,x)|0;ME(z)|0;ua()}x=c[j>>2]|0;z=x;if((c[j+4>>2]|0)-x>>2>>>0>>0){x=Xf(Xf(PE(Xf(Xf(Xf(56032,31662)|0,31518)|0,35e3)|0,120)|0,35007)|0,31712)|0;IE(y,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);u=XF(y,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(y);QE(x,u)|0;ME(x)|0;ua()}if((c[k+4>>2]|0)-(c[k>>2]|0)>>3>>>0>>0){x=Xf(Xf(PE(Xf(Xf(Xf(56032,31754)|0,31518)|0,35e3)|0,121)|0,35007)|0,31816)|0;IE(y,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);u=XF(y,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(y);QE(x,u)|0;ME(x)|0;ua()}if((e|0)>=4){c[w>>2]=1234;l=+ji(l);x=Bj(o,e)|0;tl(z,e,0);ul(z,e,e,w);q=z+4|0;r=z+8|0;s=z+12|0;t=(h|0)>0;o=0;u=0;while(1){if(!((u|0)<(m|0)&(o|0)<(n|0)))break;ul(z,e,4,w);D=c[z>>2]<<1;C=c[q>>2]<<1;B=c[r>>2]<<1;j=c[s>>2]<<1;do if(xn(b+(D<<2)|0,b+(C<<2)|0,b+(B<<2)|0,b+(j<<2)|0,d+(D<<2)|0,d+(C<<2)|0,d+(B<<2)|0,d+(j<<2)|0)|0?(v=u*9|0,j=c[z>>2]<<1,B=c[q>>2]<<1,C=c[r>>2]<<1,D=c[s>>2]<<1,yn((c[i>>2]|0)+(v<<2)|0,b+(j<<2)|0,b+(B<<2)|0,b+(C<<2)|0,b+(D<<2)|0,d+(j<<2)|0,d+(B<<2)|0,d+(C<<2)|0,d+(D<<2)|0)|0):0){if(t?!(zn((c[i>>2]|0)+(v<<2)|0,g,h)|0):0){j=u;break}j=u+1|0}else j=u;while(0);o=o+1|0;u=j}l=1.0/l;if(u){o=c[k>>2]|0;j=0;while(1){if((j|0)>=(u|0))break;f[o+(j<<3)>>2]=0.0;c[o+(j<<3)+4>>2]=j;j=j+1|0}t=0;while(1){if(!((u|0)>2&(t|0)<(e|0)))break;r=(Bj(x,e-t|0)|0)+t|0;q=0;j=c[k>>2]|0;while(1){if((q|0)==(u|0))break;s=(c[i>>2]|0)+((c[j+(q<<3)+4>>2]|0)*9<<2)|0;o=t;while(1){if((o|0)>=(r|0))break;j=c[z+(o<<2)>>2]<<1;p=+Bn(s,b+(j<<2)|0,d+(j<<2)|0,l);j=c[k>>2]|0;D=j+(q<<3)|0;f[D>>2]=p+ +f[D>>2];o=o+1|0}q=q+1|0}An(y,j,u);t=r;u=u>>1}q=c[k>>2]|0;o=1;l=+f[q>>2];j=c[q+4>>2]|0;while(1){if((o|0)>=(u|0))break;p=+f[q+(o<<3)>>2];if(p>2]|0}o=o+1|0}Vm(a,(c[i>>2]|0)+(j*9<<2)|0);Cn(a);j=1}else j=0}else j=0;zb=A;return j|0}function xn(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;var i=0;i=+qn(a,b,c)>0.0;if((!(i^+qn(e,f,g)>0.0)?(i=+qn(b,c,d)>0.0,!(i^+qn(f,g,h)>0.0)):0)?(i=+qn(c,d,a)>0.0,!(i^+qn(g,h,e)>0.0)):0){a=+qn(d,a,b)>0.0;a=a^+qn(h,e,f)>0.0^1}else a=0;return a|0}function yn(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=zb;zb=zb+128|0;w=x;k=x+124|0;l=x+120|0;m=x+112|0;n=x+104|0;o=x+96|0;p=x+88|0;q=x+80|0;r=x+72|0;s=x+64|0;t=x+56|0;u=x+48|0;v=x+40|0;if((In(o,p,q,r,k,m,b,c,d,e)|0?In(s,t,u,v,l,n,g,h,i,j)|0:0)?Jn(w,o,p,q,r,s,t,u,v)|0:0){Kn(a,w,+f[k>>2],m,+f[l>>2],n);a=1}else a=0;zb=x;return a|0}function zn(a,b,c){a=a|0;b=b|0;c=c|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=zb;zb=zb+48|0;f=n+32|0;e=n+24|0;d=n+16|0;k=n+8|0;l=n;a:do if((c|0)>=2){m=b+8|0;g=b+16|0;nn(f,a,b);nn(e,a,m);nn(d,a,g);Gn(k,f);Gn(l,e);if(Hn(b,m,g,f,e,d)|0){j=3;i=f;f=m;h=b;while(1){if((j|0)>=(c|0))break;h=h+8|0;f=f+8|0;g=g+8|0;nn(i,a,g);if(!(Hn(h,f,g,e,d,i)|0)){d=0;break a}else{o=i;j=j+1|0;i=e;e=d;d=o}}if(Hn(f,g,b,e,d,k)|0)d=Hn(g,b,m,d,k,l)|0;else d=0}else d=0}else d=1;while(0);zb=n;return d|0}function An(a,b,c){a=a|0;b=b|0;c=c|0;Fn(a,b,c,(c&1)+-1+((c|0)/2|0)|0);return}function Bn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,g=0,h=0,i=0;e=zb;zb=zb+16|0;i=e+8|0;g=e;h=i+4|0;$m(i,h,a,+f[b>>2],+f[b+4>>2]);f[g>>2]=+f[i>>2]-+f[c>>2];f[g+4>>2]=+f[h>>2]-+f[c+4>>2];d=+Dn(g,d);zb=e;return +d}function Cn(a){a=a|0;var b=0,c=0.0,d=0;b=a+32|0;c=1.0/+f[b>>2];f[a>>2]=+f[a>>2]*c;d=a+4|0;f[d>>2]=c*+f[d>>2];d=a+8|0;f[d>>2]=c*+f[d>>2];d=a+12|0;f[d>>2]=c*+f[d>>2];d=a+16|0;f[d>>2]=c*+f[d>>2];d=a+20|0;f[d>>2]=c*+f[d>>2];d=a+24|0;f[d>>2]=c*+f[d>>2];a=a+28|0;f[a>>2]=c*+f[a>>2];f[b>>2]=1.0;return}function Dn(a,b){a=a|0;b=+b;return +(+En(+f[a>>2],+f[a+4>>2],b))}function En(a,b,c){a=+a;b=+b;c=+c;return +(+z(+((a*a+b*b)*c+1.0)))}function Fn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0;s=zb;zb=zb+16|0;g=s;if((d|0)<=0){r=Xf(Xf(PE(Xf(Xf(Xf(56032,33419)|0,33448)|0,35e3)|0,82)|0,35007)|0,33521)|0;IE(g,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(g,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(g);QE(r,q)|0;ME(r)|0;ua()}if((e|0)<=0){r=Xf(Xf(PE(Xf(Xf(Xf(56032,33540)|0,33448)|0,35e3)|0,83)|0,35007)|0,33569)|0;IE(g,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(g,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(g);QE(r,q)|0;ME(r)|0;ua()}p=e+-1|0;q=b+(p<<3)|0;r=b+(p<<3)+4|0;l=d+-1|0;m=0;while(1){if((m|0)>=(l|0))break;n=+f[q>>2];o=c[r>>2]|0;g=m;d=l;do{while(1){j=b+(g<<3)|0;k=+f[j>>2];if(!(k>2]|0)>=(o|0))break}g=g+1|0}while(1){h=b+(d<<3)|0;i=+f[h>>2];if(!(n=(c[b+(d<<3)+4>>2]|0))break}d=d+-1|0}if((g|0)<=(d|0)){f[j>>2]=i;f[h>>2]=k;t=b+(g<<3)+4|0;j=b+(d<<3)+4|0;h=c[t>>2]|0;c[t>>2]=c[j>>2];c[j>>2]=h;g=g+1|0;d=d+-1|0}}while((g|0)<=(d|0));l=(g|0)<(e|0)?l:d;m=(d|0)<(p|0)?g:m}b=q;e=c[b+4>>2]|0;t=a;c[t>>2]=c[b>>2];c[t+4>>2]=e;zb=s;return}function Gn(a,b){a=a|0;b=b|0;var d=0,e=0;e=b;d=c[e+4>>2]|0;b=a;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function Hn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;c=+qn(a,b,c)>0.0;return c^+qn(d,e,f)>0.0^1|0}function In(a,b,c,d,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var 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,v=0,w=0,x=0,y=0;l=(+f[h>>2]+ +f[i>>2]+ +f[j>>2]+ +f[k>>2])*.25;f[g>>2]=l;y=h+4|0;x=i+4|0;w=j+4|0;v=k+4|0;m=(+f[y>>2]+ +f[x>>2]+ +f[w>>2]+ +f[v>>2])*.25;f[g+4>>2]=m;s=+f[h>>2]-l;t=+f[y>>2]-m;q=+f[i>>2]-l;r=+f[x>>2]-m;o=+f[j>>2]-l;p=+f[w>>2]-m;l=+f[k>>2]-l;m=+f[v>>2]-m;n=(+u(+(s*s+t*t))+ +u(+(q*q+r*r))+ +u(+(o*o+p*p))+ +u(+(l*l+m*m)))*.25;if(n==0.0)g=0;else{n=1.0/n*1.4142135623730951;f[e>>2]=n;f[a>>2]=s*n;f[a+4>>2]=t*+f[e>>2];f[b>>2]=q*+f[e>>2];f[b+4>>2]=r*+f[e>>2];f[c>>2]=o*+f[e>>2];f[c+4>>2]=p*+f[e>>2];f[d>>2]=l*+f[e>>2];f[d+4>>2]=m*+f[e>>2];g=1}return g|0}function Jn(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;j=zb;zb=zb+288|0;k=j;Ln(k,b,c,d,e,f,g,h,i);if(Mn(a,k)|0)a=!(+t(+(+gn(a)))<1.0e-05);else a=0;zb=j;return a|0}function Kn(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=d|0;e=+e;g=g|0;var h=0,i=0.0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0;l=b+24|0;o=+f[l>>2];q=+f[g>>2];k=b+28|0;n=+f[k>>2];r=o*q+ +f[b>>2]/e;q=q*n+ +f[b+4>>2]/e;p=g+4|0;m=+f[p>>2];o=o*m+ +f[b+12>>2]/e;m=n*m+ +f[b+16>>2]/e;n=+f[d>>2]*c;h=d+4|0;i=+f[h>>2]*c;f[a>>2]=r*c;f[a+4>>2]=q*c;j=b+32|0;f[a+8>>2]=+f[j>>2]*+f[g>>2]+ +f[b+8>>2]/e-r*n-q*i;f[a+12>>2]=o*c;f[a+16>>2]=m*c;f[a+20>>2]=+f[j>>2]*+f[p>>2]+ +f[b+20>>2]/e-o*n-m*i;i=+f[l>>2]*c;f[a+24>>2]=i;e=+f[k>>2]*c;f[a+28>>2]=e;f[a+32>>2]=+f[j>>2]-i*+f[d>>2]-e*+f[h>>2];return}function Ln(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;lo(a,b,f);lo(a+72|0,c,g);lo(a+144|0,d,h);lo(a+216|0,e,i);return}function Mn(a,b){a=a|0;b=b|0;var c=0,d=0;d=zb;zb=zb+288|0;c=d;if(((((((Nn(c,b)|0?On(c,b)|0:0)?Pn(c,b)|0:0)?Qn(c,b)|0:0)?Rn(c,b)|0:0)?Sn(c,b)|0:0)?Tn(c,b)|0:0)?Un(c,b)|0:0)a=Vn(a,c)|0;else a=0;zb=d;return a|0}function Nn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0;g=zb;zb=zb+32|0;d=g;h=+_n(b);f[d>>2]=h;e=b+36|0;h=+_n(e);f[d+4>>2]=h;h=+_n(b+72|0);f[d+8>>2]=h;h=+_n(b+108|0);f[d+12>>2]=h;h=+_n(b+144|0);f[d+16>>2]=h;h=+_n(b+180|0);f[d+20>>2]=h;h=+_n(b+216|0);f[d+24>>2]=h;h=+_n(b+252|0);f[d+28>>2]=h;c=jo(d)|0;d=d+(c<<2)|0;if(+f[d>>2]==0.0)a=0;else{co(b,b+(c*9<<2)|0);Yn(a,b,1.0/+u(+(+f[d>>2])));ko(a+36|0,e,63);a=1}zb=g;return a|0}function On(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0;e=zb;zb=zb+32|0;g=e;c=a+36|0;d=b+36|0;ao(c,a,d);n=a+72|0;ao(n,a,b+72|0);m=a+108|0;ao(m,a,b+108|0);l=a+144|0;ao(l,a,b+144|0);k=a+180|0;ao(k,a,b+180|0);j=a+216|0;ao(j,a,b+216|0);i=a+252|0;ao(i,a,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(n);f[g+4>>2]=h;h=+_n(m);f[g+8>>2]=h;h=+_n(l);f[g+12>>2]=h;h=+_n(k);f[g+16>>2]=h;h=+_n(j);f[g+20>>2]=h;h=+_n(i);f[g+24>>2]=h;a=io(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Pn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0,k=0,l=0,m=0;e=zb;zb=zb+32|0;g=e;c=a+72|0;m=a+36|0;d=b+72|0;ao(c,m,d);l=a+108|0;ao(l,m,b+108|0);k=a+144|0;ao(k,m,b+144|0);j=a+180|0;ao(j,m,b+180|0);i=a+216|0;ao(i,m,b+216|0);a=a+252|0;ao(a,m,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(l);f[g+4>>2]=h;h=+_n(k);f[g+8>>2]=h;h=+_n(j);f[g+12>>2]=h;h=+_n(i);f[g+16>>2]=h;h=+_n(a);f[g+20>>2]=h;a=ho(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Qn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0,k=0,l=0;e=zb;zb=zb+32|0;g=e;c=a+108|0;l=a+72|0;d=b+108|0;ao(c,l,d);k=a+144|0;ao(k,l,b+144|0);j=a+180|0;ao(j,l,b+180|0);i=a+216|0;ao(i,l,b+216|0);a=a+252|0;ao(a,l,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(k);f[g+4>>2]=h;h=+_n(j);f[g+8>>2]=h;h=+_n(i);f[g+12>>2]=h;h=+_n(a);f[g+16>>2]=h;a=go(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Rn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0,k=0;e=zb;zb=zb+16|0;g=e;c=a+144|0;k=a+108|0;d=b+144|0;ao(c,k,d);j=a+180|0;ao(j,k,b+180|0);i=a+216|0;ao(i,k,b+216|0);a=a+252|0;ao(a,k,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(j);f[g+4>>2]=h;h=+_n(i);f[g+8>>2]=h;h=+_n(a);f[g+12>>2]=h;a=fo(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Sn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0;e=zb;zb=zb+16|0;g=e;c=a+180|0;j=a+144|0;d=b+180|0;ao(c,j,d);i=a+216|0;ao(i,j,b+216|0);a=a+252|0;ao(a,j,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(i);f[g+4>>2]=h;h=+_n(a);f[g+8>>2]=h;a=eo(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Tn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0;e=zb;zb=zb+16|0;g=e;c=a+216|0;i=a+180|0;d=b+216|0;ao(c,i,d);a=a+252|0;ao(a,i,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(a);f[g+4>>2]=h;a=bo(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Un(a,b){a=a|0;b=b|0;var c=0.0,d=0;d=a+252|0;ao(d,a+216|0,b+252|0);c=+_n(d);if(c==0.0)a=0;else{Yn(d,d,1.0/+u(+c));a=1}return a|0}function Vn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0.0;d=zb;zb=zb+384|0;e=d+336|0;c=d;g=+Wn(c,b,0);f[e>>2]=g;g=+Wn(c+36|0,b,1);f[e+4>>2]=g;g=+Wn(c+72|0,b,2);f[e+8>>2]=g;g=+Wn(c+108|0,b,3);f[e+12>>2]=g;g=+Wn(c+144|0,b,4);f[e+16>>2]=g;g=+Wn(c+180|0,b,5);f[e+20>>2]=g;g=+Wn(c+216|0,b,6);f[e+24>>2]=g;g=+Wn(c+252|0,b,7);f[e+28>>2]=g;g=+Wn(c+288|0,b,8);f[e+32>>2]=g;b=Xn(e)|0;if(+f[e+(b<<2)>>2]==0.0)b=0;else{Vm(a,c+(b*9<<2)|0);b=1}zb=d;return b|0}function Wn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0;Yn(a,b,-+f[b+(c<<2)>>2]);g=a+(c<<2)|0;f[g>>2]=+f[g>>2]+1.0;Zn(a,b+36|0,-+f[b+(c+9<<2)>>2]);Zn(a,b+72|0,-+f[b+(c+18<<2)>>2]);Zn(a,b+108|0,-+f[b+(c+27<<2)>>2]);Zn(a,b+144|0,-+f[b+(c+36<<2)>>2]);Zn(a,b+180|0,-+f[b+(c+45<<2)>>2]);Zn(a,b+216|0,-+f[b+(c+54<<2)>>2]);Zn(a,b+252|0,-+f[b+(c+63<<2)>>2]);e=+_n(a);d=+u(+e);if(e==0.0)d=0.0;else Yn(a,a,1.0/d);return +d}function Xn(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;b=+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b;b=+f[a+20>>2]>+f[a+(b<<2)>>2]?5:b;b=+f[a+24>>2]>+f[a+(b<<2)>>2]?6:b;b=+f[a+28>>2]>+f[a+(b<<2)>>2]?7:b;return (+f[a+32>>2]>+f[a+(b<<2)>>2]?8:b)|0}function Yn(a,b,c){a=a|0;b=b|0;c=+c;f[a>>2]=+f[b>>2]*c;f[a+4>>2]=+f[b+4>>2]*c;f[a+8>>2]=+f[b+8>>2]*c;f[a+12>>2]=+f[b+12>>2]*c;f[a+16>>2]=+f[b+16>>2]*c;f[a+20>>2]=+f[b+20>>2]*c;f[a+24>>2]=+f[b+24>>2]*c;f[a+28>>2]=+f[b+28>>2]*c;f[a+32>>2]=+f[b+32>>2]*c;return}function Zn(a,b,c){a=a|0;b=b|0;c=+c;var d=0;f[a>>2]=+f[a>>2]+ +f[b>>2]*c;d=a+4|0;f[d>>2]=+f[d>>2]+ +f[b+4>>2]*c;d=a+8|0;f[d>>2]=+f[d>>2]+ +f[b+8>>2]*c;d=a+12|0;f[d>>2]=+f[d>>2]+ +f[b+12>>2]*c;d=a+16|0;f[d>>2]=+f[d>>2]+ +f[b+16>>2]*c;d=a+20|0;f[d>>2]=+f[d>>2]+ +f[b+20>>2]*c;d=a+24|0;f[d>>2]=+f[d>>2]+ +f[b+24>>2]*c;d=a+28|0;f[d>>2]=+f[d>>2]+ +f[b+28>>2]*c;a=a+32|0;f[a>>2]=+f[a>>2]+ +f[b+32>>2]*c;return}function _n(a){a=a|0;return +(+$n(a,a))}function $n(a,b){a=a|0;b=b|0;return +(+f[a>>2]*+f[b>>2]+ +f[a+4>>2]*+f[b+4>>2]+ +f[a+8>>2]*+f[b+8>>2]+ +f[a+12>>2]*+f[b+12>>2]+ +f[a+16>>2]*+f[b+16>>2]+ +f[a+20>>2]*+f[b+20>>2]+ +f[a+24>>2]*+f[b+24>>2]+ +f[a+28>>2]*+f[b+28>>2]+ +f[a+32>>2]*+f[b+32>>2])}function ao(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+$n(c,b);f[a>>2]=+f[a>>2]-d*+f[b>>2];c=a+4|0;f[c>>2]=+f[c>>2]-d*+f[b+4>>2];c=a+8|0;f[c>>2]=+f[c>>2]-d*+f[b+8>>2];c=a+12|0;f[c>>2]=+f[c>>2]-d*+f[b+12>>2];c=a+16|0;f[c>>2]=+f[c>>2]-d*+f[b+16>>2];c=a+20|0;f[c>>2]=+f[c>>2]-d*+f[b+20>>2];c=a+24|0;f[c>>2]=+f[c>>2]-d*+f[b+24>>2];c=a+28|0;f[c>>2]=+f[c>>2]-d*+f[b+28>>2];c=a+32|0;f[c>>2]=+f[c>>2]-d*+f[b+32>>2];return}function bo(a){a=a|0;return +f[a+4>>2]>+f[a>>2]|0}function co(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=c[a>>2]|0;f=a+4|0;c[a>>2]=c[b>>2];d=b+4|0;c[b>>2]=g;g=c[f>>2]|0;e=a+8|0;c[f>>2]=c[d>>2];f=b+8|0;c[d>>2]=g;d=c[e>>2]|0;g=a+12|0;c[e>>2]=c[f>>2];e=b+12|0;c[f>>2]=d;f=c[g>>2]|0;d=a+16|0;c[g>>2]=c[e>>2];g=b+16|0;c[e>>2]=f;e=c[d>>2]|0;f=a+20|0;c[d>>2]=c[g>>2];d=b+20|0;c[g>>2]=e;g=c[f>>2]|0;e=a+24|0;c[f>>2]=c[d>>2];f=b+24|0;c[d>>2]=g;d=c[e>>2]|0;g=a+28|0;c[e>>2]=c[f>>2];e=b+28|0;c[f>>2]=d;f=c[g>>2]|0;d=a+32|0;c[g>>2]=c[e>>2];b=b+32|0;c[e>>2]=f;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function eo(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;return (+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b)|0}function fo(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;return (+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b)|0}function go(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;return (+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b)|0}function ho(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;b=+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b;return (+f[a+20>>2]>+f[a+(b<<2)>>2]?5:b)|0}function io(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;b=+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b;b=+f[a+20>>2]>+f[a+(b<<2)>>2]?5:b;return (+f[a+24>>2]>+f[a+(b<<2)>>2]?6:b)|0}function jo(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;b=+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b;b=+f[a+20>>2]>+f[a+(b<<2)>>2]?5:b;b=+f[a+24>>2]>+f[a+(b<<2)>>2]?6:b;return (+f[a+28>>2]>+f[a+(b<<2)>>2]?7:b)|0}function ko(a,b,c){a=a|0;b=b|0;c=c|0;_O(a|0,b|0,c<<2|0)|0;return}function lo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;f[a>>2]=-+f[b>>2];e=b+4|0;f[a+4>>2]=-+f[e>>2];f[a+8>>2]=-1.0;mo(a+12|0);f[a+24>>2]=+f[d>>2]*+f[b>>2];f[a+28>>2]=+f[d>>2]*+f[e>>2];c[a+32>>2]=c[d>>2];mo(a+36|0);f[a+48>>2]=-+f[b>>2];f[a+52>>2]=-+f[e>>2];f[a+56>>2]=-1.0;d=d+4|0;f[a+60>>2]=+f[d>>2]*+f[b>>2];f[a+64>>2]=+f[d>>2]*+f[e>>2];c[a+68>>2]=c[d>>2];return}function mo(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function no(a,b){a=a|0;b=b|0;var d=0;if((rj(a)|0)>>>0>>0)EO(a);if(b>>>0>536870911){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b<<3)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<3);return}}function oo(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{po(b);b=(c[d>>2]|0)+8|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function po(a){a=a|0;f[a>>2]=0.0;f[a+4>>2]=0.0;return}function qo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=zb;zb=zb+16|0;j=k;i=a+88|0;n=a+84|0;h=a+52|0;m=(((g|0)%(c[i>>2]|0)|0|0)%(c[n>>2]|0)|0|0)%(c[h>>2]|0)|0;c[b>>2]=m;m=(((g-m|0)%(c[i>>2]|0)|0|0)%(c[n>>2]|0)|0|0)/(c[h>>2]|0)|0;c[d>>2]=m;m=g-(c[b>>2]|0)-(B(c[h>>2]|0,m)|0)|0;m=((m|0)%(c[i>>2]|0)|0|0)/(c[n>>2]|0)|0;c[e>>2]=m;l=B(c[h>>2]|0,c[d>>2]|0)|0;g=g-(c[b>>2]|0)-((B(c[n>>2]|0,m)|0)+l)|0;i=(g|0)/(c[i>>2]|0)|0;c[f>>2]=i;g=c[b>>2]|0;if((g|0)<=-1){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32616)|0,32155)|0,35e3)|0,190)|0,35007)|0,32649)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>=(c[h>>2]|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32667)|0,32155)|0,35e3)|0,191)|0,35007)|0,32649)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}g=c[d>>2]|0;if((g|0)<=-1){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32707)|0,32155)|0,35e3)|0,192)|0,35007)|0,32740)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>=(c[a+56>>2]|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32758)|0,32155)|0,35e3)|0,193)|0,35007)|0,32740)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}g=c[e>>2]|0;if((g|0)<=-1){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32798)|0,32155)|0,35e3)|0,194)|0,35007)|0,32835)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>=(c[a+60>>2]|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32857)|0,32155)|0,35e3)|0,195)|0,35007)|0,32835)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((i|0)<=-1){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32905)|0,32155)|0,35e3)|0,196)|0,35007)|0,32942)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((i|0)<(c[a+64>>2]|0)){zb=k;return}else{n=Xf(Xf(PE(Xf(Xf(Xf(56032,32964)|0,32155)|0,35e3)|0,197)|0,35007)|0,32942)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}}function ro(a){a=a|0;return a+124|0}function so(a){a=a|0;return a+112|0}function to(a,b,d,e,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0,q=0;q=zb;zb=zb+16|0;p=q;l=+t(+(h-l));f[b>>2]=l;l=+t(+(i-m));f[d>>2]=l;l=+t(+(k-o));f[g>>2]=l;l=+t(+(j-n));l=+vn(l,+(c[a+60>>2]|0)-l);f[e>>2]=l;if(!(l>=0.0)){q=Xf(Xf(PE(Xf(Xf(Xf(56032,31935)|0,32155)|0,35e3)|0,333)|0,35007)|0,31976)|0;IE(p,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);g=XF(p,56736)|0;g=Ib[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;YF(p);QE(q,g)|0;ME(q)|0;ua()}else{zb=q;return}}function uo(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){xo(a,b);oh(a,b)}return}function vo(a,b,c){a=a|0;b=+b;c=+c;f[a+8>>2]=b;f[a+12>>2]=c;return}function wo(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function xo(a,b){a=a|0;b=b|0;var d=0;if((ph(a)|0)>>>0>>0)EO(a);if(b>>>0>1073741823){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b<<2)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<2);return}}function yo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;t=zb;zb=zb+48|0;j=t+8|0;i=t+32|0;h=t+28|0;k=t+24|0;p=t+20|0;q=t+16|0;r=t;s=a+8|0;if(!(c[s>>2]|0)){o=Xf(Xf(PE(Xf(Xf(Xf(56032,32010)|0,29190)|0,35e3)|0,405)|0,35007)|0,32045)|0;IE(j,o+(c[(c[o>>2]|0)+-12>>2]|0)|0);n=XF(j,56736)|0;n=Ib[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;YF(j);QE(o,n)|0;ME(o)|0;ua()}c[a+100>>2]=0;l=a+72|0;m=a+76|0;c[m>>2]=c[l>>2];n=a+84|0;o=a+88|0;e=c[o>>2]|0;while(1){d=c[n>>2]|0;f=d;if((d|0)==(e|0))break;g=e-f|0;if((g|0)>8){e=e+-8|0;u=d;v=c[u>>2]|0;u=c[u+4>>2]|0;x=j;c[x>>2]=v;c[x+4>>2]=u;x=e;w=c[x+4>>2]|0;c[d>>2]=c[x>>2];c[d+4>>2]=w;d=e;c[d>>2]=v;c[d+4>>2]=u;Yl(j);c[k>>2]=f;c[p>>2]=e;c[q>>2]=f;c[h>>2]=c[k>>2];c[i>>2]=c[p>>2];c[j>>2]=c[q>>2];Ao(h,i,r,(g>>>3)+-1|0,j);e=c[o>>2]|0}d=0;while(1){if((d|0)==-1)break;x=d+-1|0;Yl(e+(x<<3)|0);d=x}e=e+-8|0;c[o>>2]=e}Bo(a,n,c[s>>2]|0,b);zb=t;return (c[m>>2]|0)-(c[l>>2]|0)>>2|0}function zo(a){a=a|0;return a+72|0}function Ao(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;m=zb;zb=zb+16|0;l=m;j=c[f>>2]|0;k=c[a>>2]|0;b=j-k|0;i=j;h=j;if((e|0)>=2?(n=(e+-2|0)/2|0,(n|0)>=(b>>3|0)):0){b=b>>2|1;a=k+(b<<3)|0;d=a;g=b+1|0;if((g|0)<(e|0)){o=a+8|0;a=Oo(a,o)|0;b=a?g:b;d=a?o:d}if(!(Oo(d,i)|0)){o=c[j+4>>2]|0;i=l;c[i>>2]=c[j>>2];c[i+4>>2]=o;i=d;while(1){o=h;h=i;g=h;j=c[g+4>>2]|0;c[o>>2]=c[g>>2];c[o+4>>2]=j;c[f>>2]=i;if((n|0)<(b|0))break;b=b<<1|1;a=k+(b<<3)|0;d=a;g=b+1|0;if((g|0)<(e|0)){o=a+8|0;j=Oo(a,o)|0;b=j?g:b;d=j?o:d}if(Oo(d,l)|0)break;else i=d}e=l;f=c[e+4>>2]|0;o=i;c[o>>2]=c[e>>2];c[o+4>>2]=f;Yl(l)}}zb=m;return}function Bo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;t=zb;zb=zb+64|0;m=t+8|0;l=t+56|0;k=t+52|0;n=t+44|0;o=t+36|0;p=t+28|0;q=t;g=t+48|0;h=t+40|0;f=t+32|0;r=t+16|0;if(Co(d)|0){c[g>>2]=c[a+76>>2];s=Do(d)|0;c[h>>2]=c[s>>2];s=(Do(d)|0)+4|0;c[f>>2]=c[s>>2];c[k>>2]=c[g>>2];c[l>>2]=c[h>>2];c[m>>2]=c[f>>2];Eo(a+72|0,k,l,m)|0}else{c[r>>2]=0;h=r+4|0;c[h>>2]=0;c[r+8>>2]=0;Fo(d,r,b,e);f=0;while(1){g=c[r>>2]|0;if(f>>>0>=(c[h>>2]|0)-g>>2>>>0)break;Bo(a,b,c[g+(f<<2)>>2]|0,e);f=f+1|0}i=a+100|0;if((c[i>>2]|0)<(c[a+104>>2]|0)?(j=c[b>>2]|0,s=b+4|0,(j|0)!=(c[s>>2]|0)):0){d=Go(j)|0;f=c[b>>2]|0;g=c[s>>2]|0;h=g-f|0;if((h|0)>8){j=f;g=g+-8|0;u=j;v=c[u>>2]|0;u=c[u+4>>2]|0;x=m;c[x>>2]=v;c[x+4>>2]=u;x=g;w=c[x+4>>2]|0;c[j>>2]=c[x>>2];c[j+4>>2]=w;j=g;c[j>>2]=v;c[j+4>>2]=u;Yl(m);c[n>>2]=f;c[o>>2]=g;c[p>>2]=f;c[k>>2]=c[n>>2];c[l>>2]=c[o>>2];c[m>>2]=c[p>>2];Ao(k,l,q,(h>>>3)+-1|0,m);g=c[s>>2]|0}f=0;while(1){if((f|0)==-1)break;x=f+-1|0;Yl(g+(x<<3)|0);f=x}c[s>>2]=g+-8;c[i>>2]=(c[i>>2]|0)+1;Bo(a,b,d,e)}Ho(r)}zb=t;return}function Co(b){b=b|0;return (a[b+100>>0]|0)!=0|0}function Do(a){a=a|0;return a+116|0}function Eo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+48|0;p=s+40|0;o=s+36|0;q=s+32|0;r=s+28|0;j=s+8|0;k=s+4|0;l=s;f=c[a>>2]|0;g=f;b=f+((c[b>>2]|0)-g>>2<<2)|0;d=c[d>>2]|0;f=c[e>>2]|0;n=f-d|0;m=n>>2;a:do if((n|0)>0){h=a+8|0;n=c[a+4>>2]|0;i=n;if((m|0)>((c[h>>2]|0)-i>>2|0)){e=(i-g>>2)+m|0;g=ll(a)|0;if(g>>>0>>0)EO(a);else{r=c[a>>2]|0;n=(c[h>>2]|0)-r|0;q=n>>1;ml(j,n>>2>>>0>>1>>>0?(q>>>0>>0?e:q):g,b-r>>2,a+8|0);c[k>>2]=d;c[l>>2]=f;c[o>>2]=c[k>>2];c[p>>2]=c[l>>2];ap(j,o,p);b=bp(a,j,b)|0;ol(j);break}}g=i-b|0;h=g>>2;e=d+(h<<2)|0;if((m|0)>(h|0)){c[q>>2]=e;c[r>>2]=f;c[o>>2]=c[q>>2];c[p>>2]=c[r>>2];_o(a,o,p,m-h|0);if((g|0)>0)f=e;else break}$o(a,b,n,b+(m<<2)|0);e=b;while(1){if((d|0)==(f|0))break a;c[e>>2]=c[d>>2];e=e+4|0;d=d+4|0}}while(0);zb=s;return b|0}function Fo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=zb;zb=zb+48|0;n=t+8|0;m=t+36|0;o=t+32|0;p=t+28|0;q=t;r=t+16|0;s=a+104|0;Io(r,(c[a+108>>2]|0)-(c[s>>2]|0)>>2);l=r+4|0;a=-1;f=0;k=-1;while(1){if(f>>>0>=(c[l>>2]|0)-(c[r>>2]|0)>>3>>>0)break;i=yl((c[(c[s>>2]|0)+(f<<2)>>2]|0)+4|0,e)|0;Jo(n,c[(c[s>>2]|0)+(f<<2)>>2]|0,i);g=n;j=c[g+4>>2]|0;h=(c[r>>2]|0)+(f<<3)|0;c[h>>2]=c[g>>2];c[h+4>>2]=j;Yl(n);h=i>>>0>>0;j=h?f:k;a=h?i:a;f=f+1|0;k=j}if((k|0)==-1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32065)|0,29190)|0,35e3)|0,155)|0,35007)|0,32099)|0;IE(n,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(n,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(n);QE(j,i)|0;ME(j)|0;ua()}a=c[(c[s>>2]|0)+(k<<2)>>2]|0;c[n>>2]=a;i=b+4|0;f=c[i>>2]|0;j=b+8|0;if(f>>>0<(c[j>>2]|0)>>>0){c[f>>2]=a;c[i>>2]=(c[i>>2]|0)+4}else Ko(b,n);g=d+4|0;h=d+8|0;e=0;while(1){a=c[r>>2]|0;if(e>>>0>=(c[l>>2]|0)-a>>3>>>0)break;do if((e|0)!=(k|0)){f=Lo(a+(e<<3)|0)|0;if((f|0)==(Lo((c[r>>2]|0)+(k<<3)|0)|0)){a=c[(c[s>>2]|0)+(e<<2)>>2]|0;c[n>>2]=a;f=c[i>>2]|0;if(f>>>0<(c[j>>2]|0)>>>0){c[f>>2]=a;c[i>>2]=(c[i>>2]|0)+4}else Ko(b,n);break}else{a=(c[r>>2]|0)+(e<<3)|0;f=c[g>>2]|0;if((f|0)==(c[h>>2]|0)){Mo(d,a);a=c[g>>2]|0}else{v=a;u=c[v+4>>2]|0;a=f;c[a>>2]=c[v>>2];c[a+4>>2]=u;a=(c[g>>2]|0)+8|0;c[g>>2]=a}v=c[d>>2]|0;c[o>>2]=v;c[p>>2]=a;c[m>>2]=c[o>>2];c[n>>2]=c[p>>2];No(m,n,q,a-v>>3);break}}while(0);e=e+1|0}Xl(r);zb=t;return}function Go(a){a=a|0;return c[a>>2]|0}function Ho(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Io(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){Xo(a,b);Yo(a,b)}return}function Jo(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function Ko(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>2)+1|0;g=To(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>1;Uo(d,k>>2>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>2,a+8|0);g=d+8|0;c[c[g>>2]>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;Vo(a,d);Wo(d);zb=h;return}}function Lo(a){a=a|0;return c[a+4>>2]|0}function Mo(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=Po(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;Qo(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;Ro(a,d);So(d);zb=h;return}}function No(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;j=zb;zb=zb+16|0;i=j;if((e|0)>1?(g=(e+-2|0)/2|0,k=c[a>>2]|0,h=k+(g<<3)|0,f=(c[b>>2]|0)+-8|0,c[b>>2]=f,Oo(h,f)|0):0){a=f;e=c[a+4>>2]|0;d=i;c[d>>2]=c[a>>2];c[d+4>>2]=e;d=h;while(1){a=d;e=c[a+4>>2]|0;h=f;c[h>>2]=c[a>>2];c[h+4>>2]=e;c[b>>2]=d;if(!g)break;g=(g+-1|0)/2|0;f=k+(g<<3)|0;if(!(Oo(f,i)|0))break;else{h=d;d=f;f=h}}h=i;b=c[h+4>>2]|0;k=d;c[k>>2]=c[h>>2];c[k+4>>2]=b;Yl(i)}zb=j;return}function Oo(a,b){a=a|0;b=b|0;return (c[a+4>>2]|0)>>>0>(c[b+4>>2]|0)>>>0|0}function Po(a){a=a|0;return 536870911}function Qo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function Ro(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;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-8|0;k=h;j=c[k+4>>2]|0;i=(c[g>>2]|0)+-8|0;c[i>>2]=c[k>>2];c[i+4>>2]=j;c[g>>2]=(c[g>>2]|0)+-8;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;k=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=k;i=a+8|0;k=b+12|0;j=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=j;c[b>>2]=c[g>>2];return}function So(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-8|0;c[d>>2]=e;Yl(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function To(a){a=a|0;return 1073741823}function Uo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>1073741823){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<2)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function Vo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function Wo(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-4|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function Xo(a,b){a=a|0;b=b|0;var d=0;if((Po(a)|0)>>>0>>0)EO(a);if(b>>>0>536870911){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b<<3)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<3);return}}function Yo(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{Zo(b);b=(c[d>>2]|0)+8|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Zo(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function _o(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[d>>2]|0;e=a+4|0;d=c[b>>2]|0;while(1){if((d|0)==(f|0))break;b=c[e>>2]|0;c[b>>2]=c[d>>2];c[e>>2]=b+4;d=d+4|0}return}function $o(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;h=a+4|0;i=c[h>>2]|0;f=i-e|0;g=f>>2;a=b+(g<<2)|0;e=i;while(1){if(a>>>0>=d>>>0)break;c[e>>2]=c[a>>2];j=e+4|0;c[h>>2]=j;a=a+4|0;e=j}if(f|0)$O(i+(0-g<<2)|0,b|0,f|0)|0;return}function ap(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[d>>2]|0;d=a+8|0;a=c[b>>2]|0;while(1){if((a|0)==(e|0))break;f=c[d>>2]|0;c[f>>2]=c[a>>2];c[d>>2]=f+4;f=a+4|0;c[b>>2]=f;a=f}return}function bp(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;i=b+4|0;j=c[i>>2]|0;f=c[a>>2]|0;h=d;g=h-f|0;e=j+(0-(g>>2)<<2)|0;c[i>>2]=e;if((g|0)>0)_O(e|0,f|0,g|0)|0;f=a+4|0;g=b+8|0;e=(c[f>>2]|0)-h|0;if((e|0)>0){_O(c[g>>2]|0,d|0,e|0)|0;c[g>>2]=(c[g>>2]|0)+(e>>>2<<2)}h=c[a>>2]|0;c[a>>2]=c[i>>2];c[i>>2]=h;h=c[f>>2]|0;c[f>>2]=c[g>>2];c[g>>2]=h;h=a+8|0;d=b+12|0;a=c[h>>2]|0;c[h>>2]=c[d>>2];c[d>>2]=a;c[b>>2]=c[i>>2];return j|0}function cp(a){a=a|0;return dp(c[c[a>>2]>>2]|0)|0}function dp(a){a=a|0;return c[a+24>>2]|0}function ep(a,b){a=a|0;b=b|0;var d=0,e=0;d=zb;zb=zb+16|0;e=d;c[e>>2]=b;b=mm((c[a>>2]|0)+4|0,e)|0;zb=d;return b|0}function fp(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;gp(d,c[c[a>>2]>>2]|0);a=gm(zk(c[d>>2]|0)|0)|0;Rj(d);zb=b;return a|0}function gp(a,b){a=a|0;b=b|0;c[a>>2]=c[b+64>>2];b=c[b+68>>2]|0;c[a+4>>2]=b;if(b|0){a=b+4|0;c[a>>2]=(c[a>>2]|0)+1}return}function hp(a){a=a|0;return ip(c[c[a>>2]>>2]|0)|0}function ip(a){a=a|0;return a+12|0}function jp(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;a[b+16>>0]=1;d=b+108|0;e=b+20|0;f=e+88|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[d>>2]=1065353216;f=b+112|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;return}function kp(a){a=a|0;Xj(a+124|0);gh(a+112|0);lp(a+92|0);return}function lp(a){a=a|0;mp(a);return}function mp(a){a=a|0;var b=0;np(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function np(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;Pf(b,16);b=a}return}function op(b,d,e,g,h,i,j,k,l){b=b|0;d=+d;e=+e;g=+g;h=+h;i=i|0;j=j|0;k=k|0;l=l|0;f[b+20>>2]=d;f[b+24>>2]=e;f[b+28>>2]=g;f[b+32>>2]=h;f[b+36>>2]=-1.0;f[b+40>>2]=1.0;c[b+52>>2]=i;c[b+56>>2]=j;c[b+60>>2]=k;c[b+64>>2]=l;l=B(j,i)|0;c[b+84>>2]=l;l=B(l,k)|0;c[b+88>>2]=l;f[b+44>>2]=10.0;f[b+48>>2]=.4342944622039795;a[b+16>>0]=(j|i|0)==0&1;pp(b+92|0);return}function pp(a){a=a|0;var b=0,d=0,e=0;d=a+12|0;if(c[d>>2]|0){e=a+8|0;np(a,c[e>>2]|0);c[e>>2]=0;e=c[a+4>>2]|0;b=0;while(1){if((b|0)==(e|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+1|0}c[d>>2]=0}return}function qp(b,d,e,g){b=b|0;d=d|0;e=e|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;t=zb;zb=zb+16|0;p=t+12|0;q=t+8|0;r=t+4|0;s=t;pp(b+92|0);if(g|0){j=b+112|0;fh(j,g<<2);k=b+124|0;Vk(k,g);if(a[b+16>>0]|0)rp(b,d,e,g);l=b+68|0;m=b+72|0;n=b+76|0;o=b+80|0;h=0;i=0;while(1){if((i|0)>=(g|0))break;u=i<<2;v=d+(u<<2)|0;u=e+(u<<2)|0;sp(b,p,q,r,s,+f[v>>2],+f[v+4>>2],+f[v+8>>2],+f[v+12>>2],+f[u>>2],+f[u+4>>2],+f[u+8>>2],+f[u+12>>2]);if(tp(b,+f[p>>2],+f[q>>2],+f[r>>2],+f[s>>2])|0){v=(c[j>>2]|0)+(h<<2<<2)|0;c[v>>2]=c[l>>2];c[v+4>>2]=c[m>>2];c[v+8>>2]=c[n>>2];c[v+12>>2]=c[o>>2];c[(c[k>>2]|0)+(h<<2)>>2]=i;h=h+1|0}i=i+1|0}fh(j,h<<2);Vk(k,h)}zb=t;return}function rp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;l=zb;zb=zb+16|0;g=l+12|0;k=l;i=a+4|0;j=Aj(c[a>>2]|0,c[i>>2]|0)|0;uo(k,e);if((e|0)<=0){m=Xf(Xf(PE(Xf(Xf(Xf(56032,33144)|0,33176)|0,35e3)|0,208)|0,35007)|0,33265)|0;IE(g,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);n=XF(g,56736)|0;n=Ib[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;YF(g);QE(m,n)|0;ME(m)|0;ua()}if((c[a>>2]|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,33287)|0,33176)|0,35e3)|0,209)|0,35007)|0,33329)|0;IE(g,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(g,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(g);QE(n,m)|0;ME(n)|0;ua()}if((c[i>>2]|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,33352)|0,33176)|0,35e3)|0,210)|0,35007)|0,33395)|0;IE(g,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(g,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(g);QE(n,m)|0;ME(n)|0;ua()}h=+(j|0);g=0;while(1){if((g|0)==(e|0))break;n=g<<2;o=+Bp(+f[b+(n<<2)+12>>2],+f[d+(n<<2)+12>>2])*h;f[(c[k>>2]|0)+(g<<2)>>2]=o;g=g+1|0}n=c[k>>2]|0;o=+Dp(n,(c[k+4>>2]|0)-n>>2)*.25;n=Aj(5,~~+A(+((+f[a+24>>2]-+f[a+20>>2])/o)))|0;m=a+52|0;c[m>>2]=n;n=Aj(5,~~+A(+((+f[a+32>>2]-+f[a+28>>2])/o)))|0;c[a+56>>2]=n;n=B(c[m>>2]|0,n)|0;c[a+84>>2]=n;n=B(c[a+60>>2]|0,n)|0;c[a+88>>2]=n;gh(k);zb=l;return}function sp(a,b,d,e,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0,q=0,r=0,s=0,t=0;s=zb;zb=zb+32|0;q=s+16|0;r=s;n=j-n;f[e>>2]=n;j=n;if(!(j<=-3.141592653589793)){if(j>3.141592653589793){n=j+-6.283185307179586;p=5}}else{n=j+6.283185307179586;p=5}if((p|0)==5)f[e>>2]=n;if(!(n>-3.141592653589793)){p=Xf(Xf(PE(Xf(Xf(Xf(56032,32372)|0,32155)|0,35e3)|0,468)|0,35007)|0,32407)|0;IE(q,p+(c[(c[p>>2]|0)+-12>>2]|0)|0);t=XF(q,56736)|0;t=Ib[c[(c[t>>2]|0)+28>>2]&63](t,10)|0;YF(q);QE(p,t)|0;ME(p)|0;ua()}if(!(n<=3.141592653589793)){t=Xf(Xf(PE(Xf(Xf(Xf(56032,32426)|0,32155)|0,35e3)|0,469)|0,35007)|0,32407)|0;IE(q,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);s=XF(q,56736)|0;s=Ib[c[(c[s>>2]|0)+28>>2]&63](s,10)|0;YF(q);QE(t,s)|0;ME(t)|0;ua()}else{n=+Bp(k,o);f[g>>2]=n;Cp(r,+f[e>>2],n);n=+z(+(+f[g>>2]));f[g>>2]=n*+f[a+48>>2];n=+f[r>>2];j=+f[r+4>>2];o=+f[r+8>>2];k=+f[r+12>>2];g=a+8|0;t=a+12|0;f[b>>2]=h-(n*l+j*m)+(n*+f[g>>2]+j*+f[t>>2]);f[d>>2]=i-(o*l+k*m)+(o*+f[g>>2]+k*+f[t>>2]);zb=s;return}}function tp(a,b,d,e,g){a=a|0;b=+b;d=+d;e=+e;g=+g;var h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0,v=0,w=0,x=0;x=zb;zb=zb+16|0;h=x;t=+f[a+20>>2];if((((((!(t>b)?(m=+f[a+24>>2],!(m<=b)):0)?(n=+f[a+28>>2],!(n>d)):0)?(o=+f[a+32>>2],!(o<=d)):0)?(p=e,!(p<=-3.141592653589793|p>3.141592653589793)):0)?(q=+f[a+36>>2],!(q>g)):0)?(r=+f[a+40>>2],!(r<=g)):0){if(!(t<=b)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32121)|0,32155)|0,35e3)|0,360)|0,35007)|0,32242)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(m>b)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32257)|0,32155)|0,35e3)|0,361)|0,35007)|0,32242)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(n<=d)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32290)|0,32155)|0,35e3)|0,362)|0,35007)|0,32324)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(o>d)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32339)|0,32155)|0,35e3)|0,363)|0,35007)|0,32324)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(p>-3.141592653589793)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32372)|0,32155)|0,35e3)|0,364)|0,35007)|0,32407)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(p<=3.141592653589793)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32426)|0,32155)|0,35e3)|0,365)|0,35007)|0,32407)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(q<=g)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32461)|0,32155)|0,35e3)|0,366)|0,35007)|0,32503)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(r>g)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32522)|0,32155)|0,35e3)|0,367)|0,35007)|0,32503)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}h=a+68|0;i=a+72|0;l=a+76|0;j=a+80|0;up(a,h,i,l,j,b,d,e,g);h=~~+s(+(+f[h>>2]+-.5));i=~~+s(+(+f[i>>2]+-.5));l=~~+s(+(+f[l>>2]+-.5));j=~~+s(+(+f[j>>2]+-.5));k=c[a+60>>2]|0;l=(k+l|0)%(k|0)|0;if((((h|0)>=0?(u=h+1|0,!((i|0)<0?1:(u|0)>=(c[a+52>>2]|0))):0)?(v=i+1|0,!((j|0)<0?1:(v|0)>=(c[a+56>>2]|0))):0)?(w=j+1|0,(w|0)<(c[a+64>>2]|0)):0){k=(l+1|0)%(k|0)|0;wp(a,vp(a,h,i,l,j)|0,1);wp(a,vp(a,u,i,l,j)|0,1);wp(a,vp(a,u,v,l,j)|0,1);wp(a,vp(a,u,v,k,j)|0,1);wp(a,vp(a,u,v,k,w)|0,1);wp(a,vp(a,u,v,l,w)|0,1);wp(a,vp(a,u,i,k,j)|0,1);wp(a,vp(a,u,i,k,w)|0,1);wp(a,vp(a,u,i,l,w)|0,1);wp(a,vp(a,h,v,l,j)|0,1);wp(a,vp(a,h,v,k,j)|0,1);wp(a,vp(a,h,v,k,w)|0,1);wp(a,vp(a,h,v,l,w)|0,1);wp(a,vp(a,h,i,k,j)|0,1);wp(a,vp(a,h,i,k,w)|0,1);wp(a,vp(a,h,i,l,w)|0,1);h=1}else h=0}else h=0;zb=x;return h|0}function up(a,b,d,e,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;i=+i;j=+j;k=+k;var l=0.0,m=0.0;l=+(c[a+52>>2]|0);m=+f[a+20>>2];h=+Bp(h-m,+f[a+24>>2]-m)*l;f[b>>2]=h;h=+(c[a+56>>2]|0);l=+f[a+28>>2];i=+Bp(i-l,+f[a+32>>2]-l)*h;f[d>>2]=i;f[e>>2]=(j+3.141592653589793)*.15915494309189535*+(c[a+60>>2]|0);j=+(c[a+64>>2]|0);i=+f[a+36>>2];k=+Bp(k-i,+f[a+40>>2]-i)*j;f[g>>2]=k;return}function vp(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;k=zb;zb=zb+16|0;h=k;if((b|0)<=-1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32616)|0,32155)|0,35e3)|0,165)|0,35007)|0,32649)|0;IE(h,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(h,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(h);QE(j,i)|0;ME(j)|0;ua()}g=c[a+52>>2]|0;if((g|0)<=(b|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32667)|0,32155)|0,35e3)|0,166)|0,35007)|0,32649)|0;IE(h,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(h,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(h);QE(j,i)|0;ME(j)|0;ua()}if((d|0)<=-1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32707)|0,32155)|0,35e3)|0,167)|0,35007)|0,32740)|0;IE(h,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(h,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(h);QE(j,i)|0;ME(j)|0;ua()}i=c[a+56>>2]|0;if((i|0)<=(d|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32758)|0,32155)|0,35e3)|0,168)|0,35007)|0,32740)|0;IE(h,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);l=XF(h,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(h);QE(j,l)|0;ME(j)|0;ua()}if((e|0)<=-1){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32798)|0,32155)|0,35e3)|0,169)|0,35007)|0,32835)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);j=XF(h,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(h);QE(l,j)|0;ME(l)|0;ua()}j=c[a+60>>2]|0;if((j|0)<=(e|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32857)|0,32155)|0,35e3)|0,170)|0,35007)|0,32835)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);m=XF(h,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(h);QE(l,m)|0;ME(l)|0;ua()}if((f|0)<=-1){m=Xf(Xf(PE(Xf(Xf(Xf(56032,32905)|0,32155)|0,35e3)|0,171)|0,35007)|0,32942)|0;IE(h,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);l=XF(h,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(h);QE(m,l)|0;ME(m)|0;ua()}if((c[a+64>>2]|0)<=(f|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,32964)|0,32155)|0,35e3)|0,172)|0,35007)|0,32942)|0;IE(h,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);l=XF(h,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(h);QE(m,l)|0;ME(m)|0;ua()}m=(B(g,d)|0)+b|0;l=(B(c[a+84>>2]|0,e)|0)+m|0;a=l+(B(c[a+88>>2]|0,f)|0)|0;if((a|0)>((B(B(i,g)|0,(B(j,f)|0)+e|0)|0)+m|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,33012)|0,32155)|0,35e3)|0,176)|0,35007)|0,32597)|0;IE(h,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);l=XF(h,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(h);QE(m,l)|0;ME(m)|0;ua()}else{zb=k;return a|0}return 0}function wp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+32|0;e=s+8|0;n=s;if((b|0)<=-1){r=Xf(Xf(PE(Xf(Xf(Xf(56032,32563)|0,32155)|0,35e3)|0,290)|0,35007)|0,32597)|0;IE(e,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(e,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(e);QE(r,q)|0;ME(r)|0;ua()}r=a+92|0;c[e>>2]=b;g=xp(r,e)|0;if(!g){c[n>>2]=b;c[n+4>>2]=d;p=a+96|0;k=c[p>>2]|0;q=(k|0)==0;a:do if(!q){l=k+-1|0;m=(l&k|0)==0;if(!m)if(k>>>0>b>>>0)d=b;else d=(b>>>0)%(k>>>0)|0;else d=l&b;g=c[(c[r>>2]|0)+(d<<2)>>2]|0;if(!g)o=19;else do{g=c[g>>2]|0;if(!g){o=19;break a}h=c[g+4>>2]|0;if((h|0)!=(b|0)){if(!m){if(h>>>0>=k>>>0)h=(h>>>0)%(k>>>0)|0}else h=h&l;if((h|0)!=(d|0)){o=19;break a}}}while((c[g+8>>2]|0)!=(b|0))}else{d=0;o=19}while(0);if((o|0)==19){yp(e,r,b,n);l=a+104|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+f[a+108>>2];do if(q|j*+(k>>>0)>>0<3|(k+-1&k|0)!=0)&1;g=~~+A(+(i/j))>>>0;zp(r,d>>>0>>0?g:d);d=c[p>>2]|0;g=d+-1|0;if(!(g&d)){k=d;d=g&b;break}if(d>>>0>b>>>0){k=d;d=b}else{k=d;d=(b>>>0)%(d>>>0)|0}}while(0);g=c[(c[r>>2]|0)+(d<<2)>>2]|0;if(!g){h=a+100|0;c[c[e>>2]>>2]=c[h>>2];c[h>>2]=c[e>>2];c[(c[r>>2]|0)+(d<<2)>>2]=h;h=c[e>>2]|0;d=c[h>>2]|0;if(d){d=c[d+4>>2]|0;g=k+-1|0;if(g&k){if(d>>>0>=k>>>0)d=(d>>>0)%(k>>>0)|0}else d=d&g;c[(c[r>>2]|0)+(d<<2)>>2]=h}}else{c[c[e>>2]>>2]=c[g>>2];c[g>>2]=c[e>>2]}c[l>>2]=(c[l>>2]|0)+1;c[e>>2]=0}}else{r=g+12|0;c[r>>2]=(c[r>>2]|0)+d}zb=s;return}function xp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(!h)if(e>>>0>>0)d=e;else d=(e>>>0)%(f>>>0)|0;else d=g&e;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(e|0)){if((c[b+8>>2]|0)==(e|0))break a}else{if(!h){if(a>>>0>=f>>>0)a=(a>>>0)%(f>>>0)|0}else a=a&g;if((a|0)!=(d|0)){b=0;break a}}}else b=0}else b=0;while(0);return b|0}function yp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=tB(16)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[f>>2];c[g+12>>2]=c[f+4>>2];a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function zp(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Ap(a,b)}}else Ap(a,b);return}function Ap(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function Bp(a,b){a=+a;b=+b;return +(a/(b==0.0?1.0:b))}function Cp(a,b,c){a=a|0;b=+b;c=+c;var d=0.0;d=+w(+b)*c;c=+x(+b)*c;f[a>>2]=d;f[a+4>>2]=-c;f[a+8>>2]=c;f[a+12>>2]=d;return}function Dp(a,b){a=a|0;b=b|0;return +(+Ep(a,b,(b&1)+-1+((b|0)/2|0)|0))}function Ep(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0;r=zb;zb=zb+16|0;e=r;if((b|0)<=0){q=Xf(Xf(PE(Xf(Xf(Xf(56032,33419)|0,33448)|0,35e3)|0,53)|0,35007)|0,33521)|0;IE(e,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);p=XF(e,56736)|0;p=Ib[c[(c[p>>2]|0)+28>>2]&63](p,10)|0;YF(e);QE(q,p)|0;ME(q)|0;ua()}if((d|0)<=0){q=Xf(Xf(PE(Xf(Xf(Xf(56032,33540)|0,33448)|0,35e3)|0,54)|0,35007)|0,33569)|0;IE(e,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);p=XF(e,56736)|0;p=Ib[c[(c[p>>2]|0)+28>>2]&63](p,10)|0;YF(e);QE(q,p)|0;ME(q)|0;ua()}p=d+-1|0;q=a+(p<<2)|0;m=b+-1|0;n=0;while(1){o=+f[q>>2];if((n|0)>=(m|0))break;e=n;b=m;do{while(1){i=a+(e<<2)|0;j=+f[i>>2];k=e+1|0;if(j>2];l=b+-1|0;if(o>2]=h;f[g>>2]=j;e=k;b=l}}while((e|0)<=(b|0));m=(e|0)<(d|0)?m:b;n=(b|0)<(p|0)?e:n}zb=r;return +o}function Fp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,h=0;f[b>>2]=0.0;c[d>>2]=-1;a=a+100|0;e=0.0;while(1){a=c[a>>2]|0;if(!a)break;g=a;h=g+12|0;if(e<+((c[h>>2]|0)>>>0)){c[d>>2]=c[g+8>>2];e=+((c[h>>2]|0)>>>0);f[b>>2]=e}}return}function Gp(a){a=a|0;ko(a,1760,12);ko(a+48|0,1808,12);ko(a+96|0,1856,12);ko(a+144|0,1904,12);ko(a+192|0,1952,12);ko(a+240|0,2e3,12);f[a+288>>2]=.10000000149011612;f[a+292>>2]=.17499999701976776;f[a+296>>2]=.25;f[a+300>>2]=.32499998807907104;f[a+304>>2]=.4000000059604645;f[a+308>>2]=.4749999940395355;f[a+312>>2]=.550000011920929;f[a+316>>2]=7.0;return}function Hp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;fm(b,96);Ip(b,((c[e+4>>2]|0)-(c[e>>2]|0)|0)/20|0);Jp(b,d,e,a,a+48|0,a+96|0,a+144|0,a+192|0,a+240|0,+f[a+288>>2],+f[a+292>>2],+f[a+296>>2],+f[a+300>>2],+f[a+304>>2],+f[a+308>>2],+f[a+312>>2],+f[a+316>>2]);return}function Ip(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=zb;zb=zb+16|0;f=e;g=B(c[b>>2]|0,d)|0;a[f>>0]=0;Wp(b+4|0,g,f);hm(b+16|0,d);zb=e;return}function Jp(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=zb;zb=zb+16|0;x=z;if(!d){y=Xf(Xf(PE(Xf(Xf(Xf(56032,33588)|0,33619)|0,35e3)|0,537)|0,35007)|0,33688)|0;IE(x,y+(c[(c[y>>2]|0)+-12>>2]|0)|0);w=XF(x,56736)|0;w=Ib[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;YF(x);QE(y,w)|0;ME(y)|0;ua()}w=Ak(b)|0;y=e+4|0;v=c[y>>2]|0;u=c[e>>2]|0;if((w|0)!=((v-u|0)/20|0|0)){w=Xf(Xf(PE(Xf(Xf(Xf(56032,33704)|0,33619)|0,35e3)|0,538)|0,35007)|0,33757)|0;IE(x,w+(c[(c[w>>2]|0)+-12>>2]|0)|0);t=XF(x,56736)|0;t=Ib[c[(c[t>>2]|0)+28>>2]&63](t,10)|0;YF(x);QE(w,t)|0;ME(w)|0;ua()}w=0;t=0;while(1){u=(v-u|0)/20|0;if(w>>>0>=u>>>0)break;v=Kp(b,t)|0;if(Lp(v,d,(c[e>>2]|0)+(w*20|0)|0,f,g,h,i,j,k,l,m,n,o,p,q,r,s)|0){u=(c[e>>2]|0)+(w*20|0)|0;v=Mp(b,t)|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];a[v+16>>0]=a[u+16>>0]|0;t=t+1|0}w=w+1|0;u=c[e>>2]|0;v=c[y>>2]|0}if((t|0)==(u|0)){Ip(b,t);zb=z;return}else{z=Xf(Xf(PE(Xf(Xf(Xf(56032,33794)|0,33619)|0,35e3)|0,617)|0,35007)|0,33845)|0;IE(x,z+(c[(c[z>>2]|0)+-12>>2]|0)|0);k=XF(x,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(x);QE(z,k)|0;ME(z)|0;ua()}}function Kp(a,b){a=a|0;b=b|0;b=B(c[a>>2]|0,b)|0;return (c[a+4>>2]|0)+b|0}function Lp(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;var r=0,s=0;s=zb;zb=zb+160|0;r=s;if(Np(r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q)|0){Op(a,r);a=1}else a=0;zb=s;return a|0}function Mp(a,b){a=a|0;b=b|0;return (c[a+16>>2]|0)+(b*20|0)|0}function Np(a,b,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var 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,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;t=zb;zb=zb+336|0;aa=t+288|0;y=t+240|0;D=t+192|0;I=t+144|0;N=t+96|0;S=t+48|0;X=t;v=t+328|0;u=t+324|0;x=+f[d+12>>2]*s;x=x<1.0?1.0:x;Qp(aa,+f[d>>2],+f[d+4>>2],+f[d+8>>2],x);w=+f[aa+8>>2];s=+f[aa+20>>2];Rp(y,aa,e);C=y+8|0;Rp(C,aa,e+8|0);B=y+16|0;Rp(B,aa,e+16|0);A=y+24|0;Rp(A,aa,e+24|0);z=y+32|0;Rp(z,aa,e+32|0);d=y+40|0;Rp(d,aa,e+40|0);Rp(D,aa,g);H=D+8|0;Rp(H,aa,g+8|0);G=D+16|0;Rp(G,aa,g+16|0);F=D+24|0;Rp(F,aa,g+24|0);E=D+32|0;Rp(E,aa,g+32|0);e=D+40|0;Rp(e,aa,g+40|0);Rp(I,aa,h);M=I+8|0;Rp(M,aa,h+8|0);L=I+16|0;Rp(L,aa,h+16|0);K=I+24|0;Rp(K,aa,h+24|0);J=I+32|0;Rp(J,aa,h+32|0);g=I+40|0;Rp(g,aa,h+40|0);Rp(N,aa,i);R=N+8|0;Rp(R,aa,i+8|0);Q=N+16|0;Rp(Q,aa,i+16|0);P=N+24|0;Rp(P,aa,i+24|0);O=N+32|0;Rp(O,aa,i+32|0);h=N+40|0;Rp(h,aa,i+40|0);Rp(S,aa,j);W=S+8|0;Rp(W,aa,j+8|0);V=S+16|0;Rp(V,aa,j+16|0);U=S+24|0;Rp(U,aa,j+24|0);T=S+32|0;Rp(T,aa,j+32|0);i=S+40|0;Rp(i,aa,j+40|0);Rp(X,aa,k);$=X+8|0;Rp($,aa,k+8|0);_=X+16|0;Rp(_,aa,k+16|0);Z=X+24|0;Rp(Z,aa,k+24|0);Y=X+32|0;Rp(Y,aa,k+32|0);j=X+40|0;Rp(j,aa,k+40|0);Sp(b,v,u,x*r);r=+Tp(b,+f[X>>2],+f[X+4>>2],c[v>>2]|0,c[u>>2]|0);f[a>>2]=r;r=+Tp(b,+f[$>>2],+f[X+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+4>>2]=r;r=+Tp(b,+f[_>>2],+f[X+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+8>>2]=r;r=+Tp(b,+f[Z>>2],+f[X+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+12>>2]=r;r=+Tp(b,+f[Y>>2],+f[X+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+16>>2]=r;r=+Tp(b,+f[j>>2],+f[X+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+20>>2]=r;Sp(b,v,u,x*q);r=+Tp(b,+f[S>>2],+f[S+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+24>>2]=r;r=+Tp(b,+f[W>>2],+f[S+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+28>>2]=r;r=+Tp(b,+f[V>>2],+f[S+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+32>>2]=r;r=+Tp(b,+f[U>>2],+f[S+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+36>>2]=r;r=+Tp(b,+f[T>>2],+f[S+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+40>>2]=r;r=+Tp(b,+f[i>>2],+f[S+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+44>>2]=r;Sp(b,v,u,x*p);r=+Tp(b,+f[N>>2],+f[N+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+48>>2]=r;r=+Tp(b,+f[R>>2],+f[N+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+52>>2]=r;r=+Tp(b,+f[Q>>2],+f[N+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+56>>2]=r;r=+Tp(b,+f[P>>2],+f[N+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+60>>2]=r;r=+Tp(b,+f[O>>2],+f[N+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+64>>2]=r;r=+Tp(b,+f[h>>2],+f[N+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+68>>2]=r;Sp(b,v,u,x*o);r=+Tp(b,+f[I>>2],+f[I+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+72>>2]=r;r=+Tp(b,+f[M>>2],+f[I+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+76>>2]=r;r=+Tp(b,+f[L>>2],+f[I+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+80>>2]=r;r=+Tp(b,+f[K>>2],+f[I+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+84>>2]=r;r=+Tp(b,+f[J>>2],+f[I+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+88>>2]=r;r=+Tp(b,+f[g>>2],+f[I+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+92>>2]=r;Sp(b,v,u,x*n);r=+Tp(b,+f[D>>2],+f[D+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+96>>2]=r;r=+Tp(b,+f[H>>2],+f[D+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+100>>2]=r;r=+Tp(b,+f[G>>2],+f[D+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+104>>2]=r;r=+Tp(b,+f[F>>2],+f[D+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+108>>2]=r;r=+Tp(b,+f[E>>2],+f[D+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+112>>2]=r;r=+Tp(b,+f[e>>2],+f[D+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+116>>2]=r;Sp(b,v,u,x*m);r=+Tp(b,+f[y>>2],+f[y+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+120>>2]=r;r=+Tp(b,+f[C>>2],+f[y+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+124>>2]=r;r=+Tp(b,+f[B>>2],+f[y+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+128>>2]=r;r=+Tp(b,+f[A>>2],+f[y+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+132>>2]=r;r=+Tp(b,+f[z>>2],+f[y+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+136>>2]=r;r=+Tp(b,+f[d>>2],+f[y+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+140>>2]=r;Sp(b,v,u,x*l);l=+Tp(b,w,s,c[v>>2]|0,c[u>>2]|0);f[a+144>>2]=l;zb=t;return 1}function Op(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;Il(a,84);c=0;g=0;i=36;j=35;k=36;while(1){if((c|0)==37)break;h=c+1|0;e=b+(c<<2)|0;c=h;d=g;while(1){if((d|0)==(k|0))break;Pp(a,d,+f[e>>2]<+f[b+(c<<2)>>2]&1);c=c+1|0;d=d+1|0}e=k+j|0;c=h;g=g+i|0;i=i+-1|0;j=j+-1|0;k=e}return}function Pp(b,c,e){b=b|0;c=c|0;e=e|0;b=b+((c|0)/8|0)|0;a[b>>0]=(e&255)<<(c&7)|(d[b>>0]|0);return}function Qp(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var g=0.0;g=+w(+d)*e;e=+x(+d)*e;f[a>>2]=g;f[a+4>>2]=-e;f[a+8>>2]=b;f[a+12>>2]=e;f[a+16>>2]=g;f[a+20>>2]=c;f[a+24>>2]=0.0;f[a+28>>2]=0.0;f[a+32>>2]=1.0;return}function Rp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=c+4|0;f[a>>2]=+f[b+8>>2]+(+f[b>>2]*+f[c>>2]+ +f[b+4>>2]*+f[d>>2]);f[a+4>>2]=+f[b+20>>2]+(+f[b+12>>2]*+f[c>>2]+ +f[b+16>>2]*+f[d>>2]);return}function Sp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=zb;zb=zb+16|0;l=m;g=~~+s(+(+Oi(e)));c[b>>2]=g;e=+z(+(e/+(1<>2]*e);c[d>>2]=g;j=a+20|0;if(((c[j>>2]|0)+-1|0)==(g|0)){c[b>>2]=(c[b>>2]|0)+1;c[d>>2]=0;g=0}h=c[b>>2]|0;if((h|0)>=0){i=c[a+16>>2]|0;if((h|0)<(i|0))h=g;else{c[b>>2]=i+-1;g=(c[j>>2]|0)+-1|0;k=7}}else{c[b>>2]=0;g=0;k=7}if((k|0)==7){c[d>>2]=g;h=g}g=c[b>>2]|0;if((g|0)<=-1){k=Xf(Xf(PE(Xf(Xf(Xf(56032,33865)|0,33900)|0,35e3)|0,268)|0,35007)|0,33993)|0;IE(l,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);b=XF(l,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(l);QE(k,b)|0;ME(k)|0;ua()}if((g|0)>=(c[a+16>>2]|0)){a=Xf(Xf(PE(Xf(Xf(Xf(56032,34017)|0,33900)|0,35e3)|0,269)|0,35007)|0,34061)|0;IE(l,a+(c[(c[a>>2]|0)+-12>>2]|0)|0);k=XF(l,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(l);QE(a,k)|0;ME(a)|0;ua()}if((h|0)<=-1){a=Xf(Xf(PE(Xf(Xf(Xf(56032,34104)|0,33900)|0,35e3)|0,270)|0,35007)|0,34138)|0;IE(l,a+(c[(c[a>>2]|0)+-12>>2]|0)|0);k=XF(l,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(l);QE(a,k)|0;ME(a)|0;ua()}if((h|0)<(c[j>>2]|0)){zb=m;return}else{m=Xf(Xf(PE(Xf(Xf(Xf(56032,34161)|0,33900)|0,35e3)|0,271)|0,35007)|0,34212)|0;IE(l,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);a=XF(l,56736)|0;a=Ib[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;YF(l);QE(m,a)|0;ME(m)|0;ua()}}function Tp(a,b,c,d,e){a=a|0;b=+b;c=+c;d=d|0;e=e|0;var g=0,h=0,i=0;g=zb;zb=zb+16|0;i=g+4|0;h=g;e=Lg(a,d,e)|0;mi(i,h,b,c,d);c=+Up(e,+f[i>>2],+f[h>>2]);zb=g;return +c}function Up(a,b,c){a=a|0;b=+b;c=+c;return +(+Vp(a,b,c))}function Vp(a,b,c){a=a|0;b=+b;c=+c;b=+Zh(b,0.0,+(((Ng(a)|0)+-2|0)>>>0));return +(+Ci(a,b,+Zh(c,0.0,+(((Og(a)|0)+-2|0)>>>0))))}function Wp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+4|0;g=c[a>>2]|0;f=(c[e>>2]|0)-g|0;if(f>>>0>=b>>>0){if(f>>>0>b>>>0)c[e>>2]=g+b}else Xp(a,b-f|0,d);return}function Xp(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;k=zb;zb=zb+32|0;h=k;i=b+8|0;j=b+4|0;f=c[j>>2]|0;do if(((c[i>>2]|0)-f|0)>>>0>>0){f=f-(c[b>>2]|0)+d|0;g=mg(b)|0;if(g>>>0>>0)EO(b);else{l=c[b>>2]|0;m=(c[i>>2]|0)-l|0;i=m<<1;ng(h,m>>>0>>1>>>0?(i>>>0>>0?f:i):g,(c[j>>2]|0)-l|0,b+8|0);Yp(h,d,e);og(b,h);pg(h);break}}else do{a[f>>0]=a[e>>0]|0;f=(c[j>>2]|0)+1|0;c[j>>2]=f;d=d+-1|0}while((d|0)!=0);while(0);zb=k;return}function Yp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=b+8|0;b=d;d=c[f>>2]|0;do{a[d>>0]=a[e>>0]|0;d=(c[f>>2]|0)+1|0;c[f>>2]=d;b=b+-1|0}while((b|0)!=0);return}function Zp(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+272|0;e=b+256|0;d=b;Ta(e|0)|0;Ra(d|0,256,34263,Oa(e|0)|0)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;gO(a,d,Yf(d)|0);zb=b;return}function _p(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;return}function $p(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;f=i;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];g=a+24|0;h=c[b+24>>2]|0;c[f>>2]=h;e=f+4|0;b=c[b+28>>2]|0;c[e>>2]=b;if(!b){d=e;b=0}else{d=b+4|0;c[d>>2]=(c[d>>2]|0)+1;d=e;b=c[e>>2]|0}c[f>>2]=c[g>>2];c[g>>2]=h;h=a+28|0;c[d>>2]=c[h>>2];c[h>>2]=b;aq(f);zb=i;return}function aq(a){a=a|0;var b=0,d=0;a=c[a+4>>2]|0;if(a|0?(d=a+4|0,b=c[d>>2]|0,c[d>>2]=b+-1,(b|0)==0):0){Sb[c[(c[a>>2]|0)+8>>2]&255](a);_N(a)}return}function bq(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;$p(a,b);return}function cq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=zb;zb=zb+32|0;i=l+16|0;j=l+8|0;k=l;if(!d){h=Xf(Xf(PE(Xf(Xf(Xf(56032,34281)|0,34314)|0,35e3)|0,127)|0,35007)|0,34386)|0;IE(i,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);m=XF(i,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(i);QE(h,m)|0;ME(h)|0;ua()}if(!e){m=Xf(Xf(PE(Xf(Xf(Xf(56032,34407)|0,34314)|0,35e3)|0,128)|0,35007)|0,34441)|0;IE(i,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(m,h)|0;ME(m)|0;ua()}if(f>>>0>>0){m=Xf(Xf(PE(Xf(Xf(Xf(56032,34463)|0,34314)|0,35e3)|0,129)|0,35007)|0,34500)|0;IE(i,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(m,h)|0;ME(m)|0;ua()}if(!g){m=Xf(Xf(PE(Xf(Xf(Xf(56032,34545)|0,34314)|0,35e3)|0,130)|0,35007)|0,34581)|0;IE(i,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(m,h)|0;ME(m)|0;ua()}if((f|0)<0)f=B(B(g,d)|0,dq(b)|0)|0;c[a+12>>2]=f;f=B(f,e)|0;h=a+20|0;if((c[h>>2]|0)!=(f|0)?(m=a+24|0,o=uB(f)|0,c[k>>2]=0,c[i>>2]=c[k>>2],eq(j,o,i),o=c[j>>2]|0,c[j>>2]=c[m>>2],c[m>>2]=o,o=j+4|0,k=a+28|0,n=c[o>>2]|0,c[o>>2]=c[k>>2],c[k>>2]=n,aq(j),(c[m>>2]|0)==0):0){o=Xf(Xf(PE(Xf(Xf(Xf(56032,34615)|0,34314)|0,35e3)|0,149)|0,35007)|0,34650)|0;IE(i,o+(c[(c[o>>2]|0)+-12>>2]|0)|0);n=XF(i,56736)|0;n=Ib[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;YF(i);QE(o,n)|0;ME(o)|0;ua()}c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=e;c[a+16>>2]=g;c[h>>2]=f;zb=l;return}function dq(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;switch(a|0){case 1:break;case 2:{a=4;break}default:{d=O(16)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;gO(b,34774,Yf(34774)|0);mj(d,b);Q(d|0,13208,5)}}zb=d;return a|0}function eq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;d=zb;zb=zb+16|0;e=d;c[a>>2]=b;f=tB(16)|0;c[f+4>>2]=0;c[f+8>>2]=0;c[f>>2]=15768;c[f+12>>2]=b;c[a+4>>2]=f;c[e>>2]=b;c[e+4>>2]=b;fq(a,e);zb=d;return}function fq(a,b){a=a|0;b=b|0;return}function gq(a){a=a|0;ZN(a);SA(a);return}function hq(a){a=a|0;SA(c[a+12>>2]|0);return}function iq(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==34671?a+12|0:0)|0}function jq(a){a=a|0;Pf(a,16);return}function kq(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;j=zb;zb=zb+16|0;k=j+8|0;l=j+4|0;m=j;c[b>>2]=e;c[b+4>>2]=f;c[b+8>>2]=g;c[b+16>>2]=i;g=B(h,g)|0;c[b+20>>2]=g;c[m>>2]=0;a[l>>0]=a[j+12>>0]|0;c[k>>2]=c[m>>2];lq(b+24|0,d,l,k);if((h|0)<0)h=B(B(i,f)|0,dq(e)|0)|0;c[b+12>>2]=h;zb=j;return}function lq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=zb;zb=zb+16|0;d=e;c[a>>2]=b;f=tB(16)|0;c[f+4>>2]=0;c[f+8>>2]=0;c[f>>2]=15796;c[f+12>>2]=b;c[a+4>>2]=f;c[d>>2]=b;c[d+4>>2]=b;fq(a,d);zb=e;return}function mq(a,b){a=a|0;b=b|0;return}function nq(a){a=a|0;ZN(a);SA(a);return}function oq(a){a=a|0;a=a+12|0;mq(a,c[a>>2]|0);return}function pq(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==34793?a+12|0:0)|0}function qq(a){a=a|0;Pf(a,16);return}function rq(a){a=a|0;aq(a+24|0);return}function sq(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function tq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=a+4|0;e=0;while(1){g=c[a>>2]|0;if(e>>>0>=(c[f>>2]|0)-g>>3>>>0)break;g=c[g+(e<<3)>>2]|0;Wb[c[(c[g>>2]|0)+8>>2]&3](g,b,d);e=e+1|0}return}function uq(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;f=zb;zb=zb+48|0;i=f;h=f+28|0;g=f+16|0;c[i>>2]=e;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;gO(g,d,Yf(d)|0);vq(h,g,i);tq(a,b,h);jO(h);jO(g);zb=f;return}function vq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+2048|0;g=f;Jx(g,2048,(a[d+11>>0]|0)<0?c[d>>2]|0:d,e)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;gO(b,g,Yf(g)|0);zb=f;return}function wq(a){a=a|0;g[a>>3]=-1.0;g[a+8>>3]=-1.0;return}function xq(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;Ka(d|0,0)|0;g[a>>3]=+(c[d+4>>2]|0)*1.0e-06+ +(c[d>>2]|0);zb=b;return}function yq(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;if(!(+g[a>>3]>=0.0)){d=Xf(Xf(PE(Xf(Xf(Xf(56032,34888)|0,34927)|0,35e3)|0,67)|0,35007)|0,35010)|0;IE(b,d+(c[(c[d>>2]|0)+-12>>2]|0)|0);a=XF(b,56736)|0;a=Ib[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;YF(b);QE(d,a)|0;ME(d)|0;ua()}else{Ka(b|0,0)|0;g[a+8>>3]=+(c[b+4>>2]|0)*1.0e-06+ +(c[b>>2]|0);zb=d;return}}function zq(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,h=0,i=0;f=zb;zb=zb+16|0;d=f;e=+g[a>>3];if(!(e>=0.0)){h=Xf(Xf(PE(Xf(Xf(Xf(56032,34888)|0,34927)|0,35e3)|0,80)|0,35007)|0,35010)|0;IE(d,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);i=XF(d,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(d);QE(h,i)|0;ME(h)|0;ua()}b=+g[a+8>>3];if(!(b>=0.0)){i=Xf(Xf(PE(Xf(Xf(Xf(56032,35037)|0,34927)|0,35e3)|0,81)|0,35007)|0,35075)|0;IE(d,i+(c[(c[i>>2]|0)+-12>>2]|0)|0);h=XF(d,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(d);QE(i,h)|0;ME(i)|0;ua()}else{zb=f;return +(b-e)}return +(0.0)}function Aq(a){a=a|0;return +(+zq(a)*1.0e3)}function Bq(a,b){a=a|0;b=b|0;var d=0;wq(a);d=a+16|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;gO(d,b,Yf(b)|0);xq(a);return}function Cq(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0.0;k=zb;zb=zb+48|0;j=k;d=k+24|0;yq(b);f=yk()|0;Zp(d);h=(a[d+11>>0]|0)<0?c[d>>2]|0:d;i=b+16|0;if((a[i+11>>0]|0)<0)e=c[i>>2]|0;else e=i;l=+Aq(b);c[j>>2]=35129;c[j+4>>2]=h;c[j+8>>2]=35137;c[j+12>>2]=e;g[j+16>>3]=l;uq(f,8,35102,j);jO(d);jO(i);zb=k;return}function Dq(){Eq();Fq();Gq();return}function Eq(){c[13871]=0;c[13872]=0;c[13873]=0;c[13874]=0;c[13875]=1065353216;return}function Fq(){c[13876]=0;c[13877]=0;c[13878]=0;c[13879]=0;c[13880]=1065353216;return}function Gq(){Hq(0);return}function Hq(a){a=a|0;var b=0;a=zb;zb=zb+16|0;b=a;Jq(35173,26);Lq(35179,67);Lq(35188,68);Oq(35197,20);Oq(35208,21);Oq(35224,22);Sq(35238,23);Lq(35256,69);Vq(35276,70);Jq(35288,27);Sq(35305,24);Jq(35325,28);Jq(35343,29);Sq(35365,25);Sq(35388,26);Lq(35417,71);Lq(35430,72);Lq(35443,73);Jq(35459,30);Sq(35478,27);Sq(35488,28);Sq(35501,29);Lq(35514,74);Lq(35527,75);kr(35546,114);mr(35558,1);or(35570,1);qr(35593,1);or(35616,2);qr(35638,2);ur(35660,40);Lq(35677,76);ur(35694,41);Lq(35707,77);ur(35720,42);Lq(35744,78);Br(35768,3);qr(35781,3);ur(35794,43);Lq(35812,79);ur(35830,44);Lq(35846,80);ur(35862,45);Lq(35879,81);Jr(35896,15816);Jr(35925,15820);Jr(35953,15824);c[b>>2]=0;Jr(35986,b);c[b>>2]=1;Jr(36003,b);c[b>>2]=0;Jr(36019,b);c[b>>2]=0;Jr(36041,b);c[b>>2]=1;Jr(36066,b);c[b>>2]=1;Jr(36091,b);c[b>>2]=100;Jr(36116,b);c[b>>2]=0;Jr(36143,b);c[b>>2]=1;Jr(36169,b);c[b>>2]=0;Jr(36195,b);c[b>>2]=0;Jr(36222,b);c[b>>2]=1;Jr(36249,b);c[b>>2]=2;Jr(36275,b);c[b>>2]=3;Jr(36300,b);c[b>>2]=4;Jr(36338,b);c[b>>2]=0;Jr(36375,b);c[b>>2]=0;Jr(36409,b);c[b>>2]=1;Jr(36433,b);c[b>>2]=2;Jr(36459,b);c[b>>2]=2;Jr(36486,b);c[b>>2]=5;Jr(36520,b);g[b>>3]=.5;Kr(36538,b);c[b>>2]=0;Jr(36559,b);c[b>>2]=1;Jr(36578,b);c[b>>2]=2;Jr(36596,b);c[b>>2]=3;Jr(36614,b);c[b>>2]=4;Jr(36633,b);c[b>>2]=3;Jr(36655,b);c[b>>2]=515;Jr(36674,b);c[b>>2]=259;Jr(36703,b);c[b>>2]=4;Jr(36731,b);c[b>>2]=772;Jr(36750,b);c[b>>2]=1028;Jr(36780,b);c[b>>2]=0;Jr(36810,b);c[b>>2]=1;Jr(36841,b);c[b>>2]=2;Jr(36877,b);c[b>>2]=3;Jr(36911,b);c[b>>2]=0;Jr(36949,b);c[b>>2]=1;Jr(36982,b);c[b>>2]=2;Jr(37029,b);c[b>>2]=3;Jr(37071,b);c[b>>2]=4;Jr(37114,b);c[b>>2]=5;Jr(37166,b);c[b>>2]=6;Jr(37217,b);c[b>>2]=7;Jr(37262,b);c[b>>2]=8;Jr(37301,b);c[b>>2]=9;Jr(37346,b);zb=a;return}function Iq(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;i=zb;zb=zb+16|0;h=i+8|0;f=i+12|0;g=c[13882]|0;c[13882]=g+1;c[f>>2]=g;g=Ur(55484,f)|0;c[g>>2]=c[f>>2];c[g+208>>2]=a;c[g+212>>2]=b;j=B(a<<2,b)|0;a=g+200|0;c[a>>2]=j;j=FO(j)|0;b=g+196|0;c[b>>2]=j;j=FO((c[a>>2]|0)/4|0)|0;e=g+204|0;c[e>>2]=j;j=hd()|0;c[g+220>>2]=j;if(!j)Ue(0,3,41354,i);yt(c[f>>2]|0,d)|0;c[h>>2]=c[a>>2];Ue(0,1,41391,h);za(0,c[g>>2]|0,c[b>>2]|0,c[a>>2]|0,g+344|0,51360,c[e>>2]|0)|0;zb=i;return c[g>>2]|0}function Jq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=tt(d)|0;d=ut(d)|0;ka(a|0,e|0,d|0,vt()|0,8,b|0);zb=c;return}function Kq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;d=g;c[d>>2]=a;if(!(Tr(55484,d)|0))a=-1;else{f=Ur(55484,d)|0;a=f+196|0;b=c[a>>2]|0;if(b|0){GO(b);c[a>>2]=0;c[f+200>>2]=0}pt(f);jd(c[f+220>>2]|0)|0;qt(55484,d)|0;b=f+328|0;d=f+332|0;a=0;while(1){e=c[b>>2]|0;if(a>>>0>=(c[d>>2]|0)-e>>3>>>0)break;Oe(c[e+(a<<3)+4>>2]|0)|0;a=a+1|0}Zr(b);SA(b);Yr(f);SA(f);a=0}zb=g;return a|0}function Lq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=lt(d)|0;d=mt(d)|0;ka(a|0,e|0,d|0,Ns()|0,30,b|0);zb=c;return}function Mq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;f=g;b=g+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{b=Ur(55484,b)|0;e=b+192|0;a=At(c[e>>2]|0,c[b+472>>2]|0)|0;d=b+236|0;c[d>>2]=a;if(!a){Ue(0,3,41323,f);b=b+232|0;Lf(b)|0;a=c[d>>2]|0}else b=b+232|0;Ye(a,5.0)|0;Xe(c[d>>2]|0,.5)|0;_e(c[d>>2]|0,16)|0;Ze(c[d>>2]|0,6)|0;$e(c[d>>2]|0,6)|0;af(c[d>>2]|0,6)|0;a=kt(c[e>>2]|0)|0;c[b>>2]=a;a=0}zb=g;return a|0}function Nq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=zb;zb=zb+16|0;f=g;e=g+4|0;c[e>>2]=b;do if(Tr(55484,e)|0){e=Ur(55484,e)|0;if((a[d+11>>0]|0)<0)d=c[d>>2]|0;b=e+340|0;if(!(jt(d,b,e+220|0)|0)){Ue(0,3,41233,f);b=-1;break}else{b=c[b>>2]|0;break}}else b=-1;while(0);zb=g;return b|0}function Oq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=ft(d)|0;d=gt(d)|0;ka(a|0,e|0,d|0,Xs()|0,31,b|0);zb=c;return}function Pq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;g=j+8|0;e=j+12|0;i=j;c[e>>2]=b;do if(!(Tr(55484,e)|0))b=-1;else{h=Ur(55484,e)|0;if((a[d+11>>0]|0)<0)b=c[d>>2]|0;else b=d;f=h+224|0;if(!($s(b,c[h+216>>2]|0,h+220|0,f)|0)){Ue(0,3,41157,g);b=-1;break}b=h+328|0;e=h+332|0;d=c[e>>2]|0;c[i>>2]=d-(c[b>>2]|0)>>3;c[i+4>>2]=c[f>>2];if((c[h+336>>2]|0)==(d|0))at(b,i);else{f=i;g=c[f+4>>2]|0;h=d;c[h>>2]=c[f>>2];c[h+4>>2]=g;c[e>>2]=(c[e>>2]|0)+8}b=c[i>>2]|0}while(0);zb=j;return b|0}function Qq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i;e=i+4|0;c[e>>2]=b;do if(Tr(55484,e)|0){f=Ur(55484,e)|0;g=f+244|0;b=c[g>>2]|0;if((a[d+11>>0]|0)<0)e=c[d>>2]|0;else e=d;if(!(_s(f,b,e)|0)){Ue(0,3,40842,h);b=-1;break}else{c[g>>2]=(c[g>>2]|0)+1;break}}else b=-1;while(0);zb=i;return b|0}function Rq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;e=g;c[e>>2]=a;if(((Tr(55484,e)|0)!=0?(f=Ur(55484,e)|0,(b|0)>=0):0)?(d=c[f+328>>2]|0,(c[f+332>>2]|0)-d>>3>>>0>b>>>0):0)a=c[(c[d+(b<<3)+4>>2]|0)+4>>2]|0;else a=-1;zb=g;return a|0}function Sq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=Vs(d)|0;d=Ws(d)|0;ka(a|0,e|0,d|0,Xs()|0,32,b|0);zb=c;return}function Tq(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=Ur(55484,b)|0;a=(c[a+332>>2]|0)-(c[a+328>>2]|0)>>3}zb=d;return a|0}function Uq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+208|0;h=i+192|0;g=i+184|0;d=i;e=b+11|0;if((a[e>>0]|0)<0)f=c[b>>2]|0;else f=b;if((ke(f,1,d,g)|0)<0){if((a[e>>0]|0)<0)b=c[b>>2]|0;c[h>>2]=b;Ue(0,3,40778,h);b=-1}else{b=c[13881]|0;c[13881]=b+1;c[g>>2]=b;_O(Rs(55504,g)|0,d|0,184)|0;b=c[g>>2]|0}zb=i;return b|0}function Vq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=Ls(d)|0;d=Ms(d)|0;ka(a|0,e|0,d|0,Ns()|0,31,b|0);zb=c;return}function Wq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=a;do if(Tr(55484,e)|0){a=(Ur(55484,e)|0)+216|0;a=c[a>>2]|0;if((c[a+44>>2]|0)>(b|0)){c[((b|0)<0?54536:a+48+(b<<8)|0)+16>>2]=d;a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=f;return a|0}function Xq(a,b){a=a|0;b=b|0;var d=0,e=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;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;do if(Tr(55484,d)|0){a=(Ur(55484,d)|0)+216|0;a=c[a>>2]|0;if((c[a+44>>2]|0)>(b|0)){a=(b|0)<0?54536:a+48+(b<<8)|0;n=+g[6420];g[a+168>>3]=n;j=+g[6421];g[a+176>>3]=j;m=+g[6422];g[a+184>>3]=m;i=+g[6423];g[a+192>>3]=i;l=+g[6424];g[a+200>>3]=l;h=+g[6425];g[a+208>>3]=h;k=+g[6426];g[a+216>>3]=k;f=+g[6427];g[a+224>>3]=f;g[a+56>>3]=(n+m+l+k)*.25;g[a+64>>3]=(j+i+h+f)*.25;a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=e;return a|0}function Yq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=a;do if(Tr(55484,e)|0){a=Ur(55484,e)|0;e=c[a+216>>2]|0;if((c[e+44>>2]|0)>(b|0)){+Uc(c[a+228>>2]|0,(b|0)<0?54536:e+48+(b<<8)|0,+(d|0),51360);a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=f;return a|0}function Zq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=a;do if(Tr(55484,e)|0){a=Ur(55484,e)|0;e=c[a+216>>2]|0;if((c[e+44>>2]|0)>(b|0)){+Vc(c[a+228>>2]|0,(b|0)<0?54536:e+48+(b<<8)|0,51360,+(d|0),51360);a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=f;return a|0}function _q(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;do if(Tr(55484,d)|0){d=Ur(55484,d)|0;a=c[d+328>>2]|0;if((b|0)<0?1:(c[d+332>>2]|0)-a>>3>>>0<=b>>>0){a=c[3955]|0;break}else{a=c[a+(b<<3)+4>>2]|0;b=c[d+216>>2]|0;+Pe(c[d+228>>2]|0,b+48|0,c[b+44>>2]|0,a);Ks(a+8|0,51360);a=0;break}}else a=c[3954]|0;while(0);zb=e;return a|0}function $q(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;do if(Tr(55484,d)|0){d=Ur(55484,d)|0;a=c[d+328>>2]|0;if((b|0)<0?1:(c[d+332>>2]|0)-a>>3>>>0<=b>>>0){a=c[3955]|0;break}else{a=c[a+(b<<3)+4>>2]|0;b=c[d+216>>2]|0;+Re(c[d+228>>2]|0,b+48|0,c[b+44>>2]|0,a);Ks(a+8|0,51360);a=0;break}}else a=c[3954]|0;while(0);zb=e;return a|0}function ar(a){a=a|0;var b=0,d=0,e=0,f=0;f=zb;zb=zb+48|0;b=f+40|0;e=f;c[b>>2]=a;if(!(Tr(55484,b)|0))a=c[3954]|0;else{a=Ur(55484,b)|0;b=e;d=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));c[e>>2]=c[a+196>>2];c[e+16>>2]=1;c[e+12>>2]=c[a+204>>2];a=Mc(c[a+216>>2]|0,e)|0}zb=f;return a|0}function br(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;c[b>>2]=a;if(!(Tr(55484,b)|0))a=15816;else{a=(Ur(55484,b)|0)+216|0;a=(c[a>>2]|0)+44|0}zb=d;return c[a>>2]|0}function cr(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;c[b>>2]=a;if(Tr(55484,b)|0)Ur(55484,b)|0;zb=d;return -1}function dr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=a;do if(Tr(55484,e)|0){e=Ur(55484,e)|0;a=c[e+328>>2]|0;if((b|0)<0?1:(c[e+332>>2]|0)-a>>3>>>0<=b>>>0){a=c[3955]|0;break}a=c[a+(b<<3)+4>>2]|0;if((d|0)<0?1:(c[a+4>>2]|0)<=(d|0)){a=c[3956]|0;break}else{a=c[a>>2]|0;Ks(a+(d*320|0)+16|0,51360);ya(1,c[a+(d*320|0)+304>>2]|0,c[a+(d*320|0)>>2]|0,c[a+(d*320|0)+4>>2]|0,+(+g[a+(d*320|0)+8>>3]))|0;a=0;break}}else a=c[3954]|0;while(0);zb=f;return a|0}function er(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;do if(Tr(55484,d)|0){a=(Ur(55484,d)|0)+216|0;a=c[a>>2]|0;if((c[a+44>>2]|0)>(b|0)){a=(b|0)<0?54536:a+48+(b<<8)|0;Aa(2,c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,c[a+12>>2]|0,c[a+16>>2]|0,c[a+20>>2]|0,c[a+24>>2]|0,+(+g[a+32>>3]),+(+g[a+40>>3]),+(+g[a+48>>3]),+(+g[a+56>>3]),+(+g[a+64>>3]),+(+g[a+72>>3]),+(+g[a+80>>3]),+(+g[a+88>>3]),+(+g[a+96>>3]),+(+g[a+104>>3]),+(+g[a+112>>3]),+(+g[a+120>>3]),+(+g[a+128>>3]),+(+g[a+136>>3]),+(+g[a+144>>3]),+(+g[a+152>>3]),+(+g[a+160>>3]),+(+g[a+168>>3]),+(+g[a+176>>3]),+(+g[a+184>>3]),+(+g[a+192>>3]),+(+g[a+200>>3]),+(+g[a+208>>3]),+(+g[a+216>>3]),+(+g[a+224>>3]),c[a+240>>2]|0)|0;a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=e;return a|0}function fr(a,b){a=a|0;b=b|0;var d=0,e=0,g=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=zb;zb=zb+80|0;q=r+56|0;p=r+48|0;d=r+72|0;i=r+76|0;e=r+68|0;n=r;o=r+64|0;c[d>>2]=a;do if(!(Tr(55484,d)|0))a=c[3954]|0;else{k=Ur(55484,d)|0;l=k+244|0;if((c[l>>2]|0)<=(b|0)){a=c[3956]|0;break}c[i>>2]=0;c[e>>2]=-1;f[o>>2]=-1.0;m=k+240|0;a=c[m>>2]|0;do if((a|0)==-2){j=k+232|0;yg(c[j>>2]|0,c[k+204>>2]|0)|0;Ag(c[j>>2]|0,i,e)|0;e=c[e>>2]|0;j=c[i>>2]|0;a=-1;d=0;while(1){if((d|0)>=(e|0))break;do if((c[j+(d*68|0)+48>>2]|0)==(b|0)?(c[j+(d*68|0)+60>>2]|0)==0:0){if((a|0)==-1)a=c[j+(d*68|0)+52>>2]|0;else{g=+f[j+(d*68|0)+52>>2];if(!(+f[o>>2]>g))break;a=(f[h>>2]=g,c[h>>2]|0)}c[o>>2]=a;a=d}while(0);d=d+1|0}if((a|0)<=-1){c[m>>2]=-2;d=30;break}i=c[j+48>>2]|0;c[m>>2]=i;e=0;while(1){if((e|0)==3)break;d=0;while(1){if((d|0)==4)break;c[n+(e<<4)+(d<<2)>>2]=c[j+(a*68|0)+(e<<4)+(d<<2)>>2];d=d+1|0}e=e+1|0}vf(c[k+248+(i<<2)>>2]|0,n)|0;a=c[m>>2]|0;d=25}else d=25;while(0);do if((d|0)==25)if((a|0)>-1){a=Ct(c[k+236>>2]|0,c[k+248+(a<<2)>>2]|0,c[k+196>>2]|0,n,o)|0;if((a|0)<0){c[p>>2]=a;Ue(0,1,37701,p);c[m>>2]=-2;d=30;break}p=(c[l>>2]|0)+-1|0;c[q>>2]=c[k+248+(c[m>>2]<<2)>>2];c[q+4>>2]=p;Ue(0,1,37720,q);if((c[m>>2]|0)>-1)xa(3,b|0,+(+f[o>>2]),+(+f[n>>2]),+(+f[n+4>>2]),+(+f[n+8>>2]),+(+f[n+12>>2]),+(+f[n+16>>2]),+(+f[n+20>>2]),+(+f[n+24>>2]),+(+f[n+28>>2]),+(+f[n+32>>2]),+(+f[n+36>>2]),+(+f[n+40>>2]),+(+f[n+44>>2]))|0;else d=30}else d=30;while(0);if((d|0)==30)wa(4,b|0)|0;a=0}while(0);zb=r;return a|0}function gr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(!(Tr(55484,d)|0))b=0;else{a=(Ur(55484,d)|0)+216|0;d=(b|0)!=0;tc(c[a>>2]|0,d&1)|0;c[e>>2]=d?37670:37674;Ue(0,1,37679,e)}zb=f;return b|0}function hr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=0;else{a=(Ur(55484,b)|0)+216|0;xc(c[a>>2]|0,d)|0;a=c[d>>2]|0}zb=e;return a|0}function ir(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;c[b>>2]=a;if(!(Tr(55484,b)|0))a=0;else{a=(Ur(55484,b)|0)+216|0;a=c[(c[a>>2]|0)+4834148>>2]|0}zb=d;return a|0}function jr(a){a=a|0;c[3916]=a;return}function kr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=Fs(d)|0;d=Gs(d)|0;ka(a|0,e|0,d|0,Hs()|0,46,b|0);zb=c;return}function lr(){return c[3916]|0}function mr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=As(d)|0;d=Bs(d)|0;ka(a|0,e|0,d|0,Cs()|0,82,b|0);zb=c;return}function nr(a,b){a=a|0;b=+b;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(Tr(55484,d)|0){d=(Ur(55484,d)|0)+312|0;g[d>>3]=b}zb=e;return}function or(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=us(d)|0;d=vs(d)|0;ka(a|0,e|0,d|0,ws()|0,1,b|0);zb=c;return}function pr(a){a=a|0;var b=0.0,d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(!(Tr(55484,d)|0))b=-1.0;else{d=(Ur(55484,d)|0)+312|0;b=+g[d>>3]}zb=e;return +b}function qr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=ps(d)|0;d=qs(d)|0;ka(a|0,e|0,d|0,rs()|0,1,b|0);zb=c;return}function rr(a,b){a=a|0;b=+b;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(Tr(55484,d)|0){d=(Ur(55484,d)|0)+320|0;g[d>>3]=b}zb=e;return}function sr(a){a=a|0;var b=0.0,d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(!(Tr(55484,d)|0))b=-1.0;else{d=(Ur(55484,d)|0)+320|0;b=+g[d>>3]}zb=e;return +b}function tr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(Tr(55484,d)|0?(d=(Ur(55484,d)|0)+216|0,(uc(c[d>>2]|0,b)|0)==0):0){c[e>>2]=b;Ue(0,1,37628,e)}zb=f;return}function ur(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=ks(d)|0;d=ls(d)|0;ka(a|0,e|0,d|0,ms()|0,2,b|0);zb=c;return}function vr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(Cc(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function wr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;f=g;d=g+4|0;c[d>>2]=a;if((Tr(55484,d)|0?(e=Ur(55484,d)|0,b>>>0<=255):0)?(Ac(c[e+216>>2]|0,b)|0)==0:0){c[f>>2]=b;Ue(0,1,37602,f)}zb=g;return}function xr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(Bc(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function yr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(Tr(55484,d)|0?(d=(Ur(55484,d)|0)+216|0,(Fc(c[d>>2]|0,b)|0)==0):0){c[e>>2]=b;Ue(0,1,37567,e)}zb=f;return}function zr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(Ic(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function Ar(a,b){a=a|0;b=+b;var d=0,e=0,f=0,h=0.0,i=0,j=0;j=zb;zb=zb+16|0;i=j;e=j+8|0;c[e>>2]=a;if(((Tr(55484,e)|0?(f=Ur(55484,e)|0,!(b<=0.0|b>=1.0)):0)?(h=b,d=c[f+216>>2]|0,d|0):0)?(Jc(d,h)|0)==0:0){g[i>>3]=h;Ue(0,1,37536,i)}zb=j;return}function Br(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=ds(d)|0;d=es(d)|0;ka(a|0,e|0,d|0,fs()|0,2,b|0);zb=c;return}function Cr(a){a=a|0;var b=0.0,d=0,e=0,f=0;f=zb;zb=zb+16|0;d=f+8|0;e=f;c[d>>2]=a;if(!(Tr(55484,d)|0))b=-1.0;else{a=(Ur(55484,d)|0)+216|0;a=c[a>>2]|0;if(!a)b=-1.0;else{d=(Kc(a,e)|0)==0;b=d?+g[e>>3]:-1.0}}zb=f;return +b}function Dr(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(Tr(55484,d)|0){d=(Ur(55484,d)|0)+216|0;Gc(c[d>>2]|0,b)|0}zb=e;return}function Er(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;Hc(c[a>>2]|0,d)|0;a=c[d>>2]|0}zb=e;return a|0}function Fr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(Tr(55484,d)|0?(d=(Ur(55484,d)|0)+216|0,(yc(c[d>>2]|0,b)|0)==0):0){c[e>>2]=b;Ue(0,1,37506,e)}zb=f;return}function Gr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(zc(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function Hr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(Tr(55484,d)|0?(d=(Ur(55484,d)|0)+216|0,(Dc(c[d>>2]|0,b)|0)==0):0){c[e>>2]=b;Ue(0,1,37477,e)}zb=f;return}function Ir(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(Ec(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function Jr(a,b){a=a|0;b=b|0;var c=0;c=Pr()|0;ha(a|0,c|0,+(+Rr(Qr(b)|0)));return}function Kr(a,b){a=a|0;b=b|0;var c=0;c=Lr()|0;ha(a|0,c|0,+(+Nr(+Mr(b))));return}function Lr(){return Or()|0}function Mr(a){a=a|0;return +(+g[a>>3])}function Nr(a){a=+a;return +a}function Or(){return 14120}function Pr(){return Sr()|0}function Qr(a){a=a|0;return c[a>>2]|0}function Rr(a){a=a|0;return +(+(a|0))}function Sr(){return 14080}function Tr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(!h)if(e>>>0>>0)d=e;else d=(e>>>0)%(f>>>0)|0;else d=g&e;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(e|0)){if((c[b+8>>2]|0)==(e|0))break a}else{if(!h){if(a>>>0>=f>>>0)a=(a>>>0)%(f>>>0)|0}else a=a&g;if((a|0)!=(d|0)){b=0;break a}}}else b=0}else b=0;while(0);return b|0}function Ur(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){Vr(r,a,q,57661,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;Wr(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+16|0}function Vr(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(496)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];g=h+16|0;aP(g|0,0,480)|0;cs(g);a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function Wr(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)bs(a,b)}}else bs(a,b);return}function Xr(a){a=a|0;Yr(a+8|0);return}function Yr(a){a=a|0;Zr(a+328|0);_r(a+288|0);return}function Zr(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function _r(a){a=a|0;$r(a);return}function $r(a){a=a|0;var b=0;as(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function as(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;Pf(b,16);b=a}return}function bs(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function cs(a){a=a|0;var b=0;c[a+192>>2]=0;c[a+196>>2]=0;b=a+204|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+240>>2]=-2;c[a+244>>2]=0;b=a+288|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[a+304>>2]=1065353216;g[a+312>>3]=.0001;g[a+320>>3]=1.0e3;b=a+328|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[a+472>>2]=2;return}function ds(a){a=a|0;return 3}function es(a){a=a|0;return js()|0}function fs(){return 37531}function gs(a,b,c){a=a|0;b=b|0;c=+c;b=hs(b)|0;c=+is(c);Tb[a&3](b,c);return}function hs(a){a=a|0;return a|0}function is(a){a=+a;return +a}function js(){return 15828}function ks(a){a=a|0;return 3}function ls(a){a=a|0;return os()|0}function ms(){return 37623}function ns(a,b,c){a=a|0;b=b|0;c=c|0;b=hs(b)|0;c=hs(c)|0;Ub[a&63](b,c);return}function os(){return 15840}function ps(a){a=a|0;return 2}function qs(a){a=a|0;return ts()|0}function rs(){return 37654}function ss(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0;d=zb;zb=zb+16|0;e=d;b=hs(b)|0;c=+Db[a&3](b);g[e>>3]=c;c=+Mr(e);zb=d;return +c}function ts(){return 15852}function us(a){a=a|0;return 3}function vs(a){a=a|0;return zs()|0}function ws(){return 37658}function xs(a,b,c){a=a|0;b=b|0;c=+c;b=hs(b)|0;c=+ys(c);Tb[a&3](b,c);return}function ys(a){a=+a;return +a}function zs(){return 15860}function As(a){a=a|0;return 1}function Bs(a){a=a|0;return Es()|0}function Cs(){return 37663}function Ds(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;a=Fb[a&1]()|0;c[d>>2]=a;a=Qr(d)|0;zb=b;return a|0}function Es(){return 15872}function Fs(a){a=a|0;return 2}function Gs(a){a=a|0;return Js()|0}function Hs(){return 37666}function Is(a,b){a=a|0;b=b|0;b=hs(b)|0;Sb[a&255](b);return}function Js(){return 15876}function Ks(a,b){a=a|0;b=b|0;var c=0,d=0;d=0;while(1){if((d|0)==3)break;c=0;while(1){if((c|0)==4)break;g[b+(d<<5)+(c<<3)>>3]=+g[a+(d<<5)+(c<<3)>>3];c=c+1|0}d=d+1|0}return}function Ls(a){a=a|0;return 2}function Ms(a){a=a|0;return Qs()|0}function Ns(){return 40673}function Os(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=zb;zb=zb+16|0;f=d+12|0;e=d;Ps(e,b);b=Gb[a&127](e)|0;c[f>>2]=b;b=Qr(f)|0;jO(e);zb=d;return b|0}function Ps(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;gO(a,b+4|0,d);return}function Qs(){return 15884}function Rs(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){Ss(r,a,q,57661,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;Ts(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+16|0}function Ss(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(200)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];aP(h+16|0,0,184)|0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function Ts(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Us(a,b)}}else Us(a,b);return}function Us(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function Vs(a){a=a|0;return 3}function Ws(a){a=a|0;return Zs()|0}function Xs(){return 40837}function Ys(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+16|0;f=e;b=hs(b)|0;d=hs(d)|0;d=Ib[a&63](b,d)|0;c[f>>2]=d;d=Qr(f)|0;zb=e;return d|0}function Zs(){return 15892}function _s(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=zb;zb=zb+96|0;n=r+80|0;m=r+72|0;l=r+64|0;k=r+56|0;j=r+48|0;i=r+40|0;q=r+32|0;p=r+24|0;o=r+16|0;h=r+8|0;s=r;e=r+88|0;f=r+84|0;g=c[a+232>>2]|0;c[e>>2]=0;c[s>>2]=d;Ue(0,1,40887,s);do if((Uf(d,40905,f)|0)>=0){c[o>>2]=b;Ue(0,1,40949,o);if((Vf(c[f>>2]|0,-1,b)|0)<0){Ue(0,3,40974,p);a=0;break}if((Sf(e,f)|0)<0){Ue(0,3,41010,q);a=0;break}Ue(0,1,41037,i);c[j>>2]=d;Ue(0,1,41046,j);s=tf(d,41063,0)|0;c[a+248+(b<<2)>>2]=s;if(!s){c[k>>2]=d;Ue(0,3,41068,k)}Ue(0,1,41037,l);if((b|0)==10)Ea(-1);if((fg(g,c[e>>2]|0)|0)<0){Ue(0,3,41101,m);a=0;break}else{Tf(e)|0;Ue(0,1,41126,n);a=1;break}}else{c[h>>2]=d;Ue(0,3,40911,h);a=0}while(0);zb=r;return a|0}function $s(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=zb;zb=zb+16|0;a=Se(a,c[d>>2]|0)|0;c[e>>2]=a;a:do if(!a){Ue(0,3,41206,f);jd(c[d>>2]|0)|0;a=0}else switch(c[a+108>>2]|0){case 0:{Fc(b,0)|0;a=1;break a}case 1:{Fc(b,2)|0;a=1;break a}default:{Fc(b,3)|0;a=1;break a}}while(0);zb=f;return a|0}function at(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=bt(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;ct(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;dt(a,d);et(d);zb=h;return}}function bt(a){a=a|0;return 536870911}function ct(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function dt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function et(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-8|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function ft(a){a=a|0;return 3}function gt(a){a=a|0;return it()|0}function ht(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=zb;zb=zb+16|0;g=e+12|0;f=e;b=hs(b)|0;Ps(f,d);d=Ib[a&63](b,f)|0;c[g>>2]=d;d=Qr(g)|0;jO(f);zb=e;return d|0}function it(){return 15904}function jt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=zb;zb=zb+16|0;e=f;g=sd(c[d>>2]|0,a)|0;c[b>>2]=g;if((g|0)<0){c[e>>2]=a;Ue(0,3,41277,e);jd(c[d>>2]|0)|0;a=0}else a=1;zb=f;return a|0}function kt(a){a=a|0;return Jf(a)|0}function lt(a){a=a|0;return 2}function mt(a){a=a|0;return ot()|0}function nt(a,b){a=a|0;b=b|0;var d=0,e=0;d=zb;zb=zb+16|0;e=d;b=hs(b)|0;b=Gb[a&127](b)|0;c[e>>2]=b;b=Qr(e)|0;zb=d;return b|0}function ot(){return 15916}function pt(a){a=a|0;var b=0,d=0;b=a+216|0;d=c[b>>2]|0;if(d|0){gd(d)|0;wc(c[b>>2]|0)|0;c[b>>2]=0}b=a+228|0;if(c[b>>2]|0){rc(b)|0;c[b>>2]=0}b=a+192|0;if(c[b>>2]|0){ne(b)|0;c[b>>2]=0}return}function qt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;d=f+4|0;e=f;b=Tr(a,b)|0;if(!b)b=0;else{c[e>>2]=b;c[d>>2]=c[e>>2];rt(a,d)|0;b=1}zb=f;return b|0}function rt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=zb;zb=zb+32|0;h=g+16|0;f=g+4|0;i=g;d=c[d>>2]|0;e=c[d>>2]|0;c[i>>2]=d;c[h>>2]=c[i>>2];st(f,b,h);d=c[f>>2]|0;c[f>>2]=0;if(d|0){if(a[f+8>>0]|0)Xr(d+8|0);Pf(d,496)}zb=g;return e|0}function st(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;o=c[e>>2]|0;l=c[d+4>>2]|0;e=c[o+4>>2]|0;m=l+-1|0;i=(m&l|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(l>>>0)|0;else j=m&e;f=(c[d>>2]|0)+(j<<2)|0;n=c[f>>2]|0;while(1){e=c[n>>2]|0;if((e|0)==(o|0))break;else n=e}k=d+8|0;if((n|0)!=(k|0)){e=c[n+4>>2]|0;if(!i){if(e>>>0>=l>>>0)e=(e>>>0)%(l>>>0)|0}else e=e&m;if((e|0)==(j|0))g=o;else h=14}else h=14;do if((h|0)==14){e=c[o>>2]|0;if(e|0){e=c[e+4>>2]|0;if(!i){if(e>>>0>=l>>>0)e=(e>>>0)%(l>>>0)|0}else e=e&m;if((e|0)==(j|0)){g=o;break}}c[f>>2]=0;g=o}while(0);f=c[g>>2]|0;e=f;if(f){f=c[f+4>>2]|0;if(!i){if(f>>>0>=l>>>0)f=(f>>>0)%(l>>>0)|0}else f=f&m;if((f|0)!=(j|0)){c[(c[d>>2]|0)+(f<<2)>>2]=n;e=c[o>>2]|0}}c[n>>2]=e;c[g>>2]=0;d=d+12|0;c[d>>2]=(c[d>>2]|0)+-1;c[b>>2]=o;c[b+4>>2]=k;a[b+8>>0]=1;return}function tt(a){a=a|0;return 4}function ut(a){a=a|0;return xt()|0}function vt(){return 41348}function wt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;b=hs(b)|0;d=hs(d)|0;e=hs(e)|0;e=Jb[a&63](b,d,e)|0;c[g>>2]=e;e=Qr(g)|0;zb=f;return e|0}function xt(){return 2048}function yt(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;m=zb;zb=zb+48|0;l=m+24|0;k=m+16|0;i=m+8|0;f=m;d=m+32|0;e=m+28|0;c[d>>2]=a;c[e>>2]=b;do if((Tr(55484,d)|0)!=0?(j=Ur(55484,d)|0,(zt(55504,e)|0)!=0):0){h=j+8|0;_O(h|0,Rs(55504,e)|0,184)|0;a=c[h>>2]|0;b=j+208|0;d=c[j+12>>2]|0;e=j+212|0;if(!((a|0)==(c[b>>2]|0)?(d|0)==(c[e>>2]|0):0)){c[f>>2]=a;c[f+4>>2]=d;Ue(0,2,41698,f);be(h,c[b>>2]|0,c[e>>2]|0,h)|0}pt(j);a=me(h,15)|0;d=j+192|0;c[d>>2]=a;if(!a){Ue(0,3,41745,i);a=-1;break}a=sc(a)|0;b=j+216|0;c[b>>2]=a;if(!a){Ue(0,3,41783,k);a=-1;break}Lc(a,c[j+472>>2]|0)|0;k=pc(h)|0;c[j+228>>2]=k;if(!k){Ue(0,3,41820,l);a=-1;break}else{fd(c[b>>2]|0,c[j+220>>2]|0)|0;le(c[d>>2]|0,+g[j+312>>3],+g[j+320>>3],j+344|0);a=kt(c[d>>2]|0)|0;c[j+232>>2]=a;a=0;break}}else a=-1;while(0);zb=m;return a|0}function zt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(!h)if(e>>>0>>0)d=e;else d=(e>>>0)%(f>>>0)|0;else d=g&e;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(e|0)){if((c[b+8>>2]|0)==(e|0))break a}else{if(!h){if(a>>>0>=f>>>0)a=(a>>>0)%(f>>>0)|0}else a=a&g;if((a|0)!=(d|0)){b=0;break a}}}else b=0}else b=0;while(0);return b|0}function At(a,b){a=a|0;b=b|0;b=Bt(b,c[a>>2]|0,c[a+4>>2]|0)|0;c[b>>2]=1;c[b+12>>2]=a;a=Ee(a+8|0)|0;c[b+16>>2]=a;Ge(a,0.0)|0;return b|0}function Bt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0;g=zb;zb=zb+16|0;e=FO(13732)|0;if(!e){Ue(0,3,41858,g);Ea(1)}c[e+20>>2]=a;c[e+4>>2]=b;c[e+8>>2]=d;c[e+24>>2]=25;c[e+28>>2]=11;c[e+32>>2]=11;c[e+36>>2]=10;f[e+40>>2]=.6000000238418579;f[e+44>>2]=2.0;c[e+13280>>2]=1;d=FO(B(d,b)|0)|0;c[e+13300>>2]=d;if(!d){Ue(0,3,41858,g+8|0);Ea(1)}else{c[e+13304>>2]=0;zb=g;return e|0}return 0}function Ct(a,b,d,e,h){a=a|0;b=b|0;d=d|0;e=e|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.0;D=zb;zb=zb+48|0;x=D;y=D+40|0;z=D+32|0;a:do if((a|0)!=0&(b|0)!=0&(d|0)!=0&(e|0)!=0&(h|0)!=0){C=b+152|0;if((c[C>>2]|0)<1)i=-2;else{f[h>>2]=0.0;j=b+4|0;B=b+8|0;k=b+56|0;l=b+104|0;i=0;while(1){if((i|0)>=(c[j>>2]|0))break;wd(B,(c[b>>2]|0)+(i*112|0)+12|0,a+48+(i*48|0)|0)|0;if((c[C>>2]|0)>1?(wd(k,(c[b>>2]|0)+(i*112|0)+12|0,a+528+(i*48|0)|0)|0,(c[C>>2]|0)>2):0)wd(l,(c[b>>2]|0)+(i*112|0)+12|0,a+1008+(i*48|0)|0)|0;i=i+1|0}if((c[a>>2]|0)==1){q=a+12|0;r=a+2672|0;n=a+7496|0;Dt(c[q>>2]|0,a+48|0,b,r,n);o=a+4|0;p=a+8|0}else{o=a+4|0;p=a+8|0;r=a+2672|0;n=a+7496|0;Et(c[o>>2]|0,c[p>>2]|0,a+48|0,b,r,n);q=a+12|0}s=a+36|0;t=a+13280|0;u=b+156|0;v=a+1488|0;w=a+40|0;A=0;i=r;j=0;while(1){if((j|0)>=(c[s>>2]|0))break;m=0;l=A;k=i;while(1){if((m|0)>=(c[t>>2]|0))break;if((j|0)==(c[s>>2]|0))break;i=pf(k,u,l,v,c[o>>2]|0,c[p>>2]|0)|0;if((i|0)<0){if((k|0)!=(r|0))break;i=pf(n,u,l,v,c[o>>2]|0,c[p>>2]|0)|0;if((i|0)<0){k=n;break}else k=n}E=k+(i*24|0)|0;c[x+(m<<2)>>2]=E;c[a+1488+(l<<3)>>2]=c[k+(i*24|0)+16>>2];c[a+1488+(l<<3)+4>>2]=c[k+(i*24|0)+20>>2];c[a+13284+(m*52|0)>>2]=a;c[a+13284+(m*52|0)+4>>2]=b;c[a+13284+(m*52|0)+8>>2]=E;c[a+13284+(m*52|0)+12>>2]=d;i=l+1|0;m=m+1|0;l=(i|0)==5?A:i;j=j+1|0}if(!m)break;l=0;i=A;while(1){if((l|0)==(m|0))break;E=a+13284+(l*52|0)+24|0;A=Lt(c[a+13284+(l*52|0)>>2]|0,c[a+13284+(l*52|0)+4>>2]|0,c[a+13284+(l*52|0)+8>>2]|0,c[a+13284+(l*52|0)+12>>2]|0,c[a+13284+(l*52|0)+16>>2]|0,a+13284+(l*52|0)+20|0,E)|0;c[a+13284+(l*52|0)+48>>2]=A;if((A|0)==0?+f[E>>2]>+f[w>>2]:0){if((c[a>>2]|0)==1){E=c[q>>2]|0;fe(E+104|0,+f[a+13284+(l*52|0)+28>>2],+f[a+13284+(l*52|0)+32>>2],y,z,c[E+176>>2]|0)|0;f[a+1872+(i<<3)>>2]=+g[y>>3];f[a+1872+(i<<3)+4>>2]=+g[z>>3]}else{c[a+1872+(i<<3)>>2]=c[a+13284+(l*52|0)+28>>2];c[a+1872+(i<<3)+4>>2]=c[a+13284+(l*52|0)+32>>2]}c[a+2192+(i*12|0)>>2]=c[a+13284+(l*52|0)+36>>2];c[a+2192+(i*12|0)+4>>2]=c[a+13284+(l*52|0)+40>>2];c[a+2192+(i*12|0)+8>>2]=c[a+13284+(l*52|0)+44>>2];E=c[x+(l<<2)>>2]|0;c[a+1488+(i<<3)>>2]=c[E+16>>2];c[a+1488+(i<<3)+4>>2]=c[E+20>>2];c[a+12320+(i*24|0)>>2]=c[E>>2];c[a+12320+(i*24|0)+4>>2]=c[E+4>>2];c[a+12320+(i*24|0)+8>>2]=c[E+8>>2];c[a+12320+(i*24|0)+12>>2]=0;i=i+1|0}l=l+1|0}A=i;i=k}i=0;while(1){if((i|0)>=(A|0))break;E=b+156+(i*24|0)|0;z=a+12320+(i*24|0)|0;c[E>>2]=c[z>>2];c[E+4>>2]=c[z+4>>2];c[E+8>>2]=c[z+8>>2];c[E+12>>2]=c[z+12>>2];c[E+16>>2]=c[z+16>>2];c[E+20>>2]=c[z+20>>2];i=i+1|0}c[b+156+(A*24|0)+12>>2]=-1;i=(A|0)<3;if((c[a>>2]|0)==1){if(i){c[C>>2]=0;i=-3;break}j=a+16|0;k=a+1872|0;l=a+2192|0;F=+Ft(c[j>>2]|0,B,k,l,A,e,0);f[h>>2]=F;i=a+44|0;if((((F>+f[i>>2]?(Ge(c[j>>2]|0,.800000011920929)|0,F=+Ft(c[j>>2]|0,e,k,l,A,e,1),f[h>>2]=F,F>+f[i>>2]):0)?(Ge(c[j>>2]|0,.6000000238418579)|0,F=+Ft(c[j>>2]|0,e,k,l,A,e,1),f[h>>2]=F,F>+f[i>>2]):0)?(Ge(c[j>>2]|0,.4000000059604645)|0,F=+Ft(c[j>>2]|0,e,k,l,A,e,1),f[h>>2]=F,F>+f[i>>2]):0)?(Ge(c[j>>2]|0,0.0)|0,F=+Ft(c[j>>2]|0,e,k,l,A,e,1),f[h>>2]=F,F>+f[i>>2]):0){c[C>>2]=0;i=-4;break}}else{if(i){c[C>>2]=0;i=-3;break}j=a+1872|0;k=a+2192|0;F=+Gt(B,j,k,A,e,0,1.0);f[h>>2]=F;i=a+44|0;if((((F>+f[i>>2]?(F=+Gt(e,j,k,A,e,1,.800000011920929),f[h>>2]=F,F>+f[i>>2]):0)?(F=+Gt(e,j,k,A,e,1,.6000000238418579),f[h>>2]=F,F>+f[i>>2]):0)?(F=+Gt(e,j,k,A,e,1,.4000000059604645),f[h>>2]=F,F>+f[i>>2]):0)?(F=+Gt(e,j,k,A,e,1,0.0),f[h>>2]=F,F>+f[i>>2]):0){c[C>>2]=0;i=-4;break}}c[C>>2]=(c[C>>2]|0)+1;i=0;while(1){if((i|0)==3)break;j=0;while(1){if((j|0)==4)break;c[b+104+(i<<4)+(j<<2)>>2]=c[b+56+(i<<4)+(j<<2)>>2];j=j+1|0}i=i+1|0}i=0;while(1){if((i|0)==3)break;j=0;while(1){if((j|0)==4)break;c[b+56+(i<<4)+(j<<2)>>2]=c[b+8+(i<<4)+(j<<2)>>2];j=j+1|0}i=i+1|0}i=0;while(1){if((i|0)==3){i=0;break a}j=0;while(1){if((j|0)==4)break;c[b+8+(i<<4)+(j<<2)>>2]=c[e+(i<<4)+(j<<2)>>2];j=j+1|0}i=i+1|0}}}else i=-1;while(0);zb=D;return i|0}function Dt(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=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.0,N=0,O=0,P=0,Q=0,R=0.0,S=0.0;Q=zb;zb=zb+80|0;P=Q+48|0;I=Q;J=Q+76|0;L=Q+72|0;N=Q+64|0;O=Q+56|0;q=d+4|0;r=+(c[a>>2]|0);s=+(c[a+4>>2]|0);t=I+4|0;v=I+12|0;w=I+16|0;x=I+20|0;y=I+28|0;z=I+32|0;A=I+36|0;B=I+44|0;C=I+8|0;D=I+24|0;E=I+40|0;F=N+4|0;G=O+4|0;H=g+4812|0;k=0;l=0;p=0;a:while(1){if((p|0)>=(c[q>>2]|0)){i=29;break}i=0;while(1){if((i|0)==3)break;h=0;while(1){if((h|0)==4)break;c[I+(i<<4)+(h<<2)>>2]=c[b+(p*48|0)+(i<<4)+(h<<2)>>2];h=h+1|0}i=i+1|0}h=k;i=l;o=0;k=c[(c[d>>2]|0)+(p*112|0)+4>>2]|0;while(1){if((o|0)>=(c[k+4>>2]|0))break;n=0;l=k;while(1){k=c[l>>2]|0;if((n|0)>=(c[k+(o*20|0)+4>>2]|0))break;l=c[k+(o*20|0)>>2]|0;l=(Df(a,I,+f[l+(n*20|0)+8>>2],+f[l+(n*20|0)+12>>2],J,L)|0)<0;j=+f[J>>2];do if((!(l|j<0.0)?(m=+f[L>>2],!(m>=s)&(!(j>=r)&!(m<0.0))):0)?(l=c[(c[c[(c[d>>2]|0)+(p*112|0)+4>>2]>>2]|0)+(o*20|0)>>2]|0,K=+f[l+(n*20|0)+8>>2],M=+f[l+(n*20|0)+12>>2],R=+f[v>>2]+(+f[I>>2]*K+ +f[t>>2]*M),j=+f[y>>2]+(K*+f[w>>2]+M*+f[x>>2]),S=+f[B>>2]+(K*+f[z>>2]+M*+f[A>>2]),m=+u(+(R*R+j*j+S*S)),!(+f[E>>2]*(S/m)+(+f[C>>2]*(R/m)+ +f[D>>2]*(j/m))>-.10000000149011612)):0){f[N>>2]=K;f[F>>2]=M;nf(a,I,N,O)|0;j=+f[G>>2];k=c[c[(c[d>>2]|0)+(p*112|0)+4>>2]>>2]|0;m=+f[k+(o*20|0)+12>>2];if(j<=m?j>=+f[k+(o*20|0)+16>>2]:0){if((i|0)==200){i=19;break a}c[e+(i*24|0)>>2]=p;c[e+(i*24|0)+4>>2]=o;c[e+(i*24|0)+8>>2]=n;c[e+(i*24|0)+16>>2]=c[J>>2];c[e+(i*24|0)+20>>2]=c[L>>2];c[e+(i*24|0)+12>>2]=0;i=i+1|0;break}if(j<=m*2.0?j>=+f[k+(o*20|0)+16>>2]*.5:0)if((h|0)==200){c[H>>2]=-1;h=200;break}else{c[g+(h*24|0)>>2]=p;c[g+(h*24|0)+4>>2]=o;c[g+(h*24|0)+8>>2]=n;c[g+(h*24|0)+16>>2]=c[J>>2];c[g+(h*24|0)+20>>2]=c[L>>2];c[g+(h*24|0)+12>>2]=0;h=h+1|0;break}}while(0);n=n+1|0;l=c[(c[d>>2]|0)+(p*112|0)+4>>2]|0}o=o+1|0;k=l}k=h;l=i;p=p+1|0}if((i|0)==19){Ue(0,3,41890,P);h=e+4812|0}else if((i|0)==29){c[e+(l*24|0)+12>>2]=-1;h=g+(k*24|0)+12|0}c[h>>2]=-1;zb=Q;return} function Et(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+80|0;A=B+48|0;w=B;x=B+76|0;y=B+72|0;z=B+64|0;u=B+56|0;v=e+4|0;t=+(a|0);p=+(b|0);q=z+4|0;r=u+4|0;s=h+4812|0;j=0;k=0;o=0;a:while(1){if((o|0)>=(c[v>>2]|0)){b=28;break}b=0;while(1){if((b|0)==3)break;a=0;while(1){if((a|0)==4)break;c[w+(b<<4)+(a<<2)>>2]=c[d+(o*48|0)+(b<<4)+(a<<2)>>2];a=a+1|0}b=b+1|0}a=j;b=k;n=0;j=c[(c[e>>2]|0)+(o*112|0)+4>>2]|0;while(1){if((n|0)>=(c[j+4>>2]|0))break;m=0;k=j;while(1){j=c[k>>2]|0;if((m|0)>=(c[j+(n*20|0)+4>>2]|0))break;k=c[j+(n*20|0)>>2]|0;k=(Df(0,w,+f[k+(m*20|0)+8>>2],+f[k+(m*20|0)+12>>2],x,y)|0)<0;i=+f[x>>2];do if(!(k|i<0.0)?(l=+f[y>>2],!(l>=p)&(!(i>=t)&!(l<0.0))):0){j=c[(c[c[(c[e>>2]|0)+(o*112|0)+4>>2]>>2]|0)+(n*20|0)>>2]|0;c[z>>2]=c[j+(m*20|0)+8>>2];c[q>>2]=c[j+(m*20|0)+12>>2];nf(0,w,z,u)|0;i=+f[r>>2];j=c[c[(c[e>>2]|0)+(o*112|0)+4>>2]>>2]|0;l=+f[j+(n*20|0)+12>>2];if(i<=l?i>=+f[j+(n*20|0)+16>>2]:0){if((b|0)==200){b=18;break a}c[g+(b*24|0)>>2]=o;c[g+(b*24|0)+4>>2]=n;c[g+(b*24|0)+8>>2]=m;c[g+(b*24|0)+16>>2]=c[x>>2];c[g+(b*24|0)+20>>2]=c[y>>2];c[g+(b*24|0)+12>>2]=0;b=b+1|0;break}if(i<=l*2.0?i>=+f[j+(n*20|0)+16>>2]*.5:0)if((a|0)==200){c[s>>2]=-1;a=200;break}else{c[h+(a*24|0)>>2]=o;c[h+(a*24|0)+4>>2]=n;c[h+(a*24|0)+8>>2]=m;c[h+(a*24|0)+16>>2]=c[x>>2];c[h+(a*24|0)+20>>2]=c[y>>2];c[h+(a*24|0)+12>>2]=0;a=a+1|0;break}}while(0);m=m+1|0;k=c[(c[e>>2]|0)+(o*112|0)+4>>2]|0}n=n+1|0;j=k}j=a;k=b;o=o+1|0}if((b|0)==18){Ue(0,3,41890,A);a=g+4812|0}else if((b|0)==28){c[g+(k*24|0)+12>>2]=-1;a=h+(j*24|0)+12|0}c[a>>2]=-1;zb=B;return}function Ft(a,b,d,e,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0;w=zb;zb=zb+224|0;s=w+212|0;t=w+96|0;v=w;u=w+192|0;l=FO(h<<4)|0;c[s>>2]=l;if(!l){Ue(0,3,41858,w+200|0);Ea(1)}p=FO(h*24|0)|0;q=s+4|0;c[q>>2]=p;if(!p){Ue(0,3,41858,w+208|0);Ea(1)}k=0;o=0.0;n=0.0;m=0.0;while(1){if((k|0)>=(h|0))break;r=m+ +f[e+(k*12|0)>>2];x=n+ +f[e+(k*12|0)+4>>2];y=o+ +f[e+(k*12|0)+8>>2];k=k+1|0;o=y;n=x;m=r}y=+(h|0);r=m/y;n=n/y;m=o/y;k=0;while(1){if((k|0)>=(h|0))break;g[l+(k<<4)>>3]=+f[d+(k<<3)>>2];g[l+(k<<4)+8>>3]=+f[d+(k<<3)+4>>2];g[p+(k*24|0)>>3]=+f[e+(k*12|0)>>2]-r;g[p+(k*24|0)+8>>3]=+f[e+(k*12|0)+4>>2]-n;g[p+(k*24|0)+16>>3]=+f[e+(k*12|0)+8>>2]-m;k=k+1|0}c[s+8>>2]=h;k=0;while(1){if((k|0)==3)break;l=0;while(1){if((l|0)==3)break;g[t+(k<<5)+(l<<3)>>3]=+f[b+(k<<4)+(l<<2)>>2];l=l+1|0}k=k+1|0}g[t+24>>3]=+f[b+12>>2]+(r*+f[b>>2]+n*+f[b+4>>2]+m*+f[b+8>>2]);g[t+56>>3]=+f[b+28>>2]+(r*+f[b+16>>2]+n*+f[b+20>>2]+m*+f[b+24>>2]);g[t+88>>3]=+f[b+44>>2]+(r*+f[b+32>>2]+n*+f[b+36>>2]+m*+f[b+40>>2]);if(!j){if((He(a,s,t,v,u)|0)<0)g[u>>3]=1.0e8}else if((Je(a,s,t,v,u)|0)<0)g[u>>3]=1.0e8;GO(c[s>>2]|0);GO(c[q>>2]|0);k=0;while(1){if((k|0)==3)break;l=0;while(1){if((l|0)==3)break;f[i+(k<<4)+(l<<2)>>2]=+g[v+(k<<5)+(l<<3)>>3];l=l+1|0}k=k+1|0}x=n;y=m;f[i+12>>2]=+g[v+24>>3]-+g[v>>3]*r-+g[v+8>>3]*x-+g[v+16>>3]*y;f[i+28>>2]=+g[v+56>>3]-+g[v+32>>3]*r-+g[v+40>>3]*x-+g[v+48>>3]*y;f[i+44>>2]=+g[v+88>>3]-+g[v+64>>3]*r-+g[v+72>>3]*x-+g[v+80>>3]*y;zb=w;return +(+g[u>>3])}function Gt(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;if(!f)g=+Ht(a,b,c,d,e);else g=+It(a,b,c,d,e,g);return +g}function Ht(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0.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,r=0,s=0,t=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,G=0,H=0,I=0.0,J=0.0,K=0,L=0.0,M=0.0,N=0.0;H=zb;zb=zb+48|0;i=H+40|0;h=H+32|0;F=H;do if((d|0)>=4?(j=a+44|0,!(+f[j>>2]==0.0)):0){G=FO(d<<6)|0;if(!G){Ue(0,3,41875,h);g=-1.0;break}E=FO(d<<3)|0;if(!E){Ue(0,3,41875,i);GO(G);g=-1.0;break}h=0;while(1){if((h|0)==3)break;i=0;while(1){if((i|0)==4)break;f[e+(h<<4)+(i<<2)>>2]=+f[a+(h<<4)+(i<<2)>>2]/+f[j>>2];i=i+1|0}h=h+1|0}a=e+4|0;j=e+12|0;q=e+16|0;r=e+20|0;s=e+28|0;t=e+32|0;u=e+36|0;v=+(d|0);w=d<<1;x=F+4|0;y=F+8|0;z=F+12|0;A=F+16|0;B=F+20|0;C=F+24|0;D=F+28|0;p=0.0;i=0;a:while(1){g=0.0;h=0;while(1){if((h|0)>=(d|0))break;k=+f[c+(h*12|0)>>2];l=+f[c+(h*12|0)+4>>2];m=+f[j>>2]+(+f[e>>2]*k+ +f[a>>2]*l);n=+f[s>>2]+(k*+f[q>>2]+l*+f[r>>2]);o=k*+f[t>>2]+l*+f[u>>2]+1.0;if(o==0.0){h=17;break a}L=o*o;J=+f[b+(h<<3)>>2]-m/o;I=+f[b+(h<<3)+4>>2]-n/o;K=h<<1;f[E+(K<<2)>>2]=J;f[E+((K|1)<<2)>>2]=I;N=k/o;K=h<<4;f[G+(K<<2)>>2]=N;M=l/o;f[G+((K|1)<<2)>>2]=M;o=1.0/o;f[G+((K|2)<<2)>>2]=o;f[G+((K|3)<<2)>>2]=0.0;f[G+((K|4)<<2)>>2]=0.0;f[G+((K|5)<<2)>>2]=0.0;f[G+((K|6)<<2)>>2]=-(k*m)/L;f[G+((K|7)<<2)>>2]=-(l*m)/L;f[G+((K|8)<<2)>>2]=0.0;f[G+((K|9)<<2)>>2]=0.0;f[G+((K|10)<<2)>>2]=0.0;f[G+((K|11)<<2)>>2]=N;f[G+((K|12)<<2)>>2]=M;f[G+((K|13)<<2)>>2]=o;f[G+((K|14)<<2)>>2]=-(k*n)/L;f[G+((K|15)<<2)>>2]=-(l*n)/L;g=g+(J*J+I*I);h=h+1|0}g=g/v;if(g<.10000000149011612){h=26;break}if((i|0)!=0&g<4.0){if((i|0)==10|g/p>.9900000095367432){h=26;break}}else if((i|0)==10){h=26;break}if((Kt(F,E,G,w)|0)<0){h=24;break}f[e>>2]=+f[F>>2]+ +f[e>>2];f[a>>2]=+f[x>>2]+ +f[a>>2];f[j>>2]=+f[y>>2]+ +f[j>>2];f[q>>2]=+f[z>>2]+ +f[q>>2];f[r>>2]=+f[A>>2]+ +f[r>>2];f[s>>2]=+f[B>>2]+ +f[s>>2];f[t>>2]=+f[C>>2]+ +f[t>>2];f[u>>2]=+f[D>>2]+ +f[u>>2];p=g;i=i+1|0}if((h|0)==17){GO(G);GO(E);g=1.0e8;break}else if((h|0)==24){GO(G);GO(E);g=1.0e8;break}else if((h|0)==26){GO(G);GO(E);break}}else g=1.0e8;while(0);zb=H;return +g}function It(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=+g;var h=0,i=0,j=0,k=0,l=0,m=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,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0,O=0;J=zb;zb=zb+64|0;k=J+56|0;j=J+48|0;i=J+40|0;h=J+32|0;I=J;do if((d|0)>=4?(l=a+44|0,!(+f[l>>2]==0.0)):0){G=+(d|0);m=~~(G*g)+-1|0;m=(m|0)>4?m:4;H=FO(d<<6)|0;if(!H){Ue(0,3,41875,h);g=-1.0;break}F=FO(d<<3)|0;if(!F){Ue(0,3,41875,i);GO(H);g=-1.0;break}h=d<<2;E=FO(h)|0;if(!E){Ue(0,3,41875,j);GO(H);GO(F);g=-1.0;break}D=FO(h)|0;if(!D){Ue(0,3,41875,k);GO(H);GO(F);GO(E);g=-1.0;break}h=0;while(1){if((h|0)==3)break;i=0;while(1){if((i|0)==4)break;f[e+(h<<4)+(i<<2)>>2]=+f[a+(h<<4)+(i<<2)>>2]/+f[l>>2];i=i+1|0}h=h+1|0}w=e+4|0;x=e+12|0;y=e+16|0;z=e+20|0;A=e+28|0;B=e+32|0;C=e+36|0;k=D+(m<<2)|0;a=I+4|0;l=I+8|0;m=I+12|0;s=I+16|0;t=I+20|0;u=I+24|0;v=I+28|0;r=0.0;j=0;a:while(1){h=0;while(1){if((h|0)>=(d|0))break;g=+f[c+(h*12|0)>>2];n=+f[c+(h*12|0)+4>>2];o=+f[x>>2]+(+f[e>>2]*g+ +f[w>>2]*n);p=+f[A>>2]+(g*+f[y>>2]+n*+f[z>>2]);q=g*+f[B>>2]+n*+f[C>>2]+1.0;if(q==0.0){h=21;break a}K=q*q;L=+f[b+(h<<3)>>2]-o/q;M=+f[b+(h<<3)+4>>2]-p/q;i=h<<1;f[F+(i<<2)>>2]=L;f[F+((i|1)<<2)>>2]=M;M=L*L+M*M;f[D+(h<<2)>>2]=M;f[E+(h<<2)>>2]=M;M=g/q;i=h<<4;f[H+(i<<2)>>2]=M;L=n/q;f[H+((i|1)<<2)>>2]=L;q=1.0/q;f[H+((i|2)<<2)>>2]=q;f[H+((i|3)<<2)>>2]=0.0;f[H+((i|4)<<2)>>2]=0.0;f[H+((i|5)<<2)>>2]=0.0;f[H+((i|6)<<2)>>2]=-(g*o)/K;f[H+((i|7)<<2)>>2]=-(n*o)/K;f[H+((i|8)<<2)>>2]=0.0;f[H+((i|9)<<2)>>2]=0.0;f[H+((i|10)<<2)>>2]=0.0;f[H+((i|11)<<2)>>2]=M;f[H+((i|12)<<2)>>2]=L;f[H+((i|13)<<2)>>2]=q;f[H+((i|14)<<2)>>2]=-(g*p)/K;f[H+((i|15)<<2)>>2]=-(n*p)/K;h=h+1|0}oy(D,d,4,32);p=+f[k>>2]*4.0;p=p<16.0?16.0:p;o=p/6.0;n=0.0;h=0;while(1){if((h|0)==(d|0))break;g=+f[D+(h<<2)>>2];if(g>p)g=o;else{g=1.0-g/p;g=o*(1.0-g*(g*g))}n=n+g;h=h+1|0}g=n/G;if(g<.10000000149011612){h=42;break}if((j|0)!=0&g<4.0){if((j|0)==10|g/r>.9900000095367432){h=42;break}}else if((j|0)==10){h=42;break}h=0;i=0;while(1){if((i|0)==(d|0))break;n=+f[E+(i<<2)>>2];if(n<=p){M=1.0-n/p;M=M*M;O=i<<4;N=h<<3;f[H+(N<<2)>>2]=M*+f[H+(O<<2)>>2];f[H+((N|1)<<2)>>2]=M*+f[H+((O|1)<<2)>>2];f[H+((N|2)<<2)>>2]=M*+f[H+((O|2)<<2)>>2];f[H+((N|3)<<2)>>2]=M*+f[H+((O|3)<<2)>>2];f[H+((N|4)<<2)>>2]=M*+f[H+((O|4)<<2)>>2];f[H+((N|5)<<2)>>2]=M*+f[H+((O|5)<<2)>>2];f[H+((N|6)<<2)>>2]=M*+f[H+((O|6)<<2)>>2];f[H+((N|7)<<2)>>2]=M*+f[H+((O|7)<<2)>>2];f[H+(N+8<<2)>>2]=M*+f[H+((O|8)<<2)>>2];f[H+(N+9<<2)>>2]=M*+f[H+((O|9)<<2)>>2];f[H+(N+10<<2)>>2]=M*+f[H+((O|10)<<2)>>2];f[H+(N+11<<2)>>2]=M*+f[H+((O|11)<<2)>>2];f[H+(N+12<<2)>>2]=M*+f[H+((O|12)<<2)>>2];f[H+(N+13<<2)>>2]=M*+f[H+((O|13)<<2)>>2];f[H+(N+14<<2)>>2]=M*+f[H+((O|14)<<2)>>2];f[H+(N+15<<2)>>2]=M*+f[H+((O|15)<<2)>>2];N=i<<1;f[F+(h<<2)>>2]=M*+f[F+(N<<2)>>2];f[F+(h+1<<2)>>2]=M*+f[F+((N|1)<<2)>>2];h=h+2|0}i=i+1|0}if((h|0)<6){h=38;break}if((Kt(I,F,H,h)|0)<0){h=40;break}f[e>>2]=+f[I>>2]+ +f[e>>2];f[w>>2]=+f[a>>2]+ +f[w>>2];f[x>>2]=+f[l>>2]+ +f[x>>2];f[y>>2]=+f[m>>2]+ +f[y>>2];f[z>>2]=+f[s>>2]+ +f[z>>2];f[A>>2]=+f[t>>2]+ +f[A>>2];f[B>>2]=+f[u>>2]+ +f[B>>2];f[C>>2]=+f[v>>2]+ +f[C>>2];r=g;j=j+1|0}if((h|0)==21){GO(H);GO(F);GO(E);GO(D);g=1.0e8;break}else if((h|0)==38){GO(H);GO(F);GO(E);GO(D);g=-1.0;break}else if((h|0)==40){GO(H);GO(F);GO(E);GO(D);g=1.0e8;break}else if((h|0)==42){GO(H);GO(F);GO(E);GO(D);break}}else g=1.0e8;while(0);zb=J;return +g}function Jt(a,b){a=a|0;b=b|0;var c=0.0;c=+f[a>>2]-+f[b>>2];return (c<0.0?-1:c>0.0&1)|0}function Kt(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;i=zb;zb=zb+48|0;h=i+24|0;g=i+12|0;f=i;c[h+4>>2]=8;c[h+8>>2]=1;c[h>>2]=a;c[g+4>>2]=e;c[g+8>>2]=1;c[g>>2]=b;c[f+4>>2]=e;c[f+8>>2]=8;c[f>>2]=d;e=Jd(f)|0;if(!e)a=-1;else{d=Hd(e,f)|0;if(!d)a=-1;else{b=Hd(e,g)|0;if(!b)a=-1;else{if((Zd(d)|0)<0)a=-1;else{Od(h,d,b)|0;a=0}Md(b)|0}Md(d)|0}Md(e)|0}zb=i;return a|0}function Lt(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=zb;zb=zb+32|0;j=s;q=s+28|0;r=s+24|0;o=c[d>>2]|0;p=c[d+4>>2]|0;n=c[d+8>>2]|0;d=c[h>>2]|0;if(!d){d=Af(c[a+28>>2]|0,c[a+32>>2]|0)|0;c[h>>2]=d}k=a+12|0;m=a+48+(o*48|0)|0;l=c[b>>2]|0;if((Bf(c[k>>2]|0,m,c[l+(o*112|0)>>2]|0,(c[c[l+(o*112|0)+4>>2]>>2]|0)+(p*20|0)|0,n,d)|0)>=0?(l=c[h>>2]|0,d=c[l+28>>2]|0,t=+(B(d,d)|0),!(+(B((c[l+16>>2]|0)+1+(c[l+20>>2]|0)|0,(c[l+8>>2]|0)+1+(c[l+12>>2]|0)|0)|0)*5.0*5.0>t)):0){l=c[b+152>>2]|0;do if((l|0)!=1){d=c[k>>2]|0;k=a+528+(o*48|0)|0;if((l|0)==2){Cf(d,m,k,0,(c[(c[c[(c[b>>2]|0)+(o*112|0)+4>>2]>>2]|0)+(p*20|0)>>2]|0)+(n*20|0)|0,j);break}else{Cf(d,m,k,a+1008+(o*48|0)|0,(c[(c[c[(c[b>>2]|0)+(o*112|0)+4>>2]>>2]|0)+(p*20|0)>>2]|0)+(n*20|0)|0,j);break}}else Cf(c[k>>2]|0,m,0,0,(c[(c[c[(c[b>>2]|0)+(o*112|0)+4>>2]>>2]|0)+(p*20|0)>>2]|0)+(n*20|0)|0,j);while(0);m=c[a+24>>2]|0;if((wf(e,g,c[a+4>>2]|0,c[a+8>>2]|0,c[a+20>>2]|0,c[h>>2]|0,m,m,j,q,r,i)|0)>=0){f[i+4>>2]=+(c[q>>2]|0);f[i+8>>2]=+(c[r>>2]|0);r=c[b>>2]|0;j=c[(c[c[r+(o*112|0)+4>>2]>>2]|0)+(p*20|0)>>2]|0;q=j+(n*20|0)+8|0;j=j+(n*20|0)+12|0;f[i+12>>2]=+f[r+(o*112|0)+24>>2]+(+f[r+(o*112|0)+12>>2]*+f[q>>2]+ +f[r+(o*112|0)+16>>2]*+f[j>>2]);f[i+16>>2]=+f[r+(o*112|0)+40>>2]+(+f[r+(o*112|0)+28>>2]*+f[q>>2]+ +f[r+(o*112|0)+32>>2]*+f[j>>2]);f[i+20>>2]=+f[r+(o*112|0)+56>>2]+(+f[r+(o*112|0)+44>>2]*+f[q>>2]+ +f[r+(o*112|0)+48>>2]*+f[j>>2]);j=0}else j=-1}else j=-1;zb=s;return j|0}function Mt(a){a=a|0;a=Jb[c[c[a+4>>2]>>2]&63](a,0,132)|0;c[a+128>>2]=0;return a|0}function Nt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+24|0;d=c[e>>2]|0;if(!d){f=a+4|0;d=Jb[c[c[f>>2]>>2]&63](a,0,40)|0;c[e>>2]=d;a=Jb[c[c[f>>2]>>2]&63](a,0,4096)|0;c[d+32>>2]=a;d=c[e>>2]|0}c[d+8>>2]=115;c[d+12>>2]=83;c[d+16>>2]=47;c[d+20>>2]=33;c[d+24>>2]=116;c[d+28>>2]=b;c[d+4>>2]=0;c[d>>2]=0;return}function Ot(a){a=a|0;c[(c[a+24>>2]|0)+36>>2]=1;return}function Pt(b){b=b|0;var d=0,e=0,f=0,g=0;e=c[b+24>>2]|0;f=e+32|0;d=gA(c[f>>2]|0,1,4096,c[e+28>>2]|0)|0;g=e+36|0;if(d|0){b=d;f=c[f>>2]|0;c[e>>2]=f;f=e+4|0;c[f>>2]=b;c[g>>2]=0;return 1}if(!(c[g>>2]|0))d=b;else{d=c[b>>2]|0;c[d+20>>2]=43;Sb[c[d>>2]&255](b);d=b}b=c[b>>2]|0;c[b+20>>2]=123;Ub[c[b+4>>2]&63](d,-1);a[c[f>>2]>>0]=-1;a[(c[f>>2]|0)+1>>0]=-39;b=2;f=c[f>>2]|0;c[e>>2]=f;f=e+4|0;c[f>>2]=b;c[g>>2]=0;return 1}function Qt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+24>>2]|0;if((b|0)<=0)return;g=f+4|0;d=c[g>>2]|0;if((d|0)<(b|0)){e=f+12|0;do{b=b-d|0;Gb[c[e>>2]&127](a)|0;d=c[g>>2]|0}while((b|0)>(d|0))}c[f>>2]=(c[f>>2]|0)+b;c[g>>2]=d-b;return}function Rt(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;k=a+440|0;g=c[k>>2]|0;h=c[a>>2]|0;c[h+20>>2]=124;c[h+24>>2]=g;c[(c[a>>2]|0)+28>>2]=b;Ub[c[(c[a>>2]|0)+4>>2]&63](a,-1);h=b+1&7|208;i=b+2&7|208;j=b+7&7|208;d=b+6&7|208;b=g;a:while(1){e=(b|0)<192;f=(b&-8|0)!=208|(b|0)==(h|0)|(b|0)==(i|0);g=(b|0)==(j|0)|(b|0)==(d|0)?2:1;b:while(1){l=e?2:f?3:g;m=c[a>>2]|0;c[m+20>>2]=99;c[m+24>>2]=b;c[(c[a>>2]|0)+28>>2]=l;Ub[c[(c[a>>2]|0)+4>>2]&63](a,4);switch(l&3){case 1:{d=4;break a}case 3:{b=1;d=7;break a}case 2:break b;default:{}}}if(!(Tt(a)|0)){b=0;d=7;break}b=c[k>>2]|0}if((d|0)==4){c[k>>2]=0;m=1;return m|0}else if((d|0)==7)return b|0;return 0}function St(a){a=a|0;return}function Tt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=c[b+24>>2]|0;k=j+4|0;i=j+12|0;l=b+464|0;d=c[k>>2]|0;e=c[j>>2]|0;a:while(1){if(!d){if(!(Gb[c[i>>2]&127](b)|0)){d=0;f=21;break}d=c[k>>2]|0;e=c[j>>2]|0}d=d+-1|0;f=e+1|0;if((a[e>>0]|0)==-1)e=f;else{e=f;do{h=(c[l>>2]|0)+24|0;c[h>>2]=(c[h>>2]|0)+1;c[j>>2]=e;c[k>>2]=d;if(!d){if(!(Gb[c[i>>2]&127](b)|0)){d=0;f=21;break a}d=c[k>>2]|0;f=c[j>>2]|0}else f=e;d=d+-1|0;e=f+1|0}while((a[f>>0]|0)!=-1)}do{if(!d){if(!(Gb[c[i>>2]&127](b)|0)){d=0;f=21;break a}d=c[k>>2]|0;f=c[j>>2]|0}else f=e;d=d+-1|0;e=f+1|0;g=a[f>>0]|0}while(g<<24>>24==-1);f=(c[l>>2]|0)+24|0;h=c[f>>2]|0;if(g<<24>>24){f=18;break}c[f>>2]=h+2;c[j>>2]=e;c[k>>2]=d}if((f|0)==18){f=g&255;if(h|0){i=c[b>>2]|0;c[i+20>>2]=119;c[i+24>>2]=h;c[(c[b>>2]|0)+28>>2]=f;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1);c[(c[l>>2]|0)+24>>2]=0}c[b+440>>2]=f;c[j>>2]=e;c[k>>2]=d;l=1;return l|0}else if((f|0)==21)return d|0;return 0}function Ut(a){a=a|0;var b=0,d=0;d=Jb[c[c[a+4>>2]>>2]&63](a,0,172)|0;b=a+464|0;c[b>>2]=d;c[d>>2]=117;c[d+4>>2]=84;c[d+8>>2]=85;c[d+28>>2]=86;c[d+96>>2]=0;c[d+100>>2]=0;c[d+36>>2]=86;c[d+104>>2]=0;c[d+40>>2]=86;c[d+108>>2]=0;c[d+44>>2]=86;c[d+112>>2]=0;c[d+48>>2]=86;c[d+116>>2]=0;c[d+52>>2]=86;c[d+120>>2]=0;c[d+56>>2]=86;c[d+124>>2]=0;c[d+60>>2]=86;c[d+128>>2]=0;c[d+64>>2]=86;c[d+132>>2]=0;c[d+68>>2]=86;c[d+136>>2]=0;c[d+72>>2]=86;c[d+140>>2]=0;c[d+76>>2]=86;c[d+144>>2]=0;c[d+80>>2]=86;c[d+148>>2]=0;c[d+84>>2]=86;c[d+152>>2]=0;c[d+156>>2]=0;c[d+92>>2]=86;c[d+160>>2]=0;c[d+32>>2]=87;c[d+88>>2]=87;b=c[b>>2]|0;c[a+216>>2]=0;c[a+144>>2]=0;c[a+440>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+24>>2]=0;c[b+164>>2]=0;return}function Vt(a){a=a|0;var b=0;b=c[a+464>>2]|0;c[a+216>>2]=0;c[a+144>>2]=0;c[a+440>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+24>>2]=0;c[b+164>>2]=0;return}function Wt(f){f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0;Pa=zb;zb=zb+256|0;ga=Pa;Na=f+440|0;Oa=f+464|0;oa=f+24|0;ua=f+232|0;va=f+248|0;wa=f+264|0;pa=f+280|0;qa=f+40|0;ra=f+304|0;sa=f+308|0;ta=f+284|0;ha=f+288|0;ia=f+289|0;ja=f+290|0;ka=f+292|0;la=f+294|0;ma=f+296|0;na=f+300|0;Ja=f+36|0;Ka=f+216|0;g=c[Na>>2]|0;a:while(1){do if(!g){if(c[(c[Oa>>2]|0)+12>>2]|0){if(!(Tt(f)|0)){xa=0;Aa=350;break a}g=c[Na>>2]|0;break}m=c[oa>>2]|0;n=m+4|0;g=c[n>>2]|0;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0}k=c[m>>2]|0;g=g+-1|0;h=k+1|0;k=a[k>>0]|0;l=k&255;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}j=c[n>>2]|0;h=c[m>>2]|0}else j=g;V=a[h>>0]|0;g=V&255;if(k<<24>>24!=-1|V<<24>>24!=-40){V=c[f>>2]|0;c[V+20>>2]=55;c[V+24>>2]=l;c[(c[f>>2]|0)+28>>2]=g;Sb[c[c[f>>2]>>2]&255](f)}c[Na>>2]=g;c[m>>2]=h+1;c[n>>2]=j+-1}while(0);do switch(g|0){case 218:{Aa=25;break a}case 217:{Aa=75;break a}case 216:{g=c[f>>2]|0;c[g+20>>2]=104;Ub[c[g+4>>2]&63](f,1);g=(c[Oa>>2]|0)+12|0;if(c[g>>2]|0){g=c[f>>2]|0;c[g+20>>2]=64;Sb[c[g>>2]&255](f);g=(c[Oa>>2]|0)+12|0}h=ua;j=h+16|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(j|0));h=va;j=h+16|0;do{a[h>>0]=1;h=h+1|0}while((h|0)<(j|0));h=wa;j=h+16|0;do{a[h>>0]=5;h=h+1|0}while((h|0)<(j|0));c[pa>>2]=0;c[qa>>2]=0;c[ra>>2]=0;c[sa>>2]=0;c[ta>>2]=0;a[ha>>0]=1;a[ia>>0]=1;a[ja>>0]=0;b[ka>>1]=1;b[la>>1]=1;c[ma>>2]=0;a[na>>0]=0;c[g>>2]=1;break}case 192:{if(!($t(f,1,0,0)|0)){xa=0;Aa=350;break a}break}case 193:{if(!($t(f,0,0,0)|0)){xa=0;Aa=350;break a}break}case 194:{if(!($t(f,0,1,0)|0)){xa=0;Aa=350;break a}break}case 201:{if(!($t(f,0,0,1)|0)){xa=0;Aa=350;break a}break}case 202:{if(!($t(f,0,1,1)|0)){xa=0;Aa=350;break a}break}case 207:case 206:case 205:case 203:case 200:case 199:case 198:case 197:case 195:{V=c[f>>2]|0;c[V+20>>2]=63;c[V+24>>2]=g;Sb[c[c[f>>2]>>2]&255](f);break}case 204:{p=c[oa>>2]|0;q=p+4|0;g=c[q>>2]|0;if(!g){if(!(Gb[c[p+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[q>>2]|0}j=c[p>>2]|0;g=g+-1|0;h=j+1|0;j=d[j>>0]<<8;if(!g){if(!(Gb[c[p+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[q>>2]|0;h=c[p>>2]|0}V=j|d[h>>0];j=V+-2|0;k=g+-1|0;g=h+1|0;if(V>>>0>2){o=p+12|0;n=j;h=k;while(1){if(!h){if(!(Gb[c[o>>2]&127](f)|0)){xa=0;Aa=350;break a}h=c[q>>2]|0;g=c[p>>2]|0}h=h+-1|0;j=g+1|0;l=a[g>>0]|0;m=l&255;if(!h){if(!(Gb[c[o>>2]&127](f)|0)){xa=0;Aa=350;break a}h=c[q>>2]|0;k=c[p>>2]|0}else k=j;g=a[k>>0]|0;j=g&255;V=c[f>>2]|0;c[V+20>>2]=81;c[V+24>>2]=m;c[(c[f>>2]|0)+28>>2]=j;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);if((l&255)<=31)if((l&255)<=15){U=j&15;a[f+232+m>>0]=U;V=(g&255)>>>4;a[f+248+m>>0]=V;if(U>>>0>(V&255)>>>0){V=c[f>>2]|0;c[V+20>>2]=30;c[V+24>>2]=j;Sb[c[c[f>>2]>>2]&255](f)}}else Aa=93;else{Aa=c[f>>2]|0;c[Aa+20>>2]=29;c[Aa+24>>2]=m;Sb[c[c[f>>2]>>2]&255](f);Aa=93}if((Aa|0)==93){Aa=0;a[m+-16+(f+264)>>0]=g}j=n+-2|0;h=h+-1|0;g=k+1|0;if((n|0)>2)n=j;else break}}else h=k;if(j|0){V=c[f>>2]|0;c[V+20>>2]=12;Sb[c[V>>2]&255](f)}c[p>>2]=g;c[q>>2]=h;break}case 196:{U=c[oa>>2]|0;V=U+4|0;g=c[V>>2]|0;if(!g){if(!(Gb[c[U+12>>2]&127](f)|0)){Aa=174;break a}g=c[V>>2]|0}k=c[U>>2]|0;g=g+-1|0;h=k+1|0;k=d[k>>0]<<8;if(!g){if(!(Gb[c[U+12>>2]&127](f)|0)){Aa=174;break a}g=c[V>>2]|0;j=c[U>>2]|0}else j=h;h=g+-1|0;g=j+1|0;T=k|d[j>>0];j=T+-2|0;if(T>>>0>18){T=U+12|0;do{if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}S=d[g>>0]|0;R=c[f>>2]|0;c[R+20>>2]=82;c[R+24>>2]=S;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}R=a[g>>0]|0;N=R&255;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}Q=a[g>>0]|0;L=Q&255;k=L+N|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}P=a[g>>0]|0;K=P&255;k=k+K|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}O=a[g>>0]|0;I=O&255;k=k+I|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}M=a[g>>0]|0;G=M&255;k=k+G|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}J=a[g>>0]|0;E=J&255;k=k+E|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}H=a[g>>0]|0;C=H&255;k=k+C|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}F=a[g>>0]|0;A=F&255;k=k+A|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}D=a[g>>0]|0;y=D&255;k=k+y|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}B=a[g>>0]|0;w=B&255;k=k+w|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}z=a[g>>0]|0;u=z&255;k=k+u|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}x=a[g>>0]|0;s=x&255;k=k+s|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}v=a[g>>0]|0;q=v&255;k=k+q|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}t=a[g>>0]|0;o=t&255;k=k+o|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}r=a[g>>0]|0;l=r&255;k=k+l|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}p=a[g>>0]|0;Qa=p&255;n=k+Qa|0;h=h+-1|0;g=g+1|0;m=j+-17|0;k=c[f>>2]|0;c[k+24>>2]=N;c[k+28>>2]=L;c[k+32>>2]=K;c[k+36>>2]=I;c[k+40>>2]=G;c[k+44>>2]=E;c[k+48>>2]=C;c[k+52>>2]=A;c[k+20>>2]=88;Ub[c[k+4>>2]&63](f,2);N=c[f>>2]|0;c[N+24>>2]=y;c[N+28>>2]=w;c[N+32>>2]=u;c[N+36>>2]=s;c[N+40>>2]=q;c[N+44>>2]=o;c[N+48>>2]=l;c[N+52>>2]=Qa;c[N+20>>2]=88;Ub[c[N+4>>2]&63](f,2);if(n>>>0>256|(m|0)<(n|0)){Qa=c[f>>2]|0;c[Qa+20>>2]=9;Sb[c[Qa>>2]&255](f)}aP(ga|0,0,256)|0;if(!n)j=0;else{k=0;while(1){if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}h=h+-1|0;j=g+1|0;a[ga+k>>0]=a[g>>0]|0;k=k+1|0;if(k>>>0>=n>>>0){g=j;j=n;break}else g=j}}j=m-j|0;Qa=(S&16|0)==0;l=S+-16|0;k=Qa?S:l;l=Qa?f+180+(S<<2)|0:f+196+(l<<2)|0;if(k>>>0>3){Qa=c[f>>2]|0;c[Qa+20>>2]=31;c[Qa+24>>2]=k;Sb[c[c[f>>2]>>2]&255](f)}k=c[l>>2]|0;if(!k){k=au(f)|0;c[l>>2]=k}a[k>>0]=0;a[k+1>>0]=R;a[k+2>>0]=Q;a[k+3>>0]=P;a[k+4>>0]=O;a[k+5>>0]=M;a[k+6>>0]=J;a[k+7>>0]=H;a[k+8>>0]=F;a[k+9>>0]=D;a[k+10>>0]=B;a[k+11>>0]=z;a[k+12>>0]=x;a[k+13>>0]=v;a[k+14>>0]=t;a[k+15>>0]=r;a[k+16>>0]=p;_O((c[l>>2]|0)+17|0,ga|0,256)|0}while((j|0)>16)}if(j|0){Qa=c[f>>2]|0;c[Qa+20>>2]=12;Sb[c[Qa>>2]&255](f)}c[U>>2]=g;c[V>>2]=h;break}case 219:{q=c[oa>>2]|0;r=q+4|0;g=c[r>>2]|0;if(!g){if(!(Gb[c[q+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0}l=c[q>>2]|0;g=g+-1|0;h=l+1|0;l=d[l>>0]<<8;if(!g){if(!(Gb[c[q+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0;k=c[q>>2]|0}else k=h;j=g+-1|0;h=k+1|0;Qa=l|d[k>>0];g=Qa+-2|0;if(Qa>>>0>2){p=q+12|0;while(1){o=g+-1|0;if(!j){if(!(Gb[c[p>>2]&127](f)|0)){xa=0;Aa=350;break a}j=c[r>>2]|0;h=c[q>>2]|0}k=d[h>>0]|0;m=k>>>4;k=k&15;Qa=c[f>>2]|0;c[Qa+20>>2]=83;c[Qa+24>>2]=k;c[(c[f>>2]|0)+28>>2]=m;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);if(k>>>0>3){Qa=c[f>>2]|0;c[Qa+20>>2]=32;c[Qa+24>>2]=k;Sb[c[c[f>>2]>>2]&255](f)}k=f+164+(k<<2)|0;l=c[k>>2]|0;if(!l){l=Mt(f)|0;c[k>>2]=l}n=(m|0)!=0;if(n)if((g|0)<129){b[l>>1]=1;b[l+2>>1]=1;b[l+4>>1]=1;b[l+6>>1]=1;b[l+8>>1]=1;b[l+10>>1]=1;b[l+12>>1]=1;b[l+14>>1]=1;b[l+16>>1]=1;b[l+18>>1]=1;b[l+20>>1]=1;b[l+22>>1]=1;b[l+24>>1]=1;b[l+26>>1]=1;b[l+28>>1]=1;b[l+30>>1]=1;b[l+32>>1]=1;b[l+34>>1]=1;b[l+36>>1]=1;b[l+38>>1]=1;b[l+40>>1]=1;b[l+42>>1]=1;b[l+44>>1]=1;b[l+46>>1]=1;b[l+48>>1]=1;b[l+50>>1]=1;b[l+52>>1]=1;b[l+54>>1]=1;b[l+56>>1]=1;b[l+58>>1]=1;b[l+60>>1]=1;b[l+62>>1]=1;b[l+64>>1]=1;b[l+66>>1]=1;b[l+68>>1]=1;b[l+70>>1]=1;b[l+72>>1]=1;b[l+74>>1]=1;b[l+76>>1]=1;b[l+78>>1]=1;b[l+80>>1]=1;b[l+82>>1]=1;b[l+84>>1]=1;b[l+86>>1]=1;b[l+88>>1]=1;b[l+90>>1]=1;b[l+92>>1]=1;b[l+94>>1]=1;b[l+96>>1]=1;b[l+98>>1]=1;b[l+100>>1]=1;b[l+102>>1]=1;b[l+104>>1]=1;b[l+106>>1]=1;b[l+108>>1]=1;b[l+110>>1]=1;b[l+112>>1]=1;b[l+114>>1]=1;b[l+116>>1]=1;b[l+118>>1]=1;b[l+120>>1]=1;b[l+122>>1]=1;b[l+124>>1]=1;b[l+126>>1]=1;ba=o>>1;Aa=196}else Aa=203;else if((g|0)<65){b[l>>1]=1;b[l+2>>1]=1;b[l+4>>1]=1;b[l+6>>1]=1;b[l+8>>1]=1;b[l+10>>1]=1;b[l+12>>1]=1;b[l+14>>1]=1;b[l+16>>1]=1;b[l+18>>1]=1;b[l+20>>1]=1;b[l+22>>1]=1;b[l+24>>1]=1;b[l+26>>1]=1;b[l+28>>1]=1;b[l+30>>1]=1;b[l+32>>1]=1;b[l+34>>1]=1;b[l+36>>1]=1;b[l+38>>1]=1;b[l+40>>1]=1;b[l+42>>1]=1;b[l+44>>1]=1;b[l+46>>1]=1;b[l+48>>1]=1;b[l+50>>1]=1;b[l+52>>1]=1;b[l+54>>1]=1;b[l+56>>1]=1;b[l+58>>1]=1;b[l+60>>1]=1;b[l+62>>1]=1;b[l+64>>1]=1;b[l+66>>1]=1;b[l+68>>1]=1;b[l+70>>1]=1;b[l+72>>1]=1;b[l+74>>1]=1;b[l+76>>1]=1;b[l+78>>1]=1;b[l+80>>1]=1;b[l+82>>1]=1;b[l+84>>1]=1;b[l+86>>1]=1;b[l+88>>1]=1;b[l+90>>1]=1;b[l+92>>1]=1;b[l+94>>1]=1;b[l+96>>1]=1;b[l+98>>1]=1;b[l+100>>1]=1;b[l+102>>1]=1;b[l+104>>1]=1;b[l+106>>1]=1;b[l+108>>1]=1;b[l+110>>1]=1;b[l+112>>1]=1;b[l+114>>1]=1;b[l+116>>1]=1;b[l+118>>1]=1;b[l+120>>1]=1;b[l+122>>1]=1;b[l+124>>1]=1;b[l+126>>1]=1;ba=o;Aa=196}else Aa=203;b:do if((Aa|0)==196){Aa=0;switch(ba|0){case 4:{g=3280;break}case 9:{g=3168;break}case 16:{g=3040;break}case 25:{g=2864;break}case 36:{g=2656;break}case 49:{g=2384;break}default:{j=j+-1|0;g=h+1|0;if((ba|0)>0){Z=2064;_=ba;$=g;aa=j;Aa=205;break b}else{Y=ba;X=j;W=g;break b}}}Z=g;_=ba;$=h+1|0;aa=j+-1|0;Aa=205}else if((Aa|0)==203){Z=2064;_=64;$=h+1|0;aa=j+-1|0;Aa=205}while(0);c:do if((Aa|0)==205){Aa=0;if(!n){j=0;h=$;g=aa;while(1){if(!g){if(!(Gb[c[p>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0;h=c[q>>2]|0}b[l+(c[Z+(j<<2)>>2]<<1)>>1]=d[h>>0]|0;j=j+1|0;g=g+-1|0;h=h+1|0;if((j|0)>=(_|0)){Y=_;X=g;W=h;break c}}}m=0;h=$;g=aa;while(1){if(!g){if(!(Gb[c[p>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0;h=c[q>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[p>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0;h=c[q>>2]|0}else h=j;b[l+(c[Z+(m<<2)>>2]<<1)>>1]=k|d[h>>0];m=m+1|0;g=g+-1|0;h=h+1|0;if((m|0)>=(_|0)){Y=_;X=g;W=h;break}}}while(0);h=c[f>>2]|0;d:do if((c[h+104>>2]|0)>1){g=0;while(1){c[h+24>>2]=e[l+(g<<1)>>1];c[h+28>>2]=e[l+((g|1)<<1)>>1];c[h+32>>2]=e[l+((g|2)<<1)>>1];c[h+36>>2]=e[l+((g|3)<<1)>>1];c[h+40>>2]=e[l+((g|4)<<1)>>1];c[h+44>>2]=e[l+((g|5)<<1)>>1];c[h+48>>2]=e[l+((g|6)<<1)>>1];c[h+52>>2]=e[l+((g|7)<<1)>>1];c[h+20>>2]=95;Ub[c[h+4>>2]&63](f,2);g=g+8|0;if(g>>>0>=64)break d;h=c[f>>2]|0}}while(0);g=o-Y+(n?0-Y|0:0)|0;if((g|0)>0){h=W;j=X}else{j=X;h=W;break}}}if(g|0){Qa=c[f>>2]|0;c[Qa+20>>2]=12;Sb[c[Qa>>2]&255](f)}c[q>>2]=h;c[r>>2]=j;break}case 221:{l=c[oa>>2]|0;m=l+4|0;g=c[m>>2]|0;if(!g){if(!(Gb[c[l+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[m>>2]|0}k=c[l>>2]|0;g=g+-1|0;h=k+1|0;k=d[k>>0]<<8;if(!g){if(!(Gb[c[l+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[m>>2]|0;j=c[l>>2]|0}else j=h;g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)!=4){Qa=c[f>>2]|0;c[Qa+20>>2]=12;Sb[c[Qa>>2]&255](f)}if(!g){if(!(Gb[c[l+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[m>>2]|0;h=c[l>>2]|0}j=g+-1|0;g=h+1|0;k=d[h>>0]<<8;if(!j){if(!(Gb[c[l+12>>2]&127](f)|0)){xa=0;Aa=350;break a}h=c[m>>2]|0;g=c[l>>2]|0}else h=j;Qa=k|d[g>>0];V=c[f>>2]|0;c[V+20>>2]=84;c[V+24>>2]=Qa;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);c[pa>>2]=Qa;c[l>>2]=g+1;c[m>>2]=h+-1;break}case 248:{m=c[oa>>2]|0;h=c[m>>2]|0;n=m+4|0;g=c[n>>2]|0;if(!(c[(c[Oa>>2]|0)+16>>2]|0)){Qa=c[f>>2]|0;c[Qa+20>>2]=60;Wz(Qa+24|0,46637,80)|0;Sb[c[c[f>>2]>>2]&255](f)}do if((c[Ja>>2]|0)>=3){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)!=24){Qa=c[f>>2]|0;c[Qa+20>>2]=12;Sb[c[Qa>>2]&255](f)}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;if((a[h>>0]|0)!=13){Qa=c[f>>2]|0;c[Qa+20>>2]=70;c[Qa+24>>2]=c[Na>>2];Sb[c[c[f>>2]>>2]&255](f)}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}else h=j;g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)==255){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;if((a[h>>0]|0)==3){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;k=c[Ka>>2]|0;if((c[k+88>>2]|0)==(d[j>>0]|0)){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0;l=c[Ka>>2]|0}else l=k;g=g+-1|0;j=h+1|0;if((c[l>>2]|0)==(d[h>>0]|0)){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;k=c[m>>2]|0;h=c[Ka>>2]|0}else{k=j;h=l}g=g+-1|0;j=k+1|0;if((c[h+176>>2]|0)!=(d[k>>0]|0)){ca=g;da=j;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((a[j>>0]|0)!=-128){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if(k|d[j>>0]|0){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if(k|d[j>>0]|0){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;if(a[h>>0]|0){ca=g;da=j;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}else h=j;g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)!=1){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if(k|d[j>>0]|0){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;if(a[h>>0]|0){ca=g;da=j;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}else h=j;g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)!=1){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if(!(k|d[j>>0])){ea=g;fa=h}else{ca=g;da=h;Aa=335}}else{ca=g;da=j;Aa=335}}else{ca=g;da=h;Aa=335}}else{ca=g;da=j;Aa=335}}else{ca=g;da=h;Aa=335}}else{ca=g;da=h;Aa=335}while(0);if((Aa|0)==335){Aa=0;ea=c[f>>2]|0;c[ea+20>>2]=28;Sb[c[ea>>2]&255](f);ea=ca;fa=da}c[ra>>2]=1;c[m>>2]=fa;c[n>>2]=ea;break}case 239:case 238:case 237:case 236:case 235:case 234:case 233:case 232:case 231:case 230:case 229:case 228:case 227:case 226:case 225:case 224:{if(!(Gb[c[(c[Oa>>2]|0)+32+(g+-224<<2)>>2]&127](f)|0)){xa=0;Aa=350;break a}break}case 254:{if(!(Gb[c[(c[Oa>>2]|0)+28>>2]&127](f)|0)){xa=0;Aa=350;break a}break}case 1:case 215:case 214:case 213:case 212:case 211:case 210:case 209:case 208:{Qa=c[f>>2]|0;c[Qa+20>>2]=94;c[Qa+24>>2]=g;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);break}case 220:{k=c[oa>>2]|0;l=k+4|0;g=c[l>>2]|0;if(!g){if(!(Gb[c[k+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[l>>2]|0}h=c[k>>2]|0;g=g+-1|0;j=h+1|0;h=d[h>>0]<<8;if(!g){if(!(Gb[c[k+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[l>>2]|0;j=c[k>>2]|0}Qa=h|d[j>>0];h=Qa+-2|0;V=c[f>>2]|0;c[V+20>>2]=93;c[V+24>>2]=c[Na>>2];c[(c[f>>2]|0)+28>>2]=h;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);c[k>>2]=j+1;c[l>>2]=g+-1;if(Qa>>>0>2)Ub[c[(c[oa>>2]|0)+16>>2]&63](f,h);break}default:{Qa=c[f>>2]|0;c[Qa+20>>2]=70;c[Qa+24>>2]=g;Sb[c[c[f>>2]>>2]&255](f)}}while(0);c[Na>>2]=0;g=0}if((Aa|0)==25){q=c[oa>>2]|0;h=c[q>>2]|0;r=q+4|0;g=c[r>>2]|0;if(!(c[(c[Oa>>2]|0)+16>>2]|0)){Qa=c[f>>2]|0;c[Qa+20>>2]=60;Wz(Qa+24|0,46633,80)|0;Sb[c[c[f>>2]>>2]&255](f)}do if(!g)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{g=c[r>>2]|0;h=c[q>>2]|0;break}while(0);g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;do if(!g)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{g=c[r>>2]|0;h=c[q>>2]|0;break}else h=j;while(0);g=g+-1|0;j=h+1|0;l=k|d[h>>0];do if(!g)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{h=c[r>>2]|0;k=c[q>>2]|0;break}else{h=g;k=j}while(0);m=a[k>>0]|0;p=m&255;Qa=c[f>>2]|0;c[Qa+20>>2]=105;c[Qa+24>>2]=p;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);do if(!((m&255)>4|(l|0)!=((p<<1)+6|0))){if(m<<24>>24){c[f+340>>2]=p;i=h+-1|0;ya=k+1|0;za=i;i=(i|0)==0;Aa=42;break}if(c[f+224>>2]|0){c[f+340>>2]=p;g=h+-1|0;if(!g){Ha=1;Aa=64}else{Fa=g;La=k+1|0;Ma=1}}else Aa=41}else Aa=41;while(0);if((Aa|0)==41){j=c[f>>2]|0;c[j+20>>2]=12;Sb[c[j>>2]&255](f);c[f+340>>2]=p;j=h+-1|0;g=k+1|0;h=(j|0)==0;if(!(m<<24>>24)){Da=j;Ea=g;Ga=h;Ia=1;Aa=63}else{ya=g;za=j;i=h;Aa=42}}e:do if((Aa|0)==42){n=q+12|0;o=f+344|0;m=0;g=ya;h=za;while(1){if(i){if(!(Gb[c[n>>2]&127](f)|0)){xa=0;Aa=350;break}h=c[r>>2]|0;g=c[q>>2]|0}l=h+-1|0;i=g+1|0;h=d[g>>0]|0;f:do if(m){g=0;while(1){if((c[c[f+344+(g<<2)>>2]>>2]|0)==(h|0))break;g=g+1|0;if(g>>>0>=m>>>0)break f}g=c[c[o>>2]>>2]|0;if(m>>>0>1){h=1;do{Qa=c[c[f+344+(h<<2)>>2]>>2]|0;g=(Qa|0)>(g|0)?Qa:g;h=h+1|0}while((h|0)!=(m|0))}h=g+1|0}while(0);g=c[Ka>>2]|0;k=c[Ja>>2]|0;g:do if((k|0)>0){j=0;while(1){if((h|0)==(c[g>>2]|0)){Ca=g;break g}j=j+1|0;g=g+88|0;if((j|0)>=(k|0)){Ba=g;Aa=58;break}}}else{Ba=g;Aa=58}while(0);if((Aa|0)==58){Aa=0;Ca=c[f>>2]|0;c[Ca+20>>2]=4;c[Ca+24>>2]=h;Sb[c[c[f>>2]>>2]&255](f);Ca=Ba}c[f+344+(m<<2)>>2]=Ca;if(!l){if(!(Gb[c[n>>2]&127](f)|0)){xa=0;Aa=350;break}g=c[r>>2]|0;i=c[q>>2]|0}else g=l;h=d[i>>0]|0;za=Ca+20|0;c[za>>2]=h>>>4;Qa=Ca+24|0;c[Qa>>2]=h&15;h=c[f>>2]|0;c[h+24>>2]=c[Ca>>2];c[h+28>>2]=c[za>>2];c[h+32>>2]=c[Qa>>2];c[h+20>>2]=106;Ub[c[h+4>>2]&63](f,1);m=m+1|0;h=g+-1|0;g=i+1|0;i=(h|0)==0;if(m>>>0>=p>>>0){Da=h;Ea=g;Ga=i;Ia=0;Aa=63;break e}}if((Aa|0)==350){zb=Pa;return xa|0}}while(0);if((Aa|0)==63)if(Ga){Ha=Ia;Aa=64}else{Fa=Da;La=Ea;Ma=Ia}do if((Aa|0)==64)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{Fa=c[r>>2]|0;La=c[q>>2]|0;Ma=Ha;break}while(0);g=Fa+-1|0;h=La+1|0;k=f+412|0;c[k>>2]=d[La>>0];do if(!g)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{g=c[r>>2]|0;i=c[q>>2]|0;break}else i=h;while(0);h=g+-1|0;g=i+1|0;j=f+416|0;c[j>>2]=d[i>>0];do if(!h)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{h=c[r>>2]|0;g=c[q>>2]|0;break}while(0);Qa=d[g>>0]|0;Ka=f+420|0;c[Ka>>2]=Qa>>>4;La=f+424|0;c[La>>2]=Qa&15;Qa=c[f>>2]|0;c[Qa+24>>2]=c[k>>2];c[Qa+28>>2]=c[j>>2];c[Qa+32>>2]=c[Ka>>2];c[Qa+36>>2]=c[La>>2];c[Qa+20>>2]=107;Ub[c[Qa+4>>2]&63](f,1);c[(c[Oa>>2]|0)+20>>2]=0;if(!Ma){Qa=f+144|0;c[Qa>>2]=(c[Qa>>2]|0)+1}c[q>>2]=g+1;c[r>>2]=h+-1;c[Na>>2]=0;Qa=1;zb=Pa;return Qa|0}else if((Aa|0)==75){Qa=c[f>>2]|0;c[Qa+20>>2]=87;Ub[c[Qa+4>>2]&63](f,1);c[Na>>2]=0;Qa=2;zb=Pa;return Qa|0}else if((Aa|0)==174){Qa=0;zb=Pa;return Qa|0}else if((Aa|0)==350){zb=Pa;return xa|0}return 0}function Xt(a){a=a|0;var b=0,d=0,e=0,f=0;f=a+440|0;b=c[f>>2]|0;do if(!b)if(!(Tt(a)|0)){f=0;return f|0}else{b=c[f>>2]|0;break}while(0);d=a+464|0;e=c[(c[d>>2]|0)+20>>2]|0;if((b|0)!=(e+208|0)){if(!(Ib[c[(c[a+24>>2]|0)+20>>2]&63](a,e)|0)){f=0;return f|0}}else{b=c[a>>2]|0;c[b+20>>2]=100;c[b+24>>2]=e;Ub[c[(c[a>>2]|0)+4>>2]&63](a,3);c[f>>2]=0}f=(c[d>>2]|0)+20|0;c[f>>2]=(c[f>>2]|0)+1&7;f=1;return f|0}function Yt(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=a+24|0;h=c[g>>2]|0;i=h+4|0;b=c[i>>2]|0;do if(!b)if(!(Gb[c[h+12>>2]&127](a)|0)){i=0;return i|0}else{b=c[i>>2]|0;break}while(0);e=c[h>>2]|0;b=b+-1|0;f=e+1|0;e=(d[e>>0]|0)<<8;do if(!b)if(!(Gb[c[h+12>>2]&127](a)|0)){i=0;return i|0}else{b=c[i>>2]|0;f=c[h>>2]|0;break}while(0);j=e|(d[f>>0]|0);e=j+-2|0;k=c[a>>2]|0;c[k+20>>2]=93;c[k+24>>2]=c[a+440>>2];c[(c[a>>2]|0)+28>>2]=e;Ub[c[(c[a>>2]|0)+4>>2]&63](a,1);c[h>>2]=f+1;c[i>>2]=b+-1;if(j>>>0<=2){k=1;return k|0}Ub[c[(c[g>>2]|0)+16>>2]&63](a,e);k=1;return k|0}function Zt(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;l=p;m=b+24|0;n=c[m>>2]|0;o=n+4|0;e=c[o>>2]|0;do if(!e)if(!(Gb[c[n+12>>2]&127](b)|0)){o=0;zb=p;return o|0}else{e=c[o>>2]|0;break}while(0);g=c[n>>2]|0;e=e+-1|0;f=g+1|0;g=d[g>>0]<<8;do if(!e)if(!(Gb[c[n+12>>2]&127](b)|0)){o=0;zb=p;return o|0}else{e=c[o>>2]|0;f=c[n>>2]|0;break}while(0);j=g|d[f>>0];k=j+-2|0;j=j>>>0>15?14:j>>>0>2?k:0;g=e+-1|0;e=f+1|0;a:do if(!j)f=g;else{i=n+12|0;h=0;f=g;while(1){if(!f){if(!(Gb[c[i>>2]&127](b)|0)){e=0;break}f=c[o>>2]|0;e=c[n>>2]|0}a[l+h>>0]=a[e>>0]|0;h=h+1|0;f=f+-1|0;e=e+1|0;if(h>>>0>=j>>>0)break a}zb=p;return e|0}while(0);g=k-j|0;h=c[b+440>>2]|0;b:do switch(h|0){case 224:{_t(b,l,j,g);break}case 238:{if((((j>>>0>11&(a[l>>0]|0)==65?(a[l+1>>0]|0)==100:0)?(a[l+2>>0]|0)==111:0)?(a[l+3>>0]|0)==98:0)?(a[l+4>>0]|0)==101:0){h=d[l+7>>0]<<8|d[l+8>>0];i=d[l+9>>0]<<8|d[l+10>>0];k=a[l+11>>0]|0;j=c[b>>2]|0;c[j+24>>2]=d[l+5>>0]<<8|d[l+6>>0];c[j+28>>2]=h;c[j+32>>2]=i;c[j+36>>2]=k&255;c[j+20>>2]=78;Ub[c[j+4>>2]&63](b,1);c[b+296>>2]=1;a[b+300>>0]=k;break b}l=c[b>>2]|0;c[l+20>>2]=80;c[l+24>>2]=k;Ub[c[(c[b>>2]|0)+4>>2]&63](b,1);break}default:{l=c[b>>2]|0;c[l+20>>2]=70;c[l+24>>2]=h;Sb[c[c[b>>2]>>2]&255](b)}}while(0);c[n>>2]=e;c[o>>2]=f;if((g|0)<=0){o=1;zb=p;return o|0}Ub[c[(c[m>>2]|0)+16>>2]&63](b,g);o=1;zb=p;return o|0}function _t(e,f,g,h){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;r=h+g|0;if(g>>>0>13){if((a[f>>0]|0)==74)if((((a[f+1>>0]|0)==70?(a[f+2>>0]|0)==73:0)?(a[f+3>>0]|0)==70:0)?(a[f+4>>0]|0)==0:0){c[e+284>>2]=1;j=a[f+5>>0]|0;k=e+288|0;a[k>>0]=j;l=a[f+6>>0]|0;m=e+289|0;a[m>>0]=l;h=a[f+7>>0]|0;p=e+290|0;a[p>>0]=h;i=(d[f+8>>0]<<8|d[f+9>>0])&65535;n=e+292|0;b[n>>1]=i;g=(d[f+10>>0]<<8|d[f+11>>0])&65535;o=e+294|0;b[o>>1]=g;if((j+-1&255)<2)q=e;else{q=c[e>>2]|0;c[q+20>>2]=122;c[q+24>>2]=j&255;c[(c[e>>2]|0)+28>>2]=d[m>>0];Ub[c[(c[e>>2]|0)+4>>2]&63](e,-1);q=e;j=a[k>>0]|0;l=a[m>>0]|0;i=b[n>>1]|0;g=b[o>>1]|0;h=a[p>>0]|0}p=c[e>>2]|0;c[p+24>>2]=j&255;c[p+28>>2]=l&255;c[p+32>>2]=i&65535;c[p+36>>2]=g&65535;c[p+40>>2]=h&255;c[p+20>>2]=89;Ub[c[p+4>>2]&63](q,1);h=f+12|0;i=a[h>>0]|0;j=f+13|0;g=a[j>>0]|0;if((g|i)<<24>>24){i=c[e>>2]|0;c[i+20>>2]=92;c[i+24>>2]=d[h>>0];c[(c[e>>2]|0)+28>>2]=d[j>>0];Ub[c[(c[e>>2]|0)+4>>2]&63](q,1);i=a[h>>0]|0;g=a[j>>0]|0}h=r+-14|0;if((h|0)==(B((i&255)*3|0,g&255)|0))return;r=c[e>>2]|0;c[r+20>>2]=90;c[r+24>>2]=h;Ub[c[(c[e>>2]|0)+4>>2]&63](q,1);return}else i=16}else if(g>>>0>5?(a[f>>0]|0)==74:0)i=16;if(((((i|0)==16?(a[f+1>>0]|0)==70:0)?(a[f+2>>0]|0)==88:0)?(a[f+3>>0]|0)==88:0)?(a[f+4>>0]|0)==0:0){h=f+5|0;switch(a[h>>0]|0){case 16:{q=c[e>>2]|0;c[q+20>>2]=110;c[q+24>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}case 17:{q=c[e>>2]|0;c[q+20>>2]=111;c[q+24>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}case 19:{q=c[e>>2]|0;c[q+20>>2]=112;c[q+24>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}default:{q=c[e>>2]|0;c[q+20>>2]=91;c[q+24>>2]=d[h>>0];c[(c[e>>2]|0)+28>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}}}q=c[e>>2]|0;c[q+20>>2]=79;c[q+24>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}function $t(a,b,e,f){a=a|0;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;o=c[a+24>>2]|0;h=c[o>>2]|0;p=o+4|0;g=c[p>>2]|0;c[a+220>>2]=b;c[a+224>>2]=e;c[a+228>>2]=f;do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}while(0);g=g+-1|0;b=h+1|0;e=(d[h>>0]|0)<<8;do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}else h=b;while(0);g=g+-1|0;b=h+1|0;j=e|(d[h>>0]|0);do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}else h=b;while(0);g=g+-1|0;b=h+1|0;c[a+212>>2]=d[h>>0];do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}else h=b;while(0);g=g+-1|0;b=h+1|0;h=(d[h>>0]|0)<<8;i=a+32|0;c[i>>2]=h;do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;b=c[o>>2]|0;e=c[i>>2]|0;break}else e=h;while(0);g=g+-1|0;h=b+1|0;c[i>>2]=e+(d[b>>0]|0);do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}while(0);g=g+-1|0;b=h+1|0;h=(d[h>>0]|0)<<8;f=a+28|0;c[f>>2]=h;do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;b=c[o>>2]|0;h=c[f>>2]|0;break}while(0);g=g+-1|0;e=b+1|0;c[f>>2]=h+(d[b>>0]|0);do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{b=c[p>>2]|0;e=c[o>>2]|0;break}else b=g;while(0);m=a+36|0;c[m>>2]=d[e>>0];h=j+-8|0;n=c[a>>2]|0;c[n+24>>2]=c[a+440>>2];c[n+28>>2]=c[f>>2];c[n+32>>2]=c[i>>2];c[n+36>>2]=c[m>>2];c[n+20>>2]=102;Ub[c[n+4>>2]&63](a,1);n=a+464|0;if(c[(c[n>>2]|0)+16>>2]|0){l=c[a>>2]|0;c[l+20>>2]=61;Sb[c[l>>2]&255](a)}if(((c[i>>2]|0)!=0?(c[f>>2]|0)!=0:0)?(k=c[m>>2]|0,(k|0)>=1):0)g=k;else{g=c[a>>2]|0;c[g+20>>2]=33;Sb[c[g>>2]&255](a);g=c[m>>2]|0}if((h|0)!=(g*3|0)){l=c[a>>2]|0;c[l+20>>2]=12;Sb[c[l>>2]&255](a)}l=a+216|0;if(!(c[l>>2]|0)){k=Jb[c[c[a+4>>2]>>2]&63](a,1,(c[m>>2]|0)*88|0)|0;c[l>>2]=k}b=b+-1|0;g=e+1|0;a:do if((c[m>>2]|0)>0){k=o+12|0;j=0;while(1){if(!b){if(!(Gb[c[k>>2]&127](a)|0)){g=0;h=57;break}b=c[p>>2]|0;g=c[o>>2]|0}f=b+-1|0;h=g+1|0;e=d[g>>0]|0;i=c[l>>2]|0;b:do if(!j)b=e;else{g=i;b=0;while(1){if((c[g>>2]|0)==(e|0))break;b=b+1|0;g=g+88|0;if(b>>>0>=j>>>0){b=e;i=g;break b}}b=c[i>>2]|0;g=i+88|0;if(j>>>0>1){e=1;while(1){q=c[g>>2]|0;b=(q|0)>(b|0)?q:b;e=e+1|0;if((e|0)==(j|0))break;else g=g+88|0}g=i+(j*88|0)|0}b=b+1|0;i=g}while(0);c[i>>2]=b;c[i+4>>2]=j;if(!f){if(!(Gb[c[k>>2]&127](a)|0)){g=0;h=57;break}g=c[p>>2]|0;h=c[o>>2]|0}else g=f;g=g+-1|0;b=h+1|0;q=d[h>>0]|0;e=i+8|0;c[e>>2]=q>>>4;f=i+12|0;c[f>>2]=q&15;if(!g){if(!(Gb[c[k>>2]&127](a)|0)){g=0;h=57;break}g=c[p>>2]|0;h=c[o>>2]|0}else h=b;q=i+16|0;c[q>>2]=d[h>>0];b=c[a>>2]|0;c[b+24>>2]=c[i>>2];c[b+28>>2]=c[e>>2];c[b+32>>2]=c[f>>2];c[b+36>>2]=c[q>>2];c[b+20>>2]=103;Ub[c[b+4>>2]&63](a,1);j=j+1|0;b=g+-1|0;g=h+1|0;if((j|0)>=(c[m>>2]|0))break a}if((h|0)==57)return g|0}while(0);c[(c[n>>2]|0)+16>>2]=1;c[o>>2]=g;c[p>>2]=b;q=1;return q|0}function au(a){a=a|0;a=Jb[c[c[a+4>>2]>>2]&63](a,0,280)|0;c[a+276>>2]=0;return a|0}function bu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=a+20|0;b=c[k>>2]|0;a:do switch(b|0){case 202:{cu(a);if(!(c[a+64>>2]|0)){c[k>>2]=203;d=6;break a}c[k>>2]=207;k=1;return k|0}case 203:{d=6;break}case 204:{b=a+444|0;break}default:{d=c[a>>2]|0;c[d+20>>2]=21;c[d+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a);d=17}}while(0);if((d|0)==6){g=a+460|0;b:do if(c[(c[g>>2]|0)+16>>2]|0){e=a+8|0;f=a+332|0;b=c[e>>2]|0;c:while(1){if(b|0)Sb[c[b>>2]&255](a);b=Gb[c[c[g>>2]>>2]&127](a)|0;switch(b|0){case 2:break b;case 0:break c;default:{}}d=c[e>>2]|0;if((b|2|0)==3&(d|0)!=0?(h=d+4|0,j=(c[h>>2]|0)+1|0,c[h>>2]=j,h=d+8|0,i=c[h>>2]|0,(j|0)>=(i|0)):0)c[h>>2]=(c[f>>2]|0)+i;b=d}return b|0}while(0);c[a+152>>2]=c[a+144>>2];d=17}if((d|0)==17){b=a+444|0;if((c[k>>2]|0)!=204){Sb[c[c[b>>2]>>2]&255](a);c[a+140>>2]=0;c[k>>2]=204}}d=c[b>>2]|0;d:do if(c[d+8>>2]|0){g=a+140|0;h=a+116|0;i=a+8|0;j=a+448|0;f=c[g>>2]|0;e:while(1){e=c[h>>2]|0;if(f>>>0>>0){do{d=c[i>>2]|0;if(!d)d=f;else{c[d+4>>2]=f;c[d+8>>2]=e;Sb[c[d>>2]&255](a);d=c[g>>2]|0}Xb[c[(c[j>>2]|0)+4>>2]&31](a,0,g,0);f=c[g>>2]|0;if((f|0)==(d|0)){b=0;break e}e=c[h>>2]|0}while(f>>>0>>0);d=c[b>>2]|0}Sb[c[d+4>>2]&255](a);Sb[c[c[b>>2]>>2]&255](a);c[g>>2]=0;d=c[b>>2]|0;if(!(c[d+8>>2]|0))break d;else f=0}return b|0}while(0);c[k>>2]=(c[a+68>>2]|0)==0?205:206;k=1;return k|0}function cu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=b+4|0;i=Jb[c[c[k>>2]>>2]&63](b,1,28)|0;c[b+444>>2]=i;c[i>>2]=118;c[i+4>>2]=119;c[i+8>>2]=0;d=c[b+212>>2]|0;if((d|0)!=8){j=c[b>>2]|0;c[j+20>>2]=16;c[j+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b)}fu(b);e=Jb[c[c[k>>2]>>2]&63](b,1,1280)|0;aP(e|0,0,512)|0;f=e+512|0;c[b+336>>2]=f;d=0;do{a[f+d>>0]=d;d=d+1|0}while((d|0)!=256);aP(e+768|0,-1,512)|0;if(!(((c[b+116>>2]|0)!=0?(c[b+112>>2]|0)!=0:0)?(g=b+120|0,(c[g>>2]|0)>=1):0)){g=c[b>>2]|0;c[g+20>>2]=33;Sb[c[g>>2]&255](b);g=b+120|0}j=i+12|0;c[j>>2]=0;f=gu(b)|0;h=i+16|0;c[h>>2]=f;f=i+20|0;c[f>>2]=0;d=i+24|0;c[d>>2]=0;do if(!(c[b+84>>2]|0)){c[b+100>>2]=0;c[b+104>>2]=0;c[b+108>>2]=0;e=b+68|0}else{if(!(c[b+64>>2]|0)){c[b+100>>2]=0;c[b+104>>2]=0;c[b+108>>2]=0}e=b+68|0;if(c[e>>2]|0){i=c[b>>2]|0;c[i+20>>2]=48;Sb[c[i>>2]&255](b)}do if((c[g>>2]|0)==3){if(c[b+136>>2]|0){c[b+104>>2]=1;break}if(!(c[b+92>>2]|0)){c[b+100>>2]=1;break}else{c[b+108>>2]=1;break}}else{c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;c[b+136>>2]=0}while(0);if(c[b+100>>2]|0){hu(b);c[f>>2]=c[b+484>>2]}if((c[b+108>>2]|0)==0?(c[b+104>>2]|0)==0:0)break;iu(b);c[d>>2]=c[b+484>>2]}while(0);if(!(c[e>>2]|0)){if(!(c[h>>2]|0)){ku(b);lu(b)}else ju(b);mu(b,c[b+108>>2]|0)}nu(b);if(!(c[b+228>>2]|0))pu(b);else ou(b);f=b+460|0;if(!(c[(c[f>>2]|0)+16>>2]|0))d=(c[b+64>>2]|0)!=0&1;else d=1;qu(b,d);if(!(c[e>>2]|0))ru(b,0);Sb[c[(c[k>>2]|0)+24>>2]&255](b);Sb[c[(c[f>>2]|0)+8>>2]&255](b);d=c[b+8>>2]|0;if(!d)return;if(c[b+64>>2]|0)return;if(!(c[(c[f>>2]|0)+16>>2]|0))return;k=c[b+36>>2]|0;k=(c[b+224>>2]|0)==0?k:(k*3|0)+2|0;c[d+4>>2]=0;k=B(k,c[b+332>>2]|0)|0;c[d+8>>2]=k;c[d+12>>2]=0;c[d+16>>2]=(c[b+108>>2]|0)==0?2:3;c[j>>2]=(c[j>>2]|0)+1;return}function du(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+444>>2]|0;e=d+8|0;if(!(c[e>>2]|0)){b=a+84|0;do if(c[b>>2]|0?(c[a+136>>2]|0)==0:0){if(c[a+92>>2]|0?c[a+108>>2]|0:0){c[a+484>>2]=c[d+24>>2];c[e>>2]=1;break}if(!(c[a+100>>2]|0)){f=c[a>>2]|0;c[f+20>>2]=47;Sb[c[f>>2]&255](a);break}else{c[a+484>>2]=c[d+20>>2];break}}while(0);Sb[c[c[a+472>>2]>>2]&255](a);Sb[c[(c[a+452>>2]|0)+8>>2]&255](a);if(!(c[a+68>>2]|0)){if(!(c[d+16>>2]|0))Sb[c[c[a+480>>2]>>2]&255](a);Sb[c[c[a+476>>2]>>2]&255](a);if(c[b>>2]|0)Ub[c[c[a+484>>2]>>2]&63](a,c[e>>2]|0);Ub[c[c[a+456>>2]>>2]&63](a,(c[e>>2]|0)==0?0:3);Ub[c[c[a+448>>2]>>2]&63](a,0)}}else{c[e>>2]=0;Ub[c[c[a+484>>2]>>2]&63](a,0);Ub[c[c[a+456>>2]>>2]&63](a,2);Ub[c[c[a+448>>2]>>2]&63](a,2)}b=c[a+8>>2]|0;if(!b)return;d=c[d+12>>2]|0;c[b+12>>2]=d;d=((c[e>>2]|0)==0?1:2)+d|0;b=b+16|0;c[b>>2]=d;if(!(c[a+64>>2]|0))return;if(c[(c[a+460>>2]|0)+20>>2]|0)return;c[b>>2]=((c[a+108>>2]|0)==0?1:2)+d;return}function eu(a){a=a|0;var b=0;b=c[a+444>>2]|0;if(c[a+84>>2]|0)Sb[c[(c[a+484>>2]|0)+8>>2]&255](a);b=b+12|0;c[b>>2]=(c[b>>2]|0)+1;return}function fu(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;b=c[a+20>>2]|0;if((b|0)!=202){t=c[a>>2]|0;c[t+20>>2]=21;c[t+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}xw(a);d=c[a+216>>2]|0;t=a+36|0;b=c[t>>2]|0;o=(b|0)>0;if(o){p=c[a+324>>2]|0;q=(c[a+76>>2]|0)==0?4:8;r=a+320|0;s=c[a+328>>2]|0;if((p|0)>(q|0)){k=(s|0)>(q|0);l=p<<1;i=d;j=0;while(1){m=i+36|0;c[m>>2]=p;a:do if(k)e=s;else{h=c[r>>2]|0;g=c[i+12>>2]|0;f=1;e=s;do{f=f<<1;if((h|0)%(B(f,g)|0)|0|0)break a;e=B(s,f)|0}while((e|0)<=(q|0))}while(0);f=i+40|0;c[f>>2]=e;g=e<<1;if((p|0)<=(g|0)){if((e|0)>(l|0))c[f>>2]=l}else c[m>>2]=g;j=j+1|0;if((j|0)>=(b|0))break;else i=i+88|0}}else{m=c[a+316>>2]|0;n=(s|0)>(q|0);k=d;l=0;while(1){g=c[k+8>>2]|0;f=1;e=p;do{f=f<<1;if((m|0)%(B(f,g)|0)|0|0)break;e=B(p,f)|0}while((e|0)<=(q|0));j=k+36|0;c[j>>2]=e;b:do if(n)g=s;else{h=c[r>>2]|0;i=c[k+12>>2]|0;f=1;g=s;do{f=f<<1;if((h|0)%(B(f,i)|0)|0|0)break b;g=B(s,f)|0}while((g|0)<=(q|0))}while(0);h=k+40|0;c[h>>2]=g;f=g<<1;if((e|0)<=(f|0)){e=e<<1;if((g|0)>(e|0))c[h>>2]=e}else c[j>>2]=f;l=l+1|0;if((l|0)>=(b|0))break;else k=k+88|0}}if(o){f=a+28|0;g=a+316|0;h=a+428|0;i=a+32|0;j=a+320|0;e=0;while(1){b=B(B(c[d+8>>2]|0,c[f>>2]|0)|0,c[d+36>>2]|0)|0;b=yw(b,B(c[h>>2]|0,c[g>>2]|0)|0)|0;c[d+44>>2]=b;b=B(B(c[d+12>>2]|0,c[i>>2]|0)|0,c[d+40>>2]|0)|0;b=yw(b,B(c[h>>2]|0,c[j>>2]|0)|0)|0;c[d+48>>2]=b;e=e+1|0;b=c[t>>2]|0;if((e|0)>=(b|0))break;else d=d+88|0}}}d=c[a+44>>2]|0;switch(d|0){case 1:{b=d;break}case 6:case 2:{b=3;break}case 7:case 3:{b=3;break}case 5:case 4:{b=4;break}default:{}}c[a+120>>2]=b;c[a+124>>2]=(c[a+84>>2]|0)==0?b:1;if(!(gu(a)|0)){t=1;a=a+128|0;c[a>>2]=t;return}t=c[a+320>>2]|0;a=a+128|0;c[a>>2]=t;return}function gu(a){a=a|0;var b=0,d=0;if(c[a+308>>2]|0)return 0;switch(c[a+40>>2]|0){case 7:case 3:break;default:return 0}if((c[a+36>>2]|0)!=3)return 0;if((c[a+44>>2]|0)!=2)return 0;if((c[a+120>>2]|0)!=3)return 0;if(c[a+304>>2]|0)return 0;d=c[a+216>>2]|0;if((c[d+8>>2]|0)!=2)return 0;if((c[d+96>>2]|0)!=1)return 0;if((c[d+184>>2]|0)!=1)return 0;if((c[d+12>>2]|0)>2)return 0;if((c[d+100>>2]|0)!=1)return 0;if((c[d+188>>2]|0)!=1)return 0;b=c[d+36>>2]|0;if((b|0)!=(c[a+324>>2]|0))return 0;if((c[d+124>>2]|0)!=(b|0))return 0;if((c[d+212>>2]|0)!=(b|0))return 0;b=c[d+40>>2]|0;if((b|0)!=(c[a+328>>2]|0))return 0;if((c[d+128>>2]|0)==(b|0))return (c[d+216>>2]|0)==(b|0)|0;else return 0;return 0}function hu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=b+4|0;t=Jb[c[c[s>>2]>>2]&63](b,1,88)|0;r=b+484|0;c[r>>2]=t;c[t>>2]=48;c[t+8>>2]=120;c[t+12>>2]=121;c[t+68>>2]=0;c[t+52>>2]=0;t=b+120|0;if((c[t>>2]|0)>4){n=c[b>>2]|0;c[n+20>>2]=57;c[n+24>>2]=4;Sb[c[c[b>>2]>>2]&255](b)}d=b+96|0;e=c[d>>2]|0;if((e|0)>256){e=c[b>>2]|0;c[e+20>>2]=59;c[e+24>>2]=256;Sb[c[c[b>>2]>>2]&255](b);e=c[d>>2]|0}n=c[r>>2]|0;l=n+32|0;k=c[t>>2]|0;if((k|0)>1){h=1;while(1){g=h+1|0;f=1;d=g;do{d=B(d,g)|0;f=f+1|0}while((f|0)!=(k|0));if((d|0)>(e|0)){f=h;break}else h=g}}else{f=(e|0)>1?e:1;d=f+1|0}if(f>>>0<2){j=c[b>>2]|0;c[j+20>>2]=58;c[j+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b)}a:do if((k|0)>0){h=1;d=0;do{c[n+32+(d<<2)>>2]=f;h=B(h,f)|0;d=d+1|0}while((d|0)!=(k|0));if((c[b+44>>2]|0)==2){g=0;d=0;f=h;while(1){h=n+32+(c[15924+(d<<2)>>2]<<2)|0;j=c[h>>2]|0;i=j+1|0;j=B((f|0)/(j|0)|0,i)|0;if((j|0)<=(e|0)){c[h>>2]=i;d=d+1|0;if((d|0)<(k|0)){g=1;f=j}else{d=1;f=j;m=22}}else{d=g;m=22}if((m|0)==22){m=0;if(!d)break a;else{g=0;d=0}}}}else{g=0;d=0;f=h;while(1){h=n+32+(d<<2)|0;j=c[h>>2]|0;i=j+1|0;j=B((f|0)/(j|0)|0,i)|0;if((j|0)<=(e|0)){c[h>>2]=i;d=d+1|0;if((d|0)<(k|0)){g=1;f=j}else{d=1;f=j;m=26}}else{d=g;m=26}if((m|0)==26){m=0;if(!d)break a;else{g=0;d=0}}}}}else f=1;while(0);d=c[b>>2]|0;if((c[t>>2]|0)==3){c[d+24>>2]=f;c[d+28>>2]=c[l>>2];c[d+32>>2]=c[n+36>>2];c[d+36>>2]=c[n+40>>2];c[d+20>>2]=96;Ub[c[d+4>>2]&63](b,1)}else{c[d+20>>2]=97;c[d+24>>2]=f;Ub[c[(c[b>>2]|0)+4>>2]&63](b,1)}m=Kb[c[(c[s>>2]|0)+8>>2]&15](b,1,f,c[t>>2]|0)|0;d=c[t>>2]|0;if((d|0)>0){k=0;l=f;do{j=c[n+32+(k<<2)>>2]|0;i=l;l=(l|0)/(j|0)|0;if((j|0)>0?(o=j+-1|0,p=(o|0)/2|0,q=m+(k<<2)|0,(l|0)>0):0){g=0;do{d=B(g,l)|0;if((d|0)<(f|0)){h=(((g*255|0)+p|0)/(o|0)|0)&255;do{e=0;do{a[(c[q>>2]|0)+(e+d)>>0]=h;e=e+1|0}while((e|0)!=(l|0));d=d+i|0}while((d|0)<(f|0))}g=g+1|0}while((g|0)!=(j|0));d=c[t>>2]|0}k=k+1|0}while((k|0)<(d|0))}c[n+16>>2]=m;c[n+20>>2]=f;rw(b);if((c[b+88>>2]|0)!=2)return;e=c[r>>2]|0;f=(c[b+112>>2]<<1)+4|0;if((c[t>>2]|0)<=0)return;d=0;do{r=Jb[c[(c[s>>2]|0)+4>>2]&63](b,1,f)|0;c[e+68+(d<<2)>>2]=r;d=d+1|0}while((d|0)<(c[t>>2]|0));return}function iu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+4|0;e=Jb[c[c[f>>2]>>2]&63](a,1,44)|0;c[a+484>>2]=e;c[e>>2]=49;c[e+12>>2]=122;g=e+32|0;c[g>>2]=0;c[e+40>>2]=0;if((c[a+120>>2]|0)!=3){d=c[a>>2]|0;c[d+20>>2]=48;Sb[c[d>>2]&255](a)}b=Jb[c[c[f>>2]>>2]&63](a,1,128)|0;d=e+24|0;c[d>>2]=b;b=0;do{h=Jb[c[(c[f>>2]|0)+4>>2]&63](a,1,4096)|0;c[(c[d>>2]|0)+(b<<2)>>2]=h;b=b+1|0}while((b|0)!=32);c[e+28>>2]=1;if(!(c[a+108>>2]|0))c[e+16>>2]=0;else{b=c[a+96>>2]|0;if((b|0)>=8){if((b|0)>256){h=c[a>>2]|0;c[h+20>>2]=59;c[h+24>>2]=256;Sb[c[c[a>>2]>>2]&255](a)}}else{h=c[a>>2]|0;c[h+20>>2]=58;c[h+24>>2]=8;Sb[c[c[a>>2]>>2]&255](a)}h=Kb[c[(c[f>>2]|0)+8>>2]&15](a,1,b,3)|0;c[e+16>>2]=h;c[e+20>>2]=b}b=a+88|0;if(!(c[b>>2]|0))return;c[b>>2]=2;h=Jb[c[(c[f>>2]|0)+4>>2]&63](a,1,((c[a+112>>2]|0)*6|0)+12|0)|0;c[g>>2]=h;gw(a);return}function ju(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;g=a+4|0;b=Jb[c[c[g>>2]>>2]&63](a,1,48)|0;f=a+476|0;c[f>>2]=b;c[b>>2]=123;c[b+8>>2]=0;d=B(c[a+120>>2]|0,c[a+112>>2]|0)|0;c[b+40>>2]=d;e=b+4|0;if((c[a+320>>2]|0)==2){c[e>>2]=1;c[b+12>>2]=9;e=Jb[c[(c[g>>2]|0)+4>>2]&63](a,1,d)|0;c[b+32>>2]=e;b=c[f>>2]|0}else{c[e>>2]=2;c[b+12>>2]=10;c[b+32>>2]=0}d=(c[a+40>>2]|0)==7;i=Jb[c[c[g>>2]>>2]&63](a,1,1024)|0;e=b+16|0;c[e>>2]=i;i=Jb[c[c[g>>2]>>2]&63](a,1,1024)|0;f=b+20|0;c[f>>2]=i;i=Jb[c[c[g>>2]>>2]&63](a,1,1024)|0;h=b+24|0;c[h>>2]=i;g=Jb[c[c[g>>2]>>2]&63](a,1,1024)|0;c[b+28>>2]=g;e=c[e>>2]|0;f=c[f>>2]|0;a=c[h>>2]|0;if(d){b=0;d=-128;while(1){c[e+(b<<2)>>2]=(d*183763|0)+32768>>16;c[f+(b<<2)>>2]=(d*232260|0)+32768>>16;i=B(d,-93603)|0;c[a+(b<<2)>>2]=i;i=(B(d,-45107)|0)+32768|0;c[g+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}return}else{b=0;d=-128;while(1){c[e+(b<<2)>>2]=(d*91881|0)+32768>>16;c[f+(b<<2)>>2]=(d*116130|0)+32768>>16;i=B(d,-46802)|0;c[a+(b<<2)>>2]=i;i=(B(d,-22553)|0)+32768|0;c[g+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}return}}function ku(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+4|0;e=Jb[c[c[b>>2]>>2]&63](a,1,28)|0;g=a+480|0;c[g>>2]=e;c[e>>2]=124;h=a+40|0;switch(c[h>>2]|0){case 1:{if((c[a+36>>2]|0)!=1){f=c[a>>2]|0;c[f+20>>2]=11;Sb[c[f>>2]&255](a)}break}case 7:case 6:case 3:case 2:{if((c[a+36>>2]|0)!=3){f=c[a>>2]|0;c[f+20>>2]=11;Sb[c[f>>2]&255](a)}break}case 5:case 4:{if((c[a+36>>2]|0)!=4){f=c[a>>2]|0;c[f+20>>2]=11;Sb[c[f>>2]&255](a)}break}default:if((c[a+36>>2]|0)<1){f=c[a>>2]|0;c[f+20>>2]=11;Sb[c[f>>2]&255](a)}}d=a+304|0;a:do if(c[d>>2]|0){switch(c[h>>2]|0){case 6:case 2:break a;default:{}}f=c[a>>2]|0;c[f+20>>2]=28;Sb[c[f>>2]&255](a)}while(0);f=c[a+44>>2]|0;b:do switch(f|0){case 1:{c[a+120>>2]=1;switch(c[h>>2]|0){case 7:case 3:case 1:{c[e+4>>2]=4;d=c[a+36>>2]|0;if((d|0)<=1)break b;e=c[a+216>>2]|0;b=1;do{c[e+(b*88|0)+52>>2]=0;b=b+1|0}while((b|0)<(d|0));break}case 2:{switch(c[d>>2]|0){case 0:{c[e+4>>2]=5;break}case 1:{c[e+4>>2]=6;break}default:{h=c[a>>2]|0;c[h+20>>2]=28;Sb[c[h>>2]&255](a)}}h=c[g>>2]|0;d=Jb[c[c[b>>2]>>2]&63](a,1,3072)|0;c[h+24>>2]=d;b=0;do{c[d+(b<<2)>>2]=b*19595;c[d+(b+256<<2)>>2]=b*38470;c[d+(b+512<<2)>>2]=(b*7471|0)+32768;b=b+1|0}while((b|0)!=256);break}default:{h=c[a>>2]|0;c[h+20>>2]=28;Sb[c[h>>2]&255](a);break b}}break}case 2:{c[a+120>>2]=3;switch(c[h>>2]|0){case 1:{c[e+4>>2]=7;break b}case 3:{c[e+4>>2]=8;d=c[g>>2]|0;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;f=d+8|0;c[f>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;g=d+12|0;c[g>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;h=d+16|0;c[h>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;c[d+20>>2]=e;f=c[f>>2]|0;g=c[g>>2]|0;h=c[h>>2]|0;b=0;d=-128;while(1){c[f+(b<<2)>>2]=(d*91881|0)+32768>>16;c[g+(b<<2)>>2]=(d*116130|0)+32768>>16;i=B(d,-46802)|0;c[h+(b<<2)>>2]=i;i=(B(d,-22553)|0)+32768|0;c[e+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}break}case 7:{c[e+4>>2]=8;d=c[g>>2]|0;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;f=d+8|0;c[f>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;g=d+12|0;c[g>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;h=d+16|0;c[h>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;c[d+20>>2]=e;f=c[f>>2]|0;g=c[g>>2]|0;h=c[h>>2]|0;b=0;d=-128;while(1){c[f+(b<<2)>>2]=(d*183763|0)+32768>>16;c[g+(b<<2)>>2]=(d*232260|0)+32768>>16;i=B(d,-93603)|0;c[h+(b<<2)>>2]=i;i=(B(d,-45107)|0)+32768|0;c[e+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}break}case 2:switch(c[d>>2]|0){case 0:{c[e+4>>2]=9;break b}case 1:{c[e+4>>2]=10;break b}default:{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}default:{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}break}case 6:{c[a+120>>2]=3;if((c[h>>2]|0)!=6){i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}switch(c[d>>2]|0){case 0:{c[e+4>>2]=9;break b}case 1:{c[e+4>>2]=10;break b}default:{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}}case 4:{c[a+120>>2]=4;switch(c[h>>2]|0){case 5:{c[e+4>>2]=11;d=c[g>>2]|0;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;f=d+8|0;c[f>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;g=d+12|0;c[g>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;h=d+16|0;c[h>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;c[d+20>>2]=e;f=c[f>>2]|0;g=c[g>>2]|0;h=c[h>>2]|0;b=0;d=-128;while(1){c[f+(b<<2)>>2]=(d*91881|0)+32768>>16;c[g+(b<<2)>>2]=(d*116130|0)+32768>>16;i=B(d,-46802)|0;c[h+(b<<2)>>2]=i;i=(B(d,-22553)|0)+32768|0;c[e+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}break}case 4:{c[e+4>>2]=12;break b}default:{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}break}default:if((f|0)==(c[h>>2]|0)){c[a+120>>2]=c[a+36>>2];c[e+4>>2]=12;break b}else{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}while(0);if(c[a+84>>2]|0){h=1;i=a+124|0;c[i>>2]=h;return}h=c[a+120>>2]|0;i=a+124|0;c[i>>2]=h;return}function lu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=b+4|0;d=Jb[c[c[m>>2]>>2]&63](b,1,160)|0;c[b+476>>2]=d;c[d>>2]=125;c[d+4>>2]=3;c[d+8>>2]=0;if(c[b+308>>2]|0){w=c[b>>2]|0;c[w+20>>2]=26;Sb[c[w>>2]&255](b)}n=b+36|0;if((c[n>>2]|0)<=0)return;o=b+324|0;p=b+328|0;q=b+316|0;r=b+320|0;s=d+100|0;t=d+52|0;u=b+112|0;v=d+12|0;w=d+140|0;h=d+150|0;f=c[b+216>>2]|0;g=0;while(1){i=B(c[f+36>>2]|0,c[f+8>>2]|0)|0;i=(i|0)/(c[o>>2]|0)|0;j=B(c[f+40>>2]|0,c[f+12>>2]|0)|0;j=(j|0)/(c[p>>2]|0)|0;k=c[q>>2]|0;l=c[r>>2]|0;c[s+(g<<2)>>2]=j;do if(!(c[f+52>>2]|0))c[t+(g<<2)>>2]=11;else{d=(j|0)==(l|0);if((i|0)==(k|0)&d){c[t+(g<<2)>>2]=12;break}e=(i<<1|0)==(k|0);do if(e&d)c[t+(g<<2)>>2]=13;else{if(e&(j<<1|0)==(l|0)){c[t+(g<<2)>>2]=14;break}d=(k|0)/(i|0)|0;if((k-(B(d,i)|0)|0)==0?(x=(l|0)/(j|0)|0,(l-(B(x,j)|0)|0)==0):0){c[t+(g<<2)>>2]=15;a[w+g>>0]=d;a[h+g>>0]=x;break}l=c[b>>2]|0;c[l+20>>2]=39;Sb[c[l>>2]&255](b)}while(0);k=c[(c[m>>2]|0)+8>>2]|0;l=yu(c[u>>2]|0,c[q>>2]|0)|0;l=Kb[k&15](b,1,l,c[r>>2]|0)|0;c[v+(g<<2)>>2]=l}while(0);g=g+1|0;if((g|0)>=(c[n>>2]|0))break;else f=f+88|0}return}function mu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=Jb[c[c[f>>2]>>2]&63](a,1,28)|0;c[a+456>>2]=d;c[d>>2]=50;h=d+8|0;c[h>>2]=0;i=d+12|0;c[i>>2]=0;if(!(c[a+84>>2]|0))return;g=c[a+320>>2]|0;e=d+16|0;c[e>>2]=g;d=c[f>>2]|0;if(!b){h=B(c[a+120>>2]|0,c[a+112>>2]|0)|0;h=Kb[c[d+8>>2]&15](a,1,h,g)|0;c[i>>2]=h;return}else{f=c[d+16>>2]|0;b=B(c[a+120>>2]|0,c[a+112>>2]|0)|0;i=yu(c[a+116>>2]|0,g)|0;i=Ob[f&63](a,1,0,b,i,c[e>>2]|0)|0;c[h>>2]=i;return}}function nu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+4|0;b=Jb[c[c[f>>2]>>2]&63](a,1,84)|0;c[a+472>>2]=b;c[b>>2]=126;g=a+36|0;if((c[g>>2]|0)<=0)return;e=b+44|0;b=0;d=c[a+216>>2]|0;while(1){h=Jb[c[c[f>>2]>>2]&63](a,1,256)|0;c[d+84>>2]=h;aP(h|0,0,256)|0;c[e+(b<<2)>>2]=-1;b=b+1|0;if((b|0)>=(c[g>>2]|0))break;else d=d+88|0}return}function ou(b){b=b|0;var d=0,e=0,f=0,g=0;g=b+4|0;e=Jb[c[c[g>>2]>>2]&63](b,1,192)|0;c[b+468>>2]=e;c[e>>2]=127;c[e+8>>2]=128;d=e+188|0;e=e+60|0;f=e+128|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));a[d>>0]=113;if(!(c[b+224>>2]|0))return;f=b+36|0;e=Jb[c[c[g>>2]>>2]&63](b,1,c[f>>2]<<8)|0;c[b+160>>2]=e;if((c[f>>2]|0)<=0)return;d=0;do{aP(e+(d<<8)|0,-1,256)|0;d=d+1|0}while((d|0)<(c[f>>2]|0));return}function pu(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+4|0;f=Jb[c[c[b>>2]>>2]&63](a,1,220)|0;c[a+468>>2]=f;c[f>>2]=129;c[f+8>>2]=130;if(!(c[a+224>>2]|0)){e=f+68|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[f+88>>2]=0;c[f+92>>2]=0;c[f+96>>2]=0;return}e=a+36|0;d=Jb[c[c[b>>2]>>2]&63](a,1,c[e>>2]<<8)|0;c[a+160>>2]=d;if((c[e>>2]|0)>0){b=0;do{aP(d+(b<<8)|0,-1,256)|0;b=b+1|0}while((b|0)<(c[e>>2]|0))}f=f+48|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;return}function qu(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;h=a+4|0;i=Jb[c[c[h>>2]>>2]&63](a,1,116)|0;c[a+452>>2]=i;c[i>>2]=131;c[i+8>>2]=132;c[i+112>>2]=0;if(!b){b=Jb[c[(c[h>>2]|0)+4>>2]&63](a,1,1280)|0;c[i+32>>2]=b;c[i+36>>2]=b+128;c[i+40>>2]=b+256;c[i+44>>2]=b+384;c[i+48>>2]=b+512;c[i+52>>2]=b+640;c[i+56>>2]=b+768;c[i+60>>2]=b+896;c[i+64>>2]=b+1024;c[i+68>>2]=b+1152;if(!(c[a+436>>2]|0))aP(b|0,0,1280)|0;c[i+4>>2]=89;c[i+12>>2]=35;c[i+16>>2]=0;return}f=a+36|0;if((c[f>>2]|0)>0){g=a+224|0;b=i+72|0;d=0;e=c[a+216>>2]|0;while(1){k=e+12|0;j=c[k>>2]|0;j=(c[g>>2]|0)==0?j:j*3|0;m=c[(c[h>>2]|0)+20>>2]|0;l=yu(c[e+28>>2]|0,c[e+8>>2]|0)|0;k=yu(c[e+32>>2]|0,c[k>>2]|0)|0;j=Ob[m&63](a,1,1,l,k,j)|0;c[b+(d<<2)>>2]=j;d=d+1|0;if((d|0)>=(c[f>>2]|0))break;else e=e+88|0}}else b=i+72|0;c[i+4>>2]=88;c[i+12>>2]=34;c[i+16>>2]=b;return}function ru(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;l=a+4|0;j=Jb[c[c[l>>2]>>2]&63](a,1,80)|0;d=a+448|0;c[d>>2]=j;c[j>>2]=51;if(b|0){k=c[a>>2]|0;c[k+20>>2]=3;Sb[c[k>>2]&255](a)}k=a+328|0;e=c[k>>2]|0;if(!(c[(c[a+476>>2]|0)+8>>2]|0)){c[j+52>>2]=e;b=a+36|0;h=e;g=b;b=c[b>>2]|0;d=e}else{if((e|0)<2){e=c[a>>2]|0;c[e+20>>2]=48;Sb[c[e>>2]&255](a);e=c[k>>2]|0}h=c[d>>2]|0;i=a+36|0;f=Jb[c[c[l>>2]>>2]&63](a,1,c[i>>2]<<3)|0;g=h+60|0;c[g>>2]=f;b=c[i>>2]|0;h=h+64|0;c[h>>2]=f+(b<<2);if((b|0)>0){f=e+4|0;d=c[a+216>>2]|0;e=0;while(1){m=B(c[d+40>>2]|0,c[d+12>>2]|0)|0;m=(m|0)/(c[k>>2]|0)|0;b=B(m,f)|0;m=(Jb[c[c[l>>2]>>2]&63](a,1,b<<3)|0)+(m<<2)|0;c[(c[g>>2]|0)+(e<<2)>>2]=m;c[(c[h>>2]|0)+(e<<2)>>2]=m+(b<<2);e=e+1|0;b=c[i>>2]|0;if((e|0)>=(b|0))break;else d=d+88|0}}d=c[k>>2]|0;h=d+2|0;g=i}if((b|0)<=0)return;f=j+8|0;b=0;e=c[a+216>>2]|0;while(1){m=(B(c[e+40>>2]|0,c[e+12>>2]|0)|0)/(d|0)|0;j=B(c[e+36>>2]|0,c[e+28>>2]|0)|0;m=B(m,h)|0;m=Kb[c[(c[l>>2]|0)+8>>2]&15](a,1,j,m)|0;c[f+(b<<2)>>2]=m;b=b+1|0;if((b|0)>=(c[g>>2]|0))break;e=e+88|0;d=c[k>>2]|0}return}function su(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=c[a+448>>2]|0;switch(b|0){case 0:{b=r+4|0;if(!(c[(c[a+476>>2]|0)+8>>2]|0)){c[b>>2]=17;c[r+48>>2]=c[r+52>>2];return}c[b>>2]=16;l=c[a+328>>2]|0;m=c[a+36>>2]|0;if((m|0)>0){n=r+60|0;o=r+64|0;p=l+2|0;q=l+-2|0;h=c[a+216>>2]|0;i=0;while(1){j=(B(c[h+40>>2]|0,c[h+12>>2]|0)|0)/(l|0)|0;k=c[(c[n>>2]|0)+(i<<2)>>2]|0;f=c[(c[o>>2]|0)+(i<<2)>>2]|0;g=c[r+8+(i<<2)>>2]|0;a=B(j,p)|0;if((a|0)>0){b=0;do{e=c[g+(b<<2)>>2]|0;c[f+(b<<2)>>2]=e;c[k+(b<<2)>>2]=e;b=b+1|0}while((b|0)!=(a|0))}a=j<<1;if((j|0)>0){d=B(j,l)|0;e=B(j,q)|0;b=0;do{s=b+d|0;t=b+e|0;c[f+(t<<2)>>2]=c[g+(s<<2)>>2];c[f+(s<<2)>>2]=c[g+(t<<2)>>2];b=b+1|0}while((b|0)<(a|0));b=0;do{c[k+(b-j<<2)>>2]=c[k>>2];b=b+1|0}while((b|0)!=(j|0))}i=i+1|0;if((i|0)==(m|0))break;else h=h+88|0}}c[r+68>>2]=0;c[r+72>>2]=0;c[r+76>>2]=0;c[r+56>>2]=0;return}case 2:{c[r+4>>2]=18;return}default:{t=c[a>>2]|0;c[t+20>>2]=3;Sb[c[t>>2]&255](a);return}}}function tu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=a+448|0;w=c[v>>2]|0;y=w+56|0;do if(!(c[y>>2]|0))if(!(Ib[c[(c[a+452>>2]|0)+12>>2]&63](a,c[w+60+(c[w+68>>2]<<2)>>2]|0)|0))return;else{c[y>>2]=1;x=w+76|0;c[x>>2]=(c[x>>2]|0)+1;break}while(0);x=w+72|0;switch(c[x>>2]|0){case 2:{f=w+48|0;g=w+52|0;_b[c[(c[a+456>>2]|0)+4>>2]&7](a,c[w+60+(c[w+68>>2]<<2)>>2]|0,f,c[g>>2]|0,b,d,e);if((c[f>>2]|0)>>>0<(c[g>>2]|0)>>>0)return;c[x>>2]=0;if((c[d>>2]|0)>>>0>>0)h=9;else return;break}case 0:{f=w+48|0;g=w+52|0;h=9;break}case 1:{u=w+48|0;t=w+52|0;break}default:return}if((h|0)==9){c[f>>2]=0;p=c[a+328>>2]|0;c[g>>2]=p+-1;if((c[w+76>>2]|0)==(c[a+332>>2]|0)?(i=c[v>>2]|0,r=c[a+36>>2]|0,(r|0)>0):0){q=i+52|0;l=i+60+(c[i+68>>2]<<2)|0;j=c[a+216>>2]|0;k=0;while(1){u=B(c[j+40>>2]|0,c[j+12>>2]|0)|0;h=(u|0)/(p|0)|0;o=((c[j+48>>2]|0)>>>0)%(u>>>0)|0;o=(o|0)==0?u:o;if(!k)c[q>>2]=((o+-1|0)/(h|0)|0)+1;m=c[(c[l>>2]|0)+(k<<2)>>2]|0;n=h<<1;if((h|0)>0){i=m+(o+-1<<2)|0;h=0;do{c[m+(h+o<<2)>>2]=c[i>>2];h=h+1|0}while((h|0)<(n|0))}k=k+1|0;if((k|0)==(r|0))break;else j=j+88|0}}c[x>>2]=1;u=f;t=g}s=w+68|0;_b[c[(c[a+456>>2]|0)+4>>2]&7](a,c[w+60+(c[s>>2]<<2)>>2]|0,u,c[t>>2]|0,b,d,e);if((c[u>>2]|0)>>>0<(c[t>>2]|0)>>>0)return;if((c[w+76>>2]|0)==1){g=c[v>>2]|0;f=c[a+328>>2]|0;r=c[a+36>>2]|0;if((r|0)>0){b=g+60|0;o=g+64|0;p=f+1|0;q=f+2|0;h=c[a+216>>2]|0;i=0;while(1){j=(B(c[h+40>>2]|0,c[h+12>>2]|0)|0)/(f|0)|0;k=c[(c[b>>2]|0)+(i<<2)>>2]|0;l=c[(c[o>>2]|0)+(i<<2)>>2]|0;if((j|0)>0){m=B(j,p)|0;n=B(j,q)|0;g=0;do{w=g+m|0;a=g-j|0;c[k+(a<<2)>>2]=c[k+(w<<2)>>2];c[l+(a<<2)>>2]=c[l+(w<<2)>>2];a=g+n|0;c[k+(a<<2)>>2]=c[k+(g<<2)>>2];c[l+(a<<2)>>2]=c[l+(g<<2)>>2];g=g+1|0}while((g|0)!=(j|0))}i=i+1|0;if((i|0)==(r|0))break;else h=h+88|0}}}else f=c[a+328>>2]|0;c[s>>2]=c[s>>2]^1;c[y>>2]=0;c[u>>2]=f+1;c[t>>2]=f+2;c[x>>2]=2;return}function uu(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;f=c[a+448>>2]|0;i=f+48|0;h=f+52|0;g=c[h>>2]|0;do if((c[i>>2]|0)>>>0>=g>>>0){f=f+8|0;if(!(Ib[c[(c[a+452>>2]|0)+12>>2]&63](a,f)|0))return;else{c[i>>2]=0;g=c[h>>2]|0;break}}else f=f+8|0;while(0);_b[c[(c[a+456>>2]|0)+4>>2]&7](a,f,i,g,b,d,e);return}function vu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;_b[c[(c[a+456>>2]|0)+4>>2]&7](a,0,0,0,b,d,e);return}function wu(a){a=a|0;var b=0,d=0;c[a+148>>2]=0;b=c[a+452>>2]|0;if((c[a+340>>2]|0)>1)a=1;else{d=c[a+344>>2]|0;a=c[((c[a+332>>2]|0)==1?d+76|0:d+12|0)>>2]|0}c[b+28>>2]=a;c[b+20>>2]=0;c[b+24>>2]=0;return}function xu(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=c[a+452>>2]|0;if(!(c[k+16>>2]|0)){l=a+156|0;c[l>>2]=0;return}a:do if(((c[a+80>>2]|0)!=0?(c[a+224>>2]|0)!=0:0)?(j=a+160|0,(c[j>>2]|0)!=0):0){d=k+112|0;e=c[d>>2]|0;if(!e){i=a+36|0;e=Jb[c[c[a+4>>2]>>2]&63](a,1,(c[i>>2]|0)*24|0)|0;c[d>>2]=e}else i=a+36|0;if((c[i>>2]|0)>0){f=0;g=c[a+216>>2]|0;h=0;while(1){d=c[g+80>>2]|0;if(!d){l=20;break a}if(!(b[d>>1]|0)){l=20;break a}if(!(b[d+2>>1]|0)){l=20;break a}if(!(b[d+16>>1]|0)){l=20;break a}if(!(b[d+32>>1]|0)){l=20;break a}if(!(b[d+18>>1]|0)){l=20;break a}if(!(b[d+4>>1]|0)){l=20;break a}d=c[j>>2]|0;if((c[d+(h<<8)>>2]|0)<0){l=20;break a}m=d+(h<<8)+4|0;c[e+4>>2]=c[m>>2];m=c[m>>2]|0;n=d+(h<<8)+8|0;c[e+8>>2]=c[n>>2];m=c[n>>2]|m;n=d+(h<<8)+12|0;c[e+12>>2]=c[n>>2];n=m|c[n>>2];m=d+(h<<8)+16|0;c[e+16>>2]=c[m>>2];m=n|c[m>>2];d=d+(h<<8)+20|0;c[e+20>>2]=c[d>>2];f=(m|c[d>>2]|0)==0?f:1;h=h+1|0;if((h|0)>=(c[i>>2]|0))break;else{g=g+88|0;e=e+24|0}}if(f)d=36;else l=20}else l=20}else l=20;while(0);if((l|0)==20)d=34;c[k+12>>2]=d;n=a+156|0;c[n>>2]=0;return}function yu(a,b){a=a|0;b=b|0;a=a+-1+b|0;return a-((a|0)%(b|0)|0)|0}function zu(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;z=zb;zb=zb+16|0;u=z;x=a+452|0;v=c[x>>2]|0;y=a+340|0;if((c[y>>2]|0)>0){d=a+4|0;e=a+148|0;b=0;do{r=c[a+344+(b<<2)>>2]|0;t=c[r+12>>2]|0;s=B(t,c[e>>2]|0)|0;t=Mb[c[(c[d>>2]|0)+32>>2]&31](a,c[v+72+(c[r+4>>2]<<2)>>2]|0,s,t,1)|0;c[u+(b<<2)>>2]=t;b=b+1|0}while((b|0)<(c[y>>2]|0))}o=v+24|0;b=c[o>>2]|0;p=v+28|0;f=c[p>>2]|0;a:do if((b|0)<(f|0)){q=v+20|0;r=a+360|0;s=a+468|0;t=v+32|0;d=c[q>>2]|0;e=c[r>>2]|0;b:while(1){if(d>>>0>>0){do{n=c[y>>2]|0;if((n|0)>0){e=0;m=0;do{l=c[a+344+(m<<2)>>2]|0;j=c[l+56>>2]|0;k=B(j,d)|0;l=c[l+60>>2]|0;if((l|0)>0?(w=c[u+(m<<2)>>2]|0,(j|0)>0):0){i=0;do{f=0;g=(c[w+(i+b<<2)>>2]|0)+(k<<7)|0;h=e;while(1){c[v+32+(h<<2)>>2]=g;f=f+1|0;if((f|0)==(j|0))break;else{g=g+128|0;h=h+1|0}}e=j+e|0;i=i+1|0}while((i|0)<(l|0))}m=m+1|0}while((m|0)<(n|0))}if(!(Ib[c[(c[s>>2]|0)+4>>2]&63](a,t)|0))break b;d=d+1|0;e=c[r>>2]|0}while(d>>>0>>0);f=c[p>>2]|0}c[q>>2]=0;b=b+1|0;if((b|0)<(f|0))d=0;else break a}c[o>>2]=b;c[q>>2]=d;y=0;zb=z;return y|0}while(0);d=a+148|0;b=(c[d>>2]|0)+1|0;c[d>>2]=b;d=c[a+332>>2]|0;if(b>>>0>=d>>>0){Sb[c[(c[a+460>>2]|0)+12>>2]&255](a);y=4;zb=z;return y|0}e=c[x>>2]|0;if((c[y>>2]|0)>1)b=1;else{y=c[a+344>>2]|0;b=c[(b>>>0<(d+-1|0)>>>0?y+12|0:y+76|0)>>2]|0}c[e+28>>2]=b;c[e+20>>2]=0;c[e+24>>2]=0;y=3;zb=z;return y|0}function Au(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=c[a+452>>2]|0;w=a+332|0;x=(c[w>>2]|0)+-1|0;g=a+144|0;h=a+152|0;i=a+460|0;d=a+148|0;u=a+156|0;while(1){e=c[g>>2]|0;f=c[h>>2]|0;if((e|0)>=(f|0)){if((e|0)!=(f|0))break;if((c[d>>2]|0)>>>0>(c[u>>2]|0)>>>0)break}if(!(Gb[c[c[i>>2]>>2]&127](a)|0)){d=0;j=20;break}}if((j|0)==20)return d|0;q=a+36|0;if((c[q>>2]|0)>0){r=a+4|0;s=a+472|0;o=c[a+216>>2]|0;p=0;while(1){if(c[o+52>>2]|0){d=o+12|0;t=c[d>>2]|0;n=B(t,c[u>>2]|0)|0;t=Mb[c[(c[r>>2]|0)+32>>2]&31](a,c[v+72+(p<<2)>>2]|0,n,t,0)|0;if((c[u>>2]|0)>>>0>>0)i=c[d>>2]|0;else{n=c[d>>2]|0;i=((c[o+32>>2]|0)>>>0)%(n>>>0)|0;i=(i|0)==0?n:i}k=c[(c[s>>2]|0)+4+(p<<2)>>2]|0;if((i|0)>0){l=o+28|0;m=o+40|0;n=o+36|0;h=c[b+(p<<2)>>2]|0;j=0;d=c[l>>2]|0;while(1){if(!d)d=0;else{e=0;f=c[t+(j<<2)>>2]|0;g=0;while(1){Yb[k&63](a,o,f,h,e);g=g+1|0;d=c[l>>2]|0;if(g>>>0>=d>>>0)break;else{e=(c[n>>2]|0)+e|0;f=f+128|0}}}j=j+1|0;if((j|0)==(i|0))break;else h=h+(c[m>>2]<<2)|0}}}p=p+1|0;if((p|0)>=(c[q>>2]|0))break;else o=o+88|0}}x=(c[u>>2]|0)+1|0;c[u>>2]=x;x=x>>>0<(c[w>>2]|0)>>>0?3:4;return x|0}function Bu(a){a=a|0;return 0}function Cu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,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=a+452|0;I=c[N>>2]|0;J=(c[a+360>>2]|0)+-1|0;M=a+332|0;f=c[M>>2]|0;K=f+-1|0;G=I+24|0;d=c[G>>2]|0;H=I+28|0;g=c[H>>2]|0;do if((d|0)<(g|0)){y=I+20|0;z=a+436|0;A=a+468|0;C=I+32|0;D=a+368|0;E=a+340|0;F=a+472|0;e=a+148|0;x=d;f=g;d=c[y>>2]|0;a:while(1){if(d>>>0<=J>>>0){do{if(c[z>>2]|0)aP(c[C>>2]|0,0,c[D>>2]<<7|0)|0;if(!(Ib[c[(c[A>>2]|0)+4>>2]&63](a,C)|0))break a;f=c[E>>2]|0;if((f|0)>0){w=d>>>0>>0;g=0;v=0;do{m=c[a+344+(v<<2)>>2]|0;b:do if(c[m+52>>2]|0){h=c[m+4>>2]|0;n=c[(c[F>>2]|0)+4+(h<<2)>>2]|0;o=m+56|0;p=c[(w?o:m+72|0)>>2]|0;q=m+40|0;i=c[q>>2]|0;r=B(c[m+68>>2]|0,d)|0;s=m+60|0;l=c[s>>2]|0;if((l|0)>0){t=m+76|0;u=m+36|0;if((p|0)<=0){i=c[o>>2]|0;h=0;while(1){g=i+g|0;h=h+1|0;if((h|0)>=(l|0))break b}}j=(c[b+(h<<2)>>2]|0)+((B(i,x)|0)<<2)|0;k=0;h=l;f=i;while(1){if(!((c[e>>2]|0)>>>0>=K>>>0?(k+x|0)>=(c[t>>2]|0):0)){f=r;h=0;while(1){Yb[n&63](a,m,c[I+32+(h+g<<2)>>2]|0,j,f);h=h+1|0;if((h|0)==(p|0))break;else f=(c[u>>2]|0)+f|0}f=c[q>>2]|0;h=c[s>>2]|0}g=(c[o>>2]|0)+g|0;k=k+1|0;if((k|0)>=(h|0))break;else j=j+(f<<2)|0}f=c[E>>2]|0}}else g=(c[m+64>>2]|0)+g|0;while(0);v=v+1|0}while((v|0)<(f|0))}d=d+1|0}while(d>>>0<=J>>>0);f=c[H>>2]|0}c[y>>2]=0;d=x+1|0;if((d|0)<(f|0)){x=d;d=0}else{L=30;break}}if((L|0)==30){f=c[M>>2]|0;break}c[G>>2]=x;c[y>>2]=d;a=0;return a|0}else e=a+148|0;while(0);d=a+156|0;c[d>>2]=(c[d>>2]|0)+1;d=(c[e>>2]|0)+1|0;c[e>>2]=d;if(d>>>0>=f>>>0){Sb[c[(c[a+460>>2]|0)+12>>2]&255](a);a=4;return a|0}e=c[N>>2]|0;if((c[a+340>>2]|0)>1)d=1;else{a=c[a+344>>2]|0;d=c[(d>>>0<(f+-1|0)>>>0?a+12|0:a+76|0)>>2]|0}c[e+28>>2]=d;c[e+20>>2]=0;c[e+24>>2]=0;a=3;return a|0}function Du(a,d){a=a|0;d=d|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,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;oa=zb;zb=zb+128|0;ka=oa;la=c[a+452>>2]|0;na=a+332|0;ma=(c[na>>2]|0)+-1|0;n=a+144|0;f=c[n>>2]|0;i=a+152|0;g=c[i>>2]|0;a:do if((f|0)<=(g|0)){j=a+460|0;k=a+412|0;l=a+148|0;m=a+156|0;while(1){h=c[j>>2]|0;if(c[h+20>>2]|0)break a;if((f|0)==(g|0)?(c[l>>2]|0)>>>0>((c[m>>2]|0)+((c[k>>2]|0)==0&1)|0)>>>0:0)break a;if(!(Gb[c[h>>2]&127](a)|0)){f=0;break}f=c[n>>2]|0;g=c[i>>2]|0;if((f|0)>(g|0))break a}zb=oa;return f|0}while(0);ba=a+36|0;if((c[ba>>2]|0)>0){f=a+156|0;ca=a+4|0;da=la+112|0;ea=a+472|0;fa=ka+2|0;ga=ka+16|0;ha=ka+32|0;ia=ka+18|0;ja=ka+4|0;_=0;$=c[a+216>>2]|0;while(1){if(c[$+52>>2]|0){h=c[f>>2]|0;if(h>>>0>>0){i=c[$+12>>2]|0;g=i<<1;j=0;aa=i}else{i=c[$+12>>2]|0;aa=((c[$+32>>2]|0)>>>0)%(i>>>0)|0;aa=(aa|0)==0?i:aa;g=aa;j=1}if(!h){Y=Mb[c[(c[ca>>2]|0)+32>>2]&31](a,c[la+72+(_<<2)>>2]|0,0,g,0)|0;g=1}else{Y=B(i,h+-1|0)|0;Y=Mb[c[(c[ca>>2]|0)+32>>2]&31](a,c[la+72+(_<<2)>>2]|0,Y,i+g|0,0)|0;Y=Y+(c[$+12>>2]<<2)|0;g=0}i=(c[da>>2]|0)+(_*6<<2)|0;o=c[$+80>>2]|0;l=e[o>>1]|0;h=e[o+2>>1]|0;k=e[o+16>>1]|0;m=e[o+32>>1]|0;n=e[o+18>>1]|0;o=e[o+4>>1]|0;Z=c[(c[ea>>2]|0)+4+(_<<2)>>2]|0;if((aa|0)>0){X=(g|0)!=0;N=(j|0)!=0;O=aa+-1|0;P=$+28|0;Q=i+4|0;R=i+8|0;S=i+12|0;T=l*36|0;U=h<<7;V=i+16|0;W=k<<7;M=h<<8;J=i+20|0;K=l*9|0;L=m<<7;H=k<<8;I=$+36|0;F=l*5|0;G=n<<7;D=m<<8;E=o<<7;C=n<<8;y=o<<8;z=$+40|0;w=0;x=c[d+(_<<2)>>2]|0;while(1){g=c[Y+(w<<2)>>2]|0;if(X&(w|0)==0)h=g;else h=c[Y+(w+-1<<2)>>2]|0;if(N&(w|0)==(O|0))i=g;else i=c[Y+(w+1<<2)>>2]|0;l=b[h>>1]|0;q=b[g>>1]|0;k=b[i>>1]|0;A=(c[P>>2]|0)+-1|0;s=k;t=q;u=l;v=0;r=0;p=i;while(1){Eu(g,ka,1);if(v>>>0>>0){m=b[p+128>>1]|0;n=b[g+128>>1]|0;o=b[h+128>>1]|0}else{m=s;n=t;o=u}i=c[Q>>2]|0;if((i|0)!=0&(b[fa>>1]|0)==0){j=B(T,q-n|0)|0;if((j|0)>-1){j=(j+U|0)/(M|0)|0;pa=1<0?((j|0)<(pa|0)?j:pa+-1|0):j}else{pa=(U-j|0)/(M|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa)|0}b[fa>>1]=i}i=c[R>>2]|0;if((i|0)!=0&(b[ga>>1]|0)==0){j=B(T,u-s|0)|0;if((j|0)>-1){pa=(j+W|0)/(H|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa}else{pa=(W-j|0)/(H|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa)|0}b[ga>>1]=i}i=c[S>>2]|0;if((i|0)!=0&(b[ha>>1]|0)==0){j=B(K,u-(t<<1)+s|0)|0;if((j|0)>-1){pa=(j+L|0)/(D|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa}else{pa=(L-j|0)/(D|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa)|0}b[ha>>1]=i}j=c[V>>2]|0;if((j|0)!=0&(b[ia>>1]|0)==0){i=B(F,l-k-o+m|0)|0;if((i|0)>-1){i=(i+G|0)/(C|0)|0;pa=1<0?((i|0)<(pa|0)?i:pa+-1|0):i}else{i=(G-i|0)/(C|0)|0;pa=1<0?((i|0)<(pa|0)?i:pa+-1|0):i)|0}b[ia>>1]=i}j=c[J>>2]|0;if((j|0)!=0&(b[ja>>1]|0)==0){i=B(K,q-(t<<1)+n|0)|0;if((i|0)>-1){i=(i+E|0)/(y|0)|0;pa=1<0?((i|0)<(pa|0)?i:pa+-1|0):i}else{i=(E-i|0)/(y|0)|0;pa=1<0?((i|0)<(pa|0)?i:pa+-1|0):i)|0}b[ja>>1]=i}Yb[Z&63](a,$,ka,x,r);v=v+1|0;if(v>>>0>A>>>0)break;else{l=u;q=t;k=s;s=m;t=n;u=o;g=g+128|0;r=(c[I>>2]|0)+r|0;h=h+128|0;p=p+128|0}}w=w+1|0;if((w|0)==(aa|0))break;else x=x+(c[z>>2]<<2)|0}}}_=_+1|0;if((_|0)>=(c[ba>>2]|0))break;else $=$+88|0}}else f=a+156|0;pa=(c[f>>2]|0)+1|0;c[f>>2]=pa;pa=pa>>>0<(c[na>>2]|0)>>>0?3:4;zb=oa;return pa|0}function Eu(a,b,c){a=a|0;b=b|0;c=c|0;_O(b|0,a|0,c<<7|0)|0;return}function Fu(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;n=c[a+468>>2]|0;m=a+412|0;f=c[m>>2]|0;d=(f|0)==0;if(!(c[a+224>>2]|0)){if((d?(c[a+420>>2]|0)==0:0)?(c[a+424>>2]|0)==0:0){m=c[a+416>>2]|0;if((c[a+220>>2]|0)!=0|(m|0)<64?(m|0)!=(c[a+436>>2]|0):0)e=38}else e=38;if((e|0)==38){m=c[a>>2]|0;c[m+20>>2]=125;Ub[c[m+4>>2]&63](a,-1)}g=a+436|0;c[n+4>>2]=(c[g>>2]|0)==63?41:42;d=a+340|0;if((c[d>>2]|0)>0){b=0;do{e=c[a+344+(b<<2)>>2]|0;m=c[e+20>>2]|0;Lu(a,1,m,n+68+(m<<2)|0);if(c[g>>2]|0){m=c[e+24>>2]|0;Lu(a,0,m,n+84+(m<<2)|0)}c[n+24+(b<<2)>>2]=0;b=b+1|0}while((b|0)<(c[d>>2]|0))}f=a+368|0;if((c[f>>2]|0)<=0){m=n+16|0;c[m>>2]=0;m=n+12|0;c[m>>2]=0;m=n+40|0;c[m>>2]=0;a=a+280|0;a=c[a>>2]|0;n=n+44|0;c[n>>2]=a;return}e=0;do{b=c[a+344+(c[a+372+(e<<2)>>2]<<2)>>2]|0;c[n+100+(e<<2)>>2]=c[n+68+(c[b+20>>2]<<2)>>2];c[n+140+(e<<2)>>2]=c[n+84+(c[b+24>>2]<<2)>>2];a:do if(!(c[b+52>>2]|0))b=0;else{d=c[b+40>>2]|0;b=c[b+36>>2]|0;switch(c[g>>2]|0){case 0:{b=1;break a}case 3:{b=(c[4336+(((d|0)!=1&1)<<3)+(((b|0)!=1&1)<<2)>>2]|0)+1|0;break a}case 8:{m=d+-1|0;b=b+-1|0;b=(c[4352+((m>>>0<2?m:2)*12|0)+((b>>>0<2?b:2)<<2)>>2]|0)+1|0;break a}case 15:{m=d+-1|0;b=b+-1|0;b=(c[4400+((m>>>0<3?m:3)<<4)+((b>>>0<3?b:3)<<2)>>2]|0)+1|0;break a}case 24:{m=d+-1|0;b=b+-1|0;b=(c[4464+((m>>>0<4?m:4)*20|0)+((b>>>0<4?b:4)<<2)>>2]|0)+1|0;break a}case 35:{m=d+-1|0;b=b+-1|0;b=(c[4576+((m>>>0<5?m:5)*24|0)+((b>>>0<5?b:5)<<2)>>2]|0)+1|0;break a}case 48:{m=d+-1|0;b=b+-1|0;b=(c[4720+((m>>>0<6?m:6)*28|0)+((b>>>0<6?b:6)<<2)>>2]|0)+1|0;break a}default:{m=d+-1|0;b=b+-1|0;b=(c[4928+((m>>>0<7?m:7)<<5)+((b>>>0<7?b:7)<<2)>>2]|0)+1|0;break a}}}while(0);c[n+180+(e<<2)>>2]=b;e=e+1|0}while((e|0)<(c[f>>2]|0));m=n+16|0;c[m>>2]=0;m=n+12|0;c[m>>2]=0;m=n+40|0;c[m>>2]=0;a=a+280|0;a=c[a>>2]|0;n=n+44|0;c[n>>2]=a;return}k=a+416|0;b=c[k>>2]|0;if(d)if(!b)e=7;else e=11;else if(((b|0)>=(f|0)?(b|0)<=(c[a+436>>2]|0):0)?(c[a+340>>2]|0)==1:0)e=7;else e=11;do if((e|0)==7){b=c[a+420>>2]|0;if(b){b=b+-1|0;if((b|0)!=(c[a+424>>2]|0)){e=11;break}}else b=c[a+424>>2]|0;if((b|0)>13)e=11}while(0);if((e|0)==11){l=c[a>>2]|0;c[l+20>>2]=17;c[l+24>>2]=f;c[(c[a>>2]|0)+28>>2]=c[k>>2];c[(c[a>>2]|0)+32>>2]=c[a+420>>2];c[(c[a>>2]|0)+36>>2]=c[a+424>>2];Sb[c[c[a>>2]>>2]&255](a)}l=a+340|0;b=c[l>>2]|0;if((b|0)>0){i=a+160|0;g=a+420|0;j=a+424|0;h=0;do{e=c[(c[a+344+(h<<2)>>2]|0)+4>>2]|0;f=c[i>>2]|0;b=c[m>>2]|0;if(b){if((c[f+(e<<8)>>2]|0)<0){b=c[a>>2]|0;c[b+20>>2]=118;c[b+24>>2]=e;c[(c[a>>2]|0)+28>>2]=0;Ub[c[(c[a>>2]|0)+4>>2]&63](a,-1);b=c[m>>2]|0}}else b=0;if((b|0)<=(c[k>>2]|0))while(1){d=f+(e<<8)+(b<<2)|0;o=c[d>>2]|0;if((c[g>>2]|0)!=(((o|0)>0?o:0)|0)){o=c[a>>2]|0;c[o+20>>2]=118;c[o+24>>2]=e;c[(c[a>>2]|0)+28>>2]=b;Ub[c[(c[a>>2]|0)+4>>2]&63](a,-1)}c[d>>2]=c[j>>2];if((b|0)<(c[k>>2]|0))b=b+1|0;else break}h=h+1|0;b=c[l>>2]|0}while((h|0)<(b|0))}else g=a+420|0;e=c[m>>2]|0;o=(e|0)==0;c[n+4>>2]=(c[g>>2]|0)==0?(o?37:38):o?39:40;b:do if((b|0)>0){f=n+64|0;b=0;while(1){d=c[a+344+(b<<2)>>2]|0;if(!e){if(!(c[g>>2]|0)){o=c[d+20>>2]|0;Lu(a,1,o,n+48+(o<<2)|0)}}else{k=c[d+24>>2]|0;o=n+48+(k<<2)|0;Lu(a,0,k,o);c[f>>2]=c[o>>2]}c[n+24+(b<<2)>>2]=0;b=b+1|0;if((b|0)>=(c[l>>2]|0))break b;e=c[m>>2]|0}}while(0);c[n+20>>2]=0;o=n+16|0;c[o>>2]=0;o=n+12|0;c[o>>2]=0;o=n+40|0;c[o>>2]=0;a=a+280|0;a=c[a>>2]|0;o=n+44|0;c[o>>2]=a;return}function Gu(a){a=a|0;var b=0;b=(c[a+468>>2]|0)+16|0;a=(c[a+464>>2]|0)+24|0;c[a>>2]=(c[a>>2]|0)+((c[b>>2]|0)/8|0);c[b>>2]=0;return}function Hu(a,e){a=a|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;A=zb;zb=zb+48|0;x=A+20|0;y=A;z=c[a+468>>2]|0;t=c[a+424>>2]|0;i=a+280|0;if(c[i>>2]|0?(g=z+44|0,(c[g>>2]|0)==0):0){v=z+16|0;w=c[a+464>>2]|0;u=w+24|0;c[u>>2]=(c[u>>2]|0)+((c[v>>2]|0)/8|0);c[v>>2]=0;if(!(Gb[c[w+8>>2]&127](a)|0)){z=0;zb=A;return z|0}h=a+340|0;if((c[h>>2]|0)>0){f=0;do{c[z+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[h>>2]|0))}c[z+20>>2]=0;c[g>>2]=c[i>>2];if(!(c[a+440>>2]|0))c[z+40>>2]=0}if(!(c[z+40>>2]|0)){c[x+16>>2]=a;r=a+24|0;h=c[r>>2]|0;g=c[h>>2]|0;c[x>>2]=g;f=c[h+4>>2]|0;s=x+4|0;c[s>>2]=f;u=z+12|0;i=c[u>>2]|0;v=z+16|0;j=c[v>>2]|0;w=z+20|0;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];c[y+16>>2]=c[w+16>>2];q=a+368|0;do if((c[q>>2]|0)>0){o=x+8|0;p=x+12|0;l=0;while(1){m=c[e+(l<<2)>>2]|0;n=c[a+372+(l<<2)>>2]|0;h=c[z+48+(c[(c[a+344+(n<<2)>>2]|0)+20>>2]<<2)>>2]|0;if((j|0)<8){if(!(Ou(x,i,j,0)|0)){f=0;k=28;break}i=c[o>>2]|0;j=c[p>>2]|0;if((j|0)<8){f=1;k=17}else k=15}else k=15;if((k|0)==15){k=0;f=i>>j+-8&255;g=c[h+144+(f<<2)>>2]|0;if(!g){f=9;k=17}else{f=d[h+1168+f>>0]|0;j=j-g|0}}if((k|0)==17){f=Pu(x,i,j,h,f)|0;if((f|0)<0){f=0;k=28;break}j=c[p>>2]|0;i=c[o>>2]|0}if(!f)f=0;else{if((j|0)<(f|0)){if(!(Ou(x,i,j,f)|0)){f=0;k=28;break}j=c[p>>2]|0;i=c[o>>2]|0}j=j-f|0;k=c[5184+(f<<2)>>2]|0;h=i>>j&k;f=h-((h|0)>(c[5184+(f+-1<<2)>>2]|0)?0:k)|0}k=y+4+(n<<2)|0;n=(c[k>>2]|0)+f|0;c[k>>2]=n;b[m>>1]=n<=(c[q>>2]|0)){k=25;break}}if((k|0)==25){h=c[r>>2]|0;g=c[x>>2]|0;f=c[s>>2]|0;break}else if((k|0)==28){zb=A;return f|0}}while(0);c[h>>2]=g;c[h+4>>2]=f;c[u>>2]=i;c[v>>2]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[w+16>>2]=c[y+16>>2]}z=z+44|0;c[z>>2]=(c[z>>2]|0)+-1;z=1;zb=A;return z|0}function Iu(a,e){a=a|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;y=zb;zb=zb+32|0;w=y;x=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=x+44|0,(c[i>>2]|0)==0):0){u=x+16|0;v=c[a+464>>2]|0;t=v+24|0;c[t>>2]=(c[t>>2]|0)+((c[u>>2]|0)/8|0);c[u>>2]=0;if(!(Gb[c[v+8>>2]&127](a)|0)){x=0;zb=y;return x|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[x+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[x+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[x+40>>2]=0}if(!(c[x+40>>2]|0)){v=x+20|0;f=c[v>>2]|0;if(!f){c[w+16>>2]=a;r=a+24|0;t=c[r>>2]|0;c[w>>2]=c[t>>2];s=w+4|0;c[s>>2]=c[t+4>>2];t=x+12|0;g=c[t>>2]|0;u=x+16|0;h=c[u>>2]|0;n=c[a+416>>2]|0;o=c[a+424>>2]|0;p=c[a+432>>2]|0;k=c[e>>2]|0;l=c[x+64>>2]|0;f=c[a+412>>2]|0;a:do if((f|0)<=(n|0)){q=w+8|0;m=w+12|0;j=f;b:while(1){if((h|0)<8){if(!(Ou(w,g,h,0)|0)){f=0;a=36;break}g=c[q>>2]|0;h=c[m>>2]|0;if((h|0)<8){f=1;a=19}else a=17}else a=17;if((a|0)==17){a=0;f=g>>h+-8&255;i=c[l+144+(f<<2)>>2]|0;if(!i){f=9;a=19}else{f=d[l+1168+f>>0]|0;h=h-i|0}}if((a|0)==19){f=Pu(w,g,h,l,f)|0;if((f|0)<0){f=0;a=36;break}h=c[m>>2]|0;g=c[q>>2]|0}e=f>>>4;i=f&15;if(!i){switch(e&268435455|0){case 0:{f=0;break a}case 15:break;default:{a=27;break b}}f=j+15|0}else{f=e+j|0;if((h|0)<(i|0)){if(!(Ou(w,g,h,i)|0)){f=0;a=36;break}h=c[m>>2]|0;g=c[q>>2]|0}h=h-i|0;j=c[5184+(i<<2)>>2]|0;a=g>>h&j;b[k+(c[p+(f<<2)>>2]<<1)>>1]=a-((a|0)>(c[5184+(i+-1<<2)>>2]|0)?0:j)<>2]|0;g=c[q>>2]|0;break}else f=h;while(0);h=f-e|0;f=i+-1+(g>>h&c[5184+(e<<2)>>2])|0;break}else if((a|0)==36){zb=y;return f|0}}else f=0;while(0);r=c[r>>2]|0;c[r>>2]=c[w>>2];c[r+4>>2]=c[s>>2];c[t>>2]=g;c[u>>2]=h}else f=f+-1|0;c[v>>2]=f}x=x+44|0;c[x>>2]=(c[x>>2]|0)+-1;x=1;zb=y;return x|0}function Ju(a,d){a=a|0;d=d|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;s=zb;zb=zb+32|0;q=s;r=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=r+44|0,(c[i>>2]|0)==0):0){o=r+16|0;p=c[a+464>>2]|0;n=p+24|0;c[n>>2]=(c[n>>2]|0)+((c[o>>2]|0)/8|0);c[o>>2]=0;if(!(Gb[c[p+8>>2]&127](a)|0)){r=0;zb=s;return r|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[r+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[r+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[r+40>>2]=0}c[q+16>>2]=a;m=a+24|0;h=c[m>>2]|0;g=c[h>>2]|0;c[q>>2]=g;f=c[h+4>>2]|0;n=q+4|0;c[n>>2]=f;o=r+12|0;i=c[o>>2]|0;p=r+16|0;j=c[p>>2]|0;l=1<>2];k=a+368|0;do if((c[k>>2]|0)>0){h=q+8|0;a=q+12|0;g=0;f=j;while(1){if((f|0)<1){if(!(Ou(q,i,f,1)|0)){f=0;a=19;break}f=c[a>>2]|0;i=c[h>>2]|0}f=f+-1|0;if(1<>2]|0;b[j>>1]=l|(e[j>>1]|0)}g=g+1|0;if((g|0)>=(c[k>>2]|0)){a=17;break}}if((a|0)==17){j=f;h=c[m>>2]|0;g=c[q>>2]|0;f=c[n>>2]|0;break}else if((a|0)==19){zb=s;return f|0}}while(0);c[h>>2]=g;c[h+4>>2]=f;c[o>>2]=i;c[p>>2]=j;r=r+44|0;c[r>>2]=(c[r>>2]|0)+-1;r=1;zb=s;return r|0}function Ku(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=zb;zb=zb+288|0;E=G+256|0;D=G;F=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=F+44|0,(c[i>>2]|0)==0):0){z=F+16|0;A=c[a+464>>2]|0;y=A+24|0;c[y>>2]=(c[y>>2]|0)+((c[z>>2]|0)/8|0);c[z>>2]=0;if(!(Gb[c[A+8>>2]&127](a)|0)){F=0;zb=G;return F|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[F+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[F+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[F+40>>2]=0}do if(!(c[F+40>>2]|0)){q=c[a+416>>2]|0;s=c[a+424>>2]|0;r=1<>2]|0;c[E+16>>2]=a;w=a+24|0;y=c[w>>2]|0;c[E>>2]=c[y>>2];x=E+4|0;c[x>>2]=c[y+4>>2];y=F+12|0;j=c[y>>2]|0;z=F+16|0;g=c[z>>2]|0;A=F+20|0;h=c[A>>2]|0;u=c[e>>2]|0;l=c[F+64>>2]|0;i=c[a+412>>2]|0;o=E+8|0;p=E+12|0;a:do if(!h){f=0;b:while(1){if((g|0)<8){if(!(Ou(E,j,g,0)|0))break a;j=c[o>>2]|0;g=c[p>>2]|0;if((g|0)<8){h=1;v=17}else v=15}else v=15;if((v|0)==15){v=0;h=j>>g+-8&255;e=c[l+144+(h<<2)>>2]|0;if(!e){h=9;v=17}else{h=d[l+1168+h>>0]|0;g=g-e|0}}if((v|0)==17){v=0;g=Pu(E,j,g,l,h)|0;if((g|0)<0)break a;h=g;g=c[p>>2]|0;j=c[o>>2]|0}e=h>>>4;switch(h&15){case 0:{if((e|0)==15)k=0;else break b;break}case 1:{v=21;break}default:{v=c[a>>2]|0;c[v+20>>2]=121;Ub[c[v+4>>2]&63](a,-1);v=21}}if((v|0)==21){v=0;if((g|0)<1){if(!(Ou(E,j,g,1)|0))break a;g=c[p>>2]|0;j=c[o>>2]|0}g=g+-1|0;k=(1<>2]<<1)|0;do if(!(b[e>>1]|0))if((h|0)<1)break c;else h=h+-1|0;else{if((g|0)<1){if(!(Ou(E,j,g,1)|0))break a;g=c[p>>2]|0;j=c[o>>2]|0}g=g+-1|0;if((1<>1]|0,n=m<<16>>16,(r&n|0)==0):0)if(m<<16>>16>-1){b[e>>1]=r+n;break}else{b[e>>1]=s+n;break}}while(0);e=i+1|0;if((i|0)<(q|0))i=e;else{i=e;break}}if(k){e=c[t+(i<<2)>>2]|0;b[u+(e<<1)>>1]=k;c[D+(f<<2)>>2]=e;f=f+1|0}if((i|0)<(q|0))i=i+1|0;else{h=0;f=j;v=58;break a}}h=1<>2]|0;j=c[o>>2]|0}g=g-e|0;h=(j>>g&c[5184+(e<<2)>>2])+h|0;if(!h){h=0;f=j;v=58}else v=46}else{h=1;v=46}}else{f=0;v=46}while(0);d:do if((v|0)==46){while(1){e=u+(c[t+(i<<2)>>2]<<1)|0;do if(b[e>>1]|0){if((g|0)<1){if(!(Ou(E,j,g,1)|0))break d;g=c[p>>2]|0;j=c[o>>2]|0}g=g+-1|0;if((1<>1]|0,C=B<<16>>16,(r&C|0)==0):0)if(B<<16>>16>-1){b[e>>1]=r+C;break}else{b[e>>1]=s+C;break}}while(0);if((i|0)<(q|0))i=i+1|0;else break}h=h+-1|0;f=j;v=58}while(0);if((v|0)==58){D=c[w>>2]|0;c[D>>2]=c[E>>2];c[D+4>>2]=c[x>>2];c[y>>2]=f;c[z>>2]=g;c[A>>2]=h;break}if(!f){F=0;zb=G;return F|0}do{f=f+-1|0;b[u+(c[D+(f<<2)>>2]<<1)>>1]=0}while((f|0)!=0);f=0;zb=G;return f|0}while(0);F=F+44|0;c[F>>2]=(c[F>>2]|0)+-1;F=1;zb=G;return F|0}function Lu(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;q=zb;zb=zb+1312|0;k=q+1040|0;p=q;if(f>>>0>3){o=c[b>>2]|0;c[o+20>>2]=52;c[o+24>>2]=f;Sb[c[c[b>>2]>>2]&255](b)}n=(e|0)!=0;o=c[(n?b+180+(f<<2)|0:b+196+(f<<2)|0)>>2]|0;if(!o){m=c[b>>2]|0;c[m+20>>2]=52;c[m+24>>2]=f;Sb[c[c[b>>2]>>2]&255](b)}e=c[g>>2]|0;if(!e){l=Jb[c[c[b+4>>2]>>2]&63](b,1,1424)|0;c[g>>2]=l;m=b}else{m=b;l=e}c[l+140>>2]=o;j=a[o+1>>0]|0;e=j&255;if(!(j<<24>>24))e=0;else aP(k|0,1,e|0)|0;f=a[o+2>>0]|0;g=f&255;h=e+g|0;if(h>>>0>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,2,g|0)|0;e=h}f=a[o+3>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,3,g|0)|0;e=h}f=a[o+4>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,4,g|0)|0;e=h}f=a[o+5>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,5,g|0)|0;e=h}f=a[o+6>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,6,g|0)|0;e=h}f=a[o+7>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,7,g|0)|0;e=h}f=a[o+8>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,8,g|0)|0;e=h}f=a[o+9>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,9,g|0)|0;e=h}f=a[o+10>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,10,g|0)|0;e=h}f=a[o+11>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,11,g|0)|0;e=h}f=a[o+12>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,12,g|0)|0;e=h}f=a[o+13>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,13,g|0)|0;e=h}f=a[o+14>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,14,g|0)|0;e=h}f=a[o+15>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,15,g|0)|0;e=h}f=a[o+16>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(!(f<<24>>24))h=e;else aP(k+e|0,16,g|0)|0;a[k+h>>0]=0;f=a[k>>0]|0;if(f<<24>>24){g=0;j=f<<24>>24;e=0;while(1){if((j|0)==(f<<24>>24|0)){f=g;while(1){i=e+1|0;c[p+(e<<2)>>2]=f;e=f+1|0;f=a[k+i>>0]|0;if((j|0)==(f<<24>>24|0)){f=e;e=i}else{g=e;e=i;break}}}if((g|0)>=(1<>2]|0;c[i+20>>2]=9;Sb[c[i>>2]&255](m)}if(!(f<<24>>24))break;else{g=g<<1;j=j+1|0}}}e=o+1|0;if(!(a[e>>0]|0)){f=0;e=-1}else{c[l+76>>2]=0-(c[p>>2]|0);e=d[e>>0]|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+4>>2]=e;e=o+2|0;if(!(a[e>>0]|0))e=-1;else{c[l+80>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+8>>2]=e;e=o+3|0;if(!(a[e>>0]|0))e=-1;else{c[l+84>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+12>>2]=e;e=o+4|0;if(!(a[e>>0]|0))e=-1;else{c[l+88>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+16>>2]=e;e=o+5|0;if(!(a[e>>0]|0))e=-1;else{c[l+92>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+20>>2]=e;e=o+6|0;if(!(a[e>>0]|0))e=-1;else{c[l+96>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+24>>2]=e;e=o+7|0;if(!(a[e>>0]|0))e=-1;else{c[l+100>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+28>>2]=e;e=o+8|0;if(!(a[e>>0]|0))e=-1;else{c[l+104>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+32>>2]=e;e=o+9|0;if(!(a[e>>0]|0))e=-1;else{c[l+108>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+36>>2]=e;e=o+10|0;if(!(a[e>>0]|0))e=-1;else{c[l+112>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+40>>2]=e;e=o+11|0;if(!(a[e>>0]|0))e=-1;else{c[l+116>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+44>>2]=e;e=o+12|0;if(!(a[e>>0]|0))e=-1;else{c[l+120>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+48>>2]=e;e=o+13|0;if(!(a[e>>0]|0))e=-1;else{c[l+124>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+52>>2]=e;e=o+14|0;if(!(a[e>>0]|0))e=-1;else{c[l+128>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+56>>2]=e;e=o+15|0;if(!(a[e>>0]|0))e=-1;else{c[l+132>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+60>>2]=e;e=o+16|0;if(!(a[e>>0]|0))e=-1;else{c[l+136>>2]=f-(c[p+(f<<2)>>2]|0);e=c[p+(f+(d[e>>0]|0)+-1<<2)>>2]|0}c[l+64>>2]=e;c[l+68>>2]=1048575;aP(l+144|0,0,1024)|0;k=o+1|0;if(!(a[k>>0]|0))e=0;else{j=1;e=0;while(1){i=o+17+e|0;f=128;g=c[p+(e<<2)>>2]<<7;while(1){c[l+144+(g<<2)>>2]=1;a[l+1168+g>>0]=a[i>>0]|0;if((f|0)>1){f=f+-1|0;g=g+1|0}else break}e=e+1|0;if(j>>>0<(d[k>>0]|0)>>>0)j=j+1|0;else break}}k=o+2|0;if(a[k>>0]|0){j=1;while(1){i=o+17+e|0;f=64;g=c[p+(e<<2)>>2]<<6;while(1){c[l+144+(g<<2)>>2]=2;a[l+1168+g>>0]=a[i>>0]|0;if((f|0)>1){f=f+-1|0;g=g+1|0}else break}e=e+1|0;if(j>>>0<(d[k>>0]|0)>>>0)j=j+1|0;else break}}g=o+3|0;if(a[g>>0]|0){f=1;while(1){k=c[p+(e<<2)>>2]<<5;j=o+17+e|0;c[l+144+(k<<2)>>2]=3;a[l+1168+k>>0]=a[j>>0]|0;i=k|1;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;i=i+1|0;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;i=k|3;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;r=i+1|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+2|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;i=i+3|0;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;i=k|7;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;r=i+1|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+2|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+3|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+4|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+5|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+6|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;i=i+7|0;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;i=k|15;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;r=i+1|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+2|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+3|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+4|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+5|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+6|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+7|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+8|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+9|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+10|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+11|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+12|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+13|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+14|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;i=i+15|0;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;k=k|31;c[l+144+(k<<2)>>2]=3;a[l+1168+k>>0]=a[j>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+4|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]<<4;k=o+17+e|0;c[l+144+(r<<2)>>2]=4;a[l+1168+r>>0]=a[k>>0]|0;j=r|1;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;j=j+1|0;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;j=r|3;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;i=j+1|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+2|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;j=j+3|0;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;j=r|7;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;i=j+1|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+2|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+3|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+4|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+5|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+6|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;j=j+7|0;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;r=r|15;c[l+144+(r<<2)>>2]=4;a[l+1168+r>>0]=a[k>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+5|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]<<3;k=o+17+e|0;c[l+144+(r<<2)>>2]=5;a[l+1168+r>>0]=a[k>>0]|0;j=r|1;c[l+144+(j<<2)>>2]=5;a[l+1168+j>>0]=a[k>>0]|0;j=j+1|0;c[l+144+(j<<2)>>2]=5;a[l+1168+j>>0]=a[k>>0]|0;j=r|3;c[l+144+(j<<2)>>2]=5;a[l+1168+j>>0]=a[k>>0]|0;i=j+1|0;c[l+144+(i<<2)>>2]=5;a[l+1168+i>>0]=a[k>>0]|0;i=j+2|0;c[l+144+(i<<2)>>2]=5;a[l+1168+i>>0]=a[k>>0]|0;j=j+3|0;c[l+144+(j<<2)>>2]=5;a[l+1168+j>>0]=a[k>>0]|0;r=r|7;c[l+144+(r<<2)>>2]=5;a[l+1168+r>>0]=a[k>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+6|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]<<2;k=o+17+e|0;c[l+144+(r<<2)>>2]=6;a[l+1168+r>>0]=a[k>>0]|0;j=r|1;c[l+144+(j<<2)>>2]=6;a[l+1168+j>>0]=a[k>>0]|0;j=j+1|0;c[l+144+(j<<2)>>2]=6;a[l+1168+j>>0]=a[k>>0]|0;r=r|3;c[l+144+(r<<2)>>2]=6;a[l+1168+r>>0]=a[k>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+7|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]<<1;k=o+17+e|0;c[l+144+(r<<2)>>2]=7;a[l+1168+r>>0]=a[k>>0]|0;r=r|1;c[l+144+(r<<2)>>2]=7;a[l+1168+r>>0]=a[k>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+8|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]|0;c[l+144+(r<<2)>>2]=8;a[l+1168+r>>0]=a[o+17+e>>0]|0;if(f>>>0<(d[g>>0]|0)>>>0){f=f+1|0;e=e+1|0}else break}}if(!(n&(h|0)>0)){zb=q;return}e=0;do{if((d[o+17+e>>0]|0)>15){r=c[b>>2]|0;c[r+20>>2]=9;Sb[c[r>>2]&255](m)}e=e+1|0}while((e|0)!=(h|0));zb=q;return}function Mu(a,e){a=a|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;A=zb;zb=zb+48|0;x=A+20|0;y=A;z=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=z+44|0,(c[i>>2]|0)==0):0){v=z+16|0;w=c[a+464>>2]|0;u=w+24|0;c[u>>2]=(c[u>>2]|0)+((c[v>>2]|0)/8|0);c[v>>2]=0;if(!(Gb[c[w+8>>2]&127](a)|0)){z=0;zb=A;return z|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[z+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[z+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[z+40>>2]=0}if(!(c[z+40>>2]|0)){c[x+16>>2]=a;s=a+24|0;h=c[s>>2]|0;g=c[h>>2]|0;c[x>>2]=g;f=c[h+4>>2]|0;t=x+4|0;c[t>>2]=f;u=z+12|0;j=c[u>>2]|0;v=z+16|0;i=c[v>>2]|0;w=z+20|0;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];c[y+16>>2]=c[w+16>>2];r=a+368|0;do if((c[r>>2]|0)>0){p=x+8|0;q=x+12|0;o=0;a:while(1){l=c[e+(o<<2)>>2]|0;h=c[z+100+(o<<2)>>2]|0;if((i|0)<8){if(!(Ou(x,j,i,0)|0)){f=0;m=67;break}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){f=1;m=17}else m=15}else m=15;if((m|0)==15){m=0;f=j>>i+-8&255;g=c[h+144+(f<<2)>>2]|0;if(!g){f=9;m=17}else{f=d[h+1168+f>>0]|0;i=i-g|0}}if((m|0)==17){f=Pu(x,j,i,h,f)|0;if((f|0)<0){f=0;m=67;break}j=c[p>>2]|0;i=c[q>>2]|0}n=c[z+140+(o<<2)>>2]|0;k=c[z+180+(o<<2)>>2]|0;g=(f|0)!=0;b:do if(!k)if(g){if((i|0)<(f|0)){if(!(Ou(x,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;f=1;m=48}else{f=1;m=48}else{if(g){if((i|0)<(f|0)){if(!(Ou(x,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;m=c[5184+(f<<2)>>2]|0;h=j>>i&m;f=h-((h|0)>(c[5184+(f+-1<<2)>>2]|0)?0:m)|0}else f=0;h=y+4+(c[a+372+(o<<2)>>2]<<2)|0;m=(c[h>>2]|0)+f|0;c[h>>2]=m;b[l>>1]=m;if((k|0)>1){f=1;do{if((i|0)<8){if(!(Ou(x,j,i,0)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){g=1;m=32}else m=30}else m=30;if((m|0)==30){m=0;h=j>>i+-8&255;g=c[n+144+(h<<2)>>2]|0;if(!g){g=9;m=32}else{i=i-g|0;g=d[n+1168+h>>0]|0}}if((m|0)==32){m=0;g=Pu(x,j,i,n,g)|0;if((g|0)<0){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}h=g>>>4;g=g&15;if(!g){if((h|0)!=15)break b;g=f+15|0}else{f=h+f|0;if((i|0)<(g|0)){if(!(Ou(x,j,i,g)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-g|0;h=c[5184+(g<<2)>>2]|0;B=j>>i&h;b[l+(c[2064+(f<<2)>>2]<<1)>>1]=B-((B|0)>(c[5184+(g+-1<<2)>>2]|0)?0:h);g=f}f=g+1|0}while((f|0)<(k|0));if((g|0)<63)m=48}else{f=1;m=48}}while(0);c:do if((m|0)==48){h=f;do{if((i|0)<8){if(!(Ou(x,j,i,0)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){f=1;m=54}else m=52}else m=52;if((m|0)==52){m=0;f=j>>i+-8&255;g=c[n+144+(f<<2)>>2]|0;if(!g){f=9;m=54}else{f=d[n+1168+f>>0]|0;i=i-g|0}}if((m|0)==54){f=Pu(x,j,i,n,f)|0;if((f|0)<0){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}g=f>>>4;f=f&15;if(!f)if((g|0)==15)f=15;else break c;else{if((i|0)<(f|0)){if(!(Ou(x,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;f=g}h=h+1+f|0}while((h|0)<64)}while(0);o=o+1|0;if((o|0)>=(c[r>>2]|0)){m=64;break}}if((m|0)==64){h=c[s>>2]|0;g=c[x>>2]|0;f=c[t>>2]|0;break}else if((m|0)==67){zb=A;return f|0}}while(0);c[h>>2]=g;c[h+4>>2]=f;c[u>>2]=j;c[v>>2]=i;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[w+16>>2]=c[y+16>>2]}B=z+44|0;c[B>>2]=(c[B>>2]|0)+-1;B=1;zb=A;return B|0}function Nu(a,e){a=a|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;C=zb;zb=zb+48|0;z=C+20|0;A=C;B=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=B+44|0,(c[i>>2]|0)==0):0){x=B+16|0;y=c[a+464>>2]|0;w=y+24|0;c[w>>2]=(c[w>>2]|0)+((c[x>>2]|0)/8|0);c[x>>2]=0;if(!(Gb[c[y+8>>2]&127](a)|0)){B=0;zb=C;return B|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[B+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[B+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[B+40>>2]=0}if(!(c[B+40>>2]|0)){r=c[a+432>>2]|0;s=c[a+436>>2]|0;c[z+16>>2]=a;u=a+24|0;h=c[u>>2]|0;g=c[h>>2]|0;c[z>>2]=g;f=c[h+4>>2]|0;v=z+4|0;c[v>>2]=f;w=B+12|0;j=c[w>>2]|0;x=B+16|0;i=c[x>>2]|0;y=B+20|0;c[A>>2]=c[y>>2];c[A+4>>2]=c[y+4>>2];c[A+8>>2]=c[y+8>>2];c[A+12>>2]=c[y+12>>2];c[A+16>>2]=c[y+16>>2];t=a+368|0;do if((c[t>>2]|0)>0){p=z+8|0;q=z+12|0;o=0;a:while(1){l=c[e+(o<<2)>>2]|0;h=c[B+100+(o<<2)>>2]|0;if((i|0)<8){if(!(Ou(z,j,i,0)|0)){f=0;m=67;break}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){f=1;m=17}else m=15}else m=15;if((m|0)==15){m=0;f=j>>i+-8&255;g=c[h+144+(f<<2)>>2]|0;if(!g){f=9;m=17}else{f=d[h+1168+f>>0]|0;i=i-g|0}}if((m|0)==17){f=Pu(z,j,i,h,f)|0;if((f|0)<0){f=0;m=67;break}j=c[p>>2]|0;i=c[q>>2]|0}n=c[B+140+(o<<2)>>2]|0;k=c[B+180+(o<<2)>>2]|0;g=(f|0)!=0;b:do if(!k)if(g){if((i|0)<(f|0)){if(!(Ou(z,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;f=1;m=47}else{f=1;m=47}else{if(g){if((i|0)<(f|0)){if(!(Ou(z,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;m=c[5184+(f<<2)>>2]|0;h=j>>i&m;f=h-((h|0)>(c[5184+(f+-1<<2)>>2]|0)?0:m)|0}else f=0;h=A+4+(c[a+372+(o<<2)>>2]<<2)|0;m=(c[h>>2]|0)+f|0;c[h>>2]=m;b[l>>1]=m;if((k|0)>1){f=1;while(1){if((i|0)<8){if(!(Ou(z,j,i,0)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){g=1;m=32}else m=30}else m=30;if((m|0)==30){m=0;h=j>>i+-8&255;g=c[n+144+(h<<2)>>2]|0;if(!g){g=9;m=32}else{i=i-g|0;g=d[n+1168+h>>0]|0}}if((m|0)==32){m=0;g=Pu(z,j,i,n,g)|0;if((g|0)<0){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}h=g>>>4;g=g&15;if(!g){if((h|0)!=15)break b;f=f+15|0}else{f=h+f|0;if((i|0)<(g|0)){if(!(Ou(z,j,i,g)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-g|0;m=c[5184+(g<<2)>>2]|0;h=j>>i&m;b[l+(c[r+(f<<2)>>2]<<1)>>1]=h-((h|0)>(c[5184+(g+-1<<2)>>2]|0)?0:m)}f=f+1|0;if((f|0)>=(k|0)){m=47;break}}}else{f=1;m=47}}while(0);c:do if((m|0)==47)if((f|0)<=(s|0)){h=f;do{if((i|0)<8){if(!(Ou(z,j,i,0)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){f=1;m=54}else m=52}else m=52;if((m|0)==52){m=0;f=j>>i+-8&255;g=c[n+144+(f<<2)>>2]|0;if(!g){f=9;m=54}else{f=d[n+1168+f>>0]|0;i=i-g|0}}if((m|0)==54){f=Pu(z,j,i,n,f)|0;if((f|0)<0){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}g=f>>>4;f=f&15;if(!f)if((g|0)==15)f=15;else break c;else{if((i|0)<(f|0)){if(!(Ou(z,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;f=g}h=h+1+f|0}while((h|0)<=(s|0))}while(0);o=o+1|0;if((o|0)>=(c[t>>2]|0)){m=64;break}}if((m|0)==64){h=c[u>>2]|0;g=c[z>>2]|0;f=c[v>>2]|0;break}else if((m|0)==67){zb=C;return f|0}}while(0);c[h>>2]=g;c[h+4>>2]=f;c[w>>2]=j;c[x>>2]=i;c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];c[y+8>>2]=c[A+8>>2];c[y+12>>2]=c[A+12>>2];c[y+16>>2]=c[A+16>>2]}B=B+44|0;c[B>>2]=(c[B>>2]|0)+-1;B=1;zb=C;return B|0}function Ou(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;g=c[b>>2]|0;n=b+4|0;h=c[n>>2]|0;m=c[b+16>>2]|0;l=m+440|0;a:do if(!(c[l>>2]|0)){if((e|0)<25){k=m+24|0;j=e;b:while(1){if(!h){if(!(Gb[c[(c[k>>2]|0)+12>>2]&127](m)|0)){g=0;o=20;break}g=c[k>>2]|0;h=c[g+4>>2]|0;g=c[g>>2]|0}h=h+-1|0;i=g+1|0;e=a[g>>0]|0;g=e&255;c:do if(e<<24>>24==-1){g=i;while(1){if(!h){if(!(Gb[c[(c[k>>2]|0)+12>>2]&127](m)|0)){g=0;o=20;break b}e=c[k>>2]|0;h=c[e+4>>2]|0;e=c[e>>2]|0}else e=g;h=h+-1|0;g=e+1|0;e=a[e>>0]|0;switch(e<<24>>24){case 0:{e=255;break c}case -1:break;default:{o=13;break b}}}}else{e=g;g=i}while(0);d=e|d<<8;e=j+8|0;if((j|0)<17)j=e;else break a}if((o|0)==13){c[l>>2]=e&255;e=j;i=h;o=15;break}else if((o|0)==20)return g|0}}else{i=h;o=15}while(0);if((o|0)==15)if((e|0)<(f|0)){h=m+468|0;if(!(c[(c[h>>2]|0)+40>>2]|0)){o=c[m>>2]|0;c[o+20>>2]=120;Ub[c[o+4>>2]&63](m,-1);c[(c[h>>2]|0)+40>>2]=1}d=d<<25-e;e=25;h=i}else h=i;c[b>>2]=g;c[n>>2]=h;c[b+8>>2]=d;c[b+12>>2]=e;o=1;return o|0}function Pu(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;do if((e|0)<(g|0))if(!(Ou(a,b,e,g)|0)){f=-1;return f|0}else{b=c[a+8>>2]|0;e=c[a+12>>2]|0;break}while(0);e=e-g|0;h=b>>e&c[5184+(g<<2)>>2];i=a+8|0;j=a+12|0;a:do if((h|0)>(c[f+(g<<2)>>2]|0)){while(1){h=h<<1;if((e|0)<1){if(!(Ou(a,b,e,1)|0)){e=-1;break}b=c[i>>2]|0;e=c[j>>2]|0}e=e+-1|0;h=b>>>e&1|h;g=g+1|0;if((h|0)<=(c[f+(g<<2)>>2]|0))break a}return e|0}while(0);c[i>>2]=b;c[j>>2]=e;if((g|0)>16){f=c[a+16>>2]|0;a=c[f>>2]|0;c[a+20>>2]=121;Ub[c[a+4>>2]&63](f,-1);f=0;return f|0}else{f=d[(c[f+72+(g<<2)>>2]|0)+h+((c[f+140>>2]|0)+17)>>0]|0;return f|0}return 0}function Qu(b){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=c[b+468>>2]|0;p=b+224|0;q=b+412|0;f=c[q>>2]|0;e=(f|0)==0;do if(c[p>>2]|0){m=b+416|0;d=c[m>>2]|0;if(e)if(!d)n=7;else n=11;else if(((d|0)>=(f|0)?(d|0)<=(c[b+436>>2]|0):0)?(c[b+340>>2]|0)==1:0)n=7;else n=11;do if((n|0)==7){d=c[b+420>>2]|0;if(d){d=d+-1|0;if((d|0)!=(c[b+424>>2]|0)){n=11;break}}else d=c[b+424>>2]|0;if((d|0)>13)n=11}while(0);if((n|0)==11){l=c[b>>2]|0;c[l+20>>2]=17;c[l+24>>2]=f;c[(c[b>>2]|0)+28>>2]=c[m>>2];c[(c[b>>2]|0)+32>>2]=c[b+420>>2];c[(c[b>>2]|0)+36>>2]=c[b+424>>2];Sb[c[c[b>>2]>>2]&255](b)}l=b+340|0;d=c[l>>2]|0;if((d|0)>0){j=b+160|0;g=b+420|0;k=b+424|0;i=0;do{f=c[(c[b+344+(i<<2)>>2]|0)+4>>2]|0;h=c[j>>2]|0;d=c[q>>2]|0;if(d){if((c[h+(f<<8)>>2]|0)<0){d=c[b>>2]|0;c[d+20>>2]=118;c[d+24>>2]=f;c[(c[b>>2]|0)+28>>2]=0;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1);d=c[q>>2]|0}}else d=0;if((d|0)<=(c[m>>2]|0))while(1){e=h+(f<<8)+(d<<2)|0;r=c[e>>2]|0;if((c[g>>2]|0)!=(((r|0)>0?r:0)|0)){r=c[b>>2]|0;c[r+20>>2]=118;c[r+24>>2]=f;c[(c[b>>2]|0)+28>>2]=d;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1)}c[e>>2]=c[k>>2];if((d|0)<(c[m>>2]|0))d=d+1|0;else break}i=i+1|0;d=c[l>>2]|0}while((i|0)<(d|0))}else g=b+420|0;e=(c[q>>2]|0)==0;f=o+4|0;if(!(c[g>>2]|0))if(e){c[f>>2]=43;k=l;break}else{c[f>>2]=44;k=l;break}else if(e){c[f>>2]=45;k=l;break}else{c[f>>2]=46;k=l;break}}else{if((e?(c[b+420>>2]|0)==0:0)?(c[b+424>>2]|0)==0:0){r=c[b+416>>2]|0;if((r|0)<64?(r|0)!=(c[b+436>>2]|0):0)n=36}else n=36;if((n|0)==36){r=c[b>>2]|0;c[r+20>>2]=125;Ub[c[r+4>>2]&63](b,-1)}c[o+4>>2]=47;d=b+340|0;k=d;d=c[d>>2]|0}while(0);if((d|0)<=0){q=o+12|0;c[q>>2]=0;q=o+16|0;c[q>>2]=0;q=o+20|0;c[q>>2]=-16;q=b+280|0;q=c[q>>2]|0;r=o+56|0;c[r>>2]=q;return}h=b+436|0;i=b+420|0;j=b+4|0;g=0;do{f=c[b+344+(g<<2)>>2]|0;if(c[p>>2]|0)if(!(c[q>>2]|0)){if(!(c[i>>2]|0))n=43}else n=50;else n=43;do if((n|0)==43){n=0;d=c[f+20>>2]|0;if(d>>>0>15){r=c[b>>2]|0;c[r+20>>2]=50;c[r+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b)}e=o+60+(d<<2)|0;d=c[e>>2]|0;if(!d){d=Jb[c[c[j>>2]>>2]&63](b,1,64)|0;c[e>>2]=d}e=d+64|0;do{a[d>>0]=0;d=d+1|0}while((d|0)<(e|0));c[o+24+(g<<2)>>2]=0;c[o+40+(g<<2)>>2]=0;if(!(c[p>>2]|0))if(!(c[h>>2]|0))break;else{n=50;break}else if(!(c[q>>2]|0))break;else{n=50;break}}while(0);if((n|0)==50){n=0;d=c[f+24>>2]|0;if(d>>>0>15){r=c[b>>2]|0;c[r+20>>2]=50;c[r+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b)}e=o+124+(d<<2)|0;d=c[e>>2]|0;if(!d){d=Jb[c[c[j>>2]>>2]&63](b,1,256)|0;c[e>>2]=d}aP(d|0,0,256)|0}g=g+1|0}while((g|0)<(c[k>>2]|0));q=o+12|0;c[q>>2]=0;q=o+16|0;c[q>>2]=0;q=o+20|0;c[q>>2]=-16;q=b+280|0;q=c[q>>2]|0;r=o+56|0;c[r>>2]=q;return}function Ru(a){a=a|0;return}function Su(e,f){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;s=c[e+468>>2]|0;p=e+280|0;if(c[p>>2]|0){q=s+56|0;g=c[q>>2]|0;if(!g){if(!(Gb[c[(c[e+464>>2]|0)+8>>2]&127](e)|0)){r=c[e>>2]|0;c[r+20>>2]=25;Sb[c[r>>2]&255](e)}h=e+340|0;if((c[h>>2]|0)>0){i=e+224|0;j=e+412|0;k=e+436|0;l=e+420|0;g=0;do{m=c[e+344+(g<<2)>>2]|0;if(c[i>>2]|0)if(!(c[j>>2]|0)){if(!(c[l>>2]|0))t=10}else t=13;else t=10;do if((t|0)==10){t=0;n=c[s+60+(c[m+20>>2]<<2)>>2]|0;o=n+64|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));c[s+24+(g<<2)>>2]=0;c[s+40+(g<<2)>>2]=0;if(!(c[i>>2]|0))if(!(c[k>>2]|0))break;else{t=13;break}else if(!(c[j>>2]|0))break;else{t=13;break}}while(0);if((t|0)==13){t=0;aP(c[s+124+(c[m+24>>2]<<2)>>2]|0,0,256)|0}g=g+1|0}while((g|0)<(c[h>>2]|0))}c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=-16;g=c[p>>2]|0;c[q>>2]=g}c[q>>2]=g+-1}o=s+20|0;if((c[o>>2]|0)==-1)return 1;p=e+368|0;if((c[p>>2]|0)<=0)return 1;q=e+424|0;n=0;a:while(1){r=c[f+(n<<2)>>2]|0;l=c[e+372+(n<<2)>>2]|0;j=c[(c[e+344+(l<<2)>>2]|0)+20>>2]|0;h=s+60+(j<<2)|0;k=s+40+(l<<2)|0;g=(c[h>>2]|0)+(c[k>>2]|0)|0;if(!(Xu(e,g)|0)){c[k>>2]=0;g=c[s+24+(l<<2)>>2]|0}else{m=Xu(e,g+1|0)|0;i=g+2+m|0;g=Xu(e,i)|0;if(g){h=(c[h>>2]|0)+20|0;if(!(Xu(e,h)|0))i=h;else while(1){g=g<<1;if((g|0)==32768)break a;h=h+1|0;if(!(Xu(e,h)|0)){i=h;break}}}else g=0;do if((g|0)>=(1<<(d[e+232+j>>0]|0)>>1|0)){h=m<<2;if((g|0)>(1<<(d[e+248+j>>0]|0)>>1|0)){h=h+12|0;break}else{h=h+4|0;break}}else h=0;while(0);c[k>>2]=h;i=i+14|0;h=g>>1;if(h)do{k=(Xu(e,i)|0)==0;g=(k?0:h)|g;h=h>>1}while((h|0)!=0);l=s+24+(l<<2)|0;g=(c[l>>2]|0)+((m|0)==0?g+1|0:~g)|0;c[l>>2]=g}b[r>>1]=g<>2];n=n+1|0;if((n|0)>=(c[p>>2]|0)){t=37;break}}if((t|0)==37)return 1;t=c[e>>2]|0;c[t+20>>2]=117;Ub[c[t+4>>2]&63](e,-1);c[o>>2]=-1;return 1}function Tu(e,f){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;s=c[e+468>>2]|0;p=e+280|0;if(c[p>>2]|0){q=s+56|0;g=c[q>>2]|0;if(!g){if(!(Gb[c[(c[e+464>>2]|0)+8>>2]&127](e)|0)){t=c[e>>2]|0;c[t+20>>2]=25;Sb[c[t>>2]&255](e)}h=e+340|0;if((c[h>>2]|0)>0){i=e+224|0;j=e+412|0;k=e+436|0;l=e+420|0;g=0;do{m=c[e+344+(g<<2)>>2]|0;if(c[i>>2]|0)if(!(c[j>>2]|0)){if(!(c[l>>2]|0))r=10}else r=13;else r=10;do if((r|0)==10){r=0;n=c[s+60+(c[m+20>>2]<<2)>>2]|0;o=n+64|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));c[s+24+(g<<2)>>2]=0;c[s+40+(g<<2)>>2]=0;if(!(c[i>>2]|0))if(!(c[k>>2]|0))break;else{r=13;break}else if(!(c[j>>2]|0))break;else{r=13;break}}while(0);if((r|0)==13){r=0;aP(c[s+124+(c[m+24>>2]<<2)>>2]|0,0,256)|0}g=g+1|0}while((g|0)<(c[h>>2]|0))}c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=-16;g=c[p>>2]|0;c[q>>2]=g}c[q>>2]=g+-1}t=s+20|0;if((c[t>>2]|0)==-1)return 1;r=c[e+432>>2]|0;p=c[f>>2]|0;o=c[(c[e+344>>2]|0)+24>>2]|0;q=s+124+(o<<2)|0;l=s+188|0;m=e+416|0;n=e+424|0;o=e+264+o|0;h=(c[e+412>>2]|0)+-1|0;a:while(1){g=(c[q>>2]|0)+(h*3|0)|0;if(Xu(e,g)|0){r=36;break}j=h+1|0;if(!(Xu(e,g+1|0)|0)){i=g;h=j;while(1){if((h|0)>=(c[m>>2]|0)){r=23;break a}g=i+3|0;j=h+1|0;if(!(Xu(e,i+4|0)|0)){i=g;h=j}else break}}k=Xu(e,l)|0;i=g+2|0;g=Xu(e,i)|0;if(g){if(Xu(e,i)|0){g=g<<1;h=(c[q>>2]|0)+((h|0)<(d[o>>0]|0|0)?189:217)|0;if(Xu(e,h)|0)do{g=g<<1;if((g|0)==32768){r=30;break a}h=h+1|0}while((Xu(e,h)|0)!=0)}else h=i;i=h+14|0;h=g>>1;if(h)do{s=(Xu(e,i)|0)==0;g=(s?0:h)|g;h=h>>1}while((h|0)!=0)}else g=0;b[p+(c[r+(j<<2)>>2]<<1)>>1]=((k|0)==0?g+1|0:~g)<>2];if((j|0)<(c[m>>2]|0))h=j;else{r=36;break}}if((r|0)==23){s=c[e>>2]|0;c[s+20>>2]=117;Ub[c[s+4>>2]&63](e,-1);c[t>>2]=-1;return 1}else if((r|0)==30){s=c[e>>2]|0;c[s+20>>2]=117;Ub[c[s+4>>2]&63](e,-1);c[t>>2]=-1;return 1}else if((r|0)==36)return 1;return 0}function Uu(d,f){d=d|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;r=c[d+468>>2]|0;p=d+280|0;if(c[p>>2]|0){s=r+56|0;g=c[s>>2]|0;if(!g){if(!(Gb[c[(c[d+464>>2]|0)+8>>2]&127](d)|0)){o=c[d>>2]|0;c[o+20>>2]=25;Sb[c[o>>2]&255](d)}h=d+340|0;if((c[h>>2]|0)>0){i=d+224|0;j=d+412|0;k=d+436|0;l=d+420|0;g=0;do{m=c[d+344+(g<<2)>>2]|0;if(c[i>>2]|0)if(!(c[j>>2]|0)){if(!(c[l>>2]|0))q=10}else q=13;else q=10;do if((q|0)==10){q=0;n=c[r+60+(c[m+20>>2]<<2)>>2]|0;o=n+64|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));c[r+24+(g<<2)>>2]=0;c[r+40+(g<<2)>>2]=0;if(!(c[i>>2]|0))if(!(c[k>>2]|0))break;else{q=13;break}else if(!(c[j>>2]|0))break;else{q=13;break}}while(0);if((q|0)==13){q=0;aP(c[r+124+(c[m+24>>2]<<2)>>2]|0,0,256)|0}g=g+1|0}while((g|0)<(c[h>>2]|0))}c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=-16;g=c[p>>2]|0;c[s>>2]=g}c[s>>2]=g+-1}h=r+188|0;i=1<>2];j=d+368|0;if((c[j>>2]|0)<=0)return 1;g=0;do{if(Xu(d,h)|0){s=c[f+(g<<2)>>2]|0;b[s>>1]=i|(e[s>>1]|0)}g=g+1|0}while((g|0)<(c[j>>2]|0));return 1}function Vu(d,e){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;q=c[d+468>>2]|0;o=d+280|0;if(c[o>>2]|0){p=q+56|0;f=c[p>>2]|0;if(!f){if(!(Gb[c[(c[d+464>>2]|0)+8>>2]&127](d)|0)){s=c[d>>2]|0;c[s+20>>2]=25;Sb[c[s>>2]&255](d)}g=d+340|0;if((c[g>>2]|0)>0){h=d+224|0;i=d+412|0;j=d+436|0;k=d+420|0;f=0;do{l=c[d+344+(f<<2)>>2]|0;if(c[h>>2]|0)if(!(c[i>>2]|0)){if(!(c[k>>2]|0))t=10}else t=13;else t=10;do if((t|0)==10){t=0;m=c[q+60+(c[l+20>>2]<<2)>>2]|0;n=m+64|0;do{a[m>>0]=0;m=m+1|0}while((m|0)<(n|0));c[q+24+(f<<2)>>2]=0;c[q+40+(f<<2)>>2]=0;if(!(c[h>>2]|0))if(!(c[j>>2]|0))break;else{t=13;break}else if(!(c[i>>2]|0))break;else{t=13;break}}while(0);if((t|0)==13){t=0;aP(c[q+124+(c[l+24>>2]<<2)>>2]|0,0,256)|0}f=f+1|0}while((f|0)<(c[g>>2]|0))}c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=-16;f=c[o>>2]|0;c[p>>2]=f}c[p>>2]=f+-1}r=q+20|0;if((c[r>>2]|0)==-1)return 1;s=c[d+432>>2]|0;n=c[e>>2]|0;g=c[(c[d+344>>2]|0)+24>>2]|0;p=c[d+424>>2]|0;o=1<>2]|0;while(1){if(b[n+(c[s+(f<<2)>>2]<<1)>>1]|0)break;f=f+-1|0;if(!f){f=0;break}}m=q+124+(g<<2)|0;j=q+188|0;k=o&65535;l=p&65535;g=(c[d+412>>2]|0)+-1|0;a:while(1){h=(c[m>>2]|0)+(g*3|0)|0;if((g|0)>=(f|0)?Xu(d,h)|0:0){t=38;break}g=g+1|0;i=n+(c[s+(g<<2)>>2]<<1)|0;b:do if(!(b[i>>1]|0)){while(1){if(Xu(d,h+1|0)|0)break;if((g|0)>=(c[e>>2]|0)){t=35;break a}h=h+3|0;g=g+1|0;i=n+(c[s+(g<<2)>>2]<<1)|0;if(b[i>>1]|0){t=26;break b}}if(!(Xu(d,j)|0)){b[i>>1]=k;break}else{b[i>>1]=l;break}}else t=26;while(0);do if((t|0)==26){t=0;if(Xu(d,h+2|0)|0){q=b[i>>1]|0;h=q<<16>>16;if(q<<16>>16<0){b[i>>1]=p+h;break}else{b[i>>1]=o+h;break}}}while(0);if((g|0)>=(c[e>>2]|0)){t=38;break}}if((t|0)==35){t=c[d>>2]|0;c[t+20>>2]=117;Ub[c[t+4>>2]&63](d,-1);c[r>>2]=-1;return 1}else if((t|0)==38)return 1;return 0} function zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Jg(a+32|0,b);d=Ah(b)|0;d=Ng(c[d>>2]|0)|0;f=Ah(b)|0;f=Og(c[f>>2]|0)|0;e=Pg(b)|0;uj(a+92|0,d,f,e,Qg(b)|0,36,3.0,1.5,5,.800000011920929);e=Ah(b)|0;e=Ng(c[e>>2]|0)|0;c[a>>2]=e;e=Ah(b)|0;e=Og(c[e>>2]|0)|0;c[a+4>>2]=e;e=a+16|0;Bh(e,c[a+8>>2]|0);f=a+20|0;a=a+12|0;b=0;while(1){d=c[e>>2]|0;if(b>>>0>=(((c[f>>2]|0)-d|0)/12|0)>>>0)break;Ch(d+(b*12|0)|0,c[a>>2]|0);b=b+1|0}return}function Ah(a){a=a|0;return a+4|0}function Bh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c[a>>2]|0;e=(d-f|0)/12|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0){a=f+(b*12|0)|0;while(1){if((d|0)==(a|0))break;f=d+-12|0;kh(f);d=f}c[g>>2]=a}}else Kh(a,b-e|0);return}function Ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c[a>>2]|0;e=(d-f|0)/12|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0){a=f+(b*12|0)|0;while(1){if((d|0)==(a|0))break;f=d+-12|0;lh(f);d=f}c[g>>2]=a}}else Dh(a,b-e|0);return}function Dh(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((((c[g>>2]|0)-d|0)/12|0)>>>0>>0){d=((d-(c[a>>2]|0)|0)/12|0)+b|0;e=Fh(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=((c[g>>2]|0)-j|0)/12|0;g=k<<1;Gh(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,((c[h>>2]|0)-j|0)/12|0,a+8|0);Hh(f,b);Ih(a,f);Jh(f);break}}else Eh(a,b);while(0);zb=i;return}function Eh(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b*12|0)|0;c[a>>2]=d+(b*12|0);return}function Fh(a){a=a|0;return 357913941}function Gh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>357913941){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*12|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*12|0);return}function Hh(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b*12|0)|0;c[a>>2]=d+(b*12|0);return}function Ih(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;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-12|0;h=d+-12|0;c[i>>2]=0;j=k+-8|0;c[j>>2]=0;k=k+-4|0;c[k>>2]=0;c[i>>2]=c[h>>2];i=d+-8|0;c[j>>2]=c[i>>2];j=d+-4|0;c[k>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-12;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;k=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=k;i=a+8|0;k=b+12|0;j=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=j;c[b>>2]=c[g>>2];return}function Jh(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-12|0;c[d>>2]=e;lh(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function Kh(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((((c[g>>2]|0)-d|0)/12|0)>>>0>>0){d=((d-(c[a>>2]|0)|0)/12|0)+b|0;e=Mh(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=((c[g>>2]|0)-j|0)/12|0;g=k<<1;Nh(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,((c[h>>2]|0)-j|0)/12|0,a+8|0);Oh(f,b);Ph(a,f);Qh(f);break}}else Lh(a,b);while(0);zb=i;return}function Lh(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b*12|0)|0;c[a>>2]=d+(b*12|0);return}function Mh(a){a=a|0;return 357913941}function Nh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>357913941){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*12|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*12|0);return}function Oh(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b*12|0)|0;c[a>>2]=d+(b*12|0);return}function Ph(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;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-12|0;h=d+-12|0;c[i>>2]=0;j=k+-8|0;c[j>>2]=0;k=k+-4|0;c[k>>2]=0;c[i>>2]=c[h>>2];i=d+-8|0;c[j>>2]=c[i>>2];j=d+-4|0;c[k>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-12;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;k=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=k;i=a+8|0;k=b+12|0;j=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=j;c[b>>2]=c[g>>2];return}function Qh(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-12|0;c[d>>2]=e;kh(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function Rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=zb;zb=zb+32|0;d=e;if((Pg(b)|0)<=0){f=Xf(Xf(PE(Xf(Xf(Xf(56032,22918)|0,22676)|0,35e3)|0,147)|0,35007)|0,22967)|0;IE(d,f+(c[(c[f>>2]|0)+-12>>2]|0)|0);g=XF(d,56736)|0;g=Ib[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;YF(d);QE(f,g)|0;ME(f)|0;ua()}Bq(d,23866);if(Sh(d)|0)Zg(a+32|0,b);Cq(d);Bq(d,23878);if(Sh(d)|0)Th(a,b,a+32|0);Cq(d);Bq(d,23898);if(Sh(d)|0)Uh(a,b);Cq(d);Bq(d,23907);if(Sh(d)|0)Vh(a);Cq(d);Bq(d,23921);if(Sh(d)|0)Wh(a,b);Cq(d);zb=e;return}function Sh(a){a=a|0;return 1}function Th(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0,ha=0,ia=0.0;ha=zb;zb=zb+48|0;aa=ha;ca=a+60|0;da=a+64|0;c[da>>2]=c[ca>>2];fa=+ji(+f[a+52>>2]);V=a+32|0;W=aa+12|0;Y=aa+16|0;Z=aa+24|0;_=aa+28|0;$=aa+4|0;F=a+68|0;G=aa+12|0;H=aa+16|0;I=aa+24|0;J=aa+28|0;K=aa+4|0;L=aa+12|0;M=aa+16|0;N=aa+24|0;O=aa+28|0;P=aa+4|0;a=1;a:while(1){if(a>>>0>=((Ki(V)|0)+-1|0)>>>0){ga=3;break}Q=Li(d,a+-1|0)|0;R=Li(d,a)|0;S=a+1|0;T=Li(d,S)|0;U=Mi(d,a)|0;E=Ni(d,a)|0;D=Ng(Q)|0;b:do if((D|0)==(Ng(R)|0)?(D=Ng(Q)|0,(D|0)==(Ng(T)|0)):0){D=Og(Q)|0;if((D|0)!=(Og(R)|0)){ga=7;break a}D=Og(Q)|0;if((D|0)!=(Og(T)|0)){ga=9;break a}k=(Ng(R)|0)+-1|0;l=(Og(R)|0)+-1|0;m=+(E|0);a=1;while(1){if(a>>>0>=l>>>0)break b;v=a+-1|0;n=ch(Q,v)|0;o=ch(Q,a)|0;p=a+1|0;q=ch(Q,p)|0;r=ch(R,v)|0;t=ch(R,a)|0;u=ch(R,p)|0;v=ch(T,v)|0;w=ch(T,a)|0;x=ch(T,p)|0;j=+(a>>>0);i=1;while(1){if(i>>>0>=k>>>0)break;a=t+(i<<2)|0;do if(!(+ji(+f[a>>2])>2];h=i+-1|0;e=+f[n+(h<<2)>>2];do if(((((g>e?g>+f[n+(i<<2)>>2]:0)?(X=i+1|0,g>+f[n+(X<<2)>>2]):0)?g>+f[o+(h<<2)>>2]:0)?g>+f[o+(i<<2)>>2]:0)?g>+f[o+(X<<2)>>2]:0){if(!(g>+f[q+(h<<2)>>2])){ga=42;break}if(!(g>+f[q+(i<<2)>>2])){ga=42;break}if(!(g>+f[q+(X<<2)>>2])){ga=42;break}if(!(g>+f[r+(h<<2)>>2])){ga=42;break}if(!(g>+f[r+(i<<2)>>2])){ga=42;break}if(!(g>+f[r+(X<<2)>>2])){ga=42;break}if(!(g>+f[t+(h<<2)>>2])){ga=42;break}if(!(g>+f[t+(X<<2)>>2])){ga=42;break}if(!(g>+f[u+(h<<2)>>2])){ga=42;break}if(!(g>+f[u+(i<<2)>>2])){ga=42;break}if(!(g>+f[u+(X<<2)>>2])){ga=42;break}if(!(g>+f[v+(h<<2)>>2])){ga=42;break}if(!(g>+f[v+(i<<2)>>2])){ga=42;break}if(!(g>+f[v+(X<<2)>>2])){ga=42;break}if(!(g>+f[w+(h<<2)>>2])){ga=42;break}if(!(g>+f[w+(i<<2)>>2])){ga=42;break}if(!(g>+f[w+(X<<2)>>2])){ga=42;break}if(!(g>+f[x+(h<<2)>>2])){ga=42;break}if(!(g>+f[x+(i<<2)>>2])){ga=42;break}if(!(g>+f[x+(X<<2)>>2]))ga=42}else ga=42;while(0);if((ga|0)==42){ga=0;if(!(g>2]))break;a=i+1|0;if(!(g<+f[n+(a<<2)>>2]))break;if(!(g<+f[o+(h<<2)>>2]))break;if(!(g<+f[o+(i<<2)>>2]))break;if(!(g<+f[o+(a<<2)>>2]))break;if(!(g<+f[q+(h<<2)>>2]))break;if(!(g<+f[q+(i<<2)>>2]))break;if(!(g<+f[q+(a<<2)>>2]))break;if(!(g<+f[r+(h<<2)>>2]))break;if(!(g<+f[r+(i<<2)>>2]))break;if(!(g<+f[r+(a<<2)>>2]))break;if(!(g<+f[t+(h<<2)>>2]))break;if(!(g<+f[t+(a<<2)>>2]))break;if(!(g<+f[u+(h<<2)>>2]))break;if(!(g<+f[u+(i<<2)>>2]))break;if(!(g<+f[u+(a<<2)>>2]))break;if(!(g<+f[v+(h<<2)>>2]))break;if(!(g<+f[v+(i<<2)>>2]))break;if(!(g<+f[v+(a<<2)>>2]))break;if(!(g<+f[w+(h<<2)>>2]))break;if(!(g<+f[w+(i<<2)>>2]))break;if(!(g<+f[w+(a<<2)>>2]))break;if(!(g<+f[x+(h<<2)>>2]))break;if(!(g<+f[x+(i<<2)>>2]))break;if(!(g<+f[x+(a<<2)>>2]))break}c[W>>2]=U;c[Y>>2]=E;f[Z>>2]=g;C=+si(b,U,m);f[_>>2]=C;ri(aa,$,+(i>>>0),j,U);a=c[da>>2]|0;if((a|0)==(c[F>>2]|0)){_h(ca,aa);break}else{h=aa;D=a+36|0;do{c[a>>2]=c[h>>2];a=a+4|0;h=h+4|0}while((a|0)<(D|0));c[da>>2]=(c[da>>2]|0)+36;break}}while(0);i=i+1|0}a=p}}else ga=72;while(0);c:do if((ga|0)==72){ga=0;D=Ng(Q)|0;if((D|0)==(Ng(R)|0)?(D=(Ng(R)|0)>>>1,(D|0)==(Ng(T)|0)):0){D=Og(Q)|0;if((D|0)!=(Og(R)|0)){ga=75;break a}D=(Og(R)|0)>>>1;if((D|0)!=(Og(T)|0)){ga=77;break a}l=~~+s(+((+(((Ng(T)|0)+-1|0)>>>0)+-.5)*2.0+.5))>>>0;n=~~+s(+((+(((Og(T)|0)+-1|0)>>>0)+-.5)*2.0+.5))>>>0;C=+(E|0);a=2;while(1){if(a>>>0>=n>>>0)break c;t=a+-1|0;o=ch(Q,t)|0;p=ch(Q,a)|0;q=a+1|0;r=ch(Q,q)|0;t=ch(R,t)|0;u=ch(R,a)|0;v=ch(R,q)|0;y=+(a>>>0);z=y*.5+-.25;A=z+-.5;B=z+.5;k=2;while(1){if(k>>>0>=l>>>0)break;i=u+(k<<2)|0;do if(!(+ji(+f[i>>2])>>0);m=j*.5+-.25;e=+f[i>>2];h=k+-1|0;a=o+(h<<2)|0;do if(((e>+f[a>>2]?e>+f[o+(k<<2)>>2]:0)?(ba=k+1|0,e>+f[o+(ba<<2)>>2]):0)?e>+f[p+(h<<2)>>2]:0){if(!(e>+f[p+(k<<2)>>2])){ga=110;break}if(!(e>+f[p+(ba<<2)>>2])){ga=110;break}if(!(e>+f[r+(h<<2)>>2])){ga=110;break}if(!(e>+f[r+(k<<2)>>2])){ga=110;break}if(!(e>+f[r+(ba<<2)>>2])){ga=110;break}if(!(e>+f[t+(h<<2)>>2])){ga=110;break}if(!(e>+f[t+(k<<2)>>2])){ga=110;break}if(!(e>+f[t+(ba<<2)>>2])){ga=110;break}if(!(e>+f[u+(h<<2)>>2])){ga=110;break}if(!(e>+f[u+(ba<<2)>>2])){ga=110;break}if(!(e>+f[v+(h<<2)>>2])){ga=110;break}if(!(e>+f[v+(k<<2)>>2])){ga=110;break}if(!(e>+f[v+(ba<<2)>>2])){ga=110;break}g=m+-.5;if(!(e>+Ci(T,g,A))){ga=110;break}e=+f[i>>2];if(!(e>+Ci(T,m,A))){ga=110;break}ia=+f[i>>2];e=m+.5;if(!(ia>+Ci(T,e,A))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,g,z))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,m,z))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,e,z))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,g,B))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,m,B))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,e,B)))ga=110}else ga=110;while(0);if((ga|0)==110){ga=0;e=+f[i>>2];if(!(e<+f[a>>2]))break;if(!(e<+f[o+(k<<2)>>2]))break;a=k+1|0;if(!(e<+f[o+(a<<2)>>2]))break;if(!(e<+f[p+(h<<2)>>2]))break;if(!(e<+f[p+(k<<2)>>2]))break;if(!(e<+f[p+(a<<2)>>2]))break;if(!(e<+f[r+(h<<2)>>2]))break;if(!(e<+f[r+(k<<2)>>2]))break;if(!(e<+f[r+(a<<2)>>2]))break;if(!(e<+f[t+(h<<2)>>2]))break;if(!(e<+f[t+(k<<2)>>2]))break;if(!(e<+f[t+(a<<2)>>2]))break;if(!(e<+f[u+(h<<2)>>2]))break;if(!(e<+f[u+(a<<2)>>2]))break;if(!(e<+f[v+(h<<2)>>2]))break;if(!(e<+f[v+(k<<2)>>2]))break;if(!(e<+f[v+(a<<2)>>2]))break;g=m+-.5;if(!(e<+Ci(T,g,A)))break;ia=+f[i>>2];if(!(ia<+Ci(T,m,A)))break;ia=+f[i>>2];e=m+.5;if(!(ia<+Ci(T,e,A)))break;ia=+f[i>>2];if(!(ia<+Ci(T,g,z)))break;ia=+f[i>>2];if(!(ia<+Ci(T,m,z)))break;ia=+f[i>>2];if(!(ia<+Ci(T,e,z)))break;ia=+f[i>>2];if(!(ia<+Ci(T,g,B)))break;ia=+f[i>>2];if(!(ia<+Ci(T,m,B)))break;ia=+f[i>>2];if(!(ia<+Ci(T,e,B)))break}c[G>>2]=U;c[H>>2]=E;c[I>>2]=c[i>>2];ia=+si(b,U,C);f[J>>2]=ia;ri(aa,K,j,y,U);a=c[da>>2]|0;if((a|0)==(c[F>>2]|0)){_h(ca,aa);break}else{h=aa;D=a+36|0;do{c[a>>2]=c[h>>2];a=a+4|0;h=h+4|0}while((a|0)<(D|0));c[da>>2]=(c[da>>2]|0)+36;break}}while(0);k=k+1|0}a=q}}D=(Ng(Q)|0)>>>1;if((D|0)==(Ng(R)|0)?(D=(Ng(Q)|0)>>>1,(D|0)==(Ng(T)|0)):0){D=(Og(Q)|0)>>>1;if((D|0)!=(Og(R)|0)){ga=144;break a}D=(Og(Q)|0)>>>1;if((D|0)!=(Og(T)|0)){ga=146;break a}l=(Ng(R)|0)+-1|0;n=(Og(R)|0)+-1|0;A=+(E|0);a=1;while(1){if(a>>>0>=n>>>0)break c;t=a+-1|0;o=ch(R,t)|0;p=ch(R,a)|0;q=a+1|0;r=ch(R,q)|0;t=ch(T,t)|0;u=ch(T,a)|0;v=ch(T,q)|0;B=+(a<<1>>>0)+.5;m=+(a>>>0);y=B+-2.0;z=B+2.0;k=1;while(1){if(k>>>0>=l>>>0)break;i=p+(k<<2)|0;do if(!(+ji(+f[i>>2])>>0)+.5;e=+f[i>>2];h=k+-1|0;a=o+(h<<2)|0;do if(((e>+f[a>>2]?e>+f[o+(k<<2)>>2]:0)?(ea=k+1|0,e>+f[o+(ea<<2)>>2]):0)?e>+f[p+(h<<2)>>2]:0){if(!(e>+f[p+(ea<<2)>>2])){ga=179;break}if(!(e>+f[r+(h<<2)>>2])){ga=179;break}if(!(e>+f[r+(k<<2)>>2])){ga=179;break}if(!(e>+f[r+(ea<<2)>>2])){ga=179;break}if(!(e>+f[t+(h<<2)>>2])){ga=179;break}if(!(e>+f[t+(k<<2)>>2])){ga=179;break}if(!(e>+f[t+(ea<<2)>>2])){ga=179;break}if(!(e>+f[u+(h<<2)>>2])){ga=179;break}if(!(e>+f[u+(k<<2)>>2])){ga=179;break}if(!(e>+f[u+(ea<<2)>>2])){ga=179;break}if(!(e>+f[v+(h<<2)>>2])){ga=179;break}if(!(e>+f[v+(k<<2)>>2])){ga=179;break}if(!(e>+f[v+(ea<<2)>>2])){ga=179;break}g=j+-2.0;if(!(e>+Ci(Q,g,y))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,j,y))){ga=179;break}ia=+f[i>>2];e=j+2.0;if(!(ia>+Ci(Q,e,y))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,g,B))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,j,B))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,e,B))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,g,z))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,j,z))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,e,z)))ga=179}else ga=179;while(0);if((ga|0)==179){ga=0;e=+f[i>>2];if(!(e<+f[a>>2]))break;if(!(e<+f[o+(k<<2)>>2]))break;a=k+1|0;if(!(e<+f[o+(a<<2)>>2]))break;if(!(e<+f[p+(h<<2)>>2]))break;if(!(e<+f[p+(a<<2)>>2]))break;if(!(e<+f[r+(h<<2)>>2]))break;if(!(e<+f[r+(k<<2)>>2]))break;if(!(e<+f[r+(a<<2)>>2]))break;if(!(e<+f[t+(h<<2)>>2]))break;if(!(e<+f[t+(k<<2)>>2]))break;if(!(e<+f[t+(a<<2)>>2]))break;if(!(e<+f[u+(h<<2)>>2]))break;if(!(e<+f[u+(k<<2)>>2]))break;if(!(e<+f[u+(a<<2)>>2]))break;if(!(e<+f[v+(h<<2)>>2]))break;if(!(e<+f[v+(k<<2)>>2]))break;if(!(e<+f[v+(a<<2)>>2]))break;g=j+-2.0;if(!(e<+Ci(Q,g,y)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,j,y)))break;ia=+f[i>>2];e=j+2.0;if(!(ia<+Ci(Q,e,y)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,g,B)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,j,B)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,e,B)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,g,z)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,j,z)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,e,z)))break}c[L>>2]=U;c[M>>2]=E;c[N>>2]=c[i>>2];ia=+si(b,U,A);f[O>>2]=ia;ri(aa,P,+(k>>>0),m,U);a=c[da>>2]|0;if((a|0)==(c[F>>2]|0)){_h(ca,aa);break}else{h=aa;D=a+36|0;do{c[a>>2]=c[h>>2];a=a+4|0;h=h+4|0}while((a|0)<(D|0));c[da>>2]=(c[da>>2]|0)+36;break}}while(0);k=k+1|0}a=q}}}while(0);a=S}if((ga|0)==3){zb=ha;return}else if((ga|0)==7){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26651)|0,22676)|0,35e3)|0,192)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==9){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26726)|0,22676)|0,35e3)|0,193)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==75){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26651)|0,22676)|0,35e3)|0,277)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==77){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26778)|0,22676)|0,35e3)|0,278)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==144){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26835)|0,22676)|0,35e3)|0,362)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==146){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26892)|0,22676)|0,35e3)|0,363)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}}function Uh(a,b){a=a|0;b=b|0;var d=0,e=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.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0.0;J=zb;zb=zb+80|0;I=J+68|0;A=J;C=J+56|0;D=J+44|0;E=J+40|0;F=J+36|0;s=+ji(+f[a+52>>2]);H=a+56|0;w=+ji(+f[H>>2]+1.0);w=w/+f[H>>2];H=a+60|0;x=a+64|0;y=a+32|0;z=D+4|0;o=a+88|0;p=C+4|0;q=C+8|0;r=D+8|0;m=0;n=0;while(1){l=c[H>>2]|0;i=l;if(n>>>0>=(((c[x>>2]|0)-l|0)/36|0)>>>0){a=3;break}d=i+(n*36|0)|0;a=i+(n*36|0)+16|0;l=c[a>>2]|0;if((l|0)>=(li(y)|0)){a=5;break}j=i+(n*36|0)+12|0;l=c[j>>2]|0;l=B(li(y)|0,l)|0;l=l+(c[a>>2]|0)|0;k=i+(n*36|0)+4|0;mi(E,F,+f[d>>2],+f[k>>2],c[j>>2]|0);e=~~(+f[E>>2]+.5);g=~~(+f[F>>2]+.5);L=ni(y)|0;L=(c[L>>2]|0)+(l+-1<<5)|0;h=ni(y)|0;h=(c[h>>2]|0)+(l<<5)|0;K=ni(y)|0;if(((oi(A,C,L,h,(c[K>>2]|0)+(l+1<<5)|0,e,g)|0?pi(D,A,C)|0:0)?(M=+ji(+f[D>>2]),M=M+ +ji(+f[z>>2]),!(M>+f[o>>2])):0)?(G=i+(n*36|0)+32|0,qi(G,A)|0):0){l=i+(n*36|0)+24|0;M=+f[l>>2];L=(ch(h,g)|0)+(e<<2)|0;if(!(M==+f[L>>2])){a=11;break}L=(ch(h,g)|0)+(e<<2)|0;N=+f[D>>2];M=+f[z>>2];f[l>>2]=+f[L>>2]-(+f[C>>2]*N+ +f[p>>2]*M+ +f[q>>2]*+f[r>>2]);ri(d,k,N+ +f[E>>2],M+ +f[F>>2],c[j>>2]|0);M=+f[r>>2]+ +(c[a>>2]|0);a=i+(n*36|0)+20|0;f[a>>2]=M;M=+Zh(M,0.0,+(li(y)|0));f[a>>2]=M;if(((((+t(+(+f[G>>2]))>2])>=s:0)?(u=+f[d>>2],u>=0.0):0)?(L=ni(y)|0,u<+((Ng(c[L>>2]|0)|0)>>>0)):0)?(v=+f[k>>2],v>=0.0):0)?(L=ni(y)|0,v<+((Og(c[L>>2]|0)|0)>>>0)):0){N=+si(b,c[j>>2]|0,+f[a>>2]);f[i+(n*36|0)+28>>2]=N;a=m+1|0;g=(c[H>>2]|0)+(m*36|0)|0;e=g+36|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(e|0))}else a=m}else a=m;m=a;n=n+1|0}if((a|0)==3){ki(H,m);zb=J;return}else if((a|0)==5){L=Xf(Xf(PE(Xf(Xf(Xf(56032,24248)|0,22676)|0,35e3)|0,489)|0,35007)|0,24320)|0;IE(I,L+(c[(c[L>>2]|0)+-12>>2]|0)|0);K=XF(I,56736)|0;K=Ib[c[(c[K>>2]|0)+28>>2]&63](K,10)|0;YF(I);QE(L,K)|0;ME(L)|0;ua()}else if((a|0)==11){L=Xf(Xf(PE(Xf(Xf(Xf(56032,24357)|0,22676)|0,35e3)|0,526)|0,35007)|0,24414)|0;IE(I,L+(c[(c[L>>2]|0)+-12>>2]|0)|0);K=XF(I,56736)|0;K=Ib[c[(c[K>>2]|0)+28>>2]&63](K,10)|0;YF(I);QE(L,K)|0;ME(L)|0;ua()}}function Vh(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;l=zb;zb=zb+16|0;d=l+12|0;h=l;i=a+60|0;j=a+64|0;k=a+84|0;e=c[k>>2]|0;do if((((c[j>>2]|0)-(c[i>>2]|0)|0)/36|0)>>>0>e>>>0){f=a+16|0;b=c[f>>2]|0;g=((c[a+20>>2]|0)-b|0)/12|0;if((g|0)!=(c[a+8>>2]|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,23939)|0,22676)|0,35e3)|0,454)|0,35007)|0,23994)|0;IE(d,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);n=XF(d,56736)|0;n=Ib[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;YF(d);QE(m,n)|0;ME(m)|0;ua()}b=((c[b+4>>2]|0)-(c[b>>2]|0)|0)/12|0;if((b|0)!=(c[a+12>>2]|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,24020)|0,22676)|0,35e3)|0,455)|0,35007)|0,23994)|0;IE(d,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(d,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(d);QE(n,m)|0;ME(n)|0;ua()}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;ai(f,h,i,g,b,c[a>>2]|0,c[a+4>>2]|0,e);Xh(i,h);if((((c[j>>2]|0)-(c[i>>2]|0)|0)/36|0)>>>0>(c[k>>2]|0)>>>0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,24078)|0,22676)|0,35e3)|0,469)|0,35007)|0,24147)|0;IE(d,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(d,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(d);QE(n,m)|0;ME(n)|0;ua()}else{hh(h);break}}while(0);zb=l;return}function Wh(b,d){b=b|0;d=d|0;var e=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.0;w=zb;zb=zb+64|0;l=w+48|0;s=w+44|0;t=w+40|0;u=w+36|0;v=w;a:do if(!(a[b+28>>0]|0)){g=c[b+60>>2]|0;e=((c[b+64>>2]|0)-g|0)/36|0;b=0;while(1){if((b|0)==(e|0))break a;f[g+(b*36|0)+8>>2]=0.0;b=b+1|0}}else{k=b+72|0;m=b+76|0;c[m>>2]=c[k>>2];n=b+60|0;o=b+64|0;uh(k,(c[o>>2]|0)-(c[n>>2]|0)|0);p=b+92|0;vj(p,d);q=b+144|0;r=v+8|0;j=b+80|0;i=0;while(1){h=c[n>>2]|0;b=h;if(i>>>0>=(((c[o>>2]|0)-h|0)/36|0)>>>0)break;Yh(s,t,u,+f[b+(i*36|0)>>2],+f[b+(i*36|0)+4>>2],+f[b+(i*36|0)+28>>2],c[b+(i*36|0)+12>>2]|0);x=+f[s>>2];x=+Zh(x,0.0,+(((Ng(Lg(d,c[(c[n>>2]|0)+(i*36|0)+12>>2]|0,0)|0)|0)+-1|0)>>>0));f[s>>2]=x;x=+f[t>>2];x=+Zh(x,0.0,+(((Og(Lg(d,c[(c[n>>2]|0)+(i*36|0)+12>>2]|0,0)|0)|0)+-1|0)>>>0));f[t>>2]=x;h=c[n>>2]|0;yj(p,c[q>>2]|0,l,c[h+(i*36|0)+12>>2]|0,c[h+(i*36|0)+16>>2]|0,+f[s>>2],x,+f[u>>2]);h=0;while(1){if((h|0)>=(c[l>>2]|0))break;b=v;e=(c[n>>2]|0)+(i*36|0)|0;g=b+36|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(g|0));c[r>>2]=c[(c[q>>2]|0)+(h<<2)>>2];b=c[m>>2]|0;if((b|0)==(c[j>>2]|0))_h(k,v);else{e=v;g=b+36|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(g|0));c[m>>2]=(c[m>>2]|0)+36}h=h+1|0}i=i+1|0}Xh(n,k)}while(0);zb=w;return}function Xh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;b=b+8|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function Yh(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=+d;e=+e;g=+g;h=h|0;var i=0.0,j=0.0;i=1.0/+(1<>2]=i*d+j;f[b>>2]=i*e+j;f[c>>2]=i*g;return}function Zh(a,b,c){a=+a;b=+b;c=+c;if(!(ac)a=c}else a=b;return +a}function _h(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;j=zb;zb=zb+32|0;i=j;d=a+4|0;e=(((c[d>>2]|0)-(c[a>>2]|0)|0)/36|0)+1|0;f=$h(a)|0;if(f>>>0>>0)EO(a);else{g=c[a>>2]|0;k=((c[a+8>>2]|0)-g|0)/36|0;h=k<<1;vh(i,k>>>0>>1>>>0?(h>>>0>>0?e:h):f,((c[d>>2]|0)-g|0)/36|0,a+8|0);f=i+8|0;g=c[f>>2]|0;h=g;d=b;e=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));c[f>>2]=g+36;wh(a,i);xh(i);zb=j;return}}function $h(a){a=a|0;return 119304647}function ai(a,b,d,e,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,C=0,D=0,E=0.0;D=zb;zb=zb+48|0;C=D+8|0;v=D+32|0;u=D+28|0;y=D+24|0;z=D+20|0;w=D+16|0;x=D;o=B(g,e)|0;n=+A(+(+(h|0)/+(e|0)));m=+A(+(+(i|0)/+(g|0)));r=b+4|0;c[r>>2]=c[b>>2];uh(b,j);s=a+4|0;g=c[a>>2]|0;i=((c[s>>2]|0)-g|0)/12|0;e=0;while(1){if((e|0)==(i|0))break;l=c[g+(e*12|0)>>2]|0;k=((c[g+(e*12|0)+4>>2]|0)-l|0)/12|0;h=0;while(1){if((h|0)==(k|0))break;c[l+(h*12|0)+4>>2]=c[l+(h*12|0)>>2];h=h+1|0}e=e+1|0}q=(j|0)/(o|0)|0;o=d+4|0;n=+(~~n|0);m=+(~~m|0);g=C+4|0;l=0;while(1){p=c[d>>2]|0;e=p;if(l>>>0>=(((c[o>>2]|0)-p|0)/36|0)>>>0)break;i=~~(+f[e+(l*36|0)+4>>2]/m);k=c[(c[a>>2]|0)+(~~(+f[e+(l*36|0)>>2]/n)*12|0)>>2]|0;E=+t(+(+f[e+(l*36|0)+24>>2]));f[C>>2]=E;c[g>>2]=l;e=k+(i*12|0)+4|0;h=c[e>>2]|0;if(h>>>0<(c[k+(i*12|0)+8>>2]|0)>>>0){k=C;j=c[k+4>>2]|0;p=h;c[p>>2]=c[k>>2];c[p+4>>2]=j;c[e>>2]=(c[e>>2]|0)+8}else bi(k+(i*12|0)|0,C);l=l+1|0}p=b+8|0;e=c[a>>2]|0;g=e;j=0;h=g;a:while(1){if(j>>>0>=(((c[s>>2]|0)-e|0)/12|0)>>>0){e=16;break}o=0;i=g;while(1){l=c[i+(j*12|0)>>2]|0;e=l;if(o>>>0>=(((c[i+(j*12|0)+4>>2]|0)-l|0)/12|0)>>>0)break;l=e+(o*12|0)|0;e=e+(o*12|0)+4|0;g=c[e>>2]|0;i=c[l>>2]|0;k=g-i>>3;k=q>>>0>>0?q:k;if(!k)e=h;else{c[y>>2]=i;c[z>>2]=i+(k<<3);c[w>>2]=g;c[u>>2]=c[y>>2];c[v>>2]=c[z>>2];c[C>>2]=c[w>>2];ci(u,v,C,x);g=c[l>>2]|0;i=g;if(k>>>0>(c[e>>2]|0)-g>>3>>>0?!(+f[i>>2]>=+f[i+(k<<3)>>2]):0){e=23;break a}i=0;while(1){if(i>>>0>=k>>>0)break;h=(c[d>>2]|0)+((c[(c[l>>2]|0)+(i<<3)+4>>2]|0)*36|0)|0;e=c[r>>2]|0;if((e|0)==(c[p>>2]|0))_h(b,h);else{g=e+36|0;do{c[e>>2]=c[h>>2];e=e+4|0;h=h+4|0}while((e|0)<(g|0));c[r>>2]=(c[r>>2]|0)+36}i=i+1|0}e=c[a>>2]|0}o=o+1|0;h=e;i=e}j=j+1|0;g=i;e=i}if((e|0)==16){zb=D;return}else if((e|0)==23){D=Xf(Xf(PE(Xf(Xf(Xf(56032,24171)|0,22676)|0,35e3)|0,661)|0,35007)|0,24229)|0;IE(C,D+(c[(c[D>>2]|0)+-12>>2]|0)|0);z=XF(C,56736)|0;z=Ib[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;YF(C);QE(D,z)|0;ME(D)|0;ua()}}function bi(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=fi(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;gi(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;hi(a,d);ii(d);zb=h;return}}function ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0,l=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,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;K=zb;zb=zb+48|0;y=K+40|0;x=K+36|0;w=K+32|0;C=K+28|0;D=K+24|0;E=K+20|0;G=K+16|0;H=K+12|0;I=K+8|0;z=K+4|0;A=K;v=c[b>>2]|0;a:while(1){u=c[d>>2]|0;n=u;t=u+-8|0;q=t;s=u+-4|0;if((v|0)==(u|0))break;r=c[a>>2]|0;k=r;b:while(1){b=n-k|0;g=b>>3;switch(g|0){case 1:case 0:break a;case 2:{J=5;break a}case 3:{J=10;break a}default:{}}if((b|0)<64){J=12;break a}g=g>>>1;p=r+(g<<3)|0;c[I>>2]=k;c[z>>2]=p;c[A>>2]=q;c[w>>2]=c[I>>2];c[x>>2]=c[z>>2];c[y>>2]=c[A>>2];b=di(w,x,y,e)|0;l=k;j=+f[p>>2];i=+f[l>>2];if(j>2]|0)>>>0<(c[l+4>>2]|0)>>>0:0){J=53;break}g=t;while(1){m=g+-8|0;if((m|0)==(l|0))break;i=+f[m>>2];if(j>2]|0,(c[h>>2]|0)>>>0>>0):0){J=51;break b}g=m}h=l+8|0;b=h;o=+f[t>>2];j=+f[r>>2];do if(!(o>2]|0)>>>0<(c[g>>2]|0)>>>0)break}else g=r+4|0;while(1){if((h|0)==(t|0))break a;i=+f[h>>2];if(i>2]|0,F>>>0<(c[g>>2]|0)>>>0):0){J=28;break}h=h+8|0}if((J|0)==25){J=0;g=h+4|0;b=g;g=c[g>>2]|0}else if((J|0)==28){J=0;b=h+4|0;g=F}f[h>>2]=o;f[t>>2]=i;c[b>>2]=c[s>>2];c[s>>2]=g;b=h+8|0}while(0);if((t|0)==(b|0))break a;l=r+4|0;g=q;while(1){j=+f[r>>2];k=b;while(1){b=k;i=+f[b>>2];if(i>2]|0)>>>0<(c[l>>2]|0)>>>0:0)break;k=b+8|0}h=k;while(1){b=g+-8|0;i=+f[b>>2];if(!(i>2]|0)>>>0>=(c[l>>2]|0)>>>0)break}g=b}if(b>>>0<=h>>>0)break;m=c[k>>2]|0;f[k>>2]=i;c[b>>2]=m;m=h+4|0;g=g+-4|0;p=c[m>>2]|0;c[m>>2]=c[g>>2];c[g>>2]=p;g=b;b=h+8|0}b=k;if(v>>>0>>0)break a;c[a>>2]=k;r=b}if((J|0)==47){h=g+-4|0;g=h;h=c[h>>2]|0;J=52}else if((J|0)==51){g=g+-4|0;h=B;J=52}else if((J|0)==53){J=0;h=t;s=k}if((J|0)==52){J=0;s=k;r=c[k>>2]|0;f[k>>2]=i;c[m>>2]=r;r=s+4|0;t=c[r>>2]|0;c[r>>2]=h;c[g>>2]=t;b=b+1|0;h=m}g=s+8|0;k=g;if(g>>>0>>0){q=p;g=k;while(1){p=q;n=p+4|0;j=+f[p>>2];while(1){k=g;i=+f[k>>2];if(!(j>2]|0)>>>0>=(c[k+4>>2]|0)>>>0)break}g=k+8|0}m=g;while(1){l=h+-8|0;i=+f[l>>2];if(j>2]|0)>>>0<(c[h+-4>>2]|0)>>>0:0)break;h=l}k=l;if(l>>>0<=m>>>0)break;t=c[g>>2]|0;f[g>>2]=i;c[l>>2]=t;t=m+4|0;h=h+-4|0;g=c[t>>2]|0;c[t>>2]=c[h>>2];c[h>>2]=g;b=b+1|0;h=k;q=(p|0)==(m|0)?k:q;g=m+8|0}r=g;p=q;k=g}else r=g;n=k;do if((p|0)!=(r|0)){i=+f[r>>2];j=+f[p>>2];if(!(i>2]|0;g=p+4|0;m=c[g>>2]|0;if(h>>>0>=m>>>0)break}else{h=r+4|0;m=p+4|0;g=m;l=h;m=c[m>>2]|0;h=c[h>>2]|0}t=c[k>>2]|0;f[k>>2]=j;c[p>>2]=t;c[l>>2]=m;c[g>>2]=h;b=b+1|0}while(0);if((v|0)==(r|0))break;c:do if(!b)if(v>>>0>>0){b=s;while(1){g=b+8|0;if((g|0)==(r|0))break a;i=+f[b>>2];j=+f[g>>2];if(i>2]|0)>>>0<(c[b+12>>2]|0)>>>0:0)break c;b=g}}else{b=n;while(1){g=b+8|0;if((g|0)==(u|0))break a;i=+f[b>>2];j=+f[g>>2];if(i>2]|0)>>>0<(c[b+12>>2]|0)>>>0:0)break c;b=g}}while(0);if(v>>>0>>0)c[d>>2]=k;else c[a>>2]=r+8}do if((J|0)==5){c[d>>2]=t;i=+f[r>>2];j=+f[t>>2];if(!(i>2]|0;h=c[s>>2]|0;if(g>>>0>=h>>>0)break}else{g=r+4|0;b=g;h=c[s>>2]|0;g=c[g>>2]|0}f[r>>2]=j;f[t>>2]=i;c[b>>2]=h;c[s>>2]=g}else if((J|0)==10){c[C>>2]=k;c[D>>2]=k+8;c[d>>2]=t;c[E>>2]=t;c[w>>2]=c[C>>2];c[x>>2]=c[D>>2];c[y>>2]=c[E>>2];di(w,x,y,e)|0}else if((J|0)==12){c[G>>2]=k;c[H>>2]=u;c[x>>2]=c[G>>2];c[y>>2]=c[H>>2];ei(x,y,e)}while(0);zb=K;return}function di(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0.0,k=0,l=0;l=c[b>>2]|0;k=c[a>>2]|0;j=+f[k>>2];h=+f[l>>2];if(!(j>2]|0)>>>0<(c[l+4>>2]|0)>>>0;else e=1;i=c[d>>2]|0;g=+f[i>>2];if(!(h>2]|0)>>>0<(c[i+4>>2]|0)>>>0;else b=1;do if(!e)if(b){f[l>>2]=g;f[i>>2]=h;d=l+4|0;i=i+4|0;a=c[d>>2]|0;c[d>>2]=c[i>>2];c[i>>2]=a;g=+f[k>>2];h=+f[l>>2];if(!(g>2]|0;a=c[d>>2]|0;if(e>>>0>=a>>>0){b=1;break}}else{e=k+4|0;b=e;a=c[d>>2]|0;e=c[e>>2]|0}f[k>>2]=h;f[l>>2]=g;c[b>>2]=a;c[d>>2]=e;b=2}else b=0;else{if(b){f[k>>2]=g;f[i>>2]=j;k=k+4|0;b=i+4|0;l=c[k>>2]|0;c[k>>2]=c[b>>2];c[b>>2]=l;b=1;break}f[k>>2]=h;f[l>>2]=j;k=k+4|0;a=l+4|0;d=c[k>>2]|0;c[k>>2]=c[a>>2];c[a>>2]=d;g=+f[i>>2];if(!(j>2]|0;if(d>>>0>=e>>>0){b=1;break}}else{e=i+4|0;b=e;e=c[e>>2]|0}f[l>>2]=g;f[i>>2]=j;c[a>>2]=e;c[b>>2]=d;b=2}while(0);return b|0}function ei(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0,j=0,k=0,l=0;j=c[b>>2]|0;k=j+-8|0;l=c[a>>2]|0;while(1){if((l|0)==(k|0))break;a:do if((l|0)==(j|0))b=j;else{b=l;while(1){h=b+4|0;d=b;while(1){i=d+8|0;if((i|0)==(j|0))break a;e=+f[b>>2];g=+f[i>>2];if(e>2]|0)>>>0<(c[d+12>>2]|0)>>>0:0)break;d=i}b=i}}while(0);if((b|0)!=(l|0)){d=c[l>>2]|0;c[l>>2]=c[b>>2];c[b>>2]=d;d=l+4|0;i=b+4|0;h=c[d>>2]|0;c[d>>2]=c[i>>2];c[i>>2]=h}i=l+8|0;c[a>>2]=i;l=i}return}function fi(a){a=a|0;return 536870911}function gi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function hi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function ii(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-8|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function ji(a){a=+a;return +(a*a)}function ki(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=((c[d>>2]|0)-f|0)/36|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b*36|0)}else Hi(a,b-e|0);return}function li(a){a=a|0;return c[a+16>>2]|0}function mi(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;var g=0.0,h=0.0;h=1.0/+(1<>2]=h*c+g;f[b>>2]=h*d+g;return}function ni(a){a=a|0;return a|0}function oi(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;j=zb;zb=zb+16|0;i=j;k=Ng(d)|0;k=(k|0)==(Ng(e)|0)&1;do if((Ng(f)|0)==(k|0)){k=Og(d)|0;k=(k|0)==(Og(e)|0)&1;if((Og(f)|0)==(k|0)){yi(a,b,d,e,f,g,h);break}else{k=Xf(Xf(PE(Xf(Xf(Xf(56032,24457)|0,24528)|0,35e3)|0,466)|0,35007)|0,24621)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(k,h)|0;ME(k)|0;ua()}}else{k=Ng(d)|0;if((k|0)==(Ng(e)|0)?(k=(Ng(e)|0)>>>1,(k|0)==(Ng(f)|0)):0){k=Og(d)|0;if((k|0)==(Og(e)|0)?(k=(Og(e)|0)>>>1,(k|0)==(Og(f)|0)):0){zi(a,b,d,e,f,g,h);break}k=Xf(Xf(PE(Xf(Xf(Xf(56032,24653)|0,24528)|0,35e3)|0,469)|0,35007)|0,24621)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);l=XF(i,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(i);QE(k,l)|0;ME(k)|0;ua()}l=(Ng(d)|0)>>>1;if((l|0)==(Ng(e)|0)?(l=Ng(e)|0,(l|0)==(Ng(f)|0)):0){l=(Ng(d)|0)>>>1;if((l|0)==(Ng(e)|0)?(l=Ng(e)|0,(l|0)==(Ng(f)|0)):0){Ai(a,b,d,e,f,g,h);break}l=Xf(Xf(PE(Xf(Xf(Xf(56032,24750)|0,24528)|0,35e3)|0,472)|0,35007)|0,24621)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}l=Xf(Xf(PE(Xf(Xf(Xf(56032,31132)|0,24528)|0,35e3)|0,475)|0,35007)|0,24843)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}while(0);zb=j;return 1}function pi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=zb;zb=zb+48|0;d=e;if(ti(d,b,1.1920928955078125e-07)|0){ui(a,d,c);a=1}else a=0;zb=e;return a|0}function qi(a,b){a=a|0;b=b|0;var c=0,d=0.0;c=b+16|0;d=+f[b>>2]*+f[c>>2];d=d-+ji(+f[b+4>>2]);if(d==0.0)a=0;else{d=+ji(+f[b>>2]+ +f[c>>2])/d;f[a>>2]=d;a=1}return a|0}function ri(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;var g=0.0,h=0.0;g=+hz(1.0,e+-1|0)+-.5;h=+(1<>2]=h*c+g;f[b>>2]=h*d+g;return}function si(a,b,d){a=a|0;b=b|0;d=+d;var e=0,g=0,h=0,i=0;g=zb;zb=zb+16|0;e=g;if(!(d>=0.0)){h=Xf(Xf(PE(Xf(Xf(Xf(56032,34104)|0,33900)|0,35e3)|0,232)|0,35007)|0,34138)|0;IE(e,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);i=XF(e,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(e);QE(h,i)|0;ME(h)|0;ua()}if(+(c[a+20>>2]|0)>d){d=+v(+(+f[a+24>>2]),+d)*+(1<>2]|0)+-12>>2]|0)|0);h=XF(e,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(e);QE(i,h)|0;ME(i)|0;ua()}return +(0.0)}function ti(a,b,d){a=a|0;b=b|0;d=+d;var e=0.0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=+vi(b);if(!(+t(+e)<=d)){e=1.0/e;j=b+16|0;g=b+20|0;m=b+32|0;d=e*+wi(+f[j>>2],+f[g>>2],+f[m>>2]);f[a>>2]=d;l=b+8|0;k=b+4|0;d=e*+xi(+f[l>>2],+f[k>>2],+f[m>>2],+f[b+28>>2]);i=a+4|0;f[i>>2]=d;d=e*+xi(+f[k>>2],+f[l>>2],+f[j>>2],+f[g>>2]);h=a+8|0;f[h>>2]=d;d=e*+wi(+f[b>>2],+f[l>>2],+f[m>>2]);f[a+16>>2]=d;d=e*+xi(+f[l>>2],+f[b>>2],+f[g>>2],+f[b+12>>2]);g=a+20|0;f[g>>2]=d;e=e*+wi(+f[b>>2],+f[k>>2],+f[j>>2]);f[a+32>>2]=e;c[a+12>>2]=c[i>>2];c[a+24>>2]=c[h>>2];c[a+28>>2]=c[g>>2];a=1}else a=0;return a|0}function ui(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=c+4|0;d=c+8|0;f[a>>2]=+f[b>>2]*+f[c>>2]+ +f[b+4>>2]*+f[e>>2]+ +f[b+8>>2]*+f[d>>2];f[a+4>>2]=+f[b+12>>2]*+f[c>>2]+ +f[b+16>>2]*+f[e>>2]+ +f[b+20>>2]*+f[d>>2];f[a+8>>2]=+f[b+24>>2]*+f[c>>2]+ +f[b+28>>2]*+f[e>>2]+ +f[b+32>>2]*+f[d>>2];return}function vi(a){a=a|0;var b=0,c=0,d=0.0,e=0.0,g=0.0,h=0.0,i=0;b=a+32|0;g=+f[b>>2];c=a+4|0;g=g*+ji(+f[c>>2]);e=+f[a+8>>2];i=a+20|0;h=+f[c>>2]*2.0*e*+f[i>>2];c=a+16|0;d=+f[c>>2];e=d*+ji(e);d=+f[a>>2];d=d*+ji(+f[i>>2]);return +(h-g-e-d+ +f[a>>2]*+f[c>>2]*+f[b>>2])}function wi(a,b,c){a=+a;b=+b;c=+c;return +(a*c-b*b)}function xi(a,b,c,d){a=+a;b=+b;c=+c;d=+d;return +(a*d-b*c)}function yi(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0;r=zb;zb=zb+32|0;o=r+20|0;p=r+16|0;q=r+12|0;j=r+8|0;k=r+4|0;l=r;if((h|0)>0?(h+1|0)>>>0<(Ng(e)|0)>>>0:0){m=i+-1|0;if((i|0)>0?(n=i+1|0,n>>>0<(Og(e)|0)>>>0):0){s=Ng(d)|0;if((s|0)!=(Ng(e)|0)){s=Xf(Xf(PE(Xf(Xf(Xf(56032,26146)|0,24528)|0,35e3)|0,311)|0,35007)|0,25078)|0;IE(o,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);t=XF(o,56736)|0;t=Ib[c[(c[t>>2]|0)+28>>2]&63](t,10)|0;YF(o);QE(s,t)|0;ME(s)|0;ua()}t=Ng(d)|0;if((t|0)!=(Ng(g)|0)){t=Xf(Xf(PE(Xf(Xf(Xf(56032,26545)|0,24528)|0,35e3)|0,312)|0,35007)|0,25078)|0;IE(o,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);s=XF(o,56736)|0;s=Ib[c[(c[s>>2]|0)+28>>2]&63](s,10)|0;YF(o);QE(t,s)|0;ME(t)|0;ua()}t=Og(d)|0;if((t|0)!=(Og(e)|0)){t=Xf(Xf(PE(Xf(Xf(Xf(56032,26198)|0,24528)|0,35e3)|0,313)|0,35007)|0,25078)|0;IE(o,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);s=XF(o,56736)|0;s=Ib[c[(c[s>>2]|0)+28>>2]&63](s,10)|0;YF(o);QE(t,s)|0;ME(t)|0;ua()}t=Og(d)|0;if((t|0)==(Og(g)|0)){z=(ch(d,m)|0)+(h<<2)|0;A=(ch(d,i)|0)+(h<<2)|0;o=(ch(d,n)|0)+(h<<2)|0;d=(ch(e,i)|0)+(h<<2)|0;t=(ch(g,m)|0)+(h<<2)|0;m=(ch(g,i)|0)+(h<<2)|0;s=(ch(g,n)|0)+(h<<2)|0;Bi(p,q,j,k,l,e,h,i);v=+f[m>>2];u=+f[A>>2];w=v+(u-+f[d>>2]*2.0);y=(+f[A+-4>>2]-+f[A+4>>2]+(+f[m+4>>2]-+f[m+-4>>2]))*.25;x=(+f[z>>2]-+f[o>>2]+(+f[s>>2]-+f[t>>2]))*.25;c[a>>2]=c[j>>2];t=c[l>>2]|0;c[a+4>>2]=t;f[a+8>>2]=y;c[a+12>>2]=t;c[a+16>>2]=c[k>>2];f[a+20>>2]=x;f[a+24>>2]=y;f[a+28>>2]=x;f[a+32>>2]=w;f[b>>2]=-+f[p>>2];f[b+4>>2]=-+f[q>>2];f[b+8>>2]=-((v-u)*.5);zb=r;return}else{A=Xf(Xf(PE(Xf(Xf(Xf(56032,26597)|0,24528)|0,35e3)|0,314)|0,35007)|0,25078)|0;IE(o,A+(c[(c[A>>2]|0)+-12>>2]|0)|0);z=XF(o,56736)|0;z=Ib[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;YF(o);QE(A,z)|0;ME(A)|0;ua()}}A=Xf(Xf(PE(Xf(Xf(Xf(56032,24946)|0,24528)|0,35e3)|0,310)|0,35007)|0,25005)|0;IE(o,A+(c[(c[A>>2]|0)+-12>>2]|0)|0);z=XF(o,56736)|0;z=Ib[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;YF(o);QE(A,z)|0;ME(A)|0;ua()}A=Xf(Xf(PE(Xf(Xf(Xf(56032,24872)|0,24528)|0,35e3)|0,309)|0,35007)|0,24930)|0;IE(o,A+(c[(c[A>>2]|0)+-12>>2]|0)|0);z=XF(o,56736)|0;z=Ib[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;YF(o);QE(A,z)|0;ME(A)|0;ua()}function zi(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=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.0,z=0.0,A=0.0,B=0.0,C=0.0;w=zb;zb=zb+32|0;t=w+28|0;u=w+24|0;v=w+20|0;o=w+16|0;p=w+12|0;q=w+8|0;r=w+4|0;s=w;if((h|0)>0?(h+1|0)>>>0<(Ng(e)|0)>>>0:0){j=i+-1|0;if((i|0)>0?(l=i+1|0,l>>>0<(Og(e)|0)>>>0):0){n=Ng(d)|0;if((n|0)!=(Ng(e)|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,26146)|0,24528)|0,35e3)|0,415)|0,35007)|0,25078)|0;IE(t,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(t,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(t);QE(n,m)|0;ME(n)|0;ua()}n=(Ng(d)|0)>>>1;if((n|0)!=(Ng(g)|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,25108)|0,24528)|0,35e3)|0,416)|0,35007)|0,25078)|0;IE(t,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(t,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(t);QE(n,m)|0;ME(n)|0;ua()}n=Og(d)|0;if((n|0)!=(Og(e)|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,26198)|0,24528)|0,35e3)|0,417)|0,35007)|0,25078)|0;IE(t,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(t,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(t);QE(n,m)|0;ME(n)|0;ua()}n=(Og(d)|0)>>>1;if((n|0)!=(Og(g)|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,25224)|0,24528)|0,35e3)|0,418)|0,35007)|0,25078)|0;IE(t,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(t,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(t);QE(n,m)|0;ME(n)|0;ua()}m=(ch(d,j)|0)+(h<<2)|0;n=(ch(d,i)|0)+(h<<2)|0;j=(ch(d,l)|0)+(h<<2)|0;d=(ch(e,i)|0)+(h<<2)|0;mi(u,v,+(h|0),+(i|0),1);k=+f[u>>2];if(!(k+-.5>=0.0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,26252)|0,24528)|0,35e3)|0,428)|0,35007)|0,26293)|0;IE(t,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);x=XF(t,56736)|0;x=Ib[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;YF(t);QE(l,x)|0;ME(l)|0;ua()}if(!(+f[v>>2]+-.5>=0.0)){x=Xf(Xf(PE(Xf(Xf(Xf(56032,26347)|0,24528)|0,35e3)|0,429)|0,35007)|0,26388)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);l=XF(t,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(t);QE(x,l)|0;ME(x)|0;ua()}if(!(k+.5<+((Ng(g)|0)>>>0))){x=Xf(Xf(PE(Xf(Xf(Xf(56032,26442)|0,24528)|0,35e3)|0,430)|0,35007)|0,26293)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);l=XF(t,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(t);QE(x,l)|0;ME(x)|0;ua()}k=+f[v>>2]+.5;if(k<+((Og(g)|0)>>>0)){Bi(o,p,q,r,s,e,h,i);y=+Ci(g,+f[u>>2],+f[v>>2]);k=+f[n>>2];z=y+(k-+f[d>>2]*2.0);C=+f[n+-4>>2];C=C+ +Ci(g,+f[u>>2]+.5,+f[v>>2]);B=+f[n+4>>2];B=(C-(B+ +Ci(g,+f[u>>2]+-.5,+f[v>>2])))*.25;C=+f[m>>2];C=C+ +Ci(g,+f[u>>2],+f[v>>2]+.5);A=+f[j>>2];A=(C-(A+ +Ci(g,+f[u>>2],+f[v>>2]+-.5)))*.25;c[a>>2]=c[q>>2];x=c[s>>2]|0;c[a+4>>2]=x;f[a+8>>2]=B;c[a+12>>2]=x;c[a+16>>2]=c[r>>2];f[a+20>>2]=A;f[a+24>>2]=B;f[a+28>>2]=A;f[a+32>>2]=z;f[b>>2]=-+f[o>>2];f[b+4>>2]=-+f[p>>2];f[b+8>>2]=-((y-k)*.5);zb=w;return}else{x=Xf(Xf(PE(Xf(Xf(Xf(56032,26493)|0,24528)|0,35e3)|0,431)|0,35007)|0,26388)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);w=XF(t,56736)|0;w=Ib[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;YF(t);QE(x,w)|0;ME(x)|0;ua()}}x=Xf(Xf(PE(Xf(Xf(Xf(56032,24946)|0,24528)|0,35e3)|0,414)|0,35007)|0,25005)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);w=XF(t,56736)|0;w=Ib[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;YF(t);QE(x,w)|0;ME(x)|0;ua()}x=Xf(Xf(PE(Xf(Xf(Xf(56032,24872)|0,24528)|0,35e3)|0,413)|0,35007)|0,24930)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);w=XF(t,56736)|0;w=Ib[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;YF(t);QE(x,w)|0;ME(x)|0;ua()}function Ai(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0;t=zb;zb=zb+32|0;q=t+28|0;r=t+24|0;s=t+20|0;j=t+16|0;k=t+12|0;l=t+8|0;m=t+4|0;n=t;if((h|0)>0?(h+1|0)>>>0<(Ng(e)|0)>>>0:0){o=i+-1|0;if((i|0)>0?(p=i+1|0,p>>>0<(Og(e)|0)>>>0):0){u=(Ng(d)|0)>>>1;if((u|0)!=(Ng(e)|0)){u=Xf(Xf(PE(Xf(Xf(Xf(56032,25021)|0,24528)|0,35e3)|0,361)|0,35007)|0,25078)|0;IE(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);v=XF(q,56736)|0;v=Ib[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;YF(q);QE(u,v)|0;ME(u)|0;ua()}v=(Ng(d)|0)>>>1;if((v|0)!=(Ng(g)|0)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,25108)|0,24528)|0,35e3)|0,362)|0,35007)|0,25078)|0;IE(q,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(q,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(q);QE(v,u)|0;ME(v)|0;ua()}v=(Og(d)|0)>>>1;if((v|0)!=(Og(e)|0)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,25165)|0,24528)|0,35e3)|0,363)|0,35007)|0,25078)|0;IE(q,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(q,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(q);QE(v,u)|0;ME(v)|0;ua()}v=(Og(d)|0)>>>1;if((v|0)==(Og(g)|0)){C=(ch(e,i)|0)+(h<<2)|0;v=(ch(g,o)|0)+(h<<2)|0;q=(ch(g,i)|0)+(h<<2)|0;u=(ch(g,p)|0)+(h<<2)|0;ri(r,s,+(h|0),+(i|0),1);Bi(j,k,l,m,n,e,h,i);w=+Ci(d,+f[r>>2],+f[s>>2]);x=+f[q>>2];y=x+(w-+f[C>>2]*2.0);B=+Ci(d,+f[r>>2]+-2.0,+f[s>>2]);B=B+ +f[q+4>>2];A=+Ci(d,+f[r>>2]+2.0,+f[s>>2]);A=(B-(A+ +f[q+-4>>2]))*.25;B=+Ci(d,+f[r>>2],+f[s>>2]+-2.0);B=B+ +f[u>>2];z=+Ci(d,+f[r>>2],+f[s>>2]+2.0);z=(B-(z+ +f[v>>2]))*.25;c[a>>2]=c[l>>2];v=c[n>>2]|0;c[a+4>>2]=v;f[a+8>>2]=A;c[a+12>>2]=v;c[a+16>>2]=c[m>>2];f[a+20>>2]=z;f[a+24>>2]=A;f[a+28>>2]=z;f[a+32>>2]=y;f[b>>2]=-+f[j>>2];f[b+4>>2]=-+f[k>>2];f[b+8>>2]=-((x-w)*.5);zb=t;return}else{C=Xf(Xf(PE(Xf(Xf(Xf(56032,25224)|0,24528)|0,35e3)|0,364)|0,35007)|0,25078)|0;IE(q,C+(c[(c[C>>2]|0)+-12>>2]|0)|0);v=XF(q,56736)|0;v=Ib[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;YF(q);QE(C,v)|0;ME(C)|0;ua()}}C=Xf(Xf(PE(Xf(Xf(Xf(56032,24946)|0,24528)|0,35e3)|0,360)|0,35007)|0,25005)|0;IE(q,C+(c[(c[C>>2]|0)+-12>>2]|0)|0);v=XF(q,56736)|0;v=Ib[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;YF(q);QE(C,v)|0;ME(C)|0;ua()}C=Xf(Xf(PE(Xf(Xf(Xf(56032,24872)|0,24528)|0,35e3)|0,359)|0,35007)|0,24930)|0;IE(q,C+(c[(c[C>>2]|0)+-12>>2]|0)|0);v=XF(q,56736)|0;v=Ib[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;YF(q);QE(C,v)|0;ME(C)|0;ua()}function Bi(a,b,d,e,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0;n=zb;zb=zb+16|0;m=n;if((i|0)>0?(i+1|0)>>>0<(Ng(h)|0)>>>0:0){k=j+-1|0;if((j|0)>0?(l=j+1|0,l>>>0<(Og(h)|0)>>>0):0){k=(ch(h,k)|0)+(i<<2)|0;j=(ch(h,j)|0)+(i<<2)|0;m=(ch(h,l)|0)+(i<<2)|0;h=j+4|0;i=j+-4|0;f[a>>2]=(+f[h>>2]-+f[i>>2])*.5;f[b>>2]=(+f[m>>2]-+f[k>>2])*.5;f[d>>2]=+f[h>>2]+(+f[i>>2]-+f[j>>2]*2.0);f[e>>2]=+f[m>>2]+(+f[k>>2]-+f[j>>2]*2.0);f[g>>2]=(+f[k+-4>>2]+ +f[m+4>>2]-(+f[k+4>>2]+ +f[m+-4>>2]))*.25;zb=n;return}n=Xf(Xf(PE(Xf(Xf(Xf(56032,26089)|0,24528)|0,35e3)|0,285)|0,35007)|0,25005)|0;IE(m,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);j=XF(m,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(m);QE(n,j)|0;ME(n)|0;ua()}n=Xf(Xf(PE(Xf(Xf(Xf(56032,26033)|0,24528)|0,35e3)|0,284)|0,35007)|0,24930)|0;IE(m,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);j=XF(m,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(m);QE(n,j)|0;ME(n)|0;ua()}function Ci(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0,f=0;f=Di(a)|0;e=Ng(a)|0;d=Og(a)|0;return +(+Fi(f,e,d,Ei(a)|0,b,c))}function Di(a){a=a|0;return c[a+24>>2]|0}function Ei(a){a=a|0;return c[a+12>>2]|0}function Fi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;return +(+Gi(a,b,c,d,e,f))}function Gi(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=+g;h=+h;var i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,t=0.0,u=0.0;p=zb;zb=zb+16|0;n=p;o=~~+s(+g);if((o|0)!=(~~g|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,25283)|0,25335)|0,35e3)|0,69)|0,35007)|0,25411)|0;IE(n,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);l=XF(n,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(n);QE(m,l)|0;ME(m)|0;ua()}l=~~+s(+h);if((l|0)!=(~~h|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,25441)|0,25335)|0,35e3)|0,70)|0,35007)|0,25411)|0;IE(n,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);k=XF(n,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(n);QE(m,k)|0;ME(m)|0;ua()}m=o+1|0;k=l+1|0;if(!((l|0)>-1&l>>>0>>0)){q=Xf(Xf(PE(Xf(Xf(Xf(56032,25493)|0,25335)|0,35e3)|0,79)|0,35007)|0,25539)|0;IE(n,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);r=XF(n,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(n);QE(q,r)|0;ME(q)|0;ua()}if(k>>>0>=d>>>0){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25556)|0,25335)|0,35e3)|0,80)|0,35007)|0,25616)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!((o|0)>-1&o>>>0>>0)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25640)|0,25335)|0,35e3)|0,81)|0,35007)|0,25685)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(m>>>0>=b>>>0){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25702)|0,25335)|0,35e3)|0,82)|0,35007)|0,25761)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}b=a+(B(l,e)|0)|0;a=b+e|0;u=+(m|0)-g;i=+(k|0)-h;j=u*i;t=g-+(o|0);i=t*i;h=h-+(l|0);g=u*h;h=t*h;if(!(j>=0.0)|!(j<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25785)|0,25335)|0,35e3)|0,94)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!(i>=0.0)|!(i<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25845)|0,25335)|0,35e3)|0,95)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!(g>=0.0)|!(g<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25892)|0,25335)|0,35e3)|0,96)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!(h>=0.0)|!(h<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25939)|0,25335)|0,35e3)|0,97)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!(h+(g+(j+i))<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25986)|0,25335)|0,35e3)|0,98)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}else{zb=p;return +(j*+f[b+(o<<2)>>2]+i*+f[b+(m<<2)>>2]+g*+f[a+(o<<2)>>2]+h*+f[a+(m<<2)>>2])}return +(0.0)}function Hi(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((((c[g>>2]|0)-d|0)/36|0)>>>0>>0){d=((d-(c[a>>2]|0)|0)/36|0)+b|0;e=$h(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=((c[g>>2]|0)-j|0)/36|0;g=k<<1;vh(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,((c[h>>2]|0)-j|0)/36|0,a+8|0);Ji(f,b);wh(a,f);xh(f);break}}else Ii(a,b);while(0);zb=i;return}function Ii(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;a=c[e>>2]|0;do{d=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(d|0));a=(c[e>>2]|0)+36|0;c[e>>2]=a;b=b+-1|0}while((b|0)!=0);return}function Ji(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+8|0;a=c[e>>2]|0;do{d=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(d|0));a=(c[e>>2]|0)+36|0;c[e>>2]=a;b=b+-1|0}while((b|0)!=0);return}function Ki(a){a=a|0;return (c[a+4>>2]|0)-(c[a>>2]|0)>>5|0}function Li(a,b){a=a|0;b=b|0;return (c[a>>2]|0)+(b<<5)|0}function Mi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;d=f;e=c[a>>2]|0;if((c[a+4>>2]|0)-e>>5>>>0>b>>>0){e=Ng(e)|0;e=~~+Pi(+Oi(+(((e>>>0)/((Ng((c[a>>2]|0)+(b<<5)|0)|0)>>>0)|0)>>>0)));zb=f;return e|0}else{f=Xf(Xf(PE(Xf(Xf(Xf(56032,26949)|0,24528)|0,35e3)|0,94)|0,35007)|0,26995)|0;IE(d,f+(c[(c[f>>2]|0)+-12>>2]|0)|0);e=XF(d,56736)|0;e=Ib[c[(c[e>>2]|0)+28>>2]&63](e,10)|0;YF(d);QE(f,e)|0;ME(f)|0;ua()}return 0}function Ni(a,b){a=a|0;b=b|0;return (b|0)%(c[a+16>>2]|0)|0|0}function Oi(a){a=+a;return +(+z(+a)/.6931471824645996)}function Pi(a){a=+a;return +(+s(+(a+.5)))}function Qi(a){a=a|0;c[a>>2]=15676;gh(a+56|0);gh(a+44|0);Si(a+32|0);Ti(a);return}function Ri(a){a=a|0;Qi(a);SA(a);return}function Si(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Ti(a){a=a|0;c[a>>2]=15692;mh(a+4|0);return}function Ui(a){a=a|0;Ti(a);SA(a);return}function Vi(a,g,h,i,j){a=a|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=zb;zb=zb+16|0;k=t;if(i>>>0<=4){s=Xf(Xf(PE(Xf(Xf(Xf(56032,27047)|0,27081)|0,35e3)|0,55)|0,35007)|0,27176)|0;IE(k,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);r=XF(k,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(k);QE(s,r)|0;ME(s)|0;ua()}if(j>>>0<=4){s=Xf(Xf(PE(Xf(Xf(Xf(56032,27195)|0,27081)|0,35e3)|0,56)|0,35007)|0,27176)|0;IE(k,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);r=XF(k,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(k);QE(s,r)|0;ME(s)|0;ua()}o=i+-1|0;p=i+-2|0;q=i+-3|0;r=i+-4|0;l=g;m=0;while(1){if((m|0)==(j|0))break;s=h+(B(m,i)|0)|0;k=d[s>>0]|0;u=s+1|0;n=s+2|0;b[l>>1]=(k*7|0)+(d[n>>0]|0)+((d[u>>0]|0)+k<<2);k=d[s>>0]|0;b[l+2>>1]=((d[u>>0]|0)*6|0)+k+(d[s+3>>0]|0)+((d[n>>0]|0)+k<<2);k=2;n=l+4|0;while(1){if((k|0)==(p|0))break;u=k+1|0;b[n>>1]=((d[s+k>>0]|0)*6|0)+(d[s+(k+-2)>>0]|0)+((d[s+u>>0]|0)+(d[s+(k+-1)>>0]|0)<<2)+(d[s+(k+2)>>0]|0);k=u;n=n+2|0}u=l+(p<<1)|0;n=s+p|0;k=s+q|0;v=s+o|0;w=d[v>>0]|0;b[u>>1]=((d[n>>0]|0)*6|0)+w+(d[s+r>>0]|0)+(w+(d[k>>0]|0)<<2);s=d[v>>0]|0;b[u+2>>1]=(s*7|0)+(d[k>>0]|0)+((d[n>>0]|0)+s<<2);l=l+(i<<1)|0;m=m+1|0}s=j+-2|0;k=g+(i<<1)|0;q=k+(i<<1)|0;l=0;m=q;n=k;o=g;p=a;while(1){if((l|0)==(i|0))break;w=e[o>>1]|0;f[p>>2]=+((w*7|0)+((e[n>>1]|0)+w<<2)+(e[m>>1]|0)|0)*.00390625;l=l+1|0;m=m+2|0;n=n+2|0;o=o+2|0;p=p+4|0}o=0;p=q+(i<<1)|0;n=q;l=g;m=a+(i<<2)|0;while(1){if((o|0)==(i|0))break;w=e[l>>1]|0;f[m>>2]=+(((e[k>>1]|0)*6|0)+w+((e[n>>1]|0)+w<<2)+(e[p>>1]|0)|0)*.00390625;o=o+1|0;p=p+2|0;n=n+2|0;k=k+2|0;l=l+2|0;m=m+4|0}l=2;while(1){if((l|0)==(s|0))break;q=g+((B(l+-2|0,i)|0)<<1)|0;p=q+(i<<1)|0;o=p+(i<<1)|0;n=o+(i<<1)|0;k=0;m=n+(i<<1)|0;r=a+((B(l,i)|0)<<2)|0;while(1){if((k|0)==(i|0))break;f[r>>2]=+(((e[o>>1]|0)*6|0)+(e[q>>1]|0)+((e[n>>1]|0)+(e[p>>1]|0)<<2)+(e[m>>1]|0)|0)*.00390625;k=k+1|0;m=m+2|0;n=n+2|0;o=o+2|0;p=p+2|0;q=q+2|0;r=r+4|0}l=l+1|0}p=g+((B(j+-4|0,i)|0)<<1)|0;o=p+(i<<1)|0;n=o+(i<<1)|0;l=0;m=n+(i<<1)|0;k=a+((B(s,i)|0)<<2)|0;while(1){if((l|0)==(i|0))break;w=e[m>>1]|0;f[k>>2]=+(((e[n>>1]|0)*6|0)+(e[p>>1]|0)+(w+(e[o>>1]|0)<<2)+w|0)*.00390625;l=l+1|0;m=m+2|0;n=n+2|0;o=o+2|0;p=p+2|0;k=k+4|0}o=g+((B(j+-3|0,i)|0)<<1)|0;n=o+(i<<1)|0;l=0;m=n+(i<<1)|0;k=a+((B(j+-1|0,i)|0)<<2)|0;while(1){if((l|0)==(i|0))break;w=e[m>>1]|0;f[k>>2]=+((w*6|0)+(e[o>>1]|0)+(w+(e[n>>1]|0)<<2)+w|0)*.00390625;l=l+1|0;m=m+2|0;n=n+2|0;o=o+2|0;k=k+4|0}zb=t;return}function Wi(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|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.0,s=0,t=0;q=zb;zb=zb+16|0;h=q;if(e>>>0<=4){p=Xf(Xf(PE(Xf(Xf(Xf(56032,27047)|0,27081)|0,35e3)|0,168)|0,35007)|0,27176)|0;IE(h,p+(c[(c[p>>2]|0)+-12>>2]|0)|0);o=XF(h,56736)|0;o=Ib[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;YF(h);QE(p,o)|0;ME(p)|0;ua()}if(g>>>0<=4){p=Xf(Xf(PE(Xf(Xf(Xf(56032,27195)|0,27081)|0,35e3)|0,169)|0,35007)|0,27176)|0;IE(h,p+(c[(c[p>>2]|0)+-12>>2]|0)|0);o=XF(h,56736)|0;o=Ib[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;YF(h);QE(p,o)|0;ME(p)|0;ua()}l=e+-1|0;m=e+-2|0;n=e+-3|0;o=e+-4|0;i=b;j=0;while(1){if((j|0)==(g|0))break;p=d+((B(j,e)|0)<<2)|0;r=+f[p>>2];k=p+4|0;h=p+8|0;f[i>>2]=+f[h>>2]+(r+(r*6.0+(r+ +f[k>>2])*4.0));r=+f[p>>2];f[i+4>>2]=+f[p+12>>2]+(r+(+f[k>>2]*6.0+(r+ +f[h>>2])*4.0));h=2;k=i+8|0;while(1){if((h|0)==(m|0))break;s=h+1|0;f[k>>2]=+f[p+(h+2<<2)>>2]+(+f[p+(h+-2<<2)>>2]+(+f[p+(h<<2)>>2]*6.0+(+f[p+(h+-1<<2)>>2]+ +f[p+(s<<2)>>2])*4.0));h=s;k=k+4|0}s=i+(m<<2)|0;k=p+(m<<2)|0;h=p+(n<<2)|0;t=p+(l<<2)|0;r=+f[t>>2];f[s>>2]=r+(+f[p+(o<<2)>>2]+(+f[k>>2]*6.0+(+f[h>>2]+r)*4.0));r=+f[t>>2];f[s+4>>2]=r+(+f[h>>2]+(r*6.0+(r+ +f[k>>2])*4.0));i=i+(e<<2)|0;j=j+1|0}p=g+-2|0;h=b+(e<<2)|0;n=h+(e<<2)|0;i=0;j=n;k=h;l=b;m=a;while(1){if((i|0)==(e|0))break;r=+f[l>>2];f[m>>2]=(+f[j>>2]+(r+(r*6.0+(r+ +f[k>>2])*4.0)))*.00390625;i=i+1|0;j=j+4|0;k=k+4|0;l=l+4|0;m=m+4|0}l=0;m=n+(e<<2)|0;k=n;i=b;j=a+(e<<2)|0;while(1){if((l|0)==(e|0))break;r=+f[i>>2];f[j>>2]=(+f[m>>2]+(r+(+f[h>>2]*6.0+(r+ +f[k>>2])*4.0)))*.00390625;l=l+1|0;m=m+4|0;k=k+4|0;h=h+4|0;i=i+4|0;j=j+4|0}i=2;while(1){if((i|0)==(p|0))break;n=b+((B(i+-2|0,e)|0)<<2)|0;m=n+(e<<2)|0;l=m+(e<<2)|0;k=l+(e<<2)|0;h=0;j=k+(e<<2)|0;o=a+((B(i,e)|0)<<2)|0;while(1){if((h|0)==(e|0))break;f[o>>2]=(+f[j>>2]+(+f[n>>2]+(+f[l>>2]*6.0+(+f[m>>2]+ +f[k>>2])*4.0)))*.00390625;h=h+1|0;j=j+4|0;k=k+4|0;l=l+4|0;m=m+4|0;n=n+4|0;o=o+4|0}i=i+1|0}m=b+((B(g+-4|0,e)|0)<<2)|0;l=m+(e<<2)|0;k=l+(e<<2)|0;i=0;j=k+(e<<2)|0;h=a+((B(p,e)|0)<<2)|0;while(1){if((i|0)==(e|0))break;r=+f[j>>2];f[h>>2]=(r+(+f[m>>2]+(+f[k>>2]*6.0+(+f[l>>2]+r)*4.0)))*.00390625;i=i+1|0;j=j+4|0;k=k+4|0;l=l+4|0;m=m+4|0;h=h+4|0}l=b+((B(g+-3|0,e)|0)<<2)|0;k=l+(e<<2)|0;i=0;j=k+(e<<2)|0;h=a+((B(g+-1|0,e)|0)<<2)|0;while(1){if((i|0)==(e|0))break;r=+f[j>>2];f[h>>2]=(r+(+f[l>>2]+(r*6.0+(+f[k>>2]+r)*4.0)))*.00390625;i=i+1|0;j=j+4|0;k=k+4|0;l=l+4|0;h=h+4|0}zb=q;return}function Xi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=c>>>1;j=d>>>1;k=c<<1;i=0;while(1){if((i|0)==(j|0))break;g=b+((B(k,i)|0)<<2)|0;d=0;e=g+(c<<2)|0;h=a;while(1){if((d|0)==(l|0))break;f[h>>2]=(+f[g>>2]+ +f[g+4>>2]+ +f[e>>2]+ +f[e+4>>2])*.25;d=d+1|0;e=e+8|0;g=g+8|0;h=h+4|0}i=i+1|0;a=a+(l<<2)|0}return}function Yi(a){a=a|0;c[a>>2]=15692;a=a+4|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function Zi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;c[a+16>>2]=b;c[a+20>>2]=d;e=+La(+(1.0/+(d+-1|0)));f[a+24>>2]=e;e=1.0/+z(+e);f[a+28>>2]=e;return}function _i(a){a=a|0;var b=0;Yi(a);c[a>>2]=15676;a=a+32|0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function $i(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;Zi(a,e,3);k=a+4|0;l=a+20|0;Rg(k,B(c[l>>2]|0,e)|0);g=0;while(1){if((g|0)>=(e|0))break;h=b>>>g;i=d>>>g;f=0;while(1){j=c[l>>2]|0;if(f>>>0>=j>>>0)break;j=(B(j,g)|0)+f|0;cq((c[k>>2]|0)+(j<<5)|0,2,h,i,-1,1);f=f+1|0}g=g+1|0}l=B(d,b)|0;aj(a+32|0,l);fh(a+44|0,l);fh(a+56|0,l);return}function aj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>1;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<1)}else bj(a,b-e|0);return}function bj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>1>>>0>>0){d=(d-(c[a>>2]|0)>>1)+b|0;e=dj(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;g=(c[g>>2]|0)-j|0;ej(f,g>>1>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>1,a+8|0);fj(f,b);gj(a,f);hj(f);break}}else cj(a,b);while(0);zb=i;return}function cj(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b<<1|0)|0;c[a>>2]=d+(b<<1);return}function dj(a){a=a|0;return 2147483647}function ej(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if((b|0)<0){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<1)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<1)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<1);return}function fj(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b<<1|0)|0;c[a>>2]=d+(b<<1);return}function gj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>1)<<1)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function hj(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-2|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function ij(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;h=zb;zb=zb+16|0;d=h;if((Mg(b)|0)!=1){g=Xf(Xf(PE(Xf(Xf(Xf(56032,27230)|0,27081)|0,35e3)|0,330)|0,35007)|0,27281)|0;IE(d,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);f=XF(d,56736)|0;f=Ib[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;YF(d);QE(g,f)|0;ME(g)|0;ua()}if((ah(b)|0)!=1){g=Xf(Xf(PE(Xf(Xf(Xf(56032,27305)|0,27081)|0,35e3)|0,331)|0,35007)|0,27350)|0;IE(d,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);f=XF(d,56736)|0;f=Ib[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;YF(d);QE(g,f)|0;ME(g)|0;ua()}e=a+4|0;f=a+16|0;g=a+20|0;if(((c[a+8>>2]|0)-(c[e>>2]|0)>>5|0)!=(B(c[g>>2]|0,c[f>>2]|0)|0)){i=Xf(Xf(PE(Xf(Xf(Xf(56032,27376)|0,27081)|0,35e3)|0,333)|0,35007)|0,27450)|0;IE(d,i+(c[(c[i>>2]|0)+-12>>2]|0)|0);j=XF(d,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(d);QE(i,j)|0;ME(i)|0;ua()}j=Ng(b)|0;if((j|0)!=(Ng(c[e>>2]|0)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,27485)|0,27081)|0,35e3)|0,334)|0,35007)|0,27545)|0;IE(d,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(d,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(d);QE(j,i)|0;ME(j)|0;ua()}j=Og(b)|0;if((j|0)!=(Og(c[e>>2]|0)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,27577)|0,27081)|0,35e3)|0,335)|0,35007)|0,27545)|0;IE(d,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(d,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(d);QE(j,i)|0;ME(j)|0;ua()}jj(a,c[e>>2]|0,b);b=c[e>>2]|0;jj(a,b+32|0,b);b=c[e>>2]|0;kj(a,b+64|0,b+32|0);b=1;while(1){if(b>>>0>=(c[f>>2]|0)>>>0)break;k=B(c[g>>2]|0,b)|0;k=lj((c[e>>2]|0)+(k<<5)|0)|0;d=(B(c[g>>2]|0,b)|0)+-1|0;d=lj((c[e>>2]|0)+(d<<5)|0)|0;i=(B(c[g>>2]|0,b)|0)+-1|0;i=Ng((c[e>>2]|0)+(i<<5)|0)|0;j=(B(c[g>>2]|0,b)|0)+-1|0;Xi(k,d,i,Og((c[e>>2]|0)+(j<<5)|0)|0);j=B(c[g>>2]|0,b)|0;i=c[e>>2]|0;jj(a,i+(j+1<<5)|0,i+(j<<5)|0);j=B(c[g>>2]|0,b)|0;i=c[e>>2]|0;kj(a,i+(j+2<<5)|0,i+(j+1<<5)|0);b=b+1|0}zb=h;return}function jj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=zb;zb=zb+16|0;e=f;if((Mg(b)|0)!=2){g=Xf(Xf(PE(Xf(Xf(Xf(56032,27639)|0,27081)|0,35e3)|0,357)|0,35007)|0,27686)|0;IE(e,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);h=XF(e,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(e);QE(g,h)|0;ME(g)|0;ua()}switch(Mg(d)|0){case 1:{e=lj(b)|0;g=c[a+32>>2]|0;h=Di(d)|0;Vi(e,g,h,Ng(d)|0,Og(d)|0);break}case 2:{e=lj(b)|0;g=c[a+44>>2]|0;h=Di(d)|0;Wi(e,g,h,Ng(d)|0,Og(d)|0);break}case 0:{h=O(16)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;gO(e,27722,Yf(27722)|0);mj(h,e);Q(h|0,13208,5)}default:{h=O(16)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;gO(e,27741,Yf(27741)|0);mj(h,e);Q(h|0,13208,5)}}zb=f;return}function kj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=zb;zb=zb+32|0;f=e;j=c[a+56>>2]|0;i=Mg(d)|0;h=Ng(d)|0;g=Og(d)|0;kq(f,j,i,h,g,Ei(d)|0,1);jj(a,f,d);jj(a,b,f);rq(f);zb=e;return}function lj(a){a=a|0;return c[a+24>>2]|0}function mj(a,b){a=a|0;b=b|0;c[a>>2]=15708;fO(a+4|0,b);return}function nj(a){a=a|0;c[a>>2]=15708;jO(a+4|0);return}function oj(a){a=a|0;nj(a);SA(a);return}function pj(b){b=b|0;b=b+4|0;if((a[b+11>>0]|0)<0)b=c[b>>2]|0;return b|0}function qj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0;m=c+-1|0;j=b+(c<<2)|0;h=b+4|0;n=+f[b>>2];o=+f[h>>2]-n;n=+f[j>>2]-n;p=+y(+n,+o)+3.141592653589793;f[a>>2]=p;n=+u(+(o*o+n*n));f[a+4>>2]=n;g=1;e=j;while(1){i=a+8|0;e=e+4|0;if(g>>>0>=m>>>0)break;l=h+4|0;o=+f[l>>2]-+f[h+-4>>2];p=+f[e>>2]-+f[h>>2];n=+y(+p,+o)+3.141592653589793;f[i>>2]=n;p=+u(+(o*o+p*p));f[a+12>>2]=p;g=g+1|0;h=l;a=i}l=d+-1|0;p=+f[h>>2];o=p-+f[h+-4>>2];p=+f[e>>2]-p;n=+y(+p,+o)+3.141592653589793;f[i>>2]=n;p=+u(+(o*o+p*p));f[a+12>>2]=p;k=1;g=i;d=j+(c<<2)|0;h=b;a=j;while(1){e=g+8|0;if(k>>>0>=l>>>0)break;j=a+4|0;o=+f[j>>2]-+f[a>>2];p=+f[d>>2]-+f[h>>2];n=+y(+p,+o)+3.141592653589793;f[e>>2]=n;p=+u(+(o*o+p*p));f[g+12>>2]=p;i=1;g=g+16|0;while(1){a=d+4|0;e=h+4|0;if(i>>>0>=m>>>0)break;q=j+4|0;o=+f[q>>2]-+f[j+-4>>2];p=+f[a>>2]-+f[e>>2];n=+y(+p,+o)+3.141592653589793;f[g>>2]=n;p=+u(+(o*o+p*p));f[g+4>>2]=p;i=i+1|0;d=a;h=e;j=q;g=g+8|0}o=+f[j>>2]-+f[j+-4>>2];p=+f[a>>2]-+f[e>>2];n=+y(+p,+o)+3.141592653589793;f[g>>2]=n;p=+u(+(o*o+p*p));f[g+4>>2]=p;k=k+1|0;d=d+8|0;h=h+8|0;a=j+4|0}h=b+((B(l,c)|0)<<2)|0;a=h+(0-c<<2)|0;q=h+4|0;p=+f[h>>2];o=+f[q>>2]-p;p=p-+f[a>>2];n=+y(+p,+o)+3.141592653589793;f[e>>2]=n;p=+u(+(o*o+p*p));f[g+12>>2]=p;h=1;g=q;while(1){d=e+8|0;a=a+4|0;if(h>>>0>=m>>>0)break;q=g+4|0;o=+f[q>>2]-+f[g+-4>>2];p=+f[g>>2]-+f[a>>2];n=+y(+p,+o)+3.141592653589793;f[d>>2]=n;p=+u(+(o*o+p*p));f[e+12>>2]=p;h=h+1|0;e=d;g=q}p=+f[g>>2];o=p-+f[g+-4>>2];p=p-+f[a>>2];n=+y(+p,+o)+3.141592653589793;f[d>>2]=n;p=+u(+(o*o+p*p));f[e+12>>2]=p;return}function rj(a){a=a|0;return 536870911}function sj(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;a=a+12|0;b=a+40|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function tj(a){a=a|0;mh(a+40|0);gh(a+28|0);return}function uj(a,b,d,e,g,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=+i;j=+j;k=k|0;l=+l;var m=0,n=0,o=0;c[a>>2]=e;n=a+4|0;c[n>>2]=g;c[a+8>>2]=h;f[a+12>>2]=i;f[a+16>>2]=j;c[a+20>>2]=k;f[a+24>>2]=l;fh(a+28|0,h);o=a+40|0;Rg(o,B(c[n>>2]|0,c[a>>2]|0)|0);k=0;while(1){if((k|0)==(e|0))break;a=B(k,g)|0;m=b>>>k;n=d>>>k;h=0;while(1){if((h|0)==(g|0))break;cq((c[o>>2]|0)+(h+a<<5)|0,2,m,n,-1,2);h=h+1|0}k=k+1|0}return}function vj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=zb;zb=zb+16|0;f=g;e=a+40|0;a=0;while(1){d=Ah(b)|0;if(a>>>0>=(c[d+4>>2]|0)-(c[d>>2]|0)>>5>>>0){a=3;break}d=Ah(b)|0;d=(c[d>>2]|0)+(a<<5)|0;h=Ng(d)|0;if((h|0)!=((Ei(d)|0)>>>2|0)){a=5;break}j=wj((c[e>>2]|0)+(a<<5)|0)|0;i=xj(d)|0;h=Ng(d)|0;qj(j,i,h,Og(d)|0);a=a+1|0}if((a|0)==3){zb=g;return}else if((a|0)==5){j=Xf(Xf(PE(Xf(Xf(Xf(56032,27784)|0,27845)|0,35e3)|0,96)|0,35007)|0,27934)|0;IE(f,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(f,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(f);QE(j,i)|0;ME(j)|0;ua()}}function wj(a){a=a|0;return c[a+24>>2]|0}function xj(a){a=a|0;return c[a+24>>2]|0}function yj(a,b,d,e,g,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;i=+i;j=+j;k=+k;var l=0,m=0,n=0.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,C=0,D=0,E=0,F=0,G=0;F=zb;zb=zb+48|0;D=F+32|0;E=F+24|0;w=F+16|0;x=F+12|0;y=F+8|0;z=F+4|0;C=F;if(!(i>=0.0)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,27975)|0,27845)|0,35e3)|0,119)|0,35007)|0,28005)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}l=a+4|0;v=(B(c[l>>2]|0,e)|0)+g|0;m=a+40|0;if(!(+((Ng((c[m>>2]|0)+(v<<5)|0)|0)>>>0)>i)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,28024)|0,27845)|0,35e3)|0,120)|0,35007)|0,28104)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}if(!(j>=0.0)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,28140)|0,27845)|0,35e3)|0,121)|0,35007)|0,28170)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}v=(B(c[l>>2]|0,e)|0)+g|0;if(!(+((Og((c[m>>2]|0)+(v<<5)|0)|0)>>>0)>j)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,28189)|0,27845)|0,35e3)|0,122)|0,35007)|0,28270)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}q=(B(c[l>>2]|0,e)|0)+g|0;q=(c[m>>2]|0)+(q<<5)|0;if((ah(q)|0)!=2){v=Xf(Xf(PE(Xf(Xf(Xf(56032,28307)|0,27845)|0,35e3)|0,126)|0,35007)|0,28348)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}c[d>>2]=0;e=~~(i+.5);l=~~(j+.5);a:do if(((e|0)>=0?!((l|0)<0|(Ng(q)|0)>>>0<=e>>>0):0)?(Og(q)|0)>>>0>l>>>0:0){n=+zj(1.0,+f[a+12>>2]*k);s=-1.0/(+ji(n)*2.0);n=n*+f[a+16>>2];t=+A(+(+ji(n)));m=~~(n+.5);p=Aj(0,e-m|0)|0;o=Bj(m+e|0,(Ng(q)|0)+-1|0)|0;e=Aj(0,l-m|0)|0;m=Bj(m+l|0,(Og(q)|0)+-1|0)|0;u=a+28|0;v=c[u>>2]|0;Cj(v,(c[a+32>>2]|0)-v>>2);v=a+8|0;while(1){if((e|0)>(m|0))break;k=+ji(+(e|0)-j);g=ch(q,e)|0;l=p;while(1){if((l|0)>(o|0))break;n=k+ +ji(+(l|0)-i);if(!(n>t)){G=g+(l<<1<<2)|0;n=+Dj(s*n);r=c[v>>2]|0;Ej(c[u>>2]|0,+f[G>>2]*+(r|0)*.159154943091895,n*+f[G+4>>2],r)}l=l+1|0}e=e+1|0}l=a+20|0;e=0;while(1){if((e|0)>=(c[l>>2]|0))break;G=c[u>>2]|0;Fj(G,G,c[v>>2]|0,15720);e=e+1|0}l=c[v>>2]|0;e=0;s=0.0;while(1){if((e|0)>=(l|0))break;j=+f[(c[u>>2]|0)+(e<<2)>>2];e=e+1|0;s=j>s?j:s}if(!(s==0.0)){if(!(s>0.0)){G=Xf(Xf(PE(Xf(Xf(Xf(56032,28379)|0,27845)|0,35e3)|0,218)|0,35007)|0,28417)|0;IE(D,G+(c[(c[G>>2]|0)+-12>>2]|0)|0);r=XF(D,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(D);QE(G,r)|0;ME(G)|0;ua()}p=D+4|0;q=E+4|0;r=w+4|0;o=a+24|0;m=0;e=l;while(1){if((m|0)>=(e|0))break a;n=+(m|0);f[D>>2]=n;l=c[u>>2]|0;G=l+(m<<2)|0;a=c[G>>2]|0;c[p>>2]=a;g=m+-1|0;f[E>>2]=+(g|0);g=c[l+(((g+e|0)%(e|0)|0)<<2)>>2]|0;c[q>>2]=g;m=m+1|0;f[w>>2]=+(m|0);l=c[l+(((m+e|0)%(e|0)|0)<<2)>>2]|0;c[r>>2]=l;k=(c[h>>2]=a,+f[h>>2]);if(+f[G>>2]>s*+f[o>>2]?(j=(c[h>>2]=l,+f[h>>2]),k>(c[h>>2]=g,+f[h>>2])&k>j):0){f[C>>2]=n;if(Gj(x,y,z,E,D,w)|0)Hj(C,+f[x>>2],+f[y>>2],+f[z>>2])|0;j=+(c[v>>2]|0);e=c[d>>2]|0;f[b+(e<<2)>>2]=(+f[C>>2]+.5+j)/j*6.283185307179586%6.283185307179586;c[d>>2]=e+1;e=c[v>>2]|0}}}}while(0);zb=F;return}function zj(a,b){a=+a;b=+b;return +(a>b?a:b)}function Aj(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function Bj(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}function Cj(a,b){a=a|0;b=b|0;aP(a|0,0,b<<2|0)|0;return}function Dj(a){a=+a;return +(((((((a+6.0)*a+30.0)*a+120.0)*a+360.0)*a+720.0)*a+720.0)*.0013888888)}function Ej(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var g=0.0,h=0,i=0,j=0,k=0,l=0;j=zb;zb=zb+16|0;i=j;if(!a){h=Xf(Xf(PE(Xf(Xf(Xf(56032,28448)|0,28484)|0,35e3)|0,139)|0,35007)|0,28571)|0;IE(i,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(h,k)|0;ME(h)|0;ua()}if(b+.5>0.0?(g=b+-.5,g<+(e|0)):0){if(!(d>=0.0)){k=Xf(Xf(PE(Xf(Xf(Xf(56032,28702)|0,28484)|0,35e3)|0,141)|0,35007)|0,28740)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(k,h)|0;ME(k)|0;ua()}if((e|0)<=-1){k=Xf(Xf(PE(Xf(Xf(Xf(56032,28769)|0,28484)|0,35e3)|0,142)|0,35007)|0,28806)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(k,h)|0;ME(k)|0;ua()}k=~~+s(+g);b=b-+(k|0)+-.5;g=1.0-b;h=(k+e|0)%(e|0)|0;e=(k+1|0)%(e|0)|0;if(!(g>=0.0)){k=Xf(Xf(PE(Xf(Xf(Xf(56032,28835)|0,28484)|0,35e3)|0,150)|0,35007)|0,28866)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);l=XF(i,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(i);QE(k,l)|0;ME(k)|0;ua()}if(!(b>=0.0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,28886)|0,28484)|0,35e3)|0,151)|0,35007)|0,28917)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}if((h|0)<=-1){l=Xf(Xf(PE(Xf(Xf(Xf(56032,28937)|0,28484)|0,35e3)|0,152)|0,35007)|0,28985)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}if((e|0)>-1){l=a+(h<<2)|0;f[l>>2]=g*d+ +f[l>>2];l=a+(e<<2)|0;f[l>>2]=b*d+ +f[l>>2];zb=j;return}else{l=Xf(Xf(PE(Xf(Xf(Xf(56032,29011)|0,28484)|0,35e3)|0,153)|0,35007)|0,29059)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}}l=Xf(Xf(PE(Xf(Xf(Xf(56032,28597)|0,28484)|0,35e3)|0,140)|0,35007)|0,28662)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}function Fj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0.0;k=+f[b>>2];g=c+-1|0;h=b+(g<<2)|0;i=d+4|0;j=d+8|0;e=+f[h>>2];c=0;while(1){if((c|0)==(g|0))break;m=+f[b+(c<<2)>>2];l=c+1|0;f[a+(c<<2)>>2]=e*+f[d>>2]+m*+f[i>>2]+ +f[j>>2]*+f[b+(l<<2)>>2];e=m;c=l}f[a+(g<<2)>>2]=e*+f[d>>2]+ +f[i>>2]*+f[h>>2]+k*+f[j>>2];return}function Gj(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0.0;h=+f[g>>2];k=+f[e>>2];l=+f[d>>2];j=h-l;h=(h-k)*j;i=l-k;j=i*j;if(i==0.0|(h==0.0|j==0.0)){f[a>>2]=0.0;f[b>>2]=0.0;b=0;h=0.0}else{l=l*l;m=e+4|0;n=+f[m>>2];e=d+4|0;h=(+f[g+4>>2]-n)/h-(+f[e>>2]-n)/j;f[a>>2]=h;h=(+f[e>>2]-+f[m>>2]+(k*k-l)*h)/i;f[b>>2]=h;b=1;h=+f[e>>2]-l*+f[a>>2]-h*+f[d>>2]}f[c>>2]=h;return b|0}function Hj(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;if(b==0.0)a=0;else{f[a>>2]=-c/(b*2.0);a=1}return a|0}function Ij(a){a=a|0;var b=0,d=0;c[a>>2]=0;d=tB(24)|0;Jj(d);b=c[a>>2]|0;c[a>>2]=d;if(b|0){Kj(b);SA(b)}return}function Jj(a){a=a|0;var b=0,d=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=1065353216;d=tB(840)|0;$j(d);b=c[a>>2]|0;c[a>>2]=d;if(b|0){Mj(b);SA(b)}return}function Kj(a){a=a|0;var b=0;Lj(a+4|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0){Mj(b);SA(b)}return}function Lj(a){a=a|0;Yj(a);return}function Mj(a){a=a|0;Nj(a+788|0);kp(a+652|0);Oj(a+636|0);Pj(a+316|0);yh(a+160|0);Qi(a+92|0);Qj(a+72|0);Rj(a+64|0);Sj(a+12|0);return}function Nj(a){a=a|0;Wj(a+24|0);Xj(a+12|0);gh(a);return}function Oj(a){a=a|0;Sj(a);return}function Pj(a){a=a|0;return}function Qj(a){a=a|0;Tj(a);return}function Rj(a){a=a|0;var b=0,d=0;a=c[a+4>>2]|0;if(a|0?(d=a+4|0,b=c[d>>2]|0,c[d>>2]=b+-1,(b|0)==0):0){Sb[c[(c[a>>2]|0)+8>>2]&255](a);_N(a)}return}function Sj(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Tj(a){a=a|0;var b=0;Uj(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function Uj(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;Vj(b+8|0);Pf(b,20);b=a}return}function Vj(a){a=a|0;Rj(a+4|0);return}function Wj(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Xj(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Yj(a){a=a|0;var b=0;Zj(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function Zj(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;_j(b+8|0);Pf(b,24);b=a}return}function _j(a){a=a|0;lg(a+4|0);return}function $j(b){b=b|0;var d=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;d=b+64|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[d+20>>2]=0;c[b+88>>2]=1065353216;_i(b+92|0);d=b+160|0;dh(d);Gp(b+316|0);ak(b+636|0);jp(b+652|0);bk(b+788|0,.009999999776482582,1024,1064,50);ck(d,3.0);dk(d,4.0);eh(d,500);f[b+4>>2]=3.0;c[b>>2]=8;a[b+8>>0]=1;return}function ak(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;f[a+12>>2]=.699999988079071;return}function bk(a,b,d,e,f){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=a;h=g+36|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));ek(a,b,d,e,f);return}function ck(a,b){a=a|0;b=+b;f[a+52>>2]=b;return}function dk(a,b){a=a|0;b=+b;f[a+56>>2]=b;return}function ek(a,b,d,e,g){a=a|0;b=+b;d=d|0;e=e|0;g=g|0;fh(a,d*9|0);fk(a+24|0,d);f[a+36>>2]=b;c[a+40>>2]=d;c[a+44>>2]=e;c[a+48>>2]=g;return}function fk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>3;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<3)}else gk(a,b-e|0);return}function gk(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>3>>>0>>0){d=(d-(c[a>>2]|0)>>3)+b|0;e=ik(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>2;jk(f,k>>3>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>3,a+8|0);kk(f,b);lk(a,f);mk(f);break}}else hk(a,b);while(0);zb=i;return}function hk(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b<<3|0)|0;c[a>>2]=d+(b<<3);return}function ik(a){a=a|0;return 536870911}function jk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function kk(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b<<3|0)|0;c[a>>2]=d+(b<<3);return}function lk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function mk(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-8|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function nk(a){a=a|0;var b=0;b=c[a>>2]|0;c[a>>2]=0;if(b|0){Kj(b);SA(b)}return}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(!h)if(e>>>0>>0)d=e;else d=(e>>>0)%(f>>>0)|0;else d=g&e;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(e|0)){if((c[b+8>>2]|0)==(e|0))break a}else{if(!h){if(a>>>0>=f>>>0)a=(a>>>0)%(f>>>0)|0}else a=a&g;if((a|0)!=(d|0)){b=0;break a}}}else b=0}else b=0;while(0);return b|0}function pk(a){a=a|0;return a+4|0}function qk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=0;while(1){if((b|0)<(c|0)|(a|0)<(c|0))break;d=d+1|0;b=b>>1;a=a>>1}return d|0}function rk(a){a=a|0;return c[a>>2]|0}function sk(a){a=a|0;return c[a+4>>2]|0}function tk(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;bm(a+8|0);cm(a+36|0);return}function uk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;d=zb;zb=zb+16|0;e=d;c[a>>2]=b;f=tB(16)|0;c[f+4>>2]=0;c[f+8>>2]=0;c[f>>2]=15740;c[f+12>>2]=b;c[a+4>>2]=f;c[e>>2]=b;c[e+4>>2]=b;Rl(a,e);zb=d;return}function vk(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function wk(a,b){a=a|0;b=b|0;c[a+4>>2]=b;return}function xk(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;k=zb;zb=zb+32|0;i=k+20|0;j=k;if(!d){h=Xf(Xf(PE(Xf(Xf(Xf(56032,33588)|0,30067)|0,35e3)|0,212)|0,35007)|0,33688)|0;IE(i,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);l=XF(i,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(i);QE(h,l)|0;ME(h)|0;ua()}if(!e){l=Xf(Xf(PE(Xf(Xf(Xf(56032,30146)|0,30067)|0,35e3)|0,213)|0,35007)|0,30178)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(l,h)|0;ME(l)|0;ua()}l=Ah(d)|0;if((c[l+4>>2]|0)==(c[l>>2]|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,30195)|0,30067)|0,35e3)|0,214)|0,35007)|0,30247)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(l,h)|0;ME(l)|0;ua()}l=Ah(d)|0;l=Ng(c[l>>2]|0)|0;if((l|0)!=(rk(e)|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,30264)|0,30067)|0,35e3)|0,215)|0,35007)|0,30337)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(l,h)|0;ME(l)|0;ua()}l=Ah(d)|0;l=Og(c[l>>2]|0)|0;if((l|0)!=(sk(e)|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,30372)|0,30067)|0,35e3)|0,216)|0,35007)|0,30337)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(l,h)|0;ME(l)|0;ua()}Rh(e,d);h=Ml(e)|0;Nl(i,((c[h+4>>2]|0)-(c[h>>2]|0)|0)/36|0);h=0;while(1){l=Ml(e)|0;if(h>>>0>=(((c[l+4>>2]|0)-(c[l>>2]|0)|0)/36|0)>>>0)break;l=Ml(e)|0;l=c[l>>2]|0;gg(j,+f[l+(h*36|0)>>2],+f[l+(h*36|0)+4>>2],+f[l+(h*36|0)+8>>2],+f[l+(h*36|0)+28>>2],+f[l+(h*36|0)+24>>2]>0.0);l=(c[i>>2]|0)+(h*20|0)|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];a[l+16>>0]=a[j+16>>0]|0;Of(j);h=h+1|0}Hp(g,zk(b)|0,d,i);Nf(i);zb=k;return}function yk(){if((a[54528]|0)==0?nB(54528)|0:0){sq(55464);pB(54528)}return 55464}function zk(a){a=a|0;return a+8|0}function Ak(a){a=a|0;return ((c[a+20>>2]|0)-(c[a+16>>2]|0)|0)/20|0|0}function Bk(a){a=a|0;var b=0,d=0;d=a+36|0;Gk(d,128);Hk(d,8);Ik(d,8);Jk(d,16);a=a+8|0;b=Kk(a)|0;b=c[b>>2]|0;Lk(d,b,Ak(a)|0);return}function Ck(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){Dk(r,a,q,57660,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;Ek(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+12|0}function Dk(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(20)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];c[h+12>>2]=0;c[h+16>>2]=0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function Ek(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Fk(a,b)}}else Fk(a,b);return}function Fk(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function Gk(a,b){a=a|0;b=b|0;Ll(a+12|0,b);return}function Hk(a,b){a=a|0;b=b|0;Kl(a+12|0,b);return}function Ik(a,b){a=a|0;b=b|0;c[a+104>>2]=b;return}function Jk(a,b){a=a|0;b=b|0;c[a+108>>2]=b;return}function Kk(a){a=a|0;return a+4|0}function Lk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;g=i;Mk(g,d);f=c[g>>2]|0;h=(c[g+4>>2]|0)-f>>2;e=0;while(1){if((e|0)==(h|0))break;c[f+(e<<2)>>2]=e;e=e+1|0}Nk(a,b,d,f,h);Xj(g);zb=i;return}function Mk(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){Jl(a,b);Fl(a,b)}return}function Nk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=tB(128)|0;Pk(g,Ok(a)|0);i=a+8|0;h=c[i>>2]|0;c[i>>2]=g;if(h){Qk(h);SA(h);g=c[i>>2]|0}Rk(g,0);Sk(a,c[i>>2]|0,b,d,e,f);return}function Ok(a){a=a|0;var b=0;b=a+4|0;a=c[b>>2]|0;c[b>>2]=a+1;return a|0}function Pk(b,d){b=b|0;d=d|0;c[b>>2]=d;a[b+100>>0]=1;d=b+104|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[d+20>>2]=0;Il(b+4|0,96);return}function Qk(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+104|0;f=a+108|0;d=0;while(1){b=c[e>>2]|0;if(d>>>0>=(c[f>>2]|0)-b>>2>>>0)break;b=c[b+(d<<2)>>2]|0;if(b|0){Qk(b);SA(b)}d=d+1|0}Xj(a+116|0);Hl(e);return}function Rk(b,c){b=b|0;c=c|0;a[b+100>>0]=c&1;return}function Sk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=zb;zb=zb+32|0;o=q+20|0;p=q;h=a+12|0;n=Tk(h)|0;if((Aj(n,c[a+108>>2]|0)|0)>=(g|0)){Rk(b,1);Vk(Uk(b)|0,g);h=0;while(1){if((h|0)>=(g|0))break;o=c[f+(h<<2)>>2]|0;p=Uk(b)|0;c[(c[p>>2]|0)+(h<<2)>>2]=o;h=h+1|0}zb=q;return}c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=1065353216;Wk(h,d,e,f,g);m=Xk(h)|0;n=m+4|0;i=c[n>>2]|0;h=c[m>>2]|0;if((i-h>>2|0)!=(g|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,29134)|0,29190)|0,35e3)|0,363)|0,35007)|0,29284)|0;IE(o,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(o,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(o);QE(l,k)|0;ME(l)|0;ua()}l=0;while(1){if(l>>>0>=i-h>>2>>>0){h=10;break}h=c[h+(l<<2)>>2]|0;if((h|0)==-1){h=12;break}if((h|0)>=(g|0)){h=14;break}h=f+(h<<2)|0;if((c[h>>2]|0)>=(e|0)){h=16;break}h=Yk(p,h)|0;i=f+(l<<2)|0;j=h+4|0;k=c[j>>2]|0;if((k|0)==(c[h+8>>2]|0))Zk(h,i);else{c[k>>2]=c[i>>2];c[j>>2]=k+4}l=l+1|0;h=c[m>>2]|0;i=c[n>>2]|0}if((h|0)==10){h=p+12|0;a:do if((c[h>>2]|0)==1){Rk(b,1);Vk(Uk(b)|0,g);h=0;while(1){if((h|0)>=(g|0))break a;e=c[f+(h<<2)>>2]|0;o=Uk(b)|0;c[(c[o>>2]|0)+(h<<2)>>2]=e;h=h+1|0}}else{g=_k(b)|0;$k(g,c[h>>2]|0);h=p+8|0;while(1){h=c[h>>2]|0;if(!h)break a;i=h;l=i+12|0;m=i+16|0;if((c[m>>2]|0)==(c[l>>2]|0))break;j=tB(128)|0;k=Ok(a)|0;al(j,k,d+((c[i+8>>2]|0)*96|0)|0);c[o>>2]=j;Rk(j,0);i=_k(b)|0;j=i+4|0;k=c[j>>2]|0;if((k|0)==(c[i+8>>2]|0))bl(i,o);else{c[k>>2]=c[o>>2];c[j>>2]=(c[j>>2]|0)+4}g=c[l>>2]|0;Sk(a,c[o>>2]|0,d,e,g,(c[m>>2]|0)-g>>2)}b=Xf(Xf(PE(Xf(Xf(Xf(56032,29507)|0,29190)|0,35e3)|0,387)|0,35007)|0,29553)|0;IE(o,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);e=XF(o,56736)|0;e=Ib[c[(c[e>>2]|0)+28>>2]&63](e,10)|0;YF(o);QE(b,e)|0;ME(b)|0;ua()}while(0);cl(p);zb=q;return}else if((h|0)==12){q=Xf(Xf(PE(Xf(Xf(Xf(56032,29306)|0,29190)|0,35e3)|0,365)|0,35007)|0,29349)|0;IE(o,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);b=XF(o,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(o);QE(q,b)|0;ME(q)|0;ua()}else if((h|0)==14){q=Xf(Xf(PE(Xf(Xf(Xf(56032,29371)|0,29190)|0,35e3)|0,366)|0,35007)|0,29422)|0;IE(o,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);b=XF(o,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(o);QE(q,b)|0;ME(q)|0;ua()}else if((h|0)==16){q=Xf(Xf(PE(Xf(Xf(Xf(56032,29446)|0,29190)|0,35e3)|0,367)|0,35007)|0,29422)|0;IE(o,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);b=XF(o,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(o);QE(q,b)|0;ME(q)|0;ua()}}function Tk(a){a=a|0;return c[a+4>>2]|0}function Uk(a){a=a|0;return a+116|0}function Vk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<2)}else El(a,b-e|0);return}function Wk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+16|0;o=s;p=a+4|0;g=c[p>>2]|0;q=a+12|0;r=a+16|0;if((g|0)!=((c[r>>2]|0)-(c[q>>2]|0)>>2|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29590)|0,29635)|0,35e3)|0,154)|0,35007)|0,29707)|0;IE(o,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(o,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(o);QE(n,m)|0;ME(n)|0;ua()}if((d|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29752)|0,29635)|0,35e3)|0,155)|0,35007)|0,29792)|0;IE(o,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(o,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(o);QE(n,m)|0;ME(n)|0;ua()}if((f|0)>(d|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29828)|0,29635)|0,35e3)|0,156)|0,35007)|0,29879)|0;IE(o,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(o,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(o);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>(f|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29906)|0,29635)|0,35e3)|0,157)|0,35007)|0,29947)|0;IE(o,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(o,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(o);QE(n,m)|0;ME(n)|0;ua()}j=a+24|0;c[o>>2]=-1;sl(j,f,o);k=a+36|0;c[o>>2]=-1;sl(k,f,o);l=a+48|0;Vk(l,f);n=c[l>>2]|0;m=a+52|0;tl(n,(c[m>>2]|0)-n>>2,0);n=a+8|0;g=-1;i=0;while(1){if((i|0)>=(c[n>>2]|0))break;h=c[l>>2]|0;ul(h,(c[m>>2]|0)-h>>2,c[p>>2]|0,c[a>>2]|0);h=vl(a,k,b,d,e,f,c[l>>2]|0,c[p>>2]|0)|0;if(h>>>0>>0){wl(j,k);xl(c[q>>2]|0,c[l>>2]|0,c[p>>2]|0);g=h}i=i+1|0}if((c[p>>2]|0)==((c[r>>2]|0)-(c[q>>2]|0)>>2|0)){zb=s;return}else{s=Xf(Xf(PE(Xf(Xf(Xf(56032,29590)|0,29635)|0,35e3)|0,187)|0,35007)|0,29707)|0;IE(o,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);r=XF(o,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(o);QE(s,r)|0;ME(s)|0;ua()}}function Xk(a){a=a|0;return a+24|0}function Yk(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){pl(r,a,q,57660,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;ql(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+12|0}function Zk(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>2)+1|0;g=ll(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>1;ml(d,k>>2>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>2,a+8|0);g=d+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[g>>2]=f+4;nl(a,d);ol(d);zb=h;return}}function _k(a){a=a|0;return a+104|0}function $k(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+32|0;d=f;e=c[a>>2]|0;if((c[a+8>>2]|0)-e>>2>>>0>>0){hl(d,b,(c[a+4>>2]|0)-e>>2,a+8|0);il(a,d);jl(d)}zb=f;return}function al(b,d,e){b=b|0;d=d|0;e=e|0;c[b>>2]=d;a[b+100>>0]=1;d=b+104|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[d+20>>2]=0;kl(b+4|0,e,96);return}function bl(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>2)+1|0;g=gl(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>1;hl(d,k>>2>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>2,a+8|0);g=d+8|0;c[c[g>>2]>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;il(a,d);jl(d);zb=h;return}}function cl(a){a=a|0;dl(a);return}function dl(a){a=a|0;var b=0;el(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function el(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;fl(b+8|0);Pf(b,24);b=a}return}function fl(a){a=a|0;Xj(a+4|0);return}function gl(a){a=a|0;return 1073741823}function hl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>1073741823){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<2)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function il(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function jl(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-4|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function kl(a,b,c){a=a|0;b=b|0;c=c|0;_O(a|0,b|0,c|0)|0;return}function ll(a){a=a|0;return 1073741823}function ml(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>1073741823){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<2)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function nl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function ol(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-4|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function pl(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(24)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function ql(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)rl(a,b)}}else rl(a,b);return}function rl(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function sl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+4|0;g=c[a>>2]|0;f=(c[e>>2]|0)-g>>2;if(f>>>0>=b>>>0){if(f>>>0>b>>>0)c[e>>2]=g+(b<<2)}else Cl(a,b-f|0,d);return}function tl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a:do if((b|0)>=1){c[a>>2]=d;e=1;while(1){if((e|0)==(b|0))break a;f=d+1|0;c[a+(e<<2)>>2]=f;e=e+1|0;d=f}}while(0);return}function ul(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;f=0;while(1){if((f|0)>=(d|0))break;i=a+(f<<2)|0;g=a+(((Bl(e)|0)%(b|0)|0)<<2)|0;h=c[i>>2]|0;c[i>>2]=c[g>>2];c[g>>2]=h;f=f+1|0}return}function vl(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+16|0;a=o;if(((c[b+4>>2]|0)-(c[b>>2]|0)>>2|0)!=(g|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29134)|0,29635)|0,35e3)|0,198)|0,35007)|0,29967)|0;IE(a,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(a,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(a);QE(n,m)|0;ME(n)|0;ua()}if((e|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29752)|0,29635)|0,35e3)|0,199)|0,35007)|0,29792)|0;IE(a,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(a,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(a);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>(e|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29828)|0,29635)|0,35e3)|0,200)|0,35007)|0,29879)|0;IE(a,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(a,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(a);QE(n,m)|0;ME(n)|0;ua()}if((i|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29996)|0,29635)|0,35e3)|0,201)|0,35007)|0,30035)|0;IE(a,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(a,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(a);QE(n,m)|0;ME(n)|0;ua()}k=0;m=0;while(1){if((m|0)>=(g|0))break;n=f+(m<<2)|0;l=0;a=-1;while(1){if((l|0)==(i|0))break;e=h+(l<<2)|0;j=yl(d+((c[n>>2]|0)*96|0)|0,d+((c[f+(c[e>>2]<<2)>>2]|0)*96|0)|0)|0;if(j>>>0>>0){c[(c[b>>2]|0)+(m<<2)>>2]=c[e>>2];a=j}l=l+1|0}k=a+k|0;m=m+1|0}zb=o;return k|0}function wl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;b=b+8|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function xl(a,b,c){a=a|0;b=b|0;c=c|0;_O(a|0,b|0,c<<2|0)|0;return}function yl(a,b){a=a|0;b=b|0;return zl(a,b)|0}function zl(a,b){a=a|0;b=b|0;var d=0;d=Al(c[a>>2]|0,c[b>>2]|0)|0;d=(Al(c[a+4>>2]|0,c[b+4>>2]|0)|0)+d|0;d=d+(Al(c[a+8>>2]|0,c[b+8>>2]|0)|0)|0;d=d+(Al(c[a+12>>2]|0,c[b+12>>2]|0)|0)|0;d=d+(Al(c[a+16>>2]|0,c[b+16>>2]|0)|0)|0;d=d+(Al(c[a+20>>2]|0,c[b+20>>2]|0)|0)|0;d=d+(Al(c[a+24>>2]|0,c[b+24>>2]|0)|0)|0;d=d+(Al(c[a+28>>2]|0,c[b+28>>2]|0)|0)|0;d=d+(Al(c[a+32>>2]|0,c[b+32>>2]|0)|0)|0;d=d+(Al(c[a+36>>2]|0,c[b+36>>2]|0)|0)|0;d=d+(Al(c[a+40>>2]|0,c[b+40>>2]|0)|0)|0;d=d+(Al(c[a+44>>2]|0,c[b+44>>2]|0)|0)|0;d=d+(Al(c[a+48>>2]|0,c[b+48>>2]|0)|0)|0;d=d+(Al(c[a+52>>2]|0,c[b+52>>2]|0)|0)|0;d=d+(Al(c[a+56>>2]|0,c[b+56>>2]|0)|0)|0;d=d+(Al(c[a+60>>2]|0,c[b+60>>2]|0)|0)|0;d=d+(Al(c[a+64>>2]|0,c[b+64>>2]|0)|0)|0;d=d+(Al(c[a+68>>2]|0,c[b+68>>2]|0)|0)|0;d=d+(Al(c[a+72>>2]|0,c[b+72>>2]|0)|0)|0;d=d+(Al(c[a+76>>2]|0,c[b+76>>2]|0)|0)|0;d=d+(Al(c[a+80>>2]|0,c[b+80>>2]|0)|0)|0;d=d+(Al(c[a+84>>2]|0,c[b+84>>2]|0)|0)|0;d=d+(Al(c[a+88>>2]|0,c[b+88>>2]|0)|0)|0;return d+(Al(c[a+92>>2]|0,c[b+92>>2]|0)|0)|0}function Al(a,b){a=a|0;b=b|0;b=b^a;b=b-(b>>>1&1431655765)|0;b=(b>>>2&858993459)+(b&858993459)|0;return (B((b>>>4)+b&252645135,16843009)|0)>>>24|0}function Bl(a){a=a|0;var b=0;b=((c[a>>2]|0)*214013|0)+2531011|0;c[a>>2]=b;return b>>>16&32767|0}function Cl(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;k=zb;zb=zb+32|0;h=k;i=a+8|0;j=a+4|0;e=c[j>>2]|0;g=e;do if((c[i>>2]|0)-e>>2>>>0>>0){e=(e-(c[a>>2]|0)>>2)+b|0;f=ll(a)|0;if(f>>>0>>0)EO(a);else{g=c[a>>2]|0;l=(c[i>>2]|0)-g|0;i=l>>1;ml(h,l>>2>>>0>>1>>>0?(i>>>0>>0?e:i):f,(c[j>>2]|0)-g>>2,a+8|0);Dl(h,b,d);nl(a,h);ol(h);break}}else{e=b;f=g;while(1){c[f>>2]=c[d>>2];e=e+-1|0;if(!e)break;else f=f+4|0}c[j>>2]=g+(b<<2)}while(0);zb=k;return}function Dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=a+8|0;e=c[f>>2]|0;a=b;g=e;while(1){c[g>>2]=c[d>>2];a=a+-1|0;if(!a)break;else g=g+4|0}c[f>>2]=e+(b<<2);return}function El(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>2>>>0>>0){d=(d-(c[a>>2]|0)>>2)+b|0;e=ll(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>1;ml(f,k>>2>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>2,a+8|0);Gl(f,b);nl(a,f);ol(f);break}}else Fl(a,b);while(0);zb=i;return}function Fl(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b<<2|0)|0;c[a>>2]=d+(b<<2);return}function Gl(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b<<2|0)|0;c[a>>2]=d+(b<<2);return}function Hl(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Il(a,b){a=a|0;b=b|0;aP(a|0,0,b|0)|0;return}function Jl(a,b){a=a|0;b=b|0;var d=0;if((ll(a)|0)>>>0>>0)EO(a);if(b>>>0>1073741823){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b<<2)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<2);return}}function Kl(a,b){a=a|0;b=b|0;c[a+4>>2]=b;Vk(a+12|0,b);return}function Ll(a,b){a=a|0;b=b|0;c[a+8>>2]=b;return}function Ml(a){a=a|0;return a+60|0}function Nl(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){Ol(a,b);Pl(a,b)}return}function Ol(a,b){a=a|0;b=b|0;var d=0;if((ug(a)|0)>>>0>>0)EO(a);if(b>>>0>214748364){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b*20|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*20|0);return}}function Pl(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{Ql(b);b=(c[d>>2]|0)+20|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Ql(b){b=b|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;a[b+16>>0]=1;return}function Rl(a,b){a=a|0;b=b|0;return}function Sl(a){a=a|0;Tl(a+36|0);Ul(a+8|0);return}function Tl(a){a=a|0;var b=0;Vl(a+84|0);Xj(a+72|0);Wl(a+12|0);b=a+8|0;a=c[b>>2]|0;c[b>>2]=0;if(a|0){Qk(a);SA(a)}return}function Ul(a){a=a|0;Nf(a+16|0);Mf(a+4|0);return}function Vl(a){a=a|0;Xl(a);return}function Wl(a){a=a|0;Xj(a+48|0);Xj(a+36|0);Xj(a+24|0);Xj(a+12|0);return}function Xl(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-8|0;Yl(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function Yl(a){a=a|0;return}function Zl(a){a=a|0;ZN(a);SA(a);return}function _l(a){a=a|0;a=c[a+12>>2]|0;if(a|0){Sl(a);SA(a)}return}function $l(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==30447?a+12|0:0)|0}function am(a){a=a|0;Pf(a,16);return}function bm(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function cm(a){a=a|0;var b=0,d=0;c[a>>2]=1234;c[a+4>>2]=0;c[a+8>>2]=0;b=a+12|0;dm(b,a);d=a+72|0;c[a+100>>2]=0;c[a+104>>2]=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[d+20>>2]=0;c[a+108>>2]=16;Kl(b,8);Ll(b,1);return}function dm(a,b){a=a|0;b=b|0;c[a>>2]=b;a=a+4|0;b=a+56|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function em(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;l=zb;zb=zb+32|0;m=l+24|0;j=l+12|0;k=l+16|0;n=l+8|0;i=l;c[j>>2]=h;h=tB(148)|0;tk(h);c[n>>2]=0;c[m>>2]=c[n>>2];uk(k,h,m);vk(c[k>>2]|0,f);wk(c[k>>2]|0,g);fm(zk(c[k>>2]|0)|0,96);g=gm(zk(c[k>>2]|0)|0)|0;f=b+4|0;hm(g,((c[f>>2]|0)-(c[b>>2]|0)|0)/20|0);g=gm(zk(c[k>>2]|0)|0)|0;if((g|0)!=(b|0))im(g,c[b>>2]|0,c[f>>2]|0);g=Kk(zk(c[k>>2]|0)|0)|0;f=d+4|0;jm(g,(c[f>>2]|0)-(c[d>>2]|0)|0);g=Kk(zk(c[k>>2]|0)|0)|0;if((g|0)!=(d|0))km(g,c[d>>2]|0,c[f>>2]|0);Bk(c[k>>2]|0);f=c[c[a>>2]>>2]|0;c[i>>2]=c[k>>2];g=c[k+4>>2]|0;c[i+4>>2]=g;if(g|0){n=g+4|0;c[n>>2]=(c[n>>2]|0)+1}lm(f,i,c[j>>2]|0);Rj(i);f=mm((c[a>>2]|0)+4|0,j)|0;if((f|0)!=(e|0))nm(f,c[e>>2]|0,c[e+4>>2]|0);Rj(k);zb=l;return}function fm(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function gm(a){a=a|0;return a+16|0}function hm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c[a>>2]|0;e=(d-f|0)/20|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0){a=f+(b*20|0)|0;while(1){if((d|0)==(a|0))break;f=d+-20|0;Of(f);d=f}c[g>>2]=a}}else Cm(a,b-e|0);return}function im(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;e=b;l=(d-e|0)/20|0;f=a+8|0;i=c[a>>2]|0;g=i;do if(l>>>0>(((c[f>>2]|0)-i|0)/20|0)>>>0){Bm(a);e=ug(a)|0;if(e>>>0>>0)EO(a);else{j=((c[f>>2]|0)-(c[a>>2]|0)|0)/20|0;k=j<<1;Ol(a,j>>>0>>1>>>0?(k>>>0>>0?l:k):e);Am(a,b,d,l);break}}else{k=a+4|0;j=((c[k>>2]|0)-i|0)/20|0;h=l>>>0>j>>>0;j=h?b+(j*20|0)|0:d;e=j-e|0;if(e|0)$O(i|0,b|0,e|0)|0;f=g+(((e|0)/20|0)*20|0)|0;if(h){Am(a,j,d,l-(((c[k>>2]|0)-(c[a>>2]|0)|0)/20|0)|0);break}e=c[k>>2]|0;while(1){if((e|0)==(f|0))break;l=e+-20|0;Of(l);e=l}c[k>>2]=f}while(0);return}function jm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+b}else xm(a,b-e|0);return}function km(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;i=b;k=d-i|0;f=a+8|0;e=c[a>>2]|0;j=e;do if(k>>>0>((c[f>>2]|0)-e|0)>>>0){vm(a);e=mg(a)|0;if(e>>>0>>0)EO(a);else{i=(c[f>>2]|0)-(c[a>>2]|0)|0;j=i<<1;wm(a,i>>>0>>1>>>0?(j>>>0>>0?k:j):e);um(a,b,d,k);break}}else{h=a+4|0;g=(c[h>>2]|0)-e|0;f=k>>>0>g>>>0;g=f?b+g|0:d;e=g-i|0;if(e|0)$O(j|0,b|0,e|0)|0;if(f){um(a,g,d,k-(c[h>>2]|0)+(c[a>>2]|0)|0);break}else{c[h>>2]=j+e;break}}while(0);return}function lm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i+4|0;e=i;c[e>>2]=d;a=a+72|0;if(ok(a,e)|0){i=O(16)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;gO(h,29085,Yf(29085)|0);mj(i,h);Q(i|0,13208,5)}f=Ck(a,e)|0;g=c[b>>2]|0;c[h>>2]=g;e=h+4|0;a=c[b+4>>2]|0;c[e>>2]=a;if(!a){d=e;a=0}else{d=a+4|0;c[d>>2]=(c[d>>2]|0)+1;d=e;a=c[e>>2]|0}c[h>>2]=c[f>>2];c[f>>2]=g;b=f+4|0;c[d>>2]=c[b>>2];c[b>>2]=a;Rj(h);zb=i;return}function mm(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){rm(r,a,q,57660,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;sm(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+12|0}function nm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=b;k=(d-e|0)/12|0;f=a+8|0;j=c[a>>2]|0;i=j;do if(k>>>0>(((c[f>>2]|0)-j|0)/12|0)>>>0){pm(a);e=qg(a)|0;if(e>>>0>>0)EO(a);else{i=((c[f>>2]|0)-(c[a>>2]|0)|0)/12|0;j=i<<1;qm(a,i>>>0>>1>>>0?(j>>>0>>0?k:j):e);om(a,b,d,k);break}}else{f=a+4|0;h=((c[f>>2]|0)-j|0)/12|0;g=k>>>0>h>>>0;h=g?b+(h*12|0)|0:d;e=h-e|0;if(e|0)$O(j|0,b|0,e|0)|0;if(g){om(a,h,d,k-(((c[f>>2]|0)-(c[a>>2]|0)|0)/12|0)|0);break}else{c[f>>2]=i+(((e|0)/12|0)*12|0);break}}while(0);return}function om(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a+4|0;a=d-b|0;if((a|0)>0){_O(c[e>>2]|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+(((a>>>0)/12|0)*12|0)}return}function pm(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;d=b;if(b|0){e=a+4|0;c[e>>2]=d;f=a+8|0;Pf(b,(c[f>>2]|0)-d|0);c[f>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function qm(a,b){a=a|0;b=b|0;var d=0;if((qg(a)|0)>>>0>>0)EO(a);if(b>>>0>357913941){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b*12|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*12|0);return}}function rm(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(24)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function sm(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)tm(a,b)}}else tm(a,b);return}function tm(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function um(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a+4|0;a=d-b|0;if((a|0)>0){_O(c[e>>2]|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a}return}function vm(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;d=b;if(b|0){e=a+4|0;c[e>>2]=d;f=a+8|0;Pf(b,(c[f>>2]|0)-d|0);c[f>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function wm(a,b){a=a|0;b=b|0;var d=0;if((mg(a)|0)>>>0>>0)EO(a);else{d=tB(b)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+b;return}}function xm(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if(((c[g>>2]|0)-d|0)>>>0>>0){d=d-(c[a>>2]|0)+b|0;e=mg(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k<<1;ng(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j|0,a+8|0);zm(f,b);og(a,f);pg(f);break}}else ym(a,b);while(0);zb=i;return}function ym(b,d){b=b|0;d=d|0;var e=0;e=b+4|0;b=d;d=c[e>>2]|0;do{a[d>>0]=0;d=(c[e>>2]|0)+1|0;c[e>>2]=d;b=b+-1|0}while((b|0)!=0);return}function zm(b,d){b=b|0;d=d|0;var e=0;e=b+8|0;b=d;d=c[e>>2]|0;do{a[d>>0]=0;d=(c[e>>2]|0)+1|0;c[e>>2]=d;b=b+-1|0}while((b|0)!=0);return}function Am(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=a+4|0;while(1){if((b|0)==(d|0))break;e=c[a>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[a>>2]=(c[a>>2]|0)+20;b=b+20|0}return}function Bm(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-20|0;Of(f);b=f}c[e>>2]=d;d=c[a>>2]|0;f=a+8|0;Pf(d,(c[f>>2]|0)-d|0);c[f>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function Cm(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((((c[g>>2]|0)-d|0)/20|0)>>>0>>0){d=((d-(c[a>>2]|0)|0)/20|0)+b|0;e=ug(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=((c[g>>2]|0)-j|0)/20|0;g=k<<1;vg(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,((c[h>>2]|0)-j|0)/20|0,a+8|0);Dm(f,b);wg(a,f);xg(f);break}}else Pl(a,b);while(0);zb=i;return}function Dm(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{Ql(b);b=(c[d>>2]|0)+20|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Em(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+32|0;g=f;kq(g,b,1,d,e,d,1);e=Fm(c[c[a>>2]>>2]|0,g)|0;rq(g);zb=f;return e|0}function Fm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=zb;zb=zb+32|0;d=f;e=a+92|0;g=pk(e)|0;if(!(((c[g+4>>2]|0)!=(c[g>>2]|0)?(g=pk(e)|0,g=Ng(c[g>>2]|0)|0,(g|0)==(Ng(b)|0)):0)?(g=pk(e)|0,g=Og(c[g>>2]|0)|0,(g|0)==(Og(b)|0)):0)){g=Ng(b)|0;g=qk(g,Og(b)|0,8)|0;h=Ng(b)|0;$i(e,h,Og(b)|0,g)}Bq(d,29103);if(Sh(d)|0)ij(e,b);Cq(d);h=Gm(a,e)|0;zb=f;return h|0}function Gm(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;k=zb;zb=zb+64|0;e=k+16|0;j=k;g=k+56|0;h=k+48|0;i=b+160|0;l=rk(i)|0;f=Ah(d)|0;if(!((l|0)==(Ng(c[f>>2]|0)|0)?(f=sk(i)|0,l=Ah(d)|0,(f|0)==(Og(c[l>>2]|0)|0)):0))zh(i,d);f=b+64|0;m=tB(148)|0;tk(m);c[h>>2]=0;c[e>>2]=c[h>>2];uk(g,m,e);m=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=m;m=g+4|0;l=b+68|0;h=c[m>>2]|0;c[m>>2]=c[l>>2];c[l>>2]=h;Rj(g);l=c[f>>2]|0;h=Ah(d)|0;vk(l,Ng(c[h>>2]|0)|0);h=c[f>>2]|0;l=Ah(d)|0;wk(h,Og(c[l>>2]|0)|0);Bq(e,29117);if(Sh(e)|0)xk(c[f>>2]|0,d,i,b+316|0);Cq(e);m=yk()|0;Zp(e);i=(a[e+11>>0]|0)<0?c[e>>2]|0:e;l=Ak(zk(c[f>>2]|0)|0)|0;c[j>>2]=35129;c[j+4>>2]=i;c[j+8>>2]=30646;c[j+12>>2]=l;uq(m,8,30602,j);jO(e);m=Hm(b,c[f>>2]|0)|0;zb=k;return m|0}function Hm(b,d){b=b|0;d=d|0;var e=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;D=zb;zb=zb+144|0;s=D+104|0;w=D;x=D+72|0;y=D+40|0;z=b+12|0;A=b+16|0;c[A>>2]=c[z>>2];B=b+24|0;c[B>>2]=-1;k=Jm(Im(d)|0)|0;l=b+8|0;m=b+636|0;n=b+652|0;o=s+4|0;p=s+8|0;q=b+788|0;r=x+4|0;t=x+8|0;u=b+4|0;v=b+28|0;e=b+80|0;while(1){e=c[e>>2]|0;if(!e)break;Bq(s,30936);do if(Sh(s)|0){E=(a[l>>0]|0)==0;g=Im(d)|0;j=e;h=j+12|0;i=zk(c[h>>2]|0)|0;if(E){E=Mm(m,g,i)|0;if(E>>>0>=(c[b>>2]|0)>>>0){C=9;break}}else{E=Lm(m,g,i,Km(c[h>>2]|0)|0)|0;if(E>>>0>=(c[b>>2]|0)>>>0){C=9;break}}Cq(s)}else{j=e;h=j+12|0;C=9}while(0);do if((C|0)==9){C=0;Cq(s);i=gm(zk(c[h>>2]|0)|0)|0;Bq(s,30953);if(Sh(s)|0){G=Nm(m)|0;F=Om(d)|0;E=Pm(d)|0;g=Om(c[h>>2]|0)|0;g=Qm(n,k,i,G,F,E,g,Pm(c[h>>2]|0)|0)|0;if((g|0)<0){Cq(s);break}}else g=-1;Cq(s);c[s>>2]=0;c[o>>2]=0;c[p>>2]=0;Bq(w,30970);if(Sh(w)|0)Rm(s,n,Nm(m)|0,g,1.0);Cq(w);Bq(x,30993);if(Sh(x)|0?(G=Om(c[h>>2]|0)|0,!(Sm(w,k,i,s,q,G,Pm(c[h>>2]|0)|0)|0)):0)Cq(x);else{Cq(x);c[x>>2]=0;c[r>>2]=0;c[t>>2]=0;Bq(y,31017);if(Sh(y)|0?(Tm(x,w,k,i,s,+f[u>>2]),(c[r>>2]|0)-(c[x>>2]|0)>>3>>>0<(c[b>>2]|0)>>>0):0)Cq(y);else C=20;do if((C|0)==20){C=0;Cq(y);Bq(y,31034);if(Sh(y)|0?(G=Im(d)|0,G=Um(m,G,zk(c[h>>2]|0)|0,w,10.0)|0,G>>>0<(c[b>>2]|0)>>>0):0){Cq(y);break}Cq(y);Bq(y,31051);if(Sh(y)|0){E=Nm(m)|0;F=Om(d)|0;G=Pm(d)|0;g=Om(c[h>>2]|0)|0;g=Qm(n,k,i,E,F,G,g,Pm(c[h>>2]|0)|0)|0;if((g|0)<0){Cq(y);break}}Cq(y);Bq(y,31068);if(Sh(y)|0)Rm(s,n,Nm(m)|0,g,1.0);Cq(y);Bq(y,31091);if(Sh(y)|0?(G=Om(c[h>>2]|0)|0,!(Sm(w,k,i,s,q,G,Pm(c[h>>2]|0)|0)|0)):0){Cq(y);break}Cq(y);c[r>>2]=c[x>>2];Bq(y,31115);if(Sh(y)|0)Tm(x,w,k,i,s,+f[u>>2]);Cq(y);G=(c[r>>2]|0)-(c[x>>2]|0)>>3;if(G>>>0>=(c[b>>2]|0)>>>0?G>>>0>(c[A>>2]|0)-(c[z>>2]|0)>>3>>>0:0){Vm(v,w);Wm(z,x);c[B>>2]=c[j+8>>2]}}while(0);Sj(x)}Sj(s)}while(0)}zb=D;return (c[B>>2]|0)>-1|0}function Im(a){a=a|0;return a+8|0}function Jm(a){a=a|0;return a+16|0}function Km(a){a=a|0;return a+36|0} function Wu(e,f){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;v=c[e+468>>2]|0;p=e+280|0;if(c[p>>2]|0){q=v+56|0;g=c[q>>2]|0;if(!g){if(!(Gb[c[(c[e+464>>2]|0)+8>>2]&127](e)|0)){u=c[e>>2]|0;c[u+20>>2]=25;Sb[c[u>>2]&255](e)}h=e+340|0;if((c[h>>2]|0)>0){i=e+224|0;j=e+412|0;k=e+436|0;l=e+420|0;g=0;do{m=c[e+344+(g<<2)>>2]|0;if(c[i>>2]|0)if(!(c[j>>2]|0)){if(!(c[l>>2]|0))r=10}else r=13;else r=10;do if((r|0)==10){r=0;n=c[v+60+(c[m+20>>2]<<2)>>2]|0;o=n+64|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));c[v+24+(g<<2)>>2]=0;c[v+40+(g<<2)>>2]=0;if(!(c[i>>2]|0))if(!(c[k>>2]|0))break;else{r=13;break}else if(!(c[j>>2]|0))break;else{r=13;break}}while(0);if((r|0)==13){r=0;aP(c[v+124+(c[m+24>>2]<<2)>>2]|0,0,256)|0}g=g+1|0}while((g|0)<(c[h>>2]|0))}c[v+12>>2]=0;c[v+16>>2]=0;c[v+20>>2]=-16;g=c[p>>2]|0;c[q>>2]=g}c[q>>2]=g+-1}u=v+20|0;if((c[u>>2]|0)==-1)return 1;p=c[e+432>>2]|0;q=e+368|0;if((c[q>>2]|0)<=0)return 1;r=e+436|0;s=v+188|0;o=0;a:while(1){t=c[f+(o<<2)>>2]|0;l=c[e+372+(o<<2)>>2]|0;n=c[e+344+(l<<2)>>2]|0;j=c[n+20>>2]|0;h=v+60+(j<<2)|0;k=v+40+(l<<2)|0;g=(c[h>>2]|0)+(c[k>>2]|0)|0;if(!(Xu(e,g)|0)){c[k>>2]=0;g=c[v+24+(l<<2)>>2]|0}else{m=Xu(e,g+1|0)|0;i=g+2+m|0;g=Xu(e,i)|0;if(g){h=(c[h>>2]|0)+20|0;if(!(Xu(e,h)|0))i=h;else while(1){g=g<<1;if((g|0)==32768){r=26;break a}h=h+1|0;if(!(Xu(e,h)|0)){i=h;break}}}else g=0;do if((g|0)>=(1<<(d[e+232+j>>0]|0)>>1|0)){h=m<<2;if((g|0)>(1<<(d[e+248+j>>0]|0)>>1|0)){h=h+12|0;break}else{h=h+4|0;break}}else h=0;while(0);c[k>>2]=h;i=i+14|0;h=g>>1;if(h)do{k=(Xu(e,i)|0)==0;g=(k?0:h)|g;h=h>>1}while((h|0)!=0);l=v+24+(l<<2)|0;g=(c[l>>2]|0)+((m|0)==0?g+1|0:~g)|0;c[l>>2]=g}b[t>>1]=g;b:do if(c[r>>2]|0){m=c[n+24>>2]|0;l=v+124+(m<<2)|0;m=e+264+m|0;g=0;while(1){h=(c[l>>2]|0)+(g*3|0)|0;if(Xu(e,h)|0)break b;j=g+1|0;if(!(Xu(e,h+1|0)|0)){i=h;g=j;while(1){if((g|0)>=(c[r>>2]|0)){r=42;break a}h=i+3|0;j=g+1|0;if(!(Xu(e,i+4|0)|0)){i=h;g=j}else break}}k=Xu(e,s)|0;h=h+2|0;i=Xu(e,h)|0;if(i){if(Xu(e,h)|0){i=i<<1;h=(c[l>>2]|0)+((g|0)<(d[m>>0]|0|0)?189:217)|0;if(!(Xu(e,h)|0))g=i;else{g=i;do{g=g<<1;if((g|0)==32768){r=49;break a}h=h+1|0}while((Xu(e,h)|0)!=0)}}else g=i;i=h+14|0;h=g>>1;if(h)do{n=(Xu(e,i)|0)==0;g=(n?0:h)|g;h=h>>1}while((h|0)!=0)}else g=0;b[t+(c[p+(j<<2)>>2]<<1)>>1]=(k|0)==0?g+1|0:g^65535;if((j|0)<(c[r>>2]|0))g=j;else break}}while(0);o=o+1|0;if((o|0)>=(c[q>>2]|0)){r=56;break}}if((r|0)==26){v=c[e>>2]|0;c[v+20>>2]=117;Ub[c[v+4>>2]&63](e,-1);c[u>>2]=-1;return 1}else if((r|0)==42){v=c[e>>2]|0;c[v+20>>2]=117;Ub[c[v+4>>2]&63](e,-1);c[u>>2]=-1;return 1}else if((r|0)==49){v=c[e>>2]|0;c[v+20>>2]=117;Ub[c[v+4>>2]&63](e,-1);c[u>>2]=-1;return 1}else if((r|0)==56)return 1;return 0}function Xu(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;g=c[b+468>>2]|0;m=g+16|0;f=c[m>>2]|0;k=g+20|0;if((f|0)<32768){h=b+440|0;j=b+24|0;i=g+12|0;f=c[k>>2]|0;while(1){g=f+-1|0;c[k>>2]=g;if((f|0)<1){if(!(c[h>>2]|0)){f=c[j>>2]|0;g=f+4|0;if((c[g>>2]|0)==0?(Gb[c[f+12>>2]&127](b)|0)==0:0){l=c[b>>2]|0;c[l+20>>2]=25;Sb[c[l>>2]&255](b)}c[g>>2]=(c[g>>2]|0)+-1;l=c[f>>2]|0;c[f>>2]=l+1;l=a[l>>0]|0;f=l&255;a:do if(l<<24>>24==-1){b:while(1){f=c[j>>2]|0;g=f+4|0;if((c[g>>2]|0)==0?(Gb[c[f+12>>2]&127](b)|0)==0:0){l=c[b>>2]|0;c[l+20>>2]=25;Sb[c[l>>2]&255](b)}c[g>>2]=(c[g>>2]|0)+-1;l=c[f>>2]|0;c[f>>2]=l+1;f=a[l>>0]|0;switch(f<<24>>24){case 0:{f=255;break a}case -1:break;default:break b}}c[h>>2]=f&255;f=0}while(0);g=c[k>>2]|0}else f=0;c[i>>2]=c[i>>2]<<8|f;f=g+8|0;c[k>>2]=f;if((g|0)<-8){f=g+9|0;c[k>>2]=f;if(!f){c[m>>2]=32768;g=0}else g=f}else g=f}f=c[m>>2]<<1;c[m>>2]=f;if((f|0)<32768)f=g;else break}}else{i=g+12|0;g=c[k>>2]|0}j=d[e>>0]|0;b=c[3360+((j&127)<<2)>>2]|0;k=b>>8;l=b>>16;h=f-l|0;c[m>>2]=h;f=h<>2]|0;if((g|0)>=(f|0)){c[i>>2]=g-f;c[m>>2]=l;f=j&128;if((h|0)<(l|0)){a[e>>0]=f^k;e=j;e=e>>7;return e|0}else{a[e>>0]=f^b;e=j^128;e=e>>7;return e|0}}if((h|0)>=32768){e=j;e=e>>7;return e|0}f=j&128;if((h|0)<(l|0)){a[e>>0]=f^b;e=j^128;e=e>>7;return e|0}else{a[e>>0]=f^k;e=j;e=e>>7;return e|0}return 0}function Yu(a){a=a|0;var d=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.0,u=0;n=c[a+472>>2]|0;o=a+36|0;if((c[o>>2]|0)<=0)return;r=a+72|0;l=0;m=c[a+216>>2]|0;i=0;j=0;while(1){d=c[m+36>>2]|0;h=m+40|0;a:do switch((d<<8)+(c[h>>2]|0)|0){case 257:{d=0;k=13;break}case 514:{d=0;k=14;break}case 771:{d=0;k=15;break}case 1028:{d=0;k=16;break}case 1285:{d=0;k=17;break}case 1542:{d=0;k=18;break}case 1799:{d=0;k=19;break}case 2313:{d=0;k=20;break}case 2570:{d=0;k=21;break}case 2827:{d=0;k=22;break}case 3084:{d=0;k=23;break}case 3341:{d=0;k=24;break}case 3598:{d=0;k=25;break}case 3855:{d=0;k=26;break}case 4112:{d=0;k=27;break}case 4104:{d=0;k=28;break}case 3591:{d=0;k=29;break}case 3078:{d=0;k=30;break}case 2565:{d=0;k=31;break}case 2052:{d=0;k=32;break}case 1539:{d=0;k=33;break}case 1026:{d=0;k=34;break}case 513:{d=0;k=35;break}case 2064:{d=0;k=36;break}case 1806:{d=0;k=37;break}case 1548:{d=0;k=38;break}case 1290:{d=0;k=39;break}case 1032:{d=0;k=40;break}case 774:{d=0;k=41;break}case 516:{d=0;k=42;break}case 258:{d=0;k=43;break}case 2056:{d=c[r>>2]|0;switch(d|0){case 0:{k=44;break a}case 1:{k=45;break a}case 2:{k=46;break a}default:{d=c[a>>2]|0;c[d+20>>2]=49;Sb[c[d>>2]&255](a);d=i;k=j;break a}}}default:{k=c[a>>2]|0;c[k+20>>2]=7;c[k+24>>2]=d;c[(c[a>>2]|0)+28>>2]=c[h>>2];Sb[c[c[a>>2]>>2]&255](a);d=i;k=j}}while(0);c[n+4+(l<<2)>>2]=k;b:do if((c[m+52>>2]|0?(p=n+44+(l<<2)|0,(c[p>>2]|0)!=(d|0)):0)?(q=c[m+80>>2]|0,q|0):0){c[p>>2]=d;switch(d|0){case 0:{i=c[m+84>>2]|0;h=0;do{c[i+(h<<2)>>2]=e[q+(h<<1)>>1];h=h+1|0}while((h|0)!=64);break}case 1:{i=c[m+84>>2]|0;h=0;do{j=(B(b[5248+(h<<1)>>1]|0,e[q+(h<<1)>>1]|0)|0)+2048>>12;c[i+(h<<2)>>2]=j;h=h+1|0}while((h|0)!=64);break}case 2:{j=c[m+84>>2]|0;h=0;i=0;while(1){t=+g[5376+(h<<3)>>3];f[j+(i<<2)>>2]=t*+(e[q+(i<<1)>>1]|0)*.125;s=i|1;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*1.387039845*.125;s=s+1|0;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*1.306562965*.125;s=i|3;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*1.175875602*.125;u=s+1|0;f[j+(u<<2)>>2]=t*+(e[q+(u<<1)>>1]|0)*.125;u=s+2|0;f[j+(u<<2)>>2]=t*+(e[q+(u<<1)>>1]|0)*.785694958*.125;s=s+3|0;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*.5411961*.125;s=i|7;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*.275899379*.125;h=h+1|0;if((h|0)==8)break;else i=i+8|0}break}default:{u=c[a>>2]|0;c[u+20>>2]=49;Sb[c[u>>2]&255](a);break b}}}while(0);l=l+1|0;if((l|0)>=(c[o>>2]|0))break;else{m=m+88|0;i=d;j=k}}return}function Zu(d,e,g,h,i){d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0.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.0,w=0.0,x=0.0,y=0.0,z=0.0;q=zb;zb=zb+256|0;j=q;o=c[d+336>>2]|0;n=j;m=c[e+84>>2]|0;l=8;while(1){e=b[g+16>>1]|0;d=b[g+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[g+48>>1]|0)==0?(b[g+64>>1]|0)==0:0)?(b[g+80>>1]|0)==0:0)?(b[g+96>>1]|0)==0:0)?(b[g+112>>1]|0)==0:0){k=+f[m>>2]*+(b[g>>1]|0);f[n>>2]=k;f[n+32>>2]=k;f[n+64>>2]=k;f[n+96>>2]=k;f[n+128>>2]=k;f[n+160>>2]=k;f[n+192>>2]=k;d=56}else{d=0;p=9}else p=9;if((p|0)==9){p=0;r=+f[m>>2]*+(b[g>>1]|0);x=+f[m+64>>2]*+(d<<16>>16);w=+f[m+128>>2]*+(b[g+64>>1]|0);t=+f[m+192>>2]*+(b[g+96>>1]|0);v=r+w;w=r-w;r=x+t;t=(x-t)*1.4142135381698608-r;x=v+r;r=v-r;v=w+t;t=w-t;w=+f[m+32>>2]*+(e<<16>>16);u=+f[m+96>>2]*+(b[g+48>>1]|0);z=+f[m+160>>2]*+(b[g+80>>1]|0);k=+f[m+224>>2]*+(b[g+112>>1]|0);s=u+z;u=z-u;z=w+k;k=w-k;w=s+z;y=(u+k)*1.8477590084075928;u=y-u*2.613126039505005-w;s=(z-s)*1.4142135381698608-u;k=y-k*1.0823922157287598-s;f[n>>2]=x+w;f[n+224>>2]=x-w;f[n+32>>2]=v+u;f[n+192>>2]=v-u;f[n+64>>2]=t+s;f[n+160>>2]=t-s;f[n+96>>2]=r+k;k=r-k;d=32}f[n+(d<<2)>>2]=k;if(l>>>0>1){n=n+4|0;m=m+4|0;g=g+2|0;l=l+-1|0}else break}e=o+-384|0;d=0;while(1){p=(c[h+(d<<2)>>2]|0)+i|0;s=+f[j>>2]+512.5;t=+f[j+16>>2];u=s+t;t=s-t;s=+f[j+8>>2];w=+f[j+24>>2];y=s+w;w=(s-w)*1.4142135381698608-y;s=u+y;y=u-y;u=t+w;w=t-w;t=+f[j+20>>2];v=+f[j+12>>2];x=t+v;v=t-v;t=+f[j+4>>2];z=+f[j+28>>2];k=t+z;z=t-z;t=x+k;r=(v+z)*1.8477590084075928;v=r-v*2.613126039505005-t;x=(k-x)*1.4142135381698608-v;z=r-z*1.0823922157287598-x;a[p>>0]=a[e+(~~(s+t)&1023)>>0]|0;a[p+7>>0]=a[e+(~~(s-t)&1023)>>0]|0;a[p+1>>0]=a[e+(~~(u+v)&1023)>>0]|0;a[p+6>>0]=a[e+(~~(u-v)&1023)>>0]|0;a[p+2>>0]=a[e+(~~(w+x)&1023)>>0]|0;a[p+5>>0]=a[e+(~~(w-x)&1023)>>0]|0;a[p+3>>0]=a[e+(~~(y+z)&1023)>>0]|0;a[p+4>>0]=a[e+(~~(y-z)&1023)>>0]|0;d=d+1|0;if((d|0)==8)break;else j=j+32|0}zb=q;return}function _u(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;o=zb;zb=zb+256|0;m=o;l=c[d+336>>2]|0;k=m;j=c[e+84>>2]|0;i=8;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){d=B(c[j>>2]|0,b[f>>1]|0)|0;c[k>>2]=d;c[k+32>>2]=d;c[k+64>>2]=d;c[k+96>>2]=d;c[k+128>>2]=d;c[k+160>>2]=d;c[k+192>>2]=d;e=56}else{d=0;n=9}else n=9;if((n|0)==9){n=0;p=B(c[j>>2]|0,b[f>>1]|0)|0;u=B(c[j+64>>2]|0,d<<16>>16)|0;t=B(c[j+128>>2]|0,b[f+64>>1]|0)|0;q=B(c[j+192>>2]|0,b[f+96>>1]|0)|0;s=t+p|0;t=p-t|0;p=q+u|0;q=((u-q|0)*362>>8)-p|0;u=p+s|0;p=s-p|0;s=q+t|0;q=t-q|0;t=B(c[j+32>>2]|0,e<<16>>16)|0;r=B(c[j+96>>2]|0,b[f+48>>1]|0)|0;w=B(c[j+160>>2]|0,b[f+80>>1]|0)|0;d=B(c[j+224>>2]|0,b[f+112>>1]|0)|0;e=w+r|0;r=w-r|0;w=d+t|0;d=t-d|0;t=w+e|0;v=(d+r|0)*473>>8;r=v-(r*669>>8)-t|0;e=((w-e|0)*362>>8)-r|0;d=v-(d*277>>8)-e|0;c[k>>2]=t+u;c[k+224>>2]=u-t;c[k+32>>2]=r+s;c[k+192>>2]=s-r;c[k+64>>2]=e+q;c[k+160>>2]=q-e;c[k+96>>2]=d+p;d=p-d|0;e=32}c[k+(e<<2)>>2]=d;if(i>>>0>1){k=k+4|0;j=j+4|0;f=f+2|0;i=i+-1|0}else break}l=l+-384|0;k=0;e=m;while(1){f=(c[g+(k<<2)>>2]|0)+h|0;i=(c[e>>2]|0)+16400|0;j=c[e+4>>2]|0;d=c[e+8>>2]|0;if(!(j|d))if(((((c[e+12>>2]|0)==0?(c[e+16>>2]|0)==0:0)?(c[e+20>>2]|0)==0:0)?(c[e+24>>2]|0)==0:0)?(c[e+28>>2]|0)==0:0){w=a[l+(i>>>5&1023)>>0]|0;a[f>>0]=w;aP(f+1|0,w|0,7)|0}else{d=0;n=19}else n=19;if((n|0)==19){n=0;w=c[e+16>>2]|0;r=w+i|0;w=i-w|0;t=c[e+24>>2]|0;v=t+d|0;t=((d-t|0)*362>>8)-v|0;p=v+r|0;v=r-v|0;r=t+w|0;t=w-t|0;w=c[e+20>>2]|0;s=c[e+12>>2]|0;u=s+w|0;s=w-s|0;w=c[e+28>>2]|0;i=w+j|0;w=j-w|0;q=i+u|0;m=(w+s|0)*473>>8;s=m-(s*669>>8)-q|0;u=((i-u|0)*362>>8)-s|0;w=m-(w*277>>8)-u|0;a[f>>0]=a[l+((q+p|0)>>>5&1023)>>0]|0;a[f+7>>0]=a[l+((p-q|0)>>>5&1023)>>0]|0;a[f+1>>0]=a[l+((s+r|0)>>>5&1023)>>0]|0;a[f+6>>0]=a[l+((r-s|0)>>>5&1023)>>0]|0;a[f+2>>0]=a[l+((u+t|0)>>>5&1023)>>0]|0;a[f+5>>0]=a[l+((t-u|0)>>>5&1023)>>0]|0;a[f+3>>0]=a[l+((w+v|0)>>>5&1023)>>0]|0;a[f+4>>0]=a[l+((v-w|0)>>>5&1023)>>0]|0}k=k+1|0;if((k|0)==8)break;else e=e+32|0}zb=o;return}function $u(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;d=(c[d+336>>2]|0)+-384|0;i=c[e+84>>2]|0;e=(B(c[i>>2]|0,b[f>>1]|0)|0)+4100|0;f=B(c[i+32>>2]|0,b[f+16>>1]|0)|0;a[(c[g>>2]|0)+h>>0]=a[d+((f+e|0)>>>3&1023)>>0]|0;a[(c[g+4>>2]|0)+h>>0]=a[d+((e-f|0)>>>3&1023)>>0]|0;return}function av(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=zb;zb=zb+32|0;j=i;d=c[d+336>>2]|0;k=c[e+84>>2]|0;n=B(c[k>>2]|0,b[f>>1]|0)|0;q=B(c[k+64>>2]|0,b[f+32>>1]|0)|0;e=q+n<<13;q=n-q<<13;n=B(c[k+32>>2]|0,b[f+16>>1]|0)|0;l=B(c[k+96>>2]|0,b[f+48>>1]|0)|0;p=(l+n|0)*4433|0;n=p+(n*6270|0)|0;l=p+(B(l,-15137)|0)|0;p=n+e|0;c[j>>2]=p;c[j+24>>2]=e-n;n=l+q|0;c[j+8>>2]=n;l=q-l|0;c[j+16>>2]=l;q=B(c[k+4>>2]|0,b[f+2>>1]|0)|0;e=B(c[k+68>>2]|0,b[f+34>>1]|0)|0;m=e+q<<13;e=q-e<<13;q=B(c[k+36>>2]|0,b[f+18>>1]|0)|0;k=B(c[k+100>>2]|0,b[f+50>>1]|0)|0;o=(k+q|0)*4433|0;f=o+(q*6270|0)|0;k=o+(B(k,-15137)|0)|0;o=f+m|0;c[j+4>>2]=o;f=m-f|0;c[j+28>>2]=f;m=k+e|0;c[j+12>>2]=m;k=e-k|0;c[j+20>>2]=k;e=d+-384|0;d=(c[g>>2]|0)+h|0;p=p+33587200|0;a[d>>0]=a[e+((p+o|0)>>>16&1023)>>0]|0;a[d+1>>0]=a[e+((p-o|0)>>>16&1023)>>0]|0;d=(c[g+4>>2]|0)+h|0;n=n+33587200|0;a[d>>0]=a[e+((n+m|0)>>>16&1023)>>0]|0;a[d+1>>0]=a[e+((n-m|0)>>>16&1023)>>0]|0;d=(c[g+8>>2]|0)+h|0;l=l+33587200|0;a[d>>0]=a[e+((l+k|0)>>>16&1023)>>0]|0;a[d+1>>0]=a[e+((l-k|0)>>>16&1023)>>0]|0;h=(c[g+12>>2]|0)+h|0;g=(c[j+24>>2]|0)+33587200|0;a[h>>0]=a[e+((g+f|0)>>>16&1023)>>0]|0;a[h+1>>0]=a[e+((g-f|0)>>>16&1023)>>0]|0;zb=i;return}function bv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=zb;zb=zb+80|0;j=i;m=c[d+336>>2]|0;k=c[e+84>>2]|0;t=B(b[f>>1]<<13,c[k>>2]|0)|0|1024;q=B((b[f+64>>1]|0)*5793|0,c[k+128>>2]|0)|0;r=q+t|0;t=(B(q,-2)|0)+t>>11;q=B((b[f+32>>1]|0)*10033|0,c[k+64>>2]|0)|0;l=q+r|0;q=r-q|0;r=B(c[k+32>>2]|0,b[f+16>>1]|0)|0;s=B(c[k+96>>2]|0,b[f+48>>1]|0)|0;e=B(c[k+160>>2]|0,b[f+80>>1]|0)|0;n=(e+r|0)*2998|0;d=n+(s+r<<13)|0;n=n+(e-s<<13)|0;e=r-s-e<<2;c[j>>2]=d+l>>11;c[j+60>>2]=l-d>>11;d=j+12|0;c[d>>2]=e+t;c[j+48>>2]=t-e;c[j+24>>2]=n+q>>11;c[j+36>>2]=q-n>>11;n=j+4|0;q=B(b[f+2>>1]<<13,c[k+4>>2]|0)|0|1024;e=B((b[f+66>>1]|0)*5793|0,c[k+132>>2]|0)|0;t=e+q|0;q=(B(e,-2)|0)+q>>11;e=B((b[f+34>>1]|0)*10033|0,c[k+68>>2]|0)|0;l=e+t|0;e=t-e|0;t=B(c[k+36>>2]|0,b[f+18>>1]|0)|0;s=B(c[k+100>>2]|0,b[f+50>>1]|0)|0;r=B(c[k+164>>2]|0,b[f+82>>1]|0)|0;o=(r+t|0)*2998|0;p=o+(s+t<<13)|0;o=o+(r-s<<13)|0;r=t-s-r<<2;c[n>>2]=p+l>>11;c[j+64>>2]=l-p>>11;c[j+16>>2]=r+q;c[j+52>>2]=q-r;c[j+28>>2]=o+e>>11;c[j+40>>2]=e-o>>11;o=B(b[f+4>>1]<<13,c[k+8>>2]|0)|0|1024;e=B((b[f+68>>1]|0)*5793|0,c[k+136>>2]|0)|0;r=e+o|0;o=(B(e,-2)|0)+o>>11;e=B((b[f+36>>1]|0)*10033|0,c[k+72>>2]|0)|0;q=e+r|0;e=r-e|0;r=B(c[k+40>>2]|0,b[f+20>>1]|0)|0;p=B(c[k+104>>2]|0,b[f+52>>1]|0)|0;k=B(c[k+168>>2]|0,b[f+84>>1]|0)|0;f=(k+r|0)*2998|0;l=f+(p+r<<13)|0;f=f+(k-p<<13)|0;k=r-p-k<<2;p=l+q>>11;c[j+8>>2]=p;c[j+68>>2]=q-l>>11;l=k+o|0;c[j+20>>2]=l;c[j+56>>2]=o-k;k=f+e>>11;c[j+32>>2]=k;c[j+44>>2]=e-f>>11;f=m+-384|0;e=(c[g>>2]|0)+h|0;m=(c[j>>2]<<13)+134348800|0;o=m+(p*5793|0)|0;m=(B(p,-11586)|0)+m|0;n=(c[n>>2]|0)*10033|0;a[e>>0]=a[f+((o+n|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((o-n|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(m>>>18&1023)>>0]|0;e=(c[g+4>>2]|0)+h|0;d=(c[d>>2]<<13)+134348800|0;m=d+(l*5793|0)|0;d=(B(l,-11586)|0)+d|0;l=(c[j+16>>2]|0)*10033|0;a[e>>0]=a[f+((m+l|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((m-l|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(d>>>18&1023)>>0]|0;e=(c[g+8>>2]|0)+h|0;d=(c[j+24>>2]<<13)+134348800|0;l=d+(k*5793|0)|0;d=(B(k,-11586)|0)+d|0;k=(c[j+28>>2]|0)*10033|0;a[e>>0]=a[f+((l+k|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((l-k|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(d>>>18&1023)>>0]|0;e=(c[g+12>>2]|0)+h|0;d=(c[j+36>>2]<<13)+134348800|0;k=c[j+44>>2]|0;l=d+(k*5793|0)|0;d=(B(k,-11586)|0)+d|0;k=(c[j+40>>2]|0)*10033|0;a[e>>0]=a[f+((l+k|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((l-k|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(d>>>18&1023)>>0]|0;e=(c[g+16>>2]|0)+h|0;d=(c[j+48>>2]<<13)+134348800|0;k=c[j+56>>2]|0;l=d+(k*5793|0)|0;d=(B(k,-11586)|0)+d|0;k=(c[j+52>>2]|0)*10033|0;a[e>>0]=a[f+((l+k|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((l-k|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(d>>>18&1023)>>0]|0;h=(c[g+20>>2]|0)+h|0;g=(c[j+60>>2]<<13)+134348800|0;e=c[j+68>>2]|0;d=g+(e*5793|0)|0;g=(B(e,-11586)|0)+g|0;e=(c[j+64>>2]|0)*10033|0;a[h>>0]=a[f+((d+e|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[f+((d-e|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[f+(g>>>18&1023)>>0]|0;zb=i;return}function cv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;o=zb;zb=zb+128|0;m=o;l=c[d+336>>2]|0;k=m;j=c[e+84>>2]|0;i=4;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){d=B(b[f>>1]<<2,c[j>>2]|0)|0;c[k>>2]=d;c[k+16>>2]=d;c[k+32>>2]=d;c[k+48>>2]=d;c[k+64>>2]=d;c[k+80>>2]=d;c[k+96>>2]=d;e=28}else{d=0;n=9}else n=9;if((n|0)==9){n=0;x=B(b[f+64>>1]<<13,c[j+128>>2]|0)|0;p=B(b[f>>1]<<13,c[j>>2]|0)|0|1024;s=x+p|0;x=p-x|0;p=B(c[j+64>>2]|0,d<<16>>16)|0;q=B(c[j+192>>2]|0,b[f+96>>1]|0)|0;u=(q+p|0)*4433|0;p=u+(p*6270|0)|0;q=u+(B(q,-15137)|0)|0;u=p+s|0;p=s-p|0;s=q+x|0;q=x-q|0;d=B(c[j+224>>2]|0,b[f+112>>1]|0)|0;x=B(c[j+160>>2]|0,b[f+80>>1]|0)|0;v=B(c[j+96>>2]|0,b[f+48>>1]|0)|0;t=B(c[j+32>>2]|0,e<<16>>16)|0;r=v+d|0;e=t+x|0;w=(e+r|0)*9633|0;r=w+(B(r,-16069)|0)|0;e=w+(B(e,-3196)|0)|0;w=B(t+d|0,-7373)|0;d=w+(d*2446|0)+r|0;t=w+(t*12299|0)+e|0;w=B(v+x|0,-20995)|0;e=w+(x*16819|0)+e|0;r=w+(v*25172|0)+r|0;c[k>>2]=t+u>>11;c[k+112>>2]=u-t>>11;c[k+16>>2]=r+s>>11;c[k+96>>2]=s-r>>11;c[k+32>>2]=e+q>>11;c[k+80>>2]=q-e>>11;c[k+48>>2]=d+p>>11;d=p-d>>11;e=16}c[k+(e<<2)>>2]=d;if(i>>>0>1){k=k+4|0;j=j+4|0;f=f+2|0;i=i+-1|0}else break}u=l+-384|0;x=(c[g>>2]|0)+h|0;s=(c[m>>2]|0)+16400|0;v=c[m+8>>2]|0;w=s+v<<13;v=s-v<<13;s=c[m+4>>2]|0;t=c[m+12>>2]|0;r=(t+s|0)*4433|0;s=r+(s*6270|0)|0;t=r+(B(t,-15137)|0)|0;a[x>>0]=a[u+((s+w|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((w-s|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((t+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-t|0)>>>18&1023)>>0]|0;x=(c[g+4>>2]|0)+h|0;t=(c[m+16>>2]|0)+16400|0;v=c[m+24>>2]|0;s=t+v<<13;v=t-v<<13;t=c[m+20>>2]|0;w=c[m+28>>2]|0;r=(w+t|0)*4433|0;t=r+(t*6270|0)|0;w=r+(B(w,-15137)|0)|0;a[x>>0]=a[u+((t+s|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((s-t|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((w+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-w|0)>>>18&1023)>>0]|0;x=(c[g+8>>2]|0)+h|0;w=(c[m+32>>2]|0)+16400|0;v=c[m+40>>2]|0;t=w+v<<13;v=w-v<<13;w=c[m+36>>2]|0;s=c[m+44>>2]|0;r=(s+w|0)*4433|0;w=r+(w*6270|0)|0;s=r+(B(s,-15137)|0)|0;a[x>>0]=a[u+((w+t|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((t-w|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((s+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-s|0)>>>18&1023)>>0]|0;x=(c[g+12>>2]|0)+h|0;s=(c[m+48>>2]|0)+16400|0;v=c[m+56>>2]|0;w=s+v<<13;v=s-v<<13;s=c[m+52>>2]|0;t=c[m+60>>2]|0;r=(t+s|0)*4433|0;s=r+(s*6270|0)|0;t=r+(B(t,-15137)|0)|0;a[x>>0]=a[u+((s+w|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((w-s|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((t+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-t|0)>>>18&1023)>>0]|0;x=(c[g+16>>2]|0)+h|0;t=(c[m+64>>2]|0)+16400|0;v=c[m+72>>2]|0;s=t+v<<13;v=t-v<<13;t=c[m+68>>2]|0;w=c[m+76>>2]|0;r=(w+t|0)*4433|0;t=r+(t*6270|0)|0;w=r+(B(w,-15137)|0)|0;a[x>>0]=a[u+((t+s|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((s-t|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((w+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-w|0)>>>18&1023)>>0]|0;x=(c[g+20>>2]|0)+h|0;w=(c[m+80>>2]|0)+16400|0;v=c[m+88>>2]|0;t=w+v<<13;v=w-v<<13;w=c[m+84>>2]|0;s=c[m+92>>2]|0;r=(s+w|0)*4433|0;w=r+(w*6270|0)|0;s=r+(B(s,-15137)|0)|0;a[x>>0]=a[u+((w+t|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((t-w|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((s+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-s|0)>>>18&1023)>>0]|0;x=(c[g+24>>2]|0)+h|0;s=(c[m+96>>2]|0)+16400|0;v=c[m+104>>2]|0;w=s+v<<13;v=s-v<<13;s=c[m+100>>2]|0;t=c[m+108>>2]|0;r=(t+s|0)*4433|0;s=r+(s*6270|0)|0;t=r+(B(t,-15137)|0)|0;a[x>>0]=a[u+((s+w|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((w-s|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((t+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-t|0)>>>18&1023)>>0]|0;x=(c[g+28>>2]|0)+h|0;t=(c[m+112>>2]|0)+16400|0;v=c[m+120>>2]|0;s=t+v<<13;v=t-v<<13;t=c[m+116>>2]|0;w=c[m+124>>2]|0;r=(w+t|0)*4433|0;t=r+(t*6270|0)|0;w=r+(B(w,-15137)|0)|0;a[x>>0]=a[u+((t+s|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((s-t|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((w+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-w|0)>>>18&1023)>>0]|0;zb=o;return}function dv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=zb;zb=zb+208|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){r=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;t=(n*9373|0)+r|0;w=(B(n,-3580)|0)+r|0;r=(B(n,-11586)|0)+r>>11;n=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;p=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;v=(p+n|0)*6810|0;n=v+(n*4209|0)|0;p=v+(B(p,-17828)|0)|0;v=n+t|0;n=t-n|0;t=p+w|0;p=w-p|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;x=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;s=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;q=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;o=q+x|0;q=x-q|0;x=q*2531|0;y=s<<13;z=o*7791|0;f=x+y|0;u=z+(w*11443|0)+f|0;f=(w*1812|0)-z+f|0;o=o*4815|0;x=y-x-(q<<12)|0;q=w-s-q<<2;s=(w*10323|0)-o-x|0;o=x+((w*5260|0)-o)|0;c[k>>2]=u+v>>11;c[k+180>>2]=v-u>>11;c[k+20>>2]=s+t>>11;c[k+160>>2]=t-s>>11;c[k+40>>2]=q+r;c[k+140>>2]=r-q;c[k+60>>2]=o+p>>11;c[k+120>>2]=p-o>>11;c[k+80>>2]=f+n>>11;c[k+100>>2]=n-f>>11;e=e+1|0;if((e|0)==5)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){z=(c[g+(d<<2)>>2]|0)+h|0;y=(c[i>>2]<<13)+134348800|0;x=c[i+8>>2]|0;v=c[i+16>>2]|0;w=(v+x|0)*6476|0;v=x-v|0;x=(v*2896|0)+y|0;u=x+w|0;w=x-w|0;y=(B(v,-11584)|0)+y|0;v=c[i+4>>2]|0;x=c[i+12>>2]|0;t=(x+v|0)*6810|0;v=t+(v*4209|0)|0;x=t+(B(x,-17828)|0)|0;a[z>>0]=a[e+((v+u|0)>>>18&1023)>>0]|0;a[z+4>>0]=a[e+((u-v|0)>>>18&1023)>>0]|0;a[z+1>>0]=a[e+((x+w|0)>>>18&1023)>>0]|0;a[z+3>>0]=a[e+((w-x|0)>>>18&1023)>>0]|0;a[z+2>>0]=a[e+(y>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==10)break;else i=i+20|0}zb=m;return}function ev(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;m=zb;zb=zb+288|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){n=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;z=B((b[d+64>>1]|0)*10033|0,c[j+128>>2]|0)|0;y=z+n|0;z=n-z|0;t=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;r=B(b[d+96>>1]<<13,c[j+192>>2]|0)|0;p=(t<<13)-r|0;v=p+n|0;p=n-p|0;n=r+(t*11190|0)|0;x=n+y|0;n=y-n|0;r=(t*2998|0)-r|0;t=r+z|0;r=z-r|0;z=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;y=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;o=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;u=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;C=y*10703|0;A=B(y,-4433)|0;s=o+z|0;f=(u+s|0)*7053|0;s=f+(s*2139|0)|0;w=C+(z*2295|0)+s|0;q=B(u+o|0,-8565)|0;s=(B(o,-12112)|0)+A+q+s|0;q=(u*12998|0)-C+f+q|0;f=A+(B(z,-5540)|0)+(B(u,-16244)|0)+f|0;u=z-u|0;o=y-o|0;y=(u+o|0)*4433|0;u=y+(u*6270|0)|0;o=y+(B(o,-15137)|0)|0;c[k>>2]=w+x>>11;c[k+264>>2]=x-w>>11;c[k+24>>2]=u+v>>11;c[k+240>>2]=v-u>>11;c[k+48>>2]=s+t>>11;c[k+216>>2]=t-s>>11;c[k+72>>2]=q+r>>11;c[k+192>>2]=r-q>>11;c[k+96>>2]=o+p>>11;c[k+168>>2]=p-o>>11;c[k+120>>2]=f+n>>11;c[k+144>>2]=n-f>>11;e=e+1|0;if((e|0)==6)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){C=(c[g+(d<<2)>>2]|0)+h|0;z=(c[i>>2]<<13)+134348800|0;x=(c[i+16>>2]|0)*5793|0;t=z+x|0;x=z-x-x|0;z=(c[i+8>>2]|0)*10033|0;v=t+z|0;z=t-z|0;t=c[i+4>>2]|0;u=c[i+12>>2]|0;y=c[i+20>>2]|0;A=(y+t|0)*2998|0;w=A+(u+t<<13)|0;A=A+(y-u<<13)|0;y=t-u-y<<13;a[C>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[C+5>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[C+1>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[C+4>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[C+2>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[C+3>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==12)break;else i=i+24|0}zb=m;return}function fv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0;m=zb;zb=zb+400|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){t=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;r=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;x=(r*10438|0)+t|0;v=(r*2578|0)+t|0;f=(B(r,-7223)|0)+t|0;t=(B(r,-11586)|0)+t>>11;r=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;z=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;p=(z+r|0)*9058|0;n=p+(r*2237|0)|0;p=p+(B(z,-14084)|0)|0;r=(B(z,-11295)|0)+(r*5027|0)|0;z=n+x|0;n=x-n|0;x=p+v|0;p=v-p|0;v=r+f|0;r=f-r|0;f=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;D=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;A=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;s=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;q=s<<13;F=A+f|0;w=(D+f|0)*10935|0;E=F*9810|0;y=w+(B(f,-9232)|0)+E+q|0;F=F*6164|0;C=f-D|0;o=(C*3826|0)-q|0;f=F+(B(f,-8693)|0)+o|0;u=(B(A+D|0,-1297)|0)-q|0;w=w+(B(D,-3474)|0)+u|0;u=E+(B(A,-19447)|0)+u|0;E=(A-D|0)*11512|0;q=E+(B(A,-13850)|0)+F+q|0;o=E+(D*5529|0)+o|0;s=C-A+s<<2;c[k>>2]=y+z>>11;c[k+364>>2]=z-y>>11;c[k+28>>2]=w+x>>11;c[k+336>>2]=x-w>>11;c[k+56>>2]=u+v>>11;c[k+308>>2]=v-u>>11;c[k+84>>2]=s+t;c[k+280>>2]=t-s;c[k+112>>2]=q+r>>11;c[k+252>>2]=r-q>>11;c[k+140>>2]=o+p>>11;c[k+224>>2]=p-o>>11;c[k+168>>2]=f+n>>11;c[k+196>>2]=n-f>>11;e=e+1|0;if((e|0)==7)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){F=(c[g+(d<<2)>>2]|0)+h|0;E=(c[i>>2]<<13)+134348800|0;t=c[i+8>>2]|0;C=c[i+16>>2]|0;v=c[i+24>>2]|0;u=(C-v|0)*7223|0;A=(t-C|0)*2578|0;x=(B(C,-15083)|0)+E+A+u|0;D=v+t|0;z=(D*10438|0)+E|0;v=u+(B(v,-637)|0)+z|0;z=A+(B(t,-20239)|0)+z|0;t=c[i+4>>2]|0;A=c[i+12>>2]|0;u=c[i+20>>2]|0;s=(A+t|0)*7663|0;w=(t-A|0)*1395|0;A=B(u+A|0,-11295)|0;y=s+w+A|0;t=(u+t|0)*5027|0;w=s-w+t|0;A=t+(u*15326|0)+A|0;a[F>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[F+6>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[F+1>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[F+5>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[F+2>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[F+4>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;a[F+3>>0]=a[e+((((C-D|0)*11585|0)+E|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==14)break;else i=i+28|0}zb=m;return}function gv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;m=zb;zb=zb+512|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){r=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;v=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;f=v*10703|0;v=v*4433|0;z=f+r|0;f=r-f|0;x=v+r|0;v=r-v|0;r=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;t=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;o=r-t|0;C=o*2260|0;o=o*11363|0;n=o+(t*20995|0)|0;p=C+(r*7373|0)|0;r=o+(B(r,-4926)|0)|0;t=C+(B(t,-4176)|0)|0;C=n+z|0;n=z-n|0;z=p+x|0;p=x-p|0;x=r+v|0;r=v-r|0;v=t+f|0;t=f-t|0;f=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;o=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;E=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;G=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;D=E+f|0;y=(o+f|0)*11086|0;w=D*10217|0;q=(G+f|0)*8956|0;s=(f-G|0)*7350|0;D=D*5461|0;u=(f-o|0)*3363|0;A=y+(B(f,-18730)|0)+w+q|0;f=u+(B(f,-15038)|0)+D+s|0;J=(E+o|0)*1136|0;F=(E-o|0)*11529|0;H=G+o|0;I=B(H,-5461)|0;y=y+(o*589|0)+J+I|0;H=B(H,-10217)|0;o=u+(o*16154|0)+F+H|0;u=B(G+E|0,-11086)|0;w=J+(B(E,-9222)|0)+w+u|0;u=I+(G*8728|0)+q+u|0;q=(G-E|0)*3363|0;s=H+(G*25733|0)+s+q|0;q=F+(B(E,-6278)|0)+D+q|0;c[k>>2]=A+C>>11;c[k+480>>2]=C-A>>11;c[k+32>>2]=y+z>>11;c[k+448>>2]=z-y>>11;c[k+64>>2]=w+x>>11;c[k+416>>2]=x-w>>11;c[k+96>>2]=u+v>>11;c[k+384>>2]=v-u>>11;c[k+128>>2]=s+t>>11;c[k+352>>2]=t-s>>11;c[k+160>>2]=q+r>>11;c[k+320>>2]=r-q>>11;c[k+192>>2]=o+p>>11;c[k+288>>2]=p-o>>11;c[k+224>>2]=f+n>>11;c[k+256>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){J=(c[g+(d<<2)>>2]|0)+h|0;H=(c[i>>2]|0)+16400|0;I=c[i+16>>2]|0;D=H+I<<13;I=H-I<<13;H=c[i+8>>2]|0;F=c[i+24>>2]|0;A=(F+H|0)*4433|0;H=A+(H*6270|0)|0;F=A+(B(F,-15137)|0)|0;A=H+D|0;H=D-H|0;D=F+I|0;F=I-F|0;I=c[i+28>>2]|0;x=c[i+20>>2]|0;z=c[i+12>>2]|0;C=c[i+4>>2]|0;E=z+I|0;G=C+x|0;y=(G+E|0)*9633|0;E=y+(B(E,-16069)|0)|0;G=y+(B(G,-3196)|0)|0;y=B(C+I|0,-7373)|0;I=y+(I*2446|0)+E|0;C=y+(C*12299|0)+G|0;y=B(z+x|0,-20995)|0;G=y+(x*16819|0)+G|0;E=y+(z*25172|0)+E|0;a[J>>0]=a[e+((C+A|0)>>>18&1023)>>0]|0;a[J+7>>0]=a[e+((A-C|0)>>>18&1023)>>0]|0;a[J+1>>0]=a[e+((E+D|0)>>>18&1023)>>0]|0;a[J+6>>0]=a[e+((D-E|0)>>>18&1023)>>0]|0;a[J+2>>0]=a[e+((G+F|0)>>>18&1023)>>0]|0;a[J+5>>0]=a[e+((F-G|0)>>>18&1023)>>0]|0;a[J+3>>0]=a[e+((I+H|0)>>>18&1023)>>0]|0;a[J+4>>0]=a[e+((H-I|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==16)break;else i=i+32|0}zb=m;return}function hv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;d=(c[d+336>>2]|0)+-384|0;i=c[e+84>>2]|0;h=(c[g>>2]|0)+h|0;e=(B(c[i>>2]|0,b[f>>1]|0)|0)+4100|0;g=B(c[i+4>>2]|0,b[f+2>>1]|0)|0;a[h>>0]=a[d+((g+e|0)>>>3&1023)>>0]|0;a[h+1>>0]=a[d+((e-g|0)>>>3&1023)>>0]|0;return}function iv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=zb;zb=zb+32|0;r=i;p=c[d+336>>2]|0;k=c[e+84>>2]|0;d=B(c[k>>2]|0,b[f>>1]|0)|0;e=B(c[k+32>>2]|0,b[f+16>>1]|0)|0;q=e+d|0;c[r>>2]=q;j=r+16|0;c[j>>2]=d-e;e=B(c[k+4>>2]|0,b[f+2>>1]|0)|0;d=B(c[k+36>>2]|0,b[f+18>>1]|0)|0;o=d+e|0;c[r+4>>2]=o;d=e-d|0;c[r+20>>2]=d;e=B(c[k+8>>2]|0,b[f+4>>1]|0)|0;l=B(c[k+40>>2]|0,b[f+20>>1]|0)|0;n=l+e|0;c[r+8>>2]=n;l=e-l|0;c[r+24>>2]=l;e=B(c[k+12>>2]|0,b[f+6>>1]|0)|0;k=B(c[k+44>>2]|0,b[f+22>>1]|0)|0;m=k+e|0;c[r+12>>2]=m;k=e-k|0;c[r+28>>2]=k;e=p+-384|0;f=(c[g>>2]|0)+h|0;q=q+4100|0;p=q+n<<13;n=q-n<<13;q=(m+o|0)*4433|0;o=q+(o*6270|0)|0;m=q+(B(m,-15137)|0)|0;a[f>>0]=a[e+((o+p|0)>>>16&1023)>>0]|0;a[f+3>>0]=a[e+((p-o|0)>>>16&1023)>>0]|0;a[f+1>>0]=a[e+((m+n|0)>>>16&1023)>>0]|0;a[f+2>>0]=a[e+((n-m|0)>>>16&1023)>>0]|0;h=(c[g+4>>2]|0)+h|0;f=(c[j>>2]|0)+4100|0;j=f+l<<13;f=f-l<<13;g=(k+d|0)*4433|0;d=g+(d*6270|0)|0;g=g+(B(k,-15137)|0)|0;a[h>>0]=a[e+((d+j|0)>>>16&1023)>>0]|0;a[h+3>>0]=a[e+((j-d|0)>>>16&1023)>>0]|0;a[h+1>>0]=a[e+((g+f|0)>>>16&1023)>>0]|0;a[h+2>>0]=a[e+((f-g|0)>>>16&1023)>>0]|0;zb=i;return}function jv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=zb;zb=zb+80|0;k=i;q=c[d+336>>2]|0;e=c[e+84>>2]|0;s=B(b[f>>1]<<13,c[e>>2]|0)|0|1024;n=B((b[f+32>>1]|0)*5793|0,c[e+64>>2]|0)|0;l=n+s|0;s=(B(n,-2)|0)+s|0;n=B((b[f+16>>1]|0)*10033|0,c[e+32>>2]|0)|0;c[k>>2]=n+l>>11;c[k+48>>2]=l-n>>11;n=k+24|0;c[n>>2]=s>>11;s=k+4|0;l=B(b[f+2>>1]<<13,c[e+4>>2]|0)|0|1024;r=B((b[f+34>>1]|0)*5793|0,c[e+68>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;r=B((b[f+18>>1]|0)*10033|0,c[e+36>>2]|0)|0;c[s>>2]=r+p>>11;c[k+52>>2]=p-r>>11;c[k+28>>2]=l>>11;l=B(b[f+4>>1]<<13,c[e+8>>2]|0)|0|1024;r=B((b[f+36>>1]|0)*5793|0,c[e+72>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;r=B((b[f+20>>1]|0)*10033|0,c[e+40>>2]|0)|0;c[k+8>>2]=r+p>>11;c[k+56>>2]=p-r>>11;c[k+32>>2]=l>>11;l=B(b[f+6>>1]<<13,c[e+12>>2]|0)|0|1024;r=B((b[f+38>>1]|0)*5793|0,c[e+76>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;r=B((b[f+22>>1]|0)*10033|0,c[e+44>>2]|0)|0;c[k+12>>2]=r+p>>11;c[k+60>>2]=p-r>>11;c[k+36>>2]=l>>11;l=B(b[f+8>>1]<<13,c[e+16>>2]|0)|0|1024;r=B((b[f+40>>1]|0)*5793|0,c[e+80>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;r=B((b[f+24>>1]|0)*10033|0,c[e+48>>2]|0)|0;c[k+16>>2]=r+p>>11;c[k+64>>2]=p-r>>11;c[k+40>>2]=l>>11;l=B(b[f+10>>1]<<13,c[e+20>>2]|0)|0|1024;r=B((b[f+42>>1]|0)*5793|0,c[e+84>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;e=B((b[f+26>>1]|0)*10033|0,c[e+52>>2]|0)|0;c[k+20>>2]=e+p>>11;c[k+68>>2]=p-e>>11;l=l>>11;c[k+44>>2]=l;e=q+-384|0;f=(c[g>>2]|0)+h|0;q=(c[k>>2]<<13)+134348800|0;p=(c[k+16>>2]|0)*5793|0;r=q+p|0;p=q-p-p|0;q=(c[k+8>>2]|0)*10033|0;d=r+q|0;q=r-q|0;s=c[s>>2]|0;r=c[k+12>>2]|0;o=c[k+20>>2]|0;m=(o+s|0)*2998|0;j=m+(r+s<<13)|0;m=m+(o-r<<13)|0;o=s-r-o<<13;a[f>>0]=a[e+((j+d|0)>>>18&1023)>>0]|0;a[f+5>>0]=a[e+((d-j|0)>>>18&1023)>>0]|0;a[f+1>>0]=a[e+((o+p|0)>>>18&1023)>>0]|0;a[f+4>>0]=a[e+((p-o|0)>>>18&1023)>>0]|0;a[f+2>>0]=a[e+((m+q|0)>>>18&1023)>>0]|0;a[f+3>>0]=a[e+((q-m|0)>>>18&1023)>>0]|0;f=(c[g+4>>2]|0)+h|0;n=(c[n>>2]<<13)+134348800|0;m=(c[k+40>>2]|0)*5793|0;q=n+m|0;m=n-m-m|0;n=(c[k+32>>2]|0)*10033|0;o=q+n|0;n=q-n|0;q=c[k+28>>2]|0;p=c[k+36>>2]|0;j=(l+q|0)*2998|0;d=j+(p+q<<13)|0;j=j+(l-p<<13)|0;l=q-p-l<<13;a[f>>0]=a[e+((d+o|0)>>>18&1023)>>0]|0;a[f+5>>0]=a[e+((o-d|0)>>>18&1023)>>0]|0;a[f+1>>0]=a[e+((l+m|0)>>>18&1023)>>0]|0;a[f+4>>0]=a[e+((m-l|0)>>>18&1023)>>0]|0;a[f+2>>0]=a[e+((j+n|0)>>>18&1023)>>0]|0;a[f+3>>0]=a[e+((n-j|0)>>>18&1023)>>0]|0;h=(c[g+8>>2]|0)+h|0;f=(c[k+48>>2]<<13)+134348800|0;j=(c[k+64>>2]|0)*5793|0;n=f+j|0;j=f-j-j|0;f=(c[k+56>>2]|0)*10033|0;l=n+f|0;f=n-f|0;n=c[k+52>>2]|0;m=c[k+60>>2]|0;d=c[k+68>>2]|0;g=(d+n|0)*2998|0;k=g+(m+n<<13)|0;g=g+(d-m<<13)|0;d=n-m-d<<13;a[h>>0]=a[e+((k+l|0)>>>18&1023)>>0]|0;a[h+5>>0]=a[e+((l-k|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[e+((d+j|0)>>>18&1023)>>0]|0;a[h+4>>0]=a[e+((j-d|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[e+((g+f|0)>>>18&1023)>>0]|0;a[h+3>>0]=a[e+((f-g|0)>>>18&1023)>>0]|0;zb=i;return}function kv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=zb;zb=zb+128|0;j=i;d=c[d+336>>2]|0;m=c[e+84>>2]|0;l=B(c[m>>2]|0,b[f>>1]|0)|0;e=B(c[m+64>>2]|0,b[f+32>>1]|0)|0;n=e+l<<2;e=l-e<<2;l=B(c[m+32>>2]|0,b[f+16>>1]|0)|0;k=B(c[m+96>>2]|0,b[f+48>>1]|0)|0;o=((k+l|0)*4433|0)+1024|0;l=o+(l*6270|0)>>11;k=o+(B(k,-15137)|0)>>11;c[j>>2]=l+n;c[j+96>>2]=n-l;c[j+32>>2]=k+e;c[j+64>>2]=e-k;k=B(c[m+4>>2]|0,b[f+2>>1]|0)|0;e=B(c[m+68>>2]|0,b[f+34>>1]|0)|0;l=e+k<<2;e=k-e<<2;k=B(c[m+36>>2]|0,b[f+18>>1]|0)|0;n=B(c[m+100>>2]|0,b[f+50>>1]|0)|0;o=((n+k|0)*4433|0)+1024|0;k=o+(k*6270|0)>>11;n=o+(B(n,-15137)|0)>>11;c[j+4>>2]=k+l;c[j+100>>2]=l-k;c[j+36>>2]=n+e;c[j+68>>2]=e-n;n=B(c[m+8>>2]|0,b[f+4>>1]|0)|0;e=B(c[m+72>>2]|0,b[f+36>>1]|0)|0;k=e+n<<2;e=n-e<<2;n=B(c[m+40>>2]|0,b[f+20>>1]|0)|0;l=B(c[m+104>>2]|0,b[f+52>>1]|0)|0;o=((l+n|0)*4433|0)+1024|0;n=o+(n*6270|0)>>11;l=o+(B(l,-15137)|0)>>11;c[j+8>>2]=n+k;c[j+104>>2]=k-n;c[j+40>>2]=l+e;c[j+72>>2]=e-l;l=B(c[m+12>>2]|0,b[f+6>>1]|0)|0;e=B(c[m+76>>2]|0,b[f+38>>1]|0)|0;n=e+l<<2;e=l-e<<2;l=B(c[m+44>>2]|0,b[f+22>>1]|0)|0;k=B(c[m+108>>2]|0,b[f+54>>1]|0)|0;o=((k+l|0)*4433|0)+1024|0;l=o+(l*6270|0)>>11;k=o+(B(k,-15137)|0)>>11;c[j+12>>2]=l+n;c[j+108>>2]=n-l;c[j+44>>2]=k+e;c[j+76>>2]=e-k;k=B(c[m+16>>2]|0,b[f+8>>1]|0)|0;e=B(c[m+80>>2]|0,b[f+40>>1]|0)|0;l=e+k<<2;e=k-e<<2;k=B(c[m+48>>2]|0,b[f+24>>1]|0)|0;n=B(c[m+112>>2]|0,b[f+56>>1]|0)|0;o=((n+k|0)*4433|0)+1024|0;k=o+(k*6270|0)>>11;n=o+(B(n,-15137)|0)>>11;c[j+16>>2]=k+l;c[j+112>>2]=l-k;c[j+48>>2]=n+e;c[j+80>>2]=e-n;n=B(c[m+20>>2]|0,b[f+10>>1]|0)|0;e=B(c[m+84>>2]|0,b[f+42>>1]|0)|0;k=e+n<<2;e=n-e<<2;n=B(c[m+52>>2]|0,b[f+26>>1]|0)|0;l=B(c[m+116>>2]|0,b[f+58>>1]|0)|0;o=((l+n|0)*4433|0)+1024|0;n=o+(n*6270|0)>>11;l=o+(B(l,-15137)|0)>>11;c[j+20>>2]=n+k;c[j+116>>2]=k-n;c[j+52>>2]=l+e;c[j+84>>2]=e-l;l=B(c[m+24>>2]|0,b[f+12>>1]|0)|0;e=B(c[m+88>>2]|0,b[f+44>>1]|0)|0;n=e+l<<2;e=l-e<<2;l=B(c[m+56>>2]|0,b[f+28>>1]|0)|0;k=B(c[m+120>>2]|0,b[f+60>>1]|0)|0;o=((k+l|0)*4433|0)+1024|0;l=o+(l*6270|0)>>11;k=o+(B(k,-15137)|0)>>11;c[j+24>>2]=l+n;c[j+120>>2]=n-l;c[j+56>>2]=k+e;c[j+88>>2]=e-k;k=B(c[m+28>>2]|0,b[f+14>>1]|0)|0;e=B(c[m+92>>2]|0,b[f+46>>1]|0)|0;l=e+k<<2;e=k-e<<2;k=B(c[m+60>>2]|0,b[f+30>>1]|0)|0;f=B(c[m+124>>2]|0,b[f+62>>1]|0)|0;m=((f+k|0)*4433|0)+1024|0;k=m+(k*6270|0)>>11;f=m+(B(f,-15137)|0)>>11;c[j+28>>2]=k+l;c[j+124>>2]=l-k;c[j+60>>2]=f+e;c[j+92>>2]=e-f;f=d+-384|0;d=j;e=0;while(1){o=(c[g+(e<<2)>>2]|0)+h|0;m=(c[d>>2]|0)+16400|0;n=c[d+16>>2]|0;p=m+n<<13;n=m-n<<13;m=c[d+8>>2]|0;k=c[d+24>>2]|0;r=(k+m|0)*4433|0;m=r+(m*6270|0)|0;k=r+(B(k,-15137)|0)|0;r=m+p|0;m=p-m|0;p=k+n|0;k=n-k|0;n=c[d+28>>2]|0;u=c[d+20>>2]|0;s=c[d+12>>2]|0;q=c[d+4>>2]|0;j=s+n|0;l=q+u|0;t=(l+j|0)*9633|0;j=t+(B(j,-16069)|0)|0;l=t+(B(l,-3196)|0)|0;t=B(q+n|0,-7373)|0;n=t+(n*2446|0)+j|0;q=t+(q*12299|0)+l|0;t=B(s+u|0,-20995)|0;l=t+(u*16819|0)+l|0;j=t+(s*25172|0)+j|0;a[o>>0]=a[f+((q+r|0)>>>18&1023)>>0]|0;a[o+7>>0]=a[f+((r-q|0)>>>18&1023)>>0]|0;a[o+1>>0]=a[f+((j+p|0)>>>18&1023)>>0]|0;a[o+6>>0]=a[f+((p-j|0)>>>18&1023)>>0]|0;a[o+2>>0]=a[f+((l+k|0)>>>18&1023)>>0]|0;a[o+5>>0]=a[f+((k-l|0)>>>18&1023)>>0]|0;a[o+3>>0]=a[f+((n+m|0)>>>18&1023)>>0]|0;a[o+4>>0]=a[f+((m-n|0)>>>18&1023)>>0]|0;e=e+1|0;if((e|0)==4)break;else d=d+32|0}zb=i;return}function lv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;m=zb;zb=zb+160|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;p=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;o=(p+n|0)*6476|0;p=n-p|0;n=(p*2896|0)+f|0;q=n+o|0;o=n-o|0;f=(B(p,-11584)|0)+f|0;p=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;n=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;r=(n+p|0)*6810|0;p=r+(p*4209|0)|0;n=r+(B(n,-17828)|0)|0;c[k>>2]=p+q>>11;c[k+128>>2]=q-p>>11;c[k+32>>2]=n+o>>11;c[k+96>>2]=o-n>>11;c[k+64>>2]=f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){r=(c[g+(d<<2)>>2]|0)+h|0;p=(c[i>>2]<<13)+134348800|0;k=c[i+16>>2]|0;j=p+(k*9373|0)|0;u=p+(B(k,-3580)|0)|0;k=p+(B(k,-11586)|0)|0;p=c[i+8>>2]|0;n=c[i+24>>2]|0;t=(n+p|0)*6810|0;p=t+(p*4209|0)|0;n=t+(B(n,-17828)|0)|0;t=p+j|0;p=j-p|0;j=n+u|0;n=u-n|0;u=c[i+4>>2]|0;v=c[i+12>>2]|0;l=c[i+20>>2]<<13;f=c[i+28>>2]|0;o=f+v|0;f=v-f|0;v=f*2531|0;w=o*7791|0;q=v+l|0;s=w+(u*11443|0)+q|0;q=(u*1812|0)-w+q|0;o=o*4815|0;v=l-v-(f<<12)|0;l=(u-f<<13)-l|0;f=(u*10323|0)-o-v|0;o=v+((u*5260|0)-o)|0;a[r>>0]=a[e+((s+t|0)>>>18&1023)>>0]|0;a[r+9>>0]=a[e+((t-s|0)>>>18&1023)>>0]|0;a[r+1>>0]=a[e+((f+j|0)>>>18&1023)>>0]|0;a[r+8>>0]=a[e+((j-f|0)>>>18&1023)>>0]|0;a[r+2>>0]=a[e+((l+k|0)>>>18&1023)>>0]|0;a[r+7>>0]=a[e+((k-l|0)>>>18&1023)>>0]|0;a[r+3>>0]=a[e+((o+n|0)>>>18&1023)>>0]|0;a[r+6>>0]=a[e+((n-o|0)>>>18&1023)>>0]|0;a[r+4>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[r+5>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==5)break;else i=i+32|0}zb=m;return}function mv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=zb;zb=zb+192|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){p=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B((b[d+64>>1]|0)*5793|0,c[j+128>>2]|0)|0;t=n+p|0;p=(B(n,-2)|0)+p>>11;n=B((b[d+32>>1]|0)*10033|0,c[j+64>>2]|0)|0;r=n+t|0;n=t-n|0;t=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;s=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;o=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;f=(o+t|0)*2998|0;q=f+(s+t<<13)|0;f=f+(o-s<<13)|0;o=t-s-o<<2;c[k>>2]=q+r>>11;c[k+160>>2]=r-q>>11;c[k+32>>2]=o+p;c[k+128>>2]=p-o;c[k+64>>2]=f+n>>11;c[k+96>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){t=(c[g+(d<<2)>>2]|0)+h|0;r=(c[i>>2]<<13)+134348800|0;x=(c[i+16>>2]|0)*10033|0;w=r+x|0;x=r-x|0;k=c[i+8>>2]|0;n=c[i+24>>2]<<13;p=(k<<13)-n|0;j=p+r|0;p=r-p|0;r=n+(k*11190|0)|0;v=r+w|0;r=w-r|0;n=(k*2998|0)-n|0;k=n+x|0;n=x-n|0;x=c[i+4>>2]|0;w=c[i+12>>2]|0;q=c[i+20>>2]|0;f=c[i+28>>2]|0;z=w*10703|0;y=B(w,-4433)|0;l=q+x|0;s=(l+f|0)*7053|0;l=s+(l*2139|0)|0;u=z+(x*2295|0)+l|0;o=B(f+q|0,-8565)|0;l=(B(q,-12112)|0)+y+o+l|0;o=(f*12998|0)-z+s+o|0;s=y+(B(x,-5540)|0)+(B(f,-16244)|0)+s|0;f=x-f|0;q=w-q|0;w=(f+q|0)*4433|0;f=w+(f*6270|0)|0;q=w+(B(q,-15137)|0)|0;a[t>>0]=a[e+((u+v|0)>>>18&1023)>>0]|0;a[t+11>>0]=a[e+((v-u|0)>>>18&1023)>>0]|0;a[t+1>>0]=a[e+((f+j|0)>>>18&1023)>>0]|0;a[t+10>>0]=a[e+((j-f|0)>>>18&1023)>>0]|0;a[t+2>>0]=a[e+((l+k|0)>>>18&1023)>>0]|0;a[t+9>>0]=a[e+((k-l|0)>>>18&1023)>>0]|0;a[t+3>>0]=a[e+((o+n|0)>>>18&1023)>>0]|0;a[t+8>>0]=a[e+((n-o|0)>>>18&1023)>>0]|0;a[t+4>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[t+7>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[t+5>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[t+6>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==6)break;else i=i+32|0}zb=m;return}function nv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;m=zb;zb=zb+224|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;w=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;o=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;u=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;v=(o-u|0)*7223|0;p=(w-o|0)*2578|0;s=(B(o,-15083)|0)+f+p+v|0;n=u+w|0;q=(n*10438|0)+f|0;u=v+(B(u,-637)|0)+q|0;q=p+(B(w,-20239)|0)+q|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;p=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;v=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;x=(p+w|0)*7663|0;t=(w-p|0)*1395|0;p=B(v+p|0,-11295)|0;r=x+t+p|0;w=(v+w|0)*5027|0;t=w+(x-t)|0;p=w+(v*15326|0)+p|0;c[k>>2]=t+u>>11;c[k+192>>2]=u-t>>11;c[k+32>>2]=r+s>>11;c[k+160>>2]=s-r>>11;c[k+64>>2]=p+q>>11;c[k+128>>2]=q-p>>11;c[k+96>>2]=((o-n|0)*11585|0)+f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){x=(c[g+(d<<2)>>2]|0)+h|0;r=(c[i>>2]<<13)+134348800|0;p=c[i+16>>2]|0;k=r+(p*10438|0)|0;n=r+(p*2578|0)|0;w=r+(B(p,-7223)|0)|0;p=r+(B(p,-11586)|0)|0;r=c[i+8>>2]|0;j=c[i+24>>2]|0;t=(j+r|0)*9058|0;v=t+(r*2237|0)|0;t=t+(B(j,-14084)|0)|0;r=(B(j,-11295)|0)+(r*5027|0)|0;j=v+k|0;v=k-v|0;k=t+n|0;t=n-t|0;n=r+w|0;r=w-r|0;w=c[i+4>>2]|0;A=c[i+12>>2]|0;y=c[i+20>>2]|0;q=c[i+28>>2]<<13;s=y+w|0;l=(A+w|0)*10935|0;C=s*9810|0;f=l+(B(w,-9232)|0)+C+q|0;s=s*6164|0;z=w-A|0;u=(z*3826|0)-q|0;w=s+(B(w,-8693)|0)+u|0;o=(B(y+A|0,-1297)|0)-q|0;l=l+(B(A,-3474)|0)+o|0;o=C+(B(y,-19447)|0)+o|0;C=(y-A|0)*11512|0;s=q+(B(y,-13850)|0)+C+s|0;u=C+(A*5529|0)+u|0;q=(z-y<<13)+q|0;a[x>>0]=a[e+((f+j|0)>>>18&1023)>>0]|0;a[x+13>>0]=a[e+((j-f|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[e+((l+k|0)>>>18&1023)>>0]|0;a[x+12>>0]=a[e+((k-l|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[e+((o+n|0)>>>18&1023)>>0]|0;a[x+11>>0]=a[e+((n-o|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[x+10>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[x+4>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[x+9>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[x+5>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[x+8>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[x+6>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[x+7>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==7)break;else i=i+32|0}zb=m;return}function ov(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0;o=zb;zb=zb+256|0;i=o;m=c[d+336>>2]|0;l=i;k=c[e+84>>2]|0;j=8;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){d=B(b[f>>1]<<2,c[k>>2]|0)|0;c[l>>2]=d;c[l+32>>2]=d;c[l+64>>2]=d;c[l+96>>2]=d;c[l+128>>2]=d;c[l+160>>2]=d;c[l+192>>2]=d;e=56}else{d=0;n=9}else n=9;if((n|0)==9){n=0;x=B(b[f+64>>1]<<13,c[k+128>>2]|0)|0;p=B(b[f>>1]<<13,c[k>>2]|0)|0|1024;s=x+p|0;x=p-x|0;p=B(c[k+64>>2]|0,d<<16>>16)|0;q=B(c[k+192>>2]|0,b[f+96>>1]|0)|0;u=(q+p|0)*4433|0;p=u+(p*6270|0)|0;q=u+(B(q,-15137)|0)|0;u=p+s|0;p=s-p|0;s=q+x|0;q=x-q|0;d=B(c[k+224>>2]|0,b[f+112>>1]|0)|0;x=B(c[k+160>>2]|0,b[f+80>>1]|0)|0;v=B(c[k+96>>2]|0,b[f+48>>1]|0)|0;t=B(c[k+32>>2]|0,e<<16>>16)|0;r=v+d|0;e=t+x|0;w=(e+r|0)*9633|0;r=w+(B(r,-16069)|0)|0;e=w+(B(e,-3196)|0)|0;w=B(t+d|0,-7373)|0;d=w+(d*2446|0)+r|0;t=w+(t*12299|0)+e|0;w=B(v+x|0,-20995)|0;e=w+(x*16819|0)+e|0;r=w+(v*25172|0)+r|0;c[l>>2]=t+u>>11;c[l+224>>2]=u-t>>11;c[l+32>>2]=r+s>>11;c[l+192>>2]=s-r>>11;c[l+64>>2]=e+q>>11;c[l+160>>2]=q-e>>11;c[l+96>>2]=d+p>>11;d=p-d>>11;e=32}c[l+(e<<2)>>2]=d;if(j>>>0>1){l=l+4|0;k=k+4|0;f=f+2|0;j=j+-1|0}else break}e=m+-384|0;d=0;while(1){x=(c[g+(d<<2)>>2]|0)+h|0;r=(c[i>>2]<<13)+134348800|0;m=c[i+16>>2]|0;w=m*10703|0;m=m*4433|0;f=r+w|0;w=r-w|0;k=r+m|0;m=r-m|0;r=c[i+8>>2]|0;p=c[i+24>>2]|0;u=r-p|0;z=u*2260|0;u=u*11363|0;v=u+(p*20995|0)|0;t=z+(r*7373|0)|0;r=u+(B(r,-4926)|0)|0;p=z+(B(p,-4176)|0)|0;z=v+f|0;v=f-v|0;f=t+k|0;t=k-t|0;k=r+m|0;r=m-r|0;m=p+w|0;p=w-p|0;w=c[i+4>>2]|0;u=c[i+12>>2]|0;C=c[i+20>>2]|0;E=c[i+28>>2]|0;A=C+w|0;j=(u+w|0)*11086|0;l=A*10217|0;s=(E+w|0)*8956|0;q=(w-E|0)*7350|0;A=A*5461|0;n=(w-u|0)*3363|0;y=j+(B(w,-18730)|0)+l+s|0;w=n+(B(w,-15038)|0)+A+q|0;H=(C+u|0)*1136|0;D=(C-u|0)*11529|0;F=E+u|0;G=B(F,-5461)|0;j=j+(u*589|0)+H+G|0;F=B(F,-10217)|0;u=n+(u*16154|0)+D+F|0;n=B(E+C|0,-11086)|0;l=H+(B(C,-9222)|0)+l+n|0;n=G+(E*8728|0)+s+n|0;s=(E-C|0)*3363|0;q=F+(E*25733|0)+q+s|0;s=D+(B(C,-6278)|0)+A+s|0;a[x>>0]=a[e+((y+z|0)>>>18&1023)>>0]|0;a[x+15>>0]=a[e+((z-y|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[e+((j+f|0)>>>18&1023)>>0]|0;a[x+14>>0]=a[e+((f-j|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[e+((l+k|0)>>>18&1023)>>0]|0;a[x+13>>0]=a[e+((k-l|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[e+((n+m|0)>>>18&1023)>>0]|0;a[x+12>>0]=a[e+((m-n|0)>>>18&1023)>>0]|0;a[x+4>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[x+11>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[x+5>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[x+10>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[x+6>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[x+9>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[x+7>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[x+8>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==8)break;else i=i+32|0}zb=o;return}function pv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;m=zb;zb=zb+512|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){r=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;v=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;f=v*10703|0;v=v*4433|0;z=f+r|0;f=r-f|0;x=v+r|0;v=r-v|0;r=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;t=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;o=r-t|0;C=o*2260|0;o=o*11363|0;n=o+(t*20995|0)|0;p=C+(r*7373|0)|0;r=o+(B(r,-4926)|0)|0;t=C+(B(t,-4176)|0)|0;C=n+z|0;n=z-n|0;z=p+x|0;p=x-p|0;x=r+v|0;r=v-r|0;v=t+f|0;t=f-t|0;f=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;o=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;E=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;G=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;D=E+f|0;y=(o+f|0)*11086|0;w=D*10217|0;q=(G+f|0)*8956|0;s=(f-G|0)*7350|0;D=D*5461|0;u=(f-o|0)*3363|0;A=y+(B(f,-18730)|0)+w+q|0;f=u+(B(f,-15038)|0)+D+s|0;J=(E+o|0)*1136|0;F=(E-o|0)*11529|0;H=G+o|0;I=B(H,-5461)|0;y=y+(o*589|0)+J+I|0;H=B(H,-10217)|0;o=u+(o*16154|0)+F+H|0;u=B(G+E|0,-11086)|0;w=J+(B(E,-9222)|0)+w+u|0;u=I+(G*8728|0)+q+u|0;q=(G-E|0)*3363|0;s=H+(G*25733|0)+s+q|0;q=F+(B(E,-6278)|0)+D+q|0;c[k>>2]=A+C>>11;c[k+480>>2]=C-A>>11;c[k+32>>2]=y+z>>11;c[k+448>>2]=z-y>>11;c[k+64>>2]=w+x>>11;c[k+416>>2]=x-w>>11;c[k+96>>2]=u+v>>11;c[k+384>>2]=v-u>>11;c[k+128>>2]=s+t>>11;c[k+352>>2]=t-s>>11;c[k+160>>2]=q+r>>11;c[k+320>>2]=r-q>>11;c[k+192>>2]=o+p>>11;c[k+288>>2]=p-o>>11;c[k+224>>2]=f+n>>11;c[k+256>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){J=(c[g+(d<<2)>>2]|0)+h|0;D=(c[i>>2]<<13)+134348800|0;y=c[i+16>>2]|0;I=y*10703|0;y=y*4433|0;u=D+I|0;I=D-I|0;w=D+y|0;y=D-y|0;D=c[i+8>>2]|0;A=c[i+24>>2]|0;G=D-A|0;s=G*2260|0;G=G*11363|0;H=G+(A*20995|0)|0;F=s+(D*7373|0)|0;D=G+(B(D,-4926)|0)|0;A=s+(B(A,-4176)|0)|0;s=H+u|0;H=u-H|0;u=F+w|0;F=w-F|0;w=D+y|0;D=y-D|0;y=A+I|0;A=I-A|0;I=c[i+4>>2]|0;G=c[i+12>>2]|0;q=c[i+20>>2]|0;o=c[i+28>>2]|0;r=q+I|0;v=(G+I|0)*11086|0;x=r*10217|0;E=(o+I|0)*8956|0;C=(I-o|0)*7350|0;r=r*5461|0;z=(I-G|0)*3363|0;t=v+(B(I,-18730)|0)+x+E|0;I=z+(B(I,-15038)|0)+r+C|0;k=(q+G|0)*1136|0;p=(q-G|0)*11529|0;n=o+G|0;l=B(n,-5461)|0;v=v+(G*589|0)+k+l|0;n=B(n,-10217)|0;G=z+(G*16154|0)+p+n|0;z=B(o+q|0,-11086)|0;x=k+(B(q,-9222)|0)+x+z|0;z=l+(o*8728|0)+E+z|0;E=(o-q|0)*3363|0;C=n+(o*25733|0)+C+E|0;E=p+(B(q,-6278)|0)+r+E|0;a[J>>0]=a[e+((t+s|0)>>>18&1023)>>0]|0;a[J+15>>0]=a[e+((s-t|0)>>>18&1023)>>0]|0;a[J+1>>0]=a[e+((v+u|0)>>>18&1023)>>0]|0;a[J+14>>0]=a[e+((u-v|0)>>>18&1023)>>0]|0;a[J+2>>0]=a[e+((x+w|0)>>>18&1023)>>0]|0;a[J+13>>0]=a[e+((w-x|0)>>>18&1023)>>0]|0;a[J+3>>0]=a[e+((z+y|0)>>>18&1023)>>0]|0;a[J+12>>0]=a[e+((y-z|0)>>>18&1023)>>0]|0;a[J+4>>0]=a[e+((C+A|0)>>>18&1023)>>0]|0;a[J+11>>0]=a[e+((A-C|0)>>>18&1023)>>0]|0;a[J+5>>0]=a[e+((E+D|0)>>>18&1023)>>0]|0;a[J+10>>0]=a[e+((D-E|0)>>>18&1023)>>0]|0;a[J+6>>0]=a[e+((G+F|0)>>>18&1023)>>0]|0;a[J+9>>0]=a[e+((F-G|0)>>>18&1023)>>0]|0;a[J+7>>0]=a[e+((I+H|0)>>>18&1023)>>0]|0;a[J+8>>0]=a[e+((H-I|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==16)break;else i=i+32|0}zb=m;return}function qv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0;m=zb;zb=zb+480|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;s=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;w=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;t=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;y=(B(t,-3580)|0)+f|0;D=(t*9373|0)+f|0;f=(B(t,-11586)|0)+f|0;t=s-w|0;w=w+s|0;E=w*10958|0;u=t*374|0;s=s*11795|0;A=u+E+D|0;u=s-E+u+y|0;E=w*4482|0;o=B(t,-3271)|0;q=D-E+o|0;o=E-s+o+y|0;w=w*6476|0;s=t*2896|0;y=s+w+y|0;s=D-w+s|0;w=f+(t*5792|0)|0;f=(B(t,-11584)|0)+f|0;t=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;D=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;E=B((b[d+80>>1]|0)*10033|0,c[j+160>>2]|0)|0;C=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;r=D-C|0;F=(r+t|0)*6810|0;x=F+(t*4209|0)|0;r=F+(B(r,-17828)|0)|0;F=B(D,-6810)|0;D=B(D,-11018)|0;v=t-C|0;n=(v*11522|0)+E|0;z=(C*20131|0)-D+n|0;n=F+(B(t,-9113)|0)+n|0;v=(v*10033|0)-E|0;p=(C+t|0)*4712|0;t=F+(t*3897|0)-E+p|0;p=E+D+(B(C,-7121)|0)+p|0;c[k>>2]=z+A>>11;c[k+448>>2]=A-z>>11;c[k+32>>2]=x+y>>11;c[k+416>>2]=y-x>>11;c[k+64>>2]=v+w>>11;c[k+384>>2]=w-v>>11;c[k+96>>2]=t+u>>11;c[k+352>>2]=u-t>>11;c[k+128>>2]=r+s>>11;c[k+320>>2]=s-r>>11;c[k+160>>2]=p+q>>11;c[k+288>>2]=q-p>>11;c[k+192>>2]=n+o>>11;c[k+256>>2]=o-n>>11;c[k+224>>2]=f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){F=(c[g+(d<<2)>>2]|0)+h|0;E=(c[i>>2]<<13)+134348800|0;x=c[i+8>>2]|0;t=c[i+16>>2]|0;w=c[i+24>>2]|0;r=(B(w,-3580)|0)+E|0;n=(w*9373|0)+E|0;E=(B(w,-11586)|0)+E|0;w=x-t|0;t=t+x|0;l=t*10958|0;v=w*374|0;x=x*11795|0;p=v+l+n|0;v=x-l+v+r|0;l=t*4482|0;C=B(w,-3271)|0;z=n-l+C|0;C=l-x+C+r|0;t=t*6476|0;x=w*2896|0;r=x+t+r|0;x=n-t+x|0;t=E+(w*5792|0)|0;E=(B(w,-11584)|0)+E|0;w=c[i+4>>2]|0;n=c[i+12>>2]|0;l=(c[i+20>>2]|0)*10033|0;o=c[i+28>>2]|0;y=n-o|0;k=(y+w|0)*6810|0;s=k+(w*4209|0)|0;y=k+(B(y,-17828)|0)|0;k=B(n,-6810)|0;n=B(n,-11018)|0;u=w-o|0;D=(u*11522|0)+l|0;q=(o*20131|0)-n+D|0;D=k+(B(w,-9113)|0)+D|0;u=(u*10033|0)-l|0;A=(o+w|0)*4712|0;w=k+(w*3897|0)-l+A|0;A=l+n+(B(o,-7121)|0)+A|0;a[F>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[F+14>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[F+1>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[F+13>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[F+2>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[F+12>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[F+3>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[F+11>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[F+4>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[F+10>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[F+5>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[F+9>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;a[F+6>>0]=a[e+((D+C|0)>>>18&1023)>>0]|0;a[F+8>>0]=a[e+((C-D|0)>>>18&1023)>>0]|0;a[F+7>>0]=a[e+(E>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==15)break;else i=i+32|0}zb=m;return}function rv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0;m=zb;zb=zb+448|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){t=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;r=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;x=(r*10438|0)+t|0;v=(r*2578|0)+t|0;f=(B(r,-7223)|0)+t|0;t=(B(r,-11586)|0)+t>>11;r=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;z=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;p=(z+r|0)*9058|0;n=p+(r*2237|0)|0;p=p+(B(z,-14084)|0)|0;r=(B(z,-11295)|0)+(r*5027|0)|0;z=n+x|0;n=x-n|0;x=p+v|0;p=v-p|0;v=r+f|0;r=f-r|0;f=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;D=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;A=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;s=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;q=s<<13;F=A+f|0;w=(D+f|0)*10935|0;E=F*9810|0;y=w+(B(f,-9232)|0)+E+q|0;F=F*6164|0;C=f-D|0;o=(C*3826|0)-q|0;f=F+(B(f,-8693)|0)+o|0;u=(B(A+D|0,-1297)|0)-q|0;w=w+(B(D,-3474)|0)+u|0;u=E+(B(A,-19447)|0)+u|0;E=(A-D|0)*11512|0;q=E+(B(A,-13850)|0)+F+q|0;o=E+(D*5529|0)+o|0;s=C-A+s<<2;c[k>>2]=y+z>>11;c[k+416>>2]=z-y>>11;c[k+32>>2]=w+x>>11;c[k+384>>2]=x-w>>11;c[k+64>>2]=u+v>>11;c[k+352>>2]=v-u>>11;c[k+96>>2]=s+t;c[k+320>>2]=t-s;c[k+128>>2]=q+r>>11;c[k+288>>2]=r-q>>11;c[k+160>>2]=o+p>>11;c[k+256>>2]=p-o>>11;c[k+192>>2]=f+n>>11;c[k+224>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){F=(c[g+(d<<2)>>2]|0)+h|0;y=(c[i>>2]<<13)+134348800|0;w=c[i+16>>2]|0;s=y+(w*10438|0)|0;u=y+(w*2578|0)|0;E=y+(B(w,-7223)|0)|0;w=y+(B(w,-11586)|0)|0;y=c[i+8>>2]|0;q=c[i+24>>2]|0;A=(q+y|0)*9058|0;D=A+(y*2237|0)|0;A=A+(B(q,-14084)|0)|0;y=(B(q,-11295)|0)+(y*5027|0)|0;q=D+s|0;D=s-D|0;s=A+u|0;A=u-A|0;u=y+E|0;y=E-y|0;E=c[i+4>>2]|0;n=c[i+12>>2]|0;p=c[i+20>>2]|0;x=c[i+28>>2]<<13;z=p+E|0;t=(n+E|0)*10935|0;l=z*9810|0;r=t+(B(E,-9232)|0)+l+x|0;z=z*6164|0;o=E-n|0;C=(o*3826|0)-x|0;E=z+(B(E,-8693)|0)+C|0;v=(B(p+n|0,-1297)|0)-x|0;t=t+(B(n,-3474)|0)+v|0;v=l+(B(p,-19447)|0)+v|0;l=(p-n|0)*11512|0;z=x+(B(p,-13850)|0)+l+z|0;C=l+(n*5529|0)+C|0;x=(o-p<<13)+x|0;a[F>>0]=a[e+((r+q|0)>>>18&1023)>>0]|0;a[F+13>>0]=a[e+((q-r|0)>>>18&1023)>>0]|0;a[F+1>>0]=a[e+((t+s|0)>>>18&1023)>>0]|0;a[F+12>>0]=a[e+((s-t|0)>>>18&1023)>>0]|0;a[F+2>>0]=a[e+((v+u|0)>>>18&1023)>>0]|0;a[F+11>>0]=a[e+((u-v|0)>>>18&1023)>>0]|0;a[F+3>>0]=a[e+((x+w|0)>>>18&1023)>>0]|0;a[F+10>>0]=a[e+((w-x|0)>>>18&1023)>>0]|0;a[F+4>>0]=a[e+((z+y|0)>>>18&1023)>>0]|0;a[F+9>>0]=a[e+((y-z|0)>>>18&1023)>>0]|0;a[F+5>>0]=a[e+((C+A|0)>>>18&1023)>>0]|0;a[F+8>>0]=a[e+((A-C|0)>>>18&1023)>>0]|0;a[F+6>>0]=a[e+((E+D|0)>>>18&1023)>>0]|0;a[F+7>>0]=a[e+((D-E|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==14)break;else i=i+32|0}zb=m;return}function sv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0;m=zb;zb=zb+416|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;s=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;o=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;E=o+s|0;o=s-o|0;s=E*9465|0;w=(o*793|0)+f|0;A=s+(n*11249|0)+w|0;w=(n*4108|0)-s+w|0;s=E*2592|0;q=(o*3989|0)+f|0;y=(n*8672|0)-s+q|0;q=s+(B(n,-10258)|0)+q|0;E=E*3570|0;s=f+(B(o,-7678)|0)|0;u=(B(n,-1396)|0)-E+s|0;s=E+(B(n,-6581)|0)+s|0;E=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;r=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;C=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;p=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;x=(r+E|0)*10832|0;v=(C+E|0)*9534|0;D=p+E|0;F=D*7682|0;z=x+(B(E,-16549)|0)+v+F|0;H=B(C+r|0,-2773)|0;G=B(p+r|0,-9534)|0;x=x+(r*6859|0)+H+G|0;t=B(p+C|0,-5384)|0;v=H+(B(C,-12879)|0)+v+t|0;t=G+(p*18068|0)+F+t|0;D=(D*2773|0)+((C-r|0)*7682|0)|0;r=D+(E*2611|0)+(B(r,-3818)|0)|0;p=D+(C*3150|0)+(B(p,-14273)|0)|0;c[k>>2]=z+A>>11;c[k+384>>2]=A-z>>11;c[k+32>>2]=x+y>>11;c[k+352>>2]=y-x>>11;c[k+64>>2]=v+w>>11;c[k+320>>2]=w-v>>11;c[k+96>>2]=t+u>>11;c[k+288>>2]=u-t>>11;c[k+128>>2]=r+s>>11;c[k+256>>2]=s-r>>11;c[k+160>>2]=p+q>>11;c[k+224>>2]=q-p>>11;c[k+192>>2]=((o-n|0)*11585|0)+f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){H=(c[g+(d<<2)>>2]|0)+h|0;G=(c[i>>2]<<13)+134348800|0;F=c[i+8>>2]|0;z=c[i+16>>2]|0;E=c[i+24>>2]|0;o=E+z|0;E=z-E|0;z=o*9465|0;v=(E*793|0)+G|0;r=z+(F*11249|0)+v|0;v=(F*4108|0)-z+v|0;z=o*2592|0;C=(E*3989|0)+G|0;t=(F*8672|0)-z+C|0;C=z+(B(F,-10258)|0)+C|0;o=o*3570|0;z=G+(B(E,-7678)|0)|0;x=(B(F,-1396)|0)-o+z|0;z=o+(B(F,-6581)|0)+z|0;o=c[i+4>>2]|0;A=c[i+12>>2]|0;q=c[i+20>>2]|0;D=c[i+28>>2]|0;u=(A+o|0)*10832|0;w=(q+o|0)*9534|0;p=D+o|0;n=p*7682|0;s=u+(B(o,-16549)|0)+w+n|0;k=B(q+A|0,-2773)|0;l=B(D+A|0,-9534)|0;u=u+(A*6859|0)+k+l|0;y=B(D+q|0,-5384)|0;w=k+(B(q,-12879)|0)+w+y|0;y=l+(D*18068|0)+n+y|0;p=(p*2773|0)+((q-A|0)*7682|0)|0;A=p+(o*2611|0)+(B(A,-3818)|0)|0;D=p+(q*3150|0)+(B(D,-14273)|0)|0;a[H>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[H+12>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[H+1>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[H+11>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[H+2>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[H+10>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[H+3>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[H+9>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[H+4>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[H+8>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;a[H+5>>0]=a[e+((D+C|0)>>>18&1023)>>0]|0;a[H+7>>0]=a[e+((C-D|0)>>>18&1023)>>0]|0;a[H+6>>0]=a[e+((((E-F|0)*11585|0)+G|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==13)break;else i=i+32|0}zb=m;return}function tv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;m=zb;zb=zb+384|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){n=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;z=B((b[d+64>>1]|0)*10033|0,c[j+128>>2]|0)|0;y=z+n|0;z=n-z|0;t=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;r=B(b[d+96>>1]<<13,c[j+192>>2]|0)|0;p=(t<<13)-r|0;v=p+n|0;p=n-p|0;n=r+(t*11190|0)|0;x=n+y|0;n=y-n|0;r=(t*2998|0)-r|0;t=r+z|0;r=z-r|0;z=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;y=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;o=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;u=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;C=y*10703|0;A=B(y,-4433)|0;s=o+z|0;f=(u+s|0)*7053|0;s=f+(s*2139|0)|0;w=C+(z*2295|0)+s|0;q=B(u+o|0,-8565)|0;s=(B(o,-12112)|0)+A+q+s|0;q=(u*12998|0)-C+f+q|0;f=A+(B(z,-5540)|0)+(B(u,-16244)|0)+f|0;u=z-u|0;o=y-o|0;y=(u+o|0)*4433|0;u=y+(u*6270|0)|0;o=y+(B(o,-15137)|0)|0;c[k>>2]=w+x>>11;c[k+352>>2]=x-w>>11;c[k+32>>2]=u+v>>11;c[k+320>>2]=v-u>>11;c[k+64>>2]=s+t>>11;c[k+288>>2]=t-s>>11;c[k+96>>2]=q+r>>11;c[k+256>>2]=r-q>>11;c[k+128>>2]=o+p>>11;c[k+224>>2]=p-o>>11;c[k+160>>2]=f+n>>11;c[k+192>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){C=(c[g+(d<<2)>>2]|0)+h|0;z=(c[i>>2]<<13)+134348800|0;n=(c[i+16>>2]|0)*10033|0;o=z+n|0;n=z-n|0;t=c[i+8>>2]|0;v=c[i+24>>2]<<13;x=(t<<13)-v|0;r=x+z|0;x=z-x|0;z=v+(t*11190|0)|0;p=z+o|0;z=o-z|0;v=(t*2998|0)-v|0;t=v+n|0;v=n-v|0;n=c[i+4>>2]|0;o=c[i+12>>2]|0;y=c[i+20>>2]|0;s=c[i+28>>2]|0;k=o*10703|0;l=B(o,-4433)|0;u=y+n|0;A=(u+s|0)*7053|0;u=A+(u*2139|0)|0;q=k+(n*2295|0)+u|0;w=B(s+y|0,-8565)|0;u=(B(y,-12112)|0)+l+w+u|0;w=(s*12998|0)-k+A+w|0;A=l+(B(n,-5540)|0)+(B(s,-16244)|0)+A|0;s=n-s|0;y=o-y|0;o=(s+y|0)*4433|0;s=o+(s*6270|0)|0;y=o+(B(y,-15137)|0)|0;a[C>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[C+11>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[C+1>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[C+10>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[C+2>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[C+9>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[C+3>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[C+8>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[C+4>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[C+7>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[C+5>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[C+6>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==12)break;else i=i+32|0}zb=m;return}function uv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;m=zb;zb=zb+352|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;y=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;z=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;s=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;q=(z-y|0)*3529|0;o=s+y|0;v=o-z|0;x=(v*11116|0)+f|0;w=x+((z-s|0)*20862|0)|0;u=w+(B(z,-14924)|0)+q|0;w=w+(s*17333|0)|0;q=x+q+(B(y,-12399)|0)|0;o=x+(B(o,-9467)|0)|0;s=o+(B(s,-6461)|0)|0;o=(z*15929|0)+(B(y,-11395)|0)+o|0;f=(B(v,-11585)|0)+f|0;v=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;y=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;z=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;x=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;C=y+v|0;n=(z+C+x|0)*3264|0;C=C*7274|0;r=(z+v|0)*5492|0;p=n+((x+v|0)*3e3|0)|0;v=C+(B(v,-7562)|0)+r+p|0;t=n+(B(z+y|0,-9527)|0)|0;r=r+(B(z,-9766)|0)+t|0;A=B(x+y|0,-14731)|0;t=C+(y*16984|0)+A+t|0;p=A+(x*17223|0)+p|0;n=(z*8203|0)+(B(y,-12019)|0)+(B(x,-13802)|0)+n|0;c[k>>2]=v+w>>11;c[k+320>>2]=w-v>>11;c[k+32>>2]=t+u>>11;c[k+288>>2]=u-t>>11;c[k+64>>2]=r+s>>11;c[k+256>>2]=s-r>>11;c[k+96>>2]=p+q>>11;c[k+224>>2]=q-p>>11;c[k+128>>2]=n+o>>11;c[k+192>>2]=o-n>>11;c[k+160>>2]=f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){C=(c[g+(d<<2)>>2]|0)+h|0;A=(c[i>>2]<<13)+134348800|0;o=c[i+8>>2]|0;n=c[i+16>>2]|0;u=c[i+24>>2]|0;w=(n-o|0)*3529|0;y=u+o|0;r=y-n|0;p=(r*11116|0)+A|0;q=p+((n-u|0)*20862|0)|0;s=q+(B(n,-14924)|0)+w|0;q=q+(u*17333|0)|0;w=p+w+(B(o,-12399)|0)|0;y=p+(B(y,-9467)|0)|0;u=y+(B(u,-6461)|0)|0;y=(n*15929|0)+(B(o,-11395)|0)+y|0;A=(B(r,-11585)|0)+A|0;r=c[i+4>>2]|0;o=c[i+12>>2]|0;n=c[i+20>>2]|0;p=c[i+28>>2]|0;k=o+r|0;z=(k+n+p|0)*3264|0;k=k*7274|0;v=(n+r|0)*5492|0;x=z+((p+r|0)*3e3|0)|0;r=k+(B(r,-7562)|0)+v+x|0;t=z+(B(n+o|0,-9527)|0)|0;v=v+(B(n,-9766)|0)+t|0;l=B(p+o|0,-14731)|0;t=k+(o*16984|0)+l+t|0;x=l+(p*17223|0)+x|0;z=(n*8203|0)+(B(o,-12019)|0)+(B(p,-13802)|0)+z|0;a[C>>0]=a[e+((r+q|0)>>>18&1023)>>0]|0;a[C+10>>0]=a[e+((q-r|0)>>>18&1023)>>0]|0;a[C+1>>0]=a[e+((t+s|0)>>>18&1023)>>0]|0;a[C+9>>0]=a[e+((s-t|0)>>>18&1023)>>0]|0;a[C+2>>0]=a[e+((v+u|0)>>>18&1023)>>0]|0;a[C+8>>0]=a[e+((u-v|0)>>>18&1023)>>0]|0;a[C+3>>0]=a[e+((x+w|0)>>>18&1023)>>0]|0;a[C+7>>0]=a[e+((w-x|0)>>>18&1023)>>0]|0;a[C+4>>0]=a[e+((z+y|0)>>>18&1023)>>0]|0;a[C+6>>0]=a[e+((y-z|0)>>>18&1023)>>0]|0;a[C+5>>0]=a[e+(A>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==11)break;else i=i+32|0}zb=m;return}function vv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=zb;zb=zb+320|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){r=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;t=(n*9373|0)+r|0;w=(B(n,-3580)|0)+r|0;r=(B(n,-11586)|0)+r>>11;n=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;p=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;v=(p+n|0)*6810|0;n=v+(n*4209|0)|0;p=v+(B(p,-17828)|0)|0;v=n+t|0;n=t-n|0;t=p+w|0;p=w-p|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;x=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;s=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;q=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;o=q+x|0;q=x-q|0;x=q*2531|0;y=s<<13;z=o*7791|0;f=x+y|0;u=z+(w*11443|0)+f|0;f=(w*1812|0)-z+f|0;o=o*4815|0;x=y-x-(q<<12)|0;q=w-s-q<<2;s=(w*10323|0)-o-x|0;o=x+((w*5260|0)-o)|0;c[k>>2]=u+v>>11;c[k+288>>2]=v-u>>11;c[k+32>>2]=s+t>>11;c[k+256>>2]=t-s>>11;c[k+64>>2]=q+r;c[k+224>>2]=r-q;c[k+96>>2]=o+p>>11;c[k+192>>2]=p-o>>11;c[k+128>>2]=f+n>>11;c[k+160>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){z=(c[g+(d<<2)>>2]|0)+h|0;x=(c[i>>2]<<13)+134348800|0;t=c[i+16>>2]|0;r=x+(t*9373|0)|0;o=x+(B(t,-3580)|0)|0;t=x+(B(t,-11586)|0)|0;x=c[i+8>>2]|0;v=c[i+24>>2]|0;p=(v+x|0)*6810|0;x=p+(x*4209|0)|0;v=p+(B(v,-17828)|0)|0;p=x+r|0;x=r-x|0;r=v+o|0;v=o-v|0;o=c[i+4>>2]|0;n=c[i+12>>2]|0;u=c[i+20>>2]<<13;s=c[i+28>>2]|0;w=s+n|0;s=n-s|0;n=s*2531|0;l=w*7791|0;y=n+u|0;q=l+(o*11443|0)+y|0;y=(o*1812|0)-l+y|0;w=w*4815|0;n=u-n-(s<<12)|0;u=(o-s<<13)-u|0;s=(o*10323|0)-w-n|0;w=n+((o*5260|0)-w)|0;a[z>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[z+9>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[z+1>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[z+8>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[z+2>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[z+7>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[z+3>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[z+6>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[z+4>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[z+5>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==10)break;else i=i+32|0}zb=m;return}function wv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=zb;zb=zb+288|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){q=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;w=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;o=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;f=B((b[d+96>>1]|0)*5793|0,c[j+192>>2]|0)|0;v=f+q|0;f=q-f-f|0;q=w-o|0;s=f+(q*5793|0)|0;f=(B(q,-11586)|0)+f|0;q=(o+w|0)*10887|0;w=w*8875|0;o=o*2012|0;u=q-o+v|0;q=v-q+w|0;o=v-w+o|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;v=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;r=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;x=B(B(b[d+48>>1]|0,-10033)|0,c[j+96>>2]|0)|0;p=(v+w|0)*7447|0;n=(r+w|0)*3962|0;t=p-x+n|0;y=(v-r|0)*11409|0;p=x-y+p|0;n=y+x+n|0;r=(w-v-r|0)*10033|0;c[k>>2]=t+u>>11;c[k+256>>2]=u-t>>11;c[k+32>>2]=r+s>>11;c[k+224>>2]=s-r>>11;c[k+64>>2]=p+q>>11;c[k+192>>2]=q-p>>11;c[k+96>>2]=n+o>>11;c[k+160>>2]=o-n>>11;c[k+128>>2]=f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){y=(c[g+(d<<2)>>2]|0)+h|0;t=(c[i>>2]<<13)+134348800|0;n=c[i+8>>2]|0;v=c[i+16>>2]|0;x=(c[i+24>>2]|0)*5793|0;o=x+t|0;x=t-x-x|0;t=n-v|0;r=x+(t*5793|0)|0;x=(B(t,-11586)|0)+x|0;t=(v+n|0)*10887|0;n=n*8875|0;v=v*2012|0;p=t-v+o|0;t=o-t+n|0;v=o-n+v|0;n=c[i+4>>2]|0;o=c[i+20>>2]|0;s=c[i+28>>2]|0;l=B(c[i+12>>2]|0,-10033)|0;u=(o+n|0)*7447|0;w=(s+n|0)*3962|0;q=u-l+w|0;k=(o-s|0)*11409|0;u=l-k+u|0;w=k+l+w|0;s=(n-o-s|0)*10033|0;a[y>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[y+8>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[y+1>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[y+7>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[y+2>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[y+6>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[y+3>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[y+5>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[y+4>>0]=a[e+(x>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==9)break;else i=i+32|0}zb=m;return}function xv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=zb;zb=zb+208|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;w=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;o=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;u=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;v=(o-u|0)*7223|0;p=(w-o|0)*2578|0;s=(B(o,-15083)|0)+f+p+v|0;n=u+w|0;q=(n*10438|0)+f|0;u=v+(B(u,-637)|0)+q|0;q=p+(B(w,-20239)|0)+q|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;p=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;v=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;x=(p+w|0)*7663|0;t=(w-p|0)*1395|0;p=B(v+p|0,-11295)|0;r=x+t+p|0;w=(v+w|0)*5027|0;t=w+(x-t)|0;p=w+(v*15326|0)+p|0;c[k>>2]=t+u>>11;c[k+168>>2]=u-t>>11;c[k+28>>2]=r+s>>11;c[k+140>>2]=s-r>>11;c[k+56>>2]=p+q>>11;c[k+112>>2]=q-p>>11;c[k+84>>2]=((o-n|0)*11585|0)+f>>11;e=e+1|0;if((e|0)==7)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){x=(c[g+(d<<2)>>2]|0)+h|0;w=(c[i>>2]<<13)+134348800|0;l=c[i+8>>2]|0;u=c[i+16>>2]|0;o=c[i+24>>2]|0;n=(u-o|0)*7223|0;t=(l-u|0)*2578|0;q=(B(u,-15083)|0)+w+t+n|0;v=o+l|0;s=(v*10438|0)+w|0;o=n+(B(o,-637)|0)+s|0;s=t+(B(l,-20239)|0)+s|0;l=c[i+4>>2]|0;t=c[i+12>>2]|0;n=c[i+20>>2]|0;k=(t+l|0)*7663|0;p=(l-t|0)*1395|0;t=B(n+t|0,-11295)|0;r=k+p+t|0;l=(n+l|0)*5027|0;p=k-p+l|0;t=l+(n*15326|0)+t|0;a[x>>0]=a[e+((p+o|0)>>>18&1023)>>0]|0;a[x+6>>0]=a[e+((o-p|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[e+((r+q|0)>>>18&1023)>>0]|0;a[x+5>>0]=a[e+((q-r|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[e+((t+s|0)>>>18&1023)>>0]|0;a[x+4>>0]=a[e+((s-t|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[e+((((u-v|0)*11585|0)+w|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==7)break;else i=i+28|0}zb=m;return}function yv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=zb;zb=zb+144|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){p=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B((b[d+64>>1]|0)*5793|0,c[j+128>>2]|0)|0;t=n+p|0;p=(B(n,-2)|0)+p>>11;n=B((b[d+32>>1]|0)*10033|0,c[j+64>>2]|0)|0;r=n+t|0;n=t-n|0;t=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;s=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;o=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;f=(o+t|0)*2998|0;q=f+(s+t<<13)|0;f=f+(o-s<<13)|0;o=t-s-o<<2;c[k>>2]=q+r>>11;c[k+120>>2]=r-q>>11;c[k+24>>2]=o+p;c[k+96>>2]=p-o;c[k+48>>2]=f+n>>11;c[k+72>>2]=n-f>>11;e=e+1|0;if((e|0)==6)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){t=(c[g+(d<<2)>>2]|0)+h|0;r=(c[i>>2]<<13)+134348800|0;p=(c[i+16>>2]|0)*5793|0;k=r+p|0;p=r-p-p|0;r=(c[i+8>>2]|0)*10033|0;n=k+r|0;r=k-r|0;k=c[i+4>>2]|0;l=c[i+12>>2]|0;q=c[i+20>>2]|0;s=(q+k|0)*2998|0;o=s+(l+k<<13)|0;s=s+(q-l<<13)|0;q=k-l-q<<13;a[t>>0]=a[e+((o+n|0)>>>18&1023)>>0]|0;a[t+5>>0]=a[e+((n-o|0)>>>18&1023)>>0]|0;a[t+1>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[t+4>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[t+2>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[t+3>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==6)break;else i=i+24|0}zb=m;return}function zv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=zb;zb=zb+112|0;l=i;d=c[d+336>>2]|0;o=c[e+84>>2]|0;n=B(b[f>>1]<<13,c[o>>2]|0)|0|1024;e=B(c[o+64>>2]|0,b[f+32>>1]|0)|0;j=B(c[o+128>>2]|0,b[f+64>>1]|0)|0;q=(j+e|0)*6476|0;j=e-j|0;e=(j*2896|0)+n|0;p=e+q|0;q=e-q|0;n=(B(j,-11584)|0)+n|0;j=B(c[o+32>>2]|0,b[f+16>>1]|0)|0;e=B(c[o+96>>2]|0,b[f+48>>1]|0)|0;m=(e+j|0)*6810|0;j=m+(j*4209|0)|0;e=m+(B(e,-17828)|0)|0;c[l>>2]=j+p>>11;c[l+80>>2]=p-j>>11;j=l+20|0;c[j>>2]=e+q>>11;c[l+60>>2]=q-e>>11;c[l+40>>2]=n>>11;n=l+4|0;e=B(b[f+2>>1]<<13,c[o+4>>2]|0)|0|1024;q=B(c[o+68>>2]|0,b[f+34>>1]|0)|0;p=B(c[o+132>>2]|0,b[f+66>>1]|0)|0;m=(p+q|0)*6476|0;p=q-p|0;q=(p*2896|0)+e|0;k=q+m|0;m=q-m|0;e=(B(p,-11584)|0)+e|0;p=B(c[o+36>>2]|0,b[f+18>>1]|0)|0;q=B(c[o+100>>2]|0,b[f+50>>1]|0)|0;r=(q+p|0)*6810|0;p=r+(p*4209|0)|0;q=r+(B(q,-17828)|0)|0;c[n>>2]=p+k>>11;c[l+84>>2]=k-p>>11;c[l+24>>2]=q+m>>11;c[l+64>>2]=m-q>>11;c[l+44>>2]=e>>11;e=B(b[f+4>>1]<<13,c[o+8>>2]|0)|0|1024;q=B(c[o+72>>2]|0,b[f+36>>1]|0)|0;m=B(c[o+136>>2]|0,b[f+68>>1]|0)|0;p=(m+q|0)*6476|0;m=q-m|0;q=(m*2896|0)+e|0;k=q+p|0;p=q-p|0;e=(B(m,-11584)|0)+e|0;m=B(c[o+40>>2]|0,b[f+20>>1]|0)|0;q=B(c[o+104>>2]|0,b[f+52>>1]|0)|0;r=(q+m|0)*6810|0;m=r+(m*4209|0)|0;q=r+(B(q,-17828)|0)|0;c[l+8>>2]=m+k>>11;c[l+88>>2]=k-m>>11;c[l+28>>2]=q+p>>11;c[l+68>>2]=p-q>>11;c[l+48>>2]=e>>11;e=B(b[f+6>>1]<<13,c[o+12>>2]|0)|0|1024;q=B(c[o+76>>2]|0,b[f+38>>1]|0)|0;p=B(c[o+140>>2]|0,b[f+70>>1]|0)|0;m=(p+q|0)*6476|0;p=q-p|0;q=(p*2896|0)+e|0;k=q+m|0;m=q-m|0;e=(B(p,-11584)|0)+e|0;p=B(c[o+44>>2]|0,b[f+22>>1]|0)|0;q=B(c[o+108>>2]|0,b[f+54>>1]|0)|0;r=(q+p|0)*6810|0;p=r+(p*4209|0)|0;q=r+(B(q,-17828)|0)|0;c[l+12>>2]=p+k>>11;c[l+92>>2]=k-p>>11;c[l+32>>2]=q+m>>11;c[l+72>>2]=m-q>>11;c[l+52>>2]=e>>11;e=B(b[f+8>>1]<<13,c[o+16>>2]|0)|0|1024;q=B(c[o+80>>2]|0,b[f+40>>1]|0)|0;m=B(c[o+144>>2]|0,b[f+72>>1]|0)|0;p=(m+q|0)*6476|0;m=q-m|0;q=(m*2896|0)+e|0;k=q+p|0;p=q-p|0;e=(B(m,-11584)|0)+e|0;m=B(c[o+48>>2]|0,b[f+24>>1]|0)|0;f=B(c[o+112>>2]|0,b[f+56>>1]|0)|0;o=(f+m|0)*6810|0;m=o+(m*4209|0)|0;f=o+(B(f,-17828)|0)|0;c[l+16>>2]=m+k>>11;c[l+96>>2]=k-m>>11;c[l+36>>2]=f+p>>11;c[l+76>>2]=p-f>>11;c[l+56>>2]=e>>11;f=d+-384|0;e=(c[g>>2]|0)+h|0;d=(c[l>>2]<<13)+134348800|0;p=c[l+8>>2]|0;m=c[l+16>>2]|0;k=(m+p|0)*6476|0;m=p-m|0;p=(m*2896|0)+d|0;o=p+k|0;k=p-k|0;d=(B(m,-11584)|0)+d|0;n=c[n>>2]|0;m=c[l+12>>2]|0;p=(m+n|0)*6810|0;n=p+(n*4209|0)|0;m=p+(B(m,-17828)|0)|0;a[e>>0]=a[f+((n+o|0)>>>18&1023)>>0]|0;a[e+4>>0]=a[f+((o-n|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+((m+k|0)>>>18&1023)>>0]|0;a[e+3>>0]=a[f+((k-m|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+(d>>>18&1023)>>0]|0;e=(c[g+4>>2]|0)+h|0;j=(c[j>>2]<<13)+134348800|0;d=c[l+28>>2]|0;m=c[l+36>>2]|0;k=(m+d|0)*6476|0;m=d-m|0;d=(m*2896|0)+j|0;n=d+k|0;k=d-k|0;j=(B(m,-11584)|0)+j|0;m=c[l+24>>2]|0;d=c[l+32>>2]|0;o=(d+m|0)*6810|0;m=o+(m*4209|0)|0;d=o+(B(d,-17828)|0)|0;a[e>>0]=a[f+((m+n|0)>>>18&1023)>>0]|0;a[e+4>>0]=a[f+((n-m|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+((d+k|0)>>>18&1023)>>0]|0;a[e+3>>0]=a[f+((k-d|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+(j>>>18&1023)>>0]|0;e=(c[g+8>>2]|0)+h|0;j=(c[l+40>>2]<<13)+134348800|0;d=c[l+48>>2]|0;k=c[l+56>>2]|0;m=(k+d|0)*6476|0;k=d-k|0;d=(k*2896|0)+j|0;n=d+m|0;m=d-m|0;j=(B(k,-11584)|0)+j|0;k=c[l+44>>2]|0;d=c[l+52>>2]|0;o=(d+k|0)*6810|0;k=o+(k*4209|0)|0;d=o+(B(d,-17828)|0)|0;a[e>>0]=a[f+((k+n|0)>>>18&1023)>>0]|0;a[e+4>>0]=a[f+((n-k|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+((d+m|0)>>>18&1023)>>0]|0;a[e+3>>0]=a[f+((m-d|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+(j>>>18&1023)>>0]|0;e=(c[g+12>>2]|0)+h|0;j=(c[l+60>>2]<<13)+134348800|0;d=c[l+68>>2]|0;m=c[l+76>>2]|0;k=(m+d|0)*6476|0;m=d-m|0;d=(m*2896|0)+j|0;n=d+k|0;k=d-k|0;j=(B(m,-11584)|0)+j|0;m=c[l+64>>2]|0;d=c[l+72>>2]|0;o=(d+m|0)*6810|0;m=o+(m*4209|0)|0;d=o+(B(d,-17828)|0)|0;a[e>>0]=a[f+((m+n|0)>>>18&1023)>>0]|0;a[e+4>>0]=a[f+((n-m|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+((d+k|0)>>>18&1023)>>0]|0;a[e+3>>0]=a[f+((k-d|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+(j>>>18&1023)>>0]|0;h=(c[g+16>>2]|0)+h|0;g=(c[l+80>>2]<<13)+134348800|0;e=c[l+88>>2]|0;j=c[l+96>>2]|0;d=(j+e|0)*6476|0;j=e-j|0;e=(j*2896|0)+g|0;k=e+d|0;d=e-d|0;g=(B(j,-11584)|0)+g|0;j=c[l+84>>2]|0;e=c[l+92>>2]|0;l=(e+j|0)*6810|0;j=l+(j*4209|0)|0;e=l+(B(e,-17828)|0)|0;a[h>>0]=a[f+((j+k|0)>>>18&1023)>>0]|0;a[h+4>>0]=a[f+((k-j|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[f+((e+d|0)>>>18&1023)>>0]|0;a[h+3>>0]=a[f+((d-e|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[f+(g>>>18&1023)>>0]|0;zb=i;return}function Av(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=zb;zb=zb+64|0;k=i;d=c[d+336>>2]|0;e=c[e+84>>2]|0;m=B(c[e>>2]|0,b[f>>1]|0)|0;j=B(c[e+64>>2]|0,b[f+32>>1]|0)|0;o=j+m<<2;j=m-j<<2;m=B(c[e+32>>2]|0,b[f+16>>1]|0)|0;n=B(c[e+96>>2]|0,b[f+48>>1]|0)|0;l=((n+m|0)*4433|0)+1024|0;m=l+(m*6270|0)>>11;n=l+(B(n,-15137)|0)>>11;c[k>>2]=m+o;c[k+48>>2]=o-m;m=k+16|0;c[m>>2]=n+j;c[k+32>>2]=j-n;n=k+4|0;j=B(c[e+4>>2]|0,b[f+2>>1]|0)|0;o=B(c[e+68>>2]|0,b[f+34>>1]|0)|0;l=o+j<<2;o=j-o<<2;j=B(c[e+36>>2]|0,b[f+18>>1]|0)|0;q=B(c[e+100>>2]|0,b[f+50>>1]|0)|0;p=((q+j|0)*4433|0)+1024|0;j=p+(j*6270|0)>>11;q=p+(B(q,-15137)|0)>>11;c[n>>2]=j+l;c[k+52>>2]=l-j;c[k+20>>2]=q+o;c[k+36>>2]=o-q;q=B(c[e+8>>2]|0,b[f+4>>1]|0)|0;o=B(c[e+72>>2]|0,b[f+36>>1]|0)|0;j=o+q<<2;o=q-o<<2;q=B(c[e+40>>2]|0,b[f+20>>1]|0)|0;l=B(c[e+104>>2]|0,b[f+52>>1]|0)|0;p=((l+q|0)*4433|0)+1024|0;q=p+(q*6270|0)>>11;l=p+(B(l,-15137)|0)>>11;p=q+j|0;c[k+8>>2]=p;c[k+56>>2]=j-q;c[k+24>>2]=l+o;c[k+40>>2]=o-l;l=B(c[e+12>>2]|0,b[f+6>>1]|0)|0;o=B(c[e+76>>2]|0,b[f+38>>1]|0)|0;q=o+l<<2;o=l-o<<2;l=B(c[e+44>>2]|0,b[f+22>>1]|0)|0;e=B(c[e+108>>2]|0,b[f+54>>1]|0)|0;j=((e+l|0)*4433|0)+1024|0;l=j+(l*6270|0)>>11;e=j+(B(e,-15137)|0)>>11;j=l+q|0;c[k+12>>2]=j;c[k+60>>2]=q-l;l=e+o|0;c[k+28>>2]=l;c[k+44>>2]=o-e;e=d+-384|0;d=(c[g>>2]|0)+h|0;f=(c[k>>2]|0)+16400|0;o=f+p<<13;f=f-p<<13;n=c[n>>2]|0;p=(j+n|0)*4433|0;n=p+(n*6270|0)|0;j=p+(B(j,-15137)|0)|0;a[d>>0]=a[e+((n+o|0)>>>18&1023)>>0]|0;a[d+3>>0]=a[e+((o-n|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[e+((j+f|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[e+((f-j|0)>>>18&1023)>>0]|0;d=(c[g+4>>2]|0)+h|0;m=(c[m>>2]|0)+16400|0;j=c[k+24>>2]|0;f=m+j<<13;j=m-j<<13;m=c[k+20>>2]|0;n=(l+m|0)*4433|0;m=n+(m*6270|0)|0;l=n+(B(l,-15137)|0)|0;a[d>>0]=a[e+((m+f|0)>>>18&1023)>>0]|0;a[d+3>>0]=a[e+((f-m|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[e+((l+j|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[e+((j-l|0)>>>18&1023)>>0]|0;d=(c[g+8>>2]|0)+h|0;l=(c[k+32>>2]|0)+16400|0;j=c[k+40>>2]|0;m=l+j<<13;j=l-j<<13;l=c[k+36>>2]|0;f=c[k+44>>2]|0;n=(f+l|0)*4433|0;l=n+(l*6270|0)|0;f=n+(B(f,-15137)|0)|0;a[d>>0]=a[e+((l+m|0)>>>18&1023)>>0]|0;a[d+3>>0]=a[e+((m-l|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[e+((f+j|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[e+((j-f|0)>>>18&1023)>>0]|0;h=(c[g+12>>2]|0)+h|0;d=(c[k+48>>2]|0)+16400|0;f=c[k+56>>2]|0;j=d+f<<13;f=d-f<<13;d=c[k+52>>2]|0;g=c[k+60>>2]|0;k=(g+d|0)*4433|0;d=k+(d*6270|0)|0;g=k+(B(g,-15137)|0)|0;a[h>>0]=a[e+((d+j|0)>>>18&1023)>>0]|0;a[h+3>>0]=a[e+((j-d|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[e+((g+f|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[e+((f-g|0)>>>18&1023)>>0]|0;zb=i;return}function Bv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=zb;zb=zb+48|0;j=i;d=c[d+336>>2]|0;e=c[e+84>>2]|0;l=B(b[f>>1]<<13,c[e>>2]|0)|0|1024;k=B((b[f+32>>1]|0)*5793|0,c[e+64>>2]|0)|0;n=k+l|0;l=(B(k,-2)|0)+l|0;k=B((b[f+16>>1]|0)*10033|0,c[e+32>>2]|0)|0;m=k+n>>11;c[j>>2]=m;c[j+24>>2]=n-k>>11;k=j+12|0;c[k>>2]=l>>11;l=B(b[f+2>>1]<<13,c[e+4>>2]|0)|0|1024;n=B((b[f+34>>1]|0)*5793|0,c[e+68>>2]|0)|0;q=n+l|0;l=(B(n,-2)|0)+l|0;n=B((b[f+18>>1]|0)*10033|0,c[e+36>>2]|0)|0;o=n+q>>11;c[j+4>>2]=o;c[j+28>>2]=q-n>>11;l=l>>11;c[j+16>>2]=l;n=B(b[f+4>>1]<<13,c[e+8>>2]|0)|0|1024;q=B((b[f+36>>1]|0)*5793|0,c[e+72>>2]|0)|0;p=q+n|0;n=(B(q,-2)|0)+n|0;e=B((b[f+20>>1]|0)*10033|0,c[e+40>>2]|0)|0;q=e+p>>11;c[j+8>>2]=q;e=p-e>>11;c[j+32>>2]=e;n=n>>11;c[j+20>>2]=n;f=d+-384|0;d=(c[g>>2]|0)+h|0;m=(m<<13)+134348800|0;p=m+(q*5793|0)|0;m=(B(q,-11586)|0)+m|0;o=o*10033|0;a[d>>0]=a[f+((p+o|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[f+((p-o|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[f+(m>>>18&1023)>>0]|0;d=(c[g+4>>2]|0)+h|0;k=(c[k>>2]<<13)+134348800|0;m=k+(n*5793|0)|0;k=(B(n,-11586)|0)+k|0;l=l*10033|0;a[d>>0]=a[f+((m+l|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[f+((m-l|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[f+(k>>>18&1023)>>0]|0;h=(c[g+8>>2]|0)+h|0;g=(c[j+24>>2]<<13)+134348800|0;d=g+(e*5793|0)|0;g=(B(e,-11586)|0)+g|0;e=(c[j+28>>2]|0)*10033|0;a[h>>0]=a[f+((d+e|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[f+((d-e|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[f+(g>>>18&1023)>>0]|0;zb=i;return}function Cv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;d=(c[d+336>>2]|0)+-384|0;j=c[e+84>>2]|0;i=B(c[j>>2]|0,b[f>>1]|0)|0;e=B(c[j+32>>2]|0,b[f+16>>1]|0)|0;i=i+4100|0;k=e+i|0;e=i-e|0;i=B(c[j+4>>2]|0,b[f+2>>1]|0)|0;f=B(c[j+36>>2]|0,b[f+18>>1]|0)|0;j=f+i|0;f=i-f|0;i=(c[g>>2]|0)+h|0;a[i>>0]=a[d+((j+k|0)>>>3&1023)>>0]|0;a[i+1>>0]=a[d+((k-j|0)>>>3&1023)>>0]|0;h=(c[g+4>>2]|0)+h|0;a[h>>0]=a[d+((f+e|0)>>>3&1023)>>0]|0;a[h+1>>0]=a[d+((e-f|0)>>>3&1023)>>0]|0;return}function Dv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;f=(c[d+336>>2]|0)+-384+(((B(c[c[e+84>>2]>>2]|0,b[f>>1]|0)|0)+4100|0)>>>3&1023)|0;a[(c[g>>2]|0)+h>>0]=a[f>>0]|0;return}function Ev(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;o=zb;zb=zb+256|0;m=o;l=c[d+336>>2]|0;k=m;j=c[e+84>>2]|0;i=8;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){d=B(b[f>>1]<<2,c[j>>2]|0)|0;c[k>>2]=d;c[k+32>>2]=d;c[k+64>>2]=d;c[k+96>>2]=d;c[k+128>>2]=d;c[k+160>>2]=d;c[k+192>>2]=d;e=56}else{d=0;n=9}else n=9;if((n|0)==9){n=0;x=B(b[f+64>>1]<<13,c[j+128>>2]|0)|0;p=B(b[f>>1]<<13,c[j>>2]|0)|0|1024;s=x+p|0;x=p-x|0;p=B(c[j+64>>2]|0,d<<16>>16)|0;q=B(c[j+192>>2]|0,b[f+96>>1]|0)|0;u=(q+p|0)*4433|0;p=u+(p*6270|0)|0;q=u+(B(q,-15137)|0)|0;u=p+s|0;p=s-p|0;s=q+x|0;q=x-q|0;d=B(c[j+224>>2]|0,b[f+112>>1]|0)|0;x=B(c[j+160>>2]|0,b[f+80>>1]|0)|0;v=B(c[j+96>>2]|0,b[f+48>>1]|0)|0;t=B(c[j+32>>2]|0,e<<16>>16)|0;r=v+d|0;e=t+x|0;w=(e+r|0)*9633|0;r=w+(B(r,-16069)|0)|0;e=w+(B(e,-3196)|0)|0;w=B(t+d|0,-7373)|0;d=w+(d*2446|0)+r|0;t=w+(t*12299|0)+e|0;w=B(v+x|0,-20995)|0;e=w+(x*16819|0)+e|0;r=w+(v*25172|0)+r|0;c[k>>2]=t+u>>11;c[k+224>>2]=u-t>>11;c[k+32>>2]=r+s>>11;c[k+192>>2]=s-r>>11;c[k+64>>2]=e+q>>11;c[k+160>>2]=q-e>>11;c[k+96>>2]=d+p>>11;d=p-d>>11;e=32}c[k+(e<<2)>>2]=d;if(i>>>0>1){k=k+4|0;j=j+4|0;f=f+2|0;i=i+-1|0}else break}l=l+-384|0;k=0;e=m;while(1){f=(c[g+(k<<2)>>2]|0)+h|0;i=(c[e>>2]|0)+16400|0;j=c[e+4>>2]|0;d=c[e+8>>2]|0;if(!(j|d))if(((((c[e+12>>2]|0)==0?(c[e+16>>2]|0)==0:0)?(c[e+20>>2]|0)==0:0)?(c[e+24>>2]|0)==0:0)?(c[e+28>>2]|0)==0:0){x=a[l+(i>>>5&1023)>>0]|0;a[f>>0]=x;aP(f+1|0,x|0,7)|0}else{d=0;n=19}else n=19;if((n|0)==19){n=0;x=c[e+16>>2]|0;s=x+i<<13;x=i-x<<13;u=c[e+24>>2]|0;q=(u+d|0)*4433|0;w=q+(d*6270|0)|0;u=q+(B(u,-15137)|0)|0;q=w+s|0;w=s-w|0;s=u+x|0;u=x-u|0;x=c[e+28>>2]|0;i=c[e+20>>2]|0;p=c[e+12>>2]|0;t=p+x|0;v=i+j|0;r=(t+v|0)*9633|0;t=r+(B(t,-16069)|0)|0;v=r+(B(v,-3196)|0)|0;r=B(x+j|0,-7373)|0;x=r+(x*2446|0)+t|0;r=r+(j*12299|0)+v|0;m=B(p+i|0,-20995)|0;v=m+(i*16819|0)+v|0;t=m+(p*25172|0)+t|0;a[f>>0]=a[l+((r+q|0)>>>18&1023)>>0]|0;a[f+7>>0]=a[l+((q-r|0)>>>18&1023)>>0]|0;a[f+1>>0]=a[l+((t+s|0)>>>18&1023)>>0]|0;a[f+6>>0]=a[l+((s-t|0)>>>18&1023)>>0]|0;a[f+2>>0]=a[l+((v+u|0)>>>18&1023)>>0]|0;a[f+5>>0]=a[l+((u-v|0)>>>18&1023)>>0]|0;a[f+3>>0]=a[l+((x+w|0)>>>18&1023)>>0]|0;a[f+4>>0]=a[l+((w-x|0)>>>18&1023)>>0]|0}k=k+1|0;if((k|0)==8)break;else e=e+32|0}zb=o;return}function Fv(a,b){a=a|0;b=b|0;var d=0;d=c[a+456>>2]|0;a:do switch(b|0){case 0:{if(!(c[a+84>>2]|0)){c[d+4>>2]=c[(c[a+476>>2]|0)+4>>2];break a}c[d+4>>2]=4;b=d+12|0;if(!(c[b>>2]|0)){a=Mb[c[(c[a+4>>2]|0)+28>>2]&31](a,c[d+8>>2]|0,0,c[d+16>>2]|0,1)|0;c[b>>2]=a}break}case 3:{if(!(c[d+8>>2]|0)){b=c[a>>2]|0;c[b+20>>2]=3;Sb[c[b>>2]&255](a)}c[d+4>>2]=5;break}case 2:{if(!(c[d+8>>2]|0)){b=c[a>>2]|0;c[b+20>>2]=3;Sb[c[b>>2]&255](a)}c[d+4>>2]=6;break}default:{b=c[a>>2]|0;c[b+20>>2]=3;Sb[c[b>>2]&255](a)}}while(0);c[d+24>>2]=0;c[d+20>>2]=0;return}function Gv(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;i=zb;zb=zb+16|0;j=i;m=c[a+456>>2]|0;k=h-(c[g>>2]|0)|0;l=c[m+16>>2]|0;c[j>>2]=0;h=m+12|0;_b[c[(c[a+476>>2]|0)+4>>2]&7](a,b,d,e,c[h>>2]|0,j,k>>>0>l>>>0?l:k);Xb[c[(c[a+484>>2]|0)+4>>2]&31](a,c[h>>2]|0,f+(c[g>>2]<<2)|0,c[j>>2]|0);c[g>>2]=(c[g>>2]|0)+(c[j>>2]|0);zb=i;return}function Hv(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;k=c[a+456>>2]|0;l=k+24|0;f=c[l>>2]|0;if(!f){j=k+16|0;h=Mb[c[(c[a+4>>2]|0)+28>>2]&31](a,c[k+8>>2]|0,c[k+20>>2]|0,c[j>>2]|0,1)|0;i=k+12|0;c[i>>2]=h;f=c[l>>2]|0}else{h=k+12|0;j=k+16|0;i=h;h=c[h>>2]|0}_b[c[(c[a+476>>2]|0)+4>>2]&7](a,b,d,e,h,l,c[j>>2]|0);h=c[l>>2]|0;if(h>>>0>f>>>0){h=h-f|0;Xb[c[(c[a+484>>2]|0)+4>>2]&31](a,(c[i>>2]|0)+(f<<2)|0,0,h);c[g>>2]=(c[g>>2]|0)+h;h=c[l>>2]|0}f=c[j>>2]|0;if(h>>>0>>0)return;k=k+20|0;c[k>>2]=(c[k>>2]|0)+f;c[l>>2]=0;return}function Iv(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;d=c[a+456>>2]|0;j=d+24|0;b=c[j>>2]|0;if(!b){i=d+20|0;e=d+16|0;k=Mb[c[(c[a+4>>2]|0)+28>>2]&31](a,c[d+8>>2]|0,c[i>>2]|0,c[e>>2]|0,0)|0;c[d+12>>2]=k;b=c[j>>2]|0;d=k}else{i=d+20|0;e=d+16|0;d=c[d+12>>2]|0}k=(c[e>>2]|0)-b|0;l=c[g>>2]|0;h=h-l|0;k=k>>>0>h>>>0?h:k;h=(c[a+116>>2]|0)-(c[i>>2]|0)|0;k=k>>>0>h>>>0?h:k;Xb[c[(c[a+484>>2]|0)+4>>2]&31](a,d+(b<<2)|0,f+(l<<2)|0,k);c[g>>2]=(c[g>>2]|0)+k;k=(c[j>>2]|0)+k|0;c[j>>2]=k;b=c[e>>2]|0;if(k>>>0>>0)return;c[i>>2]=(c[i>>2]|0)+b;c[j>>2]=0;return}function Jv(a){a=a|0;var b=0;b=c[a+476>>2]|0;c[b+92>>2]=c[a+320>>2];c[b+96>>2]=c[a+116>>2];return}function Kv(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;l=c[a+476>>2]|0;m=l+92|0;i=c[m>>2]|0;k=a+320|0;e=c[k>>2]|0;if((i|0)>=(e|0)){j=a+36|0;if((c[j>>2]|0)>0){e=c[a+216>>2]|0;i=0;while(1){n=(c[b+(i<<2)>>2]|0)+((B(c[l+100+(i<<2)>>2]|0,c[d>>2]|0)|0)<<2)|0;Xb[c[l+52+(i<<2)>>2]&31](a,e,n,l+12+(i<<2)|0);i=i+1|0;if((i|0)>=(c[j>>2]|0))break;else e=e+88|0}e=c[k>>2]|0}c[m>>2]=0;i=0}n=e-i|0;b=l+96|0;j=c[b>>2]|0;n=n>>>0>j>>>0?j:n;j=c[g>>2]|0;h=h-j|0;n=n>>>0>h>>>0?h:n;Yb[c[(c[a+480>>2]|0)+4>>2]&63](a,l+12|0,i,f+(j<<2)|0,n);c[g>>2]=(c[g>>2]|0)+n;c[b>>2]=(c[b>>2]|0)-n;n=(c[m>>2]|0)+n|0;c[m>>2]=n;if((n|0)<(c[k>>2]|0))return;c[d>>2]=(c[d>>2]|0)+1;return}function Lv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[e>>2]=0;return}function Mv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[e>>2]=d;return}function Nv(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;j=c[f>>2]|0;k=b+320|0;d=c[k>>2]|0;if((d|0)<=0)return;i=b+112|0;h=0;do{b=c[j+(h<<2)>>2]|0;f=c[i>>2]|0;g=b+f|0;if((f|0)>0){f=c[e+(h<<2)>>2]|0;d=b;while(1){b=a[f>>0]|0;a[d>>0]=b;a[d+1>>0]=b;d=d+2|0;if(d>>>0>=g>>>0)break;else f=f+1|0}d=c[k>>2]|0}h=h+1|0}while((h|0)<(d|0));return}function Ov(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;k=c[f>>2]|0;l=b+320|0;if((c[l>>2]|0)<=0)return;j=b+112|0;h=0;i=0;while(1){b=c[k+(i<<2)>>2]|0;d=c[j>>2]|0;g=b+d|0;if((d|0)>0){f=c[e+(h<<2)>>2]|0;d=b;while(1){b=a[f>>0]|0;a[d>>0]=b;a[d+1>>0]=b;d=d+2|0;if(d>>>0>=g>>>0)break;else f=f+1|0}d=c[j>>2]|0}Qv(k,i,k,i|1,1,d);i=i+2|0;if((i|0)>=(c[l>>2]|0))break;else h=h+1|0}return}function Pv(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;r=c[b+476>>2]|0;q=c[f>>2]|0;d=c[d+4>>2]|0;f=a[r+140+d>>0]|0;o=f&255;d=a[r+150+d>>0]|0;r=d&255;p=b+320|0;g=c[p>>2]|0;if((g|0)<=0)return;n=b+112|0;k=f<<24>>24!=0;l=r+-1|0;if((d&255)>1){j=(f<<24>>24==0?~o:-2)+o+2|0;h=0;i=0;while(1){d=c[q+(i<<2)>>2]|0;f=c[n>>2]|0;g=d+f|0;if((f|0)>0){if(!k)break;b=c[e+(h<<2)>>2]|0;f=d;while(1){aP(f|0,a[b>>0]|0,j|0)|0;d=o;while(1){f=f+1|0;if((d|0)<=1)break;else d=d+-1|0}if(f>>>0>>0)b=b+1|0;else break}f=c[n>>2]|0}Qv(q,i,q,i+1|0,l,f);i=i+r|0;if((i|0)>=(c[p>>2]|0)){m=27;break}else h=h+1|0}if((m|0)==27)return;while(1){}}if(!k){d=(c[n>>2]|0)>0;f=0;while(1){if(d)break;f=f+r|0;if((f|0)>=(g|0)){m=27;break}}if((m|0)==27)return;while(1){}}b=0;h=0;while(1){f=c[q+(h<<2)>>2]|0;m=c[n>>2]|0;i=f+m|0;if((m|0)>0){g=c[e+(b<<2)>>2]|0;while(1){aP(f|0,a[g>>0]|0,o|0)|0;d=o;while(1){f=f+1|0;if((d|0)<=1)break;else d=d+-1|0}if(f>>>0>>0)g=g+1|0;else break}}h=h+r|0;if((h|0)>=(c[p>>2]|0))break;else b=b+1|0}return}function Qv(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((f|0)<=0)return;b=a+(b<<2)|0;a=d+(e<<2)|0;while(1){_O(c[a>>2]|0,c[b>>2]|0,g|0)|0;if((f|0)>1){b=b+4|0;a=a+4|0;f=f+-1|0}else break}return}function Rv(a){a=a|0;return}function Sv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;Qv(c[b>>2]|0,d,e,0,f,c[a+112>>2]|0);return}function Tv(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;q=c[(c[b+480>>2]|0)+24>>2]|0;n=c[b+112>>2]|0;if((h|0)<=0)return;o=e+4|0;p=e+8|0;if(!n)return;while(1){i=h;h=h+-1|0;j=c[(c[e>>2]|0)+(f<<2)>>2]|0;k=c[(c[o>>2]|0)+(f<<2)>>2]|0;l=c[(c[p>>2]|0)+(f<<2)>>2]|0;f=f+1|0;m=c[g>>2]|0;b=0;do{a[m+b>>0]=((c[q+((d[k+b>>0]|0|256)<<2)>>2]|0)+(c[q+((d[j+b>>0]|0)<<2)>>2]|0)+(c[q+((d[l+b>>0]|0|512)<<2)>>2]|0)|0)>>>16;b=b+1|0}while((b|0)!=(n|0));if((i|0)<=1)break;else g=g+4|0}return}function Uv(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,s=0;q=c[(c[b+480>>2]|0)+24>>2]|0;n=c[b+112>>2]|0;if((h|0)<=0)return;o=e+4|0;p=e+8|0;if(!n)return;while(1){i=h;h=h+-1|0;j=c[(c[e>>2]|0)+(f<<2)>>2]|0;k=c[(c[o>>2]|0)+(f<<2)>>2]|0;l=c[(c[p>>2]|0)+(f<<2)>>2]|0;f=f+1|0;m=c[g>>2]|0;b=0;do{s=d[k+b>>0]|0;r=s+128|0;a[m+b>>0]=((c[q+((s|256)<<2)>>2]|0)+(c[q+((r+(d[j+b>>0]|0)&255)<<2)>>2]|0)+(c[q+((r+(d[l+b>>0]|0)&255|512)<<2)>>2]|0)|0)>>>16;b=b+1|0}while((b|0)!=(n|0));if((i|0)<=1)break;else g=g+4|0}return}function Vv(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;k=c[b+112>>2]|0;if((g|0)<1|(k|0)==0)return;while(1){i=g;g=g+-1|0;j=c[(c[d>>2]|0)+(e<<2)>>2]|0;b=0;h=c[f>>2]|0;while(1){l=a[j+b>>0]|0;a[h+2>>0]=l;a[h+1>>0]=l;a[h>>0]=l;b=b+1|0;if((b|0)==(k|0))break;else h=h+3|0}if((i|0)<=1)break;else{f=f+4|0;e=e+1|0}}return}function Wv(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,s=0,t=0,u=0,v=0,w=0,x=0;r=c[b+480>>2]|0;u=c[b+112>>2]|0;n=c[b+336>>2]|0;o=c[r+8>>2]|0;p=c[r+12>>2]|0;q=c[r+16>>2]|0;r=c[r+20>>2]|0;if((h|0)<=0)return;s=e+4|0;t=e+8|0;if(!u)return;while(1){j=h;h=h+-1|0;k=c[(c[e>>2]|0)+(f<<2)>>2]|0;l=c[(c[s>>2]|0)+(f<<2)>>2]|0;m=c[(c[t>>2]|0)+(f<<2)>>2]|0;f=f+1|0;b=c[g>>2]|0;i=0;while(1){v=d[k+i>>0]|0;w=d[l+i>>0]|0;x=d[m+i>>0]|0;a[b>>0]=a[n+((c[o+(x<<2)>>2]|0)+v)>>0]|0;a[b+1>>0]=a[n+(((c[q+(x<<2)>>2]|0)+(c[r+(w<<2)>>2]|0)>>16)+v)>>0]|0;a[b+2>>0]=a[n+((c[p+(w<<2)>>2]|0)+v)>>0]|0;i=i+1|0;if((i|0)==(u|0))break;else b=b+3|0}if((j|0)<=1)break;else g=g+4|0}return}function Xv(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=c[b+112>>2]|0;if((g|0)<=0)return;n=d+4|0;o=d+8|0;if(!m)return;while(1){i=g;g=g+-1|0;j=c[(c[d>>2]|0)+(e<<2)>>2]|0;k=c[(c[n>>2]|0)+(e<<2)>>2]|0;l=c[(c[o>>2]|0)+(e<<2)>>2]|0;e=e+1|0;b=0;h=c[f>>2]|0;while(1){a[h>>0]=a[j+b>>0]|0;a[h+1>>0]=a[k+b>>0]|0;a[h+2>>0]=a[l+b>>0]|0;b=b+1|0;if((b|0)==(m|0))break;else h=h+3|0}if((i|0)<=1)break;else f=f+4|0}return}function Yv(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,s=0;n=c[b+112>>2]|0;if((h|0)<=0)return;o=e+4|0;p=e+8|0;if(!n)return;while(1){j=h;h=h+-1|0;k=c[(c[e>>2]|0)+(f<<2)>>2]|0;l=c[(c[o>>2]|0)+(f<<2)>>2]|0;m=c[(c[p>>2]|0)+(f<<2)>>2]|0;f=f+1|0;b=0;i=c[g>>2]|0;while(1){s=a[l+b>>0]|0;q=d[m+b>>0]|0;r=(s&255)+128|0;a[i>>0]=r+(d[k+b>>0]|0);a[i+1>>0]=s;a[i+2>>0]=r+q;b=b+1|0;if((b|0)==(n|0))break;else i=i+3|0}if((j|0)<=1)break;else g=g+4|0}return}function Zv(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;s=c[b+480>>2]|0;w=c[b+112>>2]|0;o=c[b+336>>2]|0;p=c[s+8>>2]|0;q=c[s+12>>2]|0;r=c[s+16>>2]|0;s=c[s+20>>2]|0;if((h|0)<=0)return;t=e+4|0;u=e+8|0;v=e+12|0;if(!w)return;while(1){j=h;h=h+-1|0;k=c[(c[e>>2]|0)+(f<<2)>>2]|0;l=c[(c[t>>2]|0)+(f<<2)>>2]|0;m=c[(c[u>>2]|0)+(f<<2)>>2]|0;n=c[(c[v>>2]|0)+(f<<2)>>2]|0;f=f+1|0;b=c[g>>2]|0;i=0;while(1){x=d[l+i>>0]|0;z=d[m+i>>0]|0;y=~a[k+i>>0]&255;a[b>>0]=a[o+(y-(c[p+(z<<2)>>2]|0))>>0]|0;a[b+1>>0]=a[o+(y-((c[r+(z<<2)>>2]|0)+(c[s+(x<<2)>>2]|0)>>16))>>0]|0;a[b+2>>0]=a[o+(y-(c[q+(x<<2)>>2]|0))>>0]|0;a[b+3>>0]=a[n+i>>0]|0;i=i+1|0;if((i|0)==(w|0))break;else b=b+4|0}if((j|0)<=1)break;else g=g+4|0}return}function _v(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=c[b+36>>2]|0;m=c[b+112>>2]|0;if((g|0)<=0)return;l=(m|0)==0;if((n|0)<=0)return;while(1){k=g;g=g+-1|0;if(!l){j=0;do{b=0;h=c[(c[d+(j<<2)>>2]|0)+(e<<2)>>2]|0;i=(c[f>>2]|0)+j|0;while(1){a[i>>0]=a[h>>0]|0;b=b+1|0;if((b|0)==(m|0))break;else{h=h+1|0;i=i+n|0}}j=j+1|0}while((j|0)!=(n|0))}if((k|0)<=1)break;else{f=f+4|0;e=e+1|0}}return}function $v(a){a=a|0;var b=0;b=c[a+476>>2]|0;c[b+36>>2]=0;c[b+44>>2]=c[a+116>>2];return}function aw(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;n=zb;zb=zb+16|0;l=n;m=c[a+476>>2]|0;i=m+36|0;if(!(c[i>>2]|0)){j=m+44|0;e=c[j>>2]|0;e=e>>>0<2?e:2;k=c[g>>2]|0;h=h-k|0;e=e>>>0>h>>>0?h:e;c[l>>2]=c[f+(k<<2)>>2];if(e>>>0>1)c[l+4>>2]=c[f+(k+1<<2)>>2];else{c[l+4>>2]=c[m+32>>2];c[i>>2]=1}Xb[c[m+12>>2]&31](a,b,c[d>>2]|0,l);f=(c[i>>2]|0)==0;c[g>>2]=(c[g>>2]|0)+e;c[j>>2]=(c[j>>2]|0)-e;if(!f){zb=n;return}}else{Qv(m+32|0,0,f+(c[g>>2]<<2)|0,0,1,c[m+40>>2]|0);c[i>>2]=0;f=m+44|0;c[g>>2]=(c[g>>2]|0)+1;c[f>>2]=(c[f>>2]|0)+-1}c[d>>2]=(c[d>>2]|0)+1;zb=n;return}function bw(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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;w=c[b+476>>2]|0;x=c[b+336>>2]|0;y=c[w+16>>2]|0;u=c[w+20>>2]|0;v=c[w+24>>2]|0;w=c[w+28>>2]|0;i=c[e>>2]|0;h=f<<1;t=c[i+(h<<2)>>2]|0;h=c[i+((h|1)<<2)>>2]|0;i=c[(c[e+4>>2]|0)+(f<<2)>>2]|0;p=c[(c[e+8>>2]|0)+(f<<2)>>2]|0;f=c[g>>2]|0;g=c[g+4>>2]|0;s=b+112|0;e=c[s>>2]|0;m=e>>>1;if(!m){j=p;b=t}else{n=i+m|0;q=e&-2;r=m*6|0;o=h+q|0;l=p;e=t;b=g;j=f;k=m;while(1){A=d[i>>0]|0;B=d[l>>0]|0;C=c[y+(B<<2)>>2]|0;B=(c[v+(B<<2)>>2]|0)+(c[w+(A<<2)>>2]|0)>>16;A=c[u+(A<<2)>>2]|0;z=d[e>>0]|0;a[j>>0]=a[x+(C+z)>>0]|0;a[j+1>>0]=a[x+(B+z)>>0]|0;a[j+2>>0]=a[x+(A+z)>>0]|0;z=d[e+1>>0]|0;a[j+3>>0]=a[x+(C+z)>>0]|0;a[j+4>>0]=a[x+(B+z)>>0]|0;a[j+5>>0]=a[x+(A+z)>>0]|0;z=d[h>>0]|0;a[b>>0]=a[x+(C+z)>>0]|0;a[b+1>>0]=a[x+(B+z)>>0]|0;a[b+2>>0]=a[x+(A+z)>>0]|0;z=d[h+1>>0]|0;a[b+3>>0]=a[x+(C+z)>>0]|0;a[b+4>>0]=a[x+(B+z)>>0]|0;a[b+5>>0]=a[x+(A+z)>>0]|0;k=k+-1|0;if(!k)break;else{l=l+1|0;i=i+1|0;h=h+2|0;e=e+2|0;b=b+6|0;j=j+6|0}}j=p+m|0;i=n;h=o;b=t+q|0;g=g+r|0;f=f+r|0;e=c[s>>2]|0}if(!(e&1))return;B=d[i>>0]|0;A=d[j>>0]|0;z=c[y+(A<<2)>>2]|0;A=(c[v+(A<<2)>>2]|0)+(c[w+(B<<2)>>2]|0)>>16;B=c[u+(B<<2)>>2]|0;C=d[b>>0]|0;a[f>>0]=a[x+(z+C)>>0]|0;a[f+1>>0]=a[x+(A+C)>>0]|0;a[f+2>>0]=a[x+(B+C)>>0]|0;C=d[h>>0]|0;a[g>>0]=a[x+(z+C)>>0]|0;a[g+1>>0]=a[x+(A+C)>>0]|0;a[g+2>>0]=a[x+(B+C)>>0]|0;return}function cw(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Xb[c[(c[a+476>>2]|0)+12>>2]&31](a,b,c[d>>2]|0,f+(c[g>>2]<<2)|0);c[g>>2]=(c[g>>2]|0)+1;c[d>>2]=(c[d>>2]|0)+1;return}function dw(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,v=0,w=0,x=0,y=0;s=c[b+476>>2]|0;t=c[b+336>>2]|0;u=c[s+16>>2]|0;q=c[s+20>>2]|0;r=c[s+24>>2]|0;s=c[s+28>>2]|0;p=c[(c[e>>2]|0)+(f<<2)>>2]|0;i=c[(c[e+4>>2]|0)+(f<<2)>>2]|0;h=c[(c[e+8>>2]|0)+(f<<2)>>2]|0;f=c[g>>2]|0;o=b+112|0;e=c[o>>2]|0;l=e>>>1;if(!l){b=i;g=p}else{b=i+l|0;m=e&-2;n=l*6|0;k=h;e=i;g=p;i=f;j=l;while(1){w=d[e>>0]|0;x=d[k>>0]|0;y=c[u+(x<<2)>>2]|0;x=(c[r+(x<<2)>>2]|0)+(c[s+(w<<2)>>2]|0)>>16;w=c[q+(w<<2)>>2]|0;v=d[g>>0]|0;a[i>>0]=a[t+(y+v)>>0]|0;a[i+1>>0]=a[t+(x+v)>>0]|0;a[i+2>>0]=a[t+(w+v)>>0]|0;v=d[g+1>>0]|0;a[i+3>>0]=a[t+(y+v)>>0]|0;a[i+4>>0]=a[t+(x+v)>>0]|0;a[i+5>>0]=a[t+(w+v)>>0]|0;j=j+-1|0;if(!j)break;else{k=k+1|0;e=e+1|0;g=g+2|0;i=i+6|0}}h=h+l|0;g=p+m|0;f=f+n|0;e=c[o>>2]|0}if(!(e&1))return;x=d[b>>0]|0;v=d[h>>0]|0;w=(c[r+(v<<2)>>2]|0)+(c[s+(x<<2)>>2]|0)>>16;x=c[q+(x<<2)>>2]|0;y=d[g>>0]|0;a[f>>0]=a[t+((c[u+(v<<2)>>2]|0)+y)>>0]|0;a[f+1>>0]=a[t+(w+y)>>0]|0;a[f+2>>0]=a[t+(x+y)>>0]|0;return}function ew(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+484>>2]|0;g=c[f+24>>2]|0;e=a+88|0;if(!(c[e>>2]|0))d=0;else{c[e>>2]=2;d=2}if(!b){c[f+4>>2]=(d|0)==2?20:21;c[f+8>>2]=134;b=c[a+132>>2]|0;if((b|0)>=1){if((b|0)>256){d=c[a>>2]|0;c[d+20>>2]=59;c[d+24>>2]=256;Sb[c[c[a>>2]>>2]&255](a)}}else{d=c[a>>2]|0;c[d+20>>2]=58;c[d+24>>2]=1;Sb[c[c[a>>2]>>2]&255](a)}if((c[e>>2]|0)==2){e=((c[a+112>>2]|0)*6|0)+12|0;d=f+32|0;b=c[d>>2]|0;if(!b){b=Jb[c[(c[a+4>>2]|0)+4>>2]&63](a,1,e)|0;c[d>>2]=b}aP(b|0,0,e|0)|0;if(!(c[f+40>>2]|0))gw(a);c[f+36>>2]=0}}else{c[f+4>>2]=19;c[f+8>>2]=133;c[f+28>>2]=1}b=f+28|0;if(!(c[b>>2]|0))return;aP(c[g>>2]|0,0,4096)|0;aP(c[g+4>>2]|0,0,4096)|0;aP(c[g+8>>2]|0,0,4096)|0;aP(c[g+12>>2]|0,0,4096)|0;aP(c[g+16>>2]|0,0,4096)|0;aP(c[g+20>>2]|0,0,4096)|0;aP(c[g+24>>2]|0,0,4096)|0;aP(c[g+28>>2]|0,0,4096)|0;aP(c[g+32>>2]|0,0,4096)|0;aP(c[g+36>>2]|0,0,4096)|0;aP(c[g+40>>2]|0,0,4096)|0;aP(c[g+44>>2]|0,0,4096)|0;aP(c[g+48>>2]|0,0,4096)|0;aP(c[g+52>>2]|0,0,4096)|0;aP(c[g+56>>2]|0,0,4096)|0;aP(c[g+60>>2]|0,0,4096)|0;aP(c[g+64>>2]|0,0,4096)|0;aP(c[g+68>>2]|0,0,4096)|0;aP(c[g+72>>2]|0,0,4096)|0;aP(c[g+76>>2]|0,0,4096)|0;aP(c[g+80>>2]|0,0,4096)|0;aP(c[g+84>>2]|0,0,4096)|0;aP(c[g+88>>2]|0,0,4096)|0;aP(c[g+92>>2]|0,0,4096)|0;aP(c[g+96>>2]|0,0,4096)|0;aP(c[g+100>>2]|0,0,4096)|0;aP(c[g+104>>2]|0,0,4096)|0;aP(c[g+108>>2]|0,0,4096)|0;aP(c[g+112>>2]|0,0,4096)|0;aP(c[g+116>>2]|0,0,4096)|0;aP(c[g+120>>2]|0,0,4096)|0;aP(c[g+124>>2]|0,0,4096)|0;c[b>>2]=0;return}function fw(a){a=a|0;c[(c[a+484>>2]|0)+28>>2]=1;return}function gw(a){a=a|0;var b=0,d=0,e=0;d=c[a+484>>2]|0;a=Jb[c[c[a+4>>2]>>2]&63](a,1,2044)|0;e=a+1020|0;c[d+40>>2]=e;c[e>>2]=0;c[a+1024>>2]=1;c[a+1016>>2]=-1;c[a+1028>>2]=2;c[a+1012>>2]=-2;c[a+1032>>2]=3;c[a+1008>>2]=-3;c[a+1036>>2]=4;c[a+1004>>2]=-4;c[a+1040>>2]=5;c[a+1e3>>2]=-5;c[a+1044>>2]=6;c[a+996>>2]=-6;c[a+1048>>2]=7;c[a+992>>2]=-7;c[a+1052>>2]=8;c[a+988>>2]=-8;c[a+1056>>2]=9;c[a+984>>2]=-9;c[a+1060>>2]=10;c[a+980>>2]=-10;c[a+1064>>2]=11;c[a+976>>2]=-11;c[a+1068>>2]=12;c[a+972>>2]=-12;c[a+1072>>2]=13;c[a+968>>2]=-13;c[a+1076>>2]=14;c[a+964>>2]=-14;c[a+1080>>2]=15;c[a+960>>2]=-15;a=16;d=16;do{c[e+(a<<2)>>2]=d;c[e+(0-a<<2)>>2]=0-d;a=a+1|0;d=(a&1^1)+d|0}while((a|0)!=48);b=0-d|0;a=48;do{c[e+(a<<2)>>2]=d;c[e+(0-a<<2)>>2]=b;a=a+1|0}while((a|0)!=256);return}function hw(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;j=c[(c[a+484>>2]|0)+24>>2]|0;i=c[a+112>>2]|0;if((g|0)<1|(i|0)==0)return;a=0;do{f=i;h=c[e+(a<<2)>>2]|0;while(1){k=(c[j+((d[h>>0]|0)>>>3<<2)>>2]|0)+((d[h+1>>0]|0)>>>2<<6)+((d[h+2>>0]|0)>>>3<<1)|0;m=b[k>>1]|0;l=m+1<<16>>16;b[k>>1]=l<<16>>16==0?m:l;f=f+-1|0;if(!f)break;else h=h+3|0}a=a+1|0}while((a|0)!=(g|0));return}function iw(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0;y=d+484|0;A=c[y>>2]|0;C=d+136|0;c[C>>2]=c[A+16>>2];s=c[A+20>>2]|0;z=Jb[c[c[d+4>>2]>>2]&63](d,1,s<<5)|0;c[z>>2]=0;c[z+4>>2]=31;c[z+8>>2]=0;c[z+12>>2]=63;c[z+16>>2]=0;c[z+20>>2]=31;nw(d,z);a:do if((s|0)>1){e=1;while(1){if((e<<1|0)>(s|0)){g=0;h=0;i=z;f=0;while(1){j=c[i+24>>2]|0;k=(j|0)>(g|0);f=k?i:f;h=h+1|0;if((h|0)==(e|0)){q=f;break}else{g=k?j:g;i=i+32|0}}}else{f=0;i=0;j=z;g=0;while(1){h=c[j+28>>2]|0;if((h|0)>(f|0)){x=(c[j+24>>2]|0)>0;g=x?j:g;f=x?h:f}i=i+1|0;if((i|0)==(e|0)){q=g;break}else j=j+32|0}}if(!q)break a;r=z+(e<<5)|0;g=q+4|0;c[z+(e<<5)+4>>2]=c[g>>2];h=q+12|0;c[z+(e<<5)+12>>2]=c[h>>2];i=q+20|0;c[z+(e<<5)+20>>2]=c[i>>2];c[r>>2]=c[q>>2];n=q+8|0;f=z+(e<<5)+8|0;c[f>>2]=c[n>>2];p=q+16|0;j=z+(e<<5)+16|0;c[j>>2]=c[p>>2];k=c[g>>2]|0;l=c[q>>2]|0;v=k-l<<4;m=c[h>>2]|0;n=c[n>>2]|0;w=(m-n|0)*12|0;o=c[i>>2]|0;p=c[p>>2]|0;x=(v|0)>(w|0);switch(((o-p<<3|0)>((x?v:w)|0)?2:(x^1)&1)&3){case 0:{t=(l+k|0)/2|0;c[g>>2]=t;f=r;g=t;t=15;break}case 1:{g=(n+m|0)/2|0;c[h>>2]=g;t=15;break}case 2:{g=(p+o|0)/2|0;c[i>>2]=g;f=j;t=15;break}default:{}}if((t|0)==15){t=0;c[f>>2]=g+1}nw(d,q);nw(d,r);e=e+1|0;if((e|0)>=(s|0))break a}}else e=1;while(0);x=0;do{r=c[(c[y>>2]|0)+24>>2]|0;j=c[z+(x<<5)>>2]|0;s=c[z+(x<<5)+4>>2]|0;t=c[z+(x<<5)+8>>2]|0;u=c[z+(x<<5)+12>>2]|0;v=c[z+(x<<5)+16>>2]|0;w=c[z+(x<<5)+20>>2]|0;if((j|0)>(s|0)|(t|0)>(u|0)|(v|0)>(w|0)){i=0;h=0;g=0;f=0}else{i=0;h=0;g=0;f=0;while(1){p=c[r+(j<<2)>>2]|0;q=j<<3|4;o=t;while(1){n=o<<2|2;l=p+(o<<6)+(v<<1)|0;m=v;while(1){D=b[l>>1]|0;k=D&65535;if(D<<16>>16){i=(B(m<<3|4,k)|0)+i|0;h=(B(n,k)|0)+h|0;g=(B(q,k)|0)+g|0;f=f+k|0}if((m|0)<(w|0)){l=l+2|0;m=m+1|0}else break}if((o|0)<(u|0))o=o+1|0;else break}if((j|0)<(s|0))j=j+1|0;else break}}D=f>>1;a[(c[c[C>>2]>>2]|0)+x>>0]=(g+D|0)/(f|0)|0;a[(c[(c[C>>2]|0)+4>>2]|0)+x>>0]=(h+D|0)/(f|0)|0;a[(c[(c[C>>2]|0)+8>>2]|0)+x>>0]=(i+D|0)/(f|0)|0;x=x+1|0}while((x|0)<(e|0));c[d+132>>2]=e;D=c[d>>2]|0;c[D+20>>2]=98;c[D+24>>2]=e;Ub[c[(c[d>>2]|0)+4>>2]&63](d,1);c[A+28>>2]=1;return}function jw(e,f,g,h){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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;i=c[e+484>>2]|0;U=c[i+24>>2]|0;V=c[e+112>>2]|0;O=c[e+336>>2]|0;P=c[i+40>>2]|0;S=c[e+136>>2]|0;Q=c[S>>2]|0;R=c[S+4>>2]|0;S=c[S+8>>2]|0;if((h|0)<=0)return;T=i+36|0;J=i+32|0;K=(V|0)==0;L=V+-1|0;M=L*3|0;N=(V*3|0)+3|0;I=0;do{k=c[f+(I<<2)>>2]|0;j=c[g+(I<<2)>>2]|0;if(!(c[T>>2]|0)){F=3;G=1;i=c[J>>2]|0;l=1}else{F=-3;G=-1;i=(c[J>>2]|0)+(N<<1)|0;j=j+L|0;k=k+M|0;l=0}c[T>>2]=l;if(K){l=0;k=0;j=0}else{A=F+1|0;C=F+2|0;H=B(V,F)|0;p=0;q=0;w=0;x=0;y=0;l=0;D=0;E=0;z=V;m=0;u=i;while(1){v=u;u=u+(F<<1)|0;r=d[O+((c[P+(m+8+(b[u>>1]|0)>>4<<2)>>2]|0)+(d[k>>0]|0))>>0]|0;s=d[O+((c[P+(p+8+(b[v+(A<<1)>>1]|0)>>4<<2)>>2]|0)+(d[k+1>>0]|0))>>0]|0;t=d[O+((c[P+(q+8+(b[v+(C<<1)>>1]|0)>>4<<2)>>2]|0)+(d[k+2>>0]|0))>>0]|0;n=r>>>3;o=s>>>2;p=t>>>3;q=(c[U+(n<<2)>>2]|0)+(o<<6)+(p<<1)|0;m=b[q>>1]|0;if(!(m<<16>>16)){mw(e,n,o,p);m=b[q>>1]|0}m=(m&65535)+-1|0;a[j>>0]=m;o=r-(d[Q+m>>0]|0)|0;n=s-(d[R+m>>0]|0)|0;m=t-(d[S+m>>0]|0)|0;b[v>>1]=(o*3|0)+l;l=(o*5|0)+w|0;b[v+2>>1]=(n*3|0)+D;D=(n*5|0)+x|0;b[v+4>>1]=(m*3|0)+E;E=(m*5|0)+y|0;z=z+-1|0;if(!z)break;else{p=n*7|0;q=m*7|0;w=o;x=n;y=m;m=o*7|0;j=j+G|0;k=k+F|0}}k=D;j=E;i=i+(H<<1)|0}b[i>>1]=l;b[i+2>>1]=k;b[i+4>>1]=j;I=I+1|0}while((I|0)!=(h|0));return}function kw(e,f,g,h){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,s=0;r=c[(c[e+484>>2]|0)+24>>2]|0;s=c[e+112>>2]|0;if((h|0)<1|(s|0)==0)return;o=0;do{n=s;p=c[g+(o<<2)>>2]|0;q=c[f+(o<<2)>>2]|0;while(1){j=(d[q>>0]|0)>>>3;k=(d[q+1>>0]|0)>>>2;l=(d[q+2>>0]|0)>>>3;m=(c[r+(j<<2)>>2]|0)+(k<<6)+(l<<1)|0;i=b[m>>1]|0;if(!(i<<16>>16)){mw(e,j,k,l);i=b[m>>1]|0}a[p>>0]=(i&65535)+255;n=n+-1|0;if(!n)break;else{p=p+1|0;q=q+3|0}}o=o+1|0}while((o|0)!=(h|0));return}function lw(a){a=a|0;return}function mw(e,f,g,h){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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=zb;zb=zb+1408|0;K=N+384|0;L=N+128|0;i=N;M=c[(c[e+484>>2]|0)+24>>2]|0;n=f>>>2<<5;H=n|4;p=g>>>3<<5;I=p|2;r=h>>>2<<5;J=r|4;x=c[e+132>>2]|0;n=n|28;o=n+H>>1;p=p|30;q=p+I>>1;r=r|28;s=r+J>>1;if((x|0)>0){v=c[e+136>>2]|0;t=c[v>>2]|0;u=c[v+4>>2]|0;v=c[v+8>>2]|0;w=2147483647;m=0;do{j=d[t+m>>0]|0;do if((H|0)<=(j|0)){if((n|0)<(j|0)){G=j-n<<1;l=j-H<<1;l=B(l,l)|0;j=B(G,G)|0;break}if((o|0)<(j|0)){l=j-H<<1;l=B(l,l)|0;j=0;break}else{l=j-n<<1;l=B(l,l)|0;j=0;break}}else{G=j-H<<1;l=j-n<<1;l=B(l,l)|0;j=B(G,G)|0}while(0);k=d[u+m>>0]|0;do if((I|0)<=(k|0)){if((p|0)<(k|0)){G=(k-p|0)*3|0;k=(k-I|0)*3|0;j=(B(G,G)|0)+j|0;k=B(k,k)|0;break}if((q|0)<(k|0)){k=(k-I|0)*3|0;k=B(k,k)|0;break}else{k=(k-p|0)*3|0;k=B(k,k)|0;break}}else{G=(k-I|0)*3|0;k=(k-p|0)*3|0;j=(B(G,G)|0)+j|0;k=B(k,k)|0}while(0);l=k+l|0;k=d[v+m>>0]|0;do if((J|0)<=(k|0)){if((r|0)<(k|0)){G=k-r|0;k=k-J|0;j=(B(G,G)|0)+j|0;k=B(k,k)|0;break}if((s|0)<(k|0)){k=k-J|0;k=B(k,k)|0;break}else{k=k-r|0;k=B(k,k)|0;break}}else{G=k-J|0;k=k-r|0;j=(B(G,G)|0)+j|0;k=B(k,k)|0}while(0);G=l+k|0;c[K+(m<<2)>>2]=j;w=(G|0)<(w|0)?G:w;m=m+1|0}while((m|0)!=(x|0));j=0;k=0;do{if((c[K+(k<<2)>>2]|0)<=(w|0)){a[L+j>>0]=k;j=j+1|0}k=k+1|0}while((k|0)!=(x|0))}else j=0;c[K>>2]=2147483647;c[K+4>>2]=2147483647;c[K+8>>2]=2147483647;c[K+12>>2]=2147483647;c[K+16>>2]=2147483647;c[K+20>>2]=2147483647;c[K+24>>2]=2147483647;c[K+28>>2]=2147483647;c[K+32>>2]=2147483647;c[K+36>>2]=2147483647;c[K+40>>2]=2147483647;c[K+44>>2]=2147483647;c[K+48>>2]=2147483647;c[K+52>>2]=2147483647;c[K+56>>2]=2147483647;c[K+60>>2]=2147483647;c[K+64>>2]=2147483647;c[K+68>>2]=2147483647;c[K+72>>2]=2147483647;c[K+76>>2]=2147483647;c[K+80>>2]=2147483647;c[K+84>>2]=2147483647;c[K+88>>2]=2147483647;c[K+92>>2]=2147483647;c[K+96>>2]=2147483647;c[K+100>>2]=2147483647;c[K+104>>2]=2147483647;c[K+108>>2]=2147483647;c[K+112>>2]=2147483647;c[K+116>>2]=2147483647;c[K+120>>2]=2147483647;c[K+124>>2]=2147483647;c[K+128>>2]=2147483647;c[K+132>>2]=2147483647;c[K+136>>2]=2147483647;c[K+140>>2]=2147483647;c[K+144>>2]=2147483647;c[K+148>>2]=2147483647;c[K+152>>2]=2147483647;c[K+156>>2]=2147483647;c[K+160>>2]=2147483647;c[K+164>>2]=2147483647;c[K+168>>2]=2147483647;c[K+172>>2]=2147483647;c[K+176>>2]=2147483647;c[K+180>>2]=2147483647;c[K+184>>2]=2147483647;c[K+188>>2]=2147483647;c[K+192>>2]=2147483647;c[K+196>>2]=2147483647;c[K+200>>2]=2147483647;c[K+204>>2]=2147483647;c[K+208>>2]=2147483647;c[K+212>>2]=2147483647;c[K+216>>2]=2147483647;c[K+220>>2]=2147483647;c[K+224>>2]=2147483647;c[K+228>>2]=2147483647;c[K+232>>2]=2147483647;c[K+236>>2]=2147483647;c[K+240>>2]=2147483647;c[K+244>>2]=2147483647;c[K+248>>2]=2147483647;c[K+252>>2]=2147483647;c[K+256>>2]=2147483647;c[K+260>>2]=2147483647;c[K+264>>2]=2147483647;c[K+268>>2]=2147483647;c[K+272>>2]=2147483647;c[K+276>>2]=2147483647;c[K+280>>2]=2147483647;c[K+284>>2]=2147483647;c[K+288>>2]=2147483647;c[K+292>>2]=2147483647;c[K+296>>2]=2147483647;c[K+300>>2]=2147483647;c[K+304>>2]=2147483647;c[K+308>>2]=2147483647;c[K+312>>2]=2147483647;c[K+316>>2]=2147483647;c[K+320>>2]=2147483647;c[K+324>>2]=2147483647;c[K+328>>2]=2147483647;c[K+332>>2]=2147483647;c[K+336>>2]=2147483647;c[K+340>>2]=2147483647;c[K+344>>2]=2147483647;c[K+348>>2]=2147483647;c[K+352>>2]=2147483647;c[K+356>>2]=2147483647;c[K+360>>2]=2147483647;c[K+364>>2]=2147483647;c[K+368>>2]=2147483647;c[K+372>>2]=2147483647;c[K+376>>2]=2147483647;c[K+380>>2]=2147483647;c[K+384>>2]=2147483647;c[K+388>>2]=2147483647;c[K+392>>2]=2147483647;c[K+396>>2]=2147483647;c[K+400>>2]=2147483647;c[K+404>>2]=2147483647;c[K+408>>2]=2147483647;c[K+412>>2]=2147483647;c[K+416>>2]=2147483647;c[K+420>>2]=2147483647;c[K+424>>2]=2147483647;c[K+428>>2]=2147483647;c[K+432>>2]=2147483647;c[K+436>>2]=2147483647;c[K+440>>2]=2147483647;c[K+444>>2]=2147483647;c[K+448>>2]=2147483647;c[K+452>>2]=2147483647;c[K+456>>2]=2147483647;c[K+460>>2]=2147483647;c[K+464>>2]=2147483647;c[K+468>>2]=2147483647;c[K+472>>2]=2147483647;c[K+476>>2]=2147483647;c[K+480>>2]=2147483647;c[K+484>>2]=2147483647;c[K+488>>2]=2147483647;c[K+492>>2]=2147483647;c[K+496>>2]=2147483647;c[K+500>>2]=2147483647;c[K+504>>2]=2147483647;c[K+508>>2]=2147483647;if((j|0)>0){v=e+136|0;u=0;do{w=a[L+u>>0]|0;r=w&255;x=c[v>>2]|0;q=H-(d[(c[x>>2]|0)+r>>0]|0)|0;s=q<<1;s=B(s,s)|0;G=I-(d[(c[x+4>>2]|0)+r>>0]|0)|0;z=G*3|0;s=(B(z,z)|0)+s|0;r=J-(d[(c[x+8>>2]|0)+r>>0]|0)|0;G=G*72|0;x=G+144|0;z=r<<4;e=z+64|0;y=z+192|0;z=z+320|0;A=G+432|0;C=G+720|0;D=G+1008|0;E=G+1296|0;F=G+1584|0;G=G+1872|0;p=3;q=(q<<6)+256|0;r=s+(B(r,r)|0)|0;s=i;t=K;while(1){n=t+16|0;if((r|0)<(c[t>>2]|0)){c[t>>2]=r;a[s>>0]=w}k=r+e|0;l=t+4|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+1>>0]=w}k=k+y|0;l=t+8|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+2>>0]=w}k=k+z|0;l=t+12|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+3>>0]=w}m=x+r|0;o=t+32|0;if((m|0)<(c[n>>2]|0)){c[n>>2]=m;a[s+4>>0]=w}k=m+e|0;l=t+20|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+5>>0]=w}k=k+y|0;l=t+24|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+6>>0]=w}k=k+z|0;l=t+28|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+7>>0]=w}m=A+m|0;n=t+48|0;if((m|0)<(c[o>>2]|0)){c[o>>2]=m;a[s+8>>0]=w}k=m+e|0;l=t+36|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+9>>0]=w}k=k+y|0;l=t+40|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+10>>0]=w}k=k+z|0;l=t+44|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+11>>0]=w}m=C+m|0;o=t+64|0;if((m|0)<(c[n>>2]|0)){c[n>>2]=m;a[s+12>>0]=w}k=m+e|0;l=t+52|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+13>>0]=w}k=k+y|0;l=t+56|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+14>>0]=w}k=k+z|0;l=t+60|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+15>>0]=w}m=D+m|0;n=t+80|0;if((m|0)<(c[o>>2]|0)){c[o>>2]=m;a[s+16>>0]=w}k=m+e|0;l=t+68|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+17>>0]=w}k=k+y|0;l=t+72|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+18>>0]=w}k=k+z|0;l=t+76|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+19>>0]=w}m=E+m|0;o=t+96|0;if((m|0)<(c[n>>2]|0)){c[n>>2]=m;a[s+20>>0]=w}k=m+e|0;l=t+84|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+21>>0]=w}k=k+y|0;l=t+88|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+22>>0]=w}k=k+z|0;l=t+92|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+23>>0]=w}m=F+m|0;n=t+112|0;if((m|0)<(c[o>>2]|0)){c[o>>2]=m;a[s+24>>0]=w}k=m+e|0;l=t+100|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+25>>0]=w}k=k+y|0;l=t+104|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+26>>0]=w}k=k+z|0;l=t+108|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+27>>0]=w}k=G+m|0;if((k|0)<(c[n>>2]|0)){c[n>>2]=k;a[s+28>>0]=w}k=k+e|0;l=t+116|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+29>>0]=w}k=k+y|0;l=t+120|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+30>>0]=w}k=k+z|0;l=t+124|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+31>>0]=w}r=r+q|0;if(!p)break;else{p=p+-1|0;q=q+512|0;s=s+32|0;t=t+128|0}}u=u+1|0}while((u|0)!=(j|0))}s=f&-4;t=g&-8;l=h&-4;m=t|1;n=t|2;o=t|3;p=t|4;q=t|5;r=t|6;k=g|7;j=0;while(1){g=M+(j+s<<2)|0;h=c[g>>2]|0;L=h+(t<<6)+(l<<1)|0;b[L>>1]=(d[i>>0]|0)+1;b[L+2>>1]=(d[i+1>>0]|0)+1;b[L+4>>1]=(d[i+2>>0]|0)+1;b[L+6>>1]=(d[i+3>>0]|0)+1;L=h+(m<<6)+(l<<1)|0;b[L>>1]=(d[i+4>>0]|0)+1;b[L+2>>1]=(d[i+5>>0]|0)+1;b[L+4>>1]=(d[i+6>>0]|0)+1;b[L+6>>1]=(d[i+7>>0]|0)+1;L=h+(n<<6)+(l<<1)|0;b[L>>1]=(d[i+8>>0]|0)+1;b[L+2>>1]=(d[i+9>>0]|0)+1;b[L+4>>1]=(d[i+10>>0]|0)+1;b[L+6>>1]=(d[i+11>>0]|0)+1;h=h+(o<<6)+(l<<1)|0;b[h>>1]=(d[i+12>>0]|0)+1;b[h+2>>1]=(d[i+13>>0]|0)+1;b[h+4>>1]=(d[i+14>>0]|0)+1;b[h+6>>1]=(d[i+15>>0]|0)+1;g=c[g>>2]|0;h=g+(p<<6)+(l<<1)|0;b[h>>1]=(d[i+16>>0]|0)+1;b[h+2>>1]=(d[i+17>>0]|0)+1;b[h+4>>1]=(d[i+18>>0]|0)+1;b[h+6>>1]=(d[i+19>>0]|0)+1;h=g+(q<<6)+(l<<1)|0;b[h>>1]=(d[i+20>>0]|0)+1;b[h+2>>1]=(d[i+21>>0]|0)+1;b[h+4>>1]=(d[i+22>>0]|0)+1;b[h+6>>1]=(d[i+23>>0]|0)+1;h=g+(r<<6)+(l<<1)|0;b[h>>1]=(d[i+24>>0]|0)+1;b[h+2>>1]=(d[i+25>>0]|0)+1;b[h+4>>1]=(d[i+26>>0]|0)+1;b[h+6>>1]=(d[i+27>>0]|0)+1;g=g+(k<<6)+(l<<1)|0;b[g>>1]=(d[i+28>>0]|0)+1;b[g+2>>1]=(d[i+29>>0]|0)+1;b[g+4>>1]=(d[i+30>>0]|0)+1;b[g+6>>1]=(d[i+31>>0]|0)+1;j=j+1|0;if((j|0)==4)break;else i=i+32|0}zb=N;return} function mO(b,d,e,f,g,h,i,j){b=b|0;d=d|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;o=zb;zb=zb+16|0;n=o;if((-18-d|0)>>>0>>0)eO(b);if((a[b+11>>0]|0)<0)m=c[b>>2]|0;else m=b;if(d>>>0<2147483623){k=e+d|0;l=d<<1;k=k>>>0>>0?l:k;k=k>>>0<11?11:k+16&-16}else k=-17;l=tB(k)|0;if(g|0)VD(l,m,g)|0;if(i|0)VD(l+g|0,j,i)|0;f=f-h|0;e=f-g|0;if(e|0)VD(l+g+i|0,m+g+h|0,e)|0;e=d+1|0;if((e|0)!=11)Pf(m,e);c[b>>2]=l;c[b+8>>2]=k|-2147483648;i=f+i|0;c[b+4>>2]=i;a[n>>0]=0;bg(l+i|0,n);zb=o;return}function nO(a,b){a=a|0;b=b|0;return kO(a,b,Yf(b)|0)|0}function oO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;g=j;h=b+11|0;f=a[h>>0]|0;i=f<<24>>24<0;if(i)f=c[b+4>>2]|0;else f=f&255;do if(f>>>0>=d>>>0)if(i){i=(c[b>>2]|0)+d|0;a[g>>0]=0;bg(i,g);c[b+4>>2]=d;break}else{a[g>>0]=0;bg(b+d|0,g);a[h>>0]=d;break}else pO(b,d-f|0,e)|0;while(0);zb=j;return}function pO(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;k=zb;zb=zb+16|0;i=k;if(d|0){j=b+11|0;f=a[j>>0]|0;if(f<<24>>24<0){h=c[b+4>>2]|0;g=(c[b+8>>2]&2147483647)+-1|0}else{h=f&255;g=10}if((g-h|0)>>>0>>0){qO(b,g,h+d-g|0,h,h,0,0);f=a[j>>0]|0}if(f<<24>>24<0)g=c[b>>2]|0;else g=b;iO(g+h|0,d,e)|0;f=h+d|0;if((a[j>>0]|0)<0)c[b+4>>2]=f;else a[j>>0]=f;a[i>>0]=0;bg(g+f|0,i)}zb=k;return b|0}function qO(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;if((-17-d|0)>>>0>>0)eO(b);if((a[b+11>>0]|0)<0)l=c[b>>2]|0;else l=b;if(d>>>0<2147483623){j=e+d|0;k=d<<1;j=j>>>0>>0?k:j;j=j>>>0<11?11:j+16&-16}else j=-17;k=tB(j)|0;if(g|0)VD(k,l,g)|0;e=f-h-g|0;if(e|0)VD(k+g+i|0,l+g+h|0,e)|0;e=d+1|0;if((e|0)!=11)Pf(l,e);c[b>>2]=k;c[b+8>>2]=j|-2147483648;return}function rO(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;k=zb;zb=zb+16|0;i=k;j=b+11|0;f=a[j>>0]|0;g=f<<24>>24<0;if(g){h=c[b+4>>2]|0;f=(c[b+8>>2]&2147483647)+-1|0}else{h=f&255;f=10}if((f-h|0)>>>0>=e>>>0){if(e|0){if(g)g=c[b>>2]|0;else g=b;VD(g+h|0,d,e)|0;f=h+e|0;if((a[j>>0]|0)<0)c[b+4>>2]=f;else a[j>>0]=f;a[i>>0]=0;bg(g+f|0,i)}}else mO(b,f,h+e-f|0,h,h,0,e,d);zb=k;return b|0}function sO(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;h=j;i=j+1|0;a[h>>0]=d;g=b+11|0;d=a[g>>0]|0;e=d<<24>>24<0;if(e){f=c[b+4>>2]|0;d=(c[b+8>>2]&2147483647)+-1|0}else{f=d&255;d=10}if((f|0)==(d|0)){qO(b,d,1,d,d,0,0);if((a[g>>0]|0)<0)e=8;else e=7}else if(e)e=8;else e=7;if((e|0)==7){a[g>>0]=f+1;d=b}else if((e|0)==8){d=c[b>>2]|0;c[b+4>>2]=f+1}b=d+f|0;bg(b,h);a[i>>0]=0;bg(b+1|0,i);zb=j;return}function tO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i;if(e>>>0>1073741807)eO(b);do if(e>>>0>=2){g=e+4&-4;if(g>>>0>1073741823)ua();else{f=tB(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;break}}else{a[b+8+3>>0]=e;f=b}while(0);kE(f,d,e)|0;c[h>>2]=0;JF(f+(e<<2)|0,h);zb=i;return}function uO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i;if(d>>>0>1073741807)eO(b);do if(d>>>0>=2){g=d+4&-4;if(g>>>0>1073741823)ua();else{f=tB(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=d;break}}else{a[b+8+3>>0]=d;f=b}while(0);vO(f,d,e)|0;c[h>>2]=0;JF(f+(d<<2)|0,h);zb=i;return}function vO(a,b,c){a=a|0;b=b|0;c=c|0;if(b)uA(a,c,b)|0;return a|0}function wO(b){b=b|0;var d=0;d=b+8|0;if((a[d+3>>0]|0)<0)Pf(c[b>>2]|0,c[d>>2]<<2);return}function xO(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;l=zb;zb=zb+16|0;j=l;f=b+8|0;k=f+3|0;h=a[k>>0]|0;i=h<<24>>24<0;if(i)g=(c[f>>2]&2147483647)+-1|0;else g=1;do if(g>>>0>=e>>>0){if(i)f=c[b>>2]|0;else f=b;yO(f,d,e)|0;c[j>>2]=0;JF(f+(e<<2)|0,j);if((a[k>>0]|0)<0){c[b+4>>2]=e;break}else{a[k>>0]=e;break}}else{if(i)f=c[b+4>>2]|0;else f=h&255;zO(b,g,e-g|0,f,0,f,e,d)}while(0);zb=l;return b|0}function yO(a,b,c){a=a|0;b=b|0;c=c|0;if(c)vA(a,b,c)|0;return a|0}function zO(b,d,e,f,g,h,i,j){b=b|0;d=d|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,p=0;p=zb;zb=zb+16|0;o=p;if((1073741806-d|0)>>>0>>0)eO(b);l=b+8|0;if((a[l+3>>0]|0)<0)n=c[b>>2]|0;else n=b;if(d>>>0<536870887){e=e+d|0;k=d<<1;e=e>>>0>>0?k:e;e=e>>>0<2?2:e+4&-4;if(e>>>0>1073741823)ua();else m=e}else m=1073741807;k=tB(m<<2)|0;if(g|0)kE(k,n,g)|0;if(i|0)kE(k+(g<<2)|0,j,i)|0;f=f-h|0;e=f-g|0;if(e|0)kE(k+(g<<2)+(i<<2)|0,n+(g<<2)+(h<<2)|0,e)|0;e=d+1|0;if((e|0)!=2)Pf(n,e<<2);c[b>>2]=k;c[l>>2]=m|-2147483648;i=f+i|0;c[b+4>>2]=i;c[o>>2]=0;JF(k+(i<<2)|0,o);zb=p;return}function AO(a,b){a=a|0;b=b|0;return xO(a,b,JI(b)|0)|0}function BO(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if((1073741807-d|0)>>>0>>0)eO(b);m=b+8|0;if((a[m+3>>0]|0)<0)l=c[b>>2]|0;else l=b;if(d>>>0<536870887){e=e+d|0;j=d<<1;e=e>>>0>>0?j:e;e=e>>>0<2?2:e+4&-4;if(e>>>0>1073741823)ua();else k=e}else k=1073741807;j=tB(k<<2)|0;if(g|0)kE(j,l,g)|0;e=f-h-g|0;if(e|0)kE(j+(g<<2)+(i<<2)|0,l+(g<<2)+(h<<2)|0,e)|0;e=d+1|0;if((e|0)!=2)Pf(l,e<<2);c[b>>2]=j;c[m>>2]=k|-2147483648;return}function CO(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;l=zb;zb=zb+16|0;j=l;g=b+8|0;k=g+3|0;f=a[k>>0]|0;i=f<<24>>24<0;if(i){h=c[b+4>>2]|0;f=(c[g>>2]&2147483647)+-1|0}else{h=f&255;f=1}if((f-h|0)>>>0>=e>>>0){if(e|0){if(i)g=c[b>>2]|0;else g=b;kE(g+(h<<2)|0,d,e)|0;f=h+e|0;if((a[k>>0]|0)<0)c[b+4>>2]=f;else a[k>>0]=f;c[j>>2]=0;JF(g+(f<<2)|0,j)}}else zO(b,f,h+e-f|0,h,h,0,e,d);zb=l;return b|0}function DO(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=zb;zb=zb+16|0;i=k;j=k+4|0;c[i>>2]=d;e=b+8|0;h=e+3|0;d=a[h>>0]|0;f=d<<24>>24<0;if(f){g=c[b+4>>2]|0;d=(c[e>>2]&2147483647)+-1|0}else{g=d&255;d=1}if((g|0)==(d|0)){BO(b,d,1,d,d,0,0);if((a[h>>0]|0)<0)e=8;else e=7}else if(f)e=8;else e=7;if((e|0)==7){a[h>>0]=g+1;d=b}else if((e|0)==8){d=c[b>>2]|0;c[b+4>>2]=g+1}b=d+(g<<2)|0;JF(b,i);c[j>>2]=0;JF(b+4|0,j);zb=k;return}function EO(a){a=a|0;ua()}function FO(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;w=zb;zb=zb+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=c[14291]|0;d=m>>>a;if(d&3|0){b=(d&1^1)+a|0;a=57204+(b<<1<<2)|0;d=a+8|0;e=c[d>>2]|0;f=e+8|0;g=c[f>>2]|0;if((g|0)==(a|0))c[14291]=m&~(1<>2]=a;c[d>>2]=g}v=b<<3;c[e+4>>2]=v|3;v=e+v+4|0;c[v>>2]=c[v>>2]|1;v=f;zb=w;return v|0}l=c[14293]|0;if(k>>>0>l>>>0){if(d|0){b=2<>>12&16;b=b>>>i;d=b>>>5&8;b=b>>>d;g=b>>>2&4;b=b>>>g;a=b>>>1&2;b=b>>>a;e=b>>>1&1;e=(d|i|g|a|e)+(b>>>e)|0;b=57204+(e<<1<<2)|0;a=b+8|0;g=c[a>>2]|0;i=g+8|0;d=c[i>>2]|0;if((d|0)==(b|0)){a=m&~(1<>2]=b;c[a>>2]=d;a=m}v=e<<3;h=v-k|0;c[g+4>>2]=k|3;f=g+k|0;c[f+4>>2]=h|1;c[g+v>>2]=h;if(l|0){e=c[14296]|0;b=l>>>3;d=57204+(b<<1<<2)|0;b=1<>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[14293]=h;c[14296]=f;v=i;zb=w;return v|0}g=c[14292]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=c[57468+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(c[j+4>>2]&-8)-k|0;while(1){a=c[d+16>>2]|0;if(!a){a=c[d+20>>2]|0;if(!a)break}h=(c[a+4>>2]&-8)-k|0;f=h>>>0>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[i+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[i+28>>2]|0;a=57468+(b<<2)|0;if((i|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[14292]=g&~(1<>2]|0)==(i|0)?v:f+20|0)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[i+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[i+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(j>>>0<16){v=j+k|0;c[i+4>>2]=v|3;v=i+v+4|0;c[v>>2]=c[v>>2]|1}else{c[i+4>>2]=k|3;c[h+4>>2]=j|1;c[h+j>>2]=j;if(l|0){e=c[14296]|0;b=l>>>3;d=57204+(b<<1<<2)|0;b=1<>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[14293]=j;c[14296]=h}v=i+8|0;zb=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=c[14292]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=c[57468+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(c[d+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=d;f=0;q=65;break a}else{a=d;f=h}q=c[d+20>>2]|0;d=c[d+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(d|0)?g:q;if(!d){d=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((d|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;d=m>>>1&1;a=0;d=c[57468+((g|h|i|j|d)+(m>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else q=65}if((q|0)==65){g=d;while(1){m=(c[g+4>>2]&-8)-k|0;d=m>>>0>>0;f=d?m:f;a=d?g:a;d=c[g+16>>2]|0;if(!d)d=c[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((c[14293]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){f=b+20|0;d=c[f>>2]|0;if(!d){f=b+16|0;d=c[f>>2]|0;if(!d)break;else{b=d;a=f}}else{b=d;a=f}}c[a>>2]=0}else{v=c[i+8>>2]|0;c[v+12>>2]=b;c[b+8>>2]=v}while(0);do if(g){a=c[i+28>>2]|0;d=57468+(a<<2)|0;if((i|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=e&~(1<>2]|0)==(i|0)?v:g+20|0)>>2]=b;if(!b)break}c[b+24>>2]=g;a=c[i+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[i+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);b:do if(h>>>0<16){v=h+k|0;c[i+4>>2]=v|3;v=i+v+4|0;c[v>>2]=c[v>>2]|1}else{c[i+4>>2]=k|3;c[l+4>>2]=h|1;c[l+h>>2]=h;b=h>>>3;if(h>>>0<256){d=57204+(b<<1<<2)|0;a=c[14291]|0;b=1<>2]|0}c[a>>2]=l;c[b+12>>2]=l;c[l+8>>2]=b;c[l+12>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;d=14-(t|u|d)+(v<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=57468+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(h|0)){b=a;break c}else{e=e<<1;b=a}}c[d>>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break b}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=l;c[u>>2]=l;c[l+8>>2]=v;c[l+12>>2]=b;c[l+24>>2]=0}while(0);v=i+8|0;zb=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=c[14293]|0;if(d>>>0>=m>>>0){b=d-m|0;a=c[14296]|0;if(b>>>0>15){v=a+m|0;c[14296]=v;c[14293]=b;c[v+4>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=m|3}else{c[14293]=0;c[14296]=0;c[a+4>>2]=d|3;v=a+d+4|0;c[v>>2]=c[v>>2]|1}v=a+8|0;zb=w;return v|0}h=c[14294]|0;if(h>>>0>m>>>0){t=h-m|0;c[14294]=t;v=c[14297]|0;u=v+m|0;c[14297]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;zb=w;return v|0}if(!(c[14409]|0)){c[14411]=4096;c[14410]=4096;c[14412]=-1;c[14413]=-1;c[14414]=0;c[14402]=0;c[14409]=n&-16^1431655768;a=4096}else a=c[14411]|0;i=m+48|0;j=m+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=m>>>0){v=0;zb=w;return v|0}a=c[14401]|0;if(a|0?(l=c[14399]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;zb=w;return v|0}d:do if(!(c[14402]&4)){d=c[14297]|0;e:do if(d){e=57612;while(1){n=c[e>>2]|0;if(n>>>0<=d>>>0?(n+(c[e+4>>2]|0)|0)>>>0>d>>>0:0)break;a=c[e+8>>2]|0;if(!a){q=128;break e}else e=a}b=g-h&f;if(b>>>0<2147483647){a=LO(b)|0;if((a|0)==((c[e>>2]|0)+(c[e+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;q=145;break d}}else{e=a;q=136}}else b=0}else q=128;while(0);do if((q|0)==128){d=LO(0)|0;if((d|0)!=(-1|0)?(b=d,o=c[14410]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=c[14399]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){n=c[14401]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){b=0;break}a=LO(b)|0;if((a|0)==(d|0)){h=b;g=d;q=145;break d}else{e=a;q=136}}else b=0}while(0);do if((q|0)==136){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=b;g=e;q=145;break d}a=c[14411]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=e;q=145;break d}if((LO(a)|0)==(-1|0)){LO(d)|0;b=0;break}else{h=a+b|0;g=e;q=145;break d}}while(0);c[14402]=c[14402]|4;q=143}else{b=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(t=LO(k)|0,p=LO(0)|0,r=p-t|0,s=r>>>0>(m+40|0)>>>0,!((t|0)==(-1|0)|s^1|t>>>0

>>0&((t|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:b;g=t;q=145}if((q|0)==145){b=(c[14399]|0)+h|0;c[14399]=b;if(b>>>0>(c[14400]|0)>>>0)c[14400]=b;j=c[14297]|0;f:do if(j){b=57612;while(1){a=c[b>>2]|0;d=c[b+4>>2]|0;if((g|0)==(a+d|0)){q=154;break}e=c[b+8>>2]|0;if(!e)break;else b=e}if(((q|0)==154?(u=b+4|0,(c[b+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){c[u>>2]=d+h;v=(c[14294]|0)+h|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;c[14297]=u;c[14294]=t;c[u+4>>2]=t|1;c[j+v+4>>2]=40;c[14298]=c[14413];break}if(g>>>0<(c[14295]|0)>>>0)c[14295]=g;d=g+h|0;b=57612;while(1){if((c[b>>2]|0)==(d|0)){q=162;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((q|0)==162?(c[b+12>>2]&8|0)==0:0){c[b>>2]=g;l=b+4|0;c[l>>2]=(c[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;c[l+4>>2]=m|3;g:do if((j|0)==(b|0)){v=(c[14294]|0)+i|0;c[14294]=v;c[14297]=k;c[k+4>>2]=v|1}else{if((c[14296]|0)==(b|0)){v=(c[14293]|0)+i|0;c[14293]=v;c[14296]=k;c[k+4>>2]=v|1;c[k+v>>2]=v;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[14291]=c[14291]&~(1<>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){d=b+16|0;e=d+4|0;a=c[e>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{v=c[b+8>>2]|0;c[v+12>>2]=a;c[a+8>>2]=v}while(0);if(!g)break;d=c[b+28>>2]|0;e=57468+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){v=g+16|0;c[((c[v>>2]|0)==(b|0)?v:g+20|0)>>2]=a;if(!a)break h}else{c[e>>2]=a;if(a|0)break;c[14292]=c[14292]&~(1<>2]=g;d=b+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=57204+(b<<1<<2)|0;a=c[14291]|0;b=1<>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=57468+(e<<2)|0;c[k+28>>2]=e;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[14292]|0;d=1<>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break}b=c[b>>2]|0;i:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break i}else{e=e<<1;b=a}}c[d>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=k;c[u>>2]=k;c[k+8>>2]=v;c[k+12>>2]=b;c[k+24>>2]=0}while(0);v=l+8|0;zb=w;return v|0}b=57612;while(1){a=c[b>>2]|0;if(a>>>0<=j>>>0?(v=a+(c[b+4>>2]|0)|0,v>>>0>j>>>0):0)break;b=c[b+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;d=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=d-t|0;c[14297]=u;c[14294]=t;c[u+4>>2]=t|1;c[g+d+4>>2]=40;c[14298]=c[14413];d=a+4|0;c[d>>2]=27;c[b>>2]=c[14403];c[b+4>>2]=c[14404];c[b+8>>2]=c[14405];c[b+12>>2]=c[14406];c[14403]=g;c[14404]=h;c[14406]=0;c[14405]=b;b=a+24|0;do{u=b;b=b+4|0;c[b>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=57204+(b<<1<<2)|0;a=c[14291]|0;b=1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=57468+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[f>>2]=0;b=c[14292]|0;a=1<>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}b=c[d>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{e=e<<1;b=a}}c[d>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=j;c[u>>2]=j;c[j+8>>2]=v;c[j+12>>2]=b;c[j+24>>2]=0}}else{v=c[14295]|0;if((v|0)==0|g>>>0>>0)c[14295]=g;c[14403]=g;c[14404]=h;c[14406]=0;c[14300]=c[14409];c[14299]=-1;c[14304]=57204;c[14303]=57204;c[14306]=57212;c[14305]=57212;c[14308]=57220;c[14307]=57220;c[14310]=57228;c[14309]=57228;c[14312]=57236;c[14311]=57236;c[14314]=57244;c[14313]=57244;c[14316]=57252;c[14315]=57252;c[14318]=57260;c[14317]=57260;c[14320]=57268;c[14319]=57268;c[14322]=57276;c[14321]=57276;c[14324]=57284;c[14323]=57284;c[14326]=57292;c[14325]=57292;c[14328]=57300;c[14327]=57300;c[14330]=57308;c[14329]=57308;c[14332]=57316;c[14331]=57316;c[14334]=57324;c[14333]=57324;c[14336]=57332;c[14335]=57332;c[14338]=57340;c[14337]=57340;c[14340]=57348;c[14339]=57348;c[14342]=57356;c[14341]=57356;c[14344]=57364;c[14343]=57364;c[14346]=57372;c[14345]=57372;c[14348]=57380;c[14347]=57380;c[14350]=57388;c[14349]=57388;c[14352]=57396;c[14351]=57396;c[14354]=57404;c[14353]=57404;c[14356]=57412;c[14355]=57412;c[14358]=57420;c[14357]=57420;c[14360]=57428;c[14359]=57428;c[14362]=57436;c[14361]=57436;c[14364]=57444;c[14363]=57444;c[14366]=57452;c[14365]=57452;v=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=v-t|0;c[14297]=u;c[14294]=t;c[u+4>>2]=t|1;c[g+v+4>>2]=40;c[14298]=c[14413]}while(0);b=c[14294]|0;if(b>>>0>m>>>0){t=b-m|0;c[14294]=t;v=c[14297]|0;u=v+m|0;c[14297]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;zb=w;return v|0}}v=ox()|0;c[v>>2]=48;v=0;zb=w;return v|0}function GO(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=c[14295]|0;a=c[a+-4>>2]|0;b=a&-8;j=d+b|0;do if(!(a&1)){e=c[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+b|0;if(h>>>0>>0)return;if((c[14296]|0)==(h|0)){a=j+4|0;b=c[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}c[14293]=g;c[a>>2]=b&-2;c[h+4>>2]=g|1;c[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=c[h+8>>2]|0;b=c[h+12>>2]|0;if((b|0)==(a|0)){c[14291]=c[14291]&~(1<>2]=b;c[b+8>>2]=a;i=h;b=g;break}}f=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){b=h+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){a=0;break}}else b=d;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0}else{i=c[h+8>>2]|0;c[i+12>>2]=a;c[a+8>>2]=i}while(0);if(f){b=c[h+28>>2]|0;d=57468+(b<<2)|0;if((c[d>>2]|0)==(h|0)){c[d>>2]=a;if(!a){c[14292]=c[14292]&~(1<>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;b=g;break}}c[a+24>>2]=f;b=h+16|0;d=c[b>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}b=c[b+4>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=c[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((c[14297]|0)==(j|0)){j=(c[14294]|0)+b|0;c[14294]=j;c[14297]=i;c[i+4>>2]=j|1;if((i|0)!=(c[14296]|0))return;c[14296]=0;c[14293]=0;return}if((c[14296]|0)==(j|0)){j=(c[14293]|0)+b|0;c[14293]=j;c[14296]=h;c[i+4>>2]=j|1;c[h+j>>2]=j;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){b=c[j+8>>2]|0;a=c[j+12>>2]|0;if((a|0)==(b|0)){c[14291]=c[14291]&~(1<>2]=a;c[a+8>>2]=b;break}}else{g=c[j+24>>2]|0;a=c[j+12>>2]|0;do if((a|0)==(j|0)){b=j+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){d=0;break}}else b=d;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[j+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[j+28>>2]|0;b=57468+(a<<2)|0;if((c[b>>2]|0)==(j|0)){c[b>>2]=d;if(!d){c[14292]=c[14292]&~(1<>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;a=j+16|0;b=c[a>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}a=c[a+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[i+4>>2]=f|1;c[h+f>>2]=f;if((i|0)==(c[14296]|0)){c[14293]=f;return}}else{c[a>>2]=e&-2;c[i+4>>2]=b|1;c[h+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=57204+(a<<1<<2)|0;b=c[14291]|0;a=1<>2]|0}c[b>>2]=i;c[a+12>>2]=i;c[i+8>>2]=a;c[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;e=14-(g|h|e)+(j<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=57468+(e<<2)|0;c[i+28>>2]=e;c[i+20>>2]=0;c[i+16>>2]=0;b=c[14292]|0;d=1<>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i}else{a=c[a>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i;break a}while(0);h=a+8|0;j=c[h>>2]|0;c[j+12>>2]=i;c[h>>2]=i;c[i+8>>2]=j;c[i+12>>2]=a;c[i+24>>2]=0}while(0);j=(c[14299]|0)+-1|0;c[14299]=j;if(j|0)return;a=57620;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[14299]=-1;return}function HO(a,b){a=a|0;b=b|0;var d=0;if(a){d=B(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;a=FO(d)|0;if(!a)return a|0;if(!(c[a+-4>>2]&3))return a|0;aP(a|0,0,d|0)|0;return a|0}function IO(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=FO(b)|0;return b|0}if(b>>>0>4294967231){b=ox()|0;c[b>>2]=48;b=0;return b|0}d=JO(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){b=d+8|0;return b|0}d=FO(b)|0;if(!d){b=0;return b|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;_O(d|0,a|0,(e>>>0>>0?e:b)|0)|0;GO(a);b=d;return b|0}function JO(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;l=a+4|0;m=c[l>>2]|0;d=m&-8;i=a+d|0;if(!(m&3)){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[14411]<<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;k=a+b|0;c[l>>2]=m&1|b|2;c[k+4>>2]=d|3;m=i+4|0;c[m>>2]=c[m>>2]|1;KO(k,d);return a|0}if((c[14297]|0)==(i|0)){k=(c[14294]|0)+d|0;d=k-b|0;e=a+b|0;if(k>>>0<=b>>>0){a=0;return a|0}c[l>>2]=m&1|b|2;c[e+4>>2]=d|1;c[14297]=e;c[14294]=d;return a|0}if((c[14296]|0)==(i|0)){e=(c[14293]|0)+d|0;if(e>>>0>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){k=a+b|0;e=a+e|0;c[l>>2]=m&1|b|2;c[k+4>>2]=d|1;c[e>>2]=d;e=e+4|0;c[e>>2]=c[e>>2]&-2;e=k}else{c[l>>2]=m&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[14293]=d;c[14296]=e;return a|0}e=c[i+4>>2]|0;if(e&2|0){a=0;return a|0}j=(e&-8)+d|0;if(j>>>0>>0){a=0;return a|0}k=j-b|0;f=e>>>3;do if(e>>>0<256){e=c[i+8>>2]|0;d=c[i+12>>2]|0;if((d|0)==(e|0)){c[14291]=c[14291]&~(1<>2]=d;c[d+8>>2]=e;break}}else{h=c[i+24>>2]|0;d=c[i+12>>2]|0;do if((d|0)==(i|0)){e=i+16|0;f=e+4|0;d=c[f>>2]|0;if(!d){d=c[e>>2]|0;if(!d){f=0;break}}else e=f;while(1){g=d+20|0;f=c[g>>2]|0;if(!f){g=d+16|0;f=c[g>>2]|0;if(!f)break;else{d=f;e=g}}else{d=f;e=g}}c[e>>2]=0;f=d}else{f=c[i+8>>2]|0;c[f+12>>2]=d;c[d+8>>2]=f;f=d}while(0);if(h|0){d=c[i+28>>2]|0;e=57468+(d<<2)|0;if((c[e>>2]|0)==(i|0)){c[e>>2]=f;if(!f){c[14292]=c[14292]&~(1<>2]|0)==(i|0)?g:h+20|0)>>2]=f;if(!f)break}c[f+24>>2]=h;d=i+16|0;e=c[d>>2]|0;if(e|0){c[f+16>>2]=e;c[e+24>>2]=f}d=c[d+4>>2]|0;if(d|0){c[f+20>>2]=d;c[d+24>>2]=f}}}while(0);if(k>>>0<16){c[l>>2]=m&1|j|2;m=a+j+4|0;c[m>>2]=c[m>>2]|1;return a|0}else{i=a+b|0;c[l>>2]=m&1|b|2;c[i+4>>2]=k|3;m=a+j+4|0;c[m>>2]=c[m>>2]|1;KO(i,k);return a|0}return 0}function KO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){f=c[a>>2]|0;if(!(d&3))return;h=a+(0-f)|0;b=f+b|0;if((c[14296]|0)==(h|0)){a=i+4|0;d=c[a>>2]|0;if((d&3|0)!=3)break;c[14293]=b;c[a>>2]=d&-2;c[h+4>>2]=b|1;c[i>>2]=b;return}e=f>>>3;if(f>>>0<256){a=c[h+8>>2]|0;d=c[h+12>>2]|0;if((d|0)==(a|0)){c[14291]=c[14291]&~(1<>2]=d;c[d+8>>2]=a;break}}g=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){d=h+16|0;e=d+4|0;a=c[e>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{f=c[h+8>>2]|0;c[f+12>>2]=a;c[a+8>>2]=f}while(0);if(g){d=c[h+28>>2]|0;e=57468+(d<<2)|0;if((c[e>>2]|0)==(h|0)){c[e>>2]=a;if(!a){c[14292]=c[14292]&~(1<>2]|0)==(h|0)?f:g+20|0)>>2]=a;if(!a)break}c[a+24>>2]=g;d=h+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(d){c[a+20>>2]=d;c[d+24>>2]=a}}}else h=a;while(0);a=i+4|0;e=c[a>>2]|0;if(!(e&2)){if((c[14297]|0)==(i|0)){i=(c[14294]|0)+b|0;c[14294]=i;c[14297]=h;c[h+4>>2]=i|1;if((h|0)!=(c[14296]|0))return;c[14296]=0;c[14293]=0;return}if((c[14296]|0)==(i|0)){i=(c[14293]|0)+b|0;c[14293]=i;c[14296]=h;c[h+4>>2]=i|1;c[h+i>>2]=i;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){a=c[i+8>>2]|0;b=c[i+12>>2]|0;if((b|0)==(a|0)){c[14291]=c[14291]&~(1<>2]=b;c[b+8>>2]=a;break}}else{g=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+16|0;d=a+4|0;b=c[d>>2]|0;if(!b){b=c[a>>2]|0;if(!b){d=0;break}}else a=d;while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[i+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);if(g|0){b=c[i+28>>2]|0;a=57468+(b<<2)|0;if((c[a>>2]|0)==(i|0)){c[a>>2]=d;if(!d){c[14292]=c[14292]&~(1<>2]|0)==(i|0)?e:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;b=i+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}b=c[b+4>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}}while(0);c[h+4>>2]=f|1;c[h+f>>2]=f;if((h|0)==(c[14296]|0)){c[14293]=f;return}}else{c[a>>2]=e&-2;c[h+4>>2]=b|1;c[h+b>>2]=b;f=b}b=f>>>3;if(f>>>0<256){d=57204+(b<<1<<2)|0;a=c[14291]|0;b=1<>2]|0}c[a>>2]=h;c[b+12>>2]=h;c[h+8>>2]=b;c[h+12>>2]=d;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{g=(b+1048320|0)>>>16&8;i=b<>>16&4;i=i<>>16&2;e=14-(d|g|e)+(i<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=57468+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[h+16>>2]=0;a=c[14292]|0;d=1<>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;return}b=c[b>>2]|0;a:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break a}else{e=e<<1;b=a}}c[d>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;return}while(0);g=b+8|0;i=c[g>>2]|0;c[i+12>>2]=h;c[g>>2]=h;c[h+8>>2]=i;c[h+12>>2]=b;c[h+24>>2]=0;return}function LO(a){a=a|0;var b=0,d=0;b=VO()|0;d=c[b>>2]|0;a=d+a|0;if((a|0)<0){d=ox()|0;c[d>>2]=48;d=-1;return d|0}if(a>>>0>(Ba()|0)>>>0?(Da(a|0)|0)==0:0){d=ox()|0;c[d>>2]=48;d=-1;return d|0}c[b>>2]=a;return d|0}function MO(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=B(e,f)|0;d=a>>>16;a=(c>>>16)+(B(e,d)|0)|0;e=b>>>16;b=B(e,f)|0;return (E((a>>>16)+(B(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function NO(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=MO(e,f)|0;a=F()|0;return (E((B(b,f)|0)+(B(d,e)|0)+a|a&0|0),c|0|0)|0}function OO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (E(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function PO(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 (E(d|0),a-c>>>0|0)|0}function QO(a){a=a|0;return (a?31-(C(a^a-1)|0)|0:32)|0}function RO(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 (E(n|0),f)|0}else{if(!g){n=0;f=0;return (E(n|0),f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (E(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(C(i|0)|0)-(C(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 (E(n|0),f)|0}g=h-1|0;if(g&h|0){i=(C(h|0)|0)+33-(C(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 (E(o|0),p)|0}else{p=QO(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (E(o|0),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 (E(o|0),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 (E(o|0),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>>>((QO(i|0)|0)>>>0);return (E(o|0),p)|0}g=(C(i|0)|0)-(C(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 (E(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=OO(m|0,l|0,-1,-1)|0;d=F()|0;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;PO(k|0,d|0,e|0,n|0)|0;p=F()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=PO(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=F()|0;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 (E(o|0),p)|0}function SO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return RO(a,b,c,d,0)|0}function TO(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function UO(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E(b<>>32-c|0);return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function XO(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;k=k+1|0;c[a>>2]=k;while((f|0)<(e|0)){if(!(c[d+(f<<3)>>2]|0)){c[d+(f<<3)>>2]=k;c[d+((f<<3)+4)>>2]=b;c[d+((f<<3)+8)>>2]=0;E(e|0);return d|0}f=f+1|0}e=e*2|0;d=IO(d|0,8*(e+1|0)|0)|0;d=XO(a|0,b|0,d|0,e|0)|0;E(e|0);return d|0}function YO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while((f|0)<(d|0)){e=c[b+(f<<3)>>2]|0;if(!e)break;if((e|0)==(a|0))return c[b+((f<<3)+4)>>2]|0;f=f+1|0}return 0}function ZO(a,b){a=a|0;b=b|0;if(!i){i=a;j=b}}function _O(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){Ca(b|0,d|0,e|0)|0;return b|0}h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function $O(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 _O(b,c,d)|0;return b|0}function aP(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function bP(a){a=+a;return a>=0.0?+s(a+.5):+A(a-.5)}function cP(a,b){a=a|0;b=b|0;return +Db[a&3](b|0)}function dP(a,b,c){a=a|0;b=b|0;c=c|0;return +Eb[a&1](b|0,c|0)}function eP(a){a=a|0;return Fb[a&1]()|0}function fP(a,b){a=a|0;b=b|0;return Gb[a&127](b|0)|0}function gP(a,b,c,d,e,f,g){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;f=f|0;g=g|0;return Hb[a&1](b|0,+c,d|0,e|0,f|0,g|0)|0}function hP(a,b,c){a=a|0;b=b|0;c=c|0;return Ib[a&63](b|0,c|0)|0}function iP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Jb[a&63](b|0,c|0,d|0)|0}function jP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Kb[a&15](b|0,c|0,d|0,e|0)|0}function kP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return Lb[a&7](b|0,c|0,d|0,e|0,+f)|0}function lP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Mb[a&31](b|0,c|0,d|0,e|0,f|0)|0}function mP(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;return Nb[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function nP(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;return Ob[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function oP(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&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function pP(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return Qb[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function qP(a){a=a|0;Rb[a&1]()}function rP(a,b){a=a|0;b=b|0;Sb[a&255](b|0)}function sP(a,b,c){a=a|0;b=b|0;c=+c;Tb[a&3](b|0,+c)}function tP(a,b,c){a=a|0;b=b|0;c=c|0;Ub[a&63](b|0,c|0)}function uP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;Vb[a&3](b|0,c|0,+d)}function vP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Wb[a&3](b|0,c|0,d|0)}function wP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Xb[a&31](b|0,c|0,d|0,e|0)}function xP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Yb[a&63](b|0,c|0,d|0,e|0,f|0)}function yP(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;Zb[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function zP(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;_b[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function AP(a){a=a|0;D(0);return 0.0}function BP(a,b){a=a|0;b=b|0;D(1);return 0.0}function CP(){D(2);return 0}function DP(a){a=a|0;D(3);return 0}function EP(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;D(4);return 0}function FP(a,b){a=a|0;b=b|0;D(5);return 0}function GP(a,b,c){a=a|0;b=b|0;c=c|0;D(6);return 0}function HP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;D(7);return 0}function IP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;D(8);return 0}function JP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;D(9);return 0}function KP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;D(10);return 0}function LP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;D(11);return 0}function MP(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;D(12);return 0}function NP(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;D(13);return 0}function OP(){D(14)}function PP(a){a=a|0;D(15)}function QP(a,b){a=a|0;b=+b;D(16)}function RP(a,b){a=a|0;b=b|0;D(17)}function SP(a,b,c){a=a|0;b=b|0;c=+c;D(18)}function TP(a,b,c){a=a|0;b=b|0;c=c|0;D(19)}function UP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;D(20)}function VP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;D(21)}function WP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;D(22)}function XP(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;D(23)} // EMSCRIPTEN_END_FUNCS var Db=[AP,pr,sr,Cr];var Eb=[BP,ss];var Fb=[CP,lr];var Gb=[DP,pj,kx,rx,_A,ND,OD,QD,RD,aE,bE,dE,eE,aF,gF,lF,mF,rF,sF,NH,UH,VH,WH,XH,YH,ZH,_H,vI,CI,DI,EI,FI,GI,HI,II,qJ,rJ,wJ,BJ,CJ,HJ,MJ,NJ,SJ,XJ,YJ,bK,ZK,_K,aL,pL,qL,sL,XL,YL,cM,dM,iL,jL,lL,yL,zL,BL,ex,bu,FO,dx,Kq,Mq,Tq,Uq,ar,br,cr,hr,ir,vr,xr,zr,Er,Gr,Ir,Ds,Pt,Wt,Xt,Yt,Zt,zu,Bu,Yw,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP];var Hb=[EP,Lx];var Ib=[FP,$l,iq,pq,SD,UD,fE,hE,cF,iF,nF,tF,KL,ML,OL,nM,pM,rM,Le,bx,Nq,Pq,Qq,Rq,Xq,_q,$q,er,fr,gr,nt,Os,Jt,Rt,Au,Cu,Du,Hu,Iu,Ju,Ku,Mu,Nu,Su,Tu,Uu,Vu,Wu,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP];var Jb=[GP,lx,qx,fy,FA,fB,KD,PD,TD,ZD,cE,gE,bF,hF,AF,HF,NK,SK,LL,NL,QL,jM,oM,qM,tM,zw,Iq,Wq,Yq,Zq,dr,ht,Ys,Ew,Fw,Ez,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP];var Kb=[HP,mx,sx,PL,kM,lM,mM,sM,wt,Gw,Hw,HP,HP,HP,HP,HP];var Lb=[IP,oH,pH,FH,GH,IP,IP,IP];var Mb=[JP,yF,FF,jH,kH,mH,qH,AH,BH,DH,HH,YK,$K,oL,rL,RL,uM,hL,kL,xL,AL,Lw,Mw,JP,JP,JP,JP,JP,JP,JP,JP,JP];var Nb=[KP,BK,HK,KP];var Ob=[LP,MF,NF,OF,PF,QF,RF,SF,TF,UF,VF,WF,IG,JG,KG,LG,MG,NG,OG,PG,QG,RG,SG,lH,nH,CH,EH,OH,PH,QH,RH,SH,wI,xI,yI,zI,AI,CK,IK,Iw,Jw,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP];var Pb=[MP,eJ,kJ,gK,hK,rK,sK,MP];var Qb=[NP,TH,BI,WK,XK,mL,nL,fL,gL,vL,wL,NP,NP,NP,NP,NP];var Rb=[OP,wA];var Sb=[PP,Qi,Ri,Ti,Ui,nj,oj,ZN,Zl,_l,am,gq,hq,jq,nq,oq,qq,BA,CA,DA,EA,OA,YA,ZA,dB,eB,gB,DD,FD,HD,ID,WD,XD,mE,nE,oE,pE,rE,sE,tE,uE,wE,xE,yE,zE,BE,CE,DE,EE,_E,eF,jF,pF,vF,wF,xF,DF,EF,KF,LF,GG,HG,hH,iH,yH,zH,LH,MH,tI,uI,cJ,dJ,iJ,jJ,oJ,pJ,zJ,AJ,KJ,LJ,VJ,WJ,eK,fK,pK,qK,zK,AK,FK,GK,LK,MK,QK,RK,CF,eL,VK,tL,uL,FL,GL,IL,JL,VL,WL,aM,bM,hM,iM,vM,wM,xM,hf,ax,jr,Ot,St,Vt,du,eu,pw,qw,fw,$v,Rv,Jv,Yu,Qu,Ru,Fu,Gu,wu,xu,iw,lw,Kw,Ow,Zw,_w,$w,fx,hx,jx,cG,eG,iK,GO,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP];var Tb=[QP,nr,rr,Ar];var Ub=[RP,JD,YD,$E,fF,kF,qF,sJ,tJ,uJ,vJ,xJ,yJ,DJ,EJ,FJ,GJ,IJ,JJ,OJ,PJ,QJ,RJ,TJ,UJ,ZJ,_J,$J,aK,cK,dK,PK,UK,ZL,_L,$L,eM,fM,gM,Nt,tr,wr,yr,Dr,Fr,Hr,Is,Qt,ow,ew,Fv,su,Nw,gx,ix,Mx,RP,RP,RP,RP,RP,RP,RP,RP];var Vb=[SP,xs,gs,SP];var Wb=[TP,Ww,ns,TP];var Xb=[UP,IA,RA,jB,MD,$D,zF,GF,Ue,bw,dw,Lv,Mv,Nv,Ov,Pv,tu,uu,vu,hw,jw,kw,sw,tw,uw,vw,ww,UP,UP,UP,UP,UP];var Yb=[VP,HA,QA,iB,Sv,Tv,Uv,Vv,Wv,Xv,Yv,Zv,_v,Dv,Cv,Bv,Av,zv,yv,xv,wv,vv,uv,tv,sv,rv,qv,pv,ov,nv,mv,lv,kv,jv,iv,hv,gv,fv,ev,dv,cv,bv,av,$u,Ev,_u,Zu,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP];var Zb=[WP,GA,PA,hB,LD,_D,OK,TK];var _b=[XP,aw,cw,Kv,Gv,Hv,Iv,XP];return{__GLOBAL__I_000101:SE,__GLOBAL__sub_I_ARToolKitJS_cpp:Dq,__GLOBAL__sub_I_bind_cpp:EB,__GLOBAL__sub_I_iostream_cpp:TE,__ZSt18uncaught_exceptionv:yD,___cxa_can_catch:wB,___cxa_is_pointer_type:xB,___embind_register_native_and_builtin_types:HB,___emscripten_environ_constructor:zB,___errno_location:ox,___getTypeName:tD,___muldi3:NO,___udivdi3:SO,__get_daylight:BB,__get_environ:DB,__get_timezone:CB,__get_tzname:AB,_bitshift64Lshr:TO,_bitshift64Shl:UO,_emscripten_get_sbrk_ptr:VO,_emscripten_replace_memory:Cb,_free:GO,_i64Add:OO,_i64Subtract:PO,_llvm_bswap_i32:WO,_malloc:FO,_memcpy:_O,_memmove:$O,_memset:aP,_realloc:IO,_roundf:bP,_saveSetjmp:XO,_setThrew:ZO,_testSetjmp:YO,dynCall_di:cP,dynCall_dii:dP,dynCall_i:eP,dynCall_ii:fP,dynCall_iidiiii:gP,dynCall_iii:hP,dynCall_iiii:iP,dynCall_iiiii:jP,dynCall_iiiiid:kP,dynCall_iiiiii:lP,dynCall_iiiiiid:mP,dynCall_iiiiiii:nP,dynCall_iiiiiiii:oP,dynCall_iiiiiiiii:pP,dynCall_v:qP,dynCall_vi:rP,dynCall_vid:sP,dynCall_vii:tP,dynCall_viid:uP,dynCall_viii:vP,dynCall_viiii:wP,dynCall_viiiii:xP,dynCall_viiiiii:yP,dynCall_viiiiiii:zP,establishStackSpace:cc,stackAlloc:$b,stackRestore:bc,stackSave:ac}}) // EMSCRIPTEN_END_ASM (asmGlobalArg,asmLibraryArg,buffer);var __GLOBAL__I_000101=Module["__GLOBAL__I_000101"]=asm["__GLOBAL__I_000101"];var __GLOBAL__sub_I_ARToolKitJS_cpp=Module["__GLOBAL__sub_I_ARToolKitJS_cpp"]=asm["__GLOBAL__sub_I_ARToolKitJS_cpp"];var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var __GLOBAL__sub_I_iostream_cpp=Module["__GLOBAL__sub_I_iostream_cpp"]=asm["__GLOBAL__sub_I_iostream_cpp"];var __ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=asm["__ZSt18uncaught_exceptionv"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=asm["___embind_register_native_and_builtin_types"];var ___emscripten_environ_constructor=Module["___emscripten_environ_constructor"]=asm["___emscripten_environ_constructor"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var __get_daylight=Module["__get_daylight"]=asm["__get_daylight"];var __get_environ=Module["__get_environ"]=asm["__get_environ"];var __get_timezone=Module["__get_timezone"]=asm["__get_timezone"];var __get_tzname=Module["__get_tzname"]=asm["__get_tzname"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _emscripten_get_sbrk_ptr=Module["_emscripten_get_sbrk_ptr"]=asm["_emscripten_get_sbrk_ptr"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _realloc=Module["_realloc"]=asm["_realloc"];var _roundf=Module["_roundf"]=asm["_roundf"];var _saveSetjmp=Module["_saveSetjmp"]=asm["_saveSetjmp"];var _setThrew=Module["_setThrew"]=asm["_setThrew"];var _testSetjmp=Module["_testSetjmp"]=asm["_testSetjmp"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_dii=Module["dynCall_dii"]=asm["dynCall_dii"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iidiiii=Module["dynCall_iidiiii"]=asm["dynCall_iidiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_iiiiid=Module["dynCall_iiiiid"]=asm["dynCall_iiiiid"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=asm["dynCall_iiiiiid"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vid=Module["dynCall_vid"]=asm["dynCall_vid"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];Module["asm"]=asm;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); // continuing 'workerRunner' function from treex-armarkercontrols-nft-start.js file this.onmessage = function (e) { var msg = e.data; switch (msg.type) { case "init": { load(msg); return; } case "process": { next = msg.imagedata; process(); return; } } }; var next = null; var ar = null; var markerResult = null; function load(msg) { var camUrl, nftMarkerUrl; var basePath = self.origin; console.log('base path:', basePath); // test if the msg.param (the incoming url) is an http or https path var regexC = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/igm var reC = regexC.test(msg.param); if (reC == true) { camUrl = msg.param; } else if (reC == false) { camUrl = basePath + '/' + msg.param; } var onLoad = function () { ar = new ARController(msg.pw, msg.ph, param); var cameraMatrix = ar.getCameraMatrix(); // after the ARController is set up, we load the NFT Marker var regexM = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#()?&//=]*)/igm var reM = regexM.test(msg.marker); if (reM == true) { nftMarkerUrl = msg.marker; } else if (reM == false) { nftMarkerUrl = basePath + '/' + msg.marker; } ar.loadNFTMarker(nftMarkerUrl, function (markerId) { ar.trackNFTMarkerId(markerId); postMessage({ type: 'endLoading' }) }, function (err) { console.log('Error in loading marker on Worker', err) }); // ...and we listen for event when marker has been found from camera ar.addEventListener('getNFTMarker', function (ev) { // let AR.js know that a NFT marker has been found, with its matrix for positioning markerResult = { type: 'found', matrix: JSON.stringify(ev.data.matrix), }; }); postMessage({ type: "loaded", proj: JSON.stringify(cameraMatrix) }); }; var onError = function (error) { console.error(error); }; console.log(msg.param); // we cannot pass the entire ARController, so we re-create one inside the Worker, starting from camera_param var param = new ARCameraParam(camUrl, onLoad, onError); } function process() { markerResult = null; if (ar && ar.process) { ar.process(next); } if (markerResult) { postMessage(markerResult); } else { postMessage({ type: "not found", }); } next = null; } }; function onMarkerFound(event) { if (event.data.type === artoolkit.PATTERN_MARKER && event.data.marker.cfPatt < _this.parameters.minConfidence) return if (event.data.type === artoolkit.BARCODE_MARKER && event.data.marker.cfMatrix < _this.parameters.minConfidence) return var modelViewMatrix = new THREE.Matrix4().fromArray(event.data.matrix) _this.updateWithModelViewMatrix(modelViewMatrix) } } var THREEx = THREEx || {} THREEx.ArMarkerHelper = function(markerControls){ this.object3d = new THREE.Group var mesh = new THREE.AxesHelper() this.object3d.add(mesh) var text = markerControls.id // debugger // var text = markerControls.parameters.patternUrl.slice(-1).toUpperCase(); var canvas = document.createElement( 'canvas' ); canvas.width = 64; canvas.height = 64; var context = canvas.getContext( '2d' ); var texture = new THREE.CanvasTexture( canvas ); // put the text in the sprite context.font = '48px monospace'; context.fillStyle = 'rgba(192,192,255, 0.5)'; context.fillRect( 0, 0, canvas.width, canvas.height ); context.fillStyle = 'darkblue'; context.fillText(text, canvas.width/4, 3*canvas.height/4 ) texture.needsUpdate = true // var geometry = new THREE.CubeGeometry(1, 1, 1) var geometry = new THREE.PlaneGeometry(1, 1) var material = new THREE.MeshBasicMaterial({ map: texture, transparent: true }); var mesh = new THREE.Mesh(geometry, material) mesh.rotation.x = -Math.PI/2 this.object3d.add(mesh) } var THREEx = THREEx || {} /** * - lerp position/quaternino/scale * - minDelayDetected * - minDelayUndetected * @param {[type]} object3d [description] * @param {[type]} parameters [description] */ THREEx.ArSmoothedControls = function(object3d, parameters){ var _this = this THREEx.ArBaseControls.call(this, object3d) // copy parameters this.object3d.visible = false this._lastLerpStepAt = null this._visibleStartedAt = null this._unvisibleStartedAt = null // handle default parameters parameters = parameters || {} this.parameters = { // lerp coeficient for the position - between [0,1] - default to 1 lerpPosition: 0.8, // lerp coeficient for the quaternion - between [0,1] - default to 1 lerpQuaternion: 0.2, // lerp coeficient for the scale - between [0,1] - default to 1 lerpScale: 0.7, // delay for lerp fixed steps - in seconds - default to 1/120 lerpStepDelay: 1/60, // minimum delay the sub-control must be visible before this controls become visible - default to 0 seconds minVisibleDelay: 0.0, // minimum delay the sub-control must be unvisible before this controls become unvisible - default to 0 seconds minUnvisibleDelay: 0.2, } ////////////////////////////////////////////////////////////////////////////// // setParameters ////////////////////////////////////////////////////////////////////////////// setParameters(parameters) function setParameters(parameters){ if( parameters === undefined ) return for( var key in parameters ){ var newValue = parameters[ key ] if( newValue === undefined ){ console.warn( "THREEx.ArSmoothedControls: '" + key + "' parameter is undefined." ) continue } var currentValue = _this.parameters[ key ] if( currentValue === undefined ){ console.warn( "THREEx.ArSmoothedControls: '" + key + "' is not a property of this material." ) continue } _this.parameters[ key ] = newValue } } } THREEx.ArSmoothedControls.prototype = Object.create( THREEx.ArBaseControls.prototype ); THREEx.ArSmoothedControls.prototype.constructor = THREEx.ArSmoothedControls; ////////////////////////////////////////////////////////////////////////////// // update function ////////////////////////////////////////////////////////////////////////////// THREEx.ArSmoothedControls.prototype.update = function(targetObject3d){ var object3d = this.object3d var parameters = this.parameters var wasVisible = object3d.visible var present = performance.now()/1000 ////////////////////////////////////////////////////////////////////////////// // handle object3d.visible with minVisibleDelay/minUnvisibleDelay ////////////////////////////////////////////////////////////////////////////// if( targetObject3d.visible === false ) this._visibleStartedAt = null if( targetObject3d.visible === true ) this._unvisibleStartedAt = null if( targetObject3d.visible === true && this._visibleStartedAt === null ) this._visibleStartedAt = present if( targetObject3d.visible === false && this._unvisibleStartedAt === null ) this._unvisibleStartedAt = present if( wasVisible === false && targetObject3d.visible === true ){ var visibleFor = present - this._visibleStartedAt if( visibleFor >= this.parameters.minVisibleDelay ){ object3d.visible = true snapDirectlyToTarget() } // console.log('visibleFor', visibleFor) } if( wasVisible === true && targetObject3d.visible === false ){ var unvisibleFor = present - this._unvisibleStartedAt if( unvisibleFor >= this.parameters.minUnvisibleDelay ){ object3d.visible = false } } ////////////////////////////////////////////////////////////////////////////// // apply lerp on positon/quaternion/scale ////////////////////////////////////////////////////////////////////////////// // apply lerp steps - require fix time steps to behave the same no matter the fps if( this._lastLerpStepAt === null ){ applyOneSlerpStep() this._lastLerpStepAt = present }else{ var nStepsToDo = Math.floor( (present - this._lastLerpStepAt)/this.parameters.lerpStepDelay ) for(var i = 0; i < nStepsToDo; i++){ applyOneSlerpStep() this._lastLerpStepAt += this.parameters.lerpStepDelay } } // disable the lerp by directly copying targetObject3d position/quaternion/scale if( false ){ snapDirectlyToTarget() } // update the matrix this.object3d.updateMatrix() ////////////////////////////////////////////////////////////////////////////// // honor becameVisible/becameUnVisible event ////////////////////////////////////////////////////////////////////////////// // honor becameVisible event if( wasVisible === false && object3d.visible === true ){ this.dispatchEvent({ type: 'becameVisible' }) } // honor becameUnVisible event if( wasVisible === true && object3d.visible === false ){ this.dispatchEvent({ type: 'becameUnVisible' }) } return function snapDirectlyToTarget(){ object3d.position.copy( targetObject3d.position ) object3d.quaternion.copy( targetObject3d.quaternion ) object3d.scale.copy( targetObject3d.scale ) } function applyOneSlerpStep(){ object3d.position.lerp(targetObject3d.position, parameters.lerpPosition) object3d.quaternion.slerp(targetObject3d.quaternion, parameters.lerpQuaternion) object3d.scale.lerp(targetObject3d.scale, parameters.lerpScale) } } var ARjs = ARjs || {} var THREEx = THREEx || {} ARjs.Context = THREEx.ArToolkitContext = function (parameters, sourceParameters) { var _this = this _this._updatedAt = null // handle default parameters this.parameters = { // AR backend - ['artoolkit'] trackingBackend: 'artoolkit', // debug - true if one should display artoolkit debug canvas, false otherwise debug: false, // the mode of detection - ['color', 'color_and_matrix', 'mono', 'mono_and_matrix'] detectionMode: 'mono', // type of matrix code - valid iif detectionMode end with 'matrix' - [3x3, 3x3_HAMMING63, 3x3_PARITY65, 4x4, 4x4_BCH_13_9_3, 4x4_BCH_13_5_5] matrixCodeType: '3x3', // url of the camera parameters cameraParametersUrl: THREEx.ArToolkitContext.baseURL + '../data/data/camera_para.dat', // tune the maximum rate of pose detection in the source image maxDetectionRate: 60, // resolution of at which we detect pose in the source image canvasWidth: 640, canvasHeight: 480, // the patternRatio inside the artoolkit marker - artoolkit only patternRatio: 0.5, // Labeling mode for markers - ['black_region', 'white_region'] // black_region: Black bordered markers on a white background, white_region: White bordered markers on a black background labelingMode: 'black_region', // enable image smoothing or not for canvas copy - default to true // https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/imageSmoothingEnabled imageSmoothingEnabled: false, } // parameters sanity check console.assert(['artoolkit'].indexOf(this.parameters.trackingBackend) !== -1, 'invalid parameter trackingBackend', this.parameters.trackingBackend) console.assert(['color', 'color_and_matrix', 'mono', 'mono_and_matrix'].indexOf(this.parameters.detectionMode) !== -1, 'invalid parameter detectionMode', this.parameters.detectionMode) console.assert(["black_region", "white_region"].indexOf(this.parameters.labelingMode) !== -1, "invalid parameter labelingMode", this.parameters.labelingMode); this.arController = null; _this.initialized = false this._arMarkersControls = [] ////////////////////////////////////////////////////////////////////////////// // setParameters ////////////////////////////////////////////////////////////////////////////// setParameters(parameters) function setParameters(parameters) { if (parameters === undefined) return for (var key in parameters) { var newValue = parameters[key] if (newValue === undefined) { console.warn("THREEx.ArToolkitContext: '" + key + "' parameter is undefined.") continue } var currentValue = _this.parameters[key] if (currentValue === undefined) { console.warn("THREEx.ArToolkitContext: '" + key + "' is not a property of this material.") continue } _this.parameters[key] = newValue } } } Object.assign(ARjs.Context.prototype, THREE.EventDispatcher.prototype); // default to github page ARjs.Context.baseURL = 'https://ar-js-org.github.io/AR.js/three.js/' ARjs.Context.REVISION = '3.3.1'; /** * Create a default camera for this trackingBackend * @param {string} trackingBackend - the tracking to user * @return {THREE.Camera} the created camera */ ARjs.Context.createDefaultCamera = function (trackingBackend) { console.assert(false, 'use ARjs.Utils.createDefaultCamera instead') // Create a camera if (trackingBackend === 'artoolkit') { var camera = new THREE.Camera(); } else console.assert(false) return camera } ////////////////////////////////////////////////////////////////////////////// // init functions ////////////////////////////////////////////////////////////////////////////// ARjs.Context.prototype.init = function (onCompleted) { var _this = this if (this.parameters.trackingBackend === 'artoolkit') { this._initArtoolkit(done) } else console.assert(false) return function done() { // dispatch event _this.dispatchEvent({ type: 'initialized' }); _this.initialized = true onCompleted && onCompleted() } } //////////////////////////////////////////////////////////////////////////////// // update function //////////////////////////////////////////////////////////////////////////////// ARjs.Context.prototype.update = function (srcElement) { // be sure arController is fully initialized if (this.parameters.trackingBackend === 'artoolkit' && this.arController === null) return false; // honor this.parameters.maxDetectionRate var present = performance.now() if (this._updatedAt !== null && present - this._updatedAt < 1000 / this.parameters.maxDetectionRate) { return false } this._updatedAt = present // mark all markers to invisible before processing this frame this._arMarkersControls.forEach(function (markerControls) { if (!markerControls.context.arController.showObject) { markerControls.object3d.visible = false } }) // process this frame if (this.parameters.trackingBackend === 'artoolkit') { this._updateArtoolkit(srcElement) } else { console.assert(false) } // dispatch event this.dispatchEvent({ type: 'sourceProcessed' }); // return true as we processed the frame return true; } //////////////////////////////////////////////////////////////////////////////// // Add/Remove markerControls //////////////////////////////////////////////////////////////////////////////// ARjs.Context.prototype.addMarker = function (arMarkerControls) { console.assert(arMarkerControls instanceof THREEx.ArMarkerControls) this._arMarkersControls.push(arMarkerControls) } ARjs.Context.prototype.removeMarker = function (arMarkerControls) { console.assert(arMarkerControls instanceof THREEx.ArMarkerControls) // console.log('remove marker for', arMarkerControls) var index = this.arMarkerControlss.indexOf(artoolkitMarker); console.assert(index !== index) this._arMarkersControls.splice(index, 1) } ////////////////////////////////////////////////////////////////////////////// // artoolkit specific ////////////////////////////////////////////////////////////////////////////// ARjs.Context.prototype._initArtoolkit = function (onCompleted) { var _this = this // set this._artoolkitProjectionAxisTransformMatrix to change artoolkit projection matrix axis to match usual webgl one this._artoolkitProjectionAxisTransformMatrix = new THREE.Matrix4() this._artoolkitProjectionAxisTransformMatrix.multiply(new THREE.Matrix4().makeRotationY(Math.PI)) this._artoolkitProjectionAxisTransformMatrix.multiply(new THREE.Matrix4().makeRotationZ(Math.PI)) var onError = function(err) { console.error(err); }; // get cameraParameters var cameraParameters = new ARCameraParam(_this.parameters.cameraParametersUrl, function () { // init controller var arController = new ARController(_this.parameters.canvasWidth, _this.parameters.canvasHeight, cameraParameters); _this.arController = arController // honor this.parameters.imageSmoothingEnabled arController.ctx.mozImageSmoothingEnabled = _this.parameters.imageSmoothingEnabled; arController.ctx.webkitImageSmoothingEnabled = _this.parameters.imageSmoothingEnabled; arController.ctx.msImageSmoothingEnabled = _this.parameters.imageSmoothingEnabled; arController.ctx.imageSmoothingEnabled = _this.parameters.imageSmoothingEnabled; // honor this.parameters.debug if (_this.parameters.debug === true) { arController.debugSetup(); arController.canvas.style.position = 'absolute' arController.canvas.style.top = '0px' arController.canvas.style.opacity = '0.6' arController.canvas.style.pointerEvents = 'none' arController.canvas.style.zIndex = '-1' } // setPatternDetectionMode var detectionModes = { 'color': artoolkit.AR_TEMPLATE_MATCHING_COLOR, 'color_and_matrix': artoolkit.AR_TEMPLATE_MATCHING_COLOR_AND_MATRIX, 'mono': artoolkit.AR_TEMPLATE_MATCHING_MONO, 'mono_and_matrix': artoolkit.AR_TEMPLATE_MATCHING_MONO_AND_MATRIX, } var detectionMode = detectionModes[_this.parameters.detectionMode] console.assert(detectionMode !== undefined) arController.setPatternDetectionMode(detectionMode); // setMatrixCodeType var matrixCodeTypes = { '3x3': artoolkit.AR_MATRIX_CODE_3x3, '3x3_HAMMING63': artoolkit.AR_MATRIX_CODE_3x3_HAMMING63, '3x3_PARITY65': artoolkit.AR_MATRIX_CODE_3x3_PARITY65, '4x4': artoolkit.AR_MATRIX_CODE_4x4, '4x4_BCH_13_9_3': artoolkit.AR_MATRIX_CODE_4x4_BCH_13_9_3, '4x4_BCH_13_5_5': artoolkit.AR_MATRIX_CODE_4x4_BCH_13_5_5, } var matrixCodeType = matrixCodeTypes[_this.parameters.matrixCodeType] console.assert(matrixCodeType !== undefined) arController.setMatrixCodeType(matrixCodeType); // set the patternRatio for artoolkit arController.setPattRatio(_this.parameters.patternRatio); // set the labelingMode for artoolkit var labelingModeTypes = { "black_region": artoolkit.AR_LABELING_BLACK_REGION, "white_region": artoolkit.AR_LABELING_WHITE_REGION } var labelingModeType = labelingModeTypes[_this.parameters.labelingMode]; console.assert(labelingModeType !== undefined); arController.setLabelingMode(labelingModeType); // set thresholding in artoolkit // this seems to be the default // arController.setThresholdMode(artoolkit.AR_LABELING_THRESH_MODE_MANUAL) // adatative consume a LOT of cpu... // arController.setThresholdMode(artoolkit.AR_LABELING_THRESH_MODE_AUTO_ADAPTIVE) // arController.setThresholdMode(artoolkit.AR_LABELING_THRESH_MODE_AUTO_OTSU) // notify onCompleted() }, onError ); return this } /** * return the projection matrix */ ARjs.Context.prototype.getProjectionMatrix = function () { // FIXME rename this function to say it is artoolkit specific - getArtoolkitProjectMatrix // keep a backward compatibility with a console.warn console.assert(this.parameters.trackingBackend === 'artoolkit') console.assert(this.arController, 'arController MUST be initialized to call this function') // get projectionMatrixArr from artoolkit var projectionMatrixArr = this.arController.getCameraMatrix(); var projectionMatrix = new THREE.Matrix4().fromArray(projectionMatrixArr) // projectionMatrix.multiply(this._artoolkitProjectionAxisTransformMatrix) return projectionMatrix } ARjs.Context.prototype._updateArtoolkit = function (srcElement) { this.arController.process(srcElement) } var ARjs = ARjs || {} var THREEx = THREEx || {} /** * ArToolkitProfile helps you build parameters for artoolkit * - it is fully independent of the rest of the code * - all the other classes are still expecting normal parameters * - you can use this class to understand how to tune your specific usecase * - it is made to help people to build parameters without understanding all the underlying details. */ ARjs.Profile = THREEx.ArToolkitProfile = function () { this.reset() this.performance('default') } ARjs.Profile.prototype._guessPerformanceLabel = function () { var isMobile = navigator.userAgent.match(/Android/i) || navigator.userAgent.match(/webOS/i) || navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/BlackBerry/i) || navigator.userAgent.match(/Windows Phone/i) ? true : false if (isMobile === true) { return 'phone-normal' } return 'desktop-normal' } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// /** * reset all parameters */ ARjs.Profile.prototype.reset = function () { this.sourceParameters = { // to read from the webcam sourceType: 'webcam', } this.contextParameters = { cameraParametersUrl: THREEx.ArToolkitContext.baseURL + '../data/data/camera_para.dat', detectionMode: 'mono', } this.defaultMarkerParameters = { type: 'pattern', patternUrl: THREEx.ArToolkitContext.baseURL + '../data/data/patt.hiro', changeMatrixMode: 'modelViewMatrix', } return this }; ////////////////////////////////////////////////////////////////////////////// // Performance ////////////////////////////////////////////////////////////////////////////// ARjs.Profile.prototype.performance = function (label) { if (label === 'default') { label = this._guessPerformanceLabel() } if (label === 'desktop-fast') { this.contextParameters.canvasWidth = 640 * 3 this.contextParameters.canvasHeight = 480 * 3 this.contextParameters.maxDetectionRate = 30 } else if (label === 'desktop-normal') { this.contextParameters.canvasWidth = 640 this.contextParameters.canvasHeight = 480 this.contextParameters.maxDetectionRate = 60 } else if (label === 'phone-normal') { this.contextParameters.canvasWidth = 80 * 4 this.contextParameters.canvasHeight = 60 * 4 this.contextParameters.maxDetectionRate = 30 } else if (label === 'phone-slow') { this.contextParameters.canvasWidth = 80 * 3 this.contextParameters.canvasHeight = 60 * 3 this.contextParameters.maxDetectionRate = 30 } else { console.assert(false, 'unknonwn label ' + label) } return this } ////////////////////////////////////////////////////////////////////////////// // Marker ////////////////////////////////////////////////////////////////////////////// ARjs.Profile.prototype.defaultMarker = function (trackingBackend) { trackingBackend = trackingBackend || this.contextParameters.trackingBackend if (trackingBackend === 'artoolkit') { this.contextParameters.detectionMode = 'mono' this.defaultMarkerParameters.type = 'pattern' this.defaultMarkerParameters.patternUrl = THREEx.ArToolkitContext.baseURL + '../data/data/patt.hiro' } else console.assert(false) return this } ////////////////////////////////////////////////////////////////////////////// // Source ////////////////////////////////////////////////////////////////////////////// ARjs.Profile.prototype.sourceWebcam = function () { this.sourceParameters.sourceType = 'webcam' delete this.sourceParameters.sourceUrl return this } ARjs.Profile.prototype.sourceVideo = function (url) { this.sourceParameters.sourceType = 'video' this.sourceParameters.sourceUrl = url return this } ARjs.Profile.prototype.sourceImage = function (url) { this.sourceParameters.sourceType = 'image' this.sourceParameters.sourceUrl = url return this } ////////////////////////////////////////////////////////////////////////////// // trackingBackend ////////////////////////////////////////////////////////////////////////////// ARjs.Profile.prototype.trackingBackend = function (trackingBackend) { console.warn('stop profile.trackingBackend() obsolete function. use .trackingMethod instead') this.contextParameters.trackingBackend = trackingBackend return this } ////////////////////////////////////////////////////////////////////////////// // trackingBackend ////////////////////////////////////////////////////////////////////////////// ARjs.Profile.prototype.changeMatrixMode = function (changeMatrixMode) { this.defaultMarkerParameters.changeMatrixMode = changeMatrixMode return this } ////////////////////////////////////////////////////////////////////////////// // trackingBackend ////////////////////////////////////////////////////////////////////////////// ARjs.Profile.prototype.trackingMethod = function (trackingMethod) { var data = ARjs.Utils.parseTrackingMethod(trackingMethod) this.defaultMarkerParameters.markersAreaEnabled = data.markersAreaEnabled this.contextParameters.trackingBackend = data.trackingBackend return this } /** * check if the profile is valid. Throw an exception is not valid */ ARjs.Profile.prototype.checkIfValid = function () { return this } var ARjs = ARjs || {} var THREEx = THREEx || {} ARjs.Source = THREEx.ArToolkitSource = function (parameters) { var _this = this this.ready = false this.domElement = null // handle default parameters this.parameters = { // type of source - ['webcam', 'image', 'video'] sourceType: 'webcam', // url of the source - valid if sourceType = image|video sourceUrl: null, // Device id of the camera to use (optional) deviceId: null, // resolution of at which we initialize in the source image sourceWidth: 1024, sourceHeight: 776, // resolution displayed for the source displayWidth: 1024, displayHeight: 776, } ////////////////////////////////////////////////////////////////////////////// // setParameters ////////////////////////////////////////////////////////////////////////////// setParameters(parameters) function setParameters(parameters) { if (parameters === undefined) return for (var key in parameters) { var newValue = parameters[key] if (newValue === undefined) { console.warn("THREEx.ArToolkitSource: '" + key + "' parameter is undefined.") continue } var currentValue = _this.parameters[key] if (currentValue === undefined) { console.warn("THREEx.ArToolkitSource: '" + key + "' is not a property of this material.") continue } _this.parameters[key] = newValue } } } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// ARjs.Source.prototype.init = function (onReady, onError) { var _this = this if (this.parameters.sourceType === 'image') { var domElement = this._initSourceImage(onSourceReady, onError) } else if (this.parameters.sourceType === 'video') { var domElement = this._initSourceVideo(onSourceReady, onError) } else if (this.parameters.sourceType === 'webcam') { // var domElement = this._initSourceWebcamOld(onSourceReady) var domElement = this._initSourceWebcam(onSourceReady, onError) } else { console.assert(false) } // attach this.domElement = domElement this.domElement.style.position = 'absolute' this.domElement.style.top = '0px' this.domElement.style.left = '0px' this.domElement.style.zIndex = '-2' this.domElement.setAttribute('id', 'arjs-video'); return this function onSourceReady() { document.body.appendChild(_this.domElement); window.dispatchEvent(new CustomEvent('arjs-video-loaded', { detail: { component: document.querySelector('#arjs-video'), }, })); _this.ready = true onReady && onReady() } } //////////////////////////////////////////////////////////////////////////////// // init image source //////////////////////////////////////////////////////////////////////////////// ARjs.Source.prototype._initSourceImage = function (onReady) { // TODO make it static var domElement = document.createElement('img'); domElement.src = this.parameters.sourceUrl; domElement.width = this.parameters.sourceWidth; domElement.height = this.parameters.sourceHeight; domElement.style.width = this.parameters.displayWidth + 'px'; domElement.style.height = this.parameters.displayHeight + 'px'; domElement.onload = onReady; return domElement } //////////////////////////////////////////////////////////////////////////////// // init video source //////////////////////////////////////////////////////////////////////////////// ARjs.Source.prototype._initSourceVideo = function (onReady) { // TODO make it static var domElement = document.createElement('video'); domElement.src = this.parameters.sourceUrl; domElement.style.objectFit = 'initial'; domElement.autoplay = true; domElement.webkitPlaysinline = true; domElement.controls = false; domElement.loop = true; domElement.muted = true; // trick to trigger the video on android document.body.addEventListener('click', function onClick() { document.body.removeEventListener('click', onClick); domElement.play() }); domElement.width = this.parameters.sourceWidth; domElement.height = this.parameters.sourceHeight; domElement.style.width = this.parameters.displayWidth + 'px'; domElement.style.height = this.parameters.displayHeight + 'px'; domElement.onloadeddata = onReady; return domElement } //////////////////////////////////////////////////////////////////////////////// // handle webcam source //////////////////////////////////////////////////////////////////////////////// ARjs.Source.prototype._initSourceWebcam = function (onReady, onError) { var _this = this // init default value onError = onError || function (error) { var event = new CustomEvent('camera-error', { error: error }); window.dispatchEvent(event); setTimeout(() => { alert('Webcam Error\nName: ' + error.name + '\nMessage: ' + error.message) }, 1000); } var domElement = document.createElement('video'); domElement.setAttribute('autoplay', ''); domElement.setAttribute('muted', ''); domElement.setAttribute('playsinline', ''); domElement.style.width = this.parameters.displayWidth + 'px' domElement.style.height = this.parameters.displayHeight + 'px' // check API is available if (navigator.mediaDevices === undefined || navigator.mediaDevices.enumerateDevices === undefined || navigator.mediaDevices.getUserMedia === undefined) { if (navigator.mediaDevices === undefined) var fctName = 'navigator.mediaDevices' else if (navigator.mediaDevices.enumerateDevices === undefined) var fctName = 'navigator.mediaDevices.enumerateDevices' else if (navigator.mediaDevices.getUserMedia === undefined) var fctName = 'navigator.mediaDevices.getUserMedia' else console.assert(false) onError({ name: '', message: 'WebRTC issue-! ' + fctName + ' not present in your browser' }); return null } // get available devices navigator.mediaDevices.enumerateDevices().then(function (devices) { var userMediaConstraints = { audio: false, video: { facingMode: 'environment', width: { ideal: _this.parameters.sourceWidth, // min: 1024, // max: 1920 }, height: { ideal: _this.parameters.sourceHeight, // min: 776, // max: 1080 } } }; if (null !== _this.parameters.deviceId) { userMediaConstraints.video.deviceId = { exact: _this.parameters.deviceId }; } // get a device which satisfy the constraints navigator.mediaDevices.getUserMedia(userMediaConstraints).then(function success(stream) { // set the .src of the domElement domElement.srcObject = stream; var event = new CustomEvent('camera-init', { stream: stream }); window.dispatchEvent(event); // to start the video, when it is possible to start it only on userevent. like in android document.body.addEventListener('click', function () { domElement.play(); }); // domElement.play(); onReady(); }).catch(function (error) { onError({ name: error.name, message: error.message }); }); }).catch(function (error) { onError({ message: error.message }); }); return domElement } ////////////////////////////////////////////////////////////////////////////// // Handle Mobile Torch ////////////////////////////////////////////////////////////////////////////// ARjs.Source.prototype.hasMobileTorch = function () { var stream = arToolkitSource.domElement.srcObject if (stream instanceof MediaStream === false) return false if (this._currentTorchStatus === undefined) { this._currentTorchStatus = false } var videoTrack = stream.getVideoTracks()[0]; // if videoTrack.getCapabilities() doesnt exist, return false now if (videoTrack.getCapabilities === undefined) return false var capabilities = videoTrack.getCapabilities() return capabilities.torch ? true : false } /** * toggle the flash/torch of the mobile fun if applicable. * Great post about it https://www.oberhofer.co/mediastreamtrack-and-its-capabilities/ */ ARjs.Source.prototype.toggleMobileTorch = function () { // sanity check console.assert(this.hasMobileTorch() === true) var stream = arToolkitSource.domElement.srcObject if (stream instanceof MediaStream === false) { alert('enabling mobile torch is available only on webcam') return } if (this._currentTorchStatus === undefined) { this._currentTorchStatus = false } var videoTrack = stream.getVideoTracks()[0]; var capabilities = videoTrack.getCapabilities() if (!capabilities.torch) { alert('no mobile torch is available on your camera') return } this._currentTorchStatus = this._currentTorchStatus === false ? true : false videoTrack.applyConstraints({ advanced: [{ torch: this._currentTorchStatus }] }).catch(function (error) { console.log(error) }); } ARjs.Source.prototype.domElementWidth = function () { return parseInt(this.domElement.style.width) } ARjs.Source.prototype.domElementHeight = function () { return parseInt(this.domElement.style.height) } //////////////////////////////////////////////////////////////////////////////// // handle resize //////////////////////////////////////////////////////////////////////////////// ARjs.Source.prototype.onResizeElement = function () { var _this = this var screenWidth = window.innerWidth var screenHeight = window.innerHeight // sanity check console.assert(arguments.length === 0) // compute sourceWidth, sourceHeight if (this.domElement.nodeName === "IMG") { var sourceWidth = this.domElement.naturalWidth var sourceHeight = this.domElement.naturalHeight } else if (this.domElement.nodeName === "VIDEO") { var sourceWidth = this.domElement.videoWidth var sourceHeight = this.domElement.videoHeight } else { console.assert(false) } // compute sourceAspect var sourceAspect = sourceWidth / sourceHeight // compute screenAspect var screenAspect = screenWidth / screenHeight // if screenAspect < sourceAspect, then change the width, else change the height if (screenAspect < sourceAspect) { // compute newWidth and set .width/.marginLeft var newWidth = sourceAspect * screenHeight this.domElement.style.width = newWidth + 'px' this.domElement.style.marginLeft = -(newWidth - screenWidth) / 2 + 'px' // init style.height/.marginTop to normal value this.domElement.style.height = screenHeight + 'px' this.domElement.style.marginTop = '0px' } else { // compute newHeight and set .height/.marginTop var newHeight = 1 / (sourceAspect / screenWidth) this.domElement.style.height = newHeight + 'px' this.domElement.style.marginTop = -(newHeight - screenHeight) / 2 + 'px' // init style.width/.marginLeft to normal value this.domElement.style.width = screenWidth + 'px' this.domElement.style.marginLeft = '0px' } } /* ARjs.Source.prototype.copyElementSizeTo = function(otherElement){ otherElement.style.width = this.domElement.style.width otherElement.style.height = this.domElement.style.height otherElement.style.marginLeft = this.domElement.style.marginLeft otherElement.style.marginTop = this.domElement.style.marginTop } */ ARjs.Source.prototype.copyElementSizeTo = function (otherElement) { if (window.innerWidth > window.innerHeight) { //landscape otherElement.style.width = this.domElement.style.width otherElement.style.height = this.domElement.style.height otherElement.style.marginLeft = this.domElement.style.marginLeft otherElement.style.marginTop = this.domElement.style.marginTop } else { //portrait otherElement.style.height = this.domElement.style.height otherElement.style.width = (parseInt(otherElement.style.height) * 4 / 3) + "px"; otherElement.style.marginLeft = ((window.innerWidth - parseInt(otherElement.style.width)) / 2) + "px"; otherElement.style.marginTop = 0; } } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// ARjs.Source.prototype.copySizeTo = function () { console.warn('obsolete function arToolkitSource.copySizeTo. Use arToolkitSource.copyElementSizeTo') this.copyElementSizeTo.apply(this, arguments) } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// ARjs.Source.prototype.onResize = function (arToolkitContext, renderer, camera) { if (arguments.length !== 3) { console.warn('obsolete function arToolkitSource.onResize. Use arToolkitSource.onResizeElement') return this.onResizeElement.apply(this, arguments) } var trackingBackend = arToolkitContext.parameters.trackingBackend // RESIZE DOMELEMENT if (trackingBackend === 'artoolkit') { this.onResizeElement() var isAframe = renderer.domElement.dataset.aframeCanvas ? true : false if (isAframe === false) { this.copyElementSizeTo(renderer.domElement) } else { } if (arToolkitContext.arController !== null) { this.copyElementSizeTo(arToolkitContext.arController.canvas) } } else console.assert(false, 'unhandled trackingBackend ' + trackingBackend) // UPDATE CAMERA if (trackingBackend === 'artoolkit') { if (arToolkitContext.arController !== null) { camera.projectionMatrix.copy(arToolkitContext.getProjectionMatrix()); } } else console.assert(false, 'unhandled trackingBackend ' + trackingBackend) } var THREEx = THREEx || {} THREEx.ArVideoInWebgl = function(videoTexture){ var _this = this ////////////////////////////////////////////////////////////////////////////// // plane always in front of the camera, exactly as big as the viewport ////////////////////////////////////////////////////////////////////////////// var geometry = new THREE.PlaneGeometry(2, 2); var material = new THREE.MeshBasicMaterial({ // map : new THREE.TextureLoader().load('images/water.jpg'), map : videoTexture, // side: THREE.DoubleSide, // opacity: 0.5, // color: 'pink', // transparent: true, }); var seethruPlane = new THREE.Mesh(geometry, material); this.object3d = seethruPlane // scene.add(seethruPlane); // arToolkitSource.domElement.style.visibility = 'hidden' // TODO extract the fov from the projectionMatrix // camera.fov = 43.1 this.update = function(camera){ camera.updateMatrixWorld(true) // get seethruPlane position var position = new THREE.Vector3(-0,0,-20) // TODO how come you got that offset on x ??? var position = new THREE.Vector3(-0,0,-20) // TODO how come you got that offset on x ??? seethruPlane.position.copy(position) camera.localToWorld(seethruPlane.position) // get seethruPlane quaternion camera.matrixWorld.decompose( camera.position, camera.quaternion, camera.scale ); seethruPlane.quaternion.copy( camera.quaternion ) // extract the fov from the projectionMatrix var fov = THREE.Math.radToDeg(Math.atan(1/camera.projectionMatrix.elements[5]))*2; // console.log('fov', fov) var elementWidth = parseFloat( arToolkitSource.domElement.style.width.replace(/px$/,''), 10 ) var elementHeight = parseFloat( arToolkitSource.domElement.style.height.replace(/px$/,''), 10 ) var aspect = elementWidth / elementHeight // camera.fov = fov // if( vrDisplay.isPresenting ){ // fov *= 2 // aspect *= 2 // } // get seethruPlane height relative to fov seethruPlane.scale.y = Math.tan(THREE.Math.DEG2RAD * fov/2)*position.length() // get seethruPlane aspect seethruPlane.scale.x = seethruPlane.scale.y * aspect } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// // var video = arToolkitSource.domElement; // // window.addEventListener('resize', function(){ // updateSeeThruAspectUv(seethruPlane) // }) // video.addEventListener('canplaythrough', function(){ // updateSeeThruAspectUv(seethruPlane) // }) // function updateSeeThruAspectUv(plane){ // // // if video isnt yet ready to play // if( video.videoWidth === 0 || video.videoHeight === 0 ) return // // var faceVertexUvs = plane.geometry.faceVertexUvs[0] // var screenAspect = window.innerWidth / window.innerHeight // var videoAspect = video.videoWidth / video.videoHeight // // plane.geometry.uvsNeedUpdate = true // if( screenAspect >= videoAspect ){ // var actualHeight = videoAspect / screenAspect; // // faceVertexUvs y 0 // faceVertexUvs[0][1].y = 0.5 - actualHeight/2 // faceVertexUvs[1][0].y = 0.5 - actualHeight/2 // faceVertexUvs[1][1].y = 0.5 - actualHeight/2 // // faceVertexUvs y 1 // faceVertexUvs[0][0].y = 0.5 + actualHeight/2 // faceVertexUvs[0][2].y = 0.5 + actualHeight/2 // faceVertexUvs[1][2].y = 0.5 + actualHeight/2 // }else{ // var actualWidth = screenAspect / videoAspect; // // faceVertexUvs x 0 // faceVertexUvs[0][0].x = 0.5 - actualWidth/2 // faceVertexUvs[0][1].x = 0.5 - actualWidth/2 // faceVertexUvs[1][0].x = 0.5 - actualWidth/2 // // // faceVertexUvs x 1 // faceVertexUvs[0][2].x = 0.5 + actualWidth/2 // faceVertexUvs[1][1].x = 0.5 + actualWidth/2 // faceVertexUvs[1][2].x = 0.5 + actualWidth/2 // } // } } var THREEx = THREEx || {} // TODO this is useless - prefere arjs-HitTesting.js /** * - maybe support .onClickFcts in each object3d * - seems an easy light layer for clickable object * - up to */ THREEx.HitTestingPlane = function(sourceElement){ this._sourceElement = sourceElement // create _pickingScene this._pickingScene = new THREE.Scene // create _pickingPlane var geometry = new THREE.PlaneGeometry(20,20,19,19).rotateX(-Math.PI/2) // var geometry = new THREE.PlaneGeometry(20,20).rotateX(-Math.PI/2) var material = new THREE.MeshBasicMaterial({ // opacity: 0.5, // transparent: true, wireframe: true }) // material.visible = false this._pickingPlane = new THREE.Mesh(geometry, material) this._pickingScene.add(this._pickingPlane) // Create pickingCamera var fullWidth = parseInt(sourceElement.style.width) var fullHeight = parseInt(sourceElement.style.height) // TODO hardcoded fov - couch this._pickingCamera = new THREE.PerspectiveCamera(42, fullWidth / fullHeight, 0.1, 30); } ////////////////////////////////////////////////////////////////////////////// // update function ////////////////////////////////////////////////////////////////////////////// THREEx.HitTestingPlane.prototype.update = function(camera, pickingRoot, changeMatrixMode){ this.onResize() if( changeMatrixMode === 'modelViewMatrix' ){ // set pickingPlane position var pickingPlane = this._pickingPlane pickingRoot.parent.updateMatrixWorld() pickingPlane.matrix.copy(pickingRoot.parent.matrixWorld) // set position/quaternion/scale from pickingPlane.matrix pickingPlane.matrix.decompose(pickingPlane.position, pickingPlane.quaternion, pickingPlane.scale) }else if( changeMatrixMode === 'cameraTransformMatrix' ){ // set pickingPlane position var pickingCamera = this._pickingCamera camera.updateMatrixWorld() pickingCamera.matrix.copy(camera.matrixWorld) // set position/quaternion/scale from pickingCamera.matrix pickingCamera.matrix.decompose(pickingCamera.position, pickingCamera.quaternion, pickingCamera.scale) }else console.assert(false) // var position = this._pickingPlane.position // console.log('pickingPlane position', position.x.toFixed(2), position.y.toFixed(2), position.z.toFixed(2)) // var position = this._pickingCamera.position // console.log('his._pickingCamera position', position.x.toFixed(2), position.y.toFixed(2), position.z.toFixed(2)) } ////////////////////////////////////////////////////////////////////////////// // resize camera ////////////////////////////////////////////////////////////////////////////// THREEx.HitTestingPlane.prototype.onResize = function(){ var sourceElement = this._sourceElement var pickingCamera = this._pickingCamera // FIXME why using css here ??? not even computed style // should get the size of the elment directly independantly var fullWidth = parseInt(sourceElement.style.width) var fullHeight = parseInt(sourceElement.style.height) pickingCamera.aspect = fullWidth / fullHeight pickingCamera.updateProjectionMatrix() } ////////////////////////////////////////////////////////////////////////////// // Perform test ////////////////////////////////////////////////////////////////////////////// THREEx.HitTestingPlane.prototype.test = function(mouseX, mouseY){ // convert mouseX, mouseY to [-1, +1] mouseX = (mouseX-0.5)*2 mouseY =-(mouseY-0.5)*2 this._pickingScene.updateMatrixWorld(true) // compute intersections between mouseVector3 and pickingPlane var raycaster = new THREE.Raycaster(); var mouseVector3 = new THREE.Vector3(mouseX, mouseY, 1); raycaster.setFromCamera( mouseVector3, this._pickingCamera ) var intersects = raycaster.intersectObjects( [this._pickingPlane] ) if( intersects.length === 0 ) return null // set new demoRoot position var position = this._pickingPlane.worldToLocal( intersects[0].point.clone() ) // TODO here do a look at the camera ? var quaternion = new THREE.Quaternion var scale = new THREE.Vector3(1,1,1)//.multiplyScalar(1) return { position : position, quaternion : quaternion, scale : scale } } ////////////////////////////////////////////////////////////////////////////// // render the pickingPlane for debug ////////////////////////////////////////////////////////////////////////////// THREEx.HitTestingPlane.prototype.renderDebug = function(renderer){ // render sceneOrtho renderer.render( this._pickingScene, this._pickingCamera ) } // @namespace var ARjs = ARjs || {} // TODO this is a controls... should i give the object3d here ? // not according to 'no three.js dependancy' /** * Create an anchor in the real world * * @param {ARjs.Session} arSession - the session on which we create the anchor * @param {Object} markerParameters - parameter of this anchor */ ARjs.Anchor = function(arSession, markerParameters){ var _this = this var arContext = arSession.arContext var scene = arSession.parameters.scene var camera = arSession.parameters.camera this.arSession = arSession this.parameters = markerParameters // log to debug console.log('ARjs.Anchor -', 'changeMatrixMode:', this.parameters.changeMatrixMode, '/ markersAreaEnabled:', markerParameters.markersAreaEnabled) var markerRoot = new THREE.Group scene.add(markerRoot) // set controlledObject depending on changeMatrixMode if( markerParameters.changeMatrixMode === 'modelViewMatrix' ){ var controlledObject = markerRoot }else if( markerParameters.changeMatrixMode === 'cameraTransformMatrix' ){ var controlledObject = camera }else console.assert(false) if( markerParameters.markersAreaEnabled === false ){ var markerControls = new THREEx.ArMarkerControls(arContext, controlledObject, markerParameters) this.controls = markerControls }else{ // sanity check - MUST be a trackingBackend with markers console.assert( arContext.parameters.trackingBackend === 'artoolkit' ) // honor markers-page-resolution for https://webxr.io/augmented-website if( location.hash.substring(1).startsWith('markers-page-resolution=') === true ){ // get resolutionW/resolutionH from url var markerPageResolution = location.hash.substring(1) var matches = markerPageResolution.match(/markers-page-resolution=(\d+)x(\d+)/) console.assert(matches.length === 3) var resolutionW = parseInt(matches[1]) var resolutionH = parseInt(matches[2]) var arContext = arSession.arContext // generate and store the ARjsMultiMarkerFile ARjs.MarkersAreaUtils.storeMarkersAreaFileFromResolution(arContext.parameters.trackingBackend, resolutionW, resolutionH) } // if there is no ARjsMultiMarkerFile, build a default one if( localStorage.getItem('ARjsMultiMarkerFile') === null ){ ARjs.MarkersAreaUtils.storeDefaultMultiMarkerFile(arContext.parameters.trackingBackend) } // get multiMarkerFile from localStorage console.assert( localStorage.getItem('ARjsMultiMarkerFile') !== null ) var multiMarkerFile = localStorage.getItem('ARjsMultiMarkerFile') // set controlledObject depending on changeMatrixMode if( markerParameters.changeMatrixMode === 'modelViewMatrix' ){ var parent3D = scene }else if( markerParameters.changeMatrixMode === 'cameraTransformMatrix' ){ var parent3D = camera }else console.assert(false) // build a multiMarkerControls var multiMarkerControls = ARjs.MarkersAreaControls.fromJSON(arContext, parent3D, controlledObject, multiMarkerFile) this.controls = multiMarkerControls // honor markerParameters.changeMatrixMode multiMarkerControls.parameters.changeMatrixMode = markerParameters.changeMatrixMode // TODO put subMarkerControls visibility into an external file. with 2 handling for three.js and babylon.js // create ArMarkerHelper - useful to debug - super three.js specific var markerHelpers = [] multiMarkerControls.subMarkersControls.forEach(function(subMarkerControls){ // add an helper to visuable each sub-marker var markerHelper = new THREEx.ArMarkerHelper(subMarkerControls) markerHelper.object3d.visible = false // subMarkerControls.object3d.add( markerHelper.object3d ) subMarkerControls.object3d.add( markerHelper.object3d ) // add it to markerHelpers markerHelpers.push(markerHelper) }) // define API specific to markersArea this.markersArea = {} this.markersArea.setSubMarkersVisibility = function(visible){ markerHelpers.forEach(function(markerHelper){ markerHelper.object3d.visible = visible }) } } this.object3d = new THREE.Group() ////////////////////////////////////////////////////////////////////////////// // THREEx.ArSmoothedControls ////////////////////////////////////////////////////////////////////////////// var shouldBeSmoothed = true if( shouldBeSmoothed === true ){ // build a smoothedControls var smoothedRoot = new THREE.Group() scene.add(smoothedRoot) var smoothedControls = new THREEx.ArSmoothedControls(smoothedRoot) smoothedRoot.add(this.object3d) }else{ markerRoot.add(this.object3d) } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// this.update = function(){ // update _this.object3d.visible _this.object3d.visible = _this.object3d.parent.visible // console.log('controlledObject.visible', _this.object3d.parent.visible) if( smoothedControls !== undefined ){ // update smoothedControls parameters depending on how many markers are visible in multiMarkerControls if( multiMarkerControls !== undefined ){ multiMarkerControls.updateSmoothedControls(smoothedControls) } // update smoothedControls smoothedControls.update(markerRoot) } } } // @namespace var ARjs = ARjs || {} /** * Create an debug UI for an ARjs.Anchor * * @param {ARjs.Anchor} arAnchor - the anchor to user */ ARjs.SessionDebugUI = function (arSession) { var trackingBackend = arSession.arContext.parameters.trackingBackend this.domElement = document.createElement('div') this.domElement.style.color = 'rgba(0,0,0,0.9)' this.domElement.style.backgroundColor = 'rgba(127,127,127,0.5)' this.domElement.style.display = 'block' this.domElement.style.padding = '0.5em' this.domElement.style.position = 'fixed' this.domElement.style.left = '5px' this.domElement.style.bottom = '10px' this.domElement.style.textAlign = 'right' ////////////////////////////////////////////////////////////////////////////// // current-tracking-backend ////////////////////////////////////////////////////////////////////////////// var domElement = document.createElement('span') domElement.style.display = 'block' domElement.innerHTML = 'trackingBackend : ' + trackingBackend this.domElement.appendChild(domElement) } /** * Url of augmented-website service - if === '' then dont include augmented-website link * @type {String} */ ARjs.SessionDebugUI.AugmentedWebsiteURL = 'https://webxr.io/augmented-website' ////////////////////////////////////////////////////////////////////////////// // ARjs.AnchorDebugUI ////////////////////////////////////////////////////////////////////////////// /** * Create an debug UI for an ARjs.Anchor * * @param {ARjs.Anchor} arAnchor - the anchor to user */ ARjs.AnchorDebugUI = function (arAnchor) { var arSession = arAnchor.arSession var trackingBackend = arSession.arContext.parameters.trackingBackend this.domElement = document.createElement('div') this.domElement.style.color = 'rgba(0,0,0,0.9)' this.domElement.style.backgroundColor = 'rgba(127,127,127,0.5)' this.domElement.style.display = 'inline-block' this.domElement.style.padding = '0.5em' this.domElement.style.margin = '0.5em' this.domElement.style.textAlign = 'left' ////////////////////////////////////////////////////////////////////////////// // current-tracking-backend ////////////////////////////////////////////////////////////////////////////// var domElement = document.createElement('span') domElement.style.display = 'block' domElement.style.padding = '0.5em' domElement.style.color = 'rgba(0,0,0,0.9)' domElement.style.backgroundColor = 'rgba(127,127,127,0.5)' domElement.style.position = 'fixed' domElement.style.left = '5px' domElement.style.bottom = '40px' this.domElement.appendChild(domElement) domElement.innerHTML = 'markersAreaEnabled :' + arAnchor.parameters.markersAreaEnabled ////////////////////////////////////////////////////////////////////////////// // toggle-marker-helper ////////////////////////////////////////////////////////////////////////////// if (arAnchor.parameters.markersAreaEnabled) { var domElement = document.createElement('button') domElement.style.display = 'block' this.domElement.style.padding = '0.5em' this.domElement.style.position = 'fixed' this.domElement.style.textAlign = 'left' this.domElement.appendChild(domElement) domElement.id = 'buttonToggleMarkerHelpers' domElement.innerHTML = 'toggle-marker-helper' domElement.href = 'javascript:void(0)' var subMarkerHelpersVisible = false domElement.addEventListener('click', function () { subMarkerHelpersVisible = subMarkerHelpersVisible ? false : true arAnchor.markersArea.setSubMarkersVisibility(subMarkerHelpersVisible) }) } ////////////////////////////////////////////////////////////////////////////// // Learn-new-marker-area ////////////////////////////////////////////////////////////////////////////// if (arAnchor.parameters.markersAreaEnabled) { var domElement = document.createElement('button') domElement.style.display = 'block' this.domElement.appendChild(domElement) domElement.id = 'buttonMarkersAreaLearner' domElement.innerHTML = 'Learn-new-marker-area' domElement.href = 'javascript:void(0)' domElement.addEventListener('click', function () { if (ARjs.AnchorDebugUI.MarkersAreaLearnerURL !== null) { var learnerURL = ARjs.AnchorDebugUI.MarkersAreaLearnerURL } else { var learnerURL = ARjs.Context.baseURL + 'examples/multi-markers/examples/learner.html' } ARjs.MarkersAreaUtils.navigateToLearnerPage(learnerURL, trackingBackend) }) } ////////////////////////////////////////////////////////////////////////////// // Reset-marker-area ////////////////////////////////////////////////////////////////////////////// if (arAnchor.parameters.markersAreaEnabled) { var domElement = document.createElement('button') domElement.style.display = 'block' this.domElement.appendChild(domElement) domElement.id = 'buttonMarkersAreaReset' domElement.innerHTML = 'Reset-marker-area' domElement.href = 'javascript:void(0)' domElement.addEventListener('click', function () { ARjs.MarkersAreaUtils.storeDefaultMultiMarkerFile(trackingBackend) location.reload() }) } } /** * url for the markers-area learner. if not set, take the default one * @type {String} */ ARjs.AnchorDebugUI.MarkersAreaLearnerURL = null // @namespace var ARjs = ARjs || {} /** * Create an anchor in the real world * * @param {ARjs.Session} arSession - the session on which we create the anchor * @param {Object} markerParameters - parameter of this anchor */ ARjs.HitTesting = function (arSession) { var _this = this var arContext = arSession.arContext var trackingBackend = arContext.parameters.trackingBackend this.enabled = true this._arSession = arSession this._hitTestingPlane = null _this._hitTestingPlane = new THREEx.HitTestingPlane(arSession.arSource.domElement) } ////////////////////////////////////////////////////////////////////////////// // update function ////////////////////////////////////////////////////////////////////////////// /** * update * * @param {THREE.Camera} camera - the camera to use * @param {THREE.Object3D} object3d - */ ARjs.HitTesting.prototype.update = function (camera, pickingRoot, changeMatrixMode) { // if it isnt enabled, do nothing if (this.enabled === false) return if (this._hitTestingPlane !== null) { this._hitTestingPlane.update(camera, pickingRoot, changeMatrixMode) } else console.assert(false) } ////////////////////////////////////////////////////////////////////////////// // actual hit testing ////////////////////////////////////////////////////////////////////////////// /** * Test the real world for intersections directly from a DomEvent * * @param {Number} mouseX - position X of the hit [-1, +1] * @param {Number} mouseY - position Y of the hit [-1, +1] * @return {[ARjs.HitTesting.Result]} - array of result */ ARjs.HitTesting.prototype.testDomEvent = function (domEvent) { var trackingBackend = this._arSession.arContext.parameters.trackingBackend var arSource = this._arSession.arSource // if it isnt enabled, do nothing if (this.enabled === false) return [] var mouseX = domEvent.clientX / arSource.domElementWidth() var mouseY = domEvent.clientY / arSource.domElementHeight() return this.test(mouseX, mouseY) } /** * Test the real world for intersections. * * @param {Number} mouseX - position X of the hit [0, +1] * @param {Number} mouseY - position Y of the hit [0, +1] * @return {[ARjs.HitTesting.Result]} - array of result */ ARjs.HitTesting.prototype.test = function (mouseX, mouseY) { var arContext = this._arSession.arContext var trackingBackend = arContext.parameters.trackingBackend var hitTestResults = [] // if it isnt enabled, do nothing if (this.enabled === false) return [] var result = this._hitTestingPlane.test(mouseX, mouseY) // if no result is found, return now if (result === null) return hitTestResults // build a ARjs.HitTesting.Result var hitTestResult = new ARjs.HitTesting.Result(result.position, result.quaternion, result.scale) hitTestResults.push(hitTestResult) return hitTestResults } ////////////////////////////////////////////////////////////////////////////// // ARjs.HitTesting.Result ////////////////////////////////////////////////////////////////////////////// /** * Contains the result of ARjs.HitTesting.test() * * @param {THREE.Vector3} position - position to use * @param {THREE.Quaternion} quaternion - quaternion to use * @param {THREE.Vector3} scale - scale */ ARjs.HitTesting.Result = function (position, quaternion, scale) { this.position = position this.quaternion = quaternion this.scale = scale } /** * Apply to a controlled object3d * * @param {THREE.Object3D} object3d - the result to apply */ ARjs.HitTesting.Result.prototype.apply = function (object3d) { object3d.position.copy(this.position) object3d.quaternion.copy(this.quaternion) object3d.scale.copy(this.scale) object3d.updateMatrix() } /** * Apply to a controlled object3d * * @param {THREE.Object3D} object3d - the result to apply */ ARjs.HitTesting.Result.prototype.applyPosition = function (object3d) { object3d.position.copy(this.position) object3d.updateMatrix() return this } /** * Apply to a controlled object3d * * @param {THREE.Object3D} object3d - the result to apply */ ARjs.HitTesting.Result.prototype.applyQuaternion = function (object3d) { object3d.quaternion.copy(this.quaternion) object3d.updateMatrix() return this } var ARjs = ARjs || {} /** * define a ARjs.Session * * @param {Object} parameters - parameters for this session */ ARjs.Session = function(parameters){ var _this = this // handle default parameters this.parameters = { renderer: null, camera: null, scene: null, sourceParameters: {}, contextParameters: {}, } ////////////////////////////////////////////////////////////////////////////// // setParameters ////////////////////////////////////////////////////////////////////////////// setParameters(parameters) function setParameters(parameters){ if( parameters === undefined ) return for( var key in parameters ){ var newValue = parameters[ key ] if( newValue === undefined ){ console.warn( "THREEx.Session: '" + key + "' parameter is undefined." ) continue } var currentValue = _this.parameters[ key ] if( currentValue === undefined ){ console.warn( "THREEx.Session: '" + key + "' is not a property of this material." ) continue } _this.parameters[ key ] = newValue } } // sanity check console.assert(this.parameters.renderer instanceof THREE.WebGLRenderer) console.assert(this.parameters.camera instanceof THREE.Camera) console.assert(this.parameters.scene instanceof THREE.Scene) // backward emulation Object.defineProperty(this, 'renderer', {get: function(){ console.warn('use .parameters.renderer renderer') return this.parameters.renderer; }}); Object.defineProperty(this, 'camera', {get: function(){ console.warn('use .parameters.camera instead') return this.parameters.camera; }}); Object.defineProperty(this, 'scene', {get: function(){ console.warn('use .parameters.scene instead') return this.parameters.scene; }}); // log the version console.log('AR.js', ARjs.Context.REVISION, '- trackingBackend:', parameters.contextParameters.trackingBackend) ////////////////////////////////////////////////////////////////////////////// // init arSource ////////////////////////////////////////////////////////////////////////////// var arSource = _this.arSource = new ARjs.Source(parameters.sourceParameters) arSource.init(function onReady(){ arSource.onResize(arContext, _this.parameters.renderer, _this.parameters.camera) }) // handle resize window.addEventListener('resize', function(){ arSource.onResize(arContext, _this.parameters.renderer, _this.parameters.camera) }) ////////////////////////////////////////////////////////////////////////////// // init arContext ////////////////////////////////////////////////////////////////////////////// // create atToolkitContext var arContext = _this.arContext = new ARjs.Context(parameters.contextParameters) // initialize it _this.arContext.init() arContext.addEventListener('initialized', function(event){ arSource.onResize(arContext, _this.parameters.renderer, _this.parameters.camera) }) ////////////////////////////////////////////////////////////////////////////// // update function ////////////////////////////////////////////////////////////////////////////// // update artoolkit on every frame this.update = function(){ if( arSource.ready === false ) return arContext.update( arSource.domElement ) } } ARjs.Session.prototype.onResize = function () { this.arSource.onResize(this.arContext, this.parameters.renderer, this.parameters.camera) }; var ARjs = ARjs || {} ARjs.Utils = {} /** * Create a default rendering camera for this trackingBackend. They may be modified later. to fit physical camera parameters * * @param {string} trackingBackend - the tracking to user * @return {THREE.Camera} the created camera */ ARjs.Utils.createDefaultCamera = function (trackingMethod) { var trackingBackend = this.parseTrackingMethod(trackingMethod).trackingBackend // Create a camera if (trackingBackend === 'artoolkit') { var camera = new THREE.Camera(); } else console.assert(false, 'unknown trackingBackend: ' + trackingBackend) return camera } /** * parse tracking method * * @param {String} trackingMethod - the tracking method to parse * @return {Object} - various field of the tracking method */ ARjs.Utils.parseTrackingMethod = function (trackingMethod) { if (trackingMethod === 'best') { trackingMethod = 'area-artoolkit'; } if (trackingMethod.startsWith('area-')) { return { trackingBackend: trackingMethod.replace('area-', ''), markersAreaEnabled: true, } } else { return { trackingBackend: trackingMethod, markersAreaEnabled: false, } } } var ARjs = ARjs || {} var THREEx = THREEx || {} ARjs.MarkersAreaControls = THREEx.ArMultiMarkerControls = function(arToolkitContext, object3d, parameters){ var _this = this THREEx.ArBaseControls.call(this, object3d) if( arguments.length > 3 ) console.assert('wrong api for', THREEx.ArMultiMarkerControls) // have a parameters in argument this.parameters = { // list of controls for each subMarker subMarkersControls: parameters.subMarkersControls, // list of pose for each subMarker relative to the origin subMarkerPoses: parameters.subMarkerPoses, // change matrix mode - [modelViewMatrix, cameraTransformMatrix] changeMatrixMode : parameters.changeMatrixMode !== undefined ? parameters.changeMatrixMode : 'modelViewMatrix', } this.object3d.visible = false // honor obsolete stuff - add a warning to use this.subMarkersControls = this.parameters.subMarkersControls this.subMarkerPoses = this.parameters.subMarkerPoses // listen to arToolkitContext event 'sourceProcessed' // - after we fully processed one image, aka when we know all detected poses in it arToolkitContext.addEventListener('sourceProcessed', function(){ _this._onSourceProcessed() }) } ARjs.MarkersAreaControls.prototype = Object.create( THREEx.ArBaseControls.prototype ); ARjs.MarkersAreaControls.prototype.constructor = ARjs.MarkersAreaControls; ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// /** * What to do when a image source is fully processed */ ARjs.MarkersAreaControls.prototype._onSourceProcessed = function(){ var _this = this var stats = { count: 0, position : { sum: new THREE.Vector3(0,0,0), average: new THREE.Vector3(0,0,0), }, quaternion : { sum: new THREE.Quaternion(0,0,0,0), average: new THREE.Quaternion(0,0,0,0), }, scale : { sum: new THREE.Vector3(0,0,0), average: new THREE.Vector3(0,0,0), }, } var firstQuaternion = _this.parameters.subMarkersControls[0].object3d.quaternion this.parameters.subMarkersControls.forEach(function(markerControls, markerIndex){ var markerObject3d = markerControls.object3d // if this marker is not visible, ignore it if( markerObject3d.visible === false ) return // transformation matrix of this.object3d according to this sub-markers var matrix = markerObject3d.matrix.clone() var markerPose = _this.parameters.subMarkerPoses[markerIndex] matrix.multiply(new THREE.Matrix4().getInverse(markerPose)) // decompose the matrix into .position, .quaternion, .scale var position = new THREE.Vector3 var quaternion = new THREE.Quaternion() var scale = new THREE.Vector3 matrix.decompose(position, quaternion, scale) // http://wiki.unity3d.com/index.php/Averaging_Quaternions_and_Vectors stats.count++ ARjs.MarkersAreaControls.averageVector3(stats.position.sum, position, stats.count, stats.position.average) ARjs.MarkersAreaControls.averageQuaternion(stats.quaternion.sum, quaternion, firstQuaternion, stats.count, stats.quaternion.average) ARjs.MarkersAreaControls.averageVector3(stats.scale.sum, scale, stats.count, stats.scale.average) }) // honor _this.object3d.visible if( stats.count > 0 ){ _this.object3d.visible = true }else{ _this.object3d.visible = false } // if at least one sub-marker has been detected, make the average of all detected markers if( stats.count > 0 ){ // compute modelViewMatrix var modelViewMatrix = new THREE.Matrix4() modelViewMatrix.compose(stats.position.average, stats.quaternion.average, stats.scale.average) // change _this.object3d.matrix based on parameters.changeMatrixMode if( this.parameters.changeMatrixMode === 'modelViewMatrix' ){ _this.object3d.matrix.copy(modelViewMatrix) }else if( this.parameters.changeMatrixMode === 'cameraTransformMatrix' ){ _this.object3d.matrix.getInverse( modelViewMatrix ) }else { console.assert(false) } // decompose - the matrix into .position, .quaternion, .scale _this.object3d.matrix.decompose(_this.object3d.position, _this.object3d.quaternion, _this.object3d.scale) } } ////////////////////////////////////////////////////////////////////////////// // Utility functions ////////////////////////////////////////////////////////////////////////////// /** * from http://wiki.unity3d.com/index.php/Averaging_Quaternions_and_Vectors */ ARjs.MarkersAreaControls.averageQuaternion = function(quaternionSum, newQuaternion, firstQuaternion, count, quaternionAverage){ quaternionAverage = quaternionAverage || new THREE.Quaternion() // sanity check console.assert(firstQuaternion instanceof THREE.Quaternion === true) // from http://wiki.unity3d.com/index.php/Averaging_Quaternions_and_Vectors if( newQuaternion.dot(firstQuaternion) > 0 ){ newQuaternion = new THREE.Quaternion(-newQuaternion.x, -newQuaternion.y, -newQuaternion.z, -newQuaternion.w) } quaternionSum.x += newQuaternion.x quaternionSum.y += newQuaternion.y quaternionSum.z += newQuaternion.z quaternionSum.w += newQuaternion.w quaternionAverage.x = quaternionSum.x/count quaternionAverage.y = quaternionSum.y/count quaternionAverage.z = quaternionSum.z/count quaternionAverage.w = quaternionSum.w/count quaternionAverage.normalize() return quaternionAverage } ARjs.MarkersAreaControls.averageVector3 = function(vector3Sum, vector3, count, vector3Average){ vector3Average = vector3Average || new THREE.Vector3() vector3Sum.x += vector3.x vector3Sum.y += vector3.y vector3Sum.z += vector3.z vector3Average.x = vector3Sum.x / count vector3Average.y = vector3Sum.y / count vector3Average.z = vector3Sum.z / count return vector3Average } ////////////////////////////////////////////////////////////////////////////// // Utility function ////////////////////////////////////////////////////////////////////////////// /** * compute the center of this multimarker file */ ARjs.MarkersAreaControls.computeCenter = function(jsonData){ var multiMarkerFile = JSON.parse(jsonData) var stats = { count : 0, position : { sum: new THREE.Vector3(0,0,0), average: new THREE.Vector3(0,0,0), }, quaternion : { sum: new THREE.Quaternion(0,0,0,0), average: new THREE.Quaternion(0,0,0,0), }, scale : { sum: new THREE.Vector3(0,0,0), average: new THREE.Vector3(0,0,0), }, } var firstQuaternion = new THREE.Quaternion() // FIXME ??? multiMarkerFile.subMarkersControls.forEach(function(item){ var poseMatrix = new THREE.Matrix4().fromArray(item.poseMatrix) var position = new THREE.Vector3 var quaternion = new THREE.Quaternion var scale = new THREE.Vector3 poseMatrix.decompose(position, quaternion, scale) // http://wiki.unity3d.com/index.php/Averaging_Quaternions_and_Vectors stats.count++ ARjs.MarkersAreaControls.averageVector3(stats.position.sum, position, stats.count, stats.position.average) ARjs.MarkersAreaControls.averageQuaternion(stats.quaternion.sum, quaternion, firstQuaternion, stats.count, stats.quaternion.average) ARjs.MarkersAreaControls.averageVector3(stats.scale.sum, scale, stats.count, stats.scale.average) }) var averageMatrix = new THREE.Matrix4() averageMatrix.compose(stats.position.average, stats.quaternion.average, stats.scale.average) return averageMatrix } ARjs.MarkersAreaControls.computeBoundingBox = function(jsonData){ var multiMarkerFile = JSON.parse(jsonData) var boundingBox = new THREE.Box3() multiMarkerFile.subMarkersControls.forEach(function(item){ var poseMatrix = new THREE.Matrix4().fromArray(item.poseMatrix) var position = new THREE.Vector3 var quaternion = new THREE.Quaternion var scale = new THREE.Vector3 poseMatrix.decompose(position, quaternion, scale) boundingBox.expandByPoint(position) }) return boundingBox } ////////////////////////////////////////////////////////////////////////////// // updateSmoothedControls ////////////////////////////////////////////////////////////////////////////// ARjs.MarkersAreaControls.prototype.updateSmoothedControls = function(smoothedControls, lerpsValues){ // handle default values if( lerpsValues === undefined ){ // FIXME this parameter format is uselessly cryptic // lerpValues = [ // {lerpPosition: 0.5, lerpQuaternion: 0.2, lerpQuaternion: 0.7} // ] lerpsValues = [ [0.3+.1, 0.1, 0.3], [0.4+.1, 0.1, 0.4], [0.4+.1, 0.2, 0.5], [0.5+.1, 0.2, 0.7], [0.5+.1, 0.2, 0.7], ] } // count how many subMarkersControls are visible var nVisible = 0 this.parameters.subMarkersControls.forEach(function(markerControls, markerIndex){ var markerObject3d = markerControls.object3d if( markerObject3d.visible === true ) nVisible ++ }) // find the good lerpValues if( lerpsValues[nVisible-1] !== undefined ){ var lerpValues = lerpsValues[nVisible-1] }else{ var lerpValues = lerpsValues[lerpsValues.length-1] } // modify lerpValues in smoothedControls smoothedControls.parameters.lerpPosition = lerpValues[0] smoothedControls.parameters.lerpQuaternion = lerpValues[1] smoothedControls.parameters.lerpScale = lerpValues[2] } ////////////////////////////////////////////////////////////////////////////// // Create THREEx.ArMultiMarkerControls from JSON ////////////////////////////////////////////////////////////////////////////// ARjs.MarkersAreaControls.fromJSON = function(arToolkitContext, parent3D, markerRoot, jsonData, parameters){ var multiMarkerFile = JSON.parse(jsonData) // declare variables var subMarkersControls = [] var subMarkerPoses = [] // handle default arguments parameters = parameters || {} // prepare the parameters multiMarkerFile.subMarkersControls.forEach(function(item){ // create a markerRoot var markerRoot = new THREE.Object3D() parent3D.add(markerRoot) // create markerControls for our markerRoot var subMarkerControls = new THREEx.ArMarkerControls(arToolkitContext, markerRoot, item.parameters) // if( true ){ // store it in the parameters subMarkersControls.push(subMarkerControls) subMarkerPoses.push(new THREE.Matrix4().fromArray(item.poseMatrix)) // }else{ // // build a smoothedControls // var smoothedRoot = new THREE.Group() // parent3D.add(smoothedRoot) // var smoothedControls = new THREEx.ArSmoothedControls(smoothedRoot, { // lerpPosition : 0.1, // lerpQuaternion : 0.1, // lerpScale : 0.1, // minVisibleDelay: 0, // minUnvisibleDelay: 0, // }) // onRenderFcts.push(function(delta){ // smoothedControls.update(markerRoot) // TODO this is a global // }) // // // // store it in the parameters // subMarkersControls.push(smoothedControls) // subMarkerPoses.push(new THREE.Matrix4().fromArray(item.poseMatrix)) // } }) parameters.subMarkersControls = subMarkersControls parameters.subMarkerPoses = subMarkerPoses // create a new THREEx.ArMultiMarkerControls var multiMarkerControls = new THREEx.ArMultiMarkerControls(arToolkitContext, markerRoot, parameters) // return it return multiMarkerControls } var ARjs = ARjs || {} var THREEx = THREEx || {} ARjs.MarkersAreaLearning = THREEx.ArMultiMakersLearning = function(arToolkitContext, subMarkersControls){ var _this = this this._arToolkitContext = arToolkitContext // Init variables this.subMarkersControls = subMarkersControls this.enabled = true // listen to arToolkitContext event 'sourceProcessed' // - after we fully processed one image, aka when we know all detected poses in it arToolkitContext.addEventListener('sourceProcessed', function(){ _this._onSourceProcessed() }) } ////////////////////////////////////////////////////////////////////////////// // statistic collection ////////////////////////////////////////////////////////////////////////////// /** * What to do when a image source is fully processed */ ARjs.MarkersAreaLearning.prototype._onSourceProcessed = function(){ var originQuaternion = this.subMarkersControls[0].object3d.quaternion // here collect the statistic on relative positioning // honor this.enabled if( this.enabled === false ) return // keep only the visible markers var visibleMarkerControls = this.subMarkersControls.filter(function(markerControls){ return markerControls.object3d.visible === true }) var count = Object.keys(visibleMarkerControls).length var positionDelta = new THREE.Vector3() var quaternionDelta = new THREE.Quaternion() var scaleDelta = new THREE.Vector3() var tmpMatrix = new THREE.Matrix4() // go thru all the visibleMarkerControls for(var i = 0; i < count; i++){ var markerControls1 = visibleMarkerControls[i] for(var j = 0; j < count; j++){ var markerControls2 = visibleMarkerControls[j] // if markerControls1 is markerControls2, then skip it if( i === j ) continue ////////////////////////////////////////////////////////////////////////////// // create data in markerControls1.object3d.userData if needed ////////////////////////////////////////////////////////////////////////////// // create seenCouples for markerControls1 if needed if( markerControls1.object3d.userData.seenCouples === undefined ){ markerControls1.object3d.userData.seenCouples = {} } var seenCouples = markerControls1.object3d.userData.seenCouples // create the multiMarkerPosition average if needed` if( seenCouples[markerControls2.id] === undefined ){ // console.log('create seenCouples between', markerControls1.id, 'and', markerControls2.id) seenCouples[markerControls2.id] = { count : 0, position : { sum: new THREE.Vector3(0,0,0), average: new THREE.Vector3(0,0,0), }, quaternion : { sum: new THREE.Quaternion(0,0,0,0), average: new THREE.Quaternion(0,0,0,0), }, scale : { sum: new THREE.Vector3(0,0,0), average: new THREE.Vector3(0,0,0), }, } } ////////////////////////////////////////////////////////////////////////////// // Compute markerControls2 position relative to markerControls1 ////////////////////////////////////////////////////////////////////////////// // compute markerControls2 position/quaternion/scale in relation with markerControls1 tmpMatrix.getInverse(markerControls1.object3d.matrix) tmpMatrix.multiply(markerControls2.object3d.matrix) tmpMatrix.decompose(positionDelta, quaternionDelta, scaleDelta) ////////////////////////////////////////////////////////////////////////////// // update statistics ////////////////////////////////////////////////////////////////////////////// var stats = seenCouples[markerControls2.id] // update the count stats.count++ // update the average of position/rotation/scale THREEx.ArMultiMarkerControls.averageVector3(stats.position.sum, positionDelta, stats.count, stats.position.average) THREEx.ArMultiMarkerControls.averageQuaternion(stats.quaternion.sum, quaternionDelta, originQuaternion, stats.count, stats.quaternion.average) THREEx.ArMultiMarkerControls.averageVector3(stats.scale.sum, scaleDelta, stats.count, stats.scale.average) } } } ////////////////////////////////////////////////////////////////////////////// // Compute markers transformation matrix from current stats ////////////////////////////////////////////////////////////////////////////// ARjs.MarkersAreaLearning.prototype.computeResult = function(){ var _this = this var originSubControls = this.subMarkersControls[0] this.deleteResult() // special case of originSubControls averageMatrix originSubControls.object3d.userData.result = { averageMatrix : new THREE.Matrix4(), confidenceFactor: 1, } // TODO here check if the originSubControls has been seen at least once!! /** * ALGO in pseudo code * * - Set confidenceFactor of origin sub markers as 1 * * Start Looping * - For a given sub marker, skip it if it already has a result. * - if no result, check all seen couple and find n ones which has a progress of 1 or more. * - So the other seen sub markers, got a valid transformation matrix. * - So take local averages position/orientation/scale, compose a transformation matrix. * - aka transformation matrix from parent matrix * transf matrix pos/orientation/scale * - Multiple it by the other seen marker matrix. * - Loop on the array until one pass could not compute any new sub marker */ do{ var resultChanged = false // loop over each subMarkerControls this.subMarkersControls.forEach(function(subMarkerControls){ // if subMarkerControls already has a result, do nothing var result = subMarkerControls.object3d.userData.result var isLearned = (result !== undefined && result.confidenceFactor >= 1) ? true : false if( isLearned === true ) return // console.log('compute subMarkerControls', subMarkerControls.name()) var otherSubControlsID = _this._getLearnedCoupleStats(subMarkerControls) if( otherSubControlsID === null ){ // console.log('no learnedCoupleStats') return } var otherSubControls = _this._getSubMarkerControlsByID(otherSubControlsID) var seenCoupleStats = subMarkerControls.object3d.userData.seenCouples[otherSubControlsID] var averageMatrix = new THREE.Matrix4() averageMatrix.compose(seenCoupleStats.position.average, seenCoupleStats.quaternion.average, seenCoupleStats.scale.average) var otherAverageMatrix = otherSubControls.object3d.userData.result.averageMatrix var matrix = new THREE.Matrix4().getInverse(otherAverageMatrix).multiply(averageMatrix) matrix = new THREE.Matrix4().getInverse(matrix) console.assert( subMarkerControls.object3d.userData.result === undefined ) subMarkerControls.object3d.userData.result = { averageMatrix: matrix, confidenceFactor: 1 } resultChanged = true }) // console.log('loop') }while(resultChanged === true) // debugger // console.log('json:', this.toJSON()) // this.subMarkersControls.forEach(function(subMarkerControls){ // var hasResult = subMarkerControls.object3d.userData.result !== undefined // console.log('marker', subMarkerControls.name(), hasResult ? 'has' : 'has NO', 'result') // }) } ////////////////////////////////////////////////////////////////////////////// // Utility function ////////////////////////////////////////////////////////////////////////////// /** * get a _this.subMarkersControls id based on markerControls.id */ ARjs.MarkersAreaLearning.prototype._getLearnedCoupleStats = function(subMarkerControls){ // if this subMarkerControls has never been seen with another subMarkerControls if( subMarkerControls.object3d.userData.seenCouples === undefined ) return null var seenCouples = subMarkerControls.object3d.userData.seenCouples var coupleControlsIDs = Object.keys(seenCouples).map(Number) for(var i = 0; i < coupleControlsIDs.length; i++){ var otherSubControlsID = coupleControlsIDs[i] // get otherSubControls var otherSubControls = this._getSubMarkerControlsByID(otherSubControlsID) // if otherSubControls isnt learned, skip it var result = otherSubControls.object3d.userData.result var isLearned = (result !== undefined && result.confidenceFactor >= 1) ? true : false if( isLearned === false ) continue // return this seenCouplesStats return otherSubControlsID } // if none is found, return null return null } /** * get a _this.subMarkersControls based on markerControls.id */ ARjs.MarkersAreaLearning.prototype._getSubMarkerControlsByID = function(controlsID){ for(var i = 0; i < this.subMarkersControls.length; i++){ var subMarkerControls = this.subMarkersControls[i] if( subMarkerControls.id === controlsID ){ return subMarkerControls } } return null } ////////////////////////////////////////////////////////////////////////////// // JSON file building ////////////////////////////////////////////////////////////////////////////// ARjs.MarkersAreaLearning.prototype.toJSON = function(){ // compute the average matrix before generating the file this.computeResult() ////////////////////////////////////////////////////////////////////////////// // actually build the json ////////////////////////////////////////////////////////////////////////////// var data = { meta : { createdBy : "Area Learning - AR.js "+THREEx.ArToolkitContext.REVISION, createdAt : new Date().toJSON(), }, trackingBackend: this._arToolkitContext.parameters.trackingBackend, subMarkersControls : [], } var originSubControls = this.subMarkersControls[0] var originMatrixInverse = new THREE.Matrix4().getInverse(originSubControls.object3d.matrix) this.subMarkersControls.forEach(function(subMarkerControls, index){ // if a subMarkerControls has no result, ignore it if( subMarkerControls.object3d.userData.result === undefined ) return var poseMatrix = subMarkerControls.object3d.userData.result.averageMatrix console.assert(poseMatrix instanceof THREE.Matrix4) // build the info var info = { parameters : { // to fill ... }, poseMatrix : poseMatrix.toArray(), } if( subMarkerControls.parameters.type === 'pattern' ){ info.parameters.type = subMarkerControls.parameters.type info.parameters.patternUrl = subMarkerControls.parameters.patternUrl }else if( subMarkerControls.parameters.type === 'barcode' ){ info.parameters.type = subMarkerControls.parameters.type info.parameters.barcodeValue = subMarkerControls.parameters.barcodeValue }else console.assert(false) data.subMarkersControls.push(info) }) var strJSON = JSON.stringify(data, null, '\t'); ////////////////////////////////////////////////////////////////////////////// // round matrix elements to ease readability - for debug ////////////////////////////////////////////////////////////////////////////// var humanReadable = false if( humanReadable === true ){ var tmp = JSON.parse(strJSON) tmp.subMarkersControls.forEach(function(markerControls){ markerControls.poseMatrix = markerControls.poseMatrix.map(function(value){ var roundingFactor = 100 return Math.round(value*roundingFactor)/roundingFactor }) }) strJSON = JSON.stringify(tmp, null, '\t'); } return strJSON; } ////////////////////////////////////////////////////////////////////////////// // utility function ////////////////////////////////////////////////////////////////////////////// /** * reset all collected statistics */ ARjs.MarkersAreaLearning.prototype.resetStats = function(){ this.deleteResult() this.subMarkersControls.forEach(function(markerControls){ delete markerControls.object3d.userData.seenCouples }) } /** * reset all collected statistics */ ARjs.MarkersAreaLearning.prototype.deleteResult = function(){ this.subMarkersControls.forEach(function(markerControls){ delete markerControls.object3d.userData.result }) } var THREEx = THREEx || {} var ARjs = ARjs || {} var THREEx = THREEx || {} ARjs.MarkersAreaUtils = THREEx.ArMultiMarkerUtils = {} ////////////////////////////////////////////////////////////////////////////// // navigateToLearnerPage ////////////////////////////////////////////////////////////////////////////// /** * Navigate to the multi-marker learner page * * @param {String} learnerBaseURL - the base url for the learner * @param {String} trackingBackend - the tracking backend to use */ ARjs.MarkersAreaUtils.navigateToLearnerPage = function(learnerBaseURL, trackingBackend){ var learnerParameters = { backURL : location.href, trackingBackend: trackingBackend, markersControlsParameters: ARjs.MarkersAreaUtils.createDefaultMarkersControlsParameters(trackingBackend), } location.href = learnerBaseURL + '?' + encodeURIComponent(JSON.stringify(learnerParameters)) } ////////////////////////////////////////////////////////////////////////////// // DefaultMultiMarkerFile ////////////////////////////////////////////////////////////////////////////// /** * Create and store a default multi-marker file * * @param {String} trackingBackend - the tracking backend to use */ ARjs.MarkersAreaUtils.storeDefaultMultiMarkerFile = function(trackingBackend){ var file = ARjs.MarkersAreaUtils.createDefaultMultiMarkerFile(trackingBackend) // json.strinfy the value and store it in localStorage localStorage.setItem('ARjsMultiMarkerFile', JSON.stringify(file)) } /** * Create a default multi-marker file * @param {String} trackingBackend - the tracking backend to use * @return {Object} - json object of the multi-marker file */ ARjs.MarkersAreaUtils.createDefaultMultiMarkerFile = function(trackingBackend){ console.assert(trackingBackend) if( trackingBackend === undefined ) debugger // create absoluteBaseURL var link = document.createElement('a') link.href = ARjs.Context.baseURL var absoluteBaseURL = link.href // create the base file var file = { meta : { createdBy : 'AR.js ' + ARjs.Context.REVISION + ' - Default Marker', createdAt : new Date().toJSON(), }, trackingBackend : trackingBackend, subMarkersControls : [ // empty for now... being filled ] } // add a subMarkersControls file.subMarkersControls[0] = { parameters: {}, poseMatrix: new THREE.Matrix4().makeTranslation(0,0, 0).toArray(), } if( trackingBackend === 'artoolkit' ){ file.subMarkersControls[0].parameters.type = 'pattern' file.subMarkersControls[0].parameters.patternUrl = absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-hiro.patt' }else console.assert(false) // json.strinfy the value and store it in localStorage return file } ////////////////////////////////////////////////////////////////////////////// // createDefaultMarkersControlsParameters ////////////////////////////////////////////////////////////////////////////// /** * Create a default controls parameters for the multi-marker learner * * @param {String} trackingBackend - the tracking backend to use * @return {Object} - json object containing the controls parameters */ ARjs.MarkersAreaUtils.createDefaultMarkersControlsParameters = function(trackingBackend){ // create absoluteBaseURL var link = document.createElement('a') link.href = ARjs.Context.baseURL var absoluteBaseURL = link.href if( trackingBackend === 'artoolkit' ){ // pattern hiro/kanji/a/b/c/f var markersControlsParameters = [ { type : 'pattern', patternUrl : absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-hiro.patt', }, { type : 'pattern', patternUrl : absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-kanji.patt', }, { type : 'pattern', patternUrl : absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-letterA.patt', }, { type : 'pattern', patternUrl : absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-letterB.patt', }, { type : 'pattern', patternUrl : absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-letterC.patt', }, { type : 'pattern', patternUrl : absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-letterF.patt', }, ] }else console.assert(false) return markersControlsParameters } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// /** * generate areaFile */ ARjs.MarkersAreaUtils.storeMarkersAreaFileFromResolution = function (trackingBackend, resolutionW, resolutionH) { // generate areaFile var areaFile = this.buildMarkersAreaFileFromResolution(trackingBackend, resolutionW, resolutionH) // store areaFile in localStorage localStorage.setItem('ARjsMultiMarkerFile', JSON.stringify(areaFile)) } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// ARjs.MarkersAreaUtils.buildMarkersAreaFileFromResolution = function(trackingBackend, resolutionW, resolutionH){ // create the base file var file = { meta : { createdBy : 'AR.js - Augmented Website', createdAt : new Date().toJSON(), }, trackingBackend : trackingBackend, subMarkersControls : [ // empty for now... ] } var whiteMargin = 0.1 if( resolutionW > resolutionH ){ var markerImageSize = 0.4 * resolutionH }else if( resolutionW < resolutionH ){ var markerImageSize = 0.4 * resolutionW }else if( resolutionW === resolutionH ){ // specific for twitter player - https://dev.twitter.com/cards/types/player var markerImageSize = 0.33 * resolutionW }else console.assert(false) // console.warn('using new markerImageSize computation') var actualMarkerSize = markerImageSize * (1 - 2*whiteMargin) var deltaX = (resolutionW - markerImageSize)/2 / actualMarkerSize var deltaZ = (resolutionH - markerImageSize)/2 / actualMarkerSize var subMarkerControls = buildSubMarkerControls('center', 0, 0) file.subMarkersControls.push(subMarkerControls) var subMarkerControls = buildSubMarkerControls('topleft', -deltaX, -deltaZ) file.subMarkersControls.push(subMarkerControls) var subMarkerControls = buildSubMarkerControls('topright', +deltaX, -deltaZ) file.subMarkersControls.push(subMarkerControls) var subMarkerControls = buildSubMarkerControls('bottomleft', -deltaX, +deltaZ) file.subMarkersControls.push(subMarkerControls) var subMarkerControls = buildSubMarkerControls('bottomright', +deltaX, +deltaZ) file.subMarkersControls.push(subMarkerControls) return file ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// function buildSubMarkerControls(layout, positionX, positionZ){ console.log('buildSubMarkerControls', layout, positionX, positionZ) // create subMarkersControls var subMarkersControls = { parameters: {}, poseMatrix: new THREE.Matrix4().makeTranslation(positionX,0, positionZ).toArray(), } // fill the parameters if( trackingBackend === 'artoolkit' ){ layout2MarkerParametersArtoolkit(subMarkersControls.parameters, layout) }else console.assert(false) // return subMarkersControls return subMarkersControls } function layout2MarkerParametersArtoolkit(parameters, layout){ // create absoluteBaseURL var link = document.createElement('a') link.href = ARjs.Context.baseURL var absoluteBaseURL = link.href var layout2PatternUrl = { 'center' : convertRelativeUrlToAbsolute(absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-hiro.patt'), 'topleft' : convertRelativeUrlToAbsolute(absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-letterA.patt'), 'topright' : convertRelativeUrlToAbsolute(absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-letterB.patt'), 'bottomleft' : convertRelativeUrlToAbsolute(absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-letterC.patt'), 'bottomright' : convertRelativeUrlToAbsolute(absoluteBaseURL + 'examples/marker-training/examples/pattern-files/pattern-letterF.patt'), } console.assert(layout2PatternUrl[layout] !== undefined ) parameters.type = 'pattern' parameters.patternUrl = layout2PatternUrl[layout] return function convertRelativeUrlToAbsolute(relativeUrl){ var tmpLink = document.createElement('a'); tmpLink.href = relativeUrl return tmpLink.href } } } ////////////////////////////////////////////////////////////////////////////// // arjs-anchor ////////////////////////////////////////////////////////////////////////////// AFRAME.registerComponent('arjs-anchor', { dependencies: ['arjs', 'artoolkit'], schema: { preset: { type: 'string', }, markerhelpers: { // IIF preset === 'area' type: 'boolean', default: false, }, // controls parameters size: { type: 'number', default: 1 }, type: { type: 'string', }, patternUrl: { type: 'string', }, descriptorsUrl: { type: 'string', }, barcodeValue: { type: 'number' }, changeMatrixMode: { type: 'string', default: 'modelViewMatrix', }, minConfidence: { type: 'number', default: 0.6, }, smooth: { type: 'boolean', default: false, }, smoothCount: { type: 'number', default: 5, }, smoothTolerance: { type: 'number', default: 0.01, }, smoothThreshold: { type: 'number', default: 2, }, }, init: function () { var _this = this // get arjsSystem var arjsSystem = this.el.sceneEl.systems.arjs || this.el.sceneEl.systems.artoolkit ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// _this.isReady = false _this._arAnchor = null // honor object visibility if (_this.data.changeMatrixMode === 'modelViewMatrix') { _this.el.object3D.visible = false } else if (_this.data.changeMatrixMode === 'cameraTransformMatrix') { _this.el.sceneEl.object3D.visible = false } else console.assert(false) // trick to wait until arjsSystem is isReady var startedAt = Date.now() var timerId = setInterval(function () { // wait until the system is isReady if (arjsSystem.isReady === false) return clearInterval(timerId) ////////////////////////////////////////////////////////////////////////////// // update arProfile ////////////////////////////////////////////////////////////////////////////// var arProfile = arjsSystem._arProfile // arProfile.changeMatrixMode('modelViewMatrix') arProfile.changeMatrixMode(_this.data.changeMatrixMode) // honor this.data.preset var markerParameters = Object.assign({}, arProfile.defaultMarkerParameters) if (_this.data.preset === 'hiro') { markerParameters.type = 'pattern' markerParameters.patternUrl = THREEx.ArToolkitContext.baseURL + 'examples/marker-training/examples/pattern-files/pattern-hiro.patt' markerParameters.markersAreaEnabled = false } else if (_this.data.preset === 'kanji') { markerParameters.type = 'pattern' markerParameters.patternUrl = THREEx.ArToolkitContext.baseURL + 'examples/marker-training/examples/pattern-files/pattern-kanji.patt' markerParameters.markersAreaEnabled = false } else if (_this.data.preset === 'area') { markerParameters.type = 'barcode' markerParameters.barcodeValue = 1001 markerParameters.markersAreaEnabled = true } else if (_this.data.type === 'barcode') { markerParameters = { type: _this.data.type, changeMatrixMode: 'modelViewMatrix', barcodeValue: _this.data.barcodeValue, markersAreaEnabled: false } } else if (_this.data.type === 'pattern') { markerParameters.type = _this.data.type markerParameters.patternUrl = _this.data.patternUrl; markerParameters.markersAreaEnabled = false } else if (_this.data.type === 'nft') { markerParameters.type = _this.data.type markerParameters.descriptorsUrl = _this.data.descriptorsUrl; markerParameters.markersAreaEnabled = false } markerParameters.minConfidence = _this.data.minConfidence; markerParameters.smooth = _this.data.smooth; markerParameters.smoothCount = _this.data.smoothCount; markerParameters.smoothTolerance = _this.data.smoothTolerance; markerParameters.smoothThreshold = _this.data.smoothThreshold; ////////////////////////////////////////////////////////////////////////////// // create arAnchor ////////////////////////////////////////////////////////////////////////////// var arSession = arjsSystem._arSession var arAnchor = _this._arAnchor = new ARjs.Anchor(arSession, markerParameters) // it is now considered isReady _this.isReady = true ////////////////////////////////////////////////////////////////////////////// // honor .debugUIEnabled ////////////////////////////////////////////////////////////////////////////// if (arjsSystem.data.debugUIEnabled) { // get or create containerElement var containerElement = document.querySelector('#arjsDebugUIContainer') if (containerElement === null) { containerElement = document.createElement('div') containerElement.id = 'arjsDebugUIContainer' containerElement.setAttribute('style', 'position: fixed; bottom: 10px; width:100%; text-align: center; z-index: 1; color: grey;') document.body.appendChild(containerElement) } // create anchorDebugUI var anchorDebugUI = new ARjs.AnchorDebugUI(arAnchor) containerElement.appendChild(anchorDebugUI.domElement) } }, 1000 / 60) }, remove: function () { }, update: function () { }, tick: function () { var _this = this // if not yet isReady, do nothing if (this.isReady === false) return ////////////////////////////////////////////////////////////////////////////// // update arAnchor ////////////////////////////////////////////////////////////////////////////// var arjsSystem = this.el.sceneEl.systems.arjs || this.el.sceneEl.systems.artoolkit this._arAnchor.update() ////////////////////////////////////////////////////////////////////////////// // honor pose ////////////////////////////////////////////////////////////////////////////// var arWorldRoot = this._arAnchor.object3d arWorldRoot.updateMatrixWorld(true) arWorldRoot.matrixWorld.decompose(this.el.object3D.position, this.el.object3D.quaternion, this.el.object3D.scale) ////////////////////////////////////////////////////////////////////////////// // honor visibility ////////////////////////////////////////////////////////////////////////////// if (_this._arAnchor.parameters.changeMatrixMode === 'modelViewMatrix') { var wasVisible = _this.el.object3D.visible _this.el.object3D.visible = this._arAnchor.object3d.visible } else if (_this._arAnchor.parameters.changeMatrixMode === 'cameraTransformMatrix') { var wasVisible = _this.el.sceneEl.object3D.visible _this.el.sceneEl.object3D.visible = this._arAnchor.object3d.visible } else console.assert(false) // emit markerFound markerLost if (_this._arAnchor.object3d.visible === true && wasVisible === false) { _this.el.emit('markerFound') } else if (_this._arAnchor.object3d.visible === false && wasVisible === true) { _this.el.emit('markerLost') } } }) ////////////////////////////////////////////////////////////////////////////// // define some primitives shortcuts ////////////////////////////////////////////////////////////////////////////// AFRAME.registerPrimitive('a-anchor', AFRAME.utils.extendDeep({}, AFRAME.primitives.getMeshMixin(), { defaultComponents: { 'arjs-anchor': {}, 'arjs-hit-testing': {}, }, mappings: { 'type': 'arjs-anchor.type', 'size': 'arjs-anchor.size', 'url': 'arjs-anchor.patternUrl', 'value': 'arjs-anchor.barcodeValue', 'preset': 'arjs-anchor.preset', 'min-confidence': 'arjs-anchor.minConfidence', 'marker-helpers': 'arjs-anchor.markerhelpers', 'smooth': 'arjs-anchor.smooth', 'smooth-count': 'arjs-anchor.smoothCount', 'smooth-tolerance': 'arjs-anchor.smoothTolerance', 'smooth-threshold': 'arjs-anchor.smoothThreshold', 'hit-testing-render-debug': 'arjs-hit-testing.renderDebug', 'hit-testing-enabled': 'arjs-hit-testing.enabled', } })) AFRAME.registerPrimitive('a-camera-static', AFRAME.utils.extendDeep({}, AFRAME.primitives.getMeshMixin(), { defaultComponents: { 'camera': {}, }, mappings: { } })) AFRAME.registerPrimitive('a-nft', AFRAME.utils.extendDeep({}, AFRAME.primitives.getMeshMixin(), { defaultComponents: { 'arjs-anchor': {}, 'arjs-hit-testing': {}, }, mappings: { 'type': 'arjs-anchor.type', 'url': 'arjs-anchor.descriptorsUrl', 'size': 'arjs-anchor.size', 'smooth': 'arjs-anchor.smooth', 'smooth-count': 'arjs-anchor.smoothCount', 'smooth-tolerance': 'arjs-anchor.smoothTolerance', 'smooth-threshold': 'arjs-anchor.smoothThreshold', 'hit-testing-render-debug': 'arjs-hit-testing.renderDebug', 'hit-testing-enabled': 'arjs-hit-testing.enabled', }, })) ////////////////////////////////////////////////////////////////////////////// // backward compatibility ////////////////////////////////////////////////////////////////////////////// AFRAME.registerPrimitive('a-marker', AFRAME.utils.extendDeep({}, AFRAME.primitives.getMeshMixin(), { defaultComponents: { 'arjs-anchor': {}, 'arjs-hit-testing': {}, }, mappings: { 'type': 'arjs-anchor.type', 'size': 'arjs-anchor.size', 'url': 'arjs-anchor.patternUrl', 'value': 'arjs-anchor.barcodeValue', 'preset': 'arjs-anchor.preset', 'min-confidence': 'arjs-anchor.minConfidence', 'marker-helpers': 'arjs-anchor.markerhelpers', 'smooth': 'arjs-anchor.smooth', 'smooth-count': 'arjs-anchor.smoothCount', 'smooth-tolerance': 'arjs-anchor.smoothTolerance', 'smooth-threshold': 'arjs-anchor.smoothThreshold', 'hit-testing-render-debug': 'arjs-hit-testing.renderDebug', 'hit-testing-enabled': 'arjs-hit-testing.enabled', } })) AFRAME.registerPrimitive('a-marker-camera', AFRAME.utils.extendDeep({}, AFRAME.primitives.getMeshMixin(), { defaultComponents: { 'arjs-anchor': { changeMatrixMode: 'cameraTransformMatrix' }, 'camera': {}, }, mappings: { 'type': 'arjs-anchor.type', 'size': 'arjs-anchor.size', 'url': 'arjs-anchor.patternUrl', 'descriptorsUrl': 'arjs-anchor.descriptorsUrl', 'value': 'arjs-anchor.barcodeValue', 'preset': 'arjs-anchor.preset', 'min-confidence': 'arjs-anchor.minConfidence', 'marker-helpers': 'arjs-anchor.markerhelpers', } })) ////////////////////////////////////////////////////////////////////////////// // arjs-hit-testing ////////////////////////////////////////////////////////////////////////////// AFRAME.registerComponent('arjs-hit-testing', { dependencies: ['arjs', 'artoolkit'], schema: { enabled : { type: 'boolean', default: false, }, renderDebug : { type: 'boolean', default: false, }, }, init: function () { var _this = this var arjsSystem = this.el.sceneEl.systems.arjs || this.el.sceneEl.systems.artoolkit // TODO make it work on cameraTransformMatrix too // _this.isReady = false _this._arAnchor = null _this._arHitTesting = null // trick to wait until arjsSystem is isReady var startedAt = Date.now() var timerId = setInterval(function(){ var anchorEl = _this.el var anchorComponent = anchorEl.components['arjs-anchor'] // wait until anchorComponent is isReady if( anchorComponent === undefined || anchorComponent.isReady === false ) return clearInterval(timerId) ////////////////////////////////////////////////////////////////////////////// // create arAnchor ////////////////////////////////////////////////////////////////////////////// var arAnchor = anchorComponent._arAnchor var arSession = arjsSystem._arSession var renderer = arSession.parameters.renderer var hitTesting = _this._arHitTesting = new ARjs.HitTesting(arSession) hitTesting.enabled = _this.data.enabled _this.isReady = true }, 1000/60) }, remove : function(){ }, update: function () { }, tick: function(){ var _this = this // if not yet isReady, do nothing if( this.isReady === false ) return var arjsSystem = this.el.sceneEl.systems.arjs || this.el.sceneEl.systems.artoolkit var arSession = arjsSystem._arSession var anchorEl = _this.el var anchorComponent = anchorEl.components['arjs-anchor'] var arAnchor = anchorComponent._arAnchor var hitTesting = this._arHitTesting var camera = arSession.parameters.camera // console.log(camera.position) hitTesting.update(camera, arAnchor.object3d, arAnchor.parameters.changeMatrixMode) } }); /** * @author richt / http://richt.me * @author WestLangley / http://github.com/WestLangley * * W3C Device Orientation control (http://w3c.github.io/deviceorientation/spec-source-orientation.html) */ /* NOTE that this is a modified version of THREE.DeviceOrientationControls to * allow exponential smoothing, for use in AR.js. * * Modifications Nick Whitelegg (nickw1 github) */ ArjsDeviceOrientationControls = function ( object ) { var scope = this; this.object = object; this.object.rotation.reorder( 'YXZ' ); this.enabled = true; this.deviceOrientation = {}; this.screenOrientation = 0; this.alphaOffset = 0; // radians this.smoothingFactor = 1; this.TWO_PI = 2 * Math.PI; this.HALF_PI = 0.5 * Math.PI; var onDeviceOrientationChangeEvent = function ( event ) { scope.deviceOrientation = event; }; var onScreenOrientationChangeEvent = function () { scope.screenOrientation = window.orientation || 0; }; // The angles alpha, beta and gamma form a set of intrinsic Tait-Bryan angles of type Z-X'-Y'' var setObjectQuaternion = function () { var zee = new THREE.Vector3( 0, 0, 1 ); var euler = new THREE.Euler(); var q0 = new THREE.Quaternion(); var q1 = new THREE.Quaternion( - Math.sqrt( 0.5 ), 0, 0, Math.sqrt( 0.5 ) ); // - PI/2 around the x-axis return function ( quaternion, alpha, beta, gamma, orient ) { euler.set( beta, alpha, - gamma, 'YXZ' ); // 'ZXY' for the device, but 'YXZ' for us quaternion.setFromEuler( euler ); // orient the device quaternion.multiply( q1 ); // camera looks out the back of the device, not the top quaternion.multiply( q0.setFromAxisAngle( zee, - orient ) ); // adjust for screen orientation }; }(); this.connect = function () { onScreenOrientationChangeEvent(); window.addEventListener( 'orientationchange', onScreenOrientationChangeEvent, false ); window.addEventListener( 'deviceorientation', onDeviceOrientationChangeEvent, false ); scope.enabled = true; }; this.disconnect = function () { window.removeEventListener( 'orientationchange', onScreenOrientationChangeEvent, false ); window.removeEventListener( 'deviceorientation', onDeviceOrientationChangeEvent, false ); scope.enabled = false; }; this.update = function () { if ( scope.enabled === false ) return; var device = scope.deviceOrientation; if ( device ) { var alpha = device.alpha ? THREE.Math.degToRad( device.alpha ) + scope.alphaOffset : 0; // Z var beta = device.beta ? THREE.Math.degToRad( device.beta ) : 0; // X' var gamma = device.gamma ? THREE.Math.degToRad( device.gamma ) : 0; // Y'' var orient = scope.screenOrientation ? THREE.Math.degToRad( scope.screenOrientation ) : 0; // O // NW Added smoothing code var k = this.smoothingFactor; if(this.lastOrientation) { alpha = this._getSmoothedAngle(alpha, this.lastOrientation.alpha, k); beta = this._getSmoothedAngle(beta + Math.PI, this.lastOrientation.beta, k); gamma = this._getSmoothedAngle(gamma + this.HALF_PI, this.lastOrientation.gamma, k, Math.PI); } else { beta += Math.PI; gamma += this.HALF_PI; } this.lastOrientation = { alpha: alpha, beta: beta, gamma: gamma }; setObjectQuaternion( scope.object.quaternion, alpha, beta - Math.PI, gamma - this.HALF_PI, orient ); } }; // NW Added this._orderAngle = function(a, b, range = this.TWO_PI) { if ((b > a && Math.abs(b - a) < range / 2) || (a > b && Math.abs(b - a) > range / 2)) { return { left: a, right: b } } else { return { left: b, right: a } } }; // NW Added this._getSmoothedAngle = function(a, b, k, range = this.TWO_PI) { const angles = this._orderAngle(a, b, range); const angleshift = angles.left; const origAnglesRight = angles.right; angles.left = 0; angles.right -= angleshift; if(angles.right < 0) angles.right += range; let newangle = origAnglesRight == b ? (1 - k)*angles.right + k * angles.left : k * angles.right + (1 - k) * angles.left; newangle += angleshift; if(newangle >= range) newangle -= range; return newangle; }; this.dispose = function () { scope.disconnect(); }; this.connect(); }; // To avoid recalculation at every mouse movement tick var PI_2 = Math.PI / 2; /** * look-controls. Update entity pose, factoring mouse, touch, and WebVR API data. */ /* NOTE that this is a modified version of A-Frame's look-controls to * allow exponential smoothing, for use in AR.js. * * Modifications Nick Whitelegg (nickw1 github) */ AFRAME.registerComponent('arjs-look-controls', { dependencies: ['position', 'rotation'], schema: { enabled: {default: true}, magicWindowTrackingEnabled: {default: true}, pointerLockEnabled: {default: false}, reverseMouseDrag: {default: false}, reverseTouchDrag: {default: false}, touchEnabled: {default: true}, smoothingFactor: { type: 'number', default: 1 } }, init: function () { this.deltaYaw = 0; this.previousHMDPosition = new THREE.Vector3(); this.hmdQuaternion = new THREE.Quaternion(); this.magicWindowAbsoluteEuler = new THREE.Euler(); this.magicWindowDeltaEuler = new THREE.Euler(); this.position = new THREE.Vector3(); this.magicWindowObject = new THREE.Object3D(); this.rotation = {}; this.deltaRotation = {}; this.savedPose = null; this.pointerLocked = false; this.setupMouseControls(); this.bindMethods(); this.previousMouseEvent = {}; this.setupMagicWindowControls(); // To save / restore camera pose this.savedPose = { position: new THREE.Vector3(), rotation: new THREE.Euler() }; // Call enter VR handler if the scene has entered VR before the event listeners attached. if (this.el.sceneEl.is('vr-mode')) { this.onEnterVR(); } }, setupMagicWindowControls: function () { var magicWindowControls; var data = this.data; // Only on mobile devices and only enabled if DeviceOrientation permission has been granted. if (AFRAME.utils.device.isMobile()) { magicWindowControls = this.magicWindowControls = new ArjsDeviceOrientationControls(this.magicWindowObject); if (typeof DeviceOrientationEvent !== 'undefined' && DeviceOrientationEvent.requestPermission) { magicWindowControls.enabled = false; if (this.el.sceneEl.components['device-orientation-permission-ui'].permissionGranted) { magicWindowControls.enabled = data.magicWindowTrackingEnabled; } else { this.el.sceneEl.addEventListener('deviceorientationpermissiongranted', function () { magicWindowControls.enabled = data.magicWindowTrackingEnabled; }); } } } }, update: function (oldData) { var data = this.data; // Disable grab cursor classes if no longer enabled. if (data.enabled !== oldData.enabled) { this.updateGrabCursor(data.enabled); } // Reset magic window eulers if tracking is disabled. if (oldData && !data.magicWindowTrackingEnabled && oldData.magicWindowTrackingEnabled) { this.magicWindowAbsoluteEuler.set(0, 0, 0); this.magicWindowDeltaEuler.set(0, 0, 0); } // Pass on magic window tracking setting to magicWindowControls. if (this.magicWindowControls) { this.magicWindowControls.enabled = data.magicWindowTrackingEnabled; this.magicWindowControls.smoothingFactor = data.smoothingFactor; } if (oldData && !data.pointerLockEnabled !== oldData.pointerLockEnabled) { this.removeEventListeners(); this.addEventListeners(); if (this.pointerLocked) { this.exitPointerLock(); } } }, tick: function (t) { var data = this.data; if (!data.enabled) { return; } this.updateOrientation(); }, play: function () { this.addEventListeners(); }, pause: function () { this.removeEventListeners(); if (this.pointerLocked) { this.exitPointerLock(); } }, remove: function () { this.removeEventListeners(); if (this.pointerLocked) { this.exitPointerLock(); } }, bindMethods: function () { this.onMouseDown = AFRAME.utils.bind(this.onMouseDown, this); this.onMouseMove = AFRAME.utils.bind(this.onMouseMove, this); this.onMouseUp = AFRAME.utils.bind(this.onMouseUp, this); this.onTouchStart = AFRAME.utils.bind(this.onTouchStart, this); this.onTouchMove = AFRAME.utils.bind(this.onTouchMove, this); this.onTouchEnd = AFRAME.utils.bind(this.onTouchEnd, this); this.onEnterVR = AFRAME.utils.bind(this.onEnterVR, this); this.onExitVR = AFRAME.utils.bind(this.onExitVR, this); this.onPointerLockChange = AFRAME.utils.bind(this.onPointerLockChange, this); this.onPointerLockError = AFRAME.utils.bind(this.onPointerLockError, this); }, /** * Set up states and Object3Ds needed to store rotation data. */ setupMouseControls: function () { this.mouseDown = false; this.pitchObject = new THREE.Object3D(); this.yawObject = new THREE.Object3D(); this.yawObject.position.y = 10; this.yawObject.add(this.pitchObject); }, /** * Add mouse and touch event listeners to canvas. */ addEventListeners: function () { var sceneEl = this.el.sceneEl; var canvasEl = sceneEl.canvas; // Wait for canvas to load. if (!canvasEl) { sceneEl.addEventListener('render-target-loaded', AFRAME.utils.bind(this.addEventListeners, this)); return; } // Mouse events. canvasEl.addEventListener('mousedown', this.onMouseDown, false); window.addEventListener('mousemove', this.onMouseMove, false); window.addEventListener('mouseup', this.onMouseUp, false); // Touch events. canvasEl.addEventListener('touchstart', this.onTouchStart); window.addEventListener('touchmove', this.onTouchMove); window.addEventListener('touchend', this.onTouchEnd); // sceneEl events. sceneEl.addEventListener('enter-vr', this.onEnterVR); sceneEl.addEventListener('exit-vr', this.onExitVR); // Pointer Lock events. if (this.data.pointerLockEnabled) { document.addEventListener('pointerlockchange', this.onPointerLockChange, false); document.addEventListener('mozpointerlockchange', this.onPointerLockChange, false); document.addEventListener('pointerlockerror', this.onPointerLockError, false); } }, /** * Remove mouse and touch event listeners from canvas. */ removeEventListeners: function () { var sceneEl = this.el.sceneEl; var canvasEl = sceneEl && sceneEl.canvas; if (!canvasEl) { return; } // Mouse events. canvasEl.removeEventListener('mousedown', this.onMouseDown); window.removeEventListener('mousemove', this.onMouseMove); window.removeEventListener('mouseup', this.onMouseUp); // Touch events. canvasEl.removeEventListener('touchstart', this.onTouchStart); window.removeEventListener('touchmove', this.onTouchMove); window.removeEventListener('touchend', this.onTouchEnd); // sceneEl events. sceneEl.removeEventListener('enter-vr', this.onEnterVR); sceneEl.removeEventListener('exit-vr', this.onExitVR); // Pointer Lock events. document.removeEventListener('pointerlockchange', this.onPointerLockChange, false); document.removeEventListener('mozpointerlockchange', this.onPointerLockChange, false); document.removeEventListener('pointerlockerror', this.onPointerLockError, false); }, /** * Update orientation for mobile, mouse drag, and headset. * Mouse-drag only enabled if HMD is not active. */ updateOrientation: (function () { var poseMatrix = new THREE.Matrix4(); return function () { var object3D = this.el.object3D; var pitchObject = this.pitchObject; var yawObject = this.yawObject; var pose; var sceneEl = this.el.sceneEl; // In VR mode, THREE is in charge of updating the camera pose. if (sceneEl.is('vr-mode') && sceneEl.checkHeadsetConnected()) { // With WebXR THREE applies headset pose to the object3D matrixWorld internally. // Reflect values back on position, rotation, scale for getAttribute to return the expected values. if (sceneEl.hasWebXR) { pose = sceneEl.renderer.xr.getCameraPose(); if (pose) { poseMatrix.elements = pose.transform.matrix; poseMatrix.decompose(object3D.position, object3D.rotation, object3D.scale); } } return; } this.updateMagicWindowOrientation(); // On mobile, do camera rotation with touch events and sensors. object3D.rotation.x = this.magicWindowDeltaEuler.x + pitchObject.rotation.x; object3D.rotation.y = this.magicWindowDeltaEuler.y + yawObject.rotation.y; object3D.rotation.z = this.magicWindowDeltaEuler.z; }; })(), updateMagicWindowOrientation: function () { var magicWindowAbsoluteEuler = this.magicWindowAbsoluteEuler; var magicWindowDeltaEuler = this.magicWindowDeltaEuler; // Calculate magic window HMD quaternion. if (this.magicWindowControls && this.magicWindowControls.enabled) { this.magicWindowControls.update(); magicWindowAbsoluteEuler.setFromQuaternion(this.magicWindowObject.quaternion, 'YXZ'); if (!this.previousMagicWindowYaw && magicWindowAbsoluteEuler.y !== 0) { this.previousMagicWindowYaw = magicWindowAbsoluteEuler.y; } if (this.previousMagicWindowYaw) { magicWindowDeltaEuler.x = magicWindowAbsoluteEuler.x; magicWindowDeltaEuler.y += magicWindowAbsoluteEuler.y - this.previousMagicWindowYaw; magicWindowDeltaEuler.z = magicWindowAbsoluteEuler.z; this.previousMagicWindowYaw = magicWindowAbsoluteEuler.y; } } }, /** * Translate mouse drag into rotation. * * Dragging up and down rotates the camera around the X-axis (yaw). * Dragging left and right rotates the camera around the Y-axis (pitch). */ onMouseMove: function (evt) { var direction; var movementX; var movementY; var pitchObject = this.pitchObject; var previousMouseEvent = this.previousMouseEvent; var yawObject = this.yawObject; // Not dragging or not enabled. if (!this.data.enabled || (!this.mouseDown && !this.pointerLocked)) { return; } // Calculate delta. if (this.pointerLocked) { movementX = evt.movementX || evt.mozMovementX || 0; movementY = evt.movementY || evt.mozMovementY || 0; } else { movementX = evt.screenX - previousMouseEvent.screenX; movementY = evt.screenY - previousMouseEvent.screenY; } this.previousMouseEvent.screenX = evt.screenX; this.previousMouseEvent.screenY = evt.screenY; // Calculate rotation. direction = this.data.reverseMouseDrag ? 1 : -1; yawObject.rotation.y += movementX * 0.002 * direction; pitchObject.rotation.x += movementY * 0.002 * direction; pitchObject.rotation.x = Math.max(-PI_2, Math.min(PI_2, pitchObject.rotation.x)); }, /** * Register mouse down to detect mouse drag. */ onMouseDown: function (evt) { var sceneEl = this.el.sceneEl; if (!this.data.enabled || (sceneEl.is('vr-mode') && sceneEl.checkHeadsetConnected())) { return; } // Handle only primary button. if (evt.button !== 0) { return; } var canvasEl = sceneEl && sceneEl.canvas; this.mouseDown = true; this.previousMouseEvent.screenX = evt.screenX; this.previousMouseEvent.screenY = evt.screenY; this.showGrabbingCursor(); if (this.data.pointerLockEnabled && !this.pointerLocked) { if (canvasEl.requestPointerLock) { canvasEl.requestPointerLock(); } else if (canvasEl.mozRequestPointerLock) { canvasEl.mozRequestPointerLock(); } } }, /** * Shows grabbing cursor on scene */ showGrabbingCursor: function () { this.el.sceneEl.canvas.style.cursor = 'grabbing'; }, /** * Hides grabbing cursor on scene */ hideGrabbingCursor: function () { this.el.sceneEl.canvas.style.cursor = ''; }, /** * Register mouse up to detect release of mouse drag. */ onMouseUp: function () { this.mouseDown = false; this.hideGrabbingCursor(); }, /** * Register touch down to detect touch drag. */ onTouchStart: function (evt) { if (evt.touches.length !== 1 || !this.data.touchEnabled || this.el.sceneEl.is('vr-mode')) { return; } this.touchStart = { x: evt.touches[0].pageX, y: evt.touches[0].pageY }; this.touchStarted = true; }, /** * Translate touch move to Y-axis rotation. */ onTouchMove: function (evt) { var direction; var canvas = this.el.sceneEl.canvas; var deltaY; var yawObject = this.yawObject; if (!this.touchStarted || !this.data.touchEnabled) { return; } deltaY = 2 * Math.PI * (evt.touches[0].pageX - this.touchStart.x) / canvas.clientWidth; direction = this.data.reverseTouchDrag ? 1 : -1; // Limit touch orientaion to to yaw (y axis). yawObject.rotation.y -= deltaY * 0.5 * direction; this.touchStart = { x: evt.touches[0].pageX, y: evt.touches[0].pageY }; }, /** * Register touch end to detect release of touch drag. */ onTouchEnd: function () { this.touchStarted = false; }, /** * Save pose. */ onEnterVR: function () { var sceneEl = this.el.sceneEl; if (!sceneEl.checkHeadsetConnected()) { return; } this.saveCameraPose(); this.el.object3D.position.set(0, 0, 0); this.el.object3D.rotation.set(0, 0, 0); if (sceneEl.hasWebXR) { this.el.object3D.matrixAutoUpdate = false; this.el.object3D.updateMatrix(); } }, /** * Restore the pose. */ onExitVR: function () { if (!this.el.sceneEl.checkHeadsetConnected()) { return; } this.restoreCameraPose(); this.previousHMDPosition.set(0, 0, 0); this.el.object3D.matrixAutoUpdate = true; }, /** * Update Pointer Lock state. */ onPointerLockChange: function () { this.pointerLocked = !!(document.pointerLockElement || document.mozPointerLockElement); }, /** * Recover from Pointer Lock error. */ onPointerLockError: function () { this.pointerLocked = false; }, // Exits pointer-locked mode. exitPointerLock: function () { document.exitPointerLock(); this.pointerLocked = false; }, /** * Toggle the feature of showing/hiding the grab cursor. */ updateGrabCursor: function (enabled) { var sceneEl = this.el.sceneEl; function enableGrabCursor () { sceneEl.canvas.classList.add('a-grab-cursor'); } function disableGrabCursor () { sceneEl.canvas.classList.remove('a-grab-cursor'); } if (!sceneEl.canvas) { if (enabled) { sceneEl.addEventListener('render-target-loaded', enableGrabCursor); } else { sceneEl.addEventListener('render-target-loaded', disableGrabCursor); } return; } if (enabled) { enableGrabCursor(); return; } disableGrabCursor(); }, /** * Save camera pose before entering VR to restore later if exiting. */ saveCameraPose: function () { var el = this.el; this.savedPose.position.copy(el.object3D.position); this.savedPose.rotation.copy(el.object3D.rotation); this.hasSavedPose = true; }, /** * Reset camera pose to before entering VR. */ restoreCameraPose: function () { var el = this.el; var savedPose = this.savedPose; if (!this.hasSavedPose) { return; } // Reset camera orientation. el.object3D.position.copy(savedPose.position); el.object3D.rotation.copy(savedPose.rotation); this.hasSavedPose = false; } }); AFRAME.registerComponent('arjs-webcam-texture', { init: function() { this.scene = this.el.sceneEl; this.texCamera = new THREE.OrthographicCamera(-0.5, 0.5, 0.5, -0.5, 0, 10); this.texScene = new THREE.Scene(); this.scene.renderer.autoClear = false; this.video = document.createElement("video"); this.video.setAttribute("autoplay", true); this.video.setAttribute("display", "none"); document.body.appendChild(this.video); this.geom = new THREE.PlaneBufferGeometry(); //0.5, 0.5); this.texture = new THREE.VideoTexture(this.video); this.material = new THREE.MeshBasicMaterial( { map: this.texture } ); const mesh = new THREE.Mesh(this.geom, this.material); this.texScene.add(mesh); }, play: function() { if(navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { const constraints = { video: { facingMode: 'environment' } }; navigator.mediaDevices.getUserMedia(constraints).then( stream=> { this.video.srcObject = stream; this.video.play(); }) .catch(e => { alert(`Webcam error: ${e}`); }); } else { alert('sorry - media devices API not supported'); } }, tick: function() { this.scene.renderer.clear(); this.scene.renderer.render(this.texScene, this.texCamera); this.scene.renderer.clearDepth(); }, pause: function() { this.video.srcObject.getTracks().forEach ( track => { track.stop(); }); }, remove: function() { this.material.dispose(); this.texture.dispose(); this.geom.dispose(); } }); /* * UPDATES 28/08/20: * * - add gpsMinDistance and gpsTimeInterval properties to control how * frequently GPS updates are processed. Aim is to prevent 'stuttering' * effects when close to AR content due to continuous small changes in * location. */ AFRAME.registerComponent('gps-camera', { _watchPositionId: null, originCoords: null, currentCoords: null, lookControls: null, heading: null, schema: { simulateLatitude: { type: 'number', default: 0, }, simulateLongitude: { type: 'number', default: 0, }, simulateAltitude: { type: 'number', default: 0, }, positionMinAccuracy: { type: 'int', default: 100, }, alert: { type: 'boolean', default: false, }, minDistance: { type: 'int', default: 0, }, maxDistance: { type: 'int', default: 0, }, gpsMinDistance: { type: 'number', default: 5, }, gpsTimeInterval: { type: 'number', default: 0, }, }, update: function() { if (this.data.simulateLatitude !== 0 && this.data.simulateLongitude !== 0) { localPosition = Object.assign({}, this.currentCoords || {}); localPosition.longitude = this.data.simulateLongitude; localPosition.latitude = this.data.simulateLatitude; localPosition.altitude = this.data.simulateAltitude; this.currentCoords = localPosition; // re-trigger initialization for new origin this.originCoords = null; this._updatePosition(); } }, init: function () { if (!this.el.components['arjs-look-controls'] && !this.el.components['look-controls']) { return; } this.lastPosition = { latitude: 0, longitude: 0 }; this.loader = document.createElement('DIV'); this.loader.classList.add('arjs-loader'); document.body.appendChild(this.loader); this.onGpsEntityPlaceAdded = this._onGpsEntityPlaceAdded.bind(this); window.addEventListener('gps-entity-place-added', this.onGpsEntityPlaceAdded); this.lookControls = this.el.components['arjs-look-controls'] || this.el.components['look-controls']; // listen to deviceorientation event var eventName = this._getDeviceOrientationEventName(); this._onDeviceOrientation = this._onDeviceOrientation.bind(this); // if Safari if (!!navigator.userAgent.match(/Version\/[\d.]+.*Safari/)) { // iOS 13+ if (typeof DeviceOrientationEvent.requestPermission === 'function') { var handler = function () { console.log('Requesting device orientation permissions...') DeviceOrientationEvent.requestPermission(); document.removeEventListener('touchend', handler); }; document.addEventListener('touchend', function () { handler() }, false); alert('After camera permission prompt, please tap the screen to activate geolocation.'); } else { var timeout = setTimeout(function () { alert('Please enable device orientation in Settings > Safari > Motion & Orientation Access.') }, 750); window.addEventListener(eventName, function () { clearTimeout(timeout); }); } } window.addEventListener(eventName, this._onDeviceOrientation, false); this._watchPositionId = this._initWatchGPS(function (position) { var localPosition = { latitude: position.coords.latitude, longitude: position.coords.longitude, altitude: position.coords.altitude, accuracy: position.coords.accuracy, altitudeAccuracy: position.coords.altitudeAccuracy, }; if (this.data.simulateAltitude !== 0) { localPosition.altitude = this.data.simulateAltitude; } if (this.data.simulateLatitude !== 0 && this.data.simulateLongitude !== 0) { localPosition.latitude = this.data.simulateLatitude; localPosition.longitude = this.data.simulateLongitude; this.currentCoords = localPosition; this._updatePosition(); } else { this.currentCoords = localPosition; var distMoved = this._haversineDist( this.lastPosition, this.currentCoords ); if(distMoved >= this.data.gpsMinDistance || !this.originCoords) { this._updatePosition(); this.lastPosition = { longitude: this.currentCoords.longitude, latitude: this.currentCoords.latitude }; } } }.bind(this)); }, tick: function () { if (this.heading === null) { return; } this._updateRotation(); }, remove: function () { if (this._watchPositionId) { navigator.geolocation.clearWatch(this._watchPositionId); } this._watchPositionId = null; var eventName = this._getDeviceOrientationEventName(); window.removeEventListener(eventName, this._onDeviceOrientation, false); window.removeEventListener('gps-entity-place-added', this.onGpsEntityPlaceAdded); }, /** * Get device orientation event name, depends on browser implementation. * @returns {string} event name */ _getDeviceOrientationEventName: function () { if ('ondeviceorientationabsolute' in window) { var eventName = 'deviceorientationabsolute' } else if ('ondeviceorientation' in window) { var eventName = 'deviceorientation' } else { var eventName = '' console.error('Compass not supported') } return eventName }, /** * Get current user position. * * @param {function} onSuccess * @param {function} onError * @returns {Promise} */ _initWatchGPS: function (onSuccess, onError) { if (!onError) { onError = function (err) { console.warn('ERROR(' + err.code + '): ' + err.message) if (err.code === 1) { // User denied GeoLocation, let their know that alert('Please activate Geolocation and refresh the page. If it is already active, please check permissions for this website.'); return; } if (err.code === 3) { alert('Cannot retrieve GPS position. Signal is absent.'); return; } }; } if ('geolocation' in navigator === false) { onError({ code: 0, message: 'Geolocation is not supported by your browser' }); return Promise.resolve(); } // https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition return navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true, maximumAge: this.data.gpsTimeInterval, timeout: 27000, }); }, /** * Update user position. * * @returns {void} */ _updatePosition: function () { // don't update if accuracy is not good enough if (this.currentCoords.accuracy > this.data.positionMinAccuracy) { if (this.data.alert && !document.getElementById('alert-popup')) { var popup = document.createElement('div'); popup.innerHTML = 'GPS signal is very poor. Try move outdoor or to an area with a better signal.' popup.setAttribute('id', 'alert-popup'); document.body.appendChild(popup); } return; } var alertPopup = document.getElementById('alert-popup'); if (this.currentCoords.accuracy <= this.data.positionMinAccuracy && alertPopup) { document.body.removeChild(alertPopup); } if (!this.originCoords) { // first camera initialization this.originCoords = this.currentCoords; this._setPosition(); var loader = document.querySelector('.arjs-loader'); if (loader) { loader.remove(); } window.dispatchEvent(new CustomEvent('gps-camera-origin-coord-set')); } else { this._setPosition(); } }, _setPosition: function () { var position = this.el.getAttribute('position'); // compute position.x var dstCoords = { longitude: this.currentCoords.longitude, latitude: this.originCoords.latitude, }; position.x = this.computeDistanceMeters(this.originCoords, dstCoords); position.x *= this.currentCoords.longitude > this.originCoords.longitude ? 1 : -1; // compute position.z var dstCoords = { longitude: this.originCoords.longitude, latitude: this.currentCoords.latitude, } position.z = this.computeDistanceMeters(this.originCoords, dstCoords); position.z *= this.currentCoords.latitude > this.originCoords.latitude ? -1 : 1; // update position this.el.setAttribute('position', position); window.dispatchEvent(new CustomEvent('gps-camera-update-position', { detail: { position: this.currentCoords, origin: this.originCoords } })); }, /** * Returns distance in meters between source and destination inputs. * * Calculate distance, bearing and more between Latitude/Longitude points * Details: https://www.movable-type.co.uk/scripts/latlong.html * * @param {Position} src * @param {Position} dest * @param {Boolean} isPlace * * @returns {number} distance | Number.MAX_SAFE_INTEGER */ computeDistanceMeters: function (src, dest, isPlace) { var distance = this._haversineDist (src, dest); // if function has been called for a place, and if it's too near and a min distance has been set, // return max distance possible - to be handled by the caller if (isPlace && this.data.minDistance && this.data.minDistance > 0 && distance < this.data.minDistance) { return Number.MAX_SAFE_INTEGER; } // if function has been called for a place, and if it's too far and a max distance has been set, // return max distance possible - to be handled by the caller if (isPlace && this.data.maxDistance && this.data.maxDistance > 0 && distance > this.data.maxDistance) { return Number.MAX_SAFE_INTEGER; } return distance; }, _haversineDist: function (src, dest) { var dlongitude = THREE.Math.degToRad(dest.longitude - src.longitude); var dlatitude = THREE.Math.degToRad(dest.latitude - src.latitude); var a = (Math.sin(dlatitude / 2) * Math.sin(dlatitude / 2)) + Math.cos(THREE.Math.degToRad(src.latitude)) * Math.cos(THREE.Math.degToRad(dest.latitude)) * (Math.sin(dlongitude / 2) * Math.sin(dlongitude / 2)); var angle = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); return angle * 6371000; }, /** * Compute compass heading. * * @param {number} alpha * @param {number} beta * @param {number} gamma * * @returns {number} compass heading */ _computeCompassHeading: function (alpha, beta, gamma) { // Convert degrees to radians var alphaRad = alpha * (Math.PI / 180); var betaRad = beta * (Math.PI / 180); var gammaRad = gamma * (Math.PI / 180); // Calculate equation components var cA = Math.cos(alphaRad); var sA = Math.sin(alphaRad); var sB = Math.sin(betaRad); var cG = Math.cos(gammaRad); var sG = Math.sin(gammaRad); // Calculate A, B, C rotation components var rA = - cA * sG - sA * sB * cG; var rB = - sA * sG + cA * sB * cG; // Calculate compass heading var compassHeading = Math.atan(rA / rB); // Convert from half unit circle to whole unit circle if (rB < 0) { compassHeading += Math.PI; } else if (rA < 0) { compassHeading += 2 * Math.PI; } // Convert radians to degrees compassHeading *= 180 / Math.PI; return compassHeading; }, /** * Handler for device orientation event. * * @param {Event} event * @returns {void} */ _onDeviceOrientation: function (event) { if (event.webkitCompassHeading !== undefined) { if (event.webkitCompassAccuracy < 50) { this.heading = event.webkitCompassHeading; } else { console.warn('webkitCompassAccuracy is event.webkitCompassAccuracy'); } } else if (event.alpha !== null) { if (event.absolute === true || event.absolute === undefined) { this.heading = this._computeCompassHeading(event.alpha, event.beta, event.gamma); } else { console.warn('event.absolute === false'); } } else { console.warn('event.alpha === null'); } }, /** * Update user rotation data. * * @returns {void} */ _updateRotation: function () { var heading = 360 - this.heading; var cameraRotation = this.el.getAttribute('rotation').y; var yawRotation = THREE.Math.radToDeg(this.lookControls.yawObject.rotation.y); var offset = (heading - (cameraRotation - yawRotation)) % 360; this.lookControls.yawObject.rotation.y = THREE.Math.degToRad(offset); }, _onGpsEntityPlaceAdded: function() { // if places are added after camera initialization is finished if (this.originCoords) { window.dispatchEvent(new CustomEvent('gps-camera-origin-coord-set')); } if (this.loader && this.loader.parentElement) { document.body.removeChild(this.loader) } } }); AFRAME.registerComponent('gps-entity-place', { _cameraGps: null, schema: { longitude: { type: 'number', default: 0, }, latitude: { type: 'number', default: 0, } }, remove: function() { // cleaning listeners when the entity is removed from the DOM window.removeEventListener('gps-camera-origin-coord-set', this.coordSetListener); window.removeEventListener('gps-camera-update-position', this.updatePositionListener); }, init: function() { this.coordSetListener = () => { if (!this._cameraGps) { var camera = document.querySelector('[gps-camera]'); if (!camera.components['gps-camera']) { console.error('gps-camera not initialized') return; } this._cameraGps = camera.components['gps-camera']; } this._updatePosition(); }; this.updatePositionListener = (ev) => { if (!this.data || !this._cameraGps) { return; } var dstCoords = { longitude: this.data.longitude, latitude: this.data.latitude, }; // it's actually a 'distance place', but we don't call it with last param, because we want to retrieve distance even if it's < minDistance property var distanceForMsg = this._cameraGps.computeDistanceMeters(ev.detail.position, dstCoords); this.el.setAttribute('distance', distanceForMsg); this.el.setAttribute('distanceMsg', formatDistance(distanceForMsg)); this.el.dispatchEvent(new CustomEvent('gps-entity-place-update-positon', { detail: { distance: distanceForMsg } })); var actualDistance = this._cameraGps.computeDistanceMeters(ev.detail.position, dstCoords, true); if (actualDistance === Number.MAX_SAFE_INTEGER) { this.hideForMinDistance(this.el, true); } else { this.hideForMinDistance(this.el, false); } }; window.addEventListener('gps-camera-origin-coord-set', this.coordSetListener); window.addEventListener('gps-camera-update-position', this.updatePositionListener); this._positionXDebug = 0; window.dispatchEvent(new CustomEvent('gps-entity-place-added', { detail: { component: this.el } })); }, /** * Hide entity according to minDistance property * @returns {void} */ hideForMinDistance: function(el, hideEntity) { if (hideEntity) { el.setAttribute('visible', 'false'); } else { el.setAttribute('visible', 'true'); } }, /** * Update place position * @returns {void} */ _updatePosition: function() { var position = { x: 0, y: this.el.getAttribute('position').y || 0, z: 0 } // update position.x var dstCoords = { longitude: this.data.longitude, latitude: this._cameraGps.originCoords.latitude, }; position.x = this._cameraGps.computeDistanceMeters(this._cameraGps.originCoords, dstCoords); this._positionXDebug = position.x; position.x *= this.data.longitude > this._cameraGps.originCoords.longitude ? 1 : -1; // update position.z var dstCoords = { longitude: this._cameraGps.originCoords.longitude, latitude: this.data.latitude, }; position.z = this._cameraGps.computeDistanceMeters(this._cameraGps.originCoords, dstCoords); position.z *= this.data.latitude > this._cameraGps.originCoords.latitude ? -1 : 1; if (position.y !== 0) { var altitude = this._cameraGps.originCoords.altitude !== undefined ? this._cameraGps.originCoords.altitude : 0; position.y = position.y - altitude; } // update element's position in 3D world this.el.setAttribute('position', position); }, }); /** * Format distances string * * @param {String} distance */ function formatDistance(distance) { distance = distance.toFixed(0); if (distance >= 1000) { return (distance / 1000) + ' kilometers'; } return distance + ' meters'; }; /** gps-projected-camera * * based on the original gps-camera, modified by nickw 02/04/20 * * Rather than keeping track of position by calculating the distance of * entities or the current location to the original location, this version * makes use of the "Google" Spherical Mercactor projection, aka epsg:3857. * * The original position (lat/lon) is projected into Spherical Mercator and * stored. * * Then, when we receive a new position (lat/lon), this new position is * projected into Spherical Mercator and then its world position calculated * by comparing against the original position. * * The same is also the case for 'entity-places'; when these are added, their * Spherical Mercator coords are calculated (see gps-projected-entity-place). * * Spherical Mercator units are close to, but not exactly, metres, and are * heavily distorted near the poles. Nonetheless they are a good approximation * for many areas of the world and appear not to cause unacceptable distortions * when used as the units for AR apps. * * UPDATES 28/08/20: * * - add gpsMinDistance and gpsTimeInterval properties to control how * frequently GPS updates are processed. Aim is to prevent 'stuttering' * effects when close to AR content due to continuous small changes in * location. */ AFRAME.registerComponent('gps-projected-camera', { _watchPositionId: null, originCoords: null, // original coords now in Spherical Mercator currentCoords: null, lookControls: null, heading: null, schema: { simulateLatitude: { type: 'number', default: 0, }, simulateLongitude: { type: 'number', default: 0, }, simulateAltitude: { type: 'number', default: 0, }, positionMinAccuracy: { type: 'int', default: 100, }, alert: { type: 'boolean', default: false, }, minDistance: { type: 'int', default: 0, }, gpsMinDistance: { type: 'number', default: 0 }, gpsTimeInterval: { type: 'number', default: 0 }, }, update: function() { if (this.data.simulateLatitude !== 0 && this.data.simulateLongitude !== 0) { localPosition = Object.assign({}, this.currentCoords || {}); localPosition.longitude = this.data.simulateLongitude; localPosition.latitude = this.data.simulateLatitude; localPosition.altitude = this.data.simulateAltitude; this.currentCoords = localPosition; // re-trigger initialization for new origin this.originCoords = null; this._updatePosition(); } }, init: function() { if (!this.el.components['arjs-look-controls'] && !this.el.components['look-controls']) { return; } this.lastPosition = { latitude: 0, longitude: 0 }; this.loader = document.createElement('DIV'); this.loader.classList.add('arjs-loader'); document.body.appendChild(this.loader); this.onGpsEntityPlaceAdded = this._onGpsEntityPlaceAdded.bind(this); window.addEventListener('gps-entity-place-added', this.onGpsEntityPlaceAdded); this.lookControls = this.el.components['arjs-look-controls'] || this.el.components['look-controls']; // listen to deviceorientation event var eventName = this._getDeviceOrientationEventName(); this._onDeviceOrientation = this._onDeviceOrientation.bind(this); // if Safari if (!!navigator.userAgent.match(/Version\/[\d.]+.*Safari/)) { // iOS 13+ if (typeof DeviceOrientationEvent.requestPermission === 'function') { var handler = function() { console.log('Requesting device orientation permissions...') DeviceOrientationEvent.requestPermission(); document.removeEventListener('touchend', handler); }; document.addEventListener('touchend', function() { handler() }, false); alert('After camera permission prompt, please tap the screen to activate geolocation.'); } else { var timeout = setTimeout(function() { alert('Please enable device orientation in Settings > Safari > Motion & Orientation Access.') }, 750); window.addEventListener(eventName, function() { clearTimeout(timeout); }); } } window.addEventListener(eventName, this._onDeviceOrientation, false); this._watchPositionId = this._initWatchGPS(function (position) { var localPosition = { latitude: position.coords.latitude, longitude: position.coords.longitude, altitude: position.coords.altitude, accuracy: position.coords.accuracy, altitudeAccuracy: position.coords.altitudeAccuracy, }; if (this.data.simulateAltitude !== 0) { localPosition.altitude = this.data.simulateAltitude; } if (this.data.simulateLatitude !== 0 && this.data.simulateLongitude !== 0) { localPosition.latitude = this.data.simulateLatitude; localPosition.longitude = this.data.simulateLongitude; this.currentCoords = localPosition; this._updatePosition(); } else { this.currentCoords = localPosition; var distMoved = this._haversineDist( this.lastPosition, this.currentCoords ); if(distMoved >= this.data.gpsMinDistance || !this.originCoords) { this._updatePosition(); this.lastPosition = { longitude: this.currentCoords.longitude, latitude: this.currentCoords.latitude }; } } }.bind(this)); }, tick: function() { if (this.heading === null) { return; } this._updateRotation(); }, remove: function() { if (this._watchPositionId) { navigator.geolocation.clearWatch(this._watchPositionId); } this._watchPositionId = null; var eventName = this._getDeviceOrientationEventName(); window.removeEventListener(eventName, this._onDeviceOrientation, false); window.removeEventListener('gps-entity-place-added', this.onGpsEntityPlaceAdded); }, /** * Get device orientation event name, depends on browser implementation. * @returns {string} event name */ _getDeviceOrientationEventName: function() { if ('ondeviceorientationabsolute' in window) { var eventName = 'deviceorientationabsolute' } else if ('ondeviceorientation' in window) { var eventName = 'deviceorientation' } else { var eventName = '' console.error('Compass not supported') } return eventName }, /** * Get current user position. * * @param {function} onSuccess * @param {function} onError * @returns {Promise} */ _initWatchGPS: function(onSuccess, onError) { if (!onError) { onError = function(err) { console.warn('ERROR(' + err.code + '): ' + err.message) if (err.code === 1) { // User denied GeoLocation, let their know that alert('Please activate Geolocation and refresh the page. If it is already active, please check permissions for this website.'); return; } if (err.code === 3) { alert('Cannot retrieve GPS position. Signal is absent.'); return; } }; } if ('geolocation' in navigator === false) { onError({ code: 0, message: 'Geolocation is not supported by your browser' }); return Promise.resolve(); } // https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/watchPosition return navigator.geolocation.watchPosition(onSuccess, onError, { enableHighAccuracy: true, maximumAge: this.data.gpsTimeInterval, timeout: 27000, }); }, /** * Update user position. * * @returns {void} */ _updatePosition: function() { // don't update if accuracy is not good enough if (this.currentCoords.accuracy > this.data.positionMinAccuracy) { if (this.data.alert && !document.getElementById('alert-popup')) { var popup = document.createElement('div'); popup.innerHTML = 'GPS signal is very poor. Try move outdoor or to an area with a better signal.' popup.setAttribute('id', 'alert-popup'); document.body.appendChild(popup); } return; } var alertPopup = document.getElementById('alert-popup'); if (this.currentCoords.accuracy <= this.data.positionMinAccuracy && alertPopup) { document.body.removeChild(alertPopup); } if (!this.originCoords) { // first camera initialization // Now store originCoords as PROJECTED original lat/lon, so that // we can set the world origin to the original position in "metres" this.originCoords = this._project(this.currentCoords.latitude, this.currentCoords.longitude); this._setPosition(); var loader = document.querySelector('.arjs-loader'); if (loader) { loader.remove(); } window.dispatchEvent(new CustomEvent('gps-camera-origin-coord-set')); } else { this._setPosition(); } }, /** * Set the current position (in world coords, based on Spherical Mercator) * * @returns {void} */ _setPosition: function() { var position = this.el.getAttribute('position'); var worldCoords = this.latLonToWorld(this.currentCoords.latitude, this.currentCoords.longitude); position.x = worldCoords[0]; position.z = worldCoords[1]; // update position this.el.setAttribute('position', position); // add the sphmerc position to the event (for testing only) window.dispatchEvent(new CustomEvent('gps-camera-update-position', { detail: { position: this.currentCoords, origin: this.originCoords } })); }, /** * Returns distance in meters between camera and destination input. * * Assume we are using a metre-based projection. Not all 'metre-based' * projections give exact metres, e.g. Spherical Mercator, but it appears * close enough to be used for AR at least in middle temperate * latitudes (40 - 55). It is heavily distorted near the poles, however. * * @param {Position} dest * @param {Boolean} isPlace * * @returns {number} distance | Number.MAX_SAFE_INTEGER */ computeDistanceMeters: function(dest, isPlace) { var src = this.el.getAttribute("position"); var dx = dest.x - src.x; var dz = dest.z - src.z; var distance = Math.sqrt(dx * dx + dz * dz); // if function has been called for a place, and if it's too near and a min distance has been set, // return max distance possible - to be handled by the method caller if (isPlace && this.data.minDistance && this.data.minDistance > 0 && distance < this.data.minDistance) { return Number.MAX_SAFE_INTEGER; } return distance; }, /** * Converts latitude/longitude to OpenGL world coordinates. * * First projects lat/lon to absolute Spherical Mercator and then * calculates the world coordinates by comparing the Spherical Mercator * coordinates with the Spherical Mercator coordinates of the origin point. * * @param {Number} lat * @param {Number} lon * * @returns {array} world coordinates */ latLonToWorld: function(lat, lon) { var projected = this._project(lat, lon); // Sign of z needs to be reversed compared to projected coordinates return [projected[0] - this.originCoords[0], -(projected[1] - this.originCoords[1])]; }, /** * Converts latitude/longitude to Spherical Mercator coordinates. * Algorithm is used in several OpenStreetMap-related applications. * * @param {Number} lat * @param {Number} lon * * @returns {array} Spherical Mercator coordinates */ _project: function(lat, lon) { const HALF_EARTH = 20037508.34; // Convert the supplied coords to Spherical Mercator (EPSG:3857), also // known as 'Google Projection', using the algorithm used extensively // in various OpenStreetMap software. var y = Math.log(Math.tan((90 + lat) * Math.PI / 360.0)) / (Math.PI / 180.0); return [(lon / 180.0) * HALF_EARTH, y * HALF_EARTH / 180.0]; }, /** * Converts Spherical Mercator coordinates to latitude/longitude. * Algorithm is used in several OpenStreetMap-related applications. * * @param {Number} spherical mercator easting * @param {Number} spherical mercator northing * * @returns {object} lon/lat */ _unproject: function(e, n) { const HALF_EARTH = 20037508.34; var yp = (n / HALF_EARTH) * 180.0; return { longitude: (e / HALF_EARTH) * 180.0, latitude: 180.0 / Math.PI * (2 * Math.atan(Math.exp(yp * Math.PI / 180.0)) - Math.PI / 2) }; }, /** * Compute compass heading. * * @param {number} alpha * @param {number} beta * @param {number} gamma * * @returns {number} compass heading */ _computeCompassHeading: function(alpha, beta, gamma) { // Convert degrees to radians var alphaRad = alpha * (Math.PI / 180); var betaRad = beta * (Math.PI / 180); var gammaRad = gamma * (Math.PI / 180); // Calculate equation components var cA = Math.cos(alphaRad); var sA = Math.sin(alphaRad); var sB = Math.sin(betaRad); var cG = Math.cos(gammaRad); var sG = Math.sin(gammaRad); // Calculate A, B, C rotation components var rA = - cA * sG - sA * sB * cG; var rB = - sA * sG + cA * sB * cG; // Calculate compass heading var compassHeading = Math.atan(rA / rB); // Convert from half unit circle to whole unit circle if (rB < 0) { compassHeading += Math.PI; } else if (rA < 0) { compassHeading += 2 * Math.PI; } // Convert radians to degrees compassHeading *= 180 / Math.PI; return compassHeading; }, /** * Handler for device orientation event. * * @param {Event} event * @returns {void} */ _onDeviceOrientation: function(event) { if (event.webkitCompassHeading !== undefined) { if (event.webkitCompassAccuracy < 50) { this.heading = event.webkitCompassHeading; } else { console.warn('webkitCompassAccuracy is event.webkitCompassAccuracy'); } } else if (event.alpha !== null) { if (event.absolute === true || event.absolute === undefined) { this.heading = this._computeCompassHeading(event.alpha, event.beta, event.gamma); } else { console.warn('event.absolute === false'); } } else { console.warn('event.alpha === null'); } }, /** * Update user rotation data. * * @returns {void} */ _updateRotation: function() { var heading = 360 - this.heading; var cameraRotation = this.el.getAttribute('rotation').y; var yawRotation = THREE.Math.radToDeg(this.lookControls.yawObject.rotation.y); var offset = (heading - (cameraRotation - yawRotation)) % 360; this.lookControls.yawObject.rotation.y = THREE.Math.degToRad(offset); }, /** * Calculate haversine distance between two lat/lon pairs. * * Taken from gps-camera */ _haversineDist: function(src, dest) { var dlongitude = THREE.Math.degToRad(dest.longitude - src.longitude); var dlatitude = THREE.Math.degToRad(dest.latitude - src.latitude); var a = (Math.sin(dlatitude / 2) * Math.sin(dlatitude / 2)) + Math.cos(THREE.Math.degToRad(src.latitude)) * Math.cos(THREE.Math.degToRad(dest.latitude)) * (Math.sin(dlongitude / 2) * Math.sin(dlongitude / 2)); var angle = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); return angle * 6371000; }, _onGpsEntityPlaceAdded: function() { // if places are added after camera initialization is finished if (this.originCoords) { window.dispatchEvent(new CustomEvent('gps-camera-origin-coord-set')); } if (this.loader && this.loader.parentElement) { document.body.removeChild(this.loader) } } }); /** gps-projected-entity-place * * based on the original gps-entity-place, modified by nickw 02/04/20 * * Rather than keeping track of position by calculating the distance of * entities or the current location to the original location, this version * makes use of the "Google" Spherical Mercactor projection, aka epsg:3857. * * The original location on startup (lat/lon) is projected into Spherical * Mercator and stored. * * When 'entity-places' are added, their Spherical Mercator coords are * calculated and converted into world coordinates, relative to the original * position, using the Spherical Mercator projection calculation in * gps-projected-camera. * * Spherical Mercator units are close to, but not exactly, metres, and are * heavily distorted near the poles. Nonetheless they are a good approximation * for many areas of the world and appear not to cause unacceptable distortions * when used as the units for AR apps. */ AFRAME.registerComponent('gps-projected-entity-place', { _cameraGps: null, schema: { longitude: { type: 'number', default: 0, }, latitude: { type: 'number', default: 0, } }, remove: function() { // cleaning listeners when the entity is removed from the DOM window.removeEventListener('gps-camera-update-position', this.updatePositionListener); }, init: function() { // Used now to get the GPS camera when it's been setup this.coordSetListener = () => { if (!this._cameraGps) { var camera = document.querySelector('[gps-projected-camera]'); if (!camera.components['gps-projected-camera']) { console.error('gps-projected-camera not initialized') return; } this._cameraGps = camera.components['gps-projected-camera']; this._updatePosition(); } }; // update position needs to worry about distance but nothing else? this.updatePositionListener = (ev) => { if (!this.data || !this._cameraGps) { return; } var dstCoords = this.el.getAttribute('position'); // it's actually a 'distance place', but we don't call it with last param, because we want to retrieve distance even if it's < minDistance property // _computeDistanceMeters is now going to use the projected var distanceForMsg = this._cameraGps.computeDistanceMeters(dstCoords); this.el.setAttribute('distance', distanceForMsg); this.el.setAttribute('distanceMsg', formatDistance(distanceForMsg)); this.el.dispatchEvent(new CustomEvent('gps-entity-place-update-positon', { detail: { distance: distanceForMsg } })); var actualDistance = this._cameraGps.computeDistanceMeters(dstCoords, true); if (actualDistance === Number.MAX_SAFE_INTEGER) { this.hideForMinDistance(this.el, true); } else { this.hideForMinDistance(this.el, false); } }; // Retain as this event is fired when the GPS camera is set up window.addEventListener('gps-camera-origin-coord-set', this.coordSetListener); window.addEventListener('gps-camera-update-position', this.updatePositionListener); this._positionXDebug = 0; window.dispatchEvent(new CustomEvent('gps-entity-place-added', { detail: { component: this.el } })); }, /** * Hide entity according to minDistance property * @returns {void} */ hideForMinDistance: function(el, hideEntity) { if (hideEntity) { el.setAttribute('visible', 'false'); } else { el.setAttribute('visible', 'true'); } }, /** * Update place position * @returns {void} */ // set position to world coords using the lat/lon _updatePosition: function() { var worldPos = this._cameraGps.latLonToWorld(this.data.latitude, this.data.longitude); var position = this.el.getAttribute('position'); // update element's position in 3D world //this.el.setAttribute('position', position); this.el.setAttribute('position', { x: worldPos[0], y: position.y, z: worldPos[1] }); }, }); /** * Format distances string * * @param {String} distance */ function formatDistance(distance) { distance = distance.toFixed(0); if (distance >= 1000) { return (distance / 1000) + ' kilometers'; } return distance + ' meters'; }; AFRAME.registerSystem('arjs', { schema: { trackingMethod: { type: 'string', default: 'best', }, debugUIEnabled: { type: 'boolean', default: false, }, areaLearningButton: { type: 'boolean', default: true, }, performanceProfile: { type: 'string', default: 'default', }, labelingMode: { type: 'string', default: '', }, // new video texture mode (location based only) videoTexture: { type: 'boolean', default: false }, // old parameters debug: { type: 'boolean', default: false }, detectionMode: { type: 'string', default: '', }, matrixCodeType: { type: 'string', default: '', }, patternRatio: { type: 'number', default: -1, }, cameraParametersUrl: { type: 'string', default: '', }, maxDetectionRate: { type: 'number', default: -1 }, sourceType: { type: 'string', default: '', }, sourceUrl: { type: 'string', default: '', }, sourceWidth: { type: 'number', default: -1 }, sourceHeight: { type: 'number', default: -1 }, deviceId: { type: 'string', default: '' }, displayWidth: { type: 'number', default: -1 }, displayHeight: { type: 'number', default: -1 }, canvasWidth: { type: 'number', default: -1 }, canvasHeight: { type: 'number', default: -1 }, }, ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// init: function () { var _this = this // If videoTexture is set, skip the remainder of the setup entirely and just use the arjs-webcam-texture component if(this.data.videoTexture === true && this.data.sourceType === 'webcam') { var webcamEntity = document.createElement("a-entity"); webcamEntity.setAttribute("arjs-webcam-texture", true); this.el.sceneEl.appendChild(webcamEntity); return; } ////////////////////////////////////////////////////////////////////////////// // setup arProfile ////////////////////////////////////////////////////////////////////////////// var arProfile = this._arProfile = new ARjs.Profile() .trackingMethod(this.data.trackingMethod) .performance(this.data.performanceProfile) .defaultMarker() ////////////////////////////////////////////////////////////////////////////// // honor this.data and setup arProfile with it ////////////////////////////////////////////////////////////////////////////// // honor this.data and push what has been modified into arProfile if (this.data.debug !== false) arProfile.contextParameters.debug = this.data.debug if (this.data.detectionMode !== '') arProfile.contextParameters.detectionMode = this.data.detectionMode if (this.data.matrixCodeType !== '') arProfile.contextParameters.matrixCodeType = this.data.matrixCodeType if (this.data.patternRatio !== -1) arProfile.contextParameters.patternRatio = this.data.patternRatio if (this.data.labelingMode !== '') arProfile.contextParameters.labelingMode = this.data.labelingMode if (this.data.cameraParametersUrl !== '') arProfile.contextParameters.cameraParametersUrl = this.data.cameraParametersUrl if (this.data.maxDetectionRate !== -1) arProfile.contextParameters.maxDetectionRate = this.data.maxDetectionRate if (this.data.canvasWidth !== -1) arProfile.contextParameters.canvasWidth = this.data.canvasWidth if (this.data.canvasHeight !== -1) arProfile.contextParameters.canvasHeight = this.data.canvasHeight if (this.data.sourceType !== '') arProfile.sourceParameters.sourceType = this.data.sourceType if (this.data.sourceUrl !== '') arProfile.sourceParameters.sourceUrl = this.data.sourceUrl if (this.data.sourceWidth !== -1) arProfile.sourceParameters.sourceWidth = this.data.sourceWidth if (this.data.sourceHeight !== -1) arProfile.sourceParameters.sourceHeight = this.data.sourceHeight if (this.data.deviceId !== '') arProfile.sourceParameters.deviceId = this.data.deviceId if (this.data.displayWidth !== -1) arProfile.sourceParameters.displayWidth = this.data.displayWidth if (this.data.displayHeight !== -1) arProfile.sourceParameters.displayHeight = this.data.displayHeight arProfile.checkIfValid() ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// this._arSession = null _this.isReady = false _this.needsOverride = true // wait until the renderer is isReady this.el.sceneEl.addEventListener('renderstart', function () { var scene = _this.el.sceneEl.object3D var camera = _this.el.sceneEl.camera var renderer = _this.el.sceneEl.renderer ////////////////////////////////////////////////////////////////////////////// // build ARjs.Session ////////////////////////////////////////////////////////////////////////////// var arSession = _this._arSession = new ARjs.Session({ scene: scene, renderer: renderer, camera: camera, sourceParameters: arProfile.sourceParameters, contextParameters: arProfile.contextParameters }) ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// _this.isReady = true ////////////////////////////////////////////////////////////////////////////// // awful resize trick ////////////////////////////////////////////////////////////////////////////// // KLUDGE window.addEventListener('resize', onResize) function onResize() { var arSource = _this._arSession.arSource // ugly kludge to get resize on aframe... not even sure it works if (arProfile.contextParameters.trackingBackend !== 'tango') { arSource.copyElementSizeTo(document.body) } // fixing a-frame css var buttonElement = document.querySelector('.a-enter-vr') if (buttonElement) { buttonElement.style.position = 'fixed' } } ////////////////////////////////////////////////////////////////////////////// // honor .debugUIEnabled ////////////////////////////////////////////////////////////////////////////// if (_this.data.debugUIEnabled) initDebugUI() function initDebugUI() { // get or create containerElement var containerElement = document.querySelector('#arjsDebugUIContainer') if (containerElement === null) { containerElement = document.createElement('div') containerElement.id = 'arjsDebugUIContainer' containerElement.setAttribute('style', 'position: fixed; bottom: 10px; width:100%; text-align: center; z-index: 1;color: grey;') document.body.appendChild(containerElement) } // create sessionDebugUI var sessionDebugUI = new ARjs.SessionDebugUI(arSession) containerElement.appendChild(sessionDebugUI.domElement) } }) ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// // TODO this is crappy - code an exponential backoff - max 1 seconds // KLUDGE: kludge to write a 'resize' event var startedAt = Date.now() var timerId = setInterval(function () { if (Date.now() - startedAt > 10000 * 1000) { clearInterval(timerId) return } // onResize() window.dispatchEvent(new Event('resize')); }, 1000 / 30) }, tick: function () { // skip it if not yet isInitialised if (this.isReady === false || this.data.videoTexture === true) return // update arSession this._arSession.update() // copy projection matrix to camera this._arSession.onResize() }, })

>>0&((t|0)!=(-1|0)&(p|0)!=(-1|0))^1)):0){h=s?r:b;g=t;q=145}if((q|0)==145){b=(c[14399]|0)+h|0;c[14399]=b;if(b>>>0>(c[14400]|0)>>>0)c[14400]=b;j=c[14297]|0;f:do if(j){b=57612;while(1){a=c[b>>2]|0;d=c[b+4>>2]|0;if((g|0)==(a+d|0)){q=154;break}e=c[b+8>>2]|0;if(!e)break;else b=e}if(((q|0)==154?(u=b+4|0,(c[b+12>>2]&8|0)==0):0)?g>>>0>j>>>0&a>>>0<=j>>>0:0){c[u>>2]=d+h;v=(c[14294]|0)+h|0;t=j+8|0;t=(t&7|0)==0?0:0-t&7;u=j+t|0;t=v-t|0;c[14297]=u;c[14294]=t;c[u+4>>2]=t|1;c[j+v+4>>2]=40;c[14298]=c[14413];break}if(g>>>0<(c[14295]|0)>>>0)c[14295]=g;d=g+h|0;b=57612;while(1){if((c[b>>2]|0)==(d|0)){q=162;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((q|0)==162?(c[b+12>>2]&8|0)==0:0){c[b>>2]=g;l=b+4|0;c[l>>2]=(c[l>>2]|0)+h;l=g+8|0;l=g+((l&7|0)==0?0:0-l&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;k=l+m|0;i=b-l-m|0;c[l+4>>2]=m|3;g:do if((j|0)==(b|0)){v=(c[14294]|0)+i|0;c[14294]=v;c[14297]=k;c[k+4>>2]=v|1}else{if((c[14296]|0)==(b|0)){v=(c[14293]|0)+i|0;c[14293]=v;c[14296]=k;c[k+4>>2]=v|1;c[k+v>>2]=v;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;e=a>>>3;h:do if(a>>>0<256){a=c[b+8>>2]|0;d=c[b+12>>2]|0;if((d|0)==(a|0)){c[14291]=c[14291]&~(1<>2]=d;c[d+8>>2]=a;break}}else{g=c[b+24>>2]|0;a=c[b+12>>2]|0;do if((a|0)==(b|0)){d=b+16|0;e=d+4|0;a=c[e>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{v=c[b+8>>2]|0;c[v+12>>2]=a;c[a+8>>2]=v}while(0);if(!g)break;d=c[b+28>>2]|0;e=57468+(d<<2)|0;do if((c[e>>2]|0)!=(b|0)){v=g+16|0;c[((c[v>>2]|0)==(b|0)?v:g+20|0)>>2]=a;if(!a)break h}else{c[e>>2]=a;if(a|0)break;c[14292]=c[14292]&~(1<>2]=g;d=b+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(!d)break;c[a+20>>2]=d;c[d+24>>2]=a}while(0);b=b+h|0;f=h+i|0}else f=i;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[k+4>>2]=f|1;c[k+f>>2]=f;b=f>>>3;if(f>>>0<256){d=57204+(b<<1<<2)|0;a=c[14291]|0;b=1<>2]|0}c[a>>2]=k;c[b+12>>2]=k;c[k+8>>2]=b;c[k+12>>2]=d;break}b=f>>>8;do if(!b)e=0;else{if(f>>>0>16777215){e=31;break}u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=f>>>(e+7|0)&1|e<<1}while(0);b=57468+(e<<2)|0;c[k+28>>2]=e;a=k+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[14292]|0;d=1<>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break}b=c[b>>2]|0;i:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break i}else{e=e<<1;b=a}}c[d>>2]=k;c[k+24>>2]=b;c[k+12>>2]=k;c[k+8>>2]=k;break g}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=k;c[u>>2]=k;c[k+8>>2]=v;c[k+12>>2]=b;c[k+24>>2]=0}while(0);v=l+8|0;zb=w;return v|0}b=57612;while(1){a=c[b>>2]|0;if(a>>>0<=j>>>0?(v=a+(c[b+4>>2]|0)|0,v>>>0>j>>>0):0)break;b=c[b+8>>2]|0}f=v+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=j+16|0;a=a>>>0>>0?j:a;b=a+8|0;d=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=d-t|0;c[14297]=u;c[14294]=t;c[u+4>>2]=t|1;c[g+d+4>>2]=40;c[14298]=c[14413];d=a+4|0;c[d>>2]=27;c[b>>2]=c[14403];c[b+4>>2]=c[14404];c[b+8>>2]=c[14405];c[b+12>>2]=c[14406];c[14403]=g;c[14404]=h;c[14406]=0;c[14405]=b;b=a+24|0;do{u=b;b=b+4|0;c[b>>2]=7}while((u+8|0)>>>0>>0);if((a|0)!=(j|0)){g=a-j|0;c[d>>2]=c[d>>2]&-2;c[j+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=57204+(b<<1<<2)|0;a=c[14291]|0;b=1<>2]|0}c[a>>2]=j;c[b+12>>2]=j;c[j+8>>2]=b;c[j+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)e=31;else{u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;e=14-(t|u|e)+(v<>>15)|0;e=g>>>(e+7|0)&1|e<<1}else e=0;d=57468+(e<<2)|0;c[j+28>>2]=e;c[j+20>>2]=0;c[f>>2]=0;b=c[14292]|0;a=1<>2]=j;c[j+24>>2]=d;c[j+12>>2]=j;c[j+8>>2]=j;break}b=c[d>>2]|0;j:do if((c[b+4>>2]&-8|0)!=(g|0)){e=g<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(g|0)){b=a;break j}else{e=e<<1;b=a}}c[d>>2]=j;c[j+24>>2]=b;c[j+12>>2]=j;c[j+8>>2]=j;break f}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=j;c[u>>2]=j;c[j+8>>2]=v;c[j+12>>2]=b;c[j+24>>2]=0}}else{v=c[14295]|0;if((v|0)==0|g>>>0>>0)c[14295]=g;c[14403]=g;c[14404]=h;c[14406]=0;c[14300]=c[14409];c[14299]=-1;c[14304]=57204;c[14303]=57204;c[14306]=57212;c[14305]=57212;c[14308]=57220;c[14307]=57220;c[14310]=57228;c[14309]=57228;c[14312]=57236;c[14311]=57236;c[14314]=57244;c[14313]=57244;c[14316]=57252;c[14315]=57252;c[14318]=57260;c[14317]=57260;c[14320]=57268;c[14319]=57268;c[14322]=57276;c[14321]=57276;c[14324]=57284;c[14323]=57284;c[14326]=57292;c[14325]=57292;c[14328]=57300;c[14327]=57300;c[14330]=57308;c[14329]=57308;c[14332]=57316;c[14331]=57316;c[14334]=57324;c[14333]=57324;c[14336]=57332;c[14335]=57332;c[14338]=57340;c[14337]=57340;c[14340]=57348;c[14339]=57348;c[14342]=57356;c[14341]=57356;c[14344]=57364;c[14343]=57364;c[14346]=57372;c[14345]=57372;c[14348]=57380;c[14347]=57380;c[14350]=57388;c[14349]=57388;c[14352]=57396;c[14351]=57396;c[14354]=57404;c[14353]=57404;c[14356]=57412;c[14355]=57412;c[14358]=57420;c[14357]=57420;c[14360]=57428;c[14359]=57428;c[14362]=57436;c[14361]=57436;c[14364]=57444;c[14363]=57444;c[14366]=57452;c[14365]=57452;v=h+-40|0;t=g+8|0;t=(t&7|0)==0?0:0-t&7;u=g+t|0;t=v-t|0;c[14297]=u;c[14294]=t;c[u+4>>2]=t|1;c[g+v+4>>2]=40;c[14298]=c[14413]}while(0);b=c[14294]|0;if(b>>>0>m>>>0){t=b-m|0;c[14294]=t;v=c[14297]|0;u=v+m|0;c[14297]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;zb=w;return v|0}}v=ox()|0;c[v>>2]=48;v=0;zb=w;return v|0}function GO(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)return;d=a+-8|0;f=c[14295]|0;a=c[a+-4>>2]|0;b=a&-8;j=d+b|0;do if(!(a&1)){e=c[d>>2]|0;if(!(a&3))return;h=d+(0-e)|0;g=e+b|0;if(h>>>0>>0)return;if((c[14296]|0)==(h|0)){a=j+4|0;b=c[a>>2]|0;if((b&3|0)!=3){i=h;b=g;break}c[14293]=g;c[a>>2]=b&-2;c[h+4>>2]=g|1;c[h+g>>2]=g;return}d=e>>>3;if(e>>>0<256){a=c[h+8>>2]|0;b=c[h+12>>2]|0;if((b|0)==(a|0)){c[14291]=c[14291]&~(1<>2]=b;c[b+8>>2]=a;i=h;b=g;break}}f=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){b=h+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){a=0;break}}else b=d;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0}else{i=c[h+8>>2]|0;c[i+12>>2]=a;c[a+8>>2]=i}while(0);if(f){b=c[h+28>>2]|0;d=57468+(b<<2)|0;if((c[d>>2]|0)==(h|0)){c[d>>2]=a;if(!a){c[14292]=c[14292]&~(1<>2]|0)==(h|0)?i:f+20|0)>>2]=a;if(!a){i=h;b=g;break}}c[a+24>>2]=f;b=h+16|0;d=c[b>>2]|0;if(d|0){c[a+16>>2]=d;c[d+24>>2]=a}b=c[b+4>>2]|0;if(b){c[a+20>>2]=b;c[b+24>>2]=a;i=h;b=g}else{i=h;b=g}}else{i=h;b=g}}else{i=d;h=d}while(0);if(h>>>0>=j>>>0)return;a=j+4|0;e=c[a>>2]|0;if(!(e&1))return;if(!(e&2)){if((c[14297]|0)==(j|0)){j=(c[14294]|0)+b|0;c[14294]=j;c[14297]=i;c[i+4>>2]=j|1;if((i|0)!=(c[14296]|0))return;c[14296]=0;c[14293]=0;return}if((c[14296]|0)==(j|0)){j=(c[14293]|0)+b|0;c[14293]=j;c[14296]=h;c[i+4>>2]=j|1;c[h+j>>2]=j;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){b=c[j+8>>2]|0;a=c[j+12>>2]|0;if((a|0)==(b|0)){c[14291]=c[14291]&~(1<>2]=a;c[a+8>>2]=b;break}}else{g=c[j+24>>2]|0;a=c[j+12>>2]|0;do if((a|0)==(j|0)){b=j+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){d=0;break}}else b=d;while(1){e=a+20|0;d=c[e>>2]|0;if(!d){e=a+16|0;d=c[e>>2]|0;if(!d)break;else{a=d;b=e}}else{a=d;b=e}}c[b>>2]=0;d=a}else{d=c[j+8>>2]|0;c[d+12>>2]=a;c[a+8>>2]=d;d=a}while(0);if(g|0){a=c[j+28>>2]|0;b=57468+(a<<2)|0;if((c[b>>2]|0)==(j|0)){c[b>>2]=d;if(!d){c[14292]=c[14292]&~(1<>2]|0)==(j|0)?e:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;a=j+16|0;b=c[a>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}a=c[a+4>>2]|0;if(a|0){c[d+20>>2]=a;c[a+24>>2]=d}}}while(0);c[i+4>>2]=f|1;c[h+f>>2]=f;if((i|0)==(c[14296]|0)){c[14293]=f;return}}else{c[a>>2]=e&-2;c[i+4>>2]=b|1;c[h+b>>2]=b;f=b}a=f>>>3;if(f>>>0<256){d=57204+(a<<1<<2)|0;b=c[14291]|0;a=1<>2]|0}c[b>>2]=i;c[a+12>>2]=i;c[i+8>>2]=a;c[i+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)e=31;else{h=(a+1048320|0)>>>16&8;j=a<>>16&4;j=j<>>16&2;e=14-(g|h|e)+(j<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;a=57468+(e<<2)|0;c[i+28>>2]=e;c[i+20>>2]=0;c[i+16>>2]=0;b=c[14292]|0;d=1<>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i}else{a=c[a>>2]|0;b:do if((c[a+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=a+16+(e>>>31<<2)|0;b=c[d>>2]|0;if(!b)break;if((c[b+4>>2]&-8|0)==(f|0)){a=b;break b}else{e=e<<1;a=b}}c[d>>2]=i;c[i+24>>2]=a;c[i+12>>2]=i;c[i+8>>2]=i;break a}while(0);h=a+8|0;j=c[h>>2]|0;c[j+12>>2]=i;c[h>>2]=i;c[i+8>>2]=j;c[i+12>>2]=a;c[i+24>>2]=0}while(0);j=(c[14299]|0)+-1|0;c[14299]=j;if(j|0)return;a=57620;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[14299]=-1;return}function HO(a,b){a=a|0;b=b|0;var d=0;if(a){d=B(b,a)|0;if((b|a)>>>0>65535)d=((d>>>0)/(a>>>0)|0|0)==(b|0)?d:-1}else d=0;a=FO(d)|0;if(!a)return a|0;if(!(c[a+-4>>2]&3))return a|0;aP(a|0,0,d|0)|0;return a|0}function IO(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a){b=FO(b)|0;return b|0}if(b>>>0>4294967231){b=ox()|0;c[b>>2]=48;b=0;return b|0}d=JO(a+-8|0,b>>>0<11?16:b+11&-8)|0;if(d|0){b=d+8|0;return b|0}d=FO(b)|0;if(!d){b=0;return b|0}e=c[a+-4>>2]|0;e=(e&-8)-((e&3|0)==0?8:4)|0;_O(d|0,a|0,(e>>>0>>0?e:b)|0)|0;GO(a);b=d;return b|0}function JO(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;l=a+4|0;m=c[l>>2]|0;d=m&-8;i=a+d|0;if(!(m&3)){if(b>>>0<256){a=0;return a|0}if(d>>>0>=(b+4|0)>>>0?(d-b|0)>>>0<=c[14411]<<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;k=a+b|0;c[l>>2]=m&1|b|2;c[k+4>>2]=d|3;m=i+4|0;c[m>>2]=c[m>>2]|1;KO(k,d);return a|0}if((c[14297]|0)==(i|0)){k=(c[14294]|0)+d|0;d=k-b|0;e=a+b|0;if(k>>>0<=b>>>0){a=0;return a|0}c[l>>2]=m&1|b|2;c[e+4>>2]=d|1;c[14297]=e;c[14294]=d;return a|0}if((c[14296]|0)==(i|0)){e=(c[14293]|0)+d|0;if(e>>>0>>0){a=0;return a|0}d=e-b|0;if(d>>>0>15){k=a+b|0;e=a+e|0;c[l>>2]=m&1|b|2;c[k+4>>2]=d|1;c[e>>2]=d;e=e+4|0;c[e>>2]=c[e>>2]&-2;e=k}else{c[l>>2]=m&1|e|2;e=a+e+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[14293]=d;c[14296]=e;return a|0}e=c[i+4>>2]|0;if(e&2|0){a=0;return a|0}j=(e&-8)+d|0;if(j>>>0>>0){a=0;return a|0}k=j-b|0;f=e>>>3;do if(e>>>0<256){e=c[i+8>>2]|0;d=c[i+12>>2]|0;if((d|0)==(e|0)){c[14291]=c[14291]&~(1<>2]=d;c[d+8>>2]=e;break}}else{h=c[i+24>>2]|0;d=c[i+12>>2]|0;do if((d|0)==(i|0)){e=i+16|0;f=e+4|0;d=c[f>>2]|0;if(!d){d=c[e>>2]|0;if(!d){f=0;break}}else e=f;while(1){g=d+20|0;f=c[g>>2]|0;if(!f){g=d+16|0;f=c[g>>2]|0;if(!f)break;else{d=f;e=g}}else{d=f;e=g}}c[e>>2]=0;f=d}else{f=c[i+8>>2]|0;c[f+12>>2]=d;c[d+8>>2]=f;f=d}while(0);if(h|0){d=c[i+28>>2]|0;e=57468+(d<<2)|0;if((c[e>>2]|0)==(i|0)){c[e>>2]=f;if(!f){c[14292]=c[14292]&~(1<>2]|0)==(i|0)?g:h+20|0)>>2]=f;if(!f)break}c[f+24>>2]=h;d=i+16|0;e=c[d>>2]|0;if(e|0){c[f+16>>2]=e;c[e+24>>2]=f}d=c[d+4>>2]|0;if(d|0){c[f+20>>2]=d;c[d+24>>2]=f}}}while(0);if(k>>>0<16){c[l>>2]=m&1|j|2;m=a+j+4|0;c[m>>2]=c[m>>2]|1;return a|0}else{i=a+b|0;c[l>>2]=m&1|b|2;c[i+4>>2]=k|3;m=a+j+4|0;c[m>>2]=c[m>>2]|1;KO(i,k);return a|0}return 0}function KO(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=a+b|0;d=c[a+4>>2]|0;do if(!(d&1)){f=c[a>>2]|0;if(!(d&3))return;h=a+(0-f)|0;b=f+b|0;if((c[14296]|0)==(h|0)){a=i+4|0;d=c[a>>2]|0;if((d&3|0)!=3)break;c[14293]=b;c[a>>2]=d&-2;c[h+4>>2]=b|1;c[i>>2]=b;return}e=f>>>3;if(f>>>0<256){a=c[h+8>>2]|0;d=c[h+12>>2]|0;if((d|0)==(a|0)){c[14291]=c[14291]&~(1<>2]=d;c[d+8>>2]=a;break}}g=c[h+24>>2]|0;a=c[h+12>>2]|0;do if((a|0)==(h|0)){d=h+16|0;e=d+4|0;a=c[e>>2]|0;if(!a){a=c[d>>2]|0;if(!a){a=0;break}}else d=e;while(1){f=a+20|0;e=c[f>>2]|0;if(!e){f=a+16|0;e=c[f>>2]|0;if(!e)break;else{a=e;d=f}}else{a=e;d=f}}c[d>>2]=0}else{f=c[h+8>>2]|0;c[f+12>>2]=a;c[a+8>>2]=f}while(0);if(g){d=c[h+28>>2]|0;e=57468+(d<<2)|0;if((c[e>>2]|0)==(h|0)){c[e>>2]=a;if(!a){c[14292]=c[14292]&~(1<>2]|0)==(h|0)?f:g+20|0)>>2]=a;if(!a)break}c[a+24>>2]=g;d=h+16|0;e=c[d>>2]|0;if(e|0){c[a+16>>2]=e;c[e+24>>2]=a}d=c[d+4>>2]|0;if(d){c[a+20>>2]=d;c[d+24>>2]=a}}}else h=a;while(0);a=i+4|0;e=c[a>>2]|0;if(!(e&2)){if((c[14297]|0)==(i|0)){i=(c[14294]|0)+b|0;c[14294]=i;c[14297]=h;c[h+4>>2]=i|1;if((h|0)!=(c[14296]|0))return;c[14296]=0;c[14293]=0;return}if((c[14296]|0)==(i|0)){i=(c[14293]|0)+b|0;c[14293]=i;c[14296]=h;c[h+4>>2]=i|1;c[h+i>>2]=i;return}f=(e&-8)+b|0;d=e>>>3;do if(e>>>0<256){a=c[i+8>>2]|0;b=c[i+12>>2]|0;if((b|0)==(a|0)){c[14291]=c[14291]&~(1<>2]=b;c[b+8>>2]=a;break}}else{g=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+16|0;d=a+4|0;b=c[d>>2]|0;if(!b){b=c[a>>2]|0;if(!b){d=0;break}}else a=d;while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[i+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);if(g|0){b=c[i+28>>2]|0;a=57468+(b<<2)|0;if((c[a>>2]|0)==(i|0)){c[a>>2]=d;if(!d){c[14292]=c[14292]&~(1<>2]|0)==(i|0)?e:g+20|0)>>2]=d;if(!d)break}c[d+24>>2]=g;b=i+16|0;a=c[b>>2]|0;if(a|0){c[d+16>>2]=a;c[a+24>>2]=d}b=c[b+4>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}}while(0);c[h+4>>2]=f|1;c[h+f>>2]=f;if((h|0)==(c[14296]|0)){c[14293]=f;return}}else{c[a>>2]=e&-2;c[h+4>>2]=b|1;c[h+b>>2]=b;f=b}b=f>>>3;if(f>>>0<256){d=57204+(b<<1<<2)|0;a=c[14291]|0;b=1<>2]|0}c[a>>2]=h;c[b+12>>2]=h;c[h+8>>2]=b;c[h+12>>2]=d;return}b=f>>>8;if(b)if(f>>>0>16777215)e=31;else{g=(b+1048320|0)>>>16&8;i=b<>>16&4;i=i<>>16&2;e=14-(d|g|e)+(i<>>15)|0;e=f>>>(e+7|0)&1|e<<1}else e=0;b=57468+(e<<2)|0;c[h+28>>2]=e;c[h+20>>2]=0;c[h+16>>2]=0;a=c[14292]|0;d=1<>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;return}b=c[b>>2]|0;a:do if((c[b+4>>2]&-8|0)!=(f|0)){e=f<<((e|0)==31?0:25-(e>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(f|0)){b=a;break a}else{e=e<<1;b=a}}c[d>>2]=h;c[h+24>>2]=b;c[h+12>>2]=h;c[h+8>>2]=h;return}while(0);g=b+8|0;i=c[g>>2]|0;c[i+12>>2]=h;c[g>>2]=h;c[h+8>>2]=i;c[h+12>>2]=b;c[h+24>>2]=0;return}function LO(a){a=a|0;var b=0,d=0;b=VO()|0;d=c[b>>2]|0;a=d+a|0;if((a|0)<0){d=ox()|0;c[d>>2]=48;d=-1;return d|0}if(a>>>0>(Ba()|0)>>>0?(Da(a|0)|0)==0:0){d=ox()|0;c[d>>2]=48;d=-1;return d|0}c[b>>2]=a;return d|0}function MO(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=B(e,f)|0;d=a>>>16;a=(c>>>16)+(B(e,d)|0)|0;e=b>>>16;b=B(e,f)|0;return (E((a>>>16)+(B(e,d)|0)+(((a&65535)+b|0)>>>16)|0),a+b<<16|c&65535|0)|0}function NO(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=MO(e,f)|0;a=F()|0;return (E((B(b,f)|0)+(B(d,e)|0)+a|a&0|0),c|0|0)|0}function OO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (E(b+d+(c>>>0>>0|0)>>>0|0),c|0)|0}function PO(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 (E(d|0),a-c>>>0|0)|0}function QO(a){a=a|0;return (a?31-(C(a^a-1)|0)|0:32)|0}function RO(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 (E(n|0),f)|0}else{if(!g){n=0;f=0;return (E(n|0),f)|0}c[f>>2]=a|0;c[f+4>>2]=b&0;n=0;f=0;return (E(n|0),f)|0}}g=(i|0)==0;do if(h){if(!g){g=(C(i|0)|0)-(C(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 (E(n|0),f)|0}g=h-1|0;if(g&h|0){i=(C(h|0)|0)+33-(C(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 (E(o|0),p)|0}else{p=QO(h|0)|0;o=k>>>(p>>>0)|0;p=k<<32-p|l>>>(p>>>0)|0;return (E(o|0),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 (E(o|0),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 (E(o|0),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>>>((QO(i|0)|0)>>>0);return (E(o|0),p)|0}g=(C(i|0)|0)-(C(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 (E(o|0),p)|0}while(0);if(!h){k=i;j=0;i=0}else{m=d|0|0;l=n|e&0;k=OO(m|0,l|0,-1,-1)|0;d=F()|0;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;PO(k|0,d|0,e|0,n|0)|0;p=F()|0;o=p>>31|((p|0)<0?-1:0)<<1;i=o&1;a=PO(e|0,n|0,o&m|0,(((p|0)<0?-1:0)>>31|((p|0)<0?-1:0)<<1)&l|0)|0;b=F()|0;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 (E(o|0),p)|0}function SO(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return RO(a,b,c,d,0)|0}function TO(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E(b>>>c|0);return a>>>c|(b&(1<>>c-32|0}function UO(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){E(b<>>32-c|0);return a<>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function XO(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;k=k+1|0;c[a>>2]=k;while((f|0)<(e|0)){if(!(c[d+(f<<3)>>2]|0)){c[d+(f<<3)>>2]=k;c[d+((f<<3)+4)>>2]=b;c[d+((f<<3)+8)>>2]=0;E(e|0);return d|0}f=f+1|0}e=e*2|0;d=IO(d|0,8*(e+1|0)|0)|0;d=XO(a|0,b|0,d|0,e|0)|0;E(e|0);return d|0}function YO(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;while((f|0)<(d|0)){e=c[b+(f<<3)>>2]|0;if(!e)break;if((e|0)==(a|0))return c[b+((f<<3)+4)>>2]|0;f=f+1|0}return 0}function ZO(a,b){a=a|0;b=b|0;if(!i){i=a;j=b}}function _O(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192){Ca(b|0,d|0,e|0)|0;return b|0}h=b|0;g=b+e|0;if((b&3)==(d&3)){while(b&3){if(!e)return h|0;a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0;e=e-1|0}e=g&-4|0;f=e-64|0;while((b|0)<=(f|0)){c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2];c[b+12>>2]=c[d+12>>2];c[b+16>>2]=c[d+16>>2];c[b+20>>2]=c[d+20>>2];c[b+24>>2]=c[d+24>>2];c[b+28>>2]=c[d+28>>2];c[b+32>>2]=c[d+32>>2];c[b+36>>2]=c[d+36>>2];c[b+40>>2]=c[d+40>>2];c[b+44>>2]=c[d+44>>2];c[b+48>>2]=c[d+48>>2];c[b+52>>2]=c[d+52>>2];c[b+56>>2]=c[d+56>>2];c[b+60>>2]=c[d+60>>2];b=b+64|0;d=d+64|0}while((b|0)<(e|0)){c[b>>2]=c[d>>2];b=b+4|0;d=d+4|0}}else{e=g-4|0;while((b|0)<(e|0)){a[b>>0]=a[d>>0]|0;a[b+1>>0]=a[d+1>>0]|0;a[b+2>>0]=a[d+2>>0]|0;a[b+3>>0]=a[d+3>>0]|0;b=b+4|0;d=d+4|0}}while((b|0)<(g|0)){a[b>>0]=a[d>>0]|0;b=b+1|0;d=d+1|0}return h|0}function $O(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 _O(b,c,d)|0;return b|0}function aP(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;h=b+e|0;d=d&255;if((e|0)>=67){while(b&3){a[b>>0]=d;b=b+1|0}f=h&-4|0;i=d|d<<8|d<<16|d<<24;g=f-64|0;while((b|0)<=(g|0)){c[b>>2]=i;c[b+4>>2]=i;c[b+8>>2]=i;c[b+12>>2]=i;c[b+16>>2]=i;c[b+20>>2]=i;c[b+24>>2]=i;c[b+28>>2]=i;c[b+32>>2]=i;c[b+36>>2]=i;c[b+40>>2]=i;c[b+44>>2]=i;c[b+48>>2]=i;c[b+52>>2]=i;c[b+56>>2]=i;c[b+60>>2]=i;b=b+64|0}while((b|0)<(f|0)){c[b>>2]=i;b=b+4|0}}while((b|0)<(h|0)){a[b>>0]=d;b=b+1|0}return h-e|0}function bP(a){a=+a;return a>=0.0?+s(a+.5):+A(a-.5)}function cP(a,b){a=a|0;b=b|0;return +Db[a&3](b|0)}function dP(a,b,c){a=a|0;b=b|0;c=c|0;return +Eb[a&1](b|0,c|0)}function eP(a){a=a|0;return Fb[a&1]()|0}function fP(a,b){a=a|0;b=b|0;return Gb[a&127](b|0)|0}function gP(a,b,c,d,e,f,g){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;f=f|0;g=g|0;return Hb[a&1](b|0,+c,d|0,e|0,f|0,g|0)|0}function hP(a,b,c){a=a|0;b=b|0;c=c|0;return Ib[a&63](b|0,c|0)|0}function iP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Jb[a&63](b|0,c|0,d|0)|0}function jP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Kb[a&15](b|0,c|0,d|0,e|0)|0}function kP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;return Lb[a&7](b|0,c|0,d|0,e|0,+f)|0}function lP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;return Mb[a&31](b|0,c|0,d|0,e|0,f|0)|0}function mP(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;return Nb[a&3](b|0,c|0,d|0,e|0,f|0,+g)|0}function nP(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;return Ob[a&63](b|0,c|0,d|0,e|0,f|0,g|0)|0}function oP(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&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)|0}function pP(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;return Qb[a&15](b|0,c|0,d|0,e|0,f|0,g|0,h|0,i|0)|0}function qP(a){a=a|0;Rb[a&1]()}function rP(a,b){a=a|0;b=b|0;Sb[a&255](b|0)}function sP(a,b,c){a=a|0;b=b|0;c=+c;Tb[a&3](b|0,+c)}function tP(a,b,c){a=a|0;b=b|0;c=c|0;Ub[a&63](b|0,c|0)}function uP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;Vb[a&3](b|0,c|0,+d)}function vP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Wb[a&3](b|0,c|0,d|0)}function wP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Xb[a&31](b|0,c|0,d|0,e|0)}function xP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Yb[a&63](b|0,c|0,d|0,e|0,f|0)}function yP(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;Zb[a&7](b|0,c|0,d|0,e|0,f|0,g|0)}function zP(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;_b[a&7](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function AP(a){a=a|0;D(0);return 0.0}function BP(a,b){a=a|0;b=b|0;D(1);return 0.0}function CP(){D(2);return 0}function DP(a){a=a|0;D(3);return 0}function EP(a,b,c,d,e,f){a=a|0;b=+b;c=c|0;d=d|0;e=e|0;f=f|0;D(4);return 0}function FP(a,b){a=a|0;b=b|0;D(5);return 0}function GP(a,b,c){a=a|0;b=b|0;c=c|0;D(6);return 0}function HP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;D(7);return 0}function IP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;D(8);return 0}function JP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;D(9);return 0}function KP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;D(10);return 0}function LP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;D(11);return 0}function MP(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;D(12);return 0}function NP(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;D(13);return 0}function OP(){D(14)}function PP(a){a=a|0;D(15)}function QP(a,b){a=a|0;b=+b;D(16)}function RP(a,b){a=a|0;b=b|0;D(17)}function SP(a,b,c){a=a|0;b=b|0;c=+c;D(18)}function TP(a,b,c){a=a|0;b=b|0;c=c|0;D(19)}function UP(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;D(20)}function VP(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;D(21)}function WP(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;D(22)}function XP(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;D(23)} // EMSCRIPTEN_END_FUNCS var Db=[AP,pr,sr,Cr];var Eb=[BP,ss];var Fb=[CP,lr];var Gb=[DP,pj,kx,rx,_A,ND,OD,QD,RD,aE,bE,dE,eE,aF,gF,lF,mF,rF,sF,NH,UH,VH,WH,XH,YH,ZH,_H,vI,CI,DI,EI,FI,GI,HI,II,qJ,rJ,wJ,BJ,CJ,HJ,MJ,NJ,SJ,XJ,YJ,bK,ZK,_K,aL,pL,qL,sL,XL,YL,cM,dM,iL,jL,lL,yL,zL,BL,ex,bu,FO,dx,Kq,Mq,Tq,Uq,ar,br,cr,hr,ir,vr,xr,zr,Er,Gr,Ir,Ds,Pt,Wt,Xt,Yt,Zt,zu,Bu,Yw,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP,DP];var Hb=[EP,Lx];var Ib=[FP,$l,iq,pq,SD,UD,fE,hE,cF,iF,nF,tF,KL,ML,OL,nM,pM,rM,Le,bx,Nq,Pq,Qq,Rq,Xq,_q,$q,er,fr,gr,nt,Os,Jt,Rt,Au,Cu,Du,Hu,Iu,Ju,Ku,Mu,Nu,Su,Tu,Uu,Vu,Wu,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP,FP];var Jb=[GP,lx,qx,fy,FA,fB,KD,PD,TD,ZD,cE,gE,bF,hF,AF,HF,NK,SK,LL,NL,QL,jM,oM,qM,tM,zw,Iq,Wq,Yq,Zq,dr,ht,Ys,Ew,Fw,Ez,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP,GP];var Kb=[HP,mx,sx,PL,kM,lM,mM,sM,wt,Gw,Hw,HP,HP,HP,HP,HP];var Lb=[IP,oH,pH,FH,GH,IP,IP,IP];var Mb=[JP,yF,FF,jH,kH,mH,qH,AH,BH,DH,HH,YK,$K,oL,rL,RL,uM,hL,kL,xL,AL,Lw,Mw,JP,JP,JP,JP,JP,JP,JP,JP,JP];var Nb=[KP,BK,HK,KP];var Ob=[LP,MF,NF,OF,PF,QF,RF,SF,TF,UF,VF,WF,IG,JG,KG,LG,MG,NG,OG,PG,QG,RG,SG,lH,nH,CH,EH,OH,PH,QH,RH,SH,wI,xI,yI,zI,AI,CK,IK,Iw,Jw,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP,LP];var Pb=[MP,eJ,kJ,gK,hK,rK,sK,MP];var Qb=[NP,TH,BI,WK,XK,mL,nL,fL,gL,vL,wL,NP,NP,NP,NP,NP];var Rb=[OP,wA];var Sb=[PP,Qi,Ri,Ti,Ui,nj,oj,ZN,Zl,_l,am,gq,hq,jq,nq,oq,qq,BA,CA,DA,EA,OA,YA,ZA,dB,eB,gB,DD,FD,HD,ID,WD,XD,mE,nE,oE,pE,rE,sE,tE,uE,wE,xE,yE,zE,BE,CE,DE,EE,_E,eF,jF,pF,vF,wF,xF,DF,EF,KF,LF,GG,HG,hH,iH,yH,zH,LH,MH,tI,uI,cJ,dJ,iJ,jJ,oJ,pJ,zJ,AJ,KJ,LJ,VJ,WJ,eK,fK,pK,qK,zK,AK,FK,GK,LK,MK,QK,RK,CF,eL,VK,tL,uL,FL,GL,IL,JL,VL,WL,aM,bM,hM,iM,vM,wM,xM,hf,ax,jr,Ot,St,Vt,du,eu,pw,qw,fw,$v,Rv,Jv,Yu,Qu,Ru,Fu,Gu,wu,xu,iw,lw,Kw,Ow,Zw,_w,$w,fx,hx,jx,cG,eG,iK,GO,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP,PP];var Tb=[QP,nr,rr,Ar];var Ub=[RP,JD,YD,$E,fF,kF,qF,sJ,tJ,uJ,vJ,xJ,yJ,DJ,EJ,FJ,GJ,IJ,JJ,OJ,PJ,QJ,RJ,TJ,UJ,ZJ,_J,$J,aK,cK,dK,PK,UK,ZL,_L,$L,eM,fM,gM,Nt,tr,wr,yr,Dr,Fr,Hr,Is,Qt,ow,ew,Fv,su,Nw,gx,ix,Mx,RP,RP,RP,RP,RP,RP,RP,RP];var Vb=[SP,xs,gs,SP];var Wb=[TP,Ww,ns,TP];var Xb=[UP,IA,RA,jB,MD,$D,zF,GF,Ue,bw,dw,Lv,Mv,Nv,Ov,Pv,tu,uu,vu,hw,jw,kw,sw,tw,uw,vw,ww,UP,UP,UP,UP,UP];var Yb=[VP,HA,QA,iB,Sv,Tv,Uv,Vv,Wv,Xv,Yv,Zv,_v,Dv,Cv,Bv,Av,zv,yv,xv,wv,vv,uv,tv,sv,rv,qv,pv,ov,nv,mv,lv,kv,jv,iv,hv,gv,fv,ev,dv,cv,bv,av,$u,Ev,_u,Zu,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP,VP];var Zb=[WP,GA,PA,hB,LD,_D,OK,TK];var _b=[XP,aw,cw,Kv,Gv,Hv,Iv,XP];return{__GLOBAL__I_000101:SE,__GLOBAL__sub_I_ARToolKitJS_cpp:Dq,__GLOBAL__sub_I_bind_cpp:EB,__GLOBAL__sub_I_iostream_cpp:TE,__ZSt18uncaught_exceptionv:yD,___cxa_can_catch:wB,___cxa_is_pointer_type:xB,___embind_register_native_and_builtin_types:HB,___emscripten_environ_constructor:zB,___errno_location:ox,___getTypeName:tD,___muldi3:NO,___udivdi3:SO,__get_daylight:BB,__get_environ:DB,__get_timezone:CB,__get_tzname:AB,_bitshift64Lshr:TO,_bitshift64Shl:UO,_emscripten_get_sbrk_ptr:VO,_emscripten_replace_memory:Cb,_free:GO,_i64Add:OO,_i64Subtract:PO,_llvm_bswap_i32:WO,_malloc:FO,_memcpy:_O,_memmove:$O,_memset:aP,_realloc:IO,_roundf:bP,_saveSetjmp:XO,_setThrew:ZO,_testSetjmp:YO,dynCall_di:cP,dynCall_dii:dP,dynCall_i:eP,dynCall_ii:fP,dynCall_iidiiii:gP,dynCall_iii:hP,dynCall_iiii:iP,dynCall_iiiii:jP,dynCall_iiiiid:kP,dynCall_iiiiii:lP,dynCall_iiiiiid:mP,dynCall_iiiiiii:nP,dynCall_iiiiiiii:oP,dynCall_iiiiiiiii:pP,dynCall_v:qP,dynCall_vi:rP,dynCall_vid:sP,dynCall_vii:tP,dynCall_viid:uP,dynCall_viii:vP,dynCall_viiii:wP,dynCall_viiiii:xP,dynCall_viiiiii:yP,dynCall_viiiiiii:zP,establishStackSpace:cc,stackAlloc:$b,stackRestore:bc,stackSave:ac}}) // EMSCRIPTEN_END_ASM (asmGlobalArg,asmLibraryArg,buffer);var __GLOBAL__I_000101=Module["__GLOBAL__I_000101"]=asm["__GLOBAL__I_000101"];var __GLOBAL__sub_I_ARToolKitJS_cpp=Module["__GLOBAL__sub_I_ARToolKitJS_cpp"]=asm["__GLOBAL__sub_I_ARToolKitJS_cpp"];var __GLOBAL__sub_I_bind_cpp=Module["__GLOBAL__sub_I_bind_cpp"]=asm["__GLOBAL__sub_I_bind_cpp"];var __GLOBAL__sub_I_iostream_cpp=Module["__GLOBAL__sub_I_iostream_cpp"]=asm["__GLOBAL__sub_I_iostream_cpp"];var __ZSt18uncaught_exceptionv=Module["__ZSt18uncaught_exceptionv"]=asm["__ZSt18uncaught_exceptionv"];var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var ___embind_register_native_and_builtin_types=Module["___embind_register_native_and_builtin_types"]=asm["___embind_register_native_and_builtin_types"];var ___emscripten_environ_constructor=Module["___emscripten_environ_constructor"]=asm["___emscripten_environ_constructor"];var ___errno_location=Module["___errno_location"]=asm["___errno_location"];var ___getTypeName=Module["___getTypeName"]=asm["___getTypeName"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var __get_daylight=Module["__get_daylight"]=asm["__get_daylight"];var __get_environ=Module["__get_environ"]=asm["__get_environ"];var __get_timezone=Module["__get_timezone"]=asm["__get_timezone"];var __get_tzname=Module["__get_tzname"]=asm["__get_tzname"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _emscripten_get_sbrk_ptr=Module["_emscripten_get_sbrk_ptr"]=asm["_emscripten_get_sbrk_ptr"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _realloc=Module["_realloc"]=asm["_realloc"];var _roundf=Module["_roundf"]=asm["_roundf"];var _saveSetjmp=Module["_saveSetjmp"]=asm["_saveSetjmp"];var _setThrew=Module["_setThrew"]=asm["_setThrew"];var _testSetjmp=Module["_testSetjmp"]=asm["_testSetjmp"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_di=Module["dynCall_di"]=asm["dynCall_di"];var dynCall_dii=Module["dynCall_dii"]=asm["dynCall_dii"];var dynCall_i=Module["dynCall_i"]=asm["dynCall_i"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iidiiii=Module["dynCall_iidiiii"]=asm["dynCall_iidiiii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiii=Module["dynCall_iiiii"]=asm["dynCall_iiiii"];var dynCall_iiiiid=Module["dynCall_iiiiid"]=asm["dynCall_iiiiid"];var dynCall_iiiiii=Module["dynCall_iiiiii"]=asm["dynCall_iiiiii"];var dynCall_iiiiiid=Module["dynCall_iiiiiid"]=asm["dynCall_iiiiiid"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_iiiiiiii=Module["dynCall_iiiiiiii"]=asm["dynCall_iiiiiiii"];var dynCall_iiiiiiiii=Module["dynCall_iiiiiiiii"]=asm["dynCall_iiiiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vid=Module["dynCall_vid"]=asm["dynCall_vid"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viid=Module["dynCall_viid"]=asm["dynCall_viid"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];Module["asm"]=asm;if(memoryInitializer){if(!isDataURI(memoryInitializer)){memoryInitializer=locateFile(memoryInitializer)}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=readBinary(memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")};var doBrowserLoad=function(){readAsync(memoryInitializer,applyMemoryInitializer,function(){throw"could not load memory initializer "+memoryInitializer})};var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){var useRequest=function(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)};if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status)}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run(); var THREEx = THREEx || {} THREEx.ArBaseControls = function(object3d){ this.id = THREEx.ArBaseControls.id++ this.object3d = object3d this.object3d.matrixAutoUpdate = false; this.object3d.visible = false // Events to honor // this.dispatchEvent({ type: 'becameVisible' }) // this.dispatchEvent({ type: 'markerVisible' }) // replace markerFound // this.dispatchEvent({ type: 'becameUnVisible' }) } THREEx.ArBaseControls.id = 0 Object.assign( THREEx.ArBaseControls.prototype, THREE.EventDispatcher.prototype ); ////////////////////////////////////////////////////////////////////////////// // Functions ////////////////////////////////////////////////////////////////////////////// /** * error catching function for update() */ THREEx.ArBaseControls.prototype.update = function(){ console.assert(false, 'you need to implement your own update') } /** * error catching function for name() */ THREEx.ArBaseControls.prototype.name = function(){ console.assert(false, 'you need to implement your own .name()') return 'Not yet implemented - name()' } var THREEx = THREEx || {} // TODO this is useless - prefere arjs-HitTesting.js /** * - maybe support .onClickFcts in each object3d * - seems an easy light layer for clickable object * - up to */ THREEx.ARClickability = function (sourceElement) { this._sourceElement = sourceElement // Create cameraPicking var fullWidth = parseInt(sourceElement.style.width) var fullHeight = parseInt(sourceElement.style.height) this._cameraPicking = new THREE.PerspectiveCamera(42, fullWidth / fullHeight, 0.1, 100); console.warn('THREEx.ARClickability works only in modelViewMatrix') console.warn('OBSOLETE OBSOLETE! instead use THREEx.HitTestingPlane') } THREEx.ARClickability.prototype.onResize = function () { var sourceElement = this._sourceElement var cameraPicking = this._cameraPicking var fullWidth = parseInt(sourceElement.style.width) var fullHeight = parseInt(sourceElement.style.height) cameraPicking.aspect = fullWidth / fullHeight; cameraPicking.updateProjectionMatrix(); } THREEx.ARClickability.prototype.computeIntersects = function (domEvent, objects) { var sourceElement = this._sourceElement var cameraPicking = this._cameraPicking // compute mouse coordinatge with [-1,1] var eventCoords = new THREE.Vector3(); eventCoords.x = (domEvent.layerX / parseInt(sourceElement.style.width)) * 2 - 1; eventCoords.y = - (domEvent.layerY / parseInt(sourceElement.style.height)) * 2 + 1; // compute intersections between eventCoords and pickingPlane var raycaster = new THREE.Raycaster(); raycaster.setFromCamera(eventCoords, cameraPicking); var intersects = raycaster.intersectObjects(objects) return intersects } THREEx.ARClickability.prototype.update = function () { } var THREEx = THREEx || {} /** * - videoTexture * - cloakWidth * - cloakHeight * - cloakSegmentsHeight * - remove all mentions of cache, for cloak */ THREEx.ArMarkerCloak = function(videoTexture){ var updateInShaderEnabled = true // build cloakMesh // TODO if webgl2 use repeat warp, and not multi segment, this will reduce the geometry to draw var geometry = new THREE.PlaneGeometry(1.3+0.25,1.85+0.25, 1, 8).translate(0,-0.3,0) var material = new THREE.ShaderMaterial( { vertexShader: THREEx.ArMarkerCloak.vertexShader, fragmentShader: THREEx.ArMarkerCloak.fragmentShader, transparent: true, uniforms: { texture: { value: videoTexture }, opacity: { value: 0.5 } }, defines: { updateInShaderEnabled: updateInShaderEnabled ? 1 : 0, } }); var cloakMesh = new THREE.Mesh( geometry, material ); cloakMesh.rotation.x = -Math.PI/2 this.object3d = cloakMesh ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// var xMin = -0.65 var xMax = 0.65 var yMin = 0.65 + 0.1 var yMax = 0.95 + 0.1 ////////////////////////////////////////////////////////////////////////////// // originalsFaceVertexUvs ////////////////////////////////////////////////////////////////////////////// var originalsFaceVertexUvs = [[]] // build originalsFaceVertexUvs array for(var faceIndex = 0; faceIndex < cloakMesh.geometry.faces.length; faceIndex ++ ){ originalsFaceVertexUvs[0][faceIndex] = [] originalsFaceVertexUvs[0][faceIndex][0] = new THREE.Vector2() originalsFaceVertexUvs[0][faceIndex][1] = new THREE.Vector2() originalsFaceVertexUvs[0][faceIndex][2] = new THREE.Vector2() } // set values in originalsFaceVertexUvs for(var i = 0; i < cloakMesh.geometry.parameters.heightSegments/2; i ++ ){ // one segment height - even row - normale orientation originalsFaceVertexUvs[0][i*4+0][0].set( xMin/2+0.5, yMax/2+0.5 ) originalsFaceVertexUvs[0][i*4+0][1].set( xMin/2+0.5, yMin/2+0.5 ) originalsFaceVertexUvs[0][i*4+0][2].set( xMax/2+0.5, yMax/2+0.5 ) originalsFaceVertexUvs[0][i*4+1][0].set( xMin/2+0.5, yMin/2+0.5 ) originalsFaceVertexUvs[0][i*4+1][1].set( xMax/2+0.5, yMin/2+0.5 ) originalsFaceVertexUvs[0][i*4+1][2].set( xMax/2+0.5, yMax/2+0.5 ) // one segment height - odd row - mirror-y orientation originalsFaceVertexUvs[0][i*4+2][0].set( xMin/2+0.5, yMin/2+0.5 ) originalsFaceVertexUvs[0][i*4+2][1].set( xMin/2+0.5, yMax/2+0.5 ) originalsFaceVertexUvs[0][i*4+2][2].set( xMax/2+0.5, yMin/2+0.5 ) originalsFaceVertexUvs[0][i*4+3][0].set( xMin/2+0.5, yMax/2+0.5 ) originalsFaceVertexUvs[0][i*4+3][1].set( xMax/2+0.5, yMax/2+0.5 ) originalsFaceVertexUvs[0][i*4+3][2].set( xMax/2+0.5, yMin/2+0.5 ) } if( updateInShaderEnabled === true ){ cloakMesh.geometry.faceVertexUvs = originalsFaceVertexUvs cloakMesh.geometry.uvsNeedUpdate = true } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// var originalOrthoVertices = [] originalOrthoVertices.push( new THREE.Vector3(xMin, yMax, 0)) originalOrthoVertices.push( new THREE.Vector3(xMax, yMax, 0)) originalOrthoVertices.push( new THREE.Vector3(xMin, yMin, 0)) originalOrthoVertices.push( new THREE.Vector3(xMax, yMin, 0)) // build debugMesh var material = new THREE.MeshNormalMaterial({ transparent : true, opacity: 0.5, side: THREE.DoubleSide }); var geometry = new THREE.PlaneGeometry(1,1); var orthoMesh = new THREE.Mesh(geometry, material); this.orthoMesh = orthoMesh ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// this.update = function(modelViewMatrix, cameraProjectionMatrix){ updateOrtho(modelViewMatrix, cameraProjectionMatrix) if( updateInShaderEnabled === false ){ updateUvs(modelViewMatrix, cameraProjectionMatrix) } } return // update cloakMesh function updateUvs(modelViewMatrix, cameraProjectionMatrix){ var transformedUv = new THREE.Vector3() originalsFaceVertexUvs[0].forEach(function(faceVertexUvs, faceIndex){ faceVertexUvs.forEach(function(originalUv, uvIndex){ // set transformedUv - from UV coord to clip coord transformedUv.x = originalUv.x * 2.0 - 1.0; transformedUv.y = originalUv.y * 2.0 - 1.0; transformedUv.z = 0 // apply modelViewMatrix and projectionMatrix transformedUv.applyMatrix4( modelViewMatrix ) transformedUv.applyMatrix4( cameraProjectionMatrix ) // apply perspective transformedUv.x /= transformedUv.z transformedUv.y /= transformedUv.z // set back from clip coord to Uv coord transformedUv.x = transformedUv.x / 2.0 + 0.5; transformedUv.y = transformedUv.y / 2.0 + 0.5; // copy the trasnformedUv into the geometry cloakMesh.geometry.faceVertexUvs[0][faceIndex][uvIndex].set(transformedUv.x, transformedUv.y) }) }) // cloakMesh.geometry.faceVertexUvs = faceVertexUvs cloakMesh.geometry.uvsNeedUpdate = true } // update orthoMesh function updateOrtho(modelViewMatrix, cameraProjectionMatrix){ // compute transformedUvs var transformedUvs = [] originalOrthoVertices.forEach(function(originalOrthoVertices, index){ var transformedUv = originalOrthoVertices.clone() // apply modelViewMatrix and projectionMatrix transformedUv.applyMatrix4( modelViewMatrix ) transformedUv.applyMatrix4( cameraProjectionMatrix ) // apply perspective transformedUv.x /= transformedUv.z transformedUv.y /= transformedUv.z // store it transformedUvs.push(transformedUv) }) // change orthoMesh vertices for(var i = 0; i < transformedUvs.length; i++){ orthoMesh.geometry.vertices[i].copy(transformedUvs[i]) } orthoMesh.geometry.computeBoundingSphere() orthoMesh.geometry.verticesNeedUpdate = true } } ////////////////////////////////////////////////////////////////////////////// // Shaders ////////////////////////////////////////////////////////////////////////////// THREEx.ArMarkerCloak.markerSpaceShaderFunction = '\n'+ ' vec2 transformUvToMarkerSpace(vec2 originalUv){\n'+ ' vec3 transformedUv;\n'+ ' // set transformedUv - from UV coord to clip coord\n'+ ' transformedUv.x = originalUv.x * 2.0 - 1.0;\n'+ ' transformedUv.y = originalUv.y * 2.0 - 1.0;\n'+ ' transformedUv.z = 0.0;\n'+ '\n'+ ' // apply modelViewMatrix and projectionMatrix\n'+ ' transformedUv = (projectionMatrix * modelViewMatrix * vec4( transformedUv, 1.0 ) ).xyz;\n'+ '\n'+ ' // apply perspective\n'+ ' transformedUv.x /= transformedUv.z;\n'+ ' transformedUv.y /= transformedUv.z;\n'+ '\n'+ ' // set back from clip coord to Uv coord\n'+ ' transformedUv.x = transformedUv.x / 2.0 + 0.5;\n'+ ' transformedUv.y = transformedUv.y / 2.0 + 0.5;\n'+ '\n'+ ' // return the result\n'+ ' return transformedUv.xy;\n'+ ' }' THREEx.ArMarkerCloak.vertexShader = THREEx.ArMarkerCloak.markerSpaceShaderFunction + ' varying vec2 vUv;\n'+ '\n'+ ' void main(){\n'+ ' // pass the UV to the fragment\n'+ ' #if (updateInShaderEnabled == 1)\n'+ ' vUv = transformUvToMarkerSpace(uv);\n'+ ' #else\n'+ ' vUv = uv;\n'+ ' #endif\n'+ '\n'+ ' // compute gl_Position\n'+ ' vec4 mvPosition = modelViewMatrix * vec4( position, 1.0 );\n'+ ' gl_Position = projectionMatrix * mvPosition;\n'+ ' }'; THREEx.ArMarkerCloak.fragmentShader = '\n'+ ' varying vec2 vUv;\n'+ ' uniform sampler2D texture;\n'+ ' uniform float opacity;\n'+ '\n'+ ' void main(void){\n'+ ' vec3 color = texture2D( texture, vUv ).rgb;\n'+ '\n'+ ' gl_FragColor = vec4( color, opacity);\n'+ ' }' var ARjs = ARjs || {} var THREEx = THREEx || {} ARjs.MarkerControls = THREEx.ArMarkerControls = function (context, object3d, parameters) { var _this = this THREEx.ArBaseControls.call(this, object3d) this.context = context // handle default parameters this.parameters = { // size of the marker in meter size: 1, // type of marker - ['pattern', 'barcode', 'nft', 'unknown' ] type: 'unknown', // url of the pattern - IIF type='pattern' patternUrl: null, // value of the barcode - IIF type='barcode' barcodeValue: null, // url of the descriptors of image - IIF type='nft' descriptorsUrl: null, // change matrix mode - [modelViewMatrix, cameraTransformMatrix] changeMatrixMode: 'modelViewMatrix', // minimal confidence in the marke recognition - between [0, 1] - default to 1 minConfidence: 0.6, // turn on/off camera smoothing smooth: false, // number of matrices to smooth tracking over, more = smoother but slower follow smoothCount: 5, // distance tolerance for smoothing, if smoothThreshold # of matrices are under tolerance, tracking will stay still smoothTolerance: 0.01, // threshold for smoothing, will keep still unless enough matrices are over tolerance smoothThreshold: 2, } // sanity check var possibleValues = ['pattern', 'barcode', 'nft', 'unknown'] console.assert(possibleValues.indexOf(this.parameters.type) !== -1, 'illegal value', this.parameters.type) var possibleValues = ['modelViewMatrix', 'cameraTransformMatrix'] console.assert(possibleValues.indexOf(this.parameters.changeMatrixMode) !== -1, 'illegal value', this.parameters.changeMatrixMode) // create the marker Root this.object3d = object3d this.object3d.matrixAutoUpdate = false; this.object3d.visible = false ////////////////////////////////////////////////////////////////////////////// // setParameters ////////////////////////////////////////////////////////////////////////////// setParameters(parameters) function setParameters(parameters) { if (parameters === undefined) return for (var key in parameters) { var newValue = parameters[key] if (newValue === undefined) { console.warn("THREEx.ArMarkerControls: '" + key + "' parameter is undefined.") continue } var currentValue = _this.parameters[key] if (currentValue === undefined) { console.warn("THREEx.ArMarkerControls: '" + key + "' is not a property of this material.") continue } _this.parameters[key] = newValue } } if (this.parameters.smooth) { this.smoothMatrices = []; // last DEBOUNCE_COUNT modelViewMatrix } ////////////////////////////////////////////////////////////////////////////// // Code Separator ////////////////////////////////////////////////////////////////////////////// // add this marker to artoolkitsystem // TODO rename that .addMarkerControls context.addMarker(this) if (_this.context.parameters.trackingBackend === 'artoolkit') { this._initArtoolkit() } else console.assert(false) } ARjs.MarkerControls.prototype = Object.create(THREEx.ArBaseControls.prototype); ARjs.MarkerControls.prototype.constructor = THREEx.ArMarkerControls; ARjs.MarkerControls.prototype.dispose = function () { this.context.removeMarker(this) } ////////////////////////////////////////////////////////////////////////////// // update controls with new modelViewMatrix ////////////////////////////////////////////////////////////////////////////// /** * When you actually got a new modelViewMatrix, you need to perfom a whole bunch * of things. it is done here. */ ARjs.MarkerControls.prototype.updateWithModelViewMatrix = function (modelViewMatrix) { var markerObject3D = this.object3d; // mark object as visible markerObject3D.visible = true if (this.context.parameters.trackingBackend === 'artoolkit') { // apply context._axisTransformMatrix - change artoolkit axis to match usual webgl one var tmpMatrix = new THREE.Matrix4().copy(this.context._artoolkitProjectionAxisTransformMatrix) tmpMatrix.multiply(modelViewMatrix) modelViewMatrix.copy(tmpMatrix) } else { console.assert(false) } // change axis orientation on marker - artoolkit say Z is normal to the marker - ar.js say Y is normal to the marker var markerAxisTransformMatrix = new THREE.Matrix4().makeRotationX(Math.PI/2) modelViewMatrix.multiply(markerAxisTransformMatrix) var renderReqd = false; // change markerObject3D.matrix based on parameters.changeMatrixMode if (this.parameters.changeMatrixMode === 'modelViewMatrix') { if (this.parameters.smooth) { var sum, i, j, averages, // average values for matrix over last smoothCount exceedsAverageTolerance = 0; this.smoothMatrices.push(modelViewMatrix.elements.slice()); // add latest if (this.smoothMatrices.length < (this.parameters.smoothCount + 1)) { markerObject3D.matrix.copy(modelViewMatrix); // not enough for average } else { this.smoothMatrices.shift(); // remove oldest entry averages = []; for (i in modelViewMatrix.elements) { // loop over entries in matrix sum = 0; for (j in this.smoothMatrices) { // calculate average for this entry sum += this.smoothMatrices[j][i]; } averages[i] = sum / this.parameters.smoothCount; // check how many elements vary from the average by at least AVERAGE_MATRIX_TOLERANCE if (Math.abs(averages[i] - modelViewMatrix.elements[i]) >= this.parameters.smoothTolerance) { exceedsAverageTolerance++; } } // if moving (i.e. at least AVERAGE_MATRIX_THRESHOLD entries are over AVERAGE_MATRIX_TOLERANCE) if (exceedsAverageTolerance >= this.parameters.smoothThreshold) { // then update matrix values to average, otherwise, don't render to minimize jitter for (i in modelViewMatrix.elements) { modelViewMatrix.elements[i] = averages[i]; } markerObject3D.matrix.copy(modelViewMatrix); renderReqd = true; // render required in animation loop } } } else { markerObject3D.matrix.copy(modelViewMatrix) } } else if (this.parameters.changeMatrixMode === 'cameraTransformMatrix') { markerObject3D.matrix.getInverse(modelViewMatrix) } else { console.assert(false) } // decompose - the matrix into .position, .quaternion, .scale markerObject3D.matrix.decompose(markerObject3D.position, markerObject3D.quaternion, markerObject3D.scale) // dispatchEvent this.dispatchEvent({ type: 'markerFound' }); return renderReqd; } ////////////////////////////////////////////////////////////////////////////// // utility functions ////////////////////////////////////////////////////////////////////////////// ARjs.MarkerControls.prototype.name = function () { var name = ''; name += this.parameters.type; if (this.parameters.type === 'pattern') { var url = this.parameters.patternUrl; var basename = url.replace(/^.*\//g, ''); name += ' - ' + basename; } else if (this.parameters.type === 'barcode') { name += ' - ' + this.parameters.barcodeValue; } else if (this.parameters.type === 'nft') { var url = this.parameters.descriptorsUrl; var basename = url.replace(/^.*\//g, ''); name += ' - ' + basename; } else { console.assert(false, 'no .name() implemented for this marker controls'); } return name; } ////////////////////////////////////////////////////////////////////////////// // init for Artoolkit ////////////////////////////////////////////////////////////////////////////// ARjs.MarkerControls.prototype._initArtoolkit = function () { var _this = this var artoolkitMarkerId = null var delayedInitTimerId = setInterval(() => { // check if arController is init var arController = _this.context.arController if (arController === null) return // stop looping if it is init clearInterval(delayedInitTimerId) delayedInitTimerId = null // launch the _postInitArtoolkit postInit() }, 1000 / 50) return function postInit() { // check if arController is init var arController = _this.context.arController console.assert(arController !== null) // start tracking this pattern if (_this.parameters.type === 'pattern') { arController.loadMarker(_this.parameters.patternUrl, function (markerId) { artoolkitMarkerId = markerId arController.trackPatternMarkerId(artoolkitMarkerId, _this.parameters.size); }); } else if (_this.parameters.type === 'barcode') { artoolkitMarkerId = _this.parameters.barcodeValue arController.trackBarcodeMarkerId(artoolkitMarkerId, _this.parameters.size); } else if (_this.parameters.type === 'nft') { // use workers as default handleNFT(_this.parameters.descriptorsUrl, arController); } else if (_this.parameters.type === 'unknown') { artoolkitMarkerId = null } else { console.log(false, 'invalid marker type', _this.parameters.type) } // listen to the event arController.addEventListener('getMarker', function (event) { if (event.data.type === artoolkit.PATTERN_MARKER && _this.parameters.type === 'pattern') { if (artoolkitMarkerId === null) return if (event.data.marker.idPatt === artoolkitMarkerId) onMarkerFound(event) } else if (event.data.type === artoolkit.BARCODE_MARKER && _this.parameters.type === 'barcode') { if (artoolkitMarkerId === null) return if (event.data.marker.idMatrix === artoolkitMarkerId) onMarkerFound(event) } else if (event.data.type === artoolkit.UNKNOWN_MARKER && _this.parameters.type === 'unknown') { onMarkerFound(event); } }) } function setMatrix(matrix, value) { var array = []; for (var key in value) { array[key] = value[key]; } if (typeof matrix.elements.set === "function") { matrix.elements.set(array); } else { matrix.elements = [].slice.call(array); } }; function handleNFT(descriptorsUrl, arController) { // create a Worker to handle loading of NFT marker and tracking of it var workerBlob = new Blob( [workerRunner.toString().replace(/^function .+\{?|\}$/g, '')], { type: 'text/js-worker' } ); var workerBlobUrl = URL.createObjectURL(workerBlob); var worker = new Worker(workerBlobUrl); window.addEventListener('arjs-video-loaded', function (ev) { var video = ev.detail.component; var vw = video.clientWidth; var vh = video.clientHeight; var pscale = 320 / Math.max(vw, vh / 3 * 4); w = vw * pscale; h = vh * pscale; pw = Math.max(w, h / 3 * 4); ph = Math.max(h, w / 4 * 3); ox = (pw - w) / 2; oy = (ph - h) / 2; arController.canvas.style.clientWidth = pw + "px"; arController.canvas.style.clientHeight = ph + "px"; arController.canvas.width = pw; arController.canvas.height = ph; var context_process = arController.canvas.getContext('2d'); function process() { context_process.fillStyle = "black"; context_process.fillRect(0, 0, pw, ph); context_process.drawImage(video, 0, 0, vw, vh, ox, oy, w, h); var imageData = context_process.getImageData(0, 0, pw, ph); worker.postMessage({ type: "process", imagedata: imageData }, [imageData.data.buffer]); } // initialize the worker worker.postMessage({ type: 'init', pw: pw, ph: ph, marker: descriptorsUrl, param: arController.cameraParam.src, }); worker.onmessage = function (ev) { if (ev && ev.data && ev.data.type === 'endLoading') { var loader = document.querySelector('.arjs-loader'); if (loader) { loader.remove(); } var endLoadingEvent = new Event('arjs-nft-loaded'); window.dispatchEvent(endLoadingEvent); } if (ev && ev.data && ev.data.type === 'loaded') { var proj = JSON.parse(ev.data.proj); var ratioW = pw / w; var ratioH = ph / h; proj[0] *= ratioW; proj[4] *= ratioW; proj[8] *= ratioW; proj[12] *= ratioW; proj[1] *= ratioH; proj[5] *= ratioH; proj[9] *= ratioH; proj[13] *= ratioH; setMatrix(_this.object3d.matrix, proj); } if (ev && ev.data && ev.data.type === 'found') { var matrix = JSON.parse(ev.data.matrix); onMarkerFound({ data: { type: artoolkit.NFT_MARKER, matrix: matrix, msg: ev.data.type, } }); _this.context.arController.showObject = true; } else { _this.context.arController.showObject = false; } process(); }; }); }; function workerRunner() { // continuing 'workerRunner' function at treex-armarkercontrols-nft-end.js file // see the makefile of three.js folder to better understand the division of this function between two files var Module=typeof Module!=="undefined"?Module:{};(function(){"use strict";var scope;if(typeof window!=="undefined"){scope=window}else{scope=self}if(scope.artoolkit_wasm_url){var downloadWasm=function(url){return new Promise(function(resolve,reject){var wasmXHR=new XMLHttpRequest;wasmXHR.open("GET",url,true);wasmXHR.responseType="arraybuffer";wasmXHR.onload=function(){resolve(wasmXHR.response)};wasmXHR.onerror=function(){reject("error "+wasmXHR.status)};wasmXHR.send(null)})};var wasm=downloadWasm(scope.artoolkit_wasm_url);Module.instantiateWasm=function(imports,successCallback){console.log("instantiateWasm: instantiating synchronously");wasm.then(function(wasmBinary){console.log("wasm download finished, begin instantiating");var wasmInstantiate=WebAssembly.instantiate(new Uint8Array(wasmBinary),imports).then(function(output){console.log("wasm instantiation succeeded");successCallback(output.instance)}).catch(function(e){console.log("wasm instantiation failed! "+e)})});return{}}}var ARController=function(width,height,cameraPara){this.id=undefined;var w=width,h=height;this.orientation="landscape";this.listeners={};if(typeof width!=="number"){var image=width;cameraPara=height;w=image.videoWidth||image.width;h=image.videoHeight||image.height;this.image=image}this.width=w;this.height=h;this.nftMarkerCount=0;this.defaultMarkerWidth=1;this.patternMarkers={};this.barcodeMarkers={};this.nftMarkers={};this.transform_mat=new Float32Array(16);this.transformGL_RH=new Float64Array(16);if(typeof document!=="undefined"){this.canvas=document.createElement("canvas");this.canvas.width=w;this.canvas.height=h;this.ctx=this.canvas.getContext("2d")}this.videoWidth=w;this.videoHeight=h;this.videoSize=this.videoWidth*this.videoHeight;this.framepointer=null;this.framesize=null;this.dataHeap=null;this.videoLuma=null;this.camera_mat=null;this.marker_transform_mat=null;this.videoLumaPointer=null;this._bwpointer=undefined;this._lumaCtx=undefined;if(typeof cameraPara==="string"){this.cameraParam=new ARCameraParam(cameraPara,function(){this._initialize()}.bind(this),function(err){console.error("ARController: Failed to load ARCameraParam",err);this.onload(err)}.bind(this))}else{this.cameraParam=cameraPara;this._initialize()}};ARController.prototype.dispose=function(){if(this.id>-1){artoolkit.teardown(this.id)}if(this.image&&this.image.srcObject){ARController._teardownVideo(this.image)}for(var t in this){this[t]=null}};ARController.prototype.process=function(image){var result=this.detectMarker(image);if(result!=0){console.error("detectMarker error: "+result)}var markerNum=this.getMarkerNum();var k,o;for(k in this.patternMarkers){o=this.patternMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}for(k in this.barcodeMarkers){o=this.barcodeMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}for(k in this.nftMarkers){o=this.nftMarkers[k];o.inPrevious=o.inCurrent;o.inCurrent=false}for(var i=0;i-1&&(markerInfo.id===markerInfo.idPatt||markerInfo.idMatrix===-1)){visible=this.trackPatternMarkerId(markerInfo.idPatt);markerType=artoolkit.PATTERN_MARKER;if(markerInfo.dir!==markerInfo.dirPatt){this.setMarkerInfoDir(i,markerInfo.dirPatt)}}else if(markerInfo.idMatrix>-1){visible=this.trackBarcodeMarkerId(markerInfo.idMatrix);markerType=artoolkit.BARCODE_MARKER;if(markerInfo.dir!==markerInfo.dirMatrix){this.setMarkerInfoDir(i,markerInfo.dirMatrix)}}if(markerType!==artoolkit.UNKNOWN_MARKER&&visible.inPrevious){this.getTransMatSquareCont(i,visible.markerWidth,visible.matrix,visible.matrix)}else{this.getTransMatSquare(i,visible.markerWidth,visible.matrix)}visible.inCurrent=true;this.transMatToGLMat(visible.matrix,this.transform_mat);this.transformGL_RH=this.arglCameraViewRHf(this.transform_mat);this.dispatchEvent({name:"getMarker",target:this,data:{index:i,type:markerType,marker:markerInfo,matrix:this.transform_mat,matrixGL_RH:this.transformGL_RH}})}var nftMarkerCount=this.nftMarkerCount;this.detectNFTMarker();var MARKER_LOST_TIME=200;for(var i=0;i=0){visible=true;this.dispatchEvent({name:"getMultiMarker",target:this,data:{multiMarkerId:i,matrix:this.transform_mat,matrixGL_RH:this.transformGL_RH}});break}}if(visible){for(var j=0;j-1){this.listeners[name].splice(index,1)}}};ARController.prototype.dispatchEvent=function(event){var listeners=this.listeners[event.name];if(listeners){for(var i=0;i>3;q+=4}}if(this.dataHeap){this.dataHeap.set(data);return true}return false};ARController.prototype._debugMarker=function(marker){var vertex,pos;vertex=marker.vertex;var ctx=this.ctx;ctx.strokeStyle="red";ctx.beginPath();ctx.moveTo(vertex[0][0],vertex[0][1]);ctx.lineTo(vertex[1][0],vertex[1][1]);ctx.stroke();ctx.beginPath();ctx.moveTo(vertex[2][0],vertex[2][1]);ctx.lineTo(vertex[3][0],vertex[3][1]);ctx.stroke();ctx.strokeStyle="green";ctx.beginPath();ctx.lineTo(vertex[1][0],vertex[1][1]);ctx.lineTo(vertex[2][0],vertex[2][1]);ctx.stroke();ctx.beginPath();ctx.moveTo(vertex[3][0],vertex[3][1]);ctx.lineTo(vertex[0][0],vertex[0][1]);ctx.stroke();pos=marker.pos;ctx.beginPath();ctx.arc(pos[0],pos[1],8,0,Math.PI*2);ctx.fillStyle="red";ctx.fill()};ARController.getUserMedia=function(configuration){var facing=configuration.facingMode||"environment";var onSuccess=configuration.onSuccess;var onError=configuration.onError||function(err){console.error("ARController.getUserMedia",err)};var video=document.createElement("video");var readyToPlay=false;var eventNames=["touchstart","touchend","touchmove","touchcancel","click","mousedown","mouseup","mousemove","keydown","keyup","keypress","scroll"];var play=function(){if(readyToPlay){video.play().then(function(){onSuccess(video)}).catch(function(error){onError(error);ARController._teardownVideo(video)});if(!video.paused){eventNames.forEach(function(eventName){window.removeEventListener(eventName,play,true)})}}};eventNames.forEach(function(eventName){window.addEventListener(eventName,play,true)});var success=function(stream){if(window.URL.createObjectURL){try{video.srcObject=stream}catch(ex){}}video.srcObject=stream;readyToPlay=true;video.autoplay=true;video.playsInline=true;play()};var constraints={};var mediaDevicesConstraints={};if(configuration.width){mediaDevicesConstraints.width=configuration.width;if(typeof configuration.width==="object"){if(configuration.width.max){constraints.maxWidth=configuration.width.max}if(configuration.width.min){constraints.minWidth=configuration.width.min}}else{constraints.maxWidth=configuration.width}}if(configuration.height){mediaDevicesConstraints.height=configuration.height;if(typeof configuration.height==="object"){if(configuration.height.max){constraints.maxHeight=configuration.height.max}if(configuration.height.min){constraints.minHeight=configuration.height.min}}else{constraints.maxHeight=configuration.height}}mediaDevicesConstraints.facingMode=facing;mediaDevicesConstraints.deviceId=configuration.deviceId;navigator.getUserMedia=navigator.getUserMedia||navigator.webkitGetUserMedia||navigator.mozGetUserMedia||navigator.msGetUserMedia;var hdConstraints={audio:false,video:constraints};if(navigator.mediaDevices||window.MediaStreamTrack.getSources){if(navigator.mediaDevices){navigator.mediaDevices.getUserMedia({audio:false,video:mediaDevicesConstraints}).then(success,onError)}else{window.MediaStreamTrack.getSources(function(sources){var facingDir=mediaDevicesConstraints.facingMode;if(facing&&facing.exact){facingDir=facing.exact}for(var i=0;i-1){writeStringToFS(filename,url,writeCallback)}else{ajax(url,filename,writeCallback,errorCallback)}}function writeStringToFS(target,string,callback){var byteArray=new Uint8Array(string.length);for(var i=0;i1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}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);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function dynamicAlloc(size){var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;if(end>_emscripten_get_heap_size()){abort()}HEAP32[DYNAMICTOP_PTR>>2]=end;return ret}function getNativeTypeSize(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 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0,"getNativeTypeSize invalid bits "+bits+", type "+type);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var tempRet0=0;var setTempRet0=function(value){tempRet0=value};var getTempRet0=function(){return tempRet0};var GLOBAL_BASE=8;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={"string":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},"array":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType==="string")return UTF8ToString(ret);if(returnType==="boolean")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>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=endIdx))++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}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){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&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(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}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}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 len+=4}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function allocateUTF8(str){var size=lengthBytesUTF8(str)+1;var ret=_malloc(size);if(ret)stringToUTF8Array(str,HEAP8,ret,size);return ret}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=57888,DYNAMIC_BASE=5300768,DYNAMICTOP_PTR=57696;var INITIAL_TOTAL_MEMORY=Module["TOTAL_MEMORY"]||67108864;if(Module["buffer"]){buffer=Module["buffer"]}else{buffer=new ArrayBuffer(INITIAL_TOTAL_MEMORY)}INITIAL_TOTAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __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 initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){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)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_abs=Math.abs;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_min=Math.min;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";out(what);err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";throw what}var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}var tempDouble;var tempI64;var ASM_CONSTS=[function($0,$1,$2,$3,$4,$5){if(!artoolkit["frameMalloc"]){artoolkit["frameMalloc"]={}}var frameMalloc=artoolkit["frameMalloc"];frameMalloc["framepointer"]=$1;frameMalloc["framesize"]=$2;frameMalloc["camera"]=$3;frameMalloc["transform"]=$4;frameMalloc["videoLumaPointer"]=$5},function($0,$1,$2,$3){if(!artoolkit["multiEachMarkerInfo"]){artoolkit["multiEachMarkerInfo"]={}}var multiEachMarker=artoolkit["multiEachMarkerInfo"];multiEachMarker["visible"]=$0;multiEachMarker["pattId"]=$1;multiEachMarker["pattType"]=$2;multiEachMarker["width"]=$3},function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13,$14,$15,$16,$17,$18,$19,$20,$21,$22,$23,$24,$25,$26,$27,$28,$29,$30,$31,$32){var $a=arguments;var i=12;if(!artoolkit["markerInfo"]){artoolkit["markerInfo"]={pos:[0,0],line:[[0,0,0],[0,0,0],[0,0,0],[0,0,0]],vertex:[[0,0],[0,0],[0,0],[0,0]]}}var markerInfo=artoolkit["markerInfo"];markerInfo["area"]=$0;markerInfo["id"]=$1;markerInfo["idPatt"]=$2;markerInfo["idMatrix"]=$3;markerInfo["dir"]=$4;markerInfo["dirPatt"]=$5;markerInfo["dirMatrix"]=$6;markerInfo["cf"]=$7;markerInfo["cfPatt"]=$8;markerInfo["cfMatrix"]=$9;markerInfo["pos"][0]=$10;markerInfo["pos"][1]=$11;markerInfo["line"][0][0]=$a[i++];markerInfo["line"][0][1]=$a[i++];markerInfo["line"][0][2]=$a[i++];markerInfo["line"][1][0]=$a[i++];markerInfo["line"][1][1]=$a[i++];markerInfo["line"][1][2]=$a[i++];markerInfo["line"][2][0]=$a[i++];markerInfo["line"][2][1]=$a[i++];markerInfo["line"][2][2]=$a[i++];markerInfo["line"][3][0]=$a[i++];markerInfo["line"][3][1]=$a[i++];markerInfo["line"][3][2]=$a[i++];markerInfo["vertex"][0][0]=$a[i++];markerInfo["vertex"][0][1]=$a[i++];markerInfo["vertex"][1][0]=$a[i++];markerInfo["vertex"][1][1]=$a[i++];markerInfo["vertex"][2][0]=$a[i++];markerInfo["vertex"][2][1]=$a[i++];markerInfo["vertex"][3][0]=$a[i++];markerInfo["vertex"][3][1]=$a[i++];markerInfo["errorCorrected"]=$a[i++]},function($0,$1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12,$13){var $a=arguments;var i=0;if(!artoolkit["NFTMarkerInfo"]){artoolkit["NFTMarkerInfo"]={id:0,error:-1,found:0,pose:[0,0,0,0,0,0,0,0,0,0,0,0]}}var markerInfo=artoolkit["NFTMarkerInfo"];markerInfo["id"]=$a[i++];markerInfo["error"]=$a[i++];markerInfo["found"]=1;markerInfo["pose"][0]=$a[i++];markerInfo["pose"][1]=$a[i++];markerInfo["pose"][2]=$a[i++];markerInfo["pose"][3]=$a[i++];markerInfo["pose"][4]=$a[i++];markerInfo["pose"][5]=$a[i++];markerInfo["pose"][6]=$a[i++];markerInfo["pose"][7]=$a[i++];markerInfo["pose"][8]=$a[i++];markerInfo["pose"][9]=$a[i++];markerInfo["pose"][10]=$a[i++];markerInfo["pose"][11]=$a[i++]},function($0){var $a=arguments;var i=0;if(!artoolkit["NFTMarkerInfo"]){artoolkit["NFTMarkerInfo"]={id:0,error:-1,found:0,pose:[0,0,0,0,0,0,0,0,0,0,0,0]}}var markerInfo=artoolkit["NFTMarkerInfo"];markerInfo["id"]=$a[i++];markerInfo["error"]=-1;markerInfo["found"]=0;markerInfo["pose"][0]=0;markerInfo["pose"][1]=0;markerInfo["pose"][2]=0;markerInfo["pose"][3]=0;markerInfo["pose"][4]=0;markerInfo["pose"][5]=0;markerInfo["pose"][6]=0;markerInfo["pose"][7]=0;markerInfo["pose"][8]=0;markerInfo["pose"][9]=0;markerInfo["pose"][10]=0;markerInfo["pose"][11]=0}];function _emscripten_asm_const_iiiiiii(code,a0,a1,a2,a3,a4,a5){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5)}function _emscripten_asm_const_iiiid(code,a0,a1,a2,a3){return ASM_CONSTS[code](a0,a1,a2,a3)}function _emscripten_asm_const_iiddddddddddddd(code,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13)}function _emscripten_asm_const_ii(code,a0){return ASM_CONSTS[code](a0)}function _emscripten_asm_const_iiiiiiiidddddddddddddddddddddddddi(code,a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32){return ASM_CONSTS[code](a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32)}__ATINIT__.push({func:function(){__GLOBAL__I_000101()}},{func:function(){__GLOBAL__sub_I_ARToolKitJS_cpp()}},{func:function(){___emscripten_environ_constructor()}},{func:function(){__GLOBAL__sub_I_bind_cpp()}},{func:function(){__GLOBAL__sub_I_iostream_cpp()}});memoryInitializer="data:application/octet-stream;base64,AAAAAAAAAACKTQAAkU0AAJ1NAACnTQAAtU0AAAAAAAAAAAAAAAAAAP//////////AAAAAAEAAAABAAAAAQAAAAAAAAD/////AAAAAAEAAAABAAAAAQAAAAAAAAD///////////////8AAAABAAEBAQACBP//BQMBAAL/Bgf/AwECAgMCAwIDAwD/BAYHBf8BBAUEBAUFBAUHBgYGBwcHBv8CBAYHBQP/AAEBAQEBAQABAQEAAAEBAQEBAAEBAAEBAQABAQEBAAEBAAEBAQEAAQEBAAEBAAEBAQEBAAABAQEAAQEBAQEBAAD//wP/BQb//wkK/wz//w//ERL/FP//Fxj//xv/HR7//wEC/wT//wcI//8L/w0O/xD//xP/FRb//xka/xz//x8BAAAAAgAAAAQAAAAIAAAAEAAAAAUAAAAKAAAAFAAAAA0AAAAaAAAAEQAAAAcAAAAOAAAAHAAAAB0AAAAfAAAAGwAAABMAAAADAAAABgAAAAwAAAAYAAAAFQAAAA8AAAAeAAAAGQAAABcAAAALAAAAFgAAAAkAAAASAAAAAAAAAAEAAAACAAAABAAAAAgAAAADAAAABgAAAAwAAAALAAAABQAAAAoAAAAHAAAADgAAAA8AAAANAAAACQAAAAAAAAD/////AAAAAAEAAAASAAAAAgAAAAUAAAATAAAACwAAAAMAAAAdAAAABgAAABsAAAAUAAAACAAAAAwAAAAXAAAABAAAAAoAAAAeAAAAEQAAAAcAAAAWAAAAHAAAABoAAAAVAAAAGQAAAAkAAAAQAAAADQAAAA4AAAAYAAAADwAAAP////8AAAAAAQAAAAQAAAACAAAACAAAAAUAAAAKAAAAAwAAAA4AAAAJAAAABwAAAAYAAAANAAAACwAAAAwAAAABAAAAAgAAAAQAAAAIAAAAEAAAACAAAABAAAAAAwAAAAYAAAAMAAAAGAAAADAAAABgAAAAQwAAAAUAAAAKAAAAFAAAACgAAABQAAAAIwAAAEYAAAAPAAAAHgAAADwAAAB4AAAAcwAAAGUAAABJAAAAEQAAACIAAABEAAAACwAAABYAAAAsAAAAWAAAADMAAABmAAAATwAAAB0AAAA6AAAAdAAAAGsAAABVAAAAKQAAAFIAAAAnAAAATgAAAB8AAAA+AAAAfAAAAHsAAAB1AAAAaQAAAFEAAAAhAAAAQgAAAAcAAAAOAAAAHAAAADgAAABwAAAAYwAAAEUAAAAJAAAAEgAAACQAAABIAAAAEwAAACYAAABMAAAAGwAAADYAAABsAAAAWwAAADUAAABqAAAAVwAAAC0AAABaAAAANwAAAG4AAABfAAAAPQAAAHoAAAB3AAAAbQAAAFkAAAAxAAAAYgAAAEcAAAANAAAAGgAAADQAAABoAAAAUwAAACUAAABKAAAAFwAAAC4AAABcAAAAOwAAAHYAAABvAAAAXQAAADkAAAByAAAAZwAAAE0AAAAZAAAAMgAAAGQAAABLAAAAFQAAACoAAABUAAAAKwAAAFYAAAAvAAAAXgAAAD8AAAB+AAAAfwAAAH0AAAB5AAAAcQAAAGEAAABBAAAAAAAAAP////8AAAAAAQAAAAcAAAACAAAADgAAAAgAAAA4AAAAAwAAAD8AAAAPAAAAHwAAAAkAAABaAAAAOQAAABUAAAAEAAAAHAAAAEAAAABDAAAAEAAAAHAAAAAgAAAAYQAAAAoAAABsAAAAWwAAAEYAAAA6AAAAJgAAABYAAAAvAAAABQAAADYAAAAdAAAAEwAAAEEAAABfAAAARAAAAC0AAAARAAAAKwAAAHEAAABzAAAAIQAAAE0AAABiAAAAdQAAAAsAAABXAAAAbQAAACMAAABcAAAASgAAAEcAAABPAAAAOwAAAGgAAAAnAAAAZAAAABcAAABSAAAAMAAAAHcAAAAGAAAAfgAAADcAAAANAAAAHgAAAD4AAAAUAAAAWQAAAEIAAAAbAAAAYAAAAG8AAABFAAAAawAAAC4AAAAlAAAAEgAAADUAAAAsAAAAXgAAAHIAAAAqAAAAdAAAAEwAAAAiAAAAVgAAAE4AAABJAAAAYwAAAGcAAAB2AAAAUQAAAAwAAAB9AAAAWAAAAD0AAABuAAAAGgAAACQAAABqAAAAXQAAADQAAABLAAAAKQAAAEgAAABVAAAAUAAAAGYAAAA8AAAAfAAAAGkAAAAZAAAAKAAAADMAAABlAAAAVAAAABgAAAB7AAAAUwAAADIAAAAxAAAAegAAAHgAAAB5AAAABAAAAIgAAAAFAAAAkAAAAAYAAACYAAAACQAAALAAAAA3VAAAPVQAAEJUAABKVAAAAAAAALK+uT4S3KC+kL45PhLcoL6Qvjm+AAAAgLK+ub4S3KA+kL45vhLcoD6Qvjk+0nIYvwAAAADScpi+OgYEv9JymD46BgS/0nIYPwAAAIDScpg+OgYEP9JymL46BgQ/AAAAgFa4Pb9mTSQ/Vri9vmZNJD9WuL0+AAAAAFa4PT9mTSS/Vri9PmZNJL9WuL2+DOlYPwAAAIAM6dg+mdk7Pwzp2L6Z2Ts/DOlYvwAAAAAM6di+mdk7vwzp2D6Z2Tu/AAAAAPxTbj/xZU6/DVTuPvFlTr8NVO6+AAAAgPxTbr/xZU4/DVTuvvFlTj8NVO4+AACAvwAAAAAAAAC/0LNdvwAAAD/Qs12/AACAPwAAAIAAAAA/0LNdPwAAAL/Qs10/ADcAAAA3AAAANwAAADcAAAAAAAABAAAACAAAABAAAAAJAAAAAgAAAAMAAAAKAAAAEQAAABgAAAAgAAAAGQAAABIAAAALAAAABAAAAAUAAAAMAAAAEwAAABoAAAAhAAAAKAAAADAAAAApAAAAIgAAABsAAAAUAAAADQAAAAYAAAAHAAAADgAAABUAAAAcAAAAIwAAACoAAAAxAAAAOAAAADkAAAAyAAAAKwAAACQAAAAdAAAAFgAAAA8AAAAXAAAAHgAAACUAAAAsAAAAMwAAADoAAAA7AAAANAAAAC0AAAAmAAAAHwAAACcAAAAuAAAANQAAADwAAAA9AAAANgAAAC8AAAA3AAAAPgAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAAAAAAAEAAAAIAAAAEAAAAAkAAAACAAAAAwAAAAoAAAARAAAAGAAAACAAAAAZAAAAEgAAAAsAAAAEAAAABQAAAAwAAAATAAAAGgAAACEAAAAoAAAAMAAAACkAAAAiAAAAGwAAABQAAAANAAAABgAAAA4AAAAVAAAAHAAAACMAAAAqAAAAMQAAADIAAAArAAAAJAAAAB0AAAAWAAAAHgAAACUAAAAsAAAAMwAAADQAAAAtAAAAJgAAAC4AAAA1AAAANgAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAQAAAACQAAAAIAAAADAAAACgAAABEAAAAYAAAAIAAAABkAAAASAAAACwAAAAQAAAAFAAAADAAAABMAAAAaAAAAIQAAACgAAAApAAAAIgAAABsAAAAUAAAADQAAABUAAAAcAAAAIwAAACoAAAArAAAAJAAAAB0AAAAlAAAALAAAAC0AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAAAAAAAEAAAAIAAAAEAAAAAkAAAACAAAAAwAAAAoAAAARAAAAGAAAACAAAAAZAAAAEgAAAAsAAAAEAAAADAAAABMAAAAaAAAAIQAAACIAAAAbAAAAFAAAABwAAAAjAAAAJAAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAQAAAACQAAAAIAAAADAAAACgAAABEAAAAYAAAAGQAAABIAAAALAAAAEwAAABoAAAAbAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAAAAAAABAAAACAAAABAAAAAJAAAAAgAAAAoAAAARAAAAEgAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAgAAAAJAAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAIEBHVoOAoYlEAMUERIECwgUBdgDFwbaARkH5QAcCG8AHgk2ACEKGgAjCw0ACQwGAAoNAwAMDQEAjw9/WiQQJT8mEfIsJxJ8ICgTuRcqFIIRKxXvDC0WoQkuFy8HMBhcBTEZBgQzGgMDNBtAAjYcsQE4HUQBOR71ADsftwA8IIoAPiFoAD8iTgAgIzsAIQksAKUl4VpAJkxIQScNOkMo8S5EKR8mRSozH0YrqBlILBgVSS13EUoudA5LL/sLTTD4CU4xYQhPMgYHMDPNBTI03gQyNQ8EMzZjAzQ31AI1OFwCNjn4ATc6pAE4O2ABOTwlATo99gA7PssAPT+rAD0gjwDBQRJbUEIETVFDLEFSRNg3U0XoL1RGPClWR3kjV0jfHldJqRpISk4XSEskFEpMnBFKTWsPS05RDU1PtgtNMEAK0FEyWFhSHE1ZU45DWlTdO1tV7jRcVq4uXVeaKVZHFiXYWXBVX1qpTGBb2URhXCI+Y10kOGNetDJdVhcu32CoVmVhRk9mYuVHZ2PPQWhkPTxjXV43aWYxUmpnD0xraDlGZ2NeQelqJ1Zsa+dQbWeFS25tl1Vva09Q7m8QWnBtIlXwb+tZcXEdWgAAAAAAAAAA1aMAAOujAAALpAAAMKQAAEqkAABppAAAfqQAAJukAADFpAAABaUAACSlAAA7pQAAUaUAAGWlAACipQAA0qUAAO6lAAARpgAASKYAAH+mAACWpgAAtqYAAOCmAAAtpwAASKcAAHOnAACPpwAAtKcAANqnAAD/pwAAEqgAACeoAAA6qAAATagAAHKoAACHqAAAm6gAALyoAADSqAAAAakAACmpAABKqQAAa6kAAJqpAACrqQAAx6kAAAWqAAAsqgAAU6oAAGeqAACVqgAAvaoAANmqAAD+qgAAIKsAAEqrAAB1qwAAk6sAAMGrAADpqwAAEKwAADusAABorAAAmKwAAMKsAADvrAAAEq0AADCtAABOrQAAhK0AAK6tAADNrQAA8K0AABeuAAAsrgAAQK4AAHWuAACFrgAAw64AAAWvAAAvrwAAW68AAIKvAACerwAAya8AAOSvAAD4rwAAD7AAABywAABEsAAAebAAALWwAADjsAAABLEAACuxAABEsQAAbLEAAI+xAACnsQAAy7EAAPCxAAD2sQAAL7IAAGmyAACIsgAAl7IAALSyAADSsgAA77IAAAizAAAhswAAY7MAAJ2zAADTswAAB7QAABu0AAAytAAAWLQAAH+0AADBtAAA/bQAAC61AABStQAAgLUAAJu1AADTtQAA/rUAAAAAAAAAAAAAAQAAAAIAAAADAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAAGAAAAAwAAAAcAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAABgAAAAIAAAAEAAAABwAAAAwAAAADAAAACAAAAAsAAAANAAAACQAAAAoAAAAOAAAADwAAAAAAAAABAAAABQAAAAYAAAAOAAAAAgAAAAQAAAAHAAAADQAAAA8AAAADAAAACAAAAAwAAAAQAAAAFQAAAAkAAAALAAAAEQAAABQAAAAWAAAACgAAABIAAAATAAAAFwAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAAGAAAADgAAAA8AAAACAAAABAAAAAcAAAANAAAAEAAAABkAAAADAAAACAAAAAwAAAARAAAAGAAAABoAAAAJAAAACwAAABIAAAAXAAAAGwAAACAAAAAKAAAAEwAAABYAAAAcAAAAHwAAACEAAAAUAAAAFQAAAB0AAAAeAAAAIgAAACMAAAAAAAAAAQAAAAUAAAAGAAAADgAAAA8AAAAbAAAAAgAAAAQAAAAHAAAADQAAABAAAAAaAAAAHAAAAAMAAAAIAAAADAAAABEAAAAZAAAAHQAAACYAAAAJAAAACwAAABIAAAAYAAAAHgAAACUAAAAnAAAACgAAABMAAAAXAAAAHwAAACQAAAAoAAAALQAAABQAAAAWAAAAIAAAACMAAAApAAAALAAAAC4AAAAVAAAAIQAAACIAAAAqAAAAKwAAAC8AAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAABgAAAA4AAAAPAAAAGwAAABwAAAACAAAABAAAAAcAAAANAAAAEAAAABoAAAAdAAAAKgAAAAMAAAAIAAAADAAAABEAAAAZAAAAHgAAACkAAAArAAAACQAAAAsAAAASAAAAGAAAAB8AAAAoAAAALAAAADUAAAAKAAAAEwAAABcAAAAgAAAAJwAAAC0AAAA0AAAANgAAABQAAAAWAAAAIQAAACYAAAAuAAAAMwAAADcAAAA8AAAAFQAAACIAAAAlAAAALwAAADIAAAA4AAAAOwAAAD0AAAAjAAAAJAAAADAAAAAxAAAAOQAAADoAAAA+AAAAPwAAAAAAAAABAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAAAQMVYn1NCSwBASTKjIqgRxVghe/xzYmjFWL9FCzB+GJ9T/HNBbVRin1OzQUEtEhdCS2JoVGJ+WEJLITu6KMMUAEDFWJ9TQksAQEkyoyKoEUkyv0WzQSE7STKCJzcb4A2jIgswQS26KKMiNxu/Eo4JqBF+GBIXwxSoEeANjgnfBAAAAAAAAPA/72FIsVAx9j/Kb02Rruf0P6oRbO9i0PI/AAAAAAAA8D87v6fAaSTpP7sgx3t6UeE/Xaty3lWo0T8AwDDwDMw8/APDM/MPzz//gECwcIxMvHyDQ7Nzj0+/fyDgENAs7BzcI+MT0y/vH9+gYJBQrGycXKNjk1Ovb59fCMg4+ATENPQLyzv7B8c394hIuHiERLR0i0u7e4dHt3co6BjYJOQU1CvrG9sn5xfXqGiYWKRklFSra5tbp2eXVwLCMvIOzj7+AcEx8Q3NPf2CQrJyjk6+foFBsXGNTb19IuIS0i7uHt4h4RHRLe0d3aJiklKubp5eoWGRUa1tnV0Kyjr6BsY29gnJOfkFxTX1ikq6eoZGtnaJSbl5hUW1dSrqGtom5hbWKekZ2SXlFdWqappapmaWVqlpmVmlZZVV3hIElQAAAAD///////////////8AAAAAAAAAAAAAAAACAADAAwAAwAQAAMAFAADABgAAwAcAAMAIAADACQAAwAoAAMALAADADAAAwA0AAMAOAADADwAAwBAAAMARAADAEgAAwBMAAMAUAADAFQAAwBYAAMAXAADAGAAAwBkAAMAaAADAGwAAwBwAAMAdAADAHgAAwB8AAMAAAACzAQAAwwIAAMMDAADDBAAAwwUAAMMGAADDBwAAwwgAAMMJAADDCgAAwwsAAMMMAADDDQAA0w4AAMMPAADDAAAMuwEADMMCAAzDAwAMwwQADNMAAAAA/////////////////////////////////////////////////////////////////wABAgMEBQYHCAn/////////CgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiP///////8KCwwNDg8QERITFBUWFxgZGhscHR4fICEiI/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAARAAoAERERAAAAAAUAAAAAAAAJAAAAAAsAAAAAAAAAABEADwoREREDCgcAARMJCwsAAAkGCwAACwAGEQAAABEREQAAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAARAAoKERERAAoAAAIACQsAAAAJAAsAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAMAAAAAAkMAAAAAAAMAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAA0AAAAEDQAAAAAJDgAAAAAADgAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAPAAAAAA8AAAAACRAAAAAAABAAABAAABIAAAASEhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABISEgAAAAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAAAAAAoAAAAACgAAAAAJCwAAAAAACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAADAxMjM0NTY3ODlBQkNERUYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgACAAIAAgACAAIAAgACAAIAAyACIAIgAiACIAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAFgBMAEwATABMAEwATABMAEwATABMAEwATABMAEwATACNgI2AjYCNgI2AjYCNgI2AjYCNgEwATABMAEwATABMAEwAjVCNUI1QjVCNUI1QjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUIxQjFCMUEwATABMAEwATABMAI1gjWCNYI1gjWCNYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGCMYIxgjGBMAEwATABMACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAYQAAAGIAAABjAAAAZAAAAGUAAABmAAAAZwAAAGgAAABpAAAAagAAAGsAAABsAAAAbQAAAG4AAABvAAAAcAAAAHEAAAByAAAAcwAAAHQAAAB1AAAAdgAAAHcAAAB4AAAAeQAAAHoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABhAAAAYgAAAGMAAABkAAAAZQAAAGYAAABnAAAAaAAAAGkAAABqAAAAawAAAGwAAABtAAAAbgAAAG8AAABwAAAAcQAAAHIAAABzAAAAdAAAAHUAAAB2AAAAdwAAAHgAAAB5AAAAegAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACQAAAAlAAAAJgAAACcAAAAoAAAAKQAAACoAAAArAAAALAAAAC0AAAAuAAAALwAAADAAAAAxAAAAMgAAADMAAAA0AAAANQAAADYAAAA3AAAAOAAAADkAAAA6AAAAOwAAADwAAAA9AAAAPgAAAD8AAABAAAAAQQAAAEIAAABDAAAARAAAAEUAAABGAAAARwAAAEgAAABJAAAASgAAAEsAAABMAAAATQAAAE4AAABPAAAAUAAAAFEAAABSAAAAUwAAAFQAAABVAAAAVgAAAFcAAABYAAAAWQAAAFoAAABbAAAAXAAAAF0AAABeAAAAXwAAAGAAAABBAAAAQgAAAEMAAABEAAAARQAAAEYAAABHAAAASAAAAEkAAABKAAAASwAAAEwAAABNAAAATgAAAE8AAABQAAAAUQAAAFIAAABTAAAAVAAAAFUAAABWAAAAVwAAAFgAAABZAAAAWgAAAHsAAAB8AAAAfQAAAH4AAAB/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZEkQ7Aj8sRxQ9MzAKGwZGS0U3D0kOjhcDQB08aSs2H0otHAEgJSkhCAwVFiIuEDg+CzQxGGR0dXYvQQl/OREjQzJCiYqLBQQmKCcNKh41jAcaSJMTlJUAAAAAAAAAAABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAAoAAABkAAAA6AMAABAnAACghgEAQEIPAICWmAAA4fUFTENfQ1RZUEUAAAAATENfTlVNRVJJQwAATENfVElNRQAAAAAATENfQ09MTEFURQAATENfTU9ORVRBUlkATENfTUVTU0FHRVMAAAAAAAAAAAAAAAAAAgAAAAMAAAAFAAAABwAAAAsAAAANAAAAEQAAABMAAAAXAAAAHQAAAB8AAAAlAAAAKQAAACsAAAAvAAAANQAAADsAAAA9AAAAQwAAAEcAAABJAAAATwAAAFMAAABZAAAAYQAAAGUAAABnAAAAawAAAG0AAABxAAAAfwAAAIMAAACJAAAAiwAAAJUAAACXAAAAnQAAAKMAAACnAAAArQAAALMAAAC1AAAAvwAAAMEAAADFAAAAxwAAANMAAAABAAAACwAAAA0AAAARAAAAEwAAABcAAAAdAAAAHwAAACUAAAApAAAAKwAAAC8AAAA1AAAAOwAAAD0AAABDAAAARwAAAEkAAABPAAAAUwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB5AAAAfwAAAIMAAACJAAAAiwAAAI8AAACVAAAAlwAAAJ0AAACjAAAApwAAAKkAAACtAAAAswAAALUAAAC7AAAAvwAAAMEAAADFAAAAxwAAANEAAAAwMTIzNDU2Nzg5YWJjZGVmQUJDREVGeFgrLXBQaUluTgAAAAAAAAAAAAAAAAAAAAAlAAAAbQAAAC8AAAAlAAAAZAAAAC8AAAAlAAAAeQAAACUAAABZAAAALQAAACUAAABtAAAALQAAACUAAABkAAAAJQAAAEkAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAHAAAAAAAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAAAAAAAAAAAAAAAAAAlAAAASAAAADoAAAAlAAAATQAAADoAAAAlAAAAUwAAACUAAABIAAAAOgAAACUAAABNAAAAOgAAACUAAABTAAAApD8AABVdAADMPwAAiWkAAIAzAAAAAAAAzD8AAHRsAAA4NgAAAAAAAMw/AAAjdwAAGD0AAAAAAADMPwAAi4cAABg9AAAAAAAAzD8AAP+HAAAYPQAAAAAAADhAAADlngAAAAAAAAEAAADwMwAAAAAAAKQ/AAAknwAABQAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAABG4QAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAIyQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAYzQAAAAQAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAACv////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApD8AAEe3AADMPwAAp7cAAFA2AAAAAAAAzD8AAFS3AABgNgAAAAAAAKQ/AAB1twAAzD8AAIK3AABANgAAAAAAAMw/AADxtwAAODYAAAAAAADMPwAAAbgAAHg2AAAAAAAAzD8AABK4AABQNgAAAAAAAMw/AAA0uAAAmDYAAAAAAADMPwAAWLgAAFA2AAAAAAAAHEAAAIC4AAAcQAAAgrgAABxAAACEuAAAHEAAAIa4AAAcQAAAiLgAABxAAACKuAAAHEAAAIy4AAAcQAAAjrgAABxAAACQuAAAHEAAAA3BAAAcQAAAkrgAABxAAACUuAAAHEAAAJa4AADMPwAAmLgAAEA2AAAAAAAApD8AANu7AACkPwAA+rsAAKQ/AAAZvAAApD8AADi8AACkPwAAV7wAAKQ/AAB2vAAApD8AAJW8AACkPwAAtLwAAKQ/AADTvAAApD8AAPK8AACkPwAAEb0AAKQ/AAAwvQAApD8AAE+9AAA4QAAAYr0AAAAAAAABAAAA8DMAAAAAAAA4QAAAob0AAAAAAAABAAAA8DMAAAAAAADMPwAA8r0AAOg3AAAAAAAApD8AAOC9AADMPwAAHL4AAOg3AAAAAAAApD8AAEa+AACkPwAAd74AADhAAACovgAAAAAAAAEAAADYNwAAA/T//zhAAADXvgAAAAAAAAEAAADwNwAAA/T//zhAAAAGvwAAAAAAAAEAAADYNwAAA/T//zhAAAA1vwAAAAAAAAEAAADwNwAAA/T//8w/AABkvwAACDgAAAAAAADMPwAAfb8AAAA4AAAAAAAAzD8AALy/AAAIOAAAAAAAAMw/AADUvwAAADgAAAAAAADMPwAA7L8AAMA4AAAAAAAAzD8AAADAAAAQPQAAAAAAAMw/AAAWwAAAwDgAAAAAAAA4QAAAL8AAAAAAAAACAAAAwDgAAAIAAAAAOQAAAAAAADhAAABzwAAAAAAAAAEAAAAYOQAAAAAAAKQ/AACJwAAAOEAAAKLAAAAAAAAAAgAAAMA4AAACAAAAQDkAAAAAAAA4QAAA5sAAAAAAAAABAAAAGDkAAAAAAAA4QAAAD8EAAAAAAAACAAAAwDgAAAIAAAB4OQAAAAAAADhAAABTwQAAAAAAAAEAAACQOQAAAAAAAKQ/AABpwQAAOEAAAILBAAAAAAAAAgAAAMA4AAACAAAAuDkAAAAAAAA4QAAAxsEAAAAAAAABAAAAkDkAAAAAAAA4QAAAHMMAAAAAAAADAAAAwDgAAAIAAAD4OQAAAgAAAAA6AAAACAAApD8AAIPDAACkPwAAYcMAADhAAACWwwAAAAAAAAMAAADAOAAAAgAAAPg5AAACAAAAMDoAAAAIAACkPwAA28MAADhAAAD9wwAAAAAAAAIAAADAOAAAAgAAAFg6AAAACAAApD8AAELEAAA4QAAAV8QAAAAAAAACAAAAwDgAAAIAAABYOgAAAAgAADhAAACcxAAAAAAAAAIAAADAOAAAAgAAAKA6AAACAAAApD8AALjEAAA4QAAAzcQAAAAAAAACAAAAwDgAAAIAAACgOgAAAgAAADhAAADpxAAAAAAAAAIAAADAOAAAAgAAAKA6AAACAAAAOEAAAAXFAAAAAAAAAgAAAMA4AAACAAAAoDoAAAIAAAA4QAAAMMUAAAAAAAACAAAAwDgAAAIAAAAoOwAAAAAAAKQ/AAB2xQAAOEAAAJrFAAAAAAAAAgAAAMA4AAACAAAAUDsAAAAAAACkPwAA4MUAADhAAAD/xQAAAAAAAAIAAADAOAAAAgAAAHg7AAAAAAAApD8AAEXGAAA4QAAAXsYAAAAAAAACAAAAwDgAAAIAAACgOwAAAAAAAKQ/AACkxgAAOEAAAL3GAAAAAAAAAgAAAMA4AAACAAAAyDsAAAIAAACkPwAA0sYAADhAAABpxwAAAAAAAAIAAADAOAAAAgAAAMg7AAACAAAAzD8AAOrGAAAAPAAAAAAAADhAAAANxwAAAAAAAAIAAADAOAAAAgAAACA8AAACAAAApD8AADDHAADMPwAAR8cAAAA8AAAAAAAAOEAAAH7HAAAAAAAAAgAAAMA4AAACAAAAIDwAAAIAAAA4QAAAoMcAAAAAAAACAAAAwDgAAAIAAAAgPAAAAgAAADhAAADCxwAAAAAAAAIAAADAOAAAAgAAACA8AAACAAAAzD8AAOXHAADAOAAAAAAAADhAAAD7xwAAAAAAAAIAAADAOAAAAgAAAMg8AAACAAAApD8AAA3IAAA4QAAAIsgAAAAAAAACAAAAwDgAAAIAAADIPAAAAgAAAMw/AAA/yAAAwDgAAAAAAADMPwAAVMgAAMA4AAAAAAAApD8AAGnIAAA4QAAAgsgAAAAAAAABAAAAED0AAAAAAAABAAAAAAAAAIgzAAABAAAAAgAAAAAAAACAMwAAAwAAAAQAAAAAAAAAmDMAAAUAAAAGAAAAAQAAALlSjD6OWuc+uVKMPgAAAACoMwAABwAAAAgAAAAJAAAAAQAAAAoAAAAAAAAAuDMAAAcAAAALAAAADAAAAAIAAAANAAAAAAAAAMgzAAAHAAAADgAAAA8AAAADAAAAEAAAAP/////+/////f///8g2AAAANwAAIDcAAMg2AAAANwAAADcAACg3AAAANwAAyDYAAAA3AAAoNwAAADcAAMg2AAAANwAAADcAANgzAAAANwAAADcAAAA3AAAANwAAADcAANgzAAAANwAAADcAAAEAAAAAAAAAAgAAAEAGAACAPgAAAAAAAIgTAABAFgAAFAAAAEMuVVRGLTgAAAAAAAAAAAAAAAAAUD4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA+DMAAIg0AAAYNQAAGDUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgGwAAIB8AACAlAABfcIkA/wkvDwAAAABANgAAEQAAABIAAAATAAAAFAAAAAQAAAABAAAAAQAAAAEAAAAAAAAAaDYAABEAAAAVAAAAEwAAABQAAAAEAAAAAgAAAAIAAAACAAAAAAAAAHg2AAAWAAAAFwAAAAQAAAAAAAAAiDYAABYAAAAYAAAABAAAAAAAAAC4NgAAEQAAABkAAAATAAAAFAAAAAUAAAAAAAAAMDcAABEAAAAaAAAAEwAAABQAAAAEAAAAAwAAAAMAAAADAAAAAAAAAOg3AAAbAAAAHAAAAAAAAAAAOAAAHQAAAB4AAAABAAAABgAAAAQAAAAEAAAABQAAAAYAAAAHAAAABwAAAAgAAAAEAAAACAAAAAUAAAAAAAAACDgAAB8AAAAgAAAAAgAAAAkAAAAFAAAABQAAAAkAAAAKAAAACgAAAAsAAAAMAAAABgAAAAsAAAAHAAAACAAAAAAAAAAQOAAAIQAAACIAAAD4////+P///xA4AAAjAAAAJAAAAPRAAAAIQQAACAAAAAAAAAAoOAAAJQAAACYAAAD4////+P///yg4AAAnAAAAKAAAACRBAAA4QQAABAAAAAAAAABAOAAAKQAAACoAAAD8/////P///0A4AAArAAAALAAAAFRBAABoQQAABAAAAAAAAABYOAAALQAAAC4AAAD8/////P///1g4AAAvAAAAMAAAAIRBAACYQQAAAAAAAHA4AAAfAAAAMQAAAAMAAAAJAAAABQAAAAUAAAANAAAACgAAAAoAAAALAAAADAAAAAYAAAAMAAAACAAAAAAAAACAOAAAHQAAADIAAAAEAAAABgAAAAQAAAAEAAAADgAAAAYAAAAHAAAABwAAAAgAAAAEAAAADQAAAAkAAAAAAAAAkDgAAB8AAAAzAAAABQAAAAkAAAAFAAAABQAAAAkAAAAKAAAACgAAAA8AAAAQAAAACgAAAAsAAAAHAAAAAAAAAKA4AAAdAAAANAAAAAYAAAAGAAAABAAAAAQAAAAFAAAABgAAAAcAAAARAAAAEgAAAAsAAAAIAAAABQAAAAAAAACwOAAANQAAADYAAAA3AAAAAQAAAAYAAAAOAAAAAAAAANA4AAA4AAAAOQAAADcAAAACAAAABwAAAA8AAAAAAAAA4DgAADoAAAA7AAAANwAAAAEAAAACAAAAAwAAAAQAAAAFAAAABgAAAAcAAAAIAAAACQAAAAoAAAALAAAAAAAAACA5AAA8AAAAPQAAADcAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAAAAAAABYOQAAPgAAAD8AAAA3AAAAAwAAAAQAAAAXAAAABQAAABgAAAABAAAAAgAAAAYAAAAAAAAAmDkAAEAAAABBAAAANwAAAAcAAAAIAAAAGQAAAAkAAAAaAAAAAwAAAAQAAAAKAAAAAAAAANA5AABCAAAAQwAAADcAAAATAAAAGwAAABwAAAAdAAAAHgAAAB8AAAABAAAA+P///9A5AAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAAAAAAAg6AABEAAAARQAAADcAAAAbAAAAIAAAACEAAAAiAAAAIwAAACQAAAACAAAA+P///wg6AAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAAAAAAJQAAAG0AAAAvAAAAJQAAAGQAAAAvAAAAJQAAAHkAAAAAAAAAJQAAAEkAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAHAAAAAAAAAAJQAAAGEAAAAgAAAAJQAAAGIAAAAgAAAAJQAAAGQAAAAgAAAAJQAAAEgAAAA6AAAAJQAAAE0AAAA6AAAAJQAAAFMAAAAgAAAAJQAAAFkAAAAAAAAAQQAAAE0AAAAAAAAAUAAAAE0AAAAAAAAASgAAAGEAAABuAAAAdQAAAGEAAAByAAAAeQAAAAAAAABGAAAAZQAAAGIAAAByAAAAdQAAAGEAAAByAAAAeQAAAAAAAABNAAAAYQAAAHIAAABjAAAAaAAAAAAAAABBAAAAcAAAAHIAAABpAAAAbAAAAAAAAABNAAAAYQAAAHkAAAAAAAAASgAAAHUAAABuAAAAZQAAAAAAAABKAAAAdQAAAGwAAAB5AAAAAAAAAEEAAAB1AAAAZwAAAHUAAABzAAAAdAAAAAAAAABTAAAAZQAAAHAAAAB0AAAAZQAAAG0AAABiAAAAZQAAAHIAAAAAAAAATwAAAGMAAAB0AAAAbwAAAGIAAABlAAAAcgAAAAAAAABOAAAAbwAAAHYAAABlAAAAbQAAAGIAAABlAAAAcgAAAAAAAABEAAAAZQAAAGMAAABlAAAAbQAAAGIAAABlAAAAcgAAAAAAAABKAAAAYQAAAG4AAAAAAAAARgAAAGUAAABiAAAAAAAAAE0AAABhAAAAcgAAAAAAAABBAAAAcAAAAHIAAAAAAAAASgAAAHUAAABuAAAAAAAAAEoAAAB1AAAAbAAAAAAAAABBAAAAdQAAAGcAAAAAAAAAUwAAAGUAAABwAAAAAAAAAE8AAABjAAAAdAAAAAAAAABOAAAAbwAAAHYAAAAAAAAARAAAAGUAAABjAAAAAAAAAFMAAAB1AAAAbgAAAGQAAABhAAAAeQAAAAAAAABNAAAAbwAAAG4AAABkAAAAYQAAAHkAAAAAAAAAVAAAAHUAAABlAAAAcwAAAGQAAABhAAAAeQAAAAAAAABXAAAAZQAAAGQAAABuAAAAZQAAAHMAAABkAAAAYQAAAHkAAAAAAAAAVAAAAGgAAAB1AAAAcgAAAHMAAABkAAAAYQAAAHkAAAAAAAAARgAAAHIAAABpAAAAZAAAAGEAAAB5AAAAAAAAAFMAAABhAAAAdAAAAHUAAAByAAAAZAAAAGEAAAB5AAAAAAAAAFMAAAB1AAAAbgAAAAAAAABNAAAAbwAAAG4AAAAAAAAAVAAAAHUAAABlAAAAAAAAAFcAAABlAAAAZAAAAAAAAABUAAAAaAAAAHUAAAAAAAAARgAAAHIAAABpAAAAAAAAAFMAAABhAAAAdAAAAAAAAAAAAAAAODoAAEYAAABHAAAANwAAAAEAAAAAAAAAYDoAAEgAAABJAAAANwAAAAIAAAAAAAAAgDoAAEoAAABLAAAANwAAACMAAAAkAAAABwAAAAgAAAAJAAAACgAAACUAAAALAAAADAAAAAAAAACoOgAATAAAAE0AAAA3AAAAJgAAACcAAAANAAAADgAAAA8AAAAQAAAAKAAAABEAAAASAAAAAAAAAMg6AABOAAAATwAAADcAAAApAAAAKgAAABMAAAAUAAAAFQAAABYAAAArAAAAFwAAABgAAAAAAAAA6DoAAFAAAABRAAAANwAAACwAAAAtAAAAGQAAABoAAAAbAAAAHAAAAC4AAAAdAAAAHgAAAAAAAAAIOwAAUgAAAFMAAAA3AAAAAwAAAAQAAAAAAAAAMDsAAFQAAABVAAAANwAAAAUAAAAGAAAAAAAAAFg7AABWAAAAVwAAADcAAAABAAAAJQAAAAAAAACAOwAAWAAAAFkAAAA3AAAAAgAAACYAAAAAAAAAqDsAAFoAAABbAAAANwAAABAAAAAGAAAAHwAAAAAAAADQOwAAXAAAAF0AAAA3AAAAEQAAAAcAAAAgAAAAAAAAACg8AABeAAAAXwAAADcAAAADAAAABAAAAAsAAAAvAAAAMAAAAAwAAAAxAAAAAAAAAPA7AABeAAAAYAAAADcAAAADAAAABAAAAAsAAAAvAAAAMAAAAAwAAAAxAAAAAAAAAFg8AABhAAAAYgAAADcAAAAFAAAABgAAAA0AAAAyAAAAMwAAAA4AAAA0AAAAAAAAAJg8AABjAAAAZAAAADcAAAAAAAAAqDwAAGUAAABmAAAANwAAAAwAAAASAAAADQAAABMAAAAOAAAAAwAAABQAAAAPAAAAAAAAAPA8AABnAAAAaAAAADcAAAA1AAAANgAAACEAAAAiAAAAIwAAAAAAAAAAPQAAaQAAAGoAAAA3AAAANwAAADgAAAAkAAAAJQAAACYAAABmAAAAYQAAAGwAAABzAAAAZQAAAAAAAAB0AAAAcgAAAHUAAABlAAAAAAAAAAAAAADAOAAAXgAAAGsAAAA3AAAAAAAAANA8AABeAAAAbAAAADcAAAAVAAAABAAAAAUAAAAGAAAADwAAABYAAAAQAAAAFwAAABEAAAAHAAAAGAAAABAAAAAAAAAAODwAAF4AAABtAAAANwAAAAcAAAAIAAAAEQAAADkAAAA6AAAAEgAAADsAAAAAAAAAeDwAAF4AAABuAAAANwAAAAkAAAAKAAAAEwAAADwAAAA9AAAAFAAAAD4AAAAAAAAAADwAAF4AAABvAAAANwAAAAMAAAAEAAAACwAAAC8AAAAwAAAADAAAADEAAAAAAAAAADoAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAAAAAAMDoAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAABFcnJvcjogbGFiZWxpbmcgd29yayBvdmVyZmxvdy4KAFVua25vd24gb3IgdW5zdXBwb3J0ZWQgbGFiZWxpbmcgdGhyZXNob2xkIG1vZGUgcmVxdWVzdGVkLiBTZXQgdG8gbWFudWFsLgoATGFiZWxpbmcgdGhyZXNob2xkIG1vZGUgc2V0IHRvICVzLgoATUFOVUFMAEFVVE9fTUVESUFOAEFVVE9fT1RTVQBBVVRPX0FEQVBUSVZFAEFVVE9fQlJBQ0tFVElORwBFcnJvcjogVW5zdXBwb3J0ZWQgcGl4ZWwgZm9ybWF0ICglZCkgcmVxdWVzdGVkLgoAQXV0byB0aHJlc2hvbGQgKGJyYWNrZXQpIG1hcmtlciBjb3VudHMgLVslM2Q6ICUzZF0gWyUzZDogJTNkXSBbJTNkOiAlM2RdKy4KAEF1dG8gdGhyZXNob2xkIChicmFja2V0KSBhZGp1c3RlZCB0aHJlc2hvbGQgdG8gJWQuCgBtZWRpYW4AT3RzdQBBdXRvIHRocmVzaG9sZCAoJXMpIGFkanVzdGVkIHRocmVzaG9sZCB0byAlZC4KAD8/PyAxCgA/Pz8gMgoAPz8/IDMKAEVycm9yOiB1bnN1cHBvcnRlZCBwaXhlbCBmb3JtYXQuCgBFcnJvcjogTlVMTCBwYXR0SGFuZGxlLgoARXJyb3I6IGNhbid0IGxvYWQgcGF0dGVybiBmcm9tIE5VTEwgYnVmZmVyLgoARXJyb3I6IG91dCBvZiBtZW1vcnkuCgAgCQoNAFBhdHRlcm4gRGF0YSByZWFkIGVycm9yISEKAEVycm9yIHJlYWRpbmcgcGF0dGVybiBmaWxlICclcycuCgBFcnJvciAoJWQpOiB1bmFibGUgdG8gb3BlbiBjYW1lcmEgcGFyYW1ldGVycyBmaWxlICIlcyIgZm9yIHJlYWRpbmcuCgBFcnJvciAoJWQpOiB1bmFibGUgdG8gZGV0ZXJtaW5lIGZpbGUgbGVuZ3RoLgBFcnJvcjogc3VwcGxpZWQgZmlsZSBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgYW4gQVJUb29sS2l0IGNhbWVyYSBwYXJhbWV0ZXIgZmlsZS4KAEVycm9yICglZCk6IHVuYWJsZSB0byByZWFkIGZyb20gZmlsZS4AYXJnbENhbWVyYUZydXN0dW1SSCgpOiBhclBhcmFtRGVjb21wTWF0KCkgaW5kaWNhdGVkIHBhcmFtZXRlciBlcnJvci4KAEVycm9yOiBpY3BHZXRKX1VfWGMARXJyb3IgMTogaWNwR2V0SW5pdFh3MlhjCgBFcnJvciAyOiBpY3BHZXRJbml0WHcyWGMKAEVycm9yIDM6IGljcEdldEluaXRYdzJYYwoARXJyb3IgNDogaWNwR2V0SW5pdFh3MlhjCgBFcnJvciA1OiBpY3BHZXRJbml0WHcyWGMKAEVycm9yIDY6IGljcEdldEluaXRYdzJYYwoARXJyb3IgNzogaWNwR2V0SW5pdFh3MlhjCgBFcnJvcjogdW5hYmxlIHRvIG9wZW4gbXVsdGltYXJrZXIgY29uZmlnIGZpbGUgJyVzJy4KAEVycm9yIHByb2Nlc3NpbmcgbXVsdGltYXJrZXIgY29uZmlnIGZpbGUgJyVzJzogRmlyc3QgbGluZSBtdXN0IGJlIG51bWJlciBvZiBtYXJrZXIgY29uZmlncyB0byByZWFkLgoAJWxsdSVjAEVycm9yIHByb2Nlc3NpbmcgbXVsdGltYXJrZXIgY29uZmlnIGZpbGUgJyVzJzogcGF0dGVybiAnJXMnIHNwZWNpZmllZCBpbiBtdWx0aW1hcmtlciBjb25maWd1cmF0aW9uIHdoaWxlIGluIGJhcmNvZGUtb25seSBtb2RlLgoARXJyb3IgcHJvY2Vzc2luZyBtdWx0aW1hcmtlciBjb25maWcgZmlsZSAnJXMnOiBVbmFibGUgdG8gZGV0ZXJtaW5lIGRpcmVjdG9yeSBuYW1lLgoARXJyb3IgcHJvY2Vzc2luZyBtdWx0aW1hcmtlciBjb25maWcgZmlsZSAnJXMnOiBVbmFibGUgdG8gbG9hZCBwYXR0ZXJuICclcycuCgAlbGYARXJyb3IgcHJvY2Vzc2luZyBtdWx0aW1hcmtlciBjb25maWcgZmlsZSAnJXMnLCBtYXJrZXIgZGVmaW5pdGlvbiAlM2Q6IEZpcnN0IGxpbmUgbXVzdCBiZSBwYXR0ZXJuIHdpZHRoLgoAJWxmICVsZiAlbGYgJWxmACVmICVmAEVycm9yIHByb2Nlc3NpbmcgbXVsdGltYXJrZXIgY29uZmlnIGZpbGUgJyVzJywgbWFya2VyIGRlZmluaXRpb24gJTNkOiBMaW5lcyAyIC0gNCBtdXN0IGJlIG1hcmtlciB0cmFuc2Zvcm0uCgBbJXNdIABkZWJ1ZwBpbmZvAHdhcm5pbmcAZXJyb3IAJXMlcwAuaXNldABFcnJvcjogdW5hYmxlIHRvIG9wZW4gZmlsZSAnJXMlcycgZm9yIHJlYWRpbmcuCgBFcnJvciByZWFkaW5nIGltYWdlU2V0LgoASW1hZ2VzZXQgY29udGFpbnMgJWQgaW1hZ2VzLgoARmFsbGluZyBiYWNrIHRvIHJlYWRpbmcgJyVzJXMnIGluIEFSVG9vbEtpdCB2NC54IGZvcm1hdC4KAEVycm9yIHJlYWRpbmcgSlBFRyBmaWxlLgoARXJyb3IgcmVhZGluZyBKUEVHIGZpbGUgaGVhZGVyLgoAJWYARmlsZSBvcGVuIGVycm9yLiAlcwoAUmVhZCBlcnJvciEhCgByAEVycm9yIG9wZW5pbmcgZmlsZSAnJXMnOiAAJXMlcwoAJWQACiMjIyBTdXJmYWNlIE5vLiVkICMjIwoAJXMAICBSZWFkIEltYWdlU2V0LgoARXJyb3Igb3BlbmluZyBmaWxlICclcy5pc2V0Jy4KACAgICBlbmQuCgAgIFJlYWQgRmVhdHVyZVNldC4KAEVycm9yIG9wZW5pbmcgZmlsZSAnJXMuZnNldCcuCgAgIFJlYWQgTWFya2VyU2V0LgoAbXJrAEVycm9yIG9wZW5pbmcgZmlsZSAnJXMubXJrJy4KACVmICVmICVmICVmAFRyYW5zZm9ybWF0aW9uIG1hdHJpeCByZWFkIGVycm9yISEKAGpwZwBrcG1EZWxldGVSZWZEYXRhU2V0KCk6IE5VTEwgcmVmRGF0YVNldFB0cjEvcmVmRGF0YVNldFB0cjIuCgBrcG1EZWxldGVSZWZEYXRhU2V0KCk6IE5VTEwgcmVmRGF0YVNldFB0ci4KAHJiAGtwbUxvYWRSZWZEYXRhU2V0KCk6IE5VTEwgZmlsZW5hbWUvcmVmRGF0YVNldFB0ci4KAEVycm9yIGxvYWRpbmcgS1BNIGRhdGE6IHVuYWJsZSB0byBvcGVuIGZpbGUgJyVzJXMlcycgZm9yIHJlYWRpbmcuCgBFcnJvciBsb2FkaW5nIEtQTSBkYXRhOiBlcnJvciByZWFkaW5nIGRhdGEuCgBrcG1DaGFuZ2VQYWdlTm9PZlJlZkRhdGFTZXQoKTogTlVMTCByZWZEYXRhU2V0LgoAa3BtU2V0UmVmRGF0YVNldCgpOiBOVUxMIGtwbUhhbmRsZS9yZWZEYXRhU2V0LgoAa3BtU2V0UmVmRGF0YVNldCgpOiByZWZEYXRhU2V0LgoAcG9pbnRzLSVkCgBrcG1NYXRjaGluZygpOiBOVUxMIGtwbUhhbmRsZS9pbkltYWdlTHVtYS4KAFBhZ2VbJWRdICBwcmU6JTNkLCBhZnQ6JTNkLCBlcnJvciA9ICVmCgAlcy4lcwBBc3NlcnRpb24gYHB5cmFtaWQtPnNpemUoKSA+IDBgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL2RldGVjdG9ycy9Eb0dfc2NhbGVfaW52YXJpYW50X2RldGVjdG9yLmNwcABQeXJhbWlkIGlzIG5vdCBhbGxvY2F0ZWQAT2N0YXZlIG91dCBvZiByYW5nZQBTY2FsZSBvdXQgb2YgcmFuZ2UAQXNzZXJ0aW9uIGBtSW1hZ2VzLnNpemUoKSA+IDBgIGZhaWxlZCBpbiAATGFwbGFjaWFuIHB5cmFtaWQgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZABBc3NlcnRpb24gYHB5cmFtaWQtPm51bU9jdGF2ZXMoKSA+IDBgIGZhaWxlZCBpbiAAUHlyYW1pZCBkb2VzIG5vdCBjb250YWluIGFueSBsZXZlbHMAQXNzZXJ0aW9uIGBkeW5hbWljX2Nhc3Q8Y29uc3QgQmlub21pYWxQeXJhbWlkMzJmKj4ocHlyYW1pZClgIGZhaWxlZCBpbiAAT25seSBiaW5vbWlhbCBweXJhbWlkIGlzIHN1cHBvcnRlZABBc3NlcnRpb24gYGQudHlwZSgpID09IElNQUdFX0YzMmAgZmFpbGVkIGluIABPbmx5IEYzMiBpbWFnZXMgc3VwcG9ydGVkAEFzc2VydGlvbiBgaW0xLnR5cGUoKSA9PSBJTUFHRV9GMzJgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpbTIudHlwZSgpID09IElNQUdFX0YzMmAgZmFpbGVkIGluIABBc3NlcnRpb24gYGQuY2hhbm5lbHMoKSA9PSAxYCBmYWlsZWQgaW4gAE9ubHkgc2luZ2xlIGNoYW5uZWwgaW1hZ2VzIHN1cHBvcnRlZABBc3NlcnRpb24gYGltMS5jaGFubmVscygpID09IDFgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpbTIuY2hhbm5lbHMoKSA9PSAxYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgZC53aWR0aCgpID09IGltMi53aWR0aCgpYCBmYWlsZWQgaW4gAEltYWdlcyBtdXN0IGhhdmUgdGhlIHNhbWUgd2lkdGgAQXNzZXJ0aW9uIGBkLmhlaWdodCgpID09IGltMi5oZWlnaHQoKWAgZmFpbGVkIGluIABJbWFnZXMgbXVzdCBoYXZlIHRoZSBzYW1lIGhlaWdodABBc3NlcnRpb24gYGltMS53aWR0aCgpID09IGltMi53aWR0aCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgaW0xLmhlaWdodCgpID09IGltMi5oZWlnaHQoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYHJvdyA8IG1IZWlnaHRgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL2ZyYW1ld29yay9pbWFnZS5oAHJvdyBvdXQgb2YgYm91bmRzAE42dmlzaW9uMjVHYXVzc2lhblNjYWxlU3BhY2VQeXJhbWlkRQBEb0cgUHlyYW1pZABOb24tbWF4IHN1cHByZXNzaW9uAFN1YnBpeGVsAHBydW5lRmVhdHVyZXMARmluZCBPcmllbnRhdGlvbnMAQXNzZXJ0aW9uIGBtQnVja2V0cy5zaXplKCkgPT0gbU51bUJ1Y2tldHNYYCBmYWlsZWQgaW4gAEJ1Y2tldHMgYXJlIG5vdCBhbGxvY2F0ZWQAQXNzZXJ0aW9uIGBtQnVja2V0c1swXS5zaXplKCkgPT0gbU51bUJ1Y2tldHNZYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgbUZlYXR1cmVQb2ludHMuc2l6ZSgpIDw9IG1NYXhOdW1GZWF0dXJlUG9pbnRzYCBmYWlsZWQgaW4gAFRvbyBtYW55IGZlYXR1cmUgcG9pbnRzAEFzc2VydGlvbiBgYnVja2V0WzBdLmZpcnN0ID49IGJ1Y2tldFtuXS5maXJzdGAgZmFpbGVkIGluIABudGhfZWxlbWVudCBmYWlsZWQAQXNzZXJ0aW9uIGBrcC5zY2FsZSA8IG1MYXBsYWNpYW5QeXJhbWlkLm51bVNjYWxlUGVyT2N0YXZlKClgIGZhaWxlZCBpbiAARmVhdHVyZSBwb2ludCBzY2FsZSBpcyBvdXQgb2YgYm91bmRzAEFzc2VydGlvbiBga3Auc2NvcmUgPT0gbGFwMS5nZXQ8ZmxvYXQ+KHkpW3hdYCBmYWlsZWQgaW4gAFNjb3JlIGlzIG5vdCBjb25zaXN0ZW50IHdpdGggdGhlIERvRyBpbWFnZQBBc3NlcnRpb24gYGxhcDAuaGVpZ2h0KCkgPT0gbGFwMS5oZWlnaHQoKSA9PSBsYXAyLmhlaWdodCgpYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9kZXRlY3RvcnMvRG9HX3NjYWxlX2ludmFyaWFudF9kZXRlY3Rvci5oAFdpZHRoL2hlaWdodCBhcmUgbm90IGNvbnNpc3RlbnQAQXNzZXJ0aW9uIGAobGFwMC5oZWlnaHQoKSA9PSBsYXAxLmhlaWdodCgpKSAmJiAoKGxhcDEuaGVpZ2h0KCk+PjEpID09IGxhcDIuaGVpZ2h0KCkpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKChsYXAwLndpZHRoKCk+PjEpID09IGxhcDEud2lkdGgoKSkgJiYgKGxhcDEud2lkdGgoKSA9PSBsYXAyLndpZHRoKCkpYCBmYWlsZWQgaW4gAEltYWdlIHNpemVzIGFyZSBpbmNvbnNpc3RlbnQAQXNzZXJ0aW9uIGAoeC0xKSA+PSAwICYmICh4KzEpIDwgbGFwMS53aWR0aCgpYCBmYWlsZWQgaW4gAHggb3V0IG9mIGJvdW5kcwBBc3NlcnRpb24gYCh5LTEpID49IDAgJiYgKHkrMSkgPCBsYXAxLmhlaWdodCgpYCBmYWlsZWQgaW4gAHkgb3V0IG9mIGJvdW5kcwBBc3NlcnRpb24gYChsYXAwLndpZHRoKCk+PjEpID09IGxhcDEud2lkdGgoKWAgZmFpbGVkIGluIABJbWFnZSBkaW1lbnNpb25zIGluY29uc2lzdGVudABBc3NlcnRpb24gYChsYXAwLndpZHRoKCk+PjEpID09IGxhcDIud2lkdGgoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYChsYXAwLmhlaWdodCgpPj4xKSA9PSBsYXAxLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKGxhcDAuaGVpZ2h0KCk+PjEpID09IGxhcDIuaGVpZ2h0KClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGAoaW50KXN0ZDo6Zmxvb3IoeCkgPT0gKGludCl4YCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9kZXRlY3RvcnMvaW50ZXJwb2xhdGUuaABmbG9vcigpIGFuZCBjYXN0IG5vdCB0aGUgc2FtZQBBc3NlcnRpb24gYChpbnQpc3RkOjpmbG9vcih5KSA9PSAoaW50KXlgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGB5cCA+PSAwICYmIHlwIDwgaGVpZ2h0YCBmYWlsZWQgaW4gAHlwIG91dCBvZiBib3VuZHMAQXNzZXJ0aW9uIGB5cF9wbHVzXzEgPj0gMCAmJiB5cF9wbHVzXzEgPCBoZWlnaHRgIGZhaWxlZCBpbiAAeXBfcGx1c18xIG91dCBvZiBib3VuZHMAQXNzZXJ0aW9uIGB4cCA+PSAwICYmIHhwIDwgd2lkdGhgIGZhaWxlZCBpbiAAeHAgb3V0IG9mIGJvdW5kcwBBc3NlcnRpb24gYHhwX3BsdXNfMSA+PSAwICYmIHhwX3BsdXNfMSA8IHdpZHRoYCBmYWlsZWQgaW4gAHhwX3BsdXNfMSBvdXQgb2YgYm91bmRzAEFzc2VydGlvbiBgdzAgPj0gMCAmJiB3MCA8PSAxLjAwMDFgIGZhaWxlZCBpbiAAT3V0IG9mIHJhbmdlAEFzc2VydGlvbiBgdzEgPj0gMCAmJiB3MSA8PSAxLjAwMDFgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGB3MiA+PSAwICYmIHcyIDw9IDEuMDAwMWAgZmFpbGVkIGluIABBc3NlcnRpb24gYHczID49IDAgJiYgdzMgPD0gMS4wMDAxYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKHcwK3cxK3cyK3czKSA8PSAxLjAwMDFgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGAoeC0xKSA+PSAwICYmICh4KzEpIDwgaW0ud2lkdGgoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYCh5LTEpID49IDAgJiYgKHkrMSkgPCBpbS5oZWlnaHQoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYGxhcDAud2lkdGgoKSA9PSBsYXAxLndpZHRoKClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBsYXAwLmhlaWdodCgpID09IGxhcDEuaGVpZ2h0KClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGB4X2Rpdl8yLTAuNWYgPj0gMGAgZmFpbGVkIGluIAB4X2Rpdl8yIG91dCBvZiBib3VuZHMgb3V0IG9mIGJvdW5kcyBmb3IgaW50ZXJwb2xhdGlvbgBBc3NlcnRpb24gYHlfZGl2XzItMC41ZiA+PSAwYCBmYWlsZWQgaW4gAHlfZGl2XzIgb3V0IG9mIGJvdW5kcyBvdXQgb2YgYm91bmRzIGZvciBpbnRlcnBvbGF0aW9uAEFzc2VydGlvbiBgeF9kaXZfMiswLjVmIDwgbGFwMi53aWR0aCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgeV9kaXZfMiswLjVmIDwgbGFwMi5oZWlnaHQoKWAgZmFpbGVkIGluIABBc3NlcnRpb24gYGxhcDAud2lkdGgoKSA9PSBsYXAyLndpZHRoKClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBsYXAwLmhlaWdodCgpID09IGxhcDIuaGVpZ2h0KClgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpbTAuaGVpZ2h0KCkgPT0gaW0xLmhlaWdodCgpYCBmYWlsZWQgaW4gAEhlaWdodCBpcyBpbmNvbnNpc3RlbnQAQXNzZXJ0aW9uIGBpbTAuaGVpZ2h0KCkgPT0gaW0yLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKGltMS5oZWlnaHQoKT4+MSkgPT0gaW0yLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKGltMC5oZWlnaHQoKT4+MSkgPT0gaW0xLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgKGltMC5oZWlnaHQoKT4+MSkgPT0gaW0yLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgaW5kZXggPCBtSW1hZ2VzLnNpemUoKWAgZmFpbGVkIGluIABJbmRleCBpcyBvdXQgb2YgcmFuZ2UATjZ2aXNpb24xOEJpbm9taWFsUHlyYW1pZDMyZkUAQXNzZXJ0aW9uIGB3aWR0aCA+PSA1YCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9kZXRlY3RvcnMvZ2F1c3NpYW5fc2NhbGVfc3BhY2VfcHlyYW1pZC5jcHAASW1hZ2UgaXMgdG9vIHNtYWxsAEFzc2VydGlvbiBgaGVpZ2h0ID49IDVgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpbWFnZS50eXBlKCkgPT0gSU1BR0VfVUlOVDhgIGZhaWxlZCBpbiAASW1hZ2UgbXVzdCBiZSBncmF5c2NhbGUAQXNzZXJ0aW9uIGBpbWFnZS5jaGFubmVscygpID09IDFgIGZhaWxlZCBpbiAASW1hZ2UgbXVzdCBoYXZlIDEgY2hhbm5lbABBc3NlcnRpb24gYG1QeXJhbWlkLnNpemUoKSA9PSBtTnVtT2N0YXZlcyptTnVtU2NhbGVzUGVyT2N0YXZlYCBmYWlsZWQgaW4gAFB5cmFtaWQgaGFzIG5vdCBiZWVuIGFsbG9jYXRlZCB5ZXQAQXNzZXJ0aW9uIGBpbWFnZS53aWR0aCgpID09IG1QeXJhbWlkWzBdLndpZHRoKClgIGZhaWxlZCBpbiAASW1hZ2Ugb2Ygd3Jvbmcgc2l6ZSBmb3IgcHlyYW1pZABBc3NlcnRpb24gYGltYWdlLmhlaWdodCgpID09IG1QeXJhbWlkWzBdLmhlaWdodCgpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgZHN0LnR5cGUoKSA9PSBJTUFHRV9GMzJgIGZhaWxlZCBpbiAARGVzdGluYXRpb24gaW1hZ2Ugc2hvdWxkIGJlIGEgZmxvYXQAVW5rbm93biBpbWFnZSB0eXBlAFVuc3VwcG9ydGVkIGltYWdlIHR5cGUATjZ2aXNpb245RXhjZXB0aW9uRQBBc3NlcnRpb24gYGltLndpZHRoKCkgPT0gaW0uc3RlcCgpL3NpemVvZihmbG9hdClgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL2RldGVjdG9ycy9vcmllbnRhdGlvbl9hc3NpZ25tZW50LmNwcABTdGVwIHNpemUgbXVzdCBiZSBlcXVhbCB0byB3aWR0aCBmb3Igbm93AEFzc2VydGlvbiBgeCA+PSAwYCBmYWlsZWQgaW4gAHggbXVzdCBiZSBwb3NpdGl2ZQBBc3NlcnRpb24gYHggPCBtR3JhZGllbnRzW29jdGF2ZSptTnVtU2NhbGVzUGVyT2N0YXZlK3NjYWxlXS53aWR0aCgpYCBmYWlsZWQgaW4gAHggbXVzdCBiZSBsZXNzIHRoYW4gdGhlIGltYWdlIHdpZHRoAEFzc2VydGlvbiBgeSA+PSAwYCBmYWlsZWQgaW4gAHkgbXVzdCBiZSBwb3NpdGl2ZQBBc3NlcnRpb24gYHkgPCBtR3JhZGllbnRzW29jdGF2ZSptTnVtU2NhbGVzUGVyT2N0YXZlK3NjYWxlXS5oZWlnaHQoKWAgZmFpbGVkIGluIAB5IG11c3QgYmUgbGVzcyB0aGFuIHRoZSBpbWFnZSBoZWlnaHQAQXNzZXJ0aW9uIGBnLmNoYW5uZWxzKCkgPT0gMmAgZmFpbGVkIGluIABOdW1iZXIgb2YgY2hhbm5lbHMgc2hvdWxkIGJlIDIAQXNzZXJ0aW9uIGBtYXhfaGVpZ2h0ID4gMGAgZmFpbGVkIGluIABNYXhpbXVtIGJpbiBzaG91bGQgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBoaXN0ICE9IE5VTExgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL2RldGVjdG9ycy9vcmllbnRhdGlvbl9hc3NpZ25tZW50LmgASGlzdG9ncmFtIHBvaW50ZXIgaXMgTlVMTABBc3NlcnRpb24gYChmYmluKzAuNWYpID4gMCAmJiAoZmJpbi0wLjVmKSA8IG51bV9iaW5zYCBmYWlsZWQgaW4gAERlY2ltYWwgYmluIHBvc2l0aW9uIGluZGV4IG91dCBvZiByYW5nZQBBc3NlcnRpb24gYG1hZ25pdHVkZSA+PSAwYCBmYWlsZWQgaW4gAE1hZ25pdHVkZSBjYW5ub3QgYmUgbmVnYXRpdmUAQXNzZXJ0aW9uIGBudW1fYmlucyA+PSAwYCBmYWlsZWQgaW4gAE51bWJlciBiaW5zIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGB3MSA+PSAwYCBmYWlsZWQgaW4gAHcxIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGB3MiA+PSAwYCBmYWlsZWQgaW4gAHcyIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBiMSA+PSAwICYmIGIxIDwgbnVtX2JpbnNgIGZhaWxlZCBpbiAAYjEgYmluIGluZGV4IG91dCBvZiByYW5nZQBBc3NlcnRpb24gYGIyID49IDAgJiYgYjIgPCBudW1fYmluc2AgZmFpbGVkIGluIABiMiBiaW4gaW5kZXggb3V0IG9mIHJhbmdlAElEIGFscmVhZHkgZXhpc3RzAEJ1aWxkIFB5cmFtaWQARXh0cmFjdCBGZWF0dXJlcwBBc3NlcnRpb24gYGFzc2lnbm1lbnQuc2l6ZSgpID09IG51bV9pbmRpY2VzYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9tYXRjaGVycy9iaW5hcnlfaGllcmFyY2hpY2FsX2NsdXN0ZXJpbmcuaABBc3NpZ25tZW50IHNpemUgd3JvbmcAQXNzZXJ0aW9uIGBhc3NpZ25tZW50W2ldICE9IC0xYCBmYWlsZWQgaW4gAEFzc2lnbm1lbnQgaXMgaW52YWxpZABBc3NlcnRpb24gYGFzc2lnbm1lbnRbaV0gPCBudW1faW5kaWNlc2AgZmFpbGVkIGluIABBc3NpZ25tZW50IG91dCBvZiByYW5nZQBBc3NlcnRpb24gYGluZGljZXNbYXNzaWdubWVudFtpXV0gPCBudW1fZmVhdHVyZXNgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBpdC0+c2Vjb25kLnNpemUoKSAhPSAwYCBmYWlsZWQgaW4gAENsdXN0ZXIgbXVzdCBoYXZlIGF0bGVhc2V0IDEgZmVhdHVyZQBBc3NlcnRpb24gYG1LID09IG1DZW50ZXJzLnNpemUoKWAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvbWF0Y2hlcnMva21lZG9pZHMuaABrIHNob3VsZCBtYXRjaCB0aGUgbnVtYmVyIG9mIGNsdXN0ZXIgY2VudGVycwBBc3NlcnRpb24gYG51bV9mZWF0dXJlcyA+IDBgIGZhaWxlZCBpbiAATnVtYmVyIG9mIGZlYXR1cmVzIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBudW1faW5kaWNlcyA8PSBudW1fZmVhdHVyZXNgIGZhaWxlZCBpbiAATW9yZSBpbmRpY2VzIHRoYW4gZmVhdHVyZXMAQXNzZXJ0aW9uIGBudW1faW5kaWNlcyA+PSBtS2AgZmFpbGVkIGluIABOb3QgZW5vdWdoIGZlYXR1cmVzAEFzc2lnbm1lbnQgc2l6ZSBpcyBpbmNvcnJlY3QAQXNzZXJ0aW9uIGBudW1fY2VudGVycyA+IDBgIGZhaWxlZCBpbiAAVGhlcmUgbXVzdCBiZSBhdCBsZWFzdCAxIGNlbnRlcgAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvbWF0Y2hlcnMvdmlzdWFsX2RhdGFiYXNlLmgAQXNzZXJ0aW9uIGBkZXRlY3RvcmAgZmFpbGVkIGluIABEZXRlY3RvciBpcyBOVUxMAEFzc2VydGlvbiBgcHlyYW1pZC0+aW1hZ2VzKCkuc2l6ZSgpID4gMGAgZmFpbGVkIGluIABQeXJhbWlkIGlzIGVtcHR5AEFzc2VydGlvbiBgcHlyYW1pZC0+aW1hZ2VzKClbMF0ud2lkdGgoKSA9PSBkZXRlY3Rvci0+d2lkdGgoKWAgZmFpbGVkIGluIABQeXJhbWlkIGFuZCBkZXRlY3RvciBzaXplIG1pc21hdGNoAEFzc2VydGlvbiBgcHlyYW1pZC0+aW1hZ2VzKClbMF0uaGVpZ2h0KCkgPT0gZGV0ZWN0b3ItPmhlaWdodCgpYCBmYWlsZWQgaW4gAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSU42dmlzaW9uOEtleWZyYW1lSUxpOTZFRUVFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQTjZ2aXNpb244S2V5ZnJhbWVJTGk5NkVFRU5TXzE0ZGVmYXVsdF9kZWxldGVJUzNfRUVOU185YWxsb2NhdG9ySVMzX0VFRUUAWyVzXSBbJXNdIFslc10gOiBGb3VuZCAlZCBmZWF0dXJlcyBpbiBxdWVyeQBib29sIHZpc2lvbjo6VmlzdWFsRGF0YWJhc2U8dmlzaW9uOjpGUkVBS0V4dHJhY3RvciwgdmlzaW9uOjpCaW5hcnlGZWF0dXJlU3RvcmUsIHZpc2lvbjo6QmluYXJ5RmVhdHVyZU1hdGNoZXI8OTY+ID46OnF1ZXJ5KGNvbnN0IHZpc2lvbjo6R2F1c3NpYW5TY2FsZVNwYWNlUHlyYW1pZCAqKSBbRkVBVFVSRV9FWFRSQUNUT1IgPSB2aXNpb246OkZSRUFLRXh0cmFjdG9yLCBTVE9SRSA9IHZpc2lvbjo6QmluYXJ5RmVhdHVyZVN0b3JlLCBNQVRDSEVSID0gdmlzaW9uOjpCaW5hcnlGZWF0dXJlTWF0Y2hlcjw5Nj5dAEZpbmQgTWF0Y2hlcyAoMSkASG91Z2ggVm90aW5nICgxKQBGaW5kIEhvdWdoIE1hdGNoZXMgKDEpAEVzdGltYXRlIEhvbW9ncmFwaHkgKDEpAEZpbmQgSW5saWVycyAoMSkARmluZCBNYXRjaGVzICgyKQBIb3VnaCBWb3RpbmcgKDIpAEZpbmQgSG91Z2ggTWF0Y2hlcyAoMikARXN0aW1hdGUgSG9tb2dyYXBoeSAoMikARmluZCBJbmxpZXJzICgyKQBBc3NlcnRpb24gYDBgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL21hdGNoZXJzL2ZlYXR1cmVfbWF0Y2hlci1pbmxpbmUuaABGYWlsZWQgdG8gY29tcHV0ZSBtYXRyaXggaW52ZXJzZQBBc3NlcnRpb24gYGJlc3RfaW5kZXggIT0gc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+OjptYXgoKWAgZmFpbGVkIGluIABTb21ldGhpbmcgc3RyYW5nZQBBc3NlcnRpb24gYG1NYXRjaGVzLnNpemUoKSA8PSBmZWF0dXJlczEtPnNpemUoKWAgZmFpbGVkIGluIABOdW1iZXIgb2YgbWF0Y2hlcyBzaG91bGQgYmUgbG93ZXIAQXNzZXJ0aW9uIGBoeXAuc2l6ZSgpID49IDkqbWF4X251bV9oeXBvdGhlc2VzYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9ob21vZ3JhcGh5X2VzdGltYXRpb24vcm9idXN0X2hvbW9ncmFwaHkuaABoeXAgdmVjdG9yIHNob3VsZCBiZSBvZiBzaXplIDkqbWF4X251bV9oeXBvdGhlc2VzAEFzc2VydGlvbiBgdG1wX2kuc2l6ZSgpID49IG51bV9wb2ludHNgIGZhaWxlZCBpbiAAdG1wX2kgdmVjdG9yIHNob3VsZCBiZSBvZiBzaXplIG51bV9wb2ludHMAQXNzZXJ0aW9uIGBoeXBfY29zdHMuc2l6ZSgpID49IG1heF9udW1faHlwb3RoZXNlc2AgZmFpbGVkIGluIABoeXBfY29zdHMgdmVjdG9yIHNob3VsZCBiZSBvZiBzaXplIG1heF9udW1faHlwb3RoZXNlcwBBc3NlcnRpb24gYG4gPD0gaW5fbWF0Y2hlcy5zaXplKClgIGZhaWxlZCBpbiAAU2hvdWxkIGJlIHRoZSBzYW1lAEFzc2VydGlvbiBgZGlzdEJpbkFuZ2xlID49IDBgIGZhaWxlZCBpbiAAZGlzdEJpbkFuZ2xlIG11c3Qgbm90IGJlIG5lZ2F0aXZlAEFzc2VydGlvbiBgbVJvb3QuZ2V0KClgIGZhaWxlZCBpbiAAUm9vdCBjYW5ub3QgYmUgTlVMTABBc3NlcnRpb24gYG1pbmkgIT0gLTFgIGZhaWxlZCBpbiAATWluaW11bSBpbmRleCBub3Qgc2V0AEFzc2VydGlvbiBgeCA+PSBtTWluWGAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvbWF0Y2hlcnMvaG91Z2hfc2ltaWxhcml0eV92b3RpbmcuaAB4IG91dCBvZiByYW5nZQBBc3NlcnRpb24gYHggPCBtTWF4WGAgZmFpbGVkIGluIABBc3NlcnRpb24gYHkgPj0gbU1pbllgIGZhaWxlZCBpbiAAeSBvdXQgb2YgcmFuZ2UAQXNzZXJ0aW9uIGB5IDwgbU1heFlgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBhbmdsZSA+IC1QSWAgZmFpbGVkIGluIABhbmdsZSBvdXQgb2YgcmFuZ2UAQXNzZXJ0aW9uIGBhbmdsZSA8PSBQSWAgZmFpbGVkIGluIABBc3NlcnRpb24gYHNjYWxlID49IG1NaW5TY2FsZWAgZmFpbGVkIGluIABzY2FsZSBvdXQgb2YgcmFuZ2UAQXNzZXJ0aW9uIGBzY2FsZSA8IG1NYXhTY2FsZWAgZmFpbGVkIGluIABBc3NlcnRpb24gYGluZGV4ID49IDBgIGZhaWxlZCBpbiAAaW5kZXggb3V0IG9mIHJhbmdlAEFzc2VydGlvbiBgYmluWCA+PSAwYCBmYWlsZWQgaW4gAGJpblggb3V0IG9mIHJhbmdlAEFzc2VydGlvbiBgYmluWCA8IG1OdW1YQmluc2AgZmFpbGVkIGluIABBc3NlcnRpb24gYGJpblkgPj0gMGAgZmFpbGVkIGluIABiaW5ZIG91dCBvZiByYW5nZQBBc3NlcnRpb24gYGJpblkgPCBtTnVtWUJpbnNgIGZhaWxlZCBpbiAAQXNzZXJ0aW9uIGBiaW5BbmdsZSA+PSAwYCBmYWlsZWQgaW4gAGJpbkFuZ2xlIG91dCBvZiByYW5nZQBBc3NlcnRpb24gYGJpbkFuZ2xlIDwgbU51bUFuZ2xlQmluc2AgZmFpbGVkIGluIABBc3NlcnRpb24gYGJpblNjYWxlID49IDBgIGZhaWxlZCBpbiAAYmluU2NhbGUgb3V0IG9mIHJhbmdlAEFzc2VydGlvbiBgYmluU2NhbGUgPCBtTnVtU2NhbGVCaW5zYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgaW5kZXggPD0gKGJpblggKyBiaW5ZKm1OdW1YQmlucyArIGJpbkFuZ2xlKm1OdW1YQmlucyptTnVtWUJpbnMgKyBiaW5TY2FsZSptTnVtWEJpbnMqbU51bVlCaW5zKm1OdW1BbmdsZUJpbnMpYCBmYWlsZWQgaW4gAEFzc2VydGlvbiBgc2l6ZSA+IDBgIGZhaWxlZCBpbiAAL3NyYy9lbXNjcmlwdGVuL2FydG9vbGtpdDUvbGliL1NSQy9LUE0vRnJlYWtNYXRjaGVyL21hdGNoZXJzL2hvdWdoX3NpbWlsYXJpdHlfdm90aW5nLmNwcABzaXplIG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBtUmVmSW1hZ2VXaWR0aCA+IDBgIGZhaWxlZCBpbiAAd2lkdGggbXVzdCBiZSBwb3NpdGl2ZQBBc3NlcnRpb24gYG1SZWZJbWFnZUhlaWdodCA+IDBgIGZhaWxlZCBpbiAAaGVpZ2h0IG11c3QgYmUgcG9zaXRpdmUAQXNzZXJ0aW9uIGBuID4gMGAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvdXRpbHMvcGFydGlhbF9zb3J0LmgAbiBtdXN0IGJlIHBvc2l0aXZlAEFzc2VydGlvbiBgayA+IDBgIGZhaWxlZCBpbiAAayBtdXN0IGJlIHBvc2l0aXZlAEFzc2VydGlvbiBgcHlyYW1pZGAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvbWF0Y2hlcnMvZnJlYWsuaABQeXJhbWlkIGlzIE5VTEwAQXNzZXJ0aW9uIGBzdG9yZS5zaXplKCkgPT0gcG9pbnRzLnNpemUoKWAgZmFpbGVkIGluIABGZWF0dXJlIHN0b3JlIGhhcyBub3QgYmVlbiBhbGxvY2F0ZWQAQXNzZXJ0aW9uIGBudW1fcG9pbnRzID09IHBvaW50cy5zaXplKClgIGZhaWxlZCBpbiAAU2hvdWxkIGJlIHNhbWUgc2l6ZQBBc3NlcnRpb24gYG9jdGF2ZSA+PSAwYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9kZXRlY3RvcnMvZ2F1c3NpYW5fc2NhbGVfc3BhY2VfcHlyYW1pZC5oAE9jdGF2ZSBtdXN0IGJlIHBvc2l0aXZlAEFzc2VydGlvbiBgb2N0YXZlIDwgbU51bU9jdGF2ZXNgIGZhaWxlZCBpbiAAT2N0YXZlIG11c3QgYmUgbGVzcyB0aGFuIG51bWJlciBvZiBvY3RhdmVzAEFzc2VydGlvbiBgc2NhbGUgPj0gMGAgZmFpbGVkIGluIABTY2FsZSBtdXN0IGJlIHBvc2l0aXZlAEFzc2VydGlvbiBgc2NhbGUgPCBtTnVtU2NhbGVzUGVyT2N0YXZlYCBmYWlsZWQgaW4gAFNjYWxlIG11c3QgYmUgbGVzcyB0aGFuIG51bWJlciBvZiBzY2FsZSBwZXIgb2N0YXZlACVtLSVkLSVZLSVILSVNLSVTAEFzc2VydGlvbiBgd2lkdGggPiAwYCBmYWlsZWQgaW4gAC9zcmMvZW1zY3JpcHRlbi9hcnRvb2xraXQ1L2xpYi9TUkMvS1BNL0ZyZWFrTWF0Y2hlci9mcmFtZXdvcmsvaW1hZ2UuY3BwAFdpZHRoIGNhbm5vdCBiZSB6ZXJvAEFzc2VydGlvbiBgaGVpZ2h0ID4gMGAgZmFpbGVkIGluIABIZWlnaHQgY2Fubm90IGJlIHplcm8AQXNzZXJ0aW9uIGBzdGVwID49IHdpZHRoYCBmYWlsZWQgaW4gAFN0ZXAgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdGhlIHdpZHRoAEFzc2VydGlvbiBgY2hhbm5lbHMgPiAwYCBmYWlsZWQgaW4gAE51bWJlciBvZiBjaGFubmVscyBjYW5ub3QgYmUgemVybwBBc3NlcnRpb24gYG1EYXRhLmdldCgpYCBmYWlsZWQgaW4gAERhdGEgcG9pbnRlciBpcyBOVUxMAE5TdDNfXzIxNGRlZmF1bHRfZGVsZXRlSWhFRQBOU3QzX18yMjBfX3NoYXJlZF9wdHJfcG9pbnRlcklQaE5TXzE0ZGVmYXVsdF9kZWxldGVJaEVFTlNfOWFsbG9jYXRvckloRUVFRQBJbnZhbGlkIGltYWdlIHR5cGUAMTZOdWxsQXJyYXlEZWxldGVySWhFAE5TdDNfXzIyMF9fc2hhcmVkX3B0cl9wb2ludGVySVBoMTZOdWxsQXJyYXlEZWxldGVySWhFTlNfOWFsbG9jYXRvckloRUVFRQBBc3NlcnRpb24gYG1TdGFydFRpbWUgPj0gMGAgZmFpbGVkIGluIAAvc3JjL2Vtc2NyaXB0ZW4vYXJ0b29sa2l0NS9saWIvU1JDL0tQTS9GcmVha01hdGNoZXIvZnJhbWV3b3JrL3RpbWVycy5jcHAAIGxpbmUgADogAENsb2NrIGhhcyBub3QgYmVlbiBzdGFydGVkAEFzc2VydGlvbiBgbVN0b3BUaW1lID49IDBgIGZhaWxlZCBpbiAAQ2xvY2sgaGFzIG5vdCBiZWVuIHN0b3BwZWQAWyVzXSBbJXNdIFslc10gOiAlczogJWYgbXMAIElORk8gIAB2aXNpb246OlNjb3BlZFRpbWVyOjp+U2NvcGVkVGltZXIoKQBzZXR1cAB0ZWFyZG93bgBzZXR1cEFSMgBfYWRkTWFya2VyAF9hZGRNdWx0aU1hcmtlcgBfYWRkTkZUTWFya2VyAGdldE11bHRpTWFya2VyTnVtAGdldE11bHRpTWFya2VyQ291bnQAX2xvYWRDYW1lcmEAc2V0TWFya2VySW5mb0RpcgBzZXRNYXJrZXJJbmZvVmVydGV4AGdldFRyYW5zTWF0U3F1YXJlAGdldFRyYW5zTWF0U3F1YXJlQ29udABnZXRUcmFuc01hdE11bHRpU3F1YXJlAGdldFRyYW5zTWF0TXVsdGlTcXVhcmVSb2J1c3QAZGV0ZWN0TWFya2VyAGdldE1hcmtlck51bQBkZXRlY3RORlRNYXJrZXIAZ2V0TXVsdGlFYWNoTWFya2VyAGdldE1hcmtlcgBnZXRORlRNYXJrZXIAc2V0RGVidWdNb2RlAGdldERlYnVnTW9kZQBnZXRQcm9jZXNzaW5nSW1hZ2UAc2V0TG9nTGV2ZWwAZ2V0TG9nTGV2ZWwAc2V0UHJvamVjdGlvbk5lYXJQbGFuZQBnZXRQcm9qZWN0aW9uTmVhclBsYW5lAHNldFByb2plY3Rpb25GYXJQbGFuZQBnZXRQcm9qZWN0aW9uRmFyUGxhbmUAc2V0VGhyZXNob2xkTW9kZQBnZXRUaHJlc2hvbGRNb2RlAHNldFRocmVzaG9sZABnZXRUaHJlc2hvbGQAc2V0UGF0dGVybkRldGVjdGlvbk1vZGUAZ2V0UGF0dGVybkRldGVjdGlvbk1vZGUAc2V0UGF0dFJhdGlvAGdldFBhdHRSYXRpbwBzZXRNYXRyaXhDb2RlVHlwZQBnZXRNYXRyaXhDb2RlVHlwZQBzZXRMYWJlbGluZ01vZGUAZ2V0TGFiZWxpbmdNb2RlAHNldEltYWdlUHJvY01vZGUAZ2V0SW1hZ2VQcm9jTW9kZQBFUlJPUl9BUkNPTlRST0xMRVJfTk9UX0ZPVU5EAEVSUk9SX01VTFRJTUFSS0VSX05PVF9GT1VORABFUlJPUl9NQVJLRVJfSU5ERVhfT1VUX09GX0JPVU5EUwBBUl9ERUJVR19ESVNBQkxFAEFSX0RFQlVHX0VOQUJMRQBBUl9ERUZBVUxUX0RFQlVHX01PREUAQVJfTEFCRUxJTkdfV0hJVEVfUkVHSU9OAEFSX0xBQkVMSU5HX0JMQUNLX1JFR0lPTgBBUl9ERUZBVUxUX0xBQkVMSU5HX01PREUAQVJfREVGQVVMVF9MQUJFTElOR19USFJFU0gAQVJfSU1BR0VfUFJPQ19GUkFNRV9JTUFHRQBBUl9JTUFHRV9QUk9DX0ZJRUxEX0lNQUdFAEFSX0RFRkFVTFRfSU1BR0VfUFJPQ19NT0RFAEFSX1RFTVBMQVRFX01BVENISU5HX0NPTE9SAEFSX1RFTVBMQVRFX01BVENISU5HX01PTk8AQVJfTUFUUklYX0NPREVfREVURUNUSU9OAEFSX1RFTVBMQVRFX01BVENISU5HX0NPTE9SX0FORF9NQVRSSVgAQVJfVEVNUExBVEVfTUFUQ0hJTkdfTU9OT19BTkRfTUFUUklYAEFSX0RFRkFVTFRfUEFUVEVSTl9ERVRFQ1RJT05fTU9ERQBBUl9VU0VfVFJBQ0tJTkdfSElTVE9SWQBBUl9OT1VTRV9UUkFDS0lOR19ISVNUT1JZAEFSX1VTRV9UUkFDS0lOR19ISVNUT1JZX1YyAEFSX0RFRkFVTFRfTUFSS0VSX0VYVFJBQ1RJT05fTU9ERQBBUl9NQVhfTE9PUF9DT1VOVABBUl9MT09QX0JSRUFLX1RIUkVTSABBUl9MT0dfTEVWRUxfREVCVUcAQVJfTE9HX0xFVkVMX0lORk8AQVJfTE9HX0xFVkVMX1dBUk4AQVJfTE9HX0xFVkVMX0VSUk9SAEFSX0xPR19MRVZFTF9SRUxfSU5GTwBBUl9NQVRSSVhfQ09ERV8zeDMAQVJfTUFUUklYX0NPREVfM3gzX0hBTU1JTkc2MwBBUl9NQVRSSVhfQ09ERV8zeDNfUEFSSVRZNjUAQVJfTUFUUklYX0NPREVfNHg0AEFSX01BVFJJWF9DT0RFXzR4NF9CQ0hfMTNfOV8zAEFSX01BVFJJWF9DT0RFXzR4NF9CQ0hfMTNfNV81AEFSX0xBQkVMSU5HX1RIUkVTSF9NT0RFX01BTlVBTABBUl9MQUJFTElOR19USFJFU0hfTU9ERV9BVVRPX01FRElBTgBBUl9MQUJFTElOR19USFJFU0hfTU9ERV9BVVRPX09UU1UAQVJfTEFCRUxJTkdfVEhSRVNIX01PREVfQVVUT19BREFQVElWRQBBUl9NQVJLRVJfSU5GT19DVVRPRkZfUEhBU0VfTk9ORQBBUl9NQVJLRVJfSU5GT19DVVRPRkZfUEhBU0VfUEFUVEVSTl9FWFRSQUNUSU9OAEFSX01BUktFUl9JTkZPX0NVVE9GRl9QSEFTRV9NQVRDSF9HRU5FUklDAEFSX01BUktFUl9JTkZPX0NVVE9GRl9QSEFTRV9NQVRDSF9DT05UUkFTVABBUl9NQVJLRVJfSU5GT19DVVRPRkZfUEhBU0VfTUFUQ0hfQkFSQ09ERV9OT1RfRk9VTkQAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX01BVENIX0JBUkNPREVfRURDX0ZBSUwAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX01BVENIX0NPTkZJREVOQ0UAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX1BPU0VfRVJST1IAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX1BPU0VfRVJST1JfTVVMVEkAQVJfTUFSS0VSX0lORk9fQ1VUT0ZGX1BIQVNFX0hFVVJJU1RJQ19UUk9VQkxFU09NRV9NQVRSSVhfQ09ERVMAYWxsb2NhdG9yPFQ+OjphbGxvY2F0ZShzaXplX3QgbikgJ24nIGV4Y2VlZHMgbWF4aW11bSBzdXBwb3J0ZWQgc2l6ZQBJbWFnZSBwcm9jLiBtb2RlIHNldCB0byAlZC4KAExhYmVsaW5nIG1vZGUgc2V0IHRvICVkCgB2aWlmAFBhdHRlcm4gcmF0aW8gc2l6ZSBzZXQgdG8gJWYuCgBQYXR0ZXJuIGRldGVjdGlvbiBtb2RlIHNldCB0byAlZC4KAFRocmVzaG9sZCBzZXQgdG8gJWQKAHZpaWkAVGhyZXNob2xkIG1vZGUgc2V0IHRvICVkCgBkaWkAdmlpZABpaQB2aWkAb24uAG9mZi4ARGVidWcgbW9kZSBzZXQgdG8gJXMKAFRyYWNraW5nIGxvc3QuICVkCgBUcmFja2VkIHBhZ2UgJWQgKG1heCAlZCkuCgB7IHZhciAkYSA9IGFyZ3VtZW50czsgdmFyIGkgPSAwOyBpZiAoIWFydG9vbGtpdFsiTkZUTWFya2VySW5mbyJdKSB7IGFydG9vbGtpdFsiTkZUTWFya2VySW5mbyJdID0gKHsgaWQ6IDAsIGVycm9yOiAtMSwgZm91bmQ6IDAsIHBvc2U6IFswLDAsMCwwLCAwLDAsMCwwLCAwLDAsMCwwXSB9KTsgfSB2YXIgbWFya2VySW5mbyA9IGFydG9vbGtpdFsiTkZUTWFya2VySW5mbyJdOyBtYXJrZXJJbmZvWyJpZCJdID0gJGFbaSsrXTsgbWFya2VySW5mb1siZXJyb3IiXSA9ICRhW2krK107IG1hcmtlckluZm9bImZvdW5kIl0gPSAxOyBtYXJrZXJJbmZvWyJwb3NlIl1bMF0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bMV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bMl0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bM10gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bNF0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bNV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bNl0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bN10gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bOF0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bOV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJwb3NlIl1bMTBdID0gJGFbaSsrXTsgbWFya2VySW5mb1sicG9zZSJdWzExXSA9ICRhW2krK107IH0AeyB2YXIgJGEgPSBhcmd1bWVudHM7IHZhciBpID0gMDsgaWYgKCFhcnRvb2xraXRbIk5GVE1hcmtlckluZm8iXSkgeyBhcnRvb2xraXRbIk5GVE1hcmtlckluZm8iXSA9ICh7IGlkOiAwLCBlcnJvcjogLTEsIGZvdW5kOiAwLCBwb3NlOiBbMCwwLDAsMCwgMCwwLDAsMCwgMCwwLDAsMF0gfSk7IH0gdmFyIG1hcmtlckluZm8gPSBhcnRvb2xraXRbIk5GVE1hcmtlckluZm8iXTsgbWFya2VySW5mb1siaWQiXSA9ICRhW2krK107IG1hcmtlckluZm9bImVycm9yIl0gPSAtMTsgbWFya2VySW5mb1siZm91bmQiXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVswXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVsxXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVsyXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVszXSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs0XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs1XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs2XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs3XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs4XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVs5XSA9IDA7IG1hcmtlckluZm9bInBvc2UiXVsxMF0gPSAwOyBtYXJrZXJJbmZvWyJwb3NlIl1bMTFdID0gMDsgfQB7IHZhciAkYSA9IGFyZ3VtZW50czsgdmFyIGkgPSAxMjsgaWYgKCFhcnRvb2xraXRbIm1hcmtlckluZm8iXSkgeyBhcnRvb2xraXRbIm1hcmtlckluZm8iXSA9ICh7IHBvczogWzAsMF0sIGxpbmU6IFtbMCwwLDBdLCBbMCwwLDBdLCBbMCwwLDBdLCBbMCwwLDBdXSwgdmVydGV4OiBbWzAsMF0sIFswLDBdLCBbMCwwXSwgWzAsMF1dIH0pOyB9IHZhciBtYXJrZXJJbmZvID0gYXJ0b29sa2l0WyJtYXJrZXJJbmZvIl07IG1hcmtlckluZm9bImFyZWEiXSA9ICQwOyBtYXJrZXJJbmZvWyJpZCJdID0gJDE7IG1hcmtlckluZm9bImlkUGF0dCJdID0gJDI7IG1hcmtlckluZm9bImlkTWF0cml4Il0gPSAkMzsgbWFya2VySW5mb1siZGlyIl0gPSAkNDsgbWFya2VySW5mb1siZGlyUGF0dCJdID0gJDU7IG1hcmtlckluZm9bImRpck1hdHJpeCJdID0gJDY7IG1hcmtlckluZm9bImNmIl0gPSAkNzsgbWFya2VySW5mb1siY2ZQYXR0Il0gPSAkODsgbWFya2VySW5mb1siY2ZNYXRyaXgiXSA9ICQ5OyBtYXJrZXJJbmZvWyJwb3MiXVswXSA9ICQxMDsgbWFya2VySW5mb1sicG9zIl1bMV0gPSAkMTE7IG1hcmtlckluZm9bImxpbmUiXVswXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVswXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVswXVsyXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsxXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsxXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsxXVsyXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsyXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsyXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVsyXVsyXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVszXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVszXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bImxpbmUiXVszXVsyXSA9ICRhW2krK107IG1hcmtlckluZm9bInZlcnRleCJdWzBdWzBdID0gJGFbaSsrXTsgbWFya2VySW5mb1sidmVydGV4Il1bMF1bMV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJ2ZXJ0ZXgiXVsxXVswXSA9ICRhW2krK107IG1hcmtlckluZm9bInZlcnRleCJdWzFdWzFdID0gJGFbaSsrXTsgbWFya2VySW5mb1sidmVydGV4Il1bMl1bMF0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJ2ZXJ0ZXgiXVsyXVsxXSA9ICRhW2krK107IG1hcmtlckluZm9bInZlcnRleCJdWzNdWzBdID0gJGFbaSsrXTsgbWFya2VySW5mb1sidmVydGV4Il1bM11bMV0gPSAkYVtpKytdOyBtYXJrZXJJbmZvWyJlcnJvckNvcnJlY3RlZCJdID0gJGFbaSsrXTsgfQB7IGlmICghYXJ0b29sa2l0WyJtdWx0aUVhY2hNYXJrZXJJbmZvIl0pIHsgYXJ0b29sa2l0WyJtdWx0aUVhY2hNYXJrZXJJbmZvIl0gPSAoe30pOyB9IHZhciBtdWx0aUVhY2hNYXJrZXIgPSBhcnRvb2xraXRbIm11bHRpRWFjaE1hcmtlckluZm8iXTsgbXVsdGlFYWNoTWFya2VyWyd2aXNpYmxlJ10gPSAkMDsgbXVsdGlFYWNoTWFya2VyWydwYXR0SWQnXSA9ICQxOyBtdWx0aUVhY2hNYXJrZXJbJ3BhdHRUeXBlJ10gPSAkMjsgbXVsdGlFYWNoTWFya2VyWyd3aWR0aCddID0gJDM7IH0AaWlpAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFAE5TdDNfXzIyMV9fYmFzaWNfc3RyaW5nX2NvbW1vbklMYjFFRUUAbG9hZENhbWVyYSgpOiBFcnJvciBsb2FkaW5nIHBhcmFtZXRlciBmaWxlICVzIGZvciBjYW1lcmEuCgBpaWlpAEFSVG9vbEtpdEpTKCk6IFVuYWJsZSB0byBzZXQgdXAgTkZUIG1hcmtlci4KAFJlYWRpbmcgJXMuZnNldDMKAGZzZXQzAEVycm9yIHJlYWRpbmcgS1BNIGRhdGEgZnJvbSAlcy5mc2V0MwoAICBBc3NpZ25lZCBwYWdlIG5vLiAlZC4KAEVycm9yOiBrcG1DaGFuZ2VQYWdlTm9PZlJlZkRhdGFTZXQKAEVycm9yOiBrcG1NZXJnZVJlZkRhdGFTZXQKACAgRG9uZS4KAFJlYWRpbmcgJXMuZnNldAoAZnNldABFcnJvciByZWFkaW5nIGRhdGEgZnJvbSAlcy5mc2V0CgBFcnJvcjoga3BtU2V0UmVmRGF0YVNldAoATG9hZGluZyBvZiBORlQgZGF0YSBjb21wbGV0ZS4KAEFSVG9vbEtpdEpTKCk6IFVuYWJsZSB0byBzZXQgdXAgQVIgbXVsdGltYXJrZXIuCgBjb25maWcgZGF0YSBsb2FkIGVycm9yICEhCgBBUlRvb2xLaXRKUygpOiBVbmFibGUgdG8gc2V0IHVwIEFSIG1hcmtlci4KAGxvYWRNYXJrZXIoKTogRXJyb3IgbG9hZGluZyBwYXR0ZXJuIGZpbGUgJXMuCgBFcnJvcjogYXIyQ3JlYXRlSGFuZGxlLgoAaWlpaWkAc2V0dXAoKTogRXJyb3I6IGFyUGF0dENyZWF0ZUhhbmRsZS4KAEFsbG9jYXRlZCB2aWRlb0ZyYW1lU2l6ZSAlZAoAeyBpZiAoIWFydG9vbGtpdFsiZnJhbWVNYWxsb2MiXSkgeyBhcnRvb2xraXRbImZyYW1lTWFsbG9jIl0gPSAoe30pOyB9IHZhciBmcmFtZU1hbGxvYyA9IGFydG9vbGtpdFsiZnJhbWVNYWxsb2MiXTsgZnJhbWVNYWxsb2NbImZyYW1lcG9pbnRlciJdID0gJDE7IGZyYW1lTWFsbG9jWyJmcmFtZXNpemUiXSA9ICQyOyBmcmFtZU1hbGxvY1siY2FtZXJhIl0gPSAkMzsgZnJhbWVNYWxsb2NbInRyYW5zZm9ybSJdID0gJDQ7IGZyYW1lTWFsbG9jWyJ2aWRlb0x1bWFQb2ludGVyIl0gPSAkNTsgfQAqKiogQ2FtZXJhIFBhcmFtZXRlciByZXNpemVkIGZyb20gJWQsICVkLiAqKioKAHNldENhbWVyYSgpOiBFcnJvcjogYXJQYXJhbUxUQ3JlYXRlLgoAc2V0Q2FtZXJhKCk6IEVycm9yOiBhckNyZWF0ZUhhbmRsZS4KAHNldENhbWVyYSgpOiBFcnJvciBjcmVhdGluZyAzRCBoYW5kbGUAT3V0IG9mIG1lbW9yeSEhCgBFcnJvcjogbWFsbG9jCgAjIyMgRmVhdHVyZSBjYW5kaWRhdGVzIGZvciB0cmFja2luZyBhcmUgb3ZlcmZsb3cuCgBCb2d1cyBtZXNzYWdlIGNvZGUgJWQAQUxJR05fVFlQRSBpcyB3cm9uZywgcGxlYXNlIGZpeABNQVhfQUxMT0NfQ0hVTksgaXMgd3JvbmcsIHBsZWFzZSBmaXgAQm9ndXMgYnVmZmVyIGNvbnRyb2wgbW9kZQBJbnZhbGlkIGNvbXBvbmVudCBJRCAlZCBpbiBTT1MASW52YWxpZCBjcm9wIHJlcXVlc3QARENUIGNvZWZmaWNpZW50IG91dCBvZiByYW5nZQBEQ1Qgc2NhbGVkIGJsb2NrIHNpemUgJWR4JWQgbm90IHN1cHBvcnRlZABDb21wb25lbnQgaW5kZXggJWQ6IG1pc21hdGNoaW5nIHNhbXBsaW5nIHJhdGlvICVkOiVkLCAlZDolZCwgJWMAQm9ndXMgSHVmZm1hbiB0YWJsZSBkZWZpbml0aW9uAEJvZ3VzIGlucHV0IGNvbG9yc3BhY2UAQm9ndXMgSlBFRyBjb2xvcnNwYWNlAEJvZ3VzIG1hcmtlciBsZW5ndGgAV3JvbmcgSlBFRyBsaWJyYXJ5IHZlcnNpb246IGxpYnJhcnkgaXMgJWQsIGNhbGxlciBleHBlY3RzICVkAFNhbXBsaW5nIGZhY3RvcnMgdG9vIGxhcmdlIGZvciBpbnRlcmxlYXZlZCBzY2FuAEludmFsaWQgbWVtb3J5IHBvb2wgY29kZSAlZABVbnN1cHBvcnRlZCBKUEVHIGRhdGEgcHJlY2lzaW9uICVkAEludmFsaWQgcHJvZ3Jlc3NpdmUgcGFyYW1ldGVycyBTcz0lZCBTZT0lZCBBaD0lZCBBbD0lZABJbnZhbGlkIHByb2dyZXNzaXZlIHBhcmFtZXRlcnMgYXQgc2NhbiBzY3JpcHQgZW50cnkgJWQAQm9ndXMgc2FtcGxpbmcgZmFjdG9ycwBJbnZhbGlkIHNjYW4gc2NyaXB0IGF0IGVudHJ5ICVkAEltcHJvcGVyIGNhbGwgdG8gSlBFRyBsaWJyYXJ5IGluIHN0YXRlICVkAEpQRUcgcGFyYW1ldGVyIHN0cnVjdCBtaXNtYXRjaDogbGlicmFyeSB0aGlua3Mgc2l6ZSBpcyAldSwgY2FsbGVyIGV4cGVjdHMgJXUAQm9ndXMgdmlydHVhbCBhcnJheSBhY2Nlc3MAQnVmZmVyIHBhc3NlZCB0byBKUEVHIGxpYnJhcnkgaXMgdG9vIHNtYWxsAFN1c3BlbnNpb24gbm90IGFsbG93ZWQgaGVyZQBDQ0lSNjAxIHNhbXBsaW5nIG5vdCBpbXBsZW1lbnRlZCB5ZXQAVG9vIG1hbnkgY29sb3IgY29tcG9uZW50czogJWQsIG1heCAlZABVbnN1cHBvcnRlZCBjb2xvciBjb252ZXJzaW9uIHJlcXVlc3QAQm9ndXMgREFDIGluZGV4ICVkAEJvZ3VzIERBQyB2YWx1ZSAweCV4AEJvZ3VzIERIVCBpbmRleCAlZABCb2d1cyBEUVQgaW5kZXggJWQARW1wdHkgSlBFRyBpbWFnZSAoRE5MIG5vdCBzdXBwb3J0ZWQpAFJlYWQgZnJvbSBFTVMgZmFpbGVkAFdyaXRlIHRvIEVNUyBmYWlsZWQARGlkbid0IGV4cGVjdCBtb3JlIHRoYW4gb25lIHNjYW4ASW5wdXQgZmlsZSByZWFkIGVycm9yAE91dHB1dCBmaWxlIHdyaXRlIGVycm9yIC0tLSBvdXQgb2YgZGlzayBzcGFjZT8ARnJhY3Rpb25hbCBzYW1wbGluZyBub3QgaW1wbGVtZW50ZWQgeWV0AEh1ZmZtYW4gY29kZSBzaXplIHRhYmxlIG92ZXJmbG93AE1pc3NpbmcgSHVmZm1hbiBjb2RlIHRhYmxlIGVudHJ5AE1heGltdW0gc3VwcG9ydGVkIGltYWdlIGRpbWVuc2lvbiBpcyAldSBwaXhlbHMARW1wdHkgaW5wdXQgZmlsZQBQcmVtYXR1cmUgZW5kIG9mIGlucHV0IGZpbGUAQ2Fubm90IHRyYW5zY29kZSBkdWUgdG8gbXVsdGlwbGUgdXNlIG9mIHF1YW50aXphdGlvbiB0YWJsZSAlZABTY2FuIHNjcmlwdCBkb2VzIG5vdCB0cmFuc21pdCBhbGwgZGF0YQBJbnZhbGlkIGNvbG9yIHF1YW50aXphdGlvbiBtb2RlIGNoYW5nZQBOb3QgaW1wbGVtZW50ZWQgeWV0AFJlcXVlc3RlZCBmZWF0dXJlIHdhcyBvbWl0dGVkIGF0IGNvbXBpbGUgdGltZQBBcml0aG1ldGljIHRhYmxlIDB4JTAyeCB3YXMgbm90IGRlZmluZWQAQmFja2luZyBzdG9yZSBub3Qgc3VwcG9ydGVkAEh1ZmZtYW4gdGFibGUgMHglMDJ4IHdhcyBub3QgZGVmaW5lZABKUEVHIGRhdGFzdHJlYW0gY29udGFpbnMgbm8gaW1hZ2UAUXVhbnRpemF0aW9uIHRhYmxlIDB4JTAyeCB3YXMgbm90IGRlZmluZWQATm90IGEgSlBFRyBmaWxlOiBzdGFydHMgd2l0aCAweCUwMnggMHglMDJ4AEluc3VmZmljaWVudCBtZW1vcnkgKGNhc2UgJWQpAENhbm5vdCBxdWFudGl6ZSBtb3JlIHRoYW4gJWQgY29sb3IgY29tcG9uZW50cwBDYW5ub3QgcXVhbnRpemUgdG8gZmV3ZXIgdGhhbiAlZCBjb2xvcnMAQ2Fubm90IHF1YW50aXplIHRvIG1vcmUgdGhhbiAlZCBjb2xvcnMASW52YWxpZCBKUEVHIGZpbGUgc3RydWN0dXJlOiAlcyBiZWZvcmUgU09GAEludmFsaWQgSlBFRyBmaWxlIHN0cnVjdHVyZTogdHdvIFNPRiBtYXJrZXJzAEludmFsaWQgSlBFRyBmaWxlIHN0cnVjdHVyZTogbWlzc2luZyBTT1MgbWFya2VyAFVuc3VwcG9ydGVkIEpQRUcgcHJvY2VzczogU09GIHR5cGUgMHglMDJ4AEludmFsaWQgSlBFRyBmaWxlIHN0cnVjdHVyZTogdHdvIFNPSSBtYXJrZXJzAEZhaWxlZCB0byBjcmVhdGUgdGVtcG9yYXJ5IGZpbGUgJXMAUmVhZCBmYWlsZWQgb24gdGVtcG9yYXJ5IGZpbGUAU2VlayBmYWlsZWQgb24gdGVtcG9yYXJ5IGZpbGUAV3JpdGUgZmFpbGVkIG9uIHRlbXBvcmFyeSBmaWxlIC0tLSBvdXQgb2YgZGlzayBzcGFjZT8AQXBwbGljYXRpb24gdHJhbnNmZXJyZWQgdG9vIGZldyBzY2FubGluZXMAVW5zdXBwb3J0ZWQgbWFya2VyIHR5cGUgMHglMDJ4AFZpcnR1YWwgYXJyYXkgY29udHJvbGxlciBtZXNzZWQgdXAASW1hZ2UgdG9vIHdpZGUgZm9yIHRoaXMgaW1wbGVtZW50YXRpb24AUmVhZCBmcm9tIFhNUyBmYWlsZWQAV3JpdGUgdG8gWE1TIGZhaWxlZABDb3B5cmlnaHQgKEMpIDIwMTgsIFRob21hcyBHLiBMYW5lLCBHdWlkbyBWb2xsYmVkaW5nADljICAxNC1KYW4tMjAxOABDYXV0aW9uOiBxdWFudGl6YXRpb24gdGFibGVzIGFyZSB0b28gY29hcnNlIGZvciBiYXNlbGluZSBKUEVHAEFkb2JlIEFQUDE0IG1hcmtlcjogdmVyc2lvbiAlZCwgZmxhZ3MgMHglMDR4IDB4JTA0eCwgdHJhbnNmb3JtICVkAFVua25vd24gQVBQMCBtYXJrZXIgKG5vdCBKRklGKSwgbGVuZ3RoICV1AFVua25vd24gQVBQMTQgbWFya2VyIChub3QgQWRvYmUpLCBsZW5ndGggJXUARGVmaW5lIEFyaXRobWV0aWMgVGFibGUgMHglMDJ4OiAweCUwMngARGVmaW5lIEh1ZmZtYW4gVGFibGUgMHglMDJ4AERlZmluZSBRdWFudGl6YXRpb24gVGFibGUgJWQgIHByZWNpc2lvbiAlZABEZWZpbmUgUmVzdGFydCBJbnRlcnZhbCAldQBGcmVlZCBFTVMgaGFuZGxlICV1AE9idGFpbmVkIEVNUyBoYW5kbGUgJXUARW5kIE9mIEltYWdlACAgICAgICAgJTNkICUzZCAlM2QgJTNkICUzZCAlM2QgJTNkICUzZABKRklGIEFQUDAgbWFya2VyOiB2ZXJzaW9uICVkLiUwMmQsIGRlbnNpdHkgJWR4JWQgICVkAFdhcm5pbmc6IHRodW1ibmFpbCBpbWFnZSBzaXplIGRvZXMgbm90IG1hdGNoIGRhdGEgbGVuZ3RoICV1AEpGSUYgZXh0ZW5zaW9uIG1hcmtlcjogdHlwZSAweCUwMngsIGxlbmd0aCAldQAgICAgd2l0aCAlZCB4ICVkIHRodW1ibmFpbCBpbWFnZQBNaXNjZWxsYW5lb3VzIG1hcmtlciAweCUwMngsIGxlbmd0aCAldQBVbmV4cGVjdGVkIG1hcmtlciAweCUwMngAICAgICAgICAlNHUgJTR1ICU0dSAlNHUgJTR1ICU0dSAlNHUgJTR1AFF1YW50aXppbmcgdG8gJWQgPSAlZColZColZCBjb2xvcnMAUXVhbnRpemluZyB0byAlZCBjb2xvcnMAU2VsZWN0ZWQgJWQgY29sb3JzIGZvciBxdWFudGl6YXRpb24AQXQgbWFya2VyIDB4JTAyeCwgcmVjb3ZlcnkgYWN0aW9uICVkAFJTVCVkAFNtb290aGluZyBub3Qgc3VwcG9ydGVkIHdpdGggbm9uc3RhbmRhcmQgc2FtcGxpbmcgcmF0aW9zAFN0YXJ0IE9mIEZyYW1lIDB4JTAyeDogd2lkdGg9JXUsIGhlaWdodD0ldSwgY29tcG9uZW50cz0lZAAgICAgQ29tcG9uZW50ICVkOiAlZGh4JWR2IHE9JWQAU3RhcnQgb2YgSW1hZ2UAU3RhcnQgT2YgU2NhbjogJWQgY29tcG9uZW50cwAgICAgQ29tcG9uZW50ICVkOiBkYz0lZCBhYz0lZAAgIFNzPSVkLCBTZT0lZCwgQWg9JWQsIEFsPSVkAENsb3NlZCB0ZW1wb3JhcnkgZmlsZSAlcwBPcGVuZWQgdGVtcG9yYXJ5IGZpbGUgJXMASkZJRiBleHRlbnNpb24gbWFya2VyOiBKUEVHLWNvbXByZXNzZWQgdGh1bWJuYWlsIGltYWdlLCBsZW5ndGggJXUASkZJRiBleHRlbnNpb24gbWFya2VyOiBwYWxldHRlIHRodW1ibmFpbCBpbWFnZSwgbGVuZ3RoICV1AEpGSUYgZXh0ZW5zaW9uIG1hcmtlcjogUkdCIHRodW1ibmFpbCBpbWFnZSwgbGVuZ3RoICV1AFVucmVjb2duaXplZCBjb21wb25lbnQgSURzICVkICVkICVkLCBhc3N1bWluZyBZQ2JDcgBGcmVlZCBYTVMgaGFuZGxlICV1AE9idGFpbmVkIFhNUyBoYW5kbGUgJXUAVW5rbm93biBBZG9iZSBjb2xvciB0cmFuc2Zvcm0gY29kZSAlZABDb3JydXB0IEpQRUcgZGF0YTogYmFkIGFyaXRobWV0aWMgY29kZQBJbmNvbnNpc3RlbnQgcHJvZ3Jlc3Npb24gc2VxdWVuY2UgZm9yIGNvbXBvbmVudCAlZCBjb2VmZmljaWVudCAlZABDb3JydXB0IEpQRUcgZGF0YTogJXUgZXh0cmFuZW91cyBieXRlcyBiZWZvcmUgbWFya2VyIDB4JTAyeABDb3JydXB0IEpQRUcgZGF0YTogcHJlbWF0dXJlIGVuZCBvZiBkYXRhIHNlZ21lbnQAQ29ycnVwdCBKUEVHIGRhdGE6IGJhZCBIdWZmbWFuIGNvZGUAV2FybmluZzogdW5rbm93biBKRklGIHJldmlzaW9uIG51bWJlciAlZC4lMDJkAFByZW1hdHVyZSBlbmQgb2YgSlBFRyBmaWxlAENvcnJ1cHQgSlBFRyBkYXRhOiBmb3VuZCBtYXJrZXIgMHglMDJ4IGluc3RlYWQgb2YgUlNUJWQASW52YWxpZCBTT1MgcGFyYW1ldGVycyBmb3Igc2VxdWVudGlhbCBKUEVHAEFwcGxpY2F0aW9uIHRyYW5zZmVycmVkIHRvbyBtYW55IHNjYW5saW5lcwBTT1MATFNFAEpQRUdNRU0AJWxkJWMAJXMKAAABAgQHAwYFAC0rICAgMFgweAAobnVsbCkALTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYATkFOAC4AaW5maW5pdHkAbmFuAExDX0FMTABMQU5HAEMuVVRGLTgAUE9TSVgATVVTTF9MT0NQQVRIAHJ3YQB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzOiAlcwB0ZXJtaW5hdGluZyB3aXRoICVzIGV4Y2VwdGlvbiBvZiB0eXBlICVzAHRlcm1pbmF0aW5nIHdpdGggJXMgZm9yZWlnbiBleGNlcHRpb24AdGVybWluYXRpbmcAdW5jYXVnaHQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAHRlcm1pbmF0ZV9oYW5kbGVyIHVuZXhwZWN0ZWRseSByZXR1cm5lZABTdDExbG9naWNfZXJyb3IAU3QxMmxlbmd0aF9lcnJvcgBOMTBfX2N4eGFiaXYxMTdfX3BiYXNlX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTIzX19mdW5kYW1lbnRhbF90eXBlX2luZm9FAHYAYgBjAGgAYQBzAHQAaQBqAG0AZgBkAE4xMF9fY3h4YWJpdjEyMV9fdm1pX2NsYXNzX3R5cGVfaW5mb0UAdm9pZABib29sAGNoYXIAc2lnbmVkIGNoYXIAdW5zaWduZWQgY2hhcgBzaG9ydAB1bnNpZ25lZCBzaG9ydABpbnQAdW5zaWduZWQgaW50AGxvbmcAdW5zaWduZWQgbG9uZwBmbG9hdABkb3VibGUAc3RkOjpzdHJpbmcAc3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4Ac3RkOjp3c3RyaW5nAGVtc2NyaXB0ZW46OnZhbABlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxjaGFyPgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxzaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8bG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgbG9uZz4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50OF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQxNl90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MTZfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDMyX3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGZsb2F0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxkb3VibGU+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmcgZG91YmxlPgBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0llRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWZFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0ltRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lpRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJdEVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQBOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0loRUUATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJYUVFAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQBOMTBlbXNjcmlwdGVuM3ZhbEUATlN0M19fMjEyYmFzaWNfc3RyaW5nSXdOU18xMWNoYXJfdHJhaXRzSXdFRU5TXzlhbGxvY2F0b3JJd0VFRUUATlN0M19fMjEyYmFzaWNfc3RyaW5nSWhOU18xMWNoYXJfdHJhaXRzSWhFRU5TXzlhbGxvY2F0b3JJaEVFRUUATlN0M19fMjhpb3NfYmFzZUUATlN0M19fMjliYXNpY19pb3NJY05TXzExY2hhcl90cmFpdHNJY0VFRUUATlN0M19fMjliYXNpY19pb3NJd05TXzExY2hhcl90cmFpdHNJd0VFRUUATlN0M19fMjE1YmFzaWNfc3RyZWFtYnVmSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzIxNWJhc2ljX3N0cmVhbWJ1Zkl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRQBOU3QzX18yMTNiYXNpY19pc3RyZWFtSWNOU18xMWNoYXJfdHJhaXRzSWNFRUVFAE5TdDNfXzIxM2Jhc2ljX2lzdHJlYW1Jd05TXzExY2hhcl90cmFpdHNJd0VFRUUATlN0M19fMjEzYmFzaWNfb3N0cmVhbUljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRQBOU3QzX18yMTNiYXNpY19vc3RyZWFtSXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFAE5TdDNfXzIxMV9fc3Rkb3V0YnVmSXdFRQBOU3QzX18yMTFfX3N0ZG91dGJ1ZkljRUUAdW5zdXBwb3J0ZWQgbG9jYWxlIGZvciBzdGFuZGFyZCBpbnB1dABOU3QzX18yMTBfX3N0ZGluYnVmSXdFRQBOU3QzX18yMTBfX3N0ZGluYnVmSWNFRQBOU3QzX18yN2NvbGxhdGVJY0VFAE5TdDNfXzI2bG9jYWxlNWZhY2V0RQBOU3QzX18yN2NvbGxhdGVJd0VFACVwAEMATlN0M19fMjdudW1fZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yOV9fbnVtX2dldEljRUUATlN0M19fMjE0X19udW1fZ2V0X2Jhc2VFAE5TdDNfXzI3bnVtX2dldEl3TlNfMTlpc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjlfX251bV9nZXRJd0VFACVwAAAAAEwAbGwAJQAAAAAAbABOU3QzX18yN251bV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzI5X19udW1fcHV0SWNFRQBOU3QzX18yMTRfX251bV9wdXRfYmFzZUUATlN0M19fMjdudW1fcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yOV9fbnVtX3B1dEl3RUUAJUg6JU06JVMAJW0vJWQvJXkAJUk6JU06JVMgJXAAJWEgJWIgJWQgJUg6JU06JVMgJVkAQU0AUE0ASmFudWFyeQBGZWJydWFyeQBNYXJjaABBcHJpbABNYXkASnVuZQBKdWx5AEF1Z3VzdABTZXB0ZW1iZXIAT2N0b2JlcgBOb3ZlbWJlcgBEZWNlbWJlcgBKYW4ARmViAE1hcgBBcHIASnVuAEp1bABBdWcAU2VwAE9jdABOb3YARGVjAFN1bmRheQBNb25kYXkAVHVlc2RheQBXZWRuZXNkYXkAVGh1cnNkYXkARnJpZGF5AFNhdHVyZGF5AFN1bgBNb24AVHVlAFdlZABUaHUARnJpAFNhdAAlbS8lZC8leSVZLSVtLSVkJUk6JU06JVMgJXAlSDolTSVIOiVNOiVTJUg6JU06JVNOU3QzX18yOHRpbWVfZ2V0SWNOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yMjBfX3RpbWVfZ2V0X2Nfc3RvcmFnZUljRUUATlN0M19fMjl0aW1lX2Jhc2VFAE5TdDNfXzI4dGltZV9nZXRJd05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckl3TlNfMTFjaGFyX3RyYWl0c0l3RUVFRUVFAE5TdDNfXzIyMF9fdGltZV9nZXRfY19zdG9yYWdlSXdFRQBOU3QzX18yOHRpbWVfcHV0SWNOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJY05TXzExY2hhcl90cmFpdHNJY0VFRUVFRQBOU3QzX18yMTBfX3RpbWVfcHV0RQBOU3QzX18yOHRpbWVfcHV0SXdOU18xOW9zdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTBtb25leXB1bmN0SWNMYjBFRUUATlN0M19fMjEwbW9uZXlfYmFzZUUATlN0M19fMjEwbW9uZXlwdW5jdEljTGIxRUVFAE5TdDNfXzIxMG1vbmV5cHVuY3RJd0xiMEVFRQBOU3QzX18yMTBtb25leXB1bmN0SXdMYjFFRUUAMDEyMzQ1Njc4OQAlTGYATlN0M19fMjltb25leV9nZXRJY05TXzE5aXN0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfZ2V0SWNFRQAwMTIzNDU2Nzg5AE5TdDNfXzI5bW9uZXlfZ2V0SXdOU18xOWlzdHJlYW1idWZfaXRlcmF0b3JJd05TXzExY2hhcl90cmFpdHNJd0VFRUVFRQBOU3QzX18yMTFfX21vbmV5X2dldEl3RUUAJS4wTGYATlN0M19fMjltb25leV9wdXRJY05TXzE5b3N0cmVhbWJ1Zl9pdGVyYXRvckljTlNfMTFjaGFyX3RyYWl0c0ljRUVFRUVFAE5TdDNfXzIxMV9fbW9uZXlfcHV0SWNFRQBOU3QzX18yOW1vbmV5X3B1dEl3TlNfMTlvc3RyZWFtYnVmX2l0ZXJhdG9ySXdOU18xMWNoYXJfdHJhaXRzSXdFRUVFRUUATlN0M19fMjExX19tb25leV9wdXRJd0VFAE5TdDNfXzI4bWVzc2FnZXNJY0VFAE5TdDNfXzIxM21lc3NhZ2VzX2Jhc2VFAE5TdDNfXzIxN19fd2lkZW5fZnJvbV91dGY4SUxtMzJFRUUATlN0M19fMjdjb2RlY3Z0SURpYzExX19tYnN0YXRlX3RFRQBOU3QzX18yMTJjb2RlY3Z0X2Jhc2VFAE5TdDNfXzIxNl9fbmFycm93X3RvX3V0ZjhJTG0zMkVFRQBOU3QzX18yOG1lc3NhZ2VzSXdFRQBOU3QzX18yN2NvZGVjdnRJY2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjdjb2RlY3Z0SXdjMTFfX21ic3RhdGVfdEVFAE5TdDNfXzI3Y29kZWN2dElEc2MxMV9fbWJzdGF0ZV90RUUATlN0M19fMjZsb2NhbGU1X19pbXBFAE5TdDNfXzI1Y3R5cGVJY0VFAE5TdDNfXzIxMGN0eXBlX2Jhc2VFAE5TdDNfXzI1Y3R5cGVJd0VFAGZhbHNlAHRydWUATlN0M19fMjhudW1wdW5jdEljRUUATlN0M19fMjhudW1wdW5jdEl3RUUATlN0M19fMjE0X19zaGFyZWRfY291bnRFAE5TdDNfXzIxOV9fc2hhcmVkX3dlYWtfY291bnRF";var tempDoublePtr=57872;function demangle(func){return func}function demangleAll(text){var regex=/\b__Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var ENV={};function ___buildEnvironment(environ){var MAX_ENV_VALUES=64;var TOTAL_ENV_SIZE=1024;var poolPtr;var envPtr;if(!___buildEnvironment.called){___buildEnvironment.called=true;ENV["USER"]="web_user";ENV["LOGNAME"]="web_user";ENV["PATH"]="/";ENV["PWD"]="/";ENV["HOME"]="/home/web_user";ENV["LANG"]=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";ENV["_"]=thisProgram;poolPtr=getMemory(TOTAL_ENV_SIZE);envPtr=getMemory(MAX_ENV_VALUES*4);HEAP32[envPtr>>2]=poolPtr;HEAP32[environ>>2]=envPtr}else{envPtr=HEAP32[environ>>2];poolPtr=HEAP32[envPtr>>2]}var strings=[];var totalSize=0;for(var key in ENV){if(typeof ENV[key]==="string"){var line=key+"="+ENV[key];strings.push(line);totalSize+=line.length}}if(totalSize>TOTAL_ENV_SIZE){throw new Error("Environment size exceeded TOTAL_ENV_SIZE!")}var ptrSize=4;for(var i=0;i>2]=poolPtr;poolPtr+=line.length+1}HEAP32[envPtr+strings.length*ptrSize>>2]=0}function ___cxa_allocate_exception(size){return _malloc(size)}var ___exception_infos={};var ___exception_caught=[];function ___exception_addRef(ptr){if(!ptr)return;var info=___exception_infos[ptr];info.refcount++}function ___exception_deAdjust(adjusted){if(!adjusted||___exception_infos[adjusted])return adjusted;for(var key in ___exception_infos){var ptr=+key;var adj=___exception_infos[ptr].adjusted;var len=adj.length;for(var i=0;i>2]=value;return value}function ___map_file(pathname,size){___setErrNo(63);return-1}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)}};var PATH_FS={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_FS.resolve(from).substr(1);to=PATH_FS.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){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(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(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node}return node},getFileDataAsRegularArray:function(node){if(node.contents&&node.contents.subarray){var arr=[];for(var i=0;i=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(new ArrayBuffer(newSize));if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}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(32)}}}}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 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var err=FS.nodePermissions(dir,"x");if(err)return err;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}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 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}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(33)},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(70)}},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){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(10)}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(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}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(28)}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);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(28)}var err=FS.mayCreate(parent,name);if(err){throw new FS.ErrnoError(err)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}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)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";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(29)}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(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);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;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];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-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}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=UTF8ToString(SYSCALLS.get());return ret},getStreamFromFD:function(fd){if(fd===undefined)fd=SYSCALLS.get();var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(){var low=SYSCALLS.get(),high=SYSCALLS.get();return low},getZero:function(){SYSCALLS.get()}};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-28}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:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 13:case 14:return 0;case 16:case 8:return-28;case 9:___setErrNo(28);return-1;default:{return-28}}}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 ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),op=SYSCALLS.get();switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:abort("bad ioctl syscall "+op)}}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function __emscripten_syscall_munmap(addr,len){if(addr===-1||len===0){return-28}var info=SYSCALLS.mappings[addr];if(!info)return 0;if(len===info.len){var stream=FS.getStream(info.fd);SYSCALLS.doMsync(addr,stream,len,info.flags);FS.munmap(stream);SYSCALLS.mappings[addr]=null;if(info.allocated){_free(info.malloc)}}return 0}function ___syscall91(which,varargs){SYSCALLS.varargs=varargs;try{var addr=SYSCALLS.get(),len=SYSCALLS.get();return __emscripten_syscall_munmap(addr,len)}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___unlock(){}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_close(){return _fd_close.apply(null,arguments)}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_read(){return _fd_read.apply(null,arguments)}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];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 ___wasi_fd_seek(){return _fd_seek.apply(null,arguments)}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function ___wasi_fd_write(){return _fd_write.apply(null,arguments)}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return"_"+name}else{return name}}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function("body","return function "+name+"() {\n"+' "use strict";'+" return body.apply(this, arguments);\n"+"};\n")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+": "+this.message}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i>shift])},destructorFunction:null})}function __embind_register_constant(name,type,value){name=readLatin1String(name);whenDependentTypesAreResolved([],[type],function(type){type=type[0];Module[name]=type["fromWireType"](value);return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i>2])}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=emval_handle_array[handle].value;__emval_decref(handle);return rv},"toWireType":function(destructors,value){return __emval_register(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function _embind_repr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError("new_ called with constructor type "+typeof constructor+" which is not a function")}var dummy=createNamedFunction(constructor.name||"unknownFunctionName",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i0?", ":"")+argsListWired}invokerFnBody+=(returns?"var rv = ":"")+"invoker(fn"+(argsListWired.length>0?", ":"")+argsListWired+");\n";if(needsDestructorStack){invokerFnBody+="runDestructors(destructors);\n"}else{for(var i=isClassMethodFunc?1:2;i>2)+i])}return array}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(dynCall){var args=[];for(var i=1;i>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=function(value){return value};if(minRange===0){var bitshift=32-8*size;fromWireType=function(value){return value<>>bitshift}}var isUnsignedType=name.indexOf("unsigned")!=-1;registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":function(destructors,value){if(typeof value!=="number"&&typeof value!=="boolean"){throw new TypeError('Cannot convert "'+_embind_repr(value)+'" to '+this.name)}if(valuemaxRange){throw new TypeError('Passing a number "'+_embind_repr(value)+'" from JS side to C/C++ side to an argument of type "'+name+'", which is outside the valid range ['+minRange+", "+maxRange+"]!")}return isUnsignedType?value>>>0:value|0},"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap["buffer"],data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var str;if(stdStringIsUTF8){var endChar=HEAPU8[value+4+length];var endCharSwap=0;if(endChar!=0){endCharSwap=endChar;HEAPU8[value+4+length]=0}var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i;if(HEAPU8[currentBytePtr]==0){var stringSegment=UTF8ToString(decodeStartPtr);if(str===undefined)str=stringSegment;else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}if(endCharSwap!=0)HEAPU8[value+4+length]=endCharSwap}else{var a=new Array(length);for(var i=0;i>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr+4,length+1)}else{if(valueIsOfTypeString){for(var i=0;i255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+4+i]=charCode}}else{for(var i=0;i>2];var a=new Array(length);var start=value+4>>shift;for(var i=0;i>2]=length;var start=ptr+4>>shift;for(var i=0;iLIMIT){return false}var MIN_TOTAL_MEMORY=16777216;var newSize=Math.max(oldSize,MIN_TOTAL_MEMORY);while(newSize>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}function _llvm_exp2_f32(x){return Math.pow(2,x)}function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);stackRestore(ret)}function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(stackSave());return self.LLVM_SAVEDSTACKS.length-1}var ___tm_current=57728;var ___tm_timezone=(stringToUTF8("GMT",57776,4),57776);function _tzset(){if(_tzset.called)return;_tzset.called=true;HEAP32[__get_timezone()>>2]=(new Date).getTimezoneOffset()*60;var currentYear=(new Date).getFullYear();var winter=new Date(currentYear,0,1);var summer=new Date(currentYear,6,1);HEAP32[__get_daylight()>>2]=Number(winter.getTimezoneOffset()!=summer.getTimezoneOffset());function extractZone(date){var match=date.toTimeString().match(/\(([A-Za-z ]+)\)$/);return match?match[1]:"GMT"}var winterName=extractZone(winter);var summerName=extractZone(summer);var winterNamePtr=allocate(intArrayFromString(winterName),"i8",ALLOC_NORMAL);var summerNamePtr=allocate(intArrayFromString(summerName),"i8",ALLOC_NORMAL);if(summer.getTimezoneOffset()>2]=winterNamePtr;HEAP32[__get_tzname()+4>>2]=summerNamePtr}else{HEAP32[__get_tzname()>>2]=summerNamePtr;HEAP32[__get_tzname()+4>>2]=winterNamePtr}}function _localtime_r(time,tmPtr){_tzset();var date=new Date(HEAP32[time>>2]*1e3);HEAP32[tmPtr>>2]=date.getSeconds();HEAP32[tmPtr+4>>2]=date.getMinutes();HEAP32[tmPtr+8>>2]=date.getHours();HEAP32[tmPtr+12>>2]=date.getDate();HEAP32[tmPtr+16>>2]=date.getMonth();HEAP32[tmPtr+20>>2]=date.getFullYear()-1900;HEAP32[tmPtr+24>>2]=date.getDay();var start=new Date(date.getFullYear(),0,1);var yday=(date.getTime()-start.getTime())/(1e3*60*60*24)|0;HEAP32[tmPtr+28>>2]=yday;HEAP32[tmPtr+36>>2]=-(date.getTimezoneOffset()*60);var summerOffset=new Date(date.getFullYear(),6,1).getTimezoneOffset();var winterOffset=start.getTimezoneOffset();var dst=(summerOffset!=winterOffset&&date.getTimezoneOffset()==Math.min(winterOffset,summerOffset))|0;HEAP32[tmPtr+32>>2]=dst;var zonePtr=HEAP32[__get_tzname()+(dst?4:0)>>2];HEAP32[tmPtr+40>>2]=zonePtr;return tmPtr}function _localtime(time){return _localtime_r(time,___tm_current)}function _longjmp(env,value){_setThrew(env,value||1);throw"longjmp"}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest)}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]);return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}function _time(ptr){var ret=Date.now()/1e3|0;if(ptr){HEAP32[ptr>>2]=ret}return ret}FS.staticInit();embind_init_charCodes();BindingError=Module["BindingError"]=extendError(Error,"BindingError");InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_emval();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var ASSERTIONS=false;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}function intArrayToString(array){var ret=[];for(var i=0;i255){if(ASSERTIONS){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("")}var decodeBase64=typeof atob==="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i>2]|0;g=h>>8;if(h&1)g=c[(c[d>>2]|0)+g>>2]|0;a=c[a>>2]|0;Yb[c[(c[a>>2]|0)+24>>2]&63](a,b,d+g|0,(h&2|0)==0?2:e,f);return}function nB(a){a=a|0;return ((oB(a)|0)^1)&1|0}function oB(b){b=b|0;return (a[b>>0]|0)!=0|0}function pB(a){a=a|0;c[a>>2]=0;qB(a);return}function qB(a){a=a|0;c[a>>2]=c[a>>2]|1;return}function rB(a){a=a|0;c[a>>2]=0;return}function sB(){return 0}function tB(a){a=a|0;var b=0;b=(a|0)==0?1:a;while(1){a=FO(b)|0;if(a|0)break;a=sB()|0;if(!a){a=0;break}Rb[a&1]()}return a|0}function uB(a){a=a|0;return tB(a)|0}function vB(a){a=a|0;SA(a);return}function wB(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=c[d>>2];a=Jb[c[(c[a>>2]|0)+16>>2]&63](a,b,e)|0;if(a)c[d>>2]=c[e>>2];zb=f;return a&1|0}function xB(a){a=a|0;if(!a)a=0;else a=(NA(a,13904,13992,0)|0)!=0&1;return a|0}function yB(){return 0}function zB(){N(55684);return}function AB(){return 55668}function BB(){return 55676}function CB(){return 55680}function DB(){return 55684}function EB(){FB();return}function FB(){GB(57670);return}function GB(a){a=a|0;var b=0;b=zb;zb=zb+16|0;c[b>>2]=a;HB();zb=b;return}function HB(){pa(IB()|0,47294);ga(JB()|0,47299,1,1,0);KB(47304);LB(47309);MB(47321);NB(47335);OB(47341);PB(47356);QB(47360);RB(47373);SB(47378);TB(47392);UB(47398);na(VB()|0,47405);na(WB()|0,47417);oa(XB()|0,4,47450);ia(YB()|0,47463);ZB(47479);_B(47509);$B(47546);aC(47585);bC(47616);cC(47656);dC(47685);eC(47723);fC(47753);_B(47792);$B(47824);aC(47857);bC(47890);cC(47924);dC(47957);gC(47991);hC(48022);iC(48054);return}function IB(){return sD()|0}function JB(){return rD()|0}function KB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=pD()|0;la(a|0,c[d>>2]|0,1,-128<<24>>24|0,127<<24>>24|0);zb=b;return}function LB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=nD()|0;la(a|0,c[d>>2]|0,1,-128<<24>>24|0,127<<24>>24|0);zb=b;return}function MB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=lD()|0;la(a|0,c[d>>2]|0,1,0,255);zb=b;return}function NB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=jD()|0;la(a|0,c[d>>2]|0,2,-32768<<16>>16|0,32767<<16>>16|0);zb=b;return}function OB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=hD()|0;la(a|0,c[d>>2]|0,2,0,65535);zb=b;return}function PB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=fD()|0;la(a|0,c[d>>2]|0,4,-2147483648,2147483647);zb=b;return}function QB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=dD()|0;la(a|0,c[d>>2]|0,4,0,-1);zb=b;return}function RB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=bD()|0;la(a|0,c[d>>2]|0,4,-2147483648,2147483647);zb=b;return}function SB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=$C()|0;la(a|0,c[d>>2]|0,4,0,-1);zb=b;return}function TB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=ZC()|0;ja(a|0,c[d>>2]|0,4);zb=b;return}function UB(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;a=XC()|0;ja(a|0,c[d>>2]|0,8);zb=b;return}function VB(){return WC()|0}function WB(){return VC()|0}function XB(){return UC()|0}function YB(){return TC()|0}function ZB(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=QC()|0;a=RC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function _B(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=NC()|0;a=OC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function $B(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=KC()|0;a=LC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function aC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=HC()|0;a=IC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function bC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=EC()|0;a=FC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function cC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=BC()|0;a=CC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function dC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=yC()|0;a=zC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function eC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=vC()|0;a=wC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function fC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=sC()|0;a=tC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function gC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=pC()|0;a=qC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function hC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=mC()|0;a=nC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function iC(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b;c[d>>2]=a;e=jC()|0;a=kC()|0;ma(e|0,a|0,c[d>>2]|0);zb=b;return}function jC(){return lC()|0}function kC(){return 7}function lC(){return 14144}function mC(){return oC()|0}function nC(){return 7}function oC(){return 14152}function pC(){return rC()|0}function qC(){return 6}function rC(){return 14160}function sC(){return uC()|0}function tC(){return 5}function uC(){return 14168}function vC(){return xC()|0}function wC(){return 4}function xC(){return 14176}function yC(){return AC()|0}function zC(){return 5}function AC(){return 14184}function BC(){return DC()|0}function CC(){return 4}function DC(){return 14192}function EC(){return GC()|0}function FC(){return 3}function GC(){return 14200}function HC(){return JC()|0}function IC(){return 2}function JC(){return 14208}function KC(){return MC()|0}function LC(){return 1}function MC(){return 14216}function NC(){return PC()|0}function OC(){return 0}function PC(){return 14224}function QC(){return SC()|0}function RC(){return 0}function SC(){return 14232}function TC(){return 14240}function UC(){return 14248}function VC(){return 14272}function WC(){return 13272}function XC(){return YC()|0}function YC(){return 14120}function ZC(){return _C()|0}function _C(){return 14112}function $C(){return aD()|0}function aD(){return 14104}function bD(){return cD()|0}function cD(){return 14096}function dD(){return eD()|0}function eD(){return 14088}function fD(){return gD()|0}function gD(){return 14080}function hD(){return iD()|0}function iD(){return 14072}function jD(){return kD()|0}function kD(){return 14064}function lD(){return mD()|0}function mD(){return 14048}function nD(){return oD()|0}function oD(){return 14056}function pD(){return qD()|0}function qD(){return 14040}function rD(){return 14032}function sD(){return 14024}function tD(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+16|0;d=b+4|0;e=b;c[e>>2]=a;c[d>>2]=c[e>>2];a=jz(c[(c[d>>2]|0)+4>>2]|0)|0;zb=b;return a|0}function uD(a){a=a|0;return 0}function vD(a){a=a|0;return 0}function wD(a,b){a=a|0;b=b|0;return 0}function xD(a){a=a|0;return 0}function yD(){return (zD()|0)>0|0}function zD(){return yB()|0}function AD(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;k=zb;zb=zb+16|0;d=k;i=k+8|0;e=k+4|0;c[i>>2]=a;do if(a>>>0>=212){h=(a>>>0)/210|0;b=h*210|0;c[e>>2]=a-b;a=0;g=(BD(12736,12928,e,d)|0)-12736>>2;a:while(1){f=(c[12736+(g<<2)>>2]|0)+b|0;b=5;while(1){if(b>>>0>=47){j=6;break}d=c[12544+(b<<2)>>2]|0;e=(f>>>0)/(d>>>0)|0;if(e>>>0>>0){j=107;break a}if((f|0)==(B(e,d)|0))break;else b=b+1|0}b:do if((j|0)==6){j=0;e=211;c:while(1){b=(f>>>0)/(e>>>0)|0;do if(b>>>0>=e>>>0)if((f|0)!=(B(b,e)|0)){b=e+10|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+12|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+16|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+18|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+22|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)!=(B(d,b)|0)){b=e+28|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>=b>>>0)if((f|0)==(B(d,b)|0))d=9;else{b=e+30|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+36|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+40|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+42|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+46|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+52|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+58|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+60|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+66|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+70|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+72|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+78|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+82|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+88|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+96|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+100|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+102|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+106|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+108|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+112|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+120|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+126|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+130|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+136|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+138|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+142|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+148|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+150|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+156|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+162|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+166|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+168|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+172|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+178|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+180|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+186|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+190|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+192|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+196|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+198|0;d=(f>>>0)/(b>>>0)|0;if(d>>>0>>0){d=1;a=f;break}if((f|0)==(B(d,b)|0)){d=9;break}b=e+208|0;d=(f>>>0)/(b>>>0)|0;l=d>>>0>>0;d=(f|0)==(B(d,b)|0);b=l|d?b:e+210|0;d=l?1:d?9:0;a=l?f:a}else{d=1;a=f}}else d=9;else{d=1;a=f}}else d=9;else{d=1;a=f}}else d=9;else{d=1;a=f}}else d=9;else{d=1;a=f}}else d=9;else{d=1;a=f}}else{b=e;d=9}else{b=e;d=1;a=f}while(0);switch(d&15){case 9:break b;case 0:{e=b;break}default:break c}}if(d){j=108;break a}}while(0);l=g+1|0;f=(l|0)==48;b=h+(f&1)|0;h=b;b=b*210|0;g=f?0:l}if((j|0)==107){c[i>>2]=f;a=f;break}else if((j|0)==108){c[i>>2]=f;break}}else{a=BD(12544,12736,i,d)|0;a=c[a>>2]|0}while(0);zb=k;return a|0}function BD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[d>>2]|0;e=a;d=b-a>>2;while(1){if(!d)break;b=d>>>1;g=e+(b<<2)|0;a=(c[g>>2]|0)>>>0>>0;e=a?g+4|0:e;d=a?d+-1-b|0:b}return e|0}function CD(a){a=a|0;DD(a);return}function DD(a){a=a|0;c[a>>2]=16480;ED(a,0);YF(a+28|0);GO(c[a+32>>2]|0);GO(c[a+36>>2]|0);GO(c[a+48>>2]|0);GO(c[a+60>>2]|0);return}function ED(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=a+32|0;f=a+36|0;d=c[a+40>>2]|0;while(1){if(!d)break;g=d+-1|0;Wb[c[(c[e>>2]|0)+(g<<2)>>2]&3](b,a,c[(c[f>>2]|0)+(g<<2)>>2]|0);d=g}return}function FD(a){a=a|0;DD(a);SA(a);return}function GD(a){a=a|0;DD(a);return}function HD(a){a=a|0;c[a>>2]=16496;YF(a+4|0);return}function ID(a){a=a|0;HD(a);SA(a);return}function JD(a,b){a=a|0;b=b|0;return}function KD(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function LD(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}function MD(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a;c[e>>2]=0;c[e+4>>2]=0;e=a+8|0;c[e>>2]=-1;c[e+4>>2]=-1;return}function ND(a){a=a|0;return 0}function OD(a){a=a|0;return 0}function PD(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;Wf()|0;i=b+12|0;j=b+16|0;h=0;while(1){if((h|0)>=(e|0))break;f=c[i>>2]|0;g=c[j>>2]|0;if(f>>>0>>0){g=g-f|0;k=e-h|0;g=(k|0)<(g|0)?k:g;VD(d,f,g)|0;c[i>>2]=(c[i>>2]|0)+g;d=d+g|0;f=g}else{f=Gb[c[(c[b>>2]|0)+40>>2]&127](b)|0;if((f|0)==-1)break;f=eg(f)|0;a[d>>0]=f;d=d+1|0;f=1}h=f+h|0}return h|0}function QD(a){a=a|0;return Wf()|0}function RD(b){b=b|0;var d=0;d=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;if((d|0)==(Wf()|0))b=Wf()|0;else{d=b+12|0;b=c[d>>2]|0;c[d>>2]=b+1;b=cg(a[b>>0]|0)|0}return b|0}function SD(a,b){a=a|0;b=b|0;return Wf()|0}function TD(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;i=Wf()|0;j=b+24|0;k=b+28|0;f=0;while(1){if((f|0)>=(e|0))break;g=c[j>>2]|0;h=c[k>>2]|0;if(g>>>0>>0){h=h-g|0;l=e-f|0;h=(l|0)<(h|0)?l:h;VD(g,d,h)|0;c[j>>2]=(c[j>>2]|0)+h;d=d+h|0;f=h+f|0}else{h=c[(c[b>>2]|0)+52>>2]|0;l=cg(a[d>>0]|0)|0;if((Ib[h&63](b,l)|0)==(i|0))break;d=d+1|0;f=f+1|0}}return f|0}function UD(a,b){a=a|0;b=b|0;return Wf()|0}function VD(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)_O(a|0,b|0,c|0)|0;return a|0}function WD(a){a=a|0;c[a>>2]=16560;YF(a+4|0);return}function XD(a){a=a|0;WD(a);SA(a);return}function YD(a,b){a=a|0;b=b|0;return}function ZD(a,b,c){a=a|0;b=b|0;c=c|0;return a|0}function _D(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;g=a;c[g>>2]=0;c[g+4>>2]=0;g=a+8|0;c[g>>2]=-1;c[g+4>>2]=-1;return}function $D(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a;c[e>>2]=0;c[e+4>>2]=0;e=a+8|0;c[e>>2]=-1;c[e+4>>2]=-1;return}function aE(a){a=a|0;return 0}function bE(a){a=a|0;return 0}function cE(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;iE()|0;h=a+12|0;i=a+16|0;g=0;while(1){if((g|0)>=(d|0))break;e=c[h>>2]|0;f=c[i>>2]|0;if(e>>>0>>0){f=f-e>>2;j=d-g|0;f=(j|0)<(f|0)?j:f;kE(b,e,f)|0;c[h>>2]=(c[h>>2]|0)+(f<<2);b=b+(f<<2)|0;e=f}else{e=Gb[c[(c[a>>2]|0)+40>>2]&127](a)|0;if((e|0)==-1)break;e=lE(e)|0;c[b>>2]=e;b=b+4|0;e=1}g=e+g|0}return g|0}function dE(a){a=a|0;return iE()|0}function eE(a){a=a|0;var b=0;b=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;if((b|0)==(iE()|0))a=iE()|0;else{b=a+12|0;a=c[b>>2]|0;c[b>>2]=a+4;a=jE(c[a>>2]|0)|0}return a|0}function fE(a,b){a=a|0;b=b|0;return iE()|0}function gE(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=iE()|0;i=a+24|0;j=a+28|0;e=0;while(1){if((e|0)>=(d|0))break;f=c[i>>2]|0;g=c[j>>2]|0;if(f>>>0>>0){g=g-f>>2;k=d-e|0;g=(k|0)<(g|0)?k:g;kE(f,b,g)|0;c[i>>2]=(c[i>>2]|0)+(g<<2);b=b+(g<<2)|0;e=g+e|0}else{g=c[(c[a>>2]|0)+52>>2]|0;k=jE(c[b>>2]|0)|0;if((Ib[g&63](a,k)|0)==(h|0))break;b=b+4|0;e=e+1|0}}return e|0}function hE(a,b){a=a|0;b=b|0;return iE()|0}function iE(){return -1}function jE(a){a=a|0;return a|0}function kE(a,b,c){a=a|0;b=b|0;c=c|0;if(c)gz(a,b,c)|0;return a|0}function lE(a){a=a|0;return a|0}function mE(a){a=a|0;qE(a,16656);CD(a+8|0);return}function nE(a){a=a|0;mE(a);SA(a);return}function oE(a){a=a|0;mE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function pE(a){a=a|0;nE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function qE(a,b){a=a|0;b=b|0;return}function rE(a){a=a|0;vE(a,16704);GD(a+8|0);return}function sE(a){a=a|0;rE(a);SA(a);return}function tE(a){a=a|0;rE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function uE(a){a=a|0;sE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function vE(a,b){a=a|0;b=b|0;return}function wE(a){a=a|0;AE(a,16752);CD(a+4|0);return}function xE(a){a=a|0;wE(a);SA(a);return}function yE(a){a=a|0;wE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function zE(a){a=a|0;xE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function AE(a,b){a=a|0;b=b|0;return}function BE(a){a=a|0;FE(a,16800);GD(a+4|0);return}function CE(a){a=a|0;BE(a);SA(a);return}function DE(a){a=a|0;BE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function EE(a){a=a|0;CE(a+(c[(c[a>>2]|0)+-12>>2]|0)|0);return}function FE(a,b){a=a|0;b=b|0;return}function GE(a,b){a=a|0;b=b|0;c[a+16>>2]=(c[a+24>>2]|0)==0|b;return}function HE(a,b){a=a|0;b=b|0;var d=0;c[a+24>>2]=b;c[a+16>>2]=(b|0)==0&1;c[a+20>>2]=0;c[a+4>>2]=4098;c[a+12>>2]=0;c[a+8>>2]=6;d=a+28|0;b=a+32|0;a=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(a|0));YN(d);return}function IE(a,b){a=a|0;b=b|0;WN(a,b+28|0);return}function JE(a,b){a=a|0;b=b|0;return (a|0)==(b|0)|0}function KE(a){a=a|0;c[a>>2]=16496;YN(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function LE(a){a=a|0;c[a>>2]=16560;YN(a+4|0);a=a+8|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;return}function ME(b){b=b|0;var d=0,e=0,f=0;e=zb;zb=zb+16|0;d=e;if(c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0){NE(d,b);if(a[d>>0]|0?(f=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0,(Gb[c[(c[f>>2]|0)+24>>2]&127](f)|0)==-1):0){f=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(f,c[f+16>>2]|1)}OE(d)}zb=e;return b|0}function NE(b,d){b=b|0;d=d|0;a[b>>0]=0;c[b+4>>2]=d;d=d+(c[(c[d>>2]|0)+-12>>2]|0)|0;if(!(c[d+16>>2]|0)){d=c[d+72>>2]|0;if(d|0)ME(d)|0;a[b>>0]=1}return}function OE(a){a=a|0;var b=0;a=a+4|0;b=c[a>>2]|0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;if((((c[b+24>>2]|0?(c[b+16>>2]|0)==0:0)?c[b+4>>2]&8192|0:0)?!(yD()|0):0)?(b=c[a>>2]|0,b=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0,(Gb[c[(c[b>>2]|0)+24>>2]&127](b)|0)==-1):0){b=c[a>>2]|0;b=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(b,c[b+16>>2]|1)}return}function PE(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;l=zb;zb=zb+16|0;f=l+12|0;j=l+8|0;k=l;NE(k,b);if(a[k>>0]|0){IE(f,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);g=XF(f,56792)|0;YF(f);h=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;i=c[h+24>>2]|0;m=Wf()|0;e=h+76|0;if(_f(m,c[e>>2]|0)|0){IE(f,h);m=XF(f,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,32)|0;YF(f);m=m<<24>>24;c[e>>2]=m;e=m}else e=c[e>>2]|0;m=c[(c[g>>2]|0)+16>>2]|0;c[j>>2]=i;c[f>>2]=c[j>>2];if(!(Mb[m&31](g,f,h,e&255,d)|0)){m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(m,c[m+16>>2]|5)}}OE(k);zb=l;return b|0}function QE(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;i=j;NE(i,b);do if(a[i>>0]|0){e=c[b+(c[(c[b>>2]|0)+-12>>2]|0)+24>>2]|0;f=e;if(e|0){g=f+24|0;h=c[g>>2]|0;if((h|0)==(c[f+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;d=cg(d)|0;d=Ib[h&63](f,d)|0}else{c[g>>2]=h+1;a[h>>0]=d;d=cg(d)|0}if(!(_f(d,Wf()|0)|0))break}h=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(h,c[h+16>>2]|1)}while(0);OE(i);zb=j;return b|0}function RE(a){a=a|0;a=a+16|0;c[a>>2]=c[a>>2]|1;return}function SE(){UE();return}function TE(){return}function UE(){VE(0);return}function VE(a){a=a|0;var b=0,d=0;b=c[4002]|0;WE(56368,b,56424);c[13922]=16628;c[13924]=16648;c[13923]=0;HE(55696,56368);c[13942]=0;a=Wf()|0;c[13943]=a;XE(56432,b,56488);c[13944]=16676;c[13946]=16696;c[13945]=0;HE(55784,56432);c[13964]=0;b=iE()|0;c[13965]=b;b=c[4003]|0;YE(56496,b,56544);c[13966]=16724;c[13967]=16744;HE(55868,56496);c[13985]=0;a=Wf()|0;c[13986]=a;ZE(56552,b,56600);c[13987]=16772;c[13988]=16792;HE(55952,56552);c[14006]=0;b=iE()|0;c[14007]=b;b=c[4001]|0;YE(56608,b,56656);c[14008]=16724;c[14009]=16744;HE(56036,56608);c[14027]=0;a=Wf()|0;c[14028]=a;a=c[56032+(c[(c[14008]|0)+-12>>2]|0)+24>>2]|0;c[14050]=16724;c[14051]=16744;HE(56204,a);c[14069]=0;a=Wf()|0;c[14070]=a;ZE(56664,b,56712);c[14029]=16772;c[14030]=16792;HE(56120,56664);c[14048]=0;b=iE()|0;c[14049]=b;b=c[56116+(c[(c[14029]|0)+-12>>2]|0)+24>>2]|0;c[14071]=16772;c[14072]=16792;HE(56288,b);c[14090]=0;b=iE()|0;c[14091]=b;c[55688+(c[(c[13922]|0)+-12>>2]|0)+72>>2]=55864;c[55776+(c[(c[13944]|0)+-12>>2]|0)+72>>2]=55948;b=(c[14008]|0)+-12|0;a=56032+(c[b>>2]|0)+4|0;c[a>>2]=c[a>>2]|8192;a=(c[14029]|0)+-12|0;d=56116+(c[a>>2]|0)+4|0;c[d>>2]=c[d>>2]|8192;c[56032+(c[b>>2]|0)+72>>2]=55864;c[56116+(c[a>>2]|0)+72>>2]=55948;return}function WE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;KE(b);c[b>>2]=17008;c[b+32>>2]=d;c[b+40>>2]=e;e=Wf()|0;c[b+48>>2]=e;a[b+52>>0]=0;e=c[(c[b>>2]|0)+8>>2]|0;WN(g,b+4|0);Ub[e&63](b,g);YF(g);zb=f;return}function XE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;LE(b);c[b>>2]=16944;c[b+32>>2]=d;c[b+40>>2]=e;e=iE()|0;c[b+48>>2]=e;a[b+52>>0]=0;e=c[(c[b>>2]|0)+8>>2]|0;WN(g,b+4|0);Ub[e&63](b,g);YF(g);zb=f;return}function YE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;KE(b);c[b>>2]=16880;c[b+32>>2]=d;WN(g,b+4|0);d=XF(g,57040)|0;YF(g);c[b+36>>2]=d;c[b+40>>2]=e;e=(Gb[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;a[b+44>>0]=e;zb=f;return}function ZE(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;LE(b);c[b>>2]=16816;c[b+32>>2]=d;WN(g,b+4|0);d=XF(g,57048)|0;YF(g);c[b+36>>2]=d;c[b+40>>2]=e;e=(Gb[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;a[b+44>>0]=e;zb=f;return}function _E(a){a=a|0;WD(a);SA(a);return}function $E(b,d){b=b|0;d=d|0;Gb[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=XF(d,57048)|0;c[b+36>>2]=d;d=(Gb[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;a[b+44>>0]=d;return}function aF(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;k=zb;zb=zb+16|0;d=k+8|0;e=k;f=a+36|0;g=a+40|0;h=d+8|0;i=d;b=a+32|0;a:while(1){a=c[f>>2]|0;a=Mb[c[(c[a>>2]|0)+20>>2]&31](a,c[g>>2]|0,d,h,e)|0;l=(c[e>>2]|0)-i|0;if((lz(d,1,l,c[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{j=4;break a}}}if((j|0)==4)a=((yz(c[b>>2]|0)|0)!=0)<<31>>31;zb=k;return a|0}function bF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!(a[b+44>>0]|0)){f=0;while(1){if((f|0)>=(e|0))break a;h=c[(c[b>>2]|0)+52>>2]|0;g=jE(c[d>>2]|0)|0;g=Ib[h&63](b,g)|0;if((g|0)==(iE()|0))break a;f=f+1|0;d=d+4|0}}else f=lz(d,4,e,c[b+32>>2]|0)|0;while(0);return f|0}function cF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+32|0;l=o+16|0;f=o+8|0;m=o+4|0;n=o;do if(!(JE(d,iE()|0)|0)){k=lE(d)|0;c[f>>2]=k;if(a[b+44>>0]|0){if((lz(f,4,1,c[b+32>>2]|0)|0)==1){e=15;break}b=iE()|0;break}c[m>>2]=l;e=f+4|0;g=b+36|0;h=b+40|0;i=l+8|0;j=l;k=b+32|0;while(1){b=c[g>>2]|0;b=Qb[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,f,e,n,l,i,m)|0;if((c[n>>2]|0)==(f|0)){e=14;break}if((b|0)==3){e=8;break}if(b>>>0>=2){e=14;break}f=(c[m>>2]|0)-j|0;if((lz(l,1,f,c[k>>2]|0)|0)!=(f|0)){e=14;break}if((b|0)==1)f=c[n>>2]|0;else{e=13;break}}if((e|0)==8)if((lz(f,1,1,c[k>>2]|0)|0)==1)e=13;else e=14;if((e|0)==13){e=15;break}else if((e|0)==14){b=iE()|0;break}}else e=15;while(0);if((e|0)==15)b=dF(d)|0;zb=o;return b|0}function dF(a){a=a|0;if(JE(a,iE()|0)|0)a=~(iE()|0);return a|0}function eF(a){a=a|0;HD(a);SA(a);return}function fF(b,d){b=b|0;d=d|0;Gb[c[(c[b>>2]|0)+24>>2]&127](b)|0;d=XF(d,57040)|0;c[b+36>>2]=d;d=(Gb[c[(c[d>>2]|0)+28>>2]&127](d)|0)&1;a[b+44>>0]=d;return}function gF(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;k=zb;zb=zb+16|0;d=k+8|0;e=k;f=a+36|0;g=a+40|0;h=d+8|0;i=d;b=a+32|0;a:while(1){a=c[f>>2]|0;a=Mb[c[(c[a>>2]|0)+20>>2]&31](a,c[g>>2]|0,d,h,e)|0;l=(c[e>>2]|0)-i|0;if((lz(d,1,l,c[b>>2]|0)|0)!=(l|0)){a=-1;break}switch(a|0){case 1:break;case 2:{a=-1;break a}default:{j=4;break a}}}if((j|0)==4)a=((yz(c[b>>2]|0)|0)!=0)<<31>>31;zb=k;return a|0}function hF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;a:do if(!(a[b+44>>0]|0)){f=0;while(1){if((f|0)>=(e|0))break a;h=c[(c[b>>2]|0)+52>>2]|0;g=cg(a[d>>0]|0)|0;g=Ib[h&63](b,g)|0;if((g|0)==(Wf()|0))break a;f=f+1|0;d=d+1|0}}else f=lz(d,1,e,c[b+32>>2]|0)|0;while(0);return f|0}function iF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+32|0;l=o+16|0;f=o+8|0;m=o+4|0;n=o;do if(!(_f(d,Wf()|0)|0)){k=eg(d)|0;a[f>>0]=k;if(a[b+44>>0]|0){if((lz(f,1,1,c[b+32>>2]|0)|0)==1){e=15;break}b=Wf()|0;break}c[m>>2]=l;e=f+1|0;g=b+36|0;h=b+40|0;i=l+8|0;j=l;k=b+32|0;while(1){b=c[g>>2]|0;b=Qb[c[(c[b>>2]|0)+12>>2]&15](b,c[h>>2]|0,f,e,n,l,i,m)|0;if((c[n>>2]|0)==(f|0)){e=14;break}if((b|0)==3){e=8;break}if(b>>>0>=2){e=14;break}f=(c[m>>2]|0)-j|0;if((lz(l,1,f,c[k>>2]|0)|0)!=(f|0)){e=14;break}if((b|0)==1)f=c[n>>2]|0;else{e=13;break}}if((e|0)==8)if((lz(f,1,1,c[k>>2]|0)|0)==1)e=13;else e=14;if((e|0)==13){e=15;break}else if((e|0)==14){b=Wf()|0;break}}else e=15;while(0);if((e|0)==15)b=dg(d)|0;zb=o;return b|0}function jF(a){a=a|0;WD(a);SA(a);return}function kF(b,d){b=b|0;d=d|0;var e=0,f=0;f=XF(d,57048)|0;e=b+36|0;c[e>>2]=f;f=Gb[c[(c[f>>2]|0)+24>>2]&127](f)|0;d=b+44|0;c[d>>2]=f;e=c[e>>2]|0;e=(Gb[c[(c[e>>2]|0)+28>>2]&127](e)|0)&1;a[b+53>>0]=e;if((c[d>>2]|0)>8)nJ(49046);else return}function lF(a){a=a|0;return oF(a,0)|0}function mF(a){a=a|0;return oF(a,1)|0}function nF(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;l=zb;zb=zb+32|0;h=l+16|0;i=l+8|0;f=l+4|0;g=l;j=JE(d,iE()|0)|0;k=b+52|0;e=(a[k>>0]|0)!=0;do if(j)if(e)e=d;else{e=c[b+48>>2]|0;d=((JE(e,iE()|0)|0)^1)&1;a[k>>0]=d}else{if(e){j=b+48|0;e=lE(c[j>>2]|0)|0;c[f>>2]=e;e=c[b+36>>2]|0;switch(Qb[c[(c[e>>2]|0)+12>>2]&15](e,c[b+40>>2]|0,f,f+4|0,g,h,h+8|0,i)|0){case 1:case 2:{g=11;break}case 3:{a[h>>0]=c[j>>2];c[i>>2]=h+1;g=8;break}default:g=8}a:do if((g|0)==8){e=b+32|0;while(1){f=c[i>>2]|0;if(f>>>0<=h>>>0){f=1;e=0;break a}b=f+-1|0;c[i>>2]=b;if((cA(a[b>>0]|0,c[e>>2]|0)|0)==-1){g=11;break}}}while(0);if((g|0)==11){f=0;e=iE()|0}if(f)e=j;else break}else e=b+48|0;c[e>>2]=d;a[k>>0]=1;e=d}while(0);zb=l;return e|0}function oF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=zb;zb=zb+32|0;p=r+16|0;q=r+8|0;l=r+4|0;m=r;g=b+52|0;if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){d=iE()|0;c[f>>2]=d;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;o=b+32|0;f=0;while(1){if(f>>>0>=e>>>0){n=9;break}g=Zz(c[o>>2]|0)|0;if((g|0)==-1){n=8;break}a[p+f>>0]=g;f=f+1|0}if((n|0)==8)e=iE()|0;else if((n|0)==9){do if(!(a[b+53>>0]|0)){i=b+40|0;j=b+36|0;k=q+4|0;a:while(1){s=c[i>>2]|0;g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;t=c[j>>2]|0;h=p+e|0;switch(Qb[c[(c[t>>2]|0)+16>>2]&15](t,s,p,h,l,q,k,m)|0){case 3:{n=15;break a}case 2:{n=17;break a}case 1:break;default:break a}t=c[i>>2]|0;c[t>>2]=f;c[t+4>>2]=g;if((e|0)==8){n=17;break}f=Zz(c[o>>2]|0)|0;if((f|0)==-1){n=17;break}a[h>>0]=f;e=e+1|0}if((n|0)==15)c[q>>2]=a[p>>0];else if((n|0)==17){e=iE()|0;break}n=19}else{c[q>>2]=a[p>>0];n=19}while(0);b:do if((n|0)==19){c:do if(d){t=jE(c[q>>2]|0)|0;c[b+48>>2]=t}else{do{if((e|0)<=0)break c;e=e+-1|0;t=jE(a[p+e>>0]|0)|0}while((cA(t,c[o>>2]|0)|0)!=-1);e=iE()|0;break b}while(0);e=jE(c[q>>2]|0)|0}while(0)}}zb=r;return e|0}function pF(a){a=a|0;HD(a);SA(a);return}function qF(b,d){b=b|0;d=d|0;var e=0,f=0;f=XF(d,57040)|0;e=b+36|0;c[e>>2]=f;f=Gb[c[(c[f>>2]|0)+24>>2]&127](f)|0;d=b+44|0;c[d>>2]=f;e=c[e>>2]|0;e=(Gb[c[(c[e>>2]|0)+28>>2]&127](e)|0)&1;a[b+53>>0]=e;if((c[d>>2]|0)>8)nJ(49046);else return}function rF(a){a=a|0;return uF(a,0)|0}function sF(a){a=a|0;return uF(a,1)|0}function tF(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;l=zb;zb=zb+32|0;h=l+16|0;i=l+4|0;f=l+8|0;g=l;j=_f(d,Wf()|0)|0;k=b+52|0;e=(a[k>>0]|0)!=0;do if(j)if(e)e=d;else{e=c[b+48>>2]|0;d=((_f(e,Wf()|0)|0)^1)&1;a[k>>0]=d}else{if(e){j=b+48|0;e=eg(c[j>>2]|0)|0;a[f>>0]=e;e=c[b+36>>2]|0;switch(Qb[c[(c[e>>2]|0)+12>>2]&15](e,c[b+40>>2]|0,f,f+1|0,g,h,h+8|0,i)|0){case 1:case 2:{g=11;break}case 3:{a[h>>0]=c[j>>2];c[i>>2]=h+1;g=8;break}default:g=8}a:do if((g|0)==8){e=b+32|0;while(1){f=c[i>>2]|0;if(f>>>0<=h>>>0){f=1;e=0;break a}b=f+-1|0;c[i>>2]=b;if((cA(a[b>>0]|0,c[e>>2]|0)|0)==-1){g=11;break}}}while(0);if((g|0)==11){f=0;e=Wf()|0}if(f)e=j;else break}else e=b+48|0;c[e>>2]=d;a[k>>0]=1;e=d}while(0);zb=l;return e|0}function uF(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=zb;zb=zb+32|0;p=r+16|0;q=r+8|0;l=r+4|0;m=r;g=b+52|0;if(a[g>>0]|0){f=b+48|0;e=c[f>>2]|0;if(d){d=Wf()|0;c[f>>2]=d;a[g>>0]=0}}else{e=c[b+44>>2]|0;e=(e|0)>1?e:1;o=b+32|0;f=0;while(1){if(f>>>0>=e>>>0){n=9;break}g=Zz(c[o>>2]|0)|0;if((g|0)==-1){n=8;break}a[p+f>>0]=g;f=f+1|0}if((n|0)==8)e=Wf()|0;else if((n|0)==9){do if(!(a[b+53>>0]|0)){i=b+40|0;j=b+36|0;k=q+1|0;a:while(1){s=c[i>>2]|0;g=s;f=c[g>>2]|0;g=c[g+4>>2]|0;t=c[j>>2]|0;h=p+e|0;switch(Qb[c[(c[t>>2]|0)+16>>2]&15](t,s,p,h,l,q,k,m)|0){case 3:{n=15;break a}case 2:{n=17;break a}case 1:break;default:break a}t=c[i>>2]|0;c[t>>2]=f;c[t+4>>2]=g;if((e|0)==8){n=17;break}f=Zz(c[o>>2]|0)|0;if((f|0)==-1){n=17;break}a[h>>0]=f;e=e+1|0}if((n|0)==15)a[q>>0]=a[p>>0]|0;else if((n|0)==17){e=Wf()|0;break}n=19}else{a[q>>0]=a[p>>0]|0;n=19}while(0);b:do if((n|0)==19){c:do if(d){t=cg(a[q>>0]|0)|0;c[b+48>>2]=t}else{do{if((e|0)<=0)break c;e=e+-1|0;t=cg(a[p+e>>0]|0)|0}while((cA(t,c[o>>2]|0)|0)!=-1);e=Wf()|0;break b}while(0);e=cg(a[q>>0]|0)|0}while(0)}}zb=r;return e|0}function vF(a){a=a|0;CF(a);return}function wF(a){a=a|0;vF(a);SA(a);return}function xF(a){a=a|0;if(a|0)Sb[c[(c[a>>2]|0)+4>>2]&255](a);return}function yF(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;b=c;while(1){if((e|0)==(f|0)){h=7;break}if((b|0)==(d|0)){b=-1;break}c=a[b>>0]|0;g=a[e>>0]|0;if(c<<24>>24>24){b=-1;break}if(g<<24>>24>24){b=1;break}e=e+1|0;b=b+1|0}if((h|0)==7)b=(b|0)!=(d|0)&1;return b|0}function zF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;BF(a,d,e);return}function AF(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0;b=0;while(1){if((c|0)==(d|0))break;e=(b<<4)+(a[c>>0]|0)|0;f=e&-268435456;b=(f>>>24|f)^e;c=c+1|0}return b|0}function BF(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;j=zb;zb=zb+16|0;g=d;i=j;f=e-g|0;if(f>>>0>4294967279)eO(b);if(f>>>0<11){a[b+11>>0]=f;h=b}else{k=f+16&-16;h=tB(k)|0;c[b>>2]=h;c[b+8>>2]=k|-2147483648;c[b+4>>2]=f}f=e-g|0;b=h;while(1){if((d|0)==(e|0))break;bg(b,d);d=d+1|0;b=b+1|0}a[i>>0]=0;bg(h+f|0,i);zb=j;return}function CF(a){a=a|0;return}function DF(a){a=a|0;CF(a);return}function EF(a){a=a|0;DF(a);SA(a);return}function FF(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;a=b;while(1){if((e|0)==(f|0)){h=7;break}if((a|0)==(d|0)){a=-1;break}b=c[a>>2]|0;g=c[e>>2]|0;if((b|0)<(g|0)){a=-1;break}if((g|0)<(b|0)){a=1;break}e=e+4|0;a=a+4|0}if((h|0)==7)a=(a|0)!=(d|0)&1;return a|0}function GF(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;IF(a,d,e);return}function HF(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a=0;while(1){if((b|0)==(d|0))break;e=(c[b>>2]|0)+(a<<4)|0;f=e&-268435456;a=(f>>>24|f)^e;b=b+4|0}return a|0}function IF(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;i=j;h=e-d>>2;if(h>>>0>1073741807)eO(b);do if(h>>>0>=2){g=h+4&-4;if(g>>>0>1073741823)ua();else{f=tB(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=h;break}}else{a[b+8+3>>0]=h;f=b}while(0);while(1){if((d|0)==(e|0))break;JF(f,d);d=d+4|0;f=f+4|0}c[i>>2]=0;JF(f,i);zb=j;return}function JF(a,b){a=a|0;b=b|0;c[a>>2]=c[b>>2];return}function KF(a){a=a|0;CF(a);return}function LF(a){a=a|0;CF(a);SA(a);return}function MF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+48|0;i=o+40|0;n=o;j=o+32|0;k=o+36|0;l=o+28|0;m=o+24|0;if(!(c[f+4>>2]&1)){c[j>>2]=-1;m=c[(c[b>>2]|0)+16>>2]|0;c[k>>2]=c[d>>2];c[l>>2]=c[e>>2];c[n>>2]=c[k>>2];c[i>>2]=c[l>>2];n=Ob[m&63](b,n,i,f,g,j)|0;c[d>>2]=n;switch(c[j>>2]|0){case 0:{a[h>>0]=0;break}case 1:{a[h>>0]=1;break}default:{a[h>>0]=1;c[g>>2]=4}}i=c[d>>2]|0}else{IE(i,f);l=XF(i,56736)|0;YF(i);IE(i,f);b=XF(i,56752)|0;YF(i);Ub[c[(c[b>>2]|0)+24>>2]&63](n,b);Ub[c[(c[b>>2]|0)+28>>2]&63](n+12|0,b);c[m>>2]=c[e>>2];b=n+24|0;c[i>>2]=c[m>>2];i=(FG(d,i,n,b,l,g,1)|0)==(n|0)&1;a[h>>0]=i;i=c[d>>2]|0;do{b=b+-12|0;jO(b)}while((b|0)!=(n|0))}zb=o;return i|0}function NF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=DG(a,j,i,e,f,g)|0;zb=h;return g|0}function OF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=BG(a,j,i,e,f,g)|0;zb=h;return g|0}function PF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=zG(a,j,i,e,f,g)|0;zb=h;return g|0}function QF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=xG(a,j,i,e,f,g)|0;zb=h;return g|0}function RF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=vG(a,j,i,e,f,g)|0;zb=h;return g|0}function SF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=pG(a,j,i,e,f,g)|0;zb=h;return g|0}function TF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=nG(a,j,i,e,f,g)|0;zb=h;return g|0}function UF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=lG(a,j,i,e,f,g)|0;zb=h;return g|0}function VF(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=gG(a,j,i,e,f,g)|0;zb=h;return g|0}function WF(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=zb;zb=zb+240|0;v=y+192|0;t=y+160|0;w=y+220|0;x=y+208|0;u=y+204|0;q=y;r=y+200|0;s=y+196|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[w+(b<<2)>>2]=0;b=b+1|0}IE(x,f);b=XF(x,56736)|0;Kb[c[(c[b>>2]|0)+32>>2]&15](b,12928,12954,t)|0;YF(x);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[x+(b<<2)>>2]=0;b=b+1|0}p=x+11|0;o=x+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;oO(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b;c[r>>2]=q;c[s>>2]=0;n=x+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;z=22;break}}else z=22;while(0);if((z|0)==22){z=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[u>>2]|0)==(b+f|0)){oO(x,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;oO(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,16,b,u,s,0,w,q,r,t)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}oO(x,(c[u>>2]|0)-b|0,0);t=(a[p>>0]|0)<0?c[x>>2]|0:x;u=_F()|0;c[v>>2]=h;if(($F(t,u,49194,v)|0)!=1)c[g>>2]=4;if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{z=52;break}else{c[e>>2]=0;z=50;break}}else z=50;while(0);if((z|0)==50?f:0)z=52;if((z|0)==52)c[g>>2]=c[g>>2]|2;z=c[d>>2]|0;jO(x);jO(w);zb=y;return z|0}function XF(a,b){a=a|0;b=b|0;a=c[a>>2]|0;return bG(a,aG(b)|0)|0}function YF(a){a=a|0;var b=0,d=0;a=c[a>>2]|0;d=a+4|0;b=c[d>>2]|0;c[d>>2]=b+-1;if(!b)Sb[c[(c[a>>2]|0)+8>>2]&255](a);return}function ZF(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(a[l+24>>0]|0)==b<<24>>24;if(!m?(a[l+25>>0]|0)!=b<<24>>24:0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=a[i+11>>0]|0;if(b<<24>>24==h<<24>>24?((n<<24>>24<0?c[i+4>>2]|0:n&255)|0)!=0:0){m=c[k>>2]|0;if((m-j|0)>=160){m=0;break}f=c[g>>2]|0;c[k>>2]=m+4;c[m>>2]=f;c[g>>2]=0;m=0;break}i=l+26|0;h=0;while(1){m=l+h|0;if((h|0)==26){m=i;break}if((a[m>>0]|0)==b<<24>>24)break;else h=h+1|0}m=m-l|0;if((m|0)>23)m=-1;else{switch(d|0){case 10:case 8:{if((m|0)>=(d|0)){m=-1;break a}break}case 16:{if((m|0)>=22){if(p){m=-1;break a}if((o-e|0)>=3){m=-1;break a}if((a[o+-1>>0]|0)!=48){m=-1;break a}c[g>>2]=0;m=a[12928+m>>0]|0;c[f>>2]=o+1;a[o>>0]=m;m=0;break a}break}default:{}}m=a[12928+m>>0]|0;c[f>>2]=o+1;a[o>>0]=m;c[g>>2]=(c[g>>2]|0)+1;m=0}}while(0);return m|0}function _F(){var b=0;if((a[54800]|0)==0?nB(54800)|0:0){b=az(2147483647,49197,0)|0;c[14186]=b;pB(54800)}return c[14186]|0}function $F(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;c[g>>2]=e;e=ez(b)|0;b=Dz(a,d,g)|0;if(e|0)ez(e)|0;zb=f;return b|0}function aG(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;f=zb;zb=zb+48|0;b=f+32|0;d=f+24|0;e=f;g=f+16|0;c[g>>2]=143;c[g+4>>2]=0;c[b>>2]=c[g>>2];c[b+4>>2]=c[g+4>>2];dG(e,b,a);if((c[a>>2]|0)!=-1){c[b>>2]=e;c[d>>2]=b;$N(a,d,144)}zb=f;return (c[a+4>>2]|0)+-1|0}function bG(a,b){a=a|0;b=b|0;return c[(c[a+8>>2]|0)+(b<<2)>>2]|0}function cG(a){a=a|0;var b=0;b=c[14187]|0;c[14187]=b+1;c[a+4>>2]=b+1;return}function dG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=c[b>>2]|0;b=c[b+4>>2]|0;c[a>>2]=d;c[a+4>>2]=e;c[a+8>>2]=b;return}function eG(a){a=a|0;fG(c[c[a>>2]>>2]|0);return}function fG(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;e=c[a+8>>2]|0;d=(c[a>>2]|0)+(e>>1)|0;if(!(e&1))a=b;else a=c[(c[d>>2]|0)+b>>2]|0;Sb[a&255](d);return}function gG(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+240|0;s=D+160|0;t=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;w=D;x=D+196|0;y=D+192|0;z=D+229|0;r=D+228|0;hG(C,f,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){f=c[k+12>>2]|0;if((f|0)==(c[k+16>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[p>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){oO(B,f<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}l=k+12|0;f=c[l>>2]|0;m=k+16|0;if((f|0)==(c[m>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=cg(a[f>>0]|0)|0;if(iG(f&255,z,r,b,v,a[t>>0]|0,a[u>>0]|0,C,w,x,y,s)|0)break;f=c[l>>2]|0;if((f|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=f+1;cg(a[f>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+jG(b,c[v>>2]|0,h);g[i>>3]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function hG(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;h=zb;zb=zb+16|0;i=h;IE(i,d);d=XF(i,56736)|0;Kb[c[(c[d>>2]|0)+32>>2]&15](d,12928,12960,e)|0;e=XF(i,56752)|0;d=Gb[c[(c[e>>2]|0)+12>>2]&127](e)|0;a[f>>0]=d;f=Gb[c[(c[e>>2]|0)+16>>2]&127](e)|0;a[g>>0]=f;Ub[c[(c[e>>2]|0)+20>>2]&63](b,e);YF(i);zb=h;return}function iG(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0;a:do if(b<<24>>24==h<<24>>24)if(a[d>>0]|0){a[d>>0]=0;e=c[g>>2]|0;c[g>>2]=e+1;a[e>>0]=46;g=a[j+11>>0]|0;if(((g<<24>>24<0?c[j+4>>2]|0:g&255)|0)!=0?(o=c[l>>2]|0,(o-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;o=0}else o=0}else o=-1;else{if(b<<24>>24==i<<24>>24?(i=a[j+11>>0]|0,(i<<24>>24<0?c[j+4>>2]|0:i&255)|0):0){if(!(a[d>>0]|0)){o=-1;break}o=c[l>>2]|0;if((o-k|0)>=160){o=0;break}k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;c[m>>2]=0;o=0;break}i=n+32|0;h=0;while(1){o=n+h|0;if((h|0)==32){o=i;break}if((a[o>>0]|0)==b<<24>>24)break;else h=h+1|0}h=o-n|0;if((h|0)>31)o=-1;else{i=a[12928+h>>0]|0;switch(h|0){case 24:case 25:{o=c[g>>2]|0;if((o|0)!=(f|0)?(a[o+-1>>0]&95)!=(a[e>>0]&127):0){o=-1;break a}c[g>>2]=o+1;a[o>>0]=i;o=0;break a}case 23:case 22:{a[e>>0]=80;o=c[g>>2]|0;c[g>>2]=o+1;a[o>>0]=i;o=0;break a}default:{o=i&95;if((((o|0)==(a[e>>0]|0)?(a[e>>0]=o|128,a[d>>0]|0):0)?(a[d>>0]=0,e=a[j+11>>0]|0,(e<<24>>24<0?c[j+4>>2]|0:e&255)|0):0)?(p=c[l>>2]|0,(p-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=p+4;c[p>>2]=k}l=c[g>>2]|0;c[g>>2]=l+1;a[l>>0]=i;if((h|0)>21){o=0;break a}c[m>>2]=(c[m>>2]|0)+1;o=0;break a}}}}while(0);return o|0}function jG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0,j=0;i=zb;zb=zb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=ox()|0;g=c[g>>2]|0;j=ox()|0;c[j>>2]=0;e=+rA(a,f,_F()|0);a=ox()|0;a=c[a>>2]|0;if(!a){j=ox()|0;c[j>>2]=g}if((c[f>>2]|0)==(b|0)){if((a|0)==68)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}zb=i;return +e}function kG(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;j=b+11|0;h=a[j>>0]|0;k=b+4|0;g=c[k>>2]|0;i=h&255;do if((h<<24>>24<0?g:i)|0){if((d|0)!=(e|0)){g=e;h=d;while(1){g=g+-4|0;if(h>>>0>=g>>>0)break;i=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=i;h=h+4|0}h=a[j>>0]|0;i=h&255;g=c[k>>2]|0}j=h<<24>>24<0;b=j?c[b>>2]|0:b;k=e+-4|0;j=b+(j?g:i)|0;g=b;while(1){h=a[g>>0]|0;i=h<<24>>24>0&h<<24>>24!=127;if(d>>>0>=k>>>0)break;if(i?(c[d>>2]|0)!=(h<<24>>24|0):0){l=11;break}d=d+4|0;g=(j-g|0)>1?g+1|0:g}if((l|0)==11){c[f>>2]=4;break}if(i?((c[k>>2]|0)+-1|0)>>>0>=h<<24>>24>>>0:0)c[f>>2]=4}while(0);return}function lG(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+240|0;s=D+160|0;t=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;w=D;x=D+196|0;y=D+192|0;z=D+229|0;r=D+228|0;hG(C,f,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){f=c[k+12>>2]|0;if((f|0)==(c[k+16>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[p>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){oO(B,f<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}l=k+12|0;f=c[l>>2]|0;m=k+16|0;if((f|0)==(c[m>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=cg(a[f>>0]|0)|0;if(iG(f&255,z,r,b,v,a[t>>0]|0,a[u>>0]|0,C,w,x,y,s)|0)break;f=c[l>>2]|0;if((f|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=f+1;cg(a[f>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+mG(b,c[v>>2]|0,h);g[i>>3]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function mG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0,j=0;i=zb;zb=zb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=ox()|0;g=c[g>>2]|0;j=ox()|0;c[j>>2]=0;e=+qA(a,f,_F()|0);a=ox()|0;a=c[a>>2]|0;if(!a){j=ox()|0;c[j>>2]=g}if((c[f>>2]|0)==(b|0)){if((a|0)==68)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}zb=i;return +e}function nG(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+240|0;s=D+160|0;t=D+231|0;u=D+230|0;C=D+216|0;B=D+204|0;v=D+200|0;w=D;x=D+196|0;y=D+192|0;z=D+229|0;r=D+228|0;hG(C,g,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){g=c[k+12>>2]|0;if((g|0)==(c[k+16>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=cg(a[g>>0]|0)|0;if(_f(g,Wf()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=cg(a[g>>0]|0)|0;if(!(_f(g,Wf()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}g=a[p>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[v>>2]|0)==(b+g|0)){oO(B,g<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+g}l=k+12|0;g=c[l>>2]|0;m=k+16|0;if((g|0)==(c[m>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=cg(a[g>>0]|0)|0;if(iG(g&255,z,r,b,v,a[t>>0]|0,a[u>>0]|0,C,w,x,y,s)|0)break;g=c[l>>2]|0;if((g|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=g+1;cg(a[g>>0]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+oG(b,c[v>>2]|0,h);f[i>>2]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;g=1}else g=0}else g=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(g)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?g:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function oG(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0,j=0;i=zb;zb=zb+16|0;f=i;if((a|0)==(b|0)){c[d>>2]=4;e=0.0}else{g=ox()|0;g=c[g>>2]|0;j=ox()|0;c[j>>2]=0;e=+pA(a,f,_F()|0);a=ox()|0;a=c[a>>2]|0;if(!a){j=ox()|0;c[j>>2]=g}if((c[f>>2]|0)==(b|0)){if((a|0)==68)h=6}else{e=0.0;h=6}if((h|0)==6)c[d>>2]=4}zb=i;return +e}function pG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}w=tG(b,c[s>>2]|0,g,x)|0;x=F()|0;c[h>>2]=w;c[h+4>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function qG(a){a=a|0;switch(c[a+4>>2]&74){case 64:{a=8;break}case 8:{a=16;break}case 0:{a=0;break}default:a=10}return a|0}function rG(a,b,c){a=a|0;b=b|0;c=c|0;return uG(a,b,c)|0}function sG(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=zb;zb=zb+16|0;g=f;IE(g,d);d=XF(g,56752)|0;h=Gb[c[(c[d>>2]|0)+16>>2]&127](d)|0;a[e>>0]=h;Ub[c[(c[d>>2]|0)+20>>2]&63](b,d);YF(g);zb=f;return}function tG(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;k=zb;zb=zb+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;f=0;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;f=0;b=0;break}}h=ox()|0;h=c[h>>2]|0;g=ox()|0;c[g>>2]=0;b=tx(b,i,f,_F()|0)|0;g=F()|0;f=ox()|0;f=c[f>>2]|0;if(!f){l=ox()|0;c[l>>2]=h}do if((c[i>>2]|0)==(d|0))if((f|0)==68){c[e>>2]=4;b=-1;f=-1;break}else{l=PO(0,0,b|0,g|0)|0;f=F()|0;b=j?l:b;f=j?f:g;break}else{c[e>>2]=4;b=0;f=0}while(0)}while(0);E(f|0);zb=k;return b|0}function uG(a,b,c){a=a|0;b=b|0;c=c|0;return 12928}function vG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=wG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function wG(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;k=zb;zb=zb+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=ox()|0;h=c[h>>2]|0;g=ox()|0;c[g>>2]=0;b=tx(b,i,f,_F()|0)|0;f=F()|0;g=ox()|0;g=c[g>>2]|0;if(!g){l=ox()|0;c[l>>2]=h}do if((c[i>>2]|0)==(d|0))if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==68){c[e>>2]=4;b=-1;break}else{b=j?0-b|0:b;break}else{c[e>>2]=4;b=0}while(0)}while(0);zb=k;return b|0}function xG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=yG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function yG(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;k=zb;zb=zb+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=ox()|0;h=c[h>>2]|0;g=ox()|0;c[g>>2]=0;b=tx(b,i,f,_F()|0)|0;f=F()|0;g=ox()|0;g=c[g>>2]|0;if(!g){l=ox()|0;c[l>>2]=h}do if((c[i>>2]|0)==(d|0))if(f>>>0>0|(f|0)==0&b>>>0>4294967295|(g|0)==68){c[e>>2]=4;b=-1;break}else{b=j?0-b|0:b;break}else{c[e>>2]=4;b=0}while(0)}while(0);zb=k;return b|0}function zG(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,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=zb;zb=zb+240|0;s=C+224|0;z=C+212|0;A=C+200|0;t=C+196|0;u=C;w=C+192|0;x=C+188|0;y=qG(g)|0;r=rG(d,g,C+160|0)|0;sG(z,g,s);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[A+(d<<2)>>2]=0;d=d+1|0}p=A+11|0;q=A+8|0;if((a[p>>0]|0)<0)d=(c[q>>2]&2147483647)+-1|0;else d=10;oO(A,d,0);d=(a[p>>0]|0)<0?c[A>>2]|0:A;c[t>>2]=d;c[w>>2]=u;c[x>>2]=0;o=A+4|0;k=c[e>>2]|0;j=k;a:while(1){if(k){g=c[k+12>>2]|0;if((g|0)==(c[k+16>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=cg(a[g>>0]|0)|0;if(_f(g,Wf()|0)|0){c[e>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[f>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=cg(a[g>>0]|0)|0;if(!(_f(g,Wf()|0)|0))if(l)break;else break a;else{c[f>>2]=0;B=19;break}}else B=19;while(0);if((B|0)==19){B=0;if(l){j=0;break}else j=0}g=a[p>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[t>>2]|0)==(d+g|0)){oO(A,g<<1,0);if((a[p>>0]|0)<0)d=(c[q>>2]&2147483647)+-1|0;else d=10;oO(A,d,0);d=(a[p>>0]|0)<0?c[A>>2]|0:A;c[t>>2]=d+g}l=k+12|0;g=c[l>>2]|0;m=k+16|0;if((g|0)==(c[m>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=cg(a[g>>0]|0)|0;if(ZF(g&255,y,d,t,x,a[s>>0]|0,z,u,w,r)|0)break;g=c[l>>2]|0;if((g|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=g+1;cg(a[g>>0]|0)|0}j=n}s=a[z+11>>0]|0;if((s<<24>>24<0?c[z+4>>2]|0:s&255)|0?(v=c[w>>2]|0,(v-u|0)<160):0){x=c[x>>2]|0;c[w>>2]=v+4;c[v>>2]=x}y=AG(d,c[t>>2]|0,h,y)|0;b[i>>1]=y;kG(z,u,c[w>>2]|0,h);if(k){d=c[k+12>>2]|0;if((d|0)==(c[k+16>>2]|0))d=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else d=cg(a[d>>0]|0)|0;if(_f(d,Wf()|0)|0){c[e>>2]=0;g=1}else g=0}else g=1;do if(j){d=c[j+12>>2]|0;if((d|0)==(c[j+16>>2]|0))d=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else d=cg(a[d>>0]|0)|0;if(!(_f(d,Wf()|0)|0))if(g)break;else{B=50;break}else{c[f>>2]=0;B=48;break}}else B=48;while(0);if((B|0)==48?g:0)B=50;if((B|0)==50)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;jO(A);jO(z);zb=C;return B|0}function AG(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;k=zb;zb=zb+16|0;i=k;do if((b|0)==(d|0)){c[e>>2]=4;b=0}else{j=(a[b>>0]|0)==45;if(j){b=b+1|0;if((b|0)==(d|0)){c[e>>2]=4;b=0;break}}h=ox()|0;h=c[h>>2]|0;g=ox()|0;c[g>>2]=0;b=tx(b,i,f,_F()|0)|0;f=F()|0;g=ox()|0;g=c[g>>2]|0;if(!g){l=ox()|0;c[l>>2]=h}do if((c[i>>2]|0)==(d|0)){if(f>>>0>0|(f|0)==0&b>>>0>65535|(g|0)==68){c[e>>2]=4;b=-1;break}if(j)b=0-b&65535;else b=b&65535}else{c[e>>2]=4;b=0}while(0)}while(0);zb=k;return b|0}function BG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}w=CG(b,c[s>>2]|0,g,x)|0;x=F()|0;c[h>>2]=w;c[h+4>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function CG(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;i=zb;zb=zb+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;e=0;a=0}else{h=ox()|0;h=c[h>>2]|0;f=ox()|0;c[f>>2]=0;a=Cx(a,g,e,_F()|0)|0;e=F()|0;f=ox()|0;f=c[f>>2]|0;if(!f){j=ox()|0;c[j>>2]=h}if((c[g>>2]|0)==(b|0)){if((f|0)==68){c[d>>2]=4;e=(e|0)>0|(e|0)==0&a>>>0>0;a=e?-1:0;e=e?2147483647:-2147483648}}else{c[d>>2]=4;a=0;e=0}}E(e|0);zb=i;return a|0}function DG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+240|0;r=B+224|0;y=B+212|0;z=B+200|0;s=B+196|0;t=B;v=B+192|0;w=B+188|0;x=qG(f)|0;q=rG(b,f,B+160|0)|0;sG(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(_f(f,Wf()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=cg(a[f>>0]|0)|0;if(!(_f(f,Wf()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=cg(a[f>>0]|0)|0;if(ZF(f&255,x,b,s,w,a[r>>0]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+1;cg(a[f>>0]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=EG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function EG(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;i=zb;zb=zb+16|0;g=i;if((a|0)==(b|0)){c[d>>2]=4;a=0}else{h=ox()|0;h=c[h>>2]|0;f=ox()|0;c[f>>2]=0;a=Cx(a,g,e,_F()|0)|0;e=F()|0;f=ox()|0;f=c[f>>2]|0;if(!f){j=ox()|0;c[j>>2]=h}a:do if((c[g>>2]|0)==(b|0)){do if((f|0)==68){c[d>>2]=4;if((e|0)>0|(e|0)==0&a>>>0>0){a=2147483647;break a}}else{if((e|0)<-1|(e|0)==-1&a>>>0<2147483648){c[d>>2]=4;break}if((e|0)>0|(e|0)==0&a>>>0>2147483647){c[d>>2]=4;a=2147483647;break a}else break a}while(0);a=-2147483648}else{c[d>>2]=4;a=0}while(0)}zb=i;return a|0}function FG(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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=zb;zb=zb+112|0;k=w;l=(f-e|0)/12|0;if(l>>>0>100){k=FO(l)|0;if(!k)aO();else{j=k;u=k}}else{j=k;u=0}n=e;o=j;k=0;while(1){if((n|0)==(f|0))break;m=a[n+11>>0]|0;if(m<<24>>24<0)m=c[n+4>>2]|0;else m=m&255;if(!m){a[o>>0]=2;l=l+-1|0;k=k+1|0}else a[o>>0]=1;n=n+12|0;o=o+1|0}t=0;r=k;while(1){k=c[b>>2]|0;do if(k){m=c[k+12>>2]|0;if((m|0)==(c[k+16>>2]|0))k=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else k=cg(a[m>>0]|0)|0;if(_f(k,Wf()|0)|0){c[b>>2]=0;o=1;break}else{o=(c[b>>2]|0)==0;break}}else o=1;while(0);m=c[d>>2]|0;if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=cg(a[k>>0]|0)|0;if(_f(k,Wf()|0)|0){c[d>>2]=0;k=1;m=0}else k=0}else{k=1;m=0}n=c[b>>2]|0;if(!((l|0)!=0&(o^k)))break;k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=cg(a[k>>0]|0)|0;k=k&255;if(!i)k=Ib[c[(c[g>>2]|0)+12>>2]&63](g,k)|0;s=t+1|0;p=e;o=0;q=j;while(1){if((p|0)==(f|0))break;do if((a[q>>0]|0)==1){n=p+11|0;if((a[n>>0]|0)<0)m=c[p>>2]|0;else m=p;m=a[m+t>>0]|0;if(!i)m=Ib[c[(c[g>>2]|0)+12>>2]&63](g,m)|0;if(k<<24>>24!=m<<24>>24){a[q>>0]=0;m=o;n=r;l=l+-1|0;break}m=a[n>>0]|0;if(m<<24>>24<0)m=c[p+4>>2]|0;else m=m&255;if((m|0)==(s|0)){a[q>>0]=2;m=1;n=r+1|0;l=l+-1|0}else{m=1;n=r}}else{m=o;n=r}while(0);p=p+12|0;o=m;q=q+1|0;r=n}a:do if(o){k=c[b>>2]|0;m=k+12|0;n=c[m>>2]|0;if((n|0)==(c[k+16>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[m>>2]=n+1;cg(a[n>>0]|0)|0}if((r+l|0)>>>0>1){n=e;o=j;k=r;while(1){if((n|0)==(f|0))break a;if((a[o>>0]|0)==2){m=a[n+11>>0]|0;if(m<<24>>24<0)m=c[n+4>>2]|0;else m=m&255;if((m|0)!=(s|0)){a[o>>0]=0;k=k+-1|0}}n=n+12|0;o=o+1|0}}else k=r}else k=r;while(0);t=s;r=k}do if(n){k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=cg(a[k>>0]|0)|0;if(_f(k,Wf()|0)|0){c[b>>2]=0;l=1;break}else{l=(c[b>>2]|0)==0;break}}else l=1;while(0);do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=cg(a[k>>0]|0)|0;if(!(_f(k,Wf()|0)|0))if(l)break;else{v=79;break}else{c[d>>2]=0;v=41;break}}else v=41;while(0);if((v|0)==41?l:0)v=79;if((v|0)==79)c[h>>2]=c[h>>2]|2;while(1){if((e|0)==(f|0)){v=84;break}if((a[j>>0]|0)==2)break;e=e+12|0;j=j+1|0}if((v|0)==84){c[h>>2]=c[h>>2]|4;e=f}GO(u);zb=w;return e|0}function GG(a){a=a|0;CF(a);return}function HG(a){a=a|0;CF(a);SA(a);return}function IG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+48|0;i=o+40|0;n=o;j=o+32|0;k=o+36|0;l=o+28|0;m=o+24|0;if(!(c[f+4>>2]&1)){c[j>>2]=-1;m=c[(c[b>>2]|0)+16>>2]|0;c[k>>2]=c[d>>2];c[l>>2]=c[e>>2];c[n>>2]=c[k>>2];c[i>>2]=c[l>>2];n=Ob[m&63](b,n,i,f,g,j)|0;c[d>>2]=n;switch(c[j>>2]|0){case 0:{a[h>>0]=0;break}case 1:{a[h>>0]=1;break}default:{a[h>>0]=1;c[g>>2]=4}}i=c[d>>2]|0}else{IE(i,f);l=XF(i,56768)|0;YF(i);IE(i,f);b=XF(i,56776)|0;YF(i);Ub[c[(c[b>>2]|0)+24>>2]&63](n,b);Ub[c[(c[b>>2]|0)+28>>2]&63](n+12|0,b);c[m>>2]=c[e>>2];b=n+24|0;c[i>>2]=c[m>>2];i=(gH(d,i,n,b,l,g,1)|0)==(n|0)&1;a[h>>0]=i;i=c[d>>2]|0;do{b=b+-12|0;wO(b)}while((b|0)!=(n|0))}zb=o;return i|0}function JG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=fH(a,j,i,e,f,g)|0;zb=h;return g|0}function KG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=eH(a,j,i,e,f,g)|0;zb=h;return g|0}function LG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=dH(a,j,i,e,f,g)|0;zb=h;return g|0}function MG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=cH(a,j,i,e,f,g)|0;zb=h;return g|0}function NG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=bH(a,j,i,e,f,g)|0;zb=h;return g|0}function OG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=ZG(a,j,i,e,f,g)|0;zb=h;return g|0}function PG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=YG(a,j,i,e,f,g)|0;zb=h;return g|0}function QG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=XG(a,j,i,e,f,g)|0;zb=h;return g|0}function RG(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=UG(a,j,i,e,f,g)|0;zb=h;return g|0}function SG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;y=zb;zb=zb+304|0;v=y+264|0;t=y+160|0;w=y+292|0;x=y+280|0;u=y+276|0;q=y;r=y+272|0;s=y+268|0;c[w>>2]=0;c[w+4>>2]=0;c[w+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[w+(b<<2)>>2]=0;b=b+1|0}IE(x,f);b=XF(x,56768)|0;Kb[c[(c[b>>2]|0)+48>>2]&15](b,12928,12954,t)|0;YF(x);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[x+(b<<2)>>2]=0;b=b+1|0}p=x+11|0;o=x+8|0;if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;oO(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b;c[r>>2]=q;c[s>>2]=0;n=x+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;z=22;break}}else z=22;while(0);if((z|0)==22){z=0;if(k){i=0;break}else i=0}f=a[p>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[u>>2]|0)==(b+f|0)){oO(x,f<<1,0);if((a[p>>0]|0)<0)b=(c[o>>2]&2147483647)+-1|0;else b=10;oO(x,b,0);b=(a[p>>0]|0)<0?c[x>>2]|0:x;c[u>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,16,b,u,s,0,w,q,r,t)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}oO(x,(c[u>>2]|0)-b|0,0);t=(a[p>>0]|0)<0?c[x>>2]|0:x;u=_F()|0;c[v>>2]=h;if(($F(t,u,49194,v)|0)!=1)c[g>>2]=4;if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{z=52;break}else{c[e>>2]=0;z=50;break}}else z=50;while(0);if((z|0)==50?f:0)z=52;if((z|0)==52)c[g>>2]=c[g>>2]|2;z=c[d>>2]|0;jO(x);jO(w);zb=y;return z|0}function TG(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;o=c[f>>2]|0;p=(o|0)==(e|0);do if(p){m=(c[l+96>>2]|0)==(b|0);if(!m?(c[l+100>>2]|0)!=(b|0):0){n=5;break}c[f>>2]=e+1;a[e>>0]=m?43:45;c[g>>2]=0;m=0}else n=5;while(0);a:do if((n|0)==5){n=a[i+11>>0]|0;if((b|0)==(h|0)?((n<<24>>24<0?c[i+4>>2]|0:n&255)|0)!=0:0){m=c[k>>2]|0;if((m-j|0)>=160){m=0;break}f=c[g>>2]|0;c[k>>2]=m+4;c[m>>2]=f;c[g>>2]=0;m=0;break}i=l+104|0;h=0;while(1){m=l+(h<<2)|0;if((h|0)==26){m=i;break}if((c[m>>2]|0)==(b|0))break;else h=h+1|0}m=m-l|0;h=m>>2;if((m|0)>92)m=-1;else{switch(d|0){case 10:case 8:{if((h|0)>=(d|0)){m=-1;break a}break}case 16:{if((m|0)>=88){if(p){m=-1;break a}if((o-e|0)>=3){m=-1;break a}if((a[o+-1>>0]|0)!=48){m=-1;break a}c[g>>2]=0;m=a[12928+h>>0]|0;c[f>>2]=o+1;a[o>>0]=m;m=0;break a}break}default:{}}m=a[12928+h>>0]|0;c[f>>2]=o+1;a[o>>0]=m;c[g>>2]=(c[g>>2]|0)+1;m=0}}while(0);return m|0}function UG(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+336|0;s=D+160|0;t=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;w=D;x=D+292|0;y=D+288|0;z=D+333|0;r=D+332|0;VG(C,f,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){f=c[k+12>>2]|0;if((f|0)==(c[k+16>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[p>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){oO(B,f<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}l=k+12|0;f=c[l>>2]|0;m=k+16|0;if((f|0)==(c[m>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=jE(c[f>>2]|0)|0;if(WG(f,z,r,b,v,c[t>>2]|0,c[u>>2]|0,C,w,x,y,s)|0)break;f=c[l>>2]|0;if((f|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=f+4;jE(c[f>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+jG(b,c[v>>2]|0,h);g[i>>3]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|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,h=0;g=zb;zb=zb+16|0;h=g;IE(h,b);b=XF(h,56768)|0;Kb[c[(c[b>>2]|0)+48>>2]&15](b,12928,12960,d)|0;d=XF(h,56776)|0;b=Gb[c[(c[d>>2]|0)+12>>2]&127](d)|0;c[e>>2]=b;e=Gb[c[(c[d>>2]|0)+16>>2]&127](d)|0;c[f>>2]=e;Ub[c[(c[d>>2]|0)+20>>2]&63](a,d);YF(h);zb=g;return}function WG(b,d,e,f,g,h,i,j,k,l,m,n){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var o=0,p=0;a:do if((b|0)==(h|0))if(a[d>>0]|0){a[d>>0]=0;e=c[g>>2]|0;c[g>>2]=e+1;a[e>>0]=46;g=a[j+11>>0]|0;if(((g<<24>>24<0?c[j+4>>2]|0:g&255)|0)!=0?(o=c[l>>2]|0,(o-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;o=0}else o=0}else o=-1;else{if((b|0)==(i|0)?(i=a[j+11>>0]|0,(i<<24>>24<0?c[j+4>>2]|0:i&255)|0):0){if(!(a[d>>0]|0)){o=-1;break}o=c[l>>2]|0;if((o-k|0)>=160){o=0;break}k=c[m>>2]|0;c[l>>2]=o+4;c[o>>2]=k;c[m>>2]=0;o=0;break}i=n+128|0;h=0;while(1){o=n+(h<<2)|0;if((h|0)==32){o=i;break}if((c[o>>2]|0)==(b|0))break;else h=h+1|0}h=o-n|0;if((h|0)<=124){i=a[12928+(h>>2)>>0]|0;n=h+-88|0;switch(n>>>2|n<<30|0){case 2:case 3:{o=c[g>>2]|0;if((o|0)!=(f|0)?(a[o+-1>>0]&95)!=(a[e>>0]&127):0){o=-1;break a}c[g>>2]=o+1;a[o>>0]=i;o=0;break a}case 1:case 0:{a[e>>0]=80;break}default:{o=i&95;if((((o|0)==(a[e>>0]|0)?(a[e>>0]=o|128,a[d>>0]|0):0)?(a[d>>0]=0,e=a[j+11>>0]|0,(e<<24>>24<0?c[j+4>>2]|0:e&255)|0):0)?(p=c[l>>2]|0,(p-k|0)<160):0){k=c[m>>2]|0;c[l>>2]=p+4;c[p>>2]=k}}}l=c[g>>2]|0;c[g>>2]=l+1;a[l>>0]=i;if((h|0)>84)o=0;else{c[m>>2]=(c[m>>2]|0)+1;o=0}}else o=-1}while(0);return o|0}function XG(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+336|0;s=D+160|0;t=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;w=D;x=D+292|0;y=D+288|0;z=D+333|0;r=D+332|0;VG(C,f,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){f=c[k+12>>2]|0;if((f|0)==(c[k+16>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}f=a[p>>0]|0;f=f<<24>>24<0?c[o>>2]|0:f&255;if((c[v>>2]|0)==(b+f|0)){oO(B,f<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+f}l=k+12|0;f=c[l>>2]|0;m=k+16|0;if((f|0)==(c[m>>2]|0))f=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else f=jE(c[f>>2]|0)|0;if(WG(f,z,r,b,v,c[t>>2]|0,c[u>>2]|0,C,w,x,y,s)|0)break;f=c[l>>2]|0;if((f|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=f+4;jE(c[f>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+mG(b,c[v>>2]|0,h);g[i>>3]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?f:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function YG(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0.0;D=zb;zb=zb+336|0;s=D+160|0;t=D+328|0;u=D+324|0;C=D+312|0;B=D+300|0;v=D+296|0;w=D;x=D+292|0;y=D+288|0;z=D+333|0;r=D+332|0;VG(C,g,s,t,u);c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}p=B+11|0;q=B+8|0;if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b;c[x>>2]=w;c[y>>2]=0;a[z>>0]=1;a[r>>0]=69;o=B+4|0;k=c[d>>2]|0;j=k;a:while(1){if(k){g=c[k+12>>2]|0;if((g|0)==(c[k+16>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=jE(c[g>>2]|0)|0;if(JE(g,iE()|0)|0){c[d>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[e>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=jE(c[g>>2]|0)|0;if(!(JE(g,iE()|0)|0))if(l)break;else break a;else{c[e>>2]=0;E=19;break}}else E=19;while(0);if((E|0)==19){E=0;if(l){j=0;break}else j=0}g=a[p>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[v>>2]|0)==(b+g|0)){oO(B,g<<1,0);if((a[p>>0]|0)<0)b=(c[q>>2]&2147483647)+-1|0;else b=10;oO(B,b,0);b=(a[p>>0]|0)<0?c[B>>2]|0:B;c[v>>2]=b+g}l=k+12|0;g=c[l>>2]|0;m=k+16|0;if((g|0)==(c[m>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=jE(c[g>>2]|0)|0;if(WG(g,z,r,b,v,c[t>>2]|0,c[u>>2]|0,C,w,x,y,s)|0)break;g=c[l>>2]|0;if((g|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=g+4;jE(c[g>>2]|0)|0}j=n}u=a[C+11>>0]|0;if(!((a[z>>0]|0)==0?1:((u<<24>>24<0?c[C+4>>2]|0:u&255)|0)==0)?(A=c[x>>2]|0,(A-w|0)<160):0){z=c[y>>2]|0;c[x>>2]=A+4;c[A>>2]=z}F=+oG(b,c[v>>2]|0,h);f[i>>2]=F;kG(C,w,c[x>>2]|0,h);if(k){b=c[k+12>>2]|0;if((b|0)==(c[k+16>>2]|0))b=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;g=1}else g=0}else g=1;do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(g)break;else{E=50;break}else{c[e>>2]=0;E=48;break}}else E=48;while(0);if((E|0)==48?g:0)E=50;if((E|0)==50)c[h>>2]=c[h>>2]|2;E=c[d>>2]|0;jO(B);jO(C);zb=D;return E|0}function ZG(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}w=tG(b,c[s>>2]|0,g,x)|0;x=F()|0;c[h>>2]=w;c[h+4>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function _G(a,b,c){a=a|0;b=b|0;c=c|0;return aH(a,b,c)|0}function $G(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=zb;zb=zb+16|0;f=e;IE(f,b);b=XF(f,56776)|0;g=Gb[c[(c[b>>2]|0)+16>>2]&127](b)|0;c[d>>2]=g;Ub[c[(c[b>>2]|0)+20>>2]&63](a,b);YF(f);zb=e;return}function aH(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;a=zb;zb=zb+16|0;e=a;IE(e,b);b=XF(e,56768)|0;Kb[c[(c[b>>2]|0)+48>>2]&15](b,12928,12954,d)|0;YF(e);zb=a;return d|0}function bH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=wG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function cH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=yG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function dH(d,e,f,g,h,i){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,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=zb;zb=zb+304|0;s=C+300|0;z=C+288|0;A=C+276|0;t=C+272|0;u=C;w=C+268|0;x=C+264|0;y=qG(g)|0;r=_G(d,g,C+160|0)|0;$G(z,g,s);c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[A+(d<<2)>>2]=0;d=d+1|0}p=A+11|0;q=A+8|0;if((a[p>>0]|0)<0)d=(c[q>>2]&2147483647)+-1|0;else d=10;oO(A,d,0);d=(a[p>>0]|0)<0?c[A>>2]|0:A;c[t>>2]=d;c[w>>2]=u;c[x>>2]=0;o=A+4|0;k=c[e>>2]|0;j=k;a:while(1){if(k){g=c[k+12>>2]|0;if((g|0)==(c[k+16>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=jE(c[g>>2]|0)|0;if(JE(g,iE()|0)|0){c[e>>2]=0;n=0;l=1;k=0}else{n=j;l=0}}else{n=0;l=1;k=0}j=c[f>>2]|0;do if(j){g=c[j+12>>2]|0;if((g|0)==(c[j+16>>2]|0))g=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else g=jE(c[g>>2]|0)|0;if(!(JE(g,iE()|0)|0))if(l)break;else break a;else{c[f>>2]=0;B=19;break}}else B=19;while(0);if((B|0)==19){B=0;if(l){j=0;break}else j=0}g=a[p>>0]|0;g=g<<24>>24<0?c[o>>2]|0:g&255;if((c[t>>2]|0)==(d+g|0)){oO(A,g<<1,0);if((a[p>>0]|0)<0)d=(c[q>>2]&2147483647)+-1|0;else d=10;oO(A,d,0);d=(a[p>>0]|0)<0?c[A>>2]|0:A;c[t>>2]=d+g}l=k+12|0;g=c[l>>2]|0;m=k+16|0;if((g|0)==(c[m>>2]|0))g=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else g=jE(c[g>>2]|0)|0;if(TG(g,y,d,t,x,c[s>>2]|0,z,u,w,r)|0)break;g=c[l>>2]|0;if((g|0)==(c[m>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=g+4;jE(c[g>>2]|0)|0}j=n}s=a[z+11>>0]|0;if((s<<24>>24<0?c[z+4>>2]|0:s&255)|0?(v=c[w>>2]|0,(v-u|0)<160):0){x=c[x>>2]|0;c[w>>2]=v+4;c[v>>2]=x}y=AG(d,c[t>>2]|0,h,y)|0;b[i>>1]=y;kG(z,u,c[w>>2]|0,h);if(k){d=c[k+12>>2]|0;if((d|0)==(c[k+16>>2]|0))d=Gb[c[(c[n>>2]|0)+36>>2]&127](k)|0;else d=jE(c[d>>2]|0)|0;if(JE(d,iE()|0)|0){c[e>>2]=0;g=1}else g=0}else g=1;do if(j){d=c[j+12>>2]|0;if((d|0)==(c[j+16>>2]|0))d=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else d=jE(c[d>>2]|0)|0;if(!(JE(d,iE()|0)|0))if(g)break;else{B=50;break}else{c[f>>2]=0;B=48;break}}else B=48;while(0);if((B|0)==48?g:0)B=50;if((B|0)==50)c[h>>2]=c[h>>2]|2;B=c[e>>2]|0;jO(A);jO(z);zb=C;return B|0}function eH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}w=CG(b,c[s>>2]|0,g,x)|0;x=F()|0;c[h>>2]=w;c[h+4>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function fH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+304|0;r=B+300|0;y=B+288|0;z=B+276|0;s=B+272|0;t=B;v=B+268|0;w=B+264|0;x=qG(f)|0;q=_G(b,f,B+160|0)|0;$G(y,f,r);c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}o=z+11|0;p=z+8|0;if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b;c[v>>2]=t;c[w>>2]=0;n=z+4|0;j=c[d>>2]|0;i=j;a:while(1){if(j){f=c[j+12>>2]|0;if((f|0)==(c[j+16>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(JE(f,iE()|0)|0){c[d>>2]=0;m=0;k=1;j=0}else{m=i;k=0}}else{m=0;k=1;j=0}i=c[e>>2]|0;do if(i){f=c[i+12>>2]|0;if((f|0)==(c[i+16>>2]|0))f=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(k)break;else break a;else{c[e>>2]=0;A=19;break}}else A=19;while(0);if((A|0)==19){A=0;if(k){i=0;break}else i=0}f=a[o>>0]|0;f=f<<24>>24<0?c[n>>2]|0:f&255;if((c[s>>2]|0)==(b+f|0)){oO(z,f<<1,0);if((a[o>>0]|0)<0)b=(c[p>>2]&2147483647)+-1|0;else b=10;oO(z,b,0);b=(a[o>>0]|0)<0?c[z>>2]|0:z;c[s>>2]=b+f}k=j+12|0;f=c[k>>2]|0;l=j+16|0;if((f|0)==(c[l>>2]|0))f=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else f=jE(c[f>>2]|0)|0;if(TG(f,x,b,s,w,c[r>>2]|0,y,t,v,q)|0)break;f=c[k>>2]|0;if((f|0)==(c[l>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=f+4;jE(c[f>>2]|0)|0}i=m}r=a[y+11>>0]|0;if((r<<24>>24<0?c[y+4>>2]|0:r&255)|0?(u=c[v>>2]|0,(u-t|0)<160):0){w=c[w>>2]|0;c[v>>2]=u+4;c[u>>2]=w}x=EG(b,c[s>>2]|0,g,x)|0;c[h>>2]=x;kG(y,t,c[v>>2]|0,g);if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[m>>2]|0)+36>>2]&127](j)|0;else b=jE(c[b>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;f=1}else f=0}else f=1;do if(i){b=c[i+12>>2]|0;if((b|0)==(c[i+16>>2]|0))b=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(f)break;else{A=50;break}else{c[e>>2]=0;A=48;break}}else A=48;while(0);if((A|0)==48?f:0)A=50;if((A|0)==50)c[g>>2]=c[g>>2]|2;A=c[d>>2]|0;jO(z);jO(y);zb=B;return A|0}function gH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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=zb;zb=zb+112|0;k=w;l=(f-e|0)/12|0;if(l>>>0>100){k=FO(l)|0;if(!k)aO();else{j=k;u=k}}else{j=k;u=0}k=0;n=e;o=j;while(1){if((n|0)==(f|0))break;m=a[n+8+3>>0]|0;if(m<<24>>24<0)m=c[n+4>>2]|0;else m=m&255;if(!m){a[o>>0]=2;k=k+1|0;l=l+-1|0}else a[o>>0]=1;n=n+12|0;o=o+1|0}t=0;r=k;while(1){k=c[b>>2]|0;do if(k){m=c[k+12>>2]|0;if((m|0)==(c[k+16>>2]|0))k=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else k=jE(c[m>>2]|0)|0;if(JE(k,iE()|0)|0){c[b>>2]=0;o=1;break}else{o=(c[b>>2]|0)==0;break}}else o=1;while(0);m=c[d>>2]|0;if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=jE(c[k>>2]|0)|0;if(JE(k,iE()|0)|0){c[d>>2]=0;k=1;m=0}else k=0}else{k=1;m=0}n=c[b>>2]|0;if(!((l|0)!=0&(o^k)))break;k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=jE(c[k>>2]|0)|0;if(!i)k=Ib[c[(c[g>>2]|0)+28>>2]&63](g,k)|0;s=t+1|0;p=e;o=0;q=j;while(1){if((p|0)==(f|0))break;do if((a[q>>0]|0)==1){n=p+8+3|0;if((a[n>>0]|0)<0)m=c[p>>2]|0;else m=p;m=c[m+(t<<2)>>2]|0;if(!i)m=Ib[c[(c[g>>2]|0)+28>>2]&63](g,m)|0;if((k|0)!=(m|0)){a[q>>0]=0;m=o;n=r;l=l+-1|0;break}m=a[n>>0]|0;if(m<<24>>24<0)m=c[p+4>>2]|0;else m=m&255;if((m|0)==(s|0)){a[q>>0]=2;m=1;n=r+1|0;l=l+-1|0}else{m=1;n=r}}else{m=o;n=r}while(0);p=p+12|0;o=m;q=q+1|0;r=n}a:do if(o){k=c[b>>2]|0;m=k+12|0;n=c[m>>2]|0;if((n|0)==(c[k+16>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[m>>2]=n+4;jE(c[n>>2]|0)|0}if((r+l|0)>>>0>1){n=e;o=j;k=r;while(1){if((n|0)==(f|0))break a;if((a[o>>0]|0)==2){m=a[n+8+3>>0]|0;if(m<<24>>24<0)m=c[n+4>>2]|0;else m=m&255;if((m|0)!=(s|0)){a[o>>0]=0;k=k+-1|0}}n=n+12|0;o=o+1|0}}else k=r}else k=r;while(0);t=s;r=k}do if(n){k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=jE(c[k>>2]|0)|0;if(JE(k,iE()|0)|0){c[b>>2]=0;l=1;break}else{l=(c[b>>2]|0)==0;break}}else l=1;while(0);do if(m){k=c[m+12>>2]|0;if((k|0)==(c[m+16>>2]|0))k=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else k=jE(c[k>>2]|0)|0;if(!(JE(k,iE()|0)|0))if(l)break;else{v=79;break}else{c[d>>2]=0;v=41;break}}else v=41;while(0);if((v|0)==41?l:0)v=79;if((v|0)==79)c[h>>2]=c[h>>2]|2;while(1){if((e|0)==(f|0)){v=84;break}if((a[j>>0]|0)==2)break;e=e+12|0;j=j+1|0}if((v|0)==84){c[h>>2]=c[h>>2]|4;e=f}GO(u);zb=w;return e|0}function hH(a){a=a|0;CF(a);return}function iH(a){a=a|0;CF(a);SA(a);return}function jH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=zb;zb=zb+16|0;k=l+4|0;h=l;if(!(c[e+4>>2]&1)){j=c[(c[b>>2]|0)+24>>2]|0;c[h>>2]=c[d>>2];c[k>>2]=c[h>>2];b=Mb[j&31](b,k,e,f,g&1)|0}else{IE(k,e);b=XF(k,56752)|0;YF(k);e=c[b>>2]|0;if(g)Ub[c[e+24>>2]&63](k,b);else Ub[c[e+28>>2]&63](k,b);i=k+11|0;b=a[i>>0]|0;e=c[k>>2]|0;j=k+4|0;g=b<<24>>24<0?e:k;while(1){h=b<<24>>24<0;if((g|0)==((h?e:k)+(h?c[j>>2]|0:b&255)|0))break;b=a[g>>0]|0;e=c[d>>2]|0;if(e|0){f=e+24|0;h=c[f>>2]|0;if((h|0)==(c[e+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;b=cg(b)|0;b=Ib[h&63](e,b)|0}else{c[f>>2]=h+1;a[h>>0]=b;b=cg(b)|0}if(_f(b,Wf()|0)|0)c[d>>2]=0}g=g+1|0;b=a[i>>0]|0;e=c[k>>2]|0}b=c[d>>2]|0;jO(k)}zb=l;return b|0}function kH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=zb;zb=zb+32|0;j=b;n=b+16|0;m=b+12|0;l=b+4|0;k=b+8|0;a[n>>0]=a[49415]|0;a[n+1>>0]=a[49416]|0;a[n+2>>0]=a[49417]|0;a[n+3>>0]=a[49418]|0;a[n+4>>0]=a[49419]|0;a[n+5>>0]=a[49420]|0;p=e+4|0;wH(n+1|0,49421,1,c[p>>2]|0);p=(c[p>>2]|0)>>>9&1;q=p+13|0;h=Na()|0;o=zb;zb=zb+((1*q|0)+15&-16)|0;i=_F()|0;c[j>>2]=g;g=o+(rH(o,q,i,n,j)|0)|0;n=sH(o,g,e)|0;i=zb;zb=zb+((1*((p<<1|24)+-1|0)|0)+15&-16)|0;IE(j,e);xH(o,n,g,i,m,l,j);YF(j);c[k>>2]=c[d>>2];d=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=$f(j,i,d,g,e,f)|0;Ma(h|0);zb=b;return g|0}function lH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=zb;zb=zb+32|0;j=a+8|0;i=a;m=a+24|0;l=a+16|0;k=a+20|0;o=i;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;wH(i+1|0,49412,1,c[o>>2]|0);o=(c[o>>2]|0)>>>9&1;q=o+23|0;h=Na()|0;n=zb;zb=zb+((1*q|0)+15&-16)|0;p=_F()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(rH(n,q,p,i,j)|0)|0;g=sH(n,f,d)|0;i=zb;zb=zb+((1*((o<<1|44)+-1|0)|0)+15&-16)|0;IE(j,d);xH(n,g,f,i,m,l,j);YF(j);c[k>>2]=c[b>>2];f=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=$f(j,i,f,g,d,e)|0;Ma(h|0);zb=a;return g|0}function mH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=zb;zb=zb+32|0;j=b;n=b+16|0;m=b+12|0;l=b+4|0;k=b+8|0;a[n>>0]=a[49415]|0;a[n+1>>0]=a[49416]|0;a[n+2>>0]=a[49417]|0;a[n+3>>0]=a[49418]|0;a[n+4>>0]=a[49419]|0;a[n+5>>0]=a[49420]|0;p=e+4|0;wH(n+1|0,49421,0,c[p>>2]|0);p=(c[p>>2]|0)>>>9&1;q=p|12;h=Na()|0;o=zb;zb=zb+((1*q|0)+15&-16)|0;i=_F()|0;c[j>>2]=g;g=o+(rH(o,q,i,n,j)|0)|0;n=sH(o,g,e)|0;i=zb;zb=zb+((1*(p<<1|21)|0)+15&-16)|0;IE(j,e);xH(o,n,g,i,m,l,j);YF(j);c[k>>2]=c[d>>2];d=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=$f(j,i,d,g,e,f)|0;Ma(h|0);zb=b;return g|0}function nH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=zb;zb=zb+32|0;j=a+8|0;i=a;m=a+24|0;l=a+16|0;k=a+20|0;o=i;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;wH(i+1|0,49412,0,c[o>>2]|0);o=(c[o>>2]|0)>>>9&1|22;q=o+1|0;h=Na()|0;n=zb;zb=zb+((1*q|0)+15&-16)|0;p=_F()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(rH(n,q,p,i,j)|0)|0;g=sH(n,f,d)|0;i=zb;zb=zb+((1*((o<<1)+-1|0)|0)+15&-16)|0;IE(j,d);xH(n,g,f,i,m,l,j);YF(j);c[k>>2]=c[b>>2];f=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=$f(j,i,f,g,d,e)|0;Ma(h|0);zb=a;return g|0}function oH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;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;v=zb;zb=zb+176|0;r=v+168|0;m=v+144|0;l=v+128|0;i=v+120|0;h=v+104|0;k=v+96|0;o=v+64|0;n=v+164|0;p=v;u=v+160|0;s=v+156|0;t=v+152|0;j=k;c[j>>2]=37;c[j+4>>2]=0;j=tH(k+1|0,57671,c[d+4>>2]|0)|0;c[n>>2]=o;a=_F()|0;if(j){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=rH(o,30,a,k,h)|0}else{g[i>>3]=f;a=rH(o,30,a,k,i)|0}if((a|0)>29){a=_F()|0;if(j){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=uH(n,a,k,l)|0}else{g[m>>3]=f;h=uH(n,a,k,m)|0}a=c[n>>2]|0;if(!a)aO();else{q=h;y=a;z=a}}else{q=a;y=0;z=c[n>>2]|0}h=z+q|0;i=sH(z,h,d)|0;if((z|0)!=(o|0)){a=FO(q<<1)|0;if(!a)aO();else{w=a;x=a}}else{w=p;x=0}IE(r,d);vH(z,i,h,w,u,s,r);YF(r);c[t>>2]=c[b>>2];b=c[u>>2]|0;z=c[s>>2]|0;c[r>>2]=c[t>>2];z=$f(r,w,b,z,d,e)|0;GO(x);GO(y);zb=v;return z|0}function pH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;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;v=zb;zb=zb+176|0;r=v+168|0;m=v+144|0;l=v+128|0;i=v+120|0;h=v+104|0;k=v+96|0;o=v+64|0;n=v+164|0;p=v;u=v+160|0;s=v+156|0;t=v+152|0;j=k;c[j>>2]=37;c[j+4>>2]=0;j=tH(k+1|0,49410,c[d+4>>2]|0)|0;c[n>>2]=o;a=_F()|0;if(j){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=rH(o,30,a,k,h)|0}else{g[i>>3]=f;a=rH(o,30,a,k,i)|0}if((a|0)>29){a=_F()|0;if(j){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=uH(n,a,k,l)|0}else{g[m>>3]=f;h=uH(n,a,k,m)|0}a=c[n>>2]|0;if(!a)aO();else{q=h;y=a;z=a}}else{q=a;y=0;z=c[n>>2]|0}h=z+q|0;i=sH(z,h,d)|0;if((z|0)!=(o|0)){a=FO(q<<1)|0;if(!a)aO();else{w=a;x=a}}else{w=p;x=0}IE(r,d);vH(z,i,h,w,u,s,r);YF(r);c[t>>2]=c[b>>2];b=c[u>>2]|0;z=c[s>>2]|0;c[r>>2]=c[t>>2];z=$f(r,w,b,z,d,e)|0;GO(x);GO(y);zb=v;return z|0}function qH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=zb;zb=zb+96|0;l=b+72|0;k=b+80|0;h=b+48|0;j=b;m=b+76|0;a[k>>0]=a[49404]|0;a[k+1>>0]=a[49405]|0;a[k+2>>0]=a[49406]|0;a[k+3>>0]=a[49407]|0;a[k+4>>0]=a[49408]|0;a[k+5>>0]=a[49409]|0;i=_F()|0;c[l>>2]=g;g=rH(h,20,i,k,l)|0;k=h+g|0;i=sH(h,k,e)|0;IE(l,e);n=XF(l,56736)|0;YF(l);Kb[c[(c[n>>2]|0)+32>>2]&15](n,h,k,j)|0;g=j+g|0;c[m>>2]=c[d>>2];c[l>>2]=c[m>>2];g=$f(l,j,(i|0)==(k|0)?g:j+(i-h)|0,g,e,f)|0;zb=b;return g|0}function rH(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;g=zb;zb=zb+16|0;h=g;c[h>>2]=f;f=ez(d)|0;d=Jx(a,b,e,h)|0;if(f|0)ez(f)|0;zb=g;return d|0}function sH(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;a:do switch((c[e+4>>2]&176)<<24>>24){case 16:{e=a[b>>0]|0;switch(e<<24>>24){case 43:case 45:{b=b+1|0;break a}default:{}}if((d-b|0)>1&e<<24>>24==48){switch(a[b+1>>0]|0){case 88:case 120:break;default:{f=7;break a}}b=b+2|0}else f=7;break}case 32:{b=d;break}default:f=7}while(0);return b|0}function tH(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;if(d&2048){a[b>>0]=43;b=b+1|0}if(d&1024){a[b>>0]=35;b=b+1|0}g=d&260;e=d&16384;f=(g|0)==260;if(f)h=0;else{a[b>>0]=46;a[b+1>>0]=42;h=1;b=b+2|0}while(1){d=a[c>>0]|0;if(!(d<<24>>24))break;a[b>>0]=d;c=c+1|0;b=b+1|0}a:do switch(g&511){case 4:{d=e>>>9&255^102;break}case 256:{d=e>>>9&255^101;break}default:{d=e>>>9&255;if(f){d=d^97;break a}else{d=d^103;break a}}}while(0);a[b>>0]=d;return h|0}function uH(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;c[g>>2]=e;e=ez(b)|0;b=bA(a,d,g)|0;if(e|0)ez(e)|0;zb=f;return b|0}function vH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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;v=zb;zb=zb+16|0;s=v;t=XF(i,56736)|0;r=XF(i,56752)|0;Ub[c[(c[r>>2]|0)+20>>2]&63](s,r);c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{q=Ib[c[(c[t>>2]|0)+28>>2]&63](t,i)|0;j=c[h>>2]|0;c[h>>2]=j+1;a[j>>0]=q;j=b+1|0;break}default:j=b}q=e;a:do if((q-j|0)>1?(a[j>>0]|0)==48:0){i=j+1|0;switch(a[i>>0]|0){case 88:case 120:break;default:{u=4;break a}}o=Ib[c[(c[t>>2]|0)+28>>2]&63](t,48)|0;p=c[h>>2]|0;c[h>>2]=p+1;a[p>>0]=o;j=j+2|0;p=Ib[c[(c[t>>2]|0)+28>>2]&63](t,a[i>>0]|0)|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=p;i=j;while(1){if(i>>>0>=e>>>0)break a;p=a[i>>0]|0;if(!(_y(p,_F()|0)|0))break a;i=i+1|0}}else u=4;while(0);b:do if((u|0)==4){i=j;while(1){if(i>>>0>=e>>>0)break b;p=a[i>>0]|0;if(!(Zy(p,_F()|0)|0))break b;i=i+1|0}}while(0);o=s+11|0;n=a[o>>0]|0;p=s+4|0;c:do if((n<<24>>24<0?c[p>>2]|0:n&255)|0){d:do if((j|0)!=(i|0)){k=i;l=j;while(1){k=k+-1|0;if(l>>>0>=k>>>0)break d;n=a[l>>0]|0;a[l>>0]=a[k>>0]|0;a[k>>0]=n;l=l+1|0}}while(0);n=Gb[c[(c[r>>2]|0)+16>>2]&127](r)|0;m=j;l=0;k=0;while(1){if(m>>>0>=i>>>0)break;w=a[((a[o>>0]|0)<0?c[s>>2]|0:s)+k>>0]|0;if(w<<24>>24>0&(l|0)==(w<<24>>24|0)){l=c[h>>2]|0;c[h>>2]=l+1;a[l>>0]=n;l=a[o>>0]|0;k=k+(k>>>0<((l<<24>>24<0?c[p>>2]|0:l&255)+-1|0)>>>0&1)|0;l=0}x=Ib[c[(c[t>>2]|0)+28>>2]&63](t,a[m>>0]|0)|0;w=c[h>>2]|0;c[h>>2]=w+1;a[w>>0]=x;m=m+1|0;l=l+1|0}k=f+(j-b)|0;j=c[h>>2]|0;if((k|0)==(j|0))k=t;else while(1){j=j+-1|0;if(k>>>0>=j>>>0){k=t;break c}x=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=x;k=k+1|0}}else{Kb[c[(c[t>>2]|0)+32>>2]&15](t,j,i,c[h>>2]|0)|0;c[h>>2]=(c[h>>2]|0)+(i-j);k=t}while(0);while(1){if(i>>>0>=e>>>0)break;j=a[i>>0]|0;if(j<<24>>24==46){u=32;break}w=Ib[c[(c[k>>2]|0)+28>>2]&63](t,j)|0;x=c[h>>2]|0;c[h>>2]=x+1;a[x>>0]=w;i=i+1|0}if((u|0)==32){w=Gb[c[(c[r>>2]|0)+12>>2]&127](r)|0;x=c[h>>2]|0;c[h>>2]=x+1;a[x>>0]=w;i=i+1|0}Kb[c[(c[t>>2]|0)+32>>2]&15](t,i,e,c[h>>2]|0)|0;x=(c[h>>2]|0)+(q-i)|0;c[h>>2]=x;c[g>>2]=(d|0)==(e|0)?x:f+(d-b)|0;jO(s);zb=v;return}function wH(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;if(e&2048){a[b>>0]=43;b=b+1|0}if(e&512){a[b>>0]=35;b=b+1|0}f=b;while(1){b=a[c>>0]|0;if(!(b<<24>>24))break;a[f>>0]=b;c=c+1|0;f=f+1|0}switch(e&74){case 64:{b=111;break}case 8:{b=e>>>9&32^120;break}default:b=d?100:117}a[f>>0]=b;return}function xH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=zb;zb=zb+16|0;q=r;p=XF(i,56736)|0;l=XF(i,56752)|0;Ub[c[(c[l>>2]|0)+20>>2]&63](q,l);n=q+11|0;m=a[n>>0]|0;o=q+4|0;if((m<<24>>24<0?c[o>>2]|0:m&255)|0){c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{m=Ib[c[(c[p>>2]|0)+28>>2]&63](p,i)|0;i=c[h>>2]|0;c[h>>2]=i+1;a[i>>0]=m;i=b+1|0;break}default:i=b}a:do if((e-i|0)>1?(a[i>>0]|0)==48:0){j=i+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:break a}m=Ib[c[(c[p>>2]|0)+28>>2]&63](p,48)|0;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=m;k=Ib[c[(c[p>>2]|0)+28>>2]&63](p,a[j>>0]|0)|0;m=c[h>>2]|0;c[h>>2]=m+1;a[m>>0]=k;i=i+2|0}while(0);b:do if((i|0)!=(e|0)){j=e;k=i;while(1){j=j+-1|0;if(k>>>0>=j>>>0)break b;m=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=m;k=k+1|0}}while(0);m=Gb[c[(c[l>>2]|0)+16>>2]&127](l)|0;l=i;j=0;k=0;while(1){if(l>>>0>=e>>>0)break;s=a[((a[n>>0]|0)<0?c[q>>2]|0:q)+j>>0]|0;if(s<<24>>24!=0&(k|0)==(s<<24>>24|0)){k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=m;k=a[n>>0]|0;j=j+(j>>>0<((k<<24>>24<0?c[o>>2]|0:k&255)+-1|0)>>>0&1)|0;k=0}t=Ib[c[(c[p>>2]|0)+28>>2]&63](p,a[l>>0]|0)|0;s=c[h>>2]|0;c[h>>2]=s+1;a[s>>0]=t;l=l+1|0;k=k+1|0}i=f+(i-b)|0;j=c[h>>2]|0;if((i|0)!=(j|0)){while(1){j=j+-1|0;if(i>>>0>=j>>>0)break;t=a[i>>0]|0;a[i>>0]=a[j>>0]|0;a[j>>0]=t;i=i+1|0}i=c[h>>2]|0}}else{Kb[c[(c[p>>2]|0)+32>>2]&15](p,b,e,f)|0;i=f+(e-b)|0;c[h>>2]=i}c[g>>2]=(d|0)==(e|0)?i:f+(d-b)|0;jO(q);zb=r;return}function yH(a){a=a|0;CF(a);return}function zH(a){a=a|0;CF(a);SA(a);return}function AH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;l=zb;zb=zb+16|0;k=l+4|0;h=l;if(!(c[e+4>>2]&1)){j=c[(c[b>>2]|0)+24>>2]|0;c[h>>2]=c[d>>2];c[k>>2]=c[h>>2];b=Mb[j&31](b,k,e,f,g&1)|0}else{IE(k,e);b=XF(k,56776)|0;YF(k);e=c[b>>2]|0;if(g)Ub[c[e+24>>2]&63](k,b);else Ub[c[e+28>>2]&63](k,b);i=k+8+3|0;b=a[i>>0]|0;e=c[k>>2]|0;j=k+4|0;g=b<<24>>24<0?e:k;while(1){h=b<<24>>24<0;if((g|0)==((h?e:k)+((h?c[j>>2]|0:b&255)<<2)|0))break;b=c[g>>2]|0;e=c[d>>2]|0;if(e|0){f=e+24|0;h=c[f>>2]|0;if((h|0)==(c[e+28>>2]|0)){h=c[(c[e>>2]|0)+52>>2]|0;b=jE(b)|0;b=Ib[h&63](e,b)|0}else{c[f>>2]=h+4;c[h>>2]=b;b=jE(b)|0}if(JE(b,iE()|0)|0)c[d>>2]=0}g=g+4|0;b=a[i>>0]|0;e=c[k>>2]|0}b=c[d>>2]|0;wO(k)}zb=l;return b|0}function BH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=zb;zb=zb+32|0;j=b;n=b+16|0;m=b+12|0;l=b+4|0;k=b+8|0;a[n>>0]=a[49415]|0;a[n+1>>0]=a[49416]|0;a[n+2>>0]=a[49417]|0;a[n+3>>0]=a[49418]|0;a[n+4>>0]=a[49419]|0;a[n+5>>0]=a[49420]|0;p=e+4|0;wH(n+1|0,49421,1,c[p>>2]|0);p=(c[p>>2]|0)>>>9&1;q=p+13|0;h=Na()|0;o=zb;zb=zb+((1*q|0)+15&-16)|0;i=_F()|0;c[j>>2]=g;g=o+(rH(o,q,i,n,j)|0)|0;n=sH(o,g,e)|0;i=zb;zb=zb+((1*((p<<1|24)+-1<<2)|0)+15&-16)|0;IE(j,e);KH(o,n,g,i,m,l,j);YF(j);c[k>>2]=c[d>>2];d=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=IH(j,i,d,g,e,f)|0;Ma(h|0);zb=b;return g|0}function CH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=zb;zb=zb+32|0;j=a+8|0;i=a;m=a+24|0;l=a+16|0;k=a+20|0;o=i;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;wH(i+1|0,49412,1,c[o>>2]|0);o=(c[o>>2]|0)>>>9&1;q=o+23|0;h=Na()|0;n=zb;zb=zb+((1*q|0)+15&-16)|0;p=_F()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(rH(n,q,p,i,j)|0)|0;g=sH(n,f,d)|0;i=zb;zb=zb+((1*((o<<1|44)+-1<<2)|0)+15&-16)|0;IE(j,d);KH(n,g,f,i,m,l,j);YF(j);c[k>>2]=c[b>>2];f=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=IH(j,i,f,g,d,e)|0;Ma(h|0);zb=a;return g|0}function DH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;b=zb;zb=zb+32|0;j=b;n=b+16|0;m=b+12|0;l=b+4|0;k=b+8|0;a[n>>0]=a[49415]|0;a[n+1>>0]=a[49416]|0;a[n+2>>0]=a[49417]|0;a[n+3>>0]=a[49418]|0;a[n+4>>0]=a[49419]|0;a[n+5>>0]=a[49420]|0;p=e+4|0;wH(n+1|0,49421,0,c[p>>2]|0);p=(c[p>>2]|0)>>>9&1;q=p|12;h=Na()|0;o=zb;zb=zb+((1*q|0)+15&-16)|0;i=_F()|0;c[j>>2]=g;g=o+(rH(o,q,i,n,j)|0)|0;n=sH(o,g,e)|0;i=zb;zb=zb+((1*((p<<1|21)<<2)|0)+15&-16)|0;IE(j,e);KH(o,n,g,i,m,l,j);YF(j);c[k>>2]=c[d>>2];d=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=IH(j,i,d,g,e,f)|0;Ma(h|0);zb=b;return g|0}function EH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;a=zb;zb=zb+32|0;j=a+8|0;i=a;m=a+24|0;l=a+16|0;k=a+20|0;o=i;c[o>>2]=37;c[o+4>>2]=0;o=d+4|0;wH(i+1|0,49412,0,c[o>>2]|0);o=(c[o>>2]|0)>>>9&1|22;q=o+1|0;h=Na()|0;n=zb;zb=zb+((1*q|0)+15&-16)|0;p=_F()|0;r=j;c[r>>2]=f;c[r+4>>2]=g;f=n+(rH(n,q,p,i,j)|0)|0;g=sH(n,f,d)|0;i=zb;zb=zb+((1*((o<<1)+-1<<2)|0)+15&-16)|0;IE(j,d);KH(n,g,f,i,m,l,j);YF(j);c[k>>2]=c[b>>2];f=c[m>>2]|0;g=c[l>>2]|0;c[j>>2]=c[k>>2];g=IH(j,i,f,g,d,e)|0;Ma(h|0);zb=a;return g|0}function FH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;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;x=zb;zb=zb+352|0;r=x+344|0;m=x+320|0;l=x+304|0;i=x+296|0;h=x+280|0;k=x+272|0;o=x+240|0;n=x+340|0;p=x;u=x+336|0;s=x+332|0;t=x+328|0;j=k;c[j>>2]=37;c[j+4>>2]=0;j=tH(k+1|0,57671,c[d+4>>2]|0)|0;c[n>>2]=o;a=_F()|0;if(j){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=rH(o,30,a,k,h)|0}else{g[i>>3]=f;a=rH(o,30,a,k,i)|0}if((a|0)>29){a=_F()|0;if(j){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=uH(n,a,k,l)|0}else{g[m>>3]=f;h=uH(n,a,k,m)|0}a=c[n>>2]|0;if(!a)aO();else{q=h;z=a;w=a}}else{q=a;z=0;w=c[n>>2]|0}h=w+q|0;i=sH(w,h,d)|0;do if((w|0)!=(o|0)){a=FO(q<<3)|0;if(!a)aO();else{v=a;y=0;A=a;break}}else{v=p;y=1;A=0}while(0);IE(r,d);JH(w,i,h,v,u,s,r);YF(r);c[t>>2]=c[b>>2];w=c[u>>2]|0;a=c[s>>2]|0;c[r>>2]=c[t>>2];a=IH(r,v,w,a,d,e)|0;c[b>>2]=a;if(!y)GO(A);GO(z);zb=x;return a|0}function GH(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;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;x=zb;zb=zb+352|0;r=x+344|0;m=x+320|0;l=x+304|0;i=x+296|0;h=x+280|0;k=x+272|0;o=x+240|0;n=x+340|0;p=x;u=x+336|0;s=x+332|0;t=x+328|0;j=k;c[j>>2]=37;c[j+4>>2]=0;j=tH(k+1|0,49410,c[d+4>>2]|0)|0;c[n>>2]=o;a=_F()|0;if(j){c[h>>2]=c[d+8>>2];g[h+8>>3]=f;a=rH(o,30,a,k,h)|0}else{g[i>>3]=f;a=rH(o,30,a,k,i)|0}if((a|0)>29){a=_F()|0;if(j){c[l>>2]=c[d+8>>2];g[l+8>>3]=f;h=uH(n,a,k,l)|0}else{g[m>>3]=f;h=uH(n,a,k,m)|0}a=c[n>>2]|0;if(!a)aO();else{q=h;z=a;w=a}}else{q=a;z=0;w=c[n>>2]|0}h=w+q|0;i=sH(w,h,d)|0;do if((w|0)!=(o|0)){a=FO(q<<3)|0;if(!a)aO();else{v=a;y=0;A=a;break}}else{v=p;y=1;A=0}while(0);IE(r,d);JH(w,i,h,v,u,s,r);YF(r);c[t>>2]=c[b>>2];w=c[u>>2]|0;a=c[s>>2]|0;c[r>>2]=c[t>>2];a=IH(r,v,w,a,d,e)|0;c[b>>2]=a;if(!y)GO(A);GO(z);zb=x;return a|0}function HH(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=zb;zb=zb+208|0;l=b+184|0;k=b+192|0;h=b+160|0;j=b;m=b+188|0;a[k>>0]=a[49404]|0;a[k+1>>0]=a[49405]|0;a[k+2>>0]=a[49406]|0;a[k+3>>0]=a[49407]|0;a[k+4>>0]=a[49408]|0;a[k+5>>0]=a[49409]|0;i=_F()|0;c[l>>2]=g;g=rH(h,20,i,k,l)|0;k=h+g|0;i=sH(h,k,e)|0;IE(l,e);n=XF(l,56768)|0;YF(l);Kb[c[(c[n>>2]|0)+48>>2]&15](n,h,k,j)|0;g=j+(g<<2)|0;c[m>>2]=c[d>>2];c[l>>2]=c[m>>2];g=IH(l,j,(i|0)==(k|0)?g:j+(i-h<<2)|0,g,e,f)|0;zb=b;return g|0}function IH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=zb;zb=zb+16|0;m=n;i=c[b>>2]|0;a:do if(!i)i=0;else{o=d;j=f-o>>2;l=g+12|0;g=c[l>>2]|0;g=(g|0)>(j|0)?g-j|0:0;j=e;o=j-o|0;k=o>>2;if((o|0)>0?(Jb[c[(c[i>>2]|0)+48>>2]&63](i,d,k)|0)!=(k|0):0){c[b>>2]=0;i=0;break}do if((g|0)>0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;uO(m,g,h);if((Jb[c[(c[i>>2]|0)+48>>2]&63](i,(a[m+8+3>>0]|0)<0?c[m>>2]|0:m,g)|0)==(g|0)){wO(m);break}else{c[b>>2]=0;wO(m);i=0;break a}}while(0);o=f-j|0;f=o>>2;if((o|0)>0?(Jb[c[(c[i>>2]|0)+48>>2]&63](i,e,f)|0)!=(f|0):0){c[b>>2]=0;i=0;break}c[l>>2]=0}while(0);zb=n;return i|0}function JH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,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;v=zb;zb=zb+16|0;s=v;t=XF(i,56768)|0;q=XF(i,56776)|0;Ub[c[(c[q>>2]|0)+20>>2]&63](s,q);c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{r=Ib[c[(c[t>>2]|0)+44>>2]&63](t,i)|0;i=c[h>>2]|0;c[h>>2]=i+4;c[i>>2]=r;i=b+1|0;break}default:i=b}r=e;a:do if((r-i|0)>1?(a[i>>0]|0)==48:0){j=i+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:{u=4;break a}}o=Ib[c[(c[t>>2]|0)+44>>2]&63](t,48)|0;p=c[h>>2]|0;c[h>>2]=p+4;c[p>>2]=o;i=i+2|0;p=Ib[c[(c[t>>2]|0)+44>>2]&63](t,a[j>>0]|0)|0;j=c[h>>2]|0;c[h>>2]=j+4;c[j>>2]=p;j=i;while(1){if(j>>>0>=e>>>0)break a;p=a[j>>0]|0;if(!(_y(p,_F()|0)|0))break a;j=j+1|0}}else u=4;while(0);b:do if((u|0)==4){j=i;while(1){if(j>>>0>=e>>>0)break b;p=a[j>>0]|0;if(!(Zy(p,_F()|0)|0))break b;j=j+1|0}}while(0);o=s+11|0;n=a[o>>0]|0;p=s+4|0;c:do if((n<<24>>24<0?c[p>>2]|0:n&255)|0){d:do if((i|0)!=(j|0)){k=j;l=i;while(1){k=k+-1|0;if(l>>>0>=k>>>0)break d;n=a[l>>0]|0;a[l>>0]=a[k>>0]|0;a[k>>0]=n;l=l+1|0}}while(0);n=Gb[c[(c[q>>2]|0)+16>>2]&127](q)|0;m=i;k=0;l=0;while(1){if(m>>>0>=j>>>0)break;w=a[((a[o>>0]|0)<0?c[s>>2]|0:s)+k>>0]|0;if(w<<24>>24>0&(l|0)==(w<<24>>24|0)){l=c[h>>2]|0;c[h>>2]=l+4;c[l>>2]=n;l=a[o>>0]|0;k=k+(k>>>0<((l<<24>>24<0?c[p>>2]|0:l&255)+-1|0)>>>0&1)|0;l=0}x=Ib[c[(c[t>>2]|0)+44>>2]&63](t,a[m>>0]|0)|0;w=c[h>>2]|0;c[h>>2]=w+4;c[w>>2]=x;m=m+1|0;l=l+1|0}i=f+(i-b<<2)|0;l=c[h>>2]|0;if((i|0)==(l|0))k=t;else{k=l;while(1){k=k+-4|0;if(i>>>0>=k>>>0){k=t;i=l;break c}x=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=x;i=i+4|0}}}else{Kb[c[(c[t>>2]|0)+48>>2]&15](t,i,j,c[h>>2]|0)|0;i=(c[h>>2]|0)+(j-i<<2)|0;c[h>>2]=i;k=t}while(0);while(1){if(j>>>0>=e>>>0)break;i=a[j>>0]|0;if(i<<24>>24==46){u=32;break}w=Ib[c[(c[k>>2]|0)+44>>2]&63](t,i)|0;x=c[h>>2]|0;i=x+4|0;c[h>>2]=i;c[x>>2]=w;j=j+1|0}if((u|0)==32){w=Gb[c[(c[q>>2]|0)+12>>2]&127](q)|0;x=c[h>>2]|0;i=x+4|0;c[h>>2]=i;c[x>>2]=w;j=j+1|0}Kb[c[(c[t>>2]|0)+48>>2]&15](t,j,e,i)|0;x=(c[h>>2]|0)+(r-j<<2)|0;c[h>>2]=x;c[g>>2]=(d|0)==(e|0)?x:f+(d-b<<2)|0;jO(s);zb=v;return}function KH(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=zb;zb=zb+16|0;q=r;p=XF(i,56768)|0;l=XF(i,56776)|0;Ub[c[(c[l>>2]|0)+20>>2]&63](q,l);n=q+11|0;m=a[n>>0]|0;o=q+4|0;if((m<<24>>24<0?c[o>>2]|0:m&255)|0){c[h>>2]=f;i=a[b>>0]|0;switch(i<<24>>24){case 43:case 45:{m=Ib[c[(c[p>>2]|0)+44>>2]&63](p,i)|0;i=c[h>>2]|0;c[h>>2]=i+4;c[i>>2]=m;i=b+1|0;break}default:i=b}a:do if((e-i|0)>1?(a[i>>0]|0)==48:0){j=i+1|0;switch(a[j>>0]|0){case 88:case 120:break;default:break a}m=Ib[c[(c[p>>2]|0)+44>>2]&63](p,48)|0;k=c[h>>2]|0;c[h>>2]=k+4;c[k>>2]=m;k=Ib[c[(c[p>>2]|0)+44>>2]&63](p,a[j>>0]|0)|0;m=c[h>>2]|0;c[h>>2]=m+4;c[m>>2]=k;i=i+2|0}while(0);b:do if((i|0)!=(e|0)){j=e;k=i;while(1){j=j+-1|0;if(k>>>0>=j>>>0)break b;m=a[k>>0]|0;a[k>>0]=a[j>>0]|0;a[j>>0]=m;k=k+1|0}}while(0);m=Gb[c[(c[l>>2]|0)+16>>2]&127](l)|0;l=i;j=0;k=0;while(1){if(l>>>0>=e>>>0)break;s=a[((a[n>>0]|0)<0?c[q>>2]|0:q)+j>>0]|0;if(s<<24>>24!=0&(k|0)==(s<<24>>24|0)){k=c[h>>2]|0;c[h>>2]=k+4;c[k>>2]=m;k=a[n>>0]|0;j=j+(j>>>0<((k<<24>>24<0?c[o>>2]|0:k&255)+-1|0)>>>0&1)|0;k=0}t=Ib[c[(c[p>>2]|0)+44>>2]&63](p,a[l>>0]|0)|0;s=c[h>>2]|0;c[h>>2]=s+4;c[s>>2]=t;l=l+1|0;k=k+1|0}i=f+(i-b<<2)|0;j=c[h>>2]|0;if((i|0)!=(j|0)){while(1){j=j+-4|0;if(i>>>0>=j>>>0)break;t=c[i>>2]|0;c[i>>2]=c[j>>2];c[j>>2]=t;i=i+4|0}i=c[h>>2]|0}}else{Kb[c[(c[p>>2]|0)+48>>2]&15](p,b,e,f)|0;i=f+(e-b<<2)|0;c[h>>2]=i}c[g>>2]=(d|0)==(e|0)?i:f+(d-b<<2)|0;jO(q);zb=r;return}function LH(a){a=a|0;CF(a);return}function MH(a){a=a|0;CF(a);SA(a);return}function NH(a){a=a|0;return 2}function OH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=eI(a,j,i,e,f,g,49940,49948)|0;zb=h;return g|0}function PH(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=zb;zb=zb+16|0;j=i+12|0;k=i+8|0;m=i+4|0;l=i;n=b+8|0;n=Gb[c[(c[n>>2]|0)+20>>2]&127](n)|0;c[m>>2]=c[d>>2];c[l>>2]=c[e>>2];e=a[n+11>>0]|0;o=e<<24>>24<0;d=o?c[n>>2]|0:n;e=d+(o?c[n+4>>2]|0:e&255)|0;c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];h=eI(b,k,j,f,g,h,d,e)|0;zb=i;return h|0}function QH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56736)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];cI(a,g+24|0,b,i,f,e);zb=h;return c[b>>2]|0}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,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56736)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];dI(a,g+16|0,b,i,f,e);zb=h;return c[b>>2]|0}function SH(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56736)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];pI(a,g+20|0,b,i,f,e);zb=h;return c[b>>2]|0}function TH(b,d,e,f,g,h,i,j){b=b|0;d=d|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,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;R=zb;zb=zb+144|0;k=R+128|0;j=R+112|0;P=R+124|0;Q=R+120|0;l=R+116|0;m=R+108|0;n=R+104|0;o=R+100|0;p=R+96|0;q=R+92|0;r=R+88|0;s=R+84|0;t=R+80|0;u=R+76|0;v=R+72|0;w=R+68|0;x=R+64|0;y=R+60|0;z=R+56|0;A=R+52|0;B=R+48|0;C=R+44|0;D=R+40|0;E=R+36|0;F=R+32|0;G=R+28|0;H=R+24|0;I=R+20|0;J=R+16|0;K=R+12|0;L=R+8|0;M=R+4|0;N=R;c[g>>2]=0;IE(k,f);O=XF(k,56736)|0;YF(k);do switch(i<<24>>24|0){case 65:case 97:{c[P>>2]=c[e>>2];c[k>>2]=c[P>>2];cI(b,h+24|0,d,k,g,O);S=26;break}case 104:case 66:case 98:{c[Q>>2]=c[e>>2];c[k>>2]=c[Q>>2];dI(b,h+16|0,d,k,g,O);S=26;break}case 99:{Q=b+8|0;Q=Gb[c[(c[Q>>2]|0)+12>>2]&127](Q)|0;c[l>>2]=c[d>>2];c[m>>2]=c[e>>2];S=a[Q+11>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+(e?c[Q+4>>2]|0:S&255)|0;c[j>>2]=c[l>>2];c[k>>2]=c[m>>2];S=eI(b,j,k,f,g,h,i,S)|0;c[d>>2]=S;S=26;break}case 101:case 100:{c[n>>2]=c[e>>2];c[k>>2]=c[n>>2];fI(b,h+12|0,d,k,g,O);S=26;break}case 68:{c[o>>2]=c[d>>2];c[p>>2]=c[e>>2];c[j>>2]=c[o>>2];c[k>>2]=c[p>>2];S=eI(b,j,k,f,g,h,49900,49908)|0;c[d>>2]=S;S=26;break}case 70:{c[q>>2]=c[d>>2];c[r>>2]=c[e>>2];c[j>>2]=c[q>>2];c[k>>2]=c[r>>2];S=eI(b,j,k,f,g,h,49908,49916)|0;c[d>>2]=S;S=26;break}case 72:{c[s>>2]=c[e>>2];c[k>>2]=c[s>>2];gI(b,h+8|0,d,k,g,O);S=26;break}case 73:{c[t>>2]=c[e>>2];c[k>>2]=c[t>>2];hI(b,h+8|0,d,k,g,O);S=26;break}case 106:{c[u>>2]=c[e>>2];c[k>>2]=c[u>>2];iI(b,h+28|0,d,k,g,O);S=26;break}case 109:{c[v>>2]=c[e>>2];c[k>>2]=c[v>>2];jI(b,h+16|0,d,k,g,O);S=26;break}case 77:{c[w>>2]=c[e>>2];c[k>>2]=c[w>>2];kI(b,h+4|0,d,k,g,O);S=26;break}case 116:case 110:{c[x>>2]=c[e>>2];c[k>>2]=c[x>>2];lI(b,d,k,g,O);S=26;break}case 112:{c[y>>2]=c[e>>2];c[k>>2]=c[y>>2];mI(b,h+8|0,d,k,g,O);S=26;break}case 114:{c[z>>2]=c[d>>2];c[A>>2]=c[e>>2];c[j>>2]=c[z>>2];c[k>>2]=c[A>>2];S=eI(b,j,k,f,g,h,49916,49927)|0;c[d>>2]=S;S=26;break}case 82:{c[B>>2]=c[d>>2];c[C>>2]=c[e>>2];c[j>>2]=c[B>>2];c[k>>2]=c[C>>2];S=eI(b,j,k,f,g,h,49927,49932)|0;c[d>>2]=S;S=26;break}case 83:{c[D>>2]=c[e>>2];c[k>>2]=c[D>>2];nI(b,h,d,k,g,O);S=26;break}case 84:{c[E>>2]=c[d>>2];c[F>>2]=c[e>>2];c[j>>2]=c[E>>2];c[k>>2]=c[F>>2];S=eI(b,j,k,f,g,h,49932,49940)|0;c[d>>2]=S;S=26;break}case 119:{c[G>>2]=c[e>>2];c[k>>2]=c[G>>2];oI(b,h+24|0,d,k,g,O);S=26;break}case 120:{i=c[(c[b>>2]|0)+20>>2]|0;c[H>>2]=c[d>>2];c[I>>2]=c[e>>2];c[j>>2]=c[H>>2];c[k>>2]=c[I>>2];j=Ob[i&63](b,j,k,f,g,h)|0;break}case 88:{Q=b+8|0;Q=Gb[c[(c[Q>>2]|0)+24>>2]&127](Q)|0;c[J>>2]=c[d>>2];c[K>>2]=c[e>>2];S=a[Q+11>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+(e?c[Q+4>>2]|0:S&255)|0;c[j>>2]=c[J>>2];c[k>>2]=c[K>>2];S=eI(b,j,k,f,g,h,i,S)|0;c[d>>2]=S;S=26;break}case 121:{c[L>>2]=c[e>>2];c[k>>2]=c[L>>2];pI(b,h+20|0,d,k,g,O);S=26;break}case 89:{c[M>>2]=c[e>>2];c[k>>2]=c[M>>2];qI(b,h+20|0,d,k,g,O);S=26;break}case 37:{c[N>>2]=c[e>>2];c[k>>2]=c[N>>2];rI(b,d,k,g,O);S=26;break}default:{c[g>>2]=c[g>>2]|4;S=26}}while(0);if((S|0)==26)j=c[d>>2]|0;zb=R;return j|0}function UH(b){b=b|0;if((a[54872]|0)==0?nB(54872)|0:0){bI();c[14216]=53856;pB(54872)}return c[14216]|0}function VH(b){b=b|0;if((a[54856]|0)==0?nB(54856)|0:0){aI();c[14215]=53568;pB(54856)}return c[14215]|0}function WH(b){b=b|0;if((a[54840]|0)==0?nB(54840)|0:0){$H();c[14214]=53536;pB(54840)}return c[14214]|0}function XH(b){b=b|0;if((a[54832]|0)==0?nB(54832)|0:0){c[14211]=0;c[14212]=0;c[14213]=0;gO(56844,49658,Yf(49658)|0);pB(54832)}return 56844}function YH(b){b=b|0;if((a[54824]|0)==0?nB(54824)|0:0){c[14208]=0;c[14209]=0;c[14210]=0;gO(56832,49646,Yf(49646)|0);pB(54824)}return 56832}function ZH(b){b=b|0;if((a[54816]|0)==0?nB(54816)|0:0){c[14205]=0;c[14206]=0;c[14207]=0;gO(56820,49637,Yf(49637)|0);pB(54816)}return 56820}function _H(b){b=b|0;if((a[54808]|0)==0?nB(54808)|0:0){c[14202]=0;c[14203]=0;c[14204]=0;gO(56808,49628,Yf(49628)|0);pB(54808)}return 56808}function $H(){var b=0,d=0;if((a[54848]|0)==0?nB(54848)|0:0){d=53536;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=53560);pB(54848)}nO(53536,49679)|0;nO(53548,49682)|0;return} function sd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;f=g+8|0;e=g;d=We(b,0)|0;if(!d){c[e>>2]=b;Ue(0,3,20325,e);a=ox()|0;a=By(c[a>>2]|0)|0;c[f>>2]=57671;c[f+4>>2]=a;Ue(0,3,21881,f);a=-1}else{a=rd(a,d)|0;GO(d)}zb=g;return a|0}function td(a,b){a=a|0;b=b|0;b=(c[a+8>>2]|0)+(b<<2)|0;if(!(c[b>>2]|0))b=-1;else{c[b>>2]=0;c[a>>2]=(c[a>>2]|0)+-1;b=1}return b|0}function ud(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0;d=0;while(1){if((d|0)==3)break;f=a+(d<<5)|0;h=a+(d<<5)+8|0;i=a+(d<<5)+16|0;e=0;while(1){if((e|0)==4)break;g[c+(d<<5)+(e<<3)>>3]=+g[f>>3]*+g[b+(e<<3)>>3]+ +g[h>>3]*+g[b+32+(e<<3)>>3]+ +g[i>>3]*+g[b+64+(e<<3)>>3];e=e+1|0}i=c+(d<<5)+24|0;g[i>>3]=+g[a+(d<<5)+24>>3]+ +g[i>>3];d=d+1|0}return 0}function vd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,h=0,i=0,j=0;d=0;while(1){if((d|0)==3)break;h=a+(d<<5)|0;i=a+(d<<5)+8|0;j=a+(d<<5)+16|0;e=0;while(1){if((e|0)==4)break;f[c+(d<<4)+(e<<2)>>2]=+f[b+(e<<2)>>2]*+g[h>>3]+ +f[b+16+(e<<2)>>2]*+g[i>>3]+ +f[b+32+(e<<2)>>2]*+g[j>>3];e=e+1|0}j=c+(d<<4)+12|0;f[j>>2]=+f[j>>2]+ +g[a+(d<<5)+24>>3];d=d+1|0}return 0}function wd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0;d=0;while(1){if((d|0)==3)break;g=a+(d<<4)|0;h=a+(d<<4)+4|0;i=a+(d<<4)+8|0;e=0;while(1){if((e|0)==4)break;f[c+(d<<4)+(e<<2)>>2]=+f[g>>2]*+f[b+(e<<2)>>2]+ +f[h>>2]*+f[b+16+(e<<2)>>2]+ +f[i>>2]*+f[b+32+(e<<2)>>2];e=e+1|0}i=c+(d<<4)+12|0;f[i>>2]=+f[a+(d<<4)+12>>2]+ +f[i>>2];d=d+1|0}return 0}function xd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0;h=Dd(4,4)|0;d=0;while(1){if((d|0)==3)break;f=d<<2;e=0;while(1){if((e|0)==4)break;g[(c[h>>2]|0)+(e+f<<3)>>3]=+g[a+(d<<5)+(e<<3)>>3];e=e+1|0}d=d+1|0}d=c[h>>2]|0;f=d+96|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;g[d+120>>3]=1.0;Xd(h)|0;d=0;while(1){if((d|0)==3)break;a=d<<2;e=0;while(1){if((e|0)==4)break;g[b+(d<<5)+(e<<3)>>3]=+g[(c[h>>2]|0)+(e+a<<3)>>3];e=e+1|0}d=d+1|0}Ld(h)|0;return 0}function yd(a,b){a=a|0;b=b|0;var d=0,e=0,h=0,i=0;i=Dd(4,4)|0;d=0;while(1){if((d|0)==3)break;h=d<<2;e=0;while(1){if((e|0)==4)break;g[(c[i>>2]|0)+(e+h<<3)>>3]=+f[a+(d<<4)+(e<<2)>>2];e=e+1|0}d=d+1|0}d=c[i>>2]|0;h=d+96|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;g[d+120>>3]=1.0;Xd(i)|0;d=0;while(1){if((d|0)==3)break;a=d<<2;e=0;while(1){if((e|0)==4)break;f[b+(d<<4)+(e<<2)>>2]=+g[(c[i>>2]|0)+(e+a<<3)>>3];e=e+1|0}d=d+1|0}Ld(i)|0;return 0}function zd(a){a=a|0;switch(a|0){case 1:case 0:{a=3;break}case 6:case 4:case 3:case 2:{a=4;break}case 14:case 13:case 12:case 5:{a=1;break}case 11:case 10:case 9:case 8:case 7:{a=2;break}default:a=0}return a|0}function Ad(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;var f=0;do if((b|0)!=0&(c|0)!=0&(d|0)!=0){f=Oz(c,47)|0;if(!f){a[b>>0]=0;break}e=f+((e|0)!=0&1)-c|0;if((e+1|0)>>>0<=d>>>0){Wz(b,c,e)|0;a[b+e>>0]=0}else b=0}else b=0;while(0);return b|0}function Bd(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=0;h=0;a:while(1){switch(a[b+h>>0]|0){case 0:break a;case 46:{e=h;break}default:{}}h=h+1|0}f=b+h|0;g=(Qy(d)|0)+2|0;if(!e)if((g+h|0)>(c|0))e=-1;else{a[f>>0]=46;e=h;i=9}else if((g+e|0)>(c|0))e=-1;else i=9;if((i|0)==9){a[b+(e+1)>>0]=0;aA(b,d)|0;e=0}return e|0}function Cd(b){b=b|0;var c=0,d=0;c=-1;d=0;a:while(1){switch(a[b+d>>0]|0){case 0:break a;case 46:{c=d;break}default:{}}d=d+1|0}if((c|0)!=-1)a[b+c>>0]=0;return 0}function Dd(a,b){a=a|0;b=b|0;var d=0,e=0;d=FO(12)|0;do if(d){e=FO(B(a<<3,b)|0)|0;c[d>>2]=e;if(!e){GO(d);d=0;break}else{c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);return d|0}function Ed(a,b){a=a|0;b=b|0;var d=0,e=0;d=FO(12)|0;do if(d){e=FO(B(a<<2,b)|0)|0;c[d>>2]=e;if(!e){GO(d);d=0;break}else{c[d+4>>2]=a;c[d+8>>2]=b;break}}else d=0;while(0);return d|0}function Fd(a){a=a|0;var b=0;b=Dd(c[a+4>>2]|0,c[a+8>>2]|0)|0;if(b){if((Kd(b,a)|0)<0){Ld(b)|0;b=0}}else b=0;return b|0}function Gd(a,b){a=a|0;b=b|0;var d=0;d=Dd(c[a+4>>2]|0,c[b+8>>2]|0)|0;if(d){if((Nd(d,a,b)|0)<0){Ld(d)|0;d=0}}else d=0;return d|0}function Hd(a,b){a=a|0;b=b|0;var d=0;d=Ed(c[a+4>>2]|0,c[b+8>>2]|0)|0;if(d){if((Od(d,a,b)|0)<0){Md(d)|0;d=0}}else d=0;return d|0}function Id(a){a=a|0;var b=0;b=Dd(c[a+8>>2]|0,c[a+4>>2]|0)|0;if(b){if(($d(b,a)|0)<0){Ld(b)|0;b=0}}else b=0;return b|0}function Jd(a){a=a|0;var b=0;b=Ed(c[a+8>>2]|0,c[a+4>>2]|0)|0;if(b){if((ae(b,a)|0)<0){Md(b)|0;b=0}}else b=0;return b|0}function Kd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0;h=c[a+4>>2]|0;a:do if((h|0)==(c[b+4>>2]|0)?(i=c[a+8>>2]|0,(i|0)==(c[b+8>>2]|0)):0){e=0;while(1){if((e|0)>=(h|0)){d=0;break a}f=B(e,i)|0;d=0;while(1){if((d|0)>=(i|0))break;j=d+f|0;g[(c[a>>2]|0)+(j<<3)>>3]=+g[(c[b>>2]|0)+(j<<3)>>3];d=d+1|0}e=e+1|0}}else d=-1;while(0);return d|0}function Ld(a){a=a|0;if(a|0){GO(c[a>>2]|0);GO(a)}return 0}function Md(a){a=a|0;if(a|0){GO(c[a>>2]|0);GO(a)}return 0}function Nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;n=c[b+8>>2]|0;a:do if(((n|0)==(c[d+4>>2]|0)?(o=c[a+4>>2]|0,(o|0)==(c[b+4>>2]|0)):0)?(m=c[a+8>>2]|0,(m|0)==(c[d+8>>2]|0)):0){a=c[a>>2]|0;k=0;while(1){if((k|0)>=(o|0)){a=0;break a}l=B(k,n)|0;j=0;while(1){if((j|0)>=(m|0))break;g[a>>3]=0.0;e=(c[d>>2]|0)+(j<<3)|0;f=(c[b>>2]|0)+(l<<3)|0;h=0;i=0.0;while(1){if((h|0)>=(n|0))break;p=i+ +g[f>>3]*+g[e>>3];g[a>>3]=p;e=e+(m<<3)|0;f=f+8|0;h=h+1|0;i=p}j=j+1|0;a=a+8|0}k=k+1|0}}else a=-1;while(0);return a|0}function Od(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0.0;n=c[b+8>>2]|0;a:do if(((n|0)==(c[d+4>>2]|0)?(o=c[a+4>>2]|0,(o|0)==(c[b+4>>2]|0)):0)?(m=c[a+8>>2]|0,(m|0)==(c[d+8>>2]|0)):0){a=c[a>>2]|0;k=0;while(1){if((k|0)>=(o|0)){a=0;break a}l=B(k,n)|0;j=0;while(1){if((j|0)>=(m|0))break;f[a>>2]=0.0;e=(c[d>>2]|0)+(j<<2)|0;g=(c[b>>2]|0)+(l<<2)|0;h=0;i=0.0;while(1){if((h|0)>=(n|0))break;p=i+ +f[g>>2]*+f[e>>2];f[a>>2]=p;e=e+(m<<2)|0;g=g+4|0;h=h+1|0;i=p}j=j+1|0;a=a+4|0}k=k+1|0}}else a=-1;while(0);return a|0}function Pd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,i=0,j=0,k=0,l=0;i=c[a+4>>2]|0;j=c[a+8>>2]|0;f=(i|0)<(j|0)?i:j;a:do if(((((!((i|0)<2|(j|0)<2)?(c[b+8>>2]|0)==(j|0):0)?(c[b+4>>2]|0)==(f|0):0)?(k=d+4|0,(c[k>>2]|0)==(f|0)):0)?(c[e+4>>2]|0)==(j|0):0)?(l=Fd(a)|0,(l|0)!=0):0){h=+u(+(+(i|0)));if((Qd(l,e)|0)<0){Ld(l)|0;a=-1;break}if((Rd(l,e)|0)<0){Ld(l)|0;a=-1;break}f=B(j,i)|0;a=0;while(1){if((a|0)>=(f|0))break;j=(c[l>>2]|0)+(a<<3)|0;g[j>>3]=+g[j>>3]/h;a=a+1|0}a=Sd(l,b,d)|0;Ld(l)|0;e=c[k>>2]|0;h=0.0;f=0;while(1){if((f|0)>=(e|0))break;h=h+ +g[(c[d>>2]|0)+(f<<3)>>3];f=f+1|0}f=0;while(1){if((f|0)>=(e|0))break a;l=(c[d>>2]|0)+(f<<3)|0;g[l>>3]=+g[l>>3]/h;f=f+1|0}}else a=-1;while(0);return a|0}function Qd(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0,i=0,j=0,k=0;j=c[a+4>>2]|0;k=c[a+8>>2]|0;a:do if(!((j|0)<1|(k|0)<1)?(c[b+4>>2]|0)==(k|0):0){d=0;while(1){if((d|0)==(k|0))break;g[(c[b>>2]|0)+(d<<3)>>3]=0.0;d=d+1|0}a=c[a>>2]|0;h=0;while(1){if((h|0)==(j|0))break;d=0;f=c[b>>2]|0;i=a;while(1){if((d|0)==(k|0))break;g[f>>3]=+g[i>>3]+ +g[f>>3];d=d+1|0;f=f+8|0;i=i+8|0}a=a+(k<<3)|0;h=h+1|0}e=+(j|0);d=0;while(1){if((d|0)==(k|0)){d=0;break a}j=(c[b>>2]|0)+(d<<3)|0;g[j>>3]=+g[j>>3]/e;d=d+1|0}}else d=-1;while(0);return d|0}function Rd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;h=c[a+4>>2]|0;i=c[a+8>>2]|0;a:do if((c[b+4>>2]|0)==(i|0)){f=0;a=c[a>>2]|0;while(1){if((f|0)>=(h|0)){a=0;break a}d=0;e=c[b>>2]|0;while(1){if((d|0)>=(i|0))break;g[a>>3]=+g[a>>3]-+g[e>>3];d=d+1|0;e=e+8|0;a=a+8|0}f=f+1|0}}else a=-1;while(0);return a|0}function Sd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0;e=c[a+4>>2]|0;f=c[a+8>>2]|0;i=(f|0)<(e|0)?f:e;a:do if(((!((e|0)<2|(f|0)<2)?(c[b+8>>2]|0)==(f|0):0)?(c[b+4>>2]|0)==(i|0):0)?(c[d+4>>2]|0)==(i|0):0){h=Dd(i,i)|0;if((c[h+4>>2]|0)==(i|0)?(c[h+8>>2]|0)==(i|0):0){e=(e|0)<(f|0);if(e){if((Td(a,h)|0)<0){Ld(h)|0;e=-1;break}}else if((Ud(a,h)|0)<0){Ld(h)|0;e=-1;break}if((Vd(h,d)|0)<0){Ld(h)|0;e=-1;break}b:do if(e){if((Wd(a,h,b,d)|0)<0){Ld(h)|0;e=-1;break a}}else{a=0;f=c[h>>2]|0;e=c[b>>2]|0;while(1){if((a|0)>=(i|0))break;if(+g[(c[d>>2]|0)+(a<<3)>>3]<1.0e-16)break;b=0;while(1){if((b|0)>=(i|0))break;g[e>>3]=+g[f>>3];b=b+1|0;f=f+8|0;e=e+8|0}a=a+1|0}while(1){if((a|0)>=(i|0))break b;g[(c[d>>2]|0)+(a<<3)>>3]=0.0;f=0;while(1){if((f|0)>=(i|0))break;g[e>>3]=0.0;f=f+1|0;e=e+8|0}a=a+1|0}}while(0);Ld(h)|0;e=0;break}Ld(h)|0;e=-1}else e=-1;while(0);return e|0}function Td(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,o=0,p=0.0;n=c[a+4>>2]|0;o=c[a+8>>2]|0;a:do if((c[b+4>>2]|0)==(n|0)?(c[b+8>>2]|0)==(n|0):0){k=c[b>>2]|0;e=0;h=k;while(1){if((e|0)>=(n|0)){b=0;break a}l=B(e,o)|0;d=0;j=h;while(1){if((d|0)==(n|0))break;b:do if(d>>>0>>0){i=k+((B(d,n)|0)+e<<3)|0;g[j>>3]=+g[i>>3]}else{f=c[a>>2]|0;i=f+((B(d,o)|0)<<3)|0;g[j>>3]=0.0;b=0;f=f+(l<<3)|0;m=0.0;while(1){if((b|0)>=(o|0))break b;p=m+ +g[f>>3]*+g[i>>3];g[j>>3]=p;b=b+1|0;f=f+8|0;i=i+8|0;m=p}}while(0);d=d+1|0;j=j+8|0}e=e+1|0;h=h+(n<<3)|0}}else b=-1;while(0);return b|0}function Ud(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,n=0,o=0.0;m=c[a+4>>2]|0;n=c[a+8>>2]|0;a:do if((c[b+4>>2]|0)==(n|0)?(c[b+8>>2]|0)==(n|0):0){k=c[b>>2]|0;e=0;h=k;while(1){if((e|0)>=(n|0)){b=0;break a}d=0;j=h;while(1){if((d|0)==(n|0))break;b:do if(d>>>0>>0){i=k+((B(d,n)|0)+e<<3)|0;g[j>>3]=+g[i>>3]}else{i=c[a>>2]|0;g[j>>3]=0.0;b=0;f=i+(e<<3)|0;i=i+(d<<3)|0;l=0.0;while(1){if((b|0)>=(m|0))break b;o=l+ +g[f>>3]*+g[i>>3];g[j>>3]=o;b=b+1|0;f=f+(n<<3)|0;i=i+(n<<3)|0;l=o}}while(0);d=d+1|0;j=j+8|0}e=e+1|0;h=h+(n<<3)|0}}else b=-1;while(0);return b|0}function Vd(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0.0,i=0,j=0.0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0.0,H=0.0,I=0.0,J=0,K=0;F=zb;zb=zb+16|0;d=F;E=c[a+4>>2]|0;do if((!((E|0)<2?1:(E|0)!=(c[a+8>>2]|0))?(c[b+4>>2]|0)==(E|0):0)?(C=qe(E)|0,(C|0)!=0):0){D=E+-1|0;c[d+4>>2]=D;c[d>>2]=(c[C>>2]|0)+8;if((ue(a,b,d)|0)<0){re(C)|0;d=-1;break}A=c[C>>2]|0;g[A>>3]=0.0;y=D;while(1){if((y|0)<=0)break;z=y;while(1){if((z|0)<=0)break;n=+t(+(+g[A+(z<<3)>>3]));x=c[b>>2]|0;d=z+-1|0;o=+t(+(+g[x+(d<<3)>>3]));if(n>(o+ +t(+(+g[x+(z<<3)>>3])))*1.0e-06)z=d;else break}q=y+-1|0;a:do if((z|0)!=(y|0)){r=A+(y<<3)|0;s=A+(z+1<<3)|0;p=0;do{if(p>>>0>99)break a;p=p+1|0;v=c[b>>2]|0;w=v+(q<<3)|0;x=v+(y<<3)|0;h=+g[x>>3];o=(+g[w>>3]-h)*.5;m=+g[r>>3];m=m*m;j=+u(+(m+o*o));l=z;n=+g[s>>3];j=+g[v+(z<<3)>>3]-h+m/(o+(o<0.0?-j:j));while(1){if((l|0)>=(y|0))break;h=+t(+j);if(h>=+t(+n))if(h>1.0e-16){h=-n/j;o=1.0/+u(+(h*h+1.0));m=o;o=h*o}else{m=1.0;o=0.0}else{m=-j/n;o=1.0/+u(+(m*m+1.0));m=m*o}f=v+(l<<3)|0;I=+g[f>>3];k=l+1|0;d=v+(k<<3)|0;H=+g[d>>3];h=I-H;i=A+(k<<3)|0;G=o*(o*h+m*2.0*+g[i>>3]);g[f>>3]=I-G;g[d>>3]=H+G;d=A+(l<<3)|0;if((l|0)>(z|0))g[d>>3]=m*+g[d>>3]-n*o;I=+g[i>>3];g[i>>3]=I+o*(m*h-o*2.0*I);e=B(l,E)|0;f=B(k,E)|0;d=0;h=n;while(1){if((d|0)==(E|0))break;J=c[a>>2]|0;K=J+(d+e<<3)|0;j=+g[K>>3];J=J+(d+f<<3)|0;h=+g[J>>3];g[K>>3]=m*j-o*h;g[J>>3]=o*j+m*h;d=d+1|0}if((l|0)<(q|0)){j=+g[i>>3];K=A+(l+2<<3)|0;h=+g[K>>3];g[K>>3]=m*h;h=-(o*h)}l=k;n=h}H=+t(+(+g[r>>3]));I=+t(+(+g[w>>3]))}while(H>(I+ +t(+(+g[x>>3])))*1.0e-06)}while(0);y=q}d=0;while(1){if((d|0)==(D|0))break;f=c[b>>2]|0;i=f+(d<<3)|0;j=+g[i>>3];l=d+1|0;h=j;k=d;e=l;while(1){if((e|0)>=(E|0))break;I=+g[f+(e<<3)>>3];K=I>h;h=K?I:h;k=K?e:k;e=e+1|0}g[f+(k<<3)>>3]=j;g[i>>3]=h;e=c[a>>2]|0;f=e+((B(d,E)|0)<<3)|0;d=e+((B(k,E)|0)<<3)|0;e=0;while(1){if((e|0)==(E|0))break;I=+g[d>>3];g[d>>3]=+g[f>>3];g[f>>3]=I;f=f+8|0;d=d+8|0;e=e+1|0}d=l}re(C)|0;d=0}else d=-1;while(0);zb=F;return d|0}function Wd(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0.0;p=c[a+4>>2]|0;q=c[a+8>>2]|0;a:do if(((((!((p|0)<1|(q|0)<1)?(c[b+4>>2]|0)==(p|0):0)?(c[b+8>>2]|0)==(p|0):0)?(c[d+4>>2]|0)==(p|0):0)?(c[d+8>>2]|0)==(q|0):0)?(c[e+4>>2]|0)==(p|0):0){h=0;d=c[d>>2]|0;while(1){if((h|0)>=(p|0))break;i=+g[(c[e>>2]|0)+(h<<3)>>3];if(i<1.0e-16)break;n=1.0/+u(+(+t(+i)));o=B(h,p)|0;j=0;m=d;while(1){if((j|0)==(q|0))break;f=0;k=(c[b>>2]|0)+(o<<3)|0;i=0.0;l=(c[a>>2]|0)+(j<<3)|0;while(1){if((f|0)==(p|0))break;r=i+ +g[k>>3]*+g[l>>3];f=f+1|0;k=k+8|0;i=r;l=l+(q<<3)|0}g[m>>3]=n*i;j=j+1|0;m=m+8|0}h=h+1|0;d=d+(q<<3)|0}while(1){if((h|0)>=(p|0)){d=0;break a}g[(c[e>>2]|0)+(h<<3)>>3]=0.0;f=0;while(1){if((f|0)>=(q|0))break;g[d>>3]=0.0;f=f+1|0;d=d+8|0}h=h+1|0}}else d=-1;while(0);return d|0}function Xd(a){a=a|0;var b=0;b=c[a+4>>2]|0;return ((Yd(c[a>>2]|0,b,b)|0)==0)<<31>>31|0}function Yd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;q=zb;zb=zb+2e3|0;p=q;a:do if((b|0)>500)a=0;else{switch(b|0){case 0:{a=0;break a}case 1:{g[a>>3]=1.0/+g[a>>3];break a}default:{}}e=0;while(1){if((e|0)>=(b|0))break;c[p+(e<<2)>>2]=e;e=e+1|0}o=a+(b+-1<<3)|0;l=0;n=o;while(1){if((l|0)>=(b|0))break;m=a+((B(l,d)|0)<<3)|0;k=0.0;e=m;i=-1;f=l;while(1){if((f|0)==(b|0))break;r=+t(+(+g[e>>3]));j=k>2]|0;f=p+(l<<2)|0;c[e>>2]=c[f>>2];c[f>>2]=h;f=0;h=m;e=a+((B(i,d)|0)<<3)|0;while(1){if((f|0)==(b|0))break;r=+g[e>>3];g[e>>3]=+g[h>>3];g[h>>3]=r;f=f+1|0;h=h+8|0;e=e+8|0}k=+g[m>>3];e=1;f=m;while(1){if((e|0)==(b|0))break;j=f+8|0;g[f>>3]=+g[j>>3]/k;e=e+1|0;f=j}g[n>>3]=1.0/k;e=0;j=o;while(1){if((e|0)==(b|0))break;if((e|0)!=(l|0)){i=a+((B(e,d)|0)<<3)|0;k=+g[i>>3];f=m;h=1;while(1){if((h|0)==(b|0))break;s=i+8|0;g[i>>3]=+g[s>>3]-k*+g[f>>3];f=f+8|0;h=h+1|0;i=s}g[j>>3]=-(k*+g[n>>3])}e=e+1|0;j=j+(d<<3)|0}l=l+1|0;n=n+(d<<3)|0}j=0;while(1){if((j|0)>=(b|0))break a;i=j;while(1){e=p+(i<<2)|0;if((i|0)>=(b|0))break;if((c[e>>2]|0)==(j|0))break;i=i+1|0}c[e>>2]=c[p+(j<<2)>>2];f=0;h=a+(j<<3)|0;e=a+(i<<3)|0;while(1){if((f|0)>=(b|0))break;r=+g[e>>3];g[e>>3]=+g[h>>3];g[h>>3]=r;f=f+1|0;h=h+(d<<3)|0;e=e+(d<<3)|0}j=j+1|0}}while(0);zb=q;return a|0}function Zd(a){a=a|0;var b=0;b=c[a+4>>2]|0;return ((_d(c[a>>2]|0,b,b)|0)==0)<<31>>31|0}function _d(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;q=zb;zb=zb+2e3|0;p=q;a:do if((b|0)>500)a=0;else{switch(b|0){case 0:{a=0;break a}case 1:{f[a>>2]=1.0/+f[a>>2];break a}default:{}}e=0;while(1){if((e|0)>=(b|0))break;c[p+(e<<2)>>2]=e;e=e+1|0}o=a+(b+-1<<2)|0;l=0;n=o;while(1){if((l|0)>=(b|0))break;m=a+((B(l,d)|0)<<2)|0;k=0.0;e=m;i=-1;g=l;while(1){if((g|0)==(b|0))break;r=+t(+(+f[e>>2]));j=k>2]|0;g=p+(l<<2)|0;c[e>>2]=c[g>>2];c[g>>2]=h;g=0;h=m;e=a+((B(i,d)|0)<<2)|0;while(1){if((g|0)==(b|0))break;j=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=j;g=g+1|0;h=h+4|0;e=e+4|0}k=+f[m>>2];e=1;g=m;while(1){if((e|0)==(b|0))break;j=g+4|0;f[g>>2]=+f[j>>2]/k;e=e+1|0;g=j}f[n>>2]=1.0/k;e=0;j=o;while(1){if((e|0)==(b|0))break;if((e|0)!=(l|0)){i=a+((B(e,d)|0)<<2)|0;k=+f[i>>2];g=m;h=1;while(1){if((h|0)==(b|0))break;s=i+4|0;f[i>>2]=+f[s>>2]-k*+f[g>>2];g=g+4|0;h=h+1|0;i=s}f[j>>2]=-(k*+f[n>>2])}e=e+1|0;j=j+(d<<2)|0}l=l+1|0;n=n+(d<<2)|0}j=0;while(1){if((j|0)>=(b|0))break a;i=j;while(1){e=p+(i<<2)|0;if((i|0)>=(b|0))break;if((c[e>>2]|0)==(j|0))break;i=i+1|0}c[e>>2]=c[p+(j<<2)>>2];g=0;h=a+(j<<2)|0;e=a+(i<<2)|0;while(1){if((g|0)>=(b|0))break;s=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=s;g=g+1|0;h=h+(d<<2)|0;e=e+(d<<2)|0}j=j+1|0}}while(0);zb=q;return a|0}function $d(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0;h=c[a+4>>2]|0;a:do if((h|0)==(c[b+8>>2]|0)?(i=c[a+8>>2]|0,(i|0)==(c[b+4>>2]|0)):0){a=c[a>>2]|0;f=0;while(1){if((f|0)>=(h|0)){a=0;break a}d=(c[b>>2]|0)+(f<<3)|0;e=0;while(1){if((e|0)>=(i|0))break;g[a>>3]=+g[d>>3];d=d+(h<<3)|0;e=e+1|0;a=a+8|0}f=f+1|0}}else a=-1;while(0);return a|0}function ae(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;a:do if((g|0)==(c[b+8>>2]|0)?(h=c[a+8>>2]|0,(h|0)==(c[b+4>>2]|0)):0){a=c[a>>2]|0;f=0;while(1){if((f|0)>=(g|0)){a=0;break a}d=(c[b>>2]|0)+(f<<2)|0;e=0;while(1){if((e|0)>=(h|0))break;c[a>>2]=c[d>>2];d=d+(g<<2)|0;e=e+1|0;a=a+4|0}f=f+1|0}}else a=-1;while(0);return a|0}function be(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0;h=+(b|0)/+(c[a>>2]|0);f=+(d|0)/+(c[a+4>>2]|0);c[e>>2]=b;c[e+4>>2]=d;b=0;while(1){if((b|0)==4)break;g[e+8+(b<<3)>>3]=h*+g[a+8+(b<<3)>>3];g[e+40+(b<<3)>>3]=f*+g[a+40+(b<<3)>>3];g[e+72+(b<<3)>>3]=+g[a+72+(b<<3)>>3];b=b+1|0}b=c[a+176>>2]|0;switch(b|0){case 4:{g[e+104>>3]=+g[a+104>>3];g[e+112>>3]=+g[a+112>>3];g[e+120>>3]=+g[a+120>>3];g[e+128>>3]=+g[a+128>>3];g[e+136>>3]=h*+g[a+136>>3];g[e+144>>3]=f*+g[a+144>>3];g[e+152>>3]=h*+g[a+152>>3];g[e+160>>3]=f*+g[a+160>>3];g[e+168>>3]=+g[a+168>>3];i=9;break}case 3:{g[e+104>>3]=h*+g[a+104>>3];g[e+112>>3]=f*+g[a+112>>3];g[e+120>>3]=+g[a+120>>3];g[e+128>>3]=+g[a+128>>3];g[e+136>>3]=+g[a+136>>3]/(h*f);g[e+144>>3]=+g[a+144>>3]/(f*(h*h*f));i=9;break}case 2:{g[e+104>>3]=h*+g[a+104>>3];g[e+112>>3]=f*+g[a+112>>3];g[e+120>>3]=+g[a+120>>3];g[e+128>>3]=+g[a+128>>3]/(h*f);g[e+136>>3]=+g[a+136>>3]/(f*(h*h*f));i=9;break}case 1:{g[e+104>>3]=h*+g[a+104>>3];g[e+112>>3]=f*+g[a+112>>3];g[e+120>>3]=+g[a+120>>3];g[e+128>>3]=+g[a+128>>3]/(h*f);i=9;break}default:b=-1}if((i|0)==9){c[e+176>>2]=b;b=0}return b|0}function ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0.0;h=zb;zb=zb+96|0;f=h;a:do if(!(+g[a+88>>3]>=0.0)){d=0;while(1){if((d|0)==3)break a;e=0;while(1){if((e|0)==4)break;g[f+(d<<5)+(e<<3)>>3]=-+g[a+(d<<5)+(e<<3)>>3];e=e+1|0}d=d+1|0}}else{d=0;while(1){if((d|0)==3)break a;e=0;while(1){if((e|0)==4)break;g[f+(d<<5)+(e<<3)>>3]=+g[a+(d<<5)+(e<<3)>>3];e=e+1|0}d=d+1|0}}while(0);d=0;while(1){if((d|0)==3)break;e=0;while(1){if((e|0)==4)break;g[b+(d<<5)+(e<<3)>>3]=0.0;e=e+1|0}d=d+1|0}i=+g[f+64>>3];n=+g[f+72>>3];o=+g[f+80>>3];w=+de(i,n,o);a=b+80|0;g[a>>3]=w;w=i/w;u=c+64|0;g[u>>3]=w;n=n/+g[a>>3];s=c+72|0;g[s>>3]=n;o=o/+g[a>>3];p=c+80|0;g[p>>3]=o;m=c+88|0;g[m>>3]=+g[f+88>>3]/+g[a>>3];i=+g[f+32>>3];j=+g[f+40>>3];r=+g[f+48>>3];o=+ee(w,n,o,i,j,r);l=b+48|0;g[l>>3]=o;i=i-o*+g[u>>3];j=j-o*+g[s>>3];o=r-o*+g[p>>3];r=+de(i,j,o);k=b+40|0;g[k>>3]=r;v=c+32|0;g[v>>3]=i/r;t=c+40|0;g[t>>3]=j/+g[k>>3];q=c+48|0;g[q>>3]=o/+g[k>>3];o=+g[f>>3];j=+g[f+8>>3];r=+g[f+16>>3];i=+ee(+g[u>>3],+g[s>>3],+g[p>>3],o,j,r);d=b+16|0;g[d>>3]=i;n=+ee(+g[v>>3],+g[t>>3],+g[q>>3],o,j,r);e=b+8|0;g[e>>3]=n;o=o-n*+g[v>>3]-i*+g[u>>3];j=j-n*+g[t>>3]-i*+g[s>>3];i=r-n*+g[q>>3]-i*+g[p>>3];n=+de(o,j,i);g[b>>3]=n;g[c>>3]=o/n;g[c+8>>3]=j/+g[b>>3];g[c+16>>3]=i/+g[b>>3];i=+g[m>>3];j=(+g[f+56>>3]-+g[l>>3]*i)/+g[k>>3];g[c+56>>3]=j;g[c+24>>3]=(+g[f+24>>3]-j*+g[e>>3]-i*+g[d>>3])/+g[b>>3];d=0;while(1){if((d|0)==3)break;e=0;while(1){if((e|0)==3)break;v=b+(d<<5)+(e<<3)|0;g[v>>3]=+g[v>>3]/+g[a>>3];e=e+1|0}d=d+1|0}zb=h;return 0}function de(a,b,c){a=+a;b=+b;c=+c;return +(+u(+(a*a+b*b+c*c)))}function ee(a,b,c,d,e,f){a=+a;b=+b;c=+c;d=+d;e=+e;f=+f;return +(a*d+b*e+c*f)}function fe(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;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.0,p=0.0,q=0.0,r=0.0,s=0.0,t=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;switch(f|0){case 4:{t=+g[a>>3];v=+g[a+8>>3];r=+g[a+16>>3];s=+g[a+24>>3];x=+g[a+32>>3];y=+g[a+40>>3];z=+g[a+48>>3];A=+g[a+56>>3];w=+g[a+64>>3];q=(b-z)/x;l=(c-A)/y;m=r*2.0;n=s*6.0;o=s*2.0;p=r*6.0;i=q;j=l;k=q*q;b=l*l;f=1;while(1){if(!(b!=0.0|k!=0.0)){c=0.0;b=0.0;break}D=b+k;C=t*D+1.0+D*(v*D);c=k*3.0;B=b*c;c=i-(s*(D+k*2.0)+(j*(m*i)+i*C)-q)/(n*i+(m*j+(t*(b+c)+1.0+v*(b*b+(k*(k*5.0)+B)))));i=o*c;b=j-(r*(b*2.0+D)+j*C+j*i-l)/(p*j+(t*(k+b*3.0)+1.0+v*(b*(b*5.0)+(k*k+B)))+i);if((f|0)==4)break;i=c;j=b;k=c*c;b=b*b;f=f+1|0}g[d>>3]=z+x*c/w;b=A+y*b/w;h=22;break}case 3:{p=+g[a>>3];b=(b-p)/+g[a+24>>3];h=a+8|0;c=c-+g[h>>3];k=+g[a+32>>3]/1.0e8;l=+g[a+40>>3]/1.0e8/1.0e5;i=b*b+c*c;m=+u(+i);n=k*3.0;o=l*5.0;f=1;j=m;while(1){if(!(j!=0.0)){c=0.0;b=0.0;break}D=j-(j*(1.0-k*i-i*(l*i))-m)/(1.0-n*i-i*(o*i));b=b*D/j;c=c*D/j;if((f|0)==3)break;j=b*b+c*c;i=j;f=f+1|0;j=+u(+j)}a=a+16|0;g[d>>3]=p+b/+g[a>>3];b=c/+g[a>>3]+ +g[h>>3];h=22;break}case 2:{p=+g[a>>3];b=b-p;h=a+8|0;c=c-+g[h>>3];k=+g[a+24>>3]/1.0e8;l=+g[a+32>>3]/1.0e8/1.0e5;i=b*b+c*c;m=+u(+i);n=k*3.0;o=l*5.0;f=1;j=m;while(1){if(!(j!=0.0)){c=0.0;b=0.0;break}D=j-(j*(1.0-k*i-i*(l*i))-m)/(1.0-n*i-i*(o*i));b=b*D/j;c=c*D/j;if((f|0)==3)break;i=b*b+c*c;f=f+1|0;j=+u(+i)}a=a+16|0;g[d>>3]=p+b/+g[a>>3];b=c/+g[a>>3]+ +g[h>>3];h=22;break}case 1:{n=+g[a>>3];b=b-n;h=a+8|0;c=c-+g[h>>3];k=+g[a+24>>3]/1.0e8;i=b*b+c*c;l=+u(+i);m=k*3.0;f=1;j=l;while(1){if(!(j!=0.0)){c=0.0;b=0.0;break}D=j-(j*(1.0-k*i)-l)/(1.0-m*i);b=b*D/j;c=c*D/j;if((f|0)==3)break;i=b*b+c*c;f=f+1|0;j=+u(+i)}a=a+16|0;g[d>>3]=n+b/+g[a>>3];b=c/+g[a>>3]+ +g[h>>3];h=22;break}default:f=-1}if((h|0)==22){g[e>>3]=b;f=0}return f|0}function ge(a,b,c,d,e,f){a=a|0;b=+b;c=+c;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0;a:do switch(f|0){case 4:{h=+g[a+16>>3];l=+g[a+24>>3];o=+g[a+32>>3];m=+g[a+40>>3];p=+g[a+48>>3];n=+g[a+56>>3];i=+g[a+64>>3];k=(b-p)*i/o;c=(c-n)*i/m;i=k*k+c*c;b=+g[a>>3]*i+1.0+i*(+g[a+8>>3]*i);g[d>>3]=p+o*(l*(i+k*(k*2.0))+(c*(h*2.0*k)+k*b));b=n+m*(c*(l*2.0*k)+(h*(i+c*(c*2.0))+c*b));j=12;break}case 3:{i=+g[a>>3];p=+g[a+16>>3];h=(b-i)*p;f=a+8|0;b=p*(c-+g[f>>3]);if(h==0.0&b==0.0){g[d>>3]=i;b=+g[f>>3];j=12;break a}else{p=h*h+b*b;p=1.0-p*(+g[a+32>>3]/1.0e8)-p*(p*(+g[a+40>>3]/1.0e8/1.0e5));g[d>>3]=i+ +g[a+24>>3]*(h*p);b=+g[f>>3]+b*p;j=12;break a}}case 2:{i=+g[a>>3];p=+g[a+16>>3];h=(b-i)*p;f=a+8|0;b=p*(c-+g[f>>3]);if(h==0.0&b==0.0){g[d>>3]=i;b=+g[f>>3];j=12;break a}else{p=h*h+b*b;p=1.0-p*(+g[a+24>>3]/1.0e8)-p*(p*(+g[a+32>>3]/1.0e8/1.0e5));g[d>>3]=i+h*p;b=+g[f>>3]+b*p;j=12;break a}}case 1:{i=+g[a>>3];p=+g[a+16>>3];h=(b-i)*p;f=a+8|0;b=p*(c-+g[f>>3]);if(h==0.0&b==0.0){g[d>>3]=i;b=+g[f>>3];j=12;break a}else{p=1.0-(h*h+b*b)*(+g[a+24>>3]/1.0e8);g[d>>3]=i+h*p;b=+g[f>>3]+b*p;j=12;break a}}default:f=-1}while(0);if((j|0)==12){g[e>>3]=b;f=0}return f|0}function he(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=zb;zb=zb+192|0;f=g;ie(a,f);ie(a+4|0,f+4|0);b=0;while(1){if((b|0)==3)break;d=0;while(1){if((d|0)==4)break;je(a+8+(b<<5)+(d<<3)|0,f+8+(b<<5)+(d<<3)|0);d=d+1|0}b=b+1|0}d=a+176|0;b=0;while(1){e=c[d>>2]|0;if((b|0)>=(c[1712+(e+-1<<3)>>2]|0))break;je(a+104+(b<<3)|0,f+104+(b<<3)|0);b=b+1|0}c[f+176>>2]=e;_O(a|0,f|0,184)|0;zb=g;return}function ie(b,c){b=b|0;c=c|0;var d=0;d=0;while(1){if((d|0)==4)break;a[c+d>>0]=a[b+(3-d)>>0]|0;d=d+1|0}return}function je(b,c){b=b|0;c=c|0;var d=0;d=0;while(1){if((d|0)==8)break;a[c+d>>0]=a[b+(7-d)>>0]|0;d=d+1|0}return}function ke(a,b,d,e){a=a|0;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,p=0,q=0,r=0,s=0,t=0.0;s=zb;zb=zb+256|0;n=s+248|0;l=s+240|0;k=s+232|0;j=s+224|0;i=s+216|0;h=s+208|0;f=s+200|0;p=s;q=s+16|0;do if((a|0)!=0&(b|0)>0&(d|0)!=0){r=rz(a,22236)|0;if(!r){r=ox()|0;c[f>>2]=c[r>>2];c[f+4>>2]=a;Ue(0,3,20359,f);a=ox()|0;a=By(c[a>>2]|0)|0;c[h>>2]=57671;c[h+4>>2]=a;Ue(0,3,21881,h);a=-1;break}Kz(r,0,2)|0;a:do if(!(Bz(r)|0)){h=hA(r)|0;iA(r);f=0;while(1){if(f>>>0>=4){o=9;break}a=c[1712+(f<<3)+4>>2]|0;f=f+1|0;if(!((h|0)%(a|0)|0)){m=f;break}}do if((o|0)==9)if((f|0)==4){Ue(0,3,20473,k);a=-1;break a}else{m=0;a=c[1712+(0<<3)+4>>2]|0;break}while(0);if((gA(q,a,1,r)|0)!=1){a=ox()|0;c[l>>2]=c[a>>2];Ue(0,3,20553,l);a=ox()|0;a=By(c[a>>2]|0)|0;c[n>>2]=57671;c[n+4>>2]=a;Ue(0,3,21881,n);a=-1;break}j=q+176|0;c[j>>2]=m;he(q);k=(m|0)==1;l=q+120|0;if(k){t=+g[l>>3];i=q+128|0;g[l>>3]=+g[i>>3];g[i>>3]=t}else i=q+128|0;_O(d|0,q|0,184)|0;c[p>>2]=e;f=d+176|0;a=1;while(1){if((a|0)>=(b|0)){a=0;break a}e=(c[p>>2]|0)+(4-1)&~(4-1);h=c[e>>2]|0;c[p>>2]=e+4;c[h+176>>2]=c[f>>2];if((gA(q,c[1712+((c[f>>2]|0)+-1<<3)+4>>2]|0,1,r)|0)!=1){a=-1;break a}c[j>>2]=m;he(q);if(k){t=+g[l>>3];g[l>>3]=+g[i>>3];g[i>>3]=t}_O(h|0,q|0,184)|0;a=a+1|0}}else{a=ox()|0;c[i>>2]=c[a>>2];Ue(0,3,20428,i);a=ox()|0;a=By(c[a>>2]|0)|0;c[j>>2]=57671;c[j+4>>2]=a;Ue(0,3,21881,j);a=-1}while(0);xz(r)|0}else a=-1;while(0);zb=s;return a|0}function le(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var f=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+416|0;j=o+304|0;m=o+208|0;k=o+128|0;n=o;l=c[a>>2]|0;f=c[a+4>>2]|0;a:do if((ce(a+8|0,j,m)|0)<0)Ue(0,3,20591,o+400|0);else{i=+(f+-1|0);a=0;while(1){if((a|0)==4)break;f=j+32+(a<<3)|0;g[f>>3]=+g[j+64+(a<<3)>>3]*i-+g[f>>3];a=a+1|0}h=+g[j+80>>3];f=0;while(1){if((f|0)==3)break;a=0;while(1){if((a|0)==3)break;g[k+(f*24|0)+(a<<3)>>3]=+g[j+(f<<5)+(a<<3)>>3]/h;a=a+1|0}f=f+1|0}h=+(l+-1|0);g[n>>3]=+g[k>>3]*2.0/h;g[n+8>>3]=+g[k+8>>3]*2.0/h;g[n+16>>3]=-(+g[k+16>>3]*2.0/h+-1.0);f=n+24|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[n+40>>3]=-(+g[k+32>>3]*2.0/i);g[n+48>>3]=-(+g[k+40>>3]*2.0/i+-1.0);f=n+56|0;h=b-d;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;g[n+80>>3]=(b+d)/h;g[n+88>>3]=d*2.0*b/h;f=n+96|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[n+112>>3]=-1.0;g[n+120>>3]=0.0;h=+g[m+24>>3];i=+g[m+56>>3];b=+g[m+88>>3];f=0;while(1){if((f|0)==4)break a;d=+g[n+(f<<5)>>3];j=n+(f<<5)+8|0;k=n+(f<<5)+16|0;a=0;while(1){if((a|0)==3)break;g[e+((a<<2)+f<<3)>>3]=d*+g[m+(a<<3)>>3]+ +g[j>>3]*+g[m+32+(a<<3)>>3]+ +g[k>>3]*+g[m+64+(a<<3)>>3];a=a+1|0}g[e+(f+12<<3)>>3]=+g[n+(f<<5)+24>>3]+(d*h+ +g[j>>3]*i+ +g[k>>3]*b);f=f+1|0}}while(0);zb=o;return}function me(a,b){a=a|0;b=b|0;var d=0,e=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.0;s=zb;zb=zb+64|0;n=s+24|0;o=s+16|0;p=s+8|0;q=s;r=FO(208)|0;if(!r){Ue(0,3,41858,s+32|0);Ea(1)}_O(r|0,a|0,184)|0;m=b<<1;l=(c[a>>2]|0)+m|0;c[r+192>>2]=l;m=(c[a+4>>2]|0)+m|0;c[r+196>>2]=m;c[r+200>>2]=b;c[r+204>>2]=b;d=B(l<<3,m)|0;e=FO(d)|0;c[r+184>>2]=e;if(!e){Ue(0,3,41858,s+40|0);Ea(1)}d=FO(d)|0;c[r+188>>2]=d;if(!d){Ue(0,3,41858,s+48|0);Ea(1)}k=a+104|0;j=c[a+176>>2]|0;i=0;a=e;while(1){if((i|0)>=(m|0))break;h=+(i-b|0);e=0;while(1){if((e|0)>=(l|0))break;t=+(e-b|0);ge(k,t,h,p,q,j)|0;f[a>>2]=+g[p>>3];f[a+4>>2]=+g[q>>3];fe(k,t,h,n,o,j)|0;f[d>>2]=+g[n>>3];f[d+4>>2]=+g[o>>3];e=e+1|0;d=d+8|0;a=a+8|0}i=i+1|0}zb=s;return r|0}function ne(a){a=a|0;var b=0;if((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0){GO(c[b+184>>2]|0);GO(c[(c[a>>2]|0)+188>>2]|0);GO(c[a>>2]|0);c[a>>2]=0;a=0}else a=-1;return a|0}function oe(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var g=0,h=0,i=0;h=(c[a+16>>2]|0)+~~(b+.5)|0;g=(c[a+20>>2]|0)+~~(d+.5)|0;if(((h|0)>=0?(i=c[a+8>>2]|0,!((g|0)<0|(h|0)>=(i|0))):0)?(g|0)<(c[a+12>>2]|0):0){g=(c[a>>2]|0)+((B(i,g)|0)+h<<1<<2)|0;c[e>>2]=c[g>>2];c[f>>2]=c[g+4>>2];g=0}else g=-1;return g|0}function pe(a,b,d,e,f){a=a|0;b=+b;d=+d;e=e|0;f=f|0;var g=0,h=0,i=0;h=(c[a+16>>2]|0)+~~(b+.5)|0;g=(c[a+20>>2]|0)+~~(d+.5)|0;if(((h|0)>=0?(i=c[a+8>>2]|0,!((g|0)<0|(h|0)>=(i|0))):0)?(g|0)<(c[a+12>>2]|0):0){g=(c[a+4>>2]|0)+((B(i,g)|0)+h<<1<<2)|0;c[e>>2]=c[g>>2];c[f>>2]=c[g+4>>2];g=0}else g=-1;return g|0}function qe(a){a=a|0;var b=0,d=0;b=FO(8)|0;do if(b){d=FO(a<<3)|0;c[b>>2]=d;if(!d){GO(b);b=0;break}else{c[b+4>>2]=a;break}}else b=0;while(0);return b|0}function re(a){a=a|0;GO(c[a>>2]|0);GO(a);return 0}function se(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,h=0;b=+u(+(+te(a,a)));a:do if(b!=0.0){f=c[a>>2]|0;e=+g[f>>3];b=e<0.0?-b:b;e=e+b;g[f>>3]=e;e=1.0/+u(+(b*e));d=c[a+4>>2]|0;a=0;while(1){if((a|0)>=(d|0))break a;h=f+(a<<3)|0;g[h>>3]=e*+g[h>>3];a=a+1|0}}while(0);return +-b}function te(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0,h=0.0;f=c[a+4>>2]|0;if((f|0)!=(c[b+4>>2]|0))Ea(0);d=0;e=0.0;while(1){if((d|0)>=(f|0))break;h=e+ +g[(c[a>>2]|0)+(d<<3)>>3]*+g[(c[b>>2]|0)+(d<<3)>>3];d=d+1|0;e=h}return +e}function ue(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=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,w=0,x=0;x=zb;zb=zb+16|0;u=x+8|0;v=x;w=c[a+8>>2]|0;a:do if(((w|0)==(c[a+4>>2]|0)?(w|0)==(c[b+4>>2]|0):0)?(w|0)==((c[d+4>>2]|0)+1|0):0){r=w+-2|0;s=u+4|0;t=v+4|0;l=0;while(1){if((l|0)>=(r|0))break;m=(c[a>>2]|0)+((B(l,w)|0)<<3)|0;g[(c[b>>2]|0)+(l<<3)>>3]=+g[m+(l<<3)>>3];i=w-l+-1|0;c[s>>2]=i;p=l+1|0;k=m+(p<<3)|0;c[u>>2]=k;o=+se(u);g[(c[d>>2]|0)+(l<<3)>>3]=o;b:do if(!(o==0.0)){h=p;while(1){if((h|0)>=(w|0))break;e=p;j=0.0;while(1){if(e>>>0>=h>>>0)break;f=(c[a>>2]|0)+((B(e,w)|0)+h<<3)|0;o=j+ +g[f>>3]*+g[m+(e<<3)>>3];e=e+1|0;j=o}f=B(h,w)|0;e=h;while(1){if((e|0)>=(w|0))break;o=j+ +g[(c[a>>2]|0)+(e+f<<3)>>3]*+g[m+(e<<3)>>3];e=e+1|0;j=o}g[(c[b>>2]|0)+(h<<3)>>3]=j;h=h+1|0}c[t>>2]=i;c[s>>2]=i;c[u>>2]=k;c[v>>2]=(c[b>>2]|0)+(p<<3);o=+te(u,v)*.5;e=w;while(1){e=e+-1|0;if((e|0)<=(l|0))break b;j=+g[m+(e<<3)>>3];h=c[b>>2]|0;i=h+(e<<3)|0;n=+g[i>>3]-o*j;g[i>>3]=n;i=B(e,w)|0;f=e;while(1){if((f|0)>=(w|0))break;k=(c[a>>2]|0)+(f+i<<3)|0;g[k>>3]=+g[k>>3]-(j*+g[h+(f<<3)>>3]+n*+g[m+(f<<3)>>3]);f=f+1|0}}}while(0);l=p}if((w|0)<=1)if((w|0)==1){h=0;e=c[a>>2]|0;f=c[b>>2]|0;q=27}else i=w;else{e=c[a>>2]|0;q=B(r,w)|0;f=c[b>>2]|0;g[f+(r<<3)>>3]=+g[e+(q+r<<3)>>3];h=w+-1|0;g[(c[d>>2]|0)+(r<<3)>>3]=+g[e+(h+q<<3)>>3];q=27}if((q|0)==27){e=e+((B(h,w)|0)+h<<3)|0;i=w;j=+g[e>>3];e=f+(h<<3)|0;q=28}while(1){if((q|0)==28)g[e>>3]=j;d=i+-1|0;if((i|0)<=0){e=0;break a}m=(c[a>>2]|0)+((B(d,w)|0)<<3)|0;c:do if((i|0)<=(r|0)){h=w-d+-1|0;k=m+(i<<3)|0;e=i;while(1){if((e|0)>=(w|0))break c;c[t>>2]=h;c[s>>2]=h;c[u>>2]=k;l=B(e,w)|0;c[v>>2]=(c[a>>2]|0)+(l+i<<3);j=+te(u,v);f=i;while(1){if((f|0)>=(w|0))break;q=(c[a>>2]|0)+(f+l<<3)|0;g[q>>3]=+g[q>>3]-j*+g[m+(f<<3)>>3];f=f+1|0}e=e+1|0}}while(0);e=0;while(1){if((e|0)>=(w|0))break;g[m+(e<<3)>>3]=0.0;e=e+1|0}i=d;j=1.0;e=m+(d<<3)|0;q=28}}else e=-1;while(0);zb=x;return e|0}function ve(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,h=0.0,i=0.0;f=+g[c>>3];h=+g[c+8>>3];e=+g[c+16>>3];d=+g[b+88>>3]+(f*+g[b+64>>3]+h*+g[b+72>>3]+e*+g[b+80>>3]);if(d==0.0)c=-1;else{i=+g[b+56>>3]+(f*+g[b+32>>3]+h*+g[b+40>>3]+e*+g[b+48>>3]);g[a>>3]=(+g[b+24>>3]+(f*+g[b>>3]+h*+g[b+8>>3]+e*+g[b+16>>3]))/d;g[a+8>>3]=i/d;c=0}return c|0}function we(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,h=0,i=0,j=0,k=0.0;j=zb;zb=zb+224|0;h=j+48|0;i=j;f=j+192|0;xe(h,f,c,d);a:do if((ye(i,b,f)|0)<0){Ue(0,3,20661,j+216|0);b=-1}else{c=0;while(1){if((c|0)==2){b=0;break a}d=0;while(1){if((d|0)==6)break;f=a+(c*48|0)+(d<<3)|0;g[f>>3]=0.0;b=0;e=0.0;while(1){if((b|0)==3)break;k=e+ +g[i+(c*24|0)+(b<<3)>>3]*+g[h+(b*48|0)+(d<<3)>>3];g[f>>3]=k;b=b+1|0;e=k}d=d+1|0}c=c+1|0}}while(0);zb=j;return b|0}function xe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=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;j=zb;zb=zb+864|0;h=j+576|0;i=j;u=c+8|0;e=d+8|0;n=+g[e>>3];t=c+16|0;v=d+16|0;l=+g[v>>3];g[b>>3]=+g[c+24>>3]+(+g[c>>3]*+g[d>>3]+ +g[u>>3]*n+ +g[t>>3]*l);s=c+32|0;o=+g[d>>3];r=c+40|0;q=c+48|0;g[b+8>>3]=+g[c+56>>3]+(+g[s>>3]*o+n*+g[r>>3]+l*+g[q>>3]);p=c+64|0;d=c+72|0;n=+g[e>>3];e=c+80|0;g[b+16>>3]=+g[c+88>>3]+(o*+g[p>>3]+ +g[d>>3]*n+l*+g[e>>3]);l=+g[c>>3];g[h>>3]=o*l;g[h+8>>3]=n*l;m=+g[v>>3];g[h+16>>3]=l*m;k=+g[u>>3];g[h+24>>3]=o*k;g[h+32>>3]=n*k;g[h+40>>3]=m*k;f=+g[t>>3];g[h+48>>3]=o*f;g[h+56>>3]=n*f;g[h+64>>3]=m*f;g[h+72>>3]=l;g[h+80>>3]=k;g[h+88>>3]=f;f=+g[s>>3];g[h+96>>3]=o*f;g[h+104>>3]=n*f;g[h+112>>3]=m*f;k=+g[r>>3];g[h+120>>3]=o*k;g[h+128>>3]=n*k;g[h+136>>3]=m*k;l=+g[q>>3];g[h+144>>3]=o*l;g[h+152>>3]=n*l;g[h+160>>3]=m*l;g[h+168>>3]=f;g[h+176>>3]=k;g[h+184>>3]=l;l=+g[p>>3];g[h+192>>3]=o*l;g[h+200>>3]=n*l;g[h+208>>3]=m*l;k=+g[d>>3];g[h+216>>3]=o*k;g[h+224>>3]=n*k;g[h+232>>3]=m*k;f=+g[e>>3];g[h+240>>3]=o*f;g[h+248>>3]=n*f;g[h+256>>3]=m*f;g[h+264>>3]=l;g[h+272>>3]=k;g[h+280>>3]=f;ze(i);c=0;while(1){if((c|0)==3)break;d=0;while(1){if((d|0)==6)break;e=a+(c*48|0)+(d<<3)|0;g[e>>3]=0.0;b=0;f=0.0;while(1){if((b|0)==12)break;o=f+ +g[h+(c*96|0)+(b<<3)>>3]*+g[i+(b*48|0)+(d<<3)>>3];g[e>>3]=o;b=b+1|0;f=o}d=d+1|0}c=c+1|0}zb=j;return}function ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,f=0,h=0,i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0.0,p=0,q=0.0,r=0.0;o=+g[b>>3];r=+g[c>>3];p=b+8|0;q=+g[c+8>>3];n=b+16|0;d=+g[c+16>>3];e=+g[b+24>>3]+(o*r+ +g[p>>3]*q+ +g[n>>3]*d);c=b+32|0;f=b+40|0;h=b+48|0;i=+g[b+56>>3]+(r*+g[c>>3]+q*+g[f>>3]+d*+g[h>>3]);j=b+64|0;k=+g[j>>3];l=b+72|0;m=b+80|0;d=+g[b+88>>3]+(r*k+q*+g[l>>3]+d*+g[m>>3]);if(d==0.0)c=-1;else{r=d*d;g[a>>3]=(o*d-e*k)/r;g[a+8>>3]=(d*+g[p>>3]-e*+g[l>>3])/r;g[a+16>>3]=(d*+g[n>>3]-e*+g[m>>3])/r;g[a+24>>3]=(d*+g[c>>3]-i*+g[j>>3])/r;g[a+32>>3]=(d*+g[f>>3]-i*+g[l>>3])/r;g[a+40>>3]=(d*+g[h>>3]-i*+g[m>>3])/r;c=0}return c|0}function ze(a){a=a|0;var b=0,d=0,e=0;b=a+64|0;d=a;e=d+64|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=-1.0;b=a+72|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[b+24>>2]=0;c[b+28>>2]=0;g[a+104>>3]=1.0;b=a+160|0;d=a+112|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=1.0;b=a+240|0;d=a+168|0;e=d+72|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=-1.0;b=a+296|0;d=a+248|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=-1.0;b=a+304|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[b+24>>2]=0;c[b+28>>2]=0;g[a+336>>3]=1.0;b=a+456|0;d=a+344|0;e=d+112|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=1.0;b=a+512|0;d=a+464|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=1.0;b=a+568|0;d=a+520|0;e=d+48|0;do{c[d>>2]=0;d=d+4|0}while((d|0)<(e|0));g[b>>3]=1.0;return}function Ae(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;i=zb;zb=zb+48|0;h=i+24|0;g=i+12|0;f=i;c[h+4>>2]=6;c[h+8>>2]=1;c[h>>2]=a;c[g+4>>2]=e;c[g+8>>2]=1;c[g>>2]=b;c[f+4>>2]=e;c[f+8>>2]=6;c[f>>2]=d;d=Id(f)|0;do if(d){b=Gd(d,f)|0;if(!b){Ld(d)|0;a=-1;break}a=Gd(d,g)|0;if(!a){Ld(d)|0;Ld(b)|0;a=-1;break}if((Xd(b)|0)<0){Ld(d)|0;Ld(b)|0;Ld(a)|0;a=-1;break}else{Nd(h,b,a)|0;Ld(d)|0;Ld(b)|0;Ld(a)|0;a=0;break}}else a=-1;while(0);zb=i;return a|0}function Be(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,h=0,i=0,j=0;j=zb;zb=zb+256|0;f=j+192|0;h=j+96|0;i=j;Ce(f,b);De(h,f);b=0;while(1){if((b|0)==3)break;d=a+(b<<5)|0;e=a+(b<<5)+8|0;f=a+(b<<5)+16|0;c=0;while(1){if((c|0)==4)break;g[i+(b<<5)+(c<<3)>>3]=+g[d>>3]*+g[h+(c<<3)>>3]+ +g[e>>3]*+g[h+32+(c<<3)>>3]+ +g[f>>3]*+g[h+64+(c<<3)>>3];c=c+1|0}f=i+(b<<5)+24|0;g[f>>3]=+g[a+(b<<5)+24>>3]+ +g[f>>3];b=b+1|0}b=0;while(1){if((b|0)==3)break;c=0;while(1){if((c|0)==4)break;g[a+(b<<5)+(c<<3)>>3]=+g[i+(b<<5)+(c<<3)>>3];c=c+1|0}b=b+1|0}zb=j;return 0}function Ce(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0,f=0,h=0.0;d=+g[b>>3];e=b+8|0;h=+g[e>>3];f=b+16|0;c=+g[f>>3];c=d*d+h*h+c*c;if(c==0.0){g[a>>3]=1.0;g[a+8>>3]=0.0;d=0.0;c=0.0}else{c=+u(+c);g[a>>3]=d/c;g[a+8>>3]=+g[e>>3]/c;d=c;c=+g[f>>3]/c}g[a+16>>3]=c;g[a+24>>3]=d;g[a+32>>3]=+g[b+24>>3];g[a+40>>3]=+g[b+32>>3];g[a+48>>3]=+g[b+40>>3];return}function De(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0.0,f=0,h=0,i=0.0;c=+g[b+24>>3];e=+w(+c);d=1.0-e;c=+x(+c);i=+g[b>>3];g[a>>3]=e+i*i*d;h=b+8|0;f=b+16|0;g[a+8>>3]=d*(+g[b>>3]*+g[h>>3])-c*+g[f>>3];g[a+16>>3]=d*(+g[b>>3]*+g[f>>3])+c*+g[h>>3];g[a+24>>3]=+g[b+32>>3];g[a+32>>3]=d*(+g[h>>3]*+g[b>>3])+c*+g[f>>3];i=+g[h>>3];g[a+40>>3]=e+d*(i*i);g[a+48>>3]=d*(+g[h>>3]*+g[f>>3])-c*+g[b>>3];g[a+56>>3]=+g[b+40>>3];g[a+64>>3]=d*(+g[f>>3]*+g[b>>3])-c*+g[h>>3];g[a+72>>3]=d*(+g[f>>3]*+g[h>>3])+c*+g[b>>3];c=+g[f>>3];g[a+80>>3]=e+d*(c*c);g[a+88>>3]=+g[b+48>>3];return}function Ee(a){a=a|0;var b=0,d=0,e=0;b=FO(136)|0;if(!b)b=0;else{d=0;while(1){if((d|0)==3)break;e=0;while(1){if((e|0)==4)break;g[b+(d<<5)+(e<<3)>>3]=+g[a+(d<<5)+(e<<3)>>3];e=e+1|0}d=d+1|0}c[b+96>>2]=10;g[b+104>>3]=.10000000149011612;g[b+112>>3]=.9900000095367432;g[b+120>>3]=4.0;g[b+128>>3]=.5}return b|0}function Fe(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)a=-1;else{GO(b);c[a>>2]=0;a=0}return a|0}function Ge(a,b){a=a|0;b=+b;if(!a)a=-1;else{g[a+128>>3]=b;a=0}return a|0}function He(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var 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,u=0,v=0,w=0,x=0,y=0.0,z=0.0;x=zb;zb=zb+176|0;j=x+168|0;i=x+160|0;s=x+144|0;t=x+48|0;u=x;v=b+8|0;h=c[v>>2]|0;do if((h|0)>=3){w=FO(h*96|0)|0;if(!w){Ue(0,3,41875,i);h=-1;break}r=FO(h<<4)|0;if(!r){Ue(0,3,41875,j);GO(w);h=-1;break}h=0;while(1){if((h|0)==3)break;i=0;while(1){if((i|0)==4)break;g[e+(h<<5)+(i<<3)>>3]=+g[d+(h<<5)+(i<<3)>>3];i=i+1|0}h=h+1|0}d=b+4|0;m=s+8|0;n=a+104|0;o=a+96|0;p=a+120|0;q=a+112|0;l=0.0;j=0;a:while(1){ud(a,e,t)|0;k=0.0;i=0;while(1){h=c[v>>2]|0;if((i|0)>=(h|0))break;if((ve(s,t,(c[d>>2]|0)+(i*24|0)|0)|0)<0){i=16;break a}h=c[b>>2]|0;z=+g[h+(i<<4)>>3]-+g[s>>3];y=+g[h+(i<<4)+8>>3]-+g[m>>3];h=i<<1;g[r+(h<<3)>>3]=z;g[r+((h|1)<<3)>>3]=y;k=k+(z*z+y*y);i=i+1|0}k=k/+(h|0);if(k<+g[n>>3]){i=31;break}if((j|0?k<+g[p>>3]:0)?k/l>+g[q>>3]:0){i=31;break}if((j|0)==(c[o>>2]|0)){i=31;break}i=0;while(1){if((i|0)>=(h|0))break;if((we(w+(i*12<<3)|0,a,e,(c[d>>2]|0)+(i*24|0)|0)|0)<0){i=27;break a}i=i+1|0;h=c[v>>2]|0}if((Ae(u,r,w,h<<1)|0)<0){i=29;break}Be(e,u)|0;l=k;j=j+1|0}if((i|0)==16){Ie(w,r);h=-1;break}else if((i|0)==27){Ie(w,r);h=-1;break}else if((i|0)==29){Ie(w,r);h=-1;break}else if((i|0)==31){g[f>>3]=k;GO(w);GO(r);h=0;break}}else h=-1;while(0);zb=x;return h|0}function Ie(a,b){a=a|0;b=b|0;GO(a);GO(b);return}function Je(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=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,A=0,B=0,C=0,D=0,E=0,F=0;F=zb;zb=zb+192|0;l=F+184|0;k=F+176|0;j=F+168|0;h=F+160|0;A=F+144|0;B=F+48|0;C=F;D=b+8|0;i=c[D>>2]|0;do if((i|0)>=4){m=~~(+g[a+128>>3]*+(i|0))+-1|0;m=(m|0)>3?m:3;E=FO(i*96|0)|0;if(!E){Ue(0,3,41875,h);h=-1;break}z=FO(i<<4)|0;if(!z){Ue(0,3,41875,j);GO(E);h=-1;break}h=i<<3;y=FO(h)|0;if(!y){Ue(0,3,41875,k);GO(E);GO(z);h=-1;break}x=FO(h)|0;if(!x){Ue(0,3,41875,l);GO(E);GO(z);GO(y);h=-1;break}h=0;while(1){if((h|0)==3)break;i=0;while(1){if((i|0)==4)break;g[e+(h<<5)+(i<<3)>>3]=+g[d+(h<<5)+(i<<3)>>3];i=i+1|0}h=h+1|0}v=b+4|0;w=A+8|0;d=x+(m<<3)|0;m=a+104|0;s=a+96|0;t=a+120|0;u=a+112|0;q=0.0;l=0;a:while(1){ud(a,e,B)|0;h=0;while(1){i=c[D>>2]|0;if((h|0)>=(i|0))break;if((ve(A,B,(c[v>>2]|0)+(h*24|0)|0)|0)<0){i=20;break a}k=c[b>>2]|0;p=+g[k+(h<<4)>>3]-+g[A>>3];r=+g[k+(h<<4)+8>>3]-+g[w>>3];k=h<<1;g[z+(k<<3)>>3]=p;g[z+((k|1)<<3)>>3]=r;r=p*p+r*r;g[x+(h<<3)>>3]=r;g[y+(h<<3)>>3]=r;h=h+1|0}oy(x,i,8,18);r=+g[d>>3]*4.0;r=r<16.0?16.0:r;i=c[D>>2]|0;p=r/6.0;o=0.0;h=0;while(1){if((h|0)>=(i|0))break;n=+g[x+(h<<3)>>3];if(n>r)n=p;else{n=1.0-n/r;n=p*(1.0-n*(n*n))}o=o+n;h=h+1|0}o=o/+(i|0);if(o<+g[m>>3]){i=44;break}if((l|0?o<+g[t>>3]:0)?o/q>+g[u>>3]:0){i=44;break}if((l|0)==(c[s>>2]|0)){i=44;break}h=0;k=0;while(1){if((k|0)>=(i|0))break;n=+g[y+(k<<3)>>3];if(n<=r){j=h*6|0;i=E+(j<<3)|0;if((we(i,a,e,(c[v>>2]|0)+(k*24|0)|0)|0)<0){i=36;break a}q=1.0-n/r;q=q*q;g[i>>3]=q*+g[i>>3];i=E+((j|1)<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+2<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+3<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+4<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+5<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+6<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+7<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+8<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+9<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+10<<3)|0;g[i>>3]=q*+g[i>>3];i=E+(j+11<<3)|0;g[i>>3]=q*+g[i>>3];i=k<<1;g[z+(h<<3)>>3]=q*+g[z+(i<<3)>>3];g[z+(h+1<<3)>>3]=q*+g[z+((i|1)<<3)>>3];h=h+2|0;i=c[D>>2]|0}k=k+1|0}if((h|0)<6){i=40;break}if((Ae(C,z,E,h)|0)<0){i=42;break}Be(e,C)|0;q=o;l=l+1|0}if((i|0)==20){Ke(E,z,y,x);h=-1;break}else if((i|0)==36){Ke(E,z,y,x);h=-1;break}else if((i|0)==40){Ke(E,z,y,x);h=-1;break}else if((i|0)==42){Ke(E,z,y,x);h=-1;break}else if((i|0)==44){g[f>>3]=o;GO(E);GO(z);GO(y);GO(x);h=0;break}}else h=-1;while(0);zb=F;return h|0}function Ke(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;GO(a);GO(b);GO(c);GO(d);return}function Le(a,b){a=a|0;b=b|0;var c=0.0;c=+g[a>>3]-+g[b>>3];return (c<0.0?-1:c>0.0&1)|0}function Me(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|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,v=0,w=0,x=0,y=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;t=zb;zb=zb+128|0;s=t+120|0;p=t+112|0;o=t+104|0;m=t+96|0;l=t+88|0;j=t+80|0;i=t+72|0;r=t;a:do if((e|0)>=4){h=0;while(1){if((h|0)>=(e|0))break;if(+g[d+(h*24|0)+16>>3]!=0.0){h=-1;break a}else h=h+1|0}if((((((((!(+g[a>>3]==0.0)?!(+g[a+32>>3]!=0.0):0)?(q=a+40|0,!(+g[q>>3]==0.0)):0)?!(+g[a+64>>3]!=0.0):0)?!(+g[a+72>>3]!=0.0):0)?!(+g[a+80>>3]!=1.0):0)?!(+g[a+24>>3]!=0.0):0)?!(+g[a+56>>3]!=0.0):0)?!(+g[a+88>>3]!=0.0):0){h=e<<1;n=Dd(h,8)|0;if(!n){Ue(0,3,20681,i);h=-1;break}k=Dd(h,1)|0;if(!k){Ld(n)|0;Ue(0,3,20707,j);h=-1;break}h=0;while(1){if((h|0)==(e|0))break;y=d+(h*24|0)|0;j=c[n>>2]|0;i=h<<4;g[j+(i<<3)>>3]=+g[y>>3];x=d+(h*24|0)+8|0;g[j+((i|1)<<3)>>3]=+g[x>>3];g[j+((i|2)<<3)>>3]=1.0;g[j+((i|3)<<3)>>3]=0.0;g[j+((i|4)<<3)>>3]=0.0;g[j+((i|5)<<3)>>3]=0.0;w=b+(h<<4)|0;g[j+((i|6)<<3)>>3]=-(+g[y>>3]*+g[w>>3]);g[j+((i|7)<<3)>>3]=-(+g[x>>3]*+g[w>>3]);g[j+((i|8)<<3)>>3]=0.0;g[j+((i|9)<<3)>>3]=0.0;g[j+((i|10)<<3)>>3]=0.0;g[j+((i|11)<<3)>>3]=+g[y>>3];g[j+((i|12)<<3)>>3]=+g[x>>3];g[j+((i|13)<<3)>>3]=1.0;v=b+(h<<4)+8|0;g[j+((i|14)<<3)>>3]=-(+g[y>>3]*+g[v>>3]);g[j+((i|15)<<3)>>3]=-(+g[x>>3]*+g[v>>3]);i=c[k>>2]|0;j=h<<1;g[i+(j<<3)>>3]=+g[w>>3];g[i+((j|1)<<3)>>3]=+g[v>>3];h=h+1|0}b=Id(n)|0;if(!b){Ld(n)|0;Ld(k)|0;Ue(0,3,20733,l);h=-1;break}j=Gd(b,n)|0;if(!j){Ld(n)|0;Ld(k)|0;Ld(b)|0;Ue(0,3,20759,m);h=-1;break}i=Gd(b,k)|0;if(!i){Ld(n)|0;Ld(k)|0;Ld(b)|0;Ld(j)|0;Ue(0,3,20785,o);h=-1;break}if((Xd(j)|0)<0){Ld(n)|0;Ld(k)|0;Ld(b)|0;Ld(j)|0;Ld(i)|0;Ue(0,3,20811,p);h=-1;break}h=Gd(j,i)|0;if(!h){Ld(n)|0;Ld(k)|0;Ld(b)|0;Ld(j)|0;Ld(i)|0;Ue(0,3,20837,s);h=-1;break}else{p=c[h>>2]|0;H=+g[p+48>>3];w=r+16|0;E=+g[a+48>>3];A=+g[q>>3];K=(+g[p+24>>3]-H*E)/A;s=r+8|0;D=+g[a+16>>3];C=+g[a+8>>3];B=+g[a>>3];N=(+g[p>>3]-H*D-K*C)/B;I=+g[p+56>>3];v=r+40|0;L=(+g[p+32>>3]-E*I)/A;x=r+32|0;J=(+g[p+8>>3]-D*I-C*L)/B;y=r+24|0;A=(+g[p+40>>3]-E)/A;E=+g[p+16>>3];Ld(n)|0;Ld(k)|0;Ld(b)|0;Ld(j)|0;Ld(i)|0;Ld(h)|0;M=+u(+(H*H+(K*K+N*N)));z=+u(+(I*I+(L*L+J*J)));g[r>>3]=N/M;g[s>>3]=K/M;g[w>>3]=H/M;g[y>>3]=J/z;g[x>>3]=L/z;g[v>>3]=I/z;z=(M+z)*.5;Ne(r);M=+g[s>>3];I=+g[v>>3];L=+g[w>>3];J=+g[x>>3];H=M*I-L*J;K=+g[y>>3];N=+g[r>>3];G=L*K-I*N;O=J*N-M*K;F=+u(+(O*O+(H*H+G*G)));H=H/F;g[r+48>>3]=H;G=G/F;g[r+56>>3]=G;F=O/F;g[r+64>>3]=F;g[f>>3]=N;g[f+32>>3]=M;g[f+64>>3]=L;g[f+8>>3]=K;g[f+40>>3]=J;g[f+72>>3]=I;g[f+16>>3]=H;g[f+48>>3]=G;g[f+80>>3]=F;g[f+24>>3]=(E-D-C*A)/B/z;g[f+56>>3]=A/z;g[f+88>>3]=1.0/z;h=0;break}}else h=-1}else h=-1;while(0);zb=t;return h|0}function Ne(a){a=a|0;var b=0.0,c=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,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=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,L=0,M=0,N=0,O=0,P=0;l=+g[a>>3];L=a+8|0;o=+g[L>>3];M=a+16|0;p=+g[M>>3];N=a+24|0;B=+g[N>>3];O=a+32|0;C=+g[O>>3];K=a+40|0;f=+g[K>>3];b=o*f-p*C;c=p*B-l*f;d=l*C-o*B;e=+u(+(d*d+(b*b+c*c)));do if(!(e==0.0)){m=b/e;k=c/e;j=d/e;A=l*B+o*C+p*f;A=A<0.0?-A:A;A=(+u(+(A+1.0))+ +u(+(1.0-A)))*.5;d=l*k;b=o*m;c=d-b;if(c!=0.0){n=0;y=m;h=l;i=o;z=k;e=p}else{P=l*j-p*m!=0.0;i=P?p:o;h=P?l:p;z=P?j:k;y=P?m:j;d=h*z;c=i*y;n=P?1:2;b=c;c=d-c;e=P?o:l;j=P?k:m}if(!(c==0.0)?(t=(i*j-e*z)/c,v=A*z/c,x=b-d,w=(h*j-e*y)/x,x=A*y/x,r=t*t+w*w+1.0,s=t*v+w*x,q=s*s-r*(v*v+x*x+-1.0),!(q<0.0)):0){d=+u(+q);h=(d-s)/r;i=v+t*h;e=x+w*h;d=(-s-d)/r;c=v+t*d;b=x+w*d;switch(n&3){case 1:{t=b;s=d;q=c;r=e;p=h;o=i;l=y;m=j;b=z;break}case 2:{t=c;s=b;q=d;r=i;p=e;o=h;l=j;m=z;b=y;break}default:{t=d;s=b;q=c;r=h;p=e;o=i;l=y;m=z;b=j}}c=B*m;d=C*l;e=c-d;if(e!=0.0){n=0;h=l;i=B;j=C;k=m}else{P=B*b-f*l!=0.0;j=P?f:C;i=P?B:f;k=P?b:m;h=P?l:b;f=i*k;e=j*h;n=P?1:2;c=f;d=e;e=f-e;f=P?C:B;b=P?m:l}if(!(e==0.0)?(G=(j*b-f*k)/e,H=A*k/e,J=d-c,I=(i*b-f*h)/J,J=A*h/J,E=G*G+I*I+1.0,F=G*H+I*J,D=F*F-E*(H*H+J*J+-1.0),!(D<0.0)):0){j=+u(+D);h=(j-F)/E;d=H+G*h;i=J+I*h;j=(-F-j)/E;c=H+G*j;b=J+I*j;switch(n&3){case 1:{l=b;b=j;j=c;k=i;i=h;h=d;break}case 2:{l=c;k=d;break}default:{l=j;j=c;k=h;h=d}}f=o*h+p*i+r*k;f=f<0.0?-f:f;e=o*j+p*b+r*l;e=e<0.0?-e:e;d=q*h+s*i+t*k;d=d<0.0?-d:d;c=q*j+s*b+t*l;c=c<0.0?-c:c;if(f>3]=o;g[L>>3]=p;g[M>>3]=r;g[N>>3]=h;g[O>>3]=i;g[K>>3]=k;break}else{g[a>>3]=q;g[L>>3]=s;g[M>>3]=t;g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}else{g[a>>3]=q;g[L>>3]=s;g[M>>3]=t;if(d>3]=h;g[O>>3]=i;g[K>>3]=k;break}else{g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}}else if(e>3]=o;g[L>>3]=p;g[M>>3]=r;g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}else{g[a>>3]=q;g[L>>3]=s;g[M>>3]=t;g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}else{g[a>>3]=q;g[L>>3]=s;g[M>>3]=t;if(d>3]=h;g[O>>3]=i;g[K>>3]=k;break}else{g[N>>3]=j;g[O>>3]=b;g[K>>3]=l;break}}}}}while(0);return}function Oe(a){a=a|0;GO(c[a>>2]|0);GO(a);return 0}function Pe(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+Qe(a,b,c,d,0))}function Qe(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=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;C=zb;zb=zb+208|0;w=C+200|0;v=C+192|0;y=C+96|0;x=C;z=e+4|0;i=c[z>>2]|0;u=e+112|0;p=e+120|0;o=0;while(1){if((o|0)>=(i|0))break;q=c[e>>2]|0;r=q+(o*320|0)|0;if(!(c[q+(o*320|0)+4>>2]|0)){j=-1;k=0;while(1){if((k|0)>=(d|0))break;if((c[b+(k<<8)+8>>2]|0)==(c[r>>2]|0)?(l=+g[b+(k<<8)+40>>3],!(l<+g[u>>3])):0)if(!((j|0)!=-1?!(+g[b+(j<<8)+40>>3]>2]=j;if((j|0)>-1)c[b+(j<<8)+16>>2]=c[b+(j<<8)+20>>2]}else{n=q+(o*320|0)+312|0;m=0;j=-1;while(1){if((m|0)>=(d|0))break;k=c[b+(m<<8)+12>>2]|0;if((k|0)==0?(t=b+(m<<8)+248|0,s=c[t>>2]|0,t=c[t+4>>2]|0,!((s|0)==0&(t|0)==0)):0){k=n;if((s|0)==(c[k>>2]|0)?(t|0)==(c[k+4>>2]|0):0)B=20}else if((k|0)==(c[r>>2]|0))B=20;if((B|0)==20){B=0;h=+g[b+(m<<8)+48>>3];if(!(h<+g[p>>3]))if(!((j|0)!=-1?!(+g[b+(j<<8)+48>>3]>2]=j;if((j|0)>-1)c[b+(j<<8)+16>>2]=c[b+(j<<8)+24>>2]}o=o+1|0}p=0;n=0;j=0;o=0;while(1){if((o|0)>=(i|0))break;i=c[e>>2]|0;k=c[i+(o*320|0)+304>>2]|0;do if((k|0)<0){k=p;i=n}else{m=b+(k<<8)|0;if(+Uc(a,m,+g[i+(o*320|0)+8>>3],x)>4.0){c[(c[e>>2]|0)+(o*320|0)+304>>2]=-1;i=b+(k<<8)+236|0;if(c[i>>2]|0){k=p;i=n;break}c[i>>2]=7;k=p;i=n;break}k=c[m>>2]|0;a:do if((p|0)==0|(n|0)<(k|0)){i=0;while(1){if((i|0)==3){i=k;j=o;break a}j=0;while(1){if((j|0)==4)break;g[y+(i<<5)+(j<<3)>>3]=+g[x+(i<<5)+(j<<3)>>3];j=j+1|0}i=i+1|0}}else i=n;while(0);k=p+1|0}while(0);p=k;n=i;o=o+1|0;i=c[z>>2]|0}b:do if((p|0)!=0?(p|0)>=(c[e+128>>2]|0):0){ud(y,(c[e>>2]|0)+(j*320|0)+112|0,x)|0;o=p<<2;q=FO(p<<6)|0;if(!q){Ue(0,3,41858,v);Ea(1)}p=FO(p*96|0)|0;if(!p){Ue(0,3,41858,w);Ea(1)}n=c[z>>2]|0;m=0;i=0;while(1){if((m|0)>=(n|0))break;j=c[e>>2]|0;k=c[j+(m*320|0)+304>>2]|0;if((k|0)>=0){v=c[b+(k<<8)+16>>2]|0;u=(4-v|0)%4|0;w=i<<3;g[q+(w<<3)>>3]=+g[b+(k<<8)+168+(u<<4)>>3];g[q+((w|1)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)+8>>3];u=(5-v|0)%4|0;g[q+((w|2)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)>>3];g[q+((w|3)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)+8>>3];u=(6-v|0)%4|0;g[q+((w|4)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)>>3];g[q+((w|5)<<3)>>3]=+g[b+(k<<8)+168+(u<<4)+8>>3];v=(7-v|0)%4|0;g[q+((w|6)<<3)>>3]=+g[b+(k<<8)+168+(v<<4)>>3];g[q+((w|7)<<3)>>3]=+g[b+(k<<8)+168+(v<<4)+8>>3];w=i*12|0;g[p+(w<<3)>>3]=+g[j+(m*320|0)+208>>3];g[p+((w|1)<<3)>>3]=+g[j+(m*320|0)+216>>3];g[p+((w|2)<<3)>>3]=+g[j+(m*320|0)+224>>3];g[p+((w|3)<<3)>>3]=+g[j+(m*320|0)+232>>3];g[p+(w+4<<3)>>3]=+g[j+(m*320|0)+240>>3];g[p+(w+5<<3)>>3]=+g[j+(m*320|0)+248>>3];g[p+(w+6<<3)>>3]=+g[j+(m*320|0)+256>>3];g[p+(w+7<<3)>>3]=+g[j+(m*320|0)+264>>3];g[p+(w+8<<3)>>3]=+g[j+(m*320|0)+272>>3];g[p+(w+9<<3)>>3]=+g[j+(m*320|0)+280>>3];g[p+(w+10<<3)>>3]=+g[j+(m*320|0)+288>>3];g[p+(w+11<<3)>>3]=+g[j+(m*320|0)+296>>3];i=i+1|0}m=m+1|0}m=e+104|0;j=(f|0)!=0;if(!(c[m>>2]|0)){i=e+8|0;h=+Wc(a,x,q,p,o,i);if(j&h>=20.0){Ge(c[a>>2]|0,.8)|0;h=+Xc(a,x,q,p,o,i);if(h>=20.0){Ge(c[a>>2]|0,.6)|0;h=+Xc(a,x,q,p,o,i);if(h>=20.0){Ge(c[a>>2]|0,.4)|0;h=+Xc(a,x,q,p,o,i);if(h>=20.0){Ge(c[a>>2]|0,0.0)|0;h=+Xc(a,x,q,p,o,i)}}}}GO(p);GO(q)}else{h=+Wc(a,x,q,p,o,y);k=e+8|0;l=+Wc(a,k,q,p,o,k);i=h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l;while(0);if(h>=20.0){Ge(c[a>>2]|0,.8)|0;h=+Xc(a,x,q,p,o,y);l=+Xc(a,k,q,p,o,k);e:do if(h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l;while(0);if(h>=20.0){Ge(c[a>>2]|0,.6)|0;h=+Xc(a,x,q,p,o,y);l=+Xc(a,k,q,p,o,k);f:do if(h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l;while(0);if(h>=20.0){Ge(c[a>>2]|0,.4)|0;h=+Xc(a,x,q,p,o,y);l=+Xc(a,k,q,p,o,k);g:do if(h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l;while(0);if(h>=20.0){Ge(c[a>>2]|0,0.0)|0;h=+Xc(a,x,q,p,o,y);l=+Xc(a,k,q,p,o,k);if(h>3]=+g[y+(j<<5)+(i<<3)>>3];i=i+1|0}j=j+1|0}}else h=l}}}}}else if(i){i=0;while(1){if((i|0)==3)break c;j=0;while(1){if((j|0)==4)break;g[e+8+(i<<5)+(j<<3)>>3]=+g[y+(i<<5)+(j<<3)>>3];j=j+1|0}i=i+1|0}}else h=l;while(0);GO(p);GO(q)}if(h<20.0){c[m>>2]=1;break}c[m>>2]=0;j=c[z>>2]|0;i=0;while(1){if((i|0)>=(j|0))break b;k=c[(c[e>>2]|0)+(i*320|0)+304>>2]|0;if((k|0)>=0?(A=b+(k<<8)+236|0,(c[A>>2]|0)==0):0)c[A>>2]=8;i=i+1|0}}else B=45;while(0);if((B|0)==45){c[e+104>>2]=0;h=-1.0}zb=C;return +h}function Re(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +(+Qe(a,b,c,d,1))}function Se(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,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.0,V=0.0;T=zb;zb=zb+2528|0;S=T+2512|0;Q=T+2504|0;G=T+2488|0;P=T+2480|0;F=T+2472|0;E=T+2456|0;O=T+2448|0;D=T+2440|0;N=T+2432|0;M=T+2424|0;L=T+2416|0;C=T+2408|0;h=T+2400|0;f=T+2392|0;H=T+2384|0;e=T+2376|0;d=T+2368|0;z=T+2304|0;I=T+2048|0;J=T;A=T+2524|0;R=T+2520|0;B=T+2516|0;K=rz(a,21853)|0;do if(!K){c[d>>2]=a;Ue(0,3,20863,d);d=ox()|0;d=By(c[d>>2]|0)|0;c[e>>2]=57671;c[e+4>>2]=d;Ue(0,3,21881,e);d=0}else{Te(I,K);c[H>>2]=R;if((Cz(I,21887,H)|0)!=1){c[f>>2]=a;Ue(0,3,20916,f);xz(K)|0;d=0;break}d=c[R>>2]|0;y=FO(d*320|0)|0;if(!y){Ue(0,3,41858,h);Ea(1)}p=(b|0)==0;q=z+8|0;r=z+16|0;s=z+24|0;t=z+32|0;u=z+40|0;v=z+48|0;w=z+56|0;x=0;f=0;a:while(1){if((x|0)>=(d|0)){d=31;break}Te(I,K);d=y+(x*320|0)|0;e=y+(x*320|0)+312|0;c[C>>2]=e;c[C+4>>2]=A;if((Cz(I,21017,C)|0)!=1){if(p){d=11;break}if(!(Ad(J,a,2048,1)|0)){d=13;break}sA(J,I,2047-(Qy(J)|0)|0)|0;o=sd(b,J)|0;c[d>>2]=o;if((o|0)<0){d=15;break}else{d=1;e=0}}else{e=c[e>>2]|0;c[d>>2]=(e&-32768|0)==0&0==0?e&32767:0;d=2;e=1}c[y+(x*320|0)+4>>2]=e;f=f|d;Te(I,K);e=y+(x*320|0)+8|0;c[D>>2]=e;if((Cz(I,21313,D)|0)!=1){d=18;break}Te(I,K);m=y+(x*320|0)+16|0;n=y+(x*320|0)+24|0;o=y+(x*320|0)+40|0;c[E>>2]=m;c[E+4>>2]=n;c[E+8>>2]=y+(x*320|0)+32;c[E+12>>2]=o;if((Cz(I,21422,E)|0)==4)d=1;else{c[F>>2]=H;c[F+4>>2]=B;if((Cz(I,21438,F)|0)!=2){d=23;break}d=0}do{Te(I,K);c[G>>2]=y+(x*320|0)+16+(d<<5);c[G+4>>2]=y+(x*320|0)+16+(d<<5)+8;c[G+8>>2]=y+(x*320|0)+16+(d<<5)+16;c[G+12>>2]=y+(x*320|0)+16+(d<<5)+24;if((Cz(I,21422,G)|0)!=4){d=25;break a}d=d+1|0}while(d>>>0<3);xd(m,y+(x*320|0)+112|0)|0;V=+g[e>>3];U=V*-.5;g[z>>3]=U;V=V*.5;g[q>>3]=V;g[r>>3]=V;g[s>>3]=V;g[t>>3]=V;g[u>>3]=U;g[v>>3]=U;g[w>>3]=U;e=y+(x*320|0)+48|0;h=y+(x*320|0)+56|0;i=y+(x*320|0)+72|0;j=y+(x*320|0)+80|0;k=y+(x*320|0)+88|0;l=y+(x*320|0)+104|0;d=0;while(1){if((d|0)==4)break;U=+g[z+(d<<4)>>3];V=+g[z+(d<<4)+8>>3];g[y+(x*320|0)+208+(d*24|0)>>3]=+g[o>>3]+(+g[m>>3]*U+ +g[n>>3]*V);g[y+(x*320|0)+208+(d*24|0)+8>>3]=+g[i>>3]+(U*+g[e>>3]+V*+g[h>>3]);g[y+(x*320|0)+208+(d*24|0)+16>>3]=+g[l>>3]+(U*+g[j>>3]+V*+g[k>>3]);d=d+1|0}x=x+1|0;d=c[R>>2]|0}if((d|0)==11){c[L>>2]=a;c[L+4>>2]=I;Ue(0,3,21024,L)}else if((d|0)==13){c[M>>2]=a;Ue(0,3,21152,M)}else if((d|0)==15){c[N>>2]=a;c[N+4>>2]=J;Ue(0,3,21236,N)}else if((d|0)==18){c[O>>2]=a;c[O+4>>2]=x+1;Ue(0,3,21317,O)}else if((d|0)==23){c[P>>2]=a;c[P+4>>2]=x+1;Ue(0,3,21444,P)}else if((d|0)==25){c[Q>>2]=a;c[Q+4>>2]=x+1;Ue(0,3,21444,Q)}else if((d|0)==31){xz(K)|0;d=FO(136)|0;if(!d){Ue(0,3,41858,S);Ea(1)}c[d>>2]=y;c[d+4>>2]=c[R>>2];c[d+128>>2]=0;c[d+104>>2]=0;do if((f&3|0)!=3){e=d+108|0;if(!(f&1)){c[e>>2]=1;break}else{c[e>>2]=0;break}}else c[d+108>>2]=2;while(0);g[d+112>>3]=.5;g[d+120>>3]=.5;break}xz(K)|0;GO(y);d=0}while(0);zb=T;return d|0}function Te(b,c){b=b|0;c=c|0;var d=0,e=0;a:while(1){if(!(Az(b,256,c)|0))break;d=Qy(b)|0;b:while(1){if(!d)break;d=d+-1|0;e=b+d|0;switch(a[e>>0]|0){case 13:case 10:break;default:break b}a[e>>0]=0}switch(a[b>>0]|0){case 0:case 35:break;default:break a}}return}function Ue(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=zb;zb=zb+16|0;b=g;if((e|0)!=0&(c[3916]|0)<=(d|0)?a[e>>0]|0:0){c[b>>2]=f;Ve(0,d,e,b)}zb=g;return}function Ve(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;l=zb;zb=zb+32|0;j=l+16|0;b=l;if((!((e|0)==0|(c[3916]|0)>(d|0))?a[e>>0]|0:0)?(c[b>>2]=c[f>>2],k=Jx(0,0,e,b)|0,k|0):0){if(d>>>0<4)b=(Qy(c[1744+(d<<2)>>2]|0)|0)+3|0;else b=0;g=b+k|0;h=g+1|0;i=FO(h)|0;if(b|0){c[j>>2]=c[1744+(d<<2)>>2];bz(i,b+1|0,21553,j)|0}Jx(i+b|0,k+1|0,e,f)|0;do if(0){if(0?(m=c[13864]|0,m>>>0<0):0){b=0+m|0;if(g>>>0>(-4-m+0|0)>>>0){a[b>>0]=46;a[b+1>>0]=46;a[b+2>>0]=46;a[b+3>>0]=0;c[13864]=0;break}else{Wz(b,i,h)|0;c[13864]=(c[13864]|0)+g;break}}}else kz(i,c[4001]|0)|0;while(0);GO(i)}zb=l;return}function We(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;do if(b){e=rz(b,22236)|0;if(e){Kz(e,0,2)|0;f=hA(e)|0;Kz(e,0,0)|0;g=f+1|0;b=FO(g)|0;if(!b){xz(e)|0;b=ox()|0;c[b>>2]=48;b=0;break}if(!(gA(b,f,1,e)|0)){GO(b);xz(e)|0;b=0;break}a[b+f>>0]=0;xz(e)|0;if(d)c[d>>2]=g}else b=0}else{b=ox()|0;c[b>>2]=28;b=0}while(0);return b|0}function Xe(a,b){a=a|0;b=+b;if(!a)a=-1;else{f[a+40>>2]=b;a=0}return a|0}function Ye(a,b){a=a|0;b=+b;if(!a)a=-1;else{f[a+44>>2]=b;a=0}return a|0}function Ze(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+24>>2]=b;a=0}return a|0}function _e(a,b){a=a|0;b=b|0;b=(b|0)<40?b:40;if(!a)b=-1;else{c[a+36>>2]=(b|0)>3?b:3;b=0}return b|0}function $e(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+28>>2]=b;a=0}return a|0}function af(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+32>>2]=b;a=0}return a|0}function bf(b,e){b=b|0;e=+e;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0,C=0;z=zb;zb=zb+16|0;w=b+4|0;x=b+12|0;A=+f[x>>2];y=iz(+(c[w>>2]|0)*e/A)|0;t=b+8|0;u=iz(+(c[t>>2]|0)*e/A)|0;v=FO(16)|0;if(!v){Ue(0,3,41858,z);Ea(1)}c[v+4>>2]=y;c[v+8>>2]=u;f[v+12>>2]=e;g=FO(B(u,y)|0)|0;c[v>>2]=g;if(!g){Ue(0,3,41858,z+8|0);Ea(1)}h=0;while(1){if((h|0)>=(u|0))break;A=+f[x>>2];s=iz(A*+(h|0)/e)|0;h=h+1|0;r=iz(A*+(h|0)/e)|0;i=c[t>>2]|0;r=(r|0)>(i|0)?i:r;i=0;while(1){if((i|0)>=(y|0))break;A=+f[x>>2];q=iz(A*+(i|0)/e)|0;i=i+1|0;p=iz(A*+(i|0)/e)|0;o=c[w>>2]|0;p=(p|0)>(o|0)?o:p;j=0;k=0;l=s;while(1){if((l|0)>=(r|0))break;m=q;n=(c[b>>2]|0)+((B(l,o)|0)+q)|0;while(1){if((m|0)>=(p|0))break;C=j+(d[n>>0]|0)|0;m=m+1|0;n=n+1|0;j=C;k=k+1|0}l=l+1|0}a[g>>0]=(j|0)/(k|0)|0;g=g+1|0}}zb=z;return v|0}function cf(a){a=a|0;var b=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=zb;zb=zb+96|0;m=q+72|0;l=q+64|0;k=q+56|0;j=q+48|0;i=q+40|0;h=q+32|0;g=q+24|0;e=q+16|0;b=q+8|0;n=q+80|0;d=FO((Qy(a)|0)+6|0)|0;if(!d){Ue(0,3,41858,q);Ea(1)}c[b>>2]=a;c[b+4>>2]=21589;Hx(d,21584,b)|0;p=rz(d,22236)|0;GO(d);a:do if(!p){c[e>>2]=a;c[e+4>>2]=21589;Ue(0,3,21595,e);b=0}else{b=FO(8)|0;if(!b){Ue(0,3,41858,g);Ea(1)}d=b+4|0;if((gA(d,4,1,p)|0)==1?(o=c[d>>2]|0,(o|0)>=1):0){c[i>>2]=o;Ue(0,1,21668,i);e=o<<2;g=FO(e)|0;c[b>>2]=g;if(!g){Ue(0,3,41858,j);Ea(1)}j=FO(16)|0;c[g>>2]=j;if(!j){Ue(0,3,41858,k);Ea(1)}d=ff(p)|0;if(!d){c[l>>2]=a;c[l+4>>2]=21589;Ue(0,2,21698,l);GO(c[g>>2]|0);GO(g);GO(b);iA(p);b=df(p)|0;break}if((c[d+4>>2]|0)!=1){c[m>>2]=a;c[m+4>>2]=21589;Ue(0,2,21698,m);GO(c[g>>2]|0);GO(g);GO(b);GO(d);xz(p)|0;b=0;break}m=c[g>>2]|0;c[m+4>>2]=c[d+8>>2];c[m+8>>2]=c[d+12>>2];c[m+12>>2]=c[d+16>>2];c[m>>2]=c[d>>2];GO(d);Kz(p,4-e|0,2)|0;e=1;while(1){if((e|0)>=(o|0)){d=29;break}if((gA(n,4,1,p)|0)!=1){d=21;break}m=bf(c[g>>2]|0,+f[n>>2])|0;c[g+(e<<2)>>2]=m;if(!m){d=25;break}e=e+1|0}b:do if((d|0)==21){d=0;while(1){if((d|0)==(e|0))break b;o=g+(d<<2)|0;GO(c[c[o>>2]>>2]|0);GO(c[o>>2]|0);d=d+1|0}}else if((d|0)==25){d=0;while(1){if((d|0)==(e|0))break b;o=g+(d<<2)|0;GO(c[c[o>>2]>>2]|0);GO(c[o>>2]|0);d=d+1|0}}else if((d|0)==29){xz(p)|0;break a}while(0);GO(g)}else Ue(0,3,21643,h);GO(b);xz(p)|0;b=0}while(0);zb=q;return b|0}function df(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;l=zb;zb=zb+48|0;h=l+32|0;g=l+24|0;f=l+16|0;e=l+8|0;b=FO(8)|0;if(!b){Ue(0,3,41858,l);Ea(1)}d=b+4|0;a:do if((gA(d,4,1,a)|0)==1?(k=c[d>>2]|0,(k|0)>=1):0){j=FO(k<<2)|0;c[b>>2]=j;if(!j){Ue(0,3,41858,f);Ea(1)}d=0;while(1){if((d|0)>=(k|0))break;f=FO(16)|0;c[j+(d<<2)>>2]=f;if(!f){i=12;break}else d=d+1|0}if((i|0)==12){Ue(0,3,41858,g);Ea(1)}e=0;while(1){if((e|0)>=(k|0)){i=44;break}d=j+(e<<2)|0;if((gA((c[d>>2]|0)+4|0,4,1,a)|0)!=1){i=15;break}if((gA((c[d>>2]|0)+8|0,4,1,a)|0)!=1){i=22;break}if((gA((c[d>>2]|0)+12|0,4,1,a)|0)!=1){i=29;break}i=c[d>>2]|0;i=FO(B(c[i+8>>2]|0,c[i+4>>2]|0)|0)|0;c[c[d>>2]>>2]=i;if(!i){i=36;break}g=c[d>>2]|0;g=gA(c[g>>2]|0,1,B(c[g+8>>2]|0,c[g+4>>2]|0)|0,a)|0;i=c[d>>2]|0;e=e+1|0;if((g|0)!=(B(c[i+8>>2]|0,c[i+4>>2]|0)|0)){i=38;break}}b:do if((i|0)==15){d=0;while(1){if((d|0)==(e|0))break;GO(c[c[j+(d<<2)>>2]>>2]|0);d=d+1|0}d=0;while(1){if((d|0)==(k|0))break b;GO(c[j+(d<<2)>>2]|0);d=d+1|0}}else if((i|0)==22){d=0;while(1){if((d|0)==(e|0))break;GO(c[c[j+(d<<2)>>2]>>2]|0);d=d+1|0}d=0;while(1){if((d|0)==(k|0))break b;GO(c[j+(d<<2)>>2]|0);d=d+1|0}}else if((i|0)==29){d=0;while(1){if((d|0)==(e|0))break;GO(c[c[j+(d<<2)>>2]>>2]|0);d=d+1|0}d=0;while(1){if((d|0)==(k|0))break b;GO(c[j+(d<<2)>>2]|0);d=d+1|0}}else if((i|0)==36){Ue(0,3,41858,h);Ea(1)}else if((i|0)==38){d=0;while(1){if((d|0)==(e|0))break;GO(c[c[j+(d<<2)>>2]>>2]|0);d=d+1|0}d=0;while(1){if((d|0)==(k|0))break b;GO(c[j+(d<<2)>>2]|0);d=d+1|0}}else if((i|0)==44){xz(a)|0;break a}while(0);GO(j);i=46}else i=5;while(0);if((i|0)==5){Ue(0,3,21643,e);i=46}if((i|0)==46){GO(b);xz(a)|0;b=0}zb=l;return b|0}function ef(a){a=a|0;var b=0,d=0,e=0;if((a|0)!=0?(b=c[a>>2]|0,(b|0)!=0):0){e=0;while(1){d=c[b>>2]|0;if((e|0)>=(c[b+4>>2]|0))break;GO(c[c[d+(e<<2)>>2]>>2]|0);GO(c[(c[c[a>>2]>>2]|0)+(e<<2)>>2]|0);e=e+1|0;b=c[a>>2]|0}GO(d);GO(c[a>>2]|0);c[a>>2]=0;b=0}else b=-1;return b|0}function ff(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=FO(20)|0;if(!b){Ue(0,3,41858,d);Ea(1)}a=gf(a,b+8|0,b+12|0,b+4|0,b+16|0)|0;c[b>>2]=a;if(!a){GO(b);b=0}zb=d;return b|0}function gf(d,e,g,h,k){d=d|0;e=e|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,C=0,D=0,N=0;N=zb;zb=zb+832|0;z=N+528|0;y=N+520|0;x=N+512|0;A=4;D=FO(40)|0;c[D>>2]=0;C=N+24|0;n=N+536|0;w=N;aP(C|0,0,488)|0;i=0;o=G(63,n|0)|0;l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)!=1){c[C>>2]=o;c[n>>2]=112;D=XO(n+132|0,1,D|0,A|0)|0;A=F()|0;i=0;l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1)m=l;else m=0}else m=l;a:while(1){if(m|0){i=0;J(113,C|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;M(8,0,3,21756,x|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}else{m=7;break}}i=0;L(1,C|0,90,488);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;K(39,C|0,d|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;m=H(19,C|0,1)|0;l=i;i=0;if((l|0)!=0&(j|0)!=0){n=YO(c[l>>2]|0,D|0,A|0)|0;if(!n)Qa(l|0,j|0);E(j|0)}else n=-1;l=F()|0;if((n|0)==1){m=l;continue}if((m|0)!=1){i=0;M(8,0,3,21782,y|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;J(113,C|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}else{m=14;break}}i=0;G(64,C|0)|0;l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}t=C+36|0;u=C+28|0;s=B(c[u>>2]|0,c[t>>2]|0)|0;v=C+32|0;l=B(s,c[v>>2]|0)|0;i=0;l=G(65,l|0)|0;m=i;i=0;if((m|0)!=0&(j|0)!=0){n=YO(c[m>>2]|0,D|0,A|0)|0;if(!n)Qa(m|0,j|0);E(j|0)}else n=-1;m=F()|0;if((n|0)==1)continue;if(!l){i=0;M(8,0,3,41858,z|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}i=0;J(113,C|0);l=i;i=0;if((l|0)!=0&(j|0)!=0){m=YO(c[l>>2]|0,D|0,A|0)|0;if(!m)Qa(l|0,j|0);E(j|0)}else m=-1;l=F()|0;if((m|0)==1){m=l;continue}else{m=20;break}}q=C+140|0;r=C+116|0;p=0;while(1){if((c[q>>2]|0)>>>0>=(c[r>>2]|0)>>>0)break;m=0;while(1){if((m|0)==5)break;o=l+(B(m+p|0,s)|0)|0;c[w+(m<<2)>>2]=o;m=m+1|0}i=0;n=I(25,C|0,w|0,5)|0;m=i;i=0;if((m|0)!=0&(j|0)!=0){o=YO(c[m>>2]|0,D|0,A|0)|0;if(!o)Qa(m|0,j|0);E(j|0)}else o=-1;m=F()|0;if((o|0)==1)continue a;p=n+p|0}i=0;G(66,C|0)|0;m=i;i=0;if((m|0)!=0&(j|0)!=0){n=YO(c[m>>2]|0,D|0,A|0)|0;if(!n)Qa(m|0,j|0);E(j|0)}else n=-1;m=F()|0;if((n|0)==1)continue;i=0;J(113,C|0);m=i;i=0;if((m|0)!=0&(j|0)!=0){n=YO(c[m>>2]|0,D|0,A|0)|0;if(!n)Qa(m|0,j|0);E(j|0)}else n=-1;m=F()|0;if((n|0)!=1){m=30;break}}b:do if((m|0)==7)l=0;else if((m|0)==14)l=0;else if((m|0)==20)l=0;else if((m|0)==30){if(e|0)c[e>>2]=c[u>>2];if(g|0)c[g>>2]=c[v>>2];if(h|0)c[h>>2]=c[t>>2];if(k){m=a[C+290>>0]|0;switch(m<<24>>24){case 1:{m=b[C+292>>1]|0;if(m<<16>>16==(b[C+294>>1]|0)){f[k>>2]=+(m&65535);break b}break}case 2:{m=b[C+292>>1]|0;if(m<<16>>16==(b[C+294>>1]|0)){f[k>>2]=+(m&65535)*2.5399999618530273;break b}break}default:if(((m&255)>2?(b[C+292>>1]|0)==0:0)?(b[C+294>>1]|0)==0:0){f[k>>2]=+(m&255);break b}}f[k>>2]=0.0}}while(0);GO(D|0);zb=N;return l|0}function hf(a){a=a|0;Qa((c[a>>2]|0)+132|0,1)}function jf(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;o=zb;zb=zb+1088|0;m=o+1072|0;l=o+1064|0;n=o+1056|0;g=o+1048|0;f=o+1040|0;e=o+1032|0;h=o+1024|0;i=o+768|0;j=o+512|0;k=o;c[h>>2]=a;c[h+4>>2]=b;Hx(k,22627,h)|0;k=rz(k,21853)|0;if(!k)a=0;else{a=FO(8)|0;if(!a){Ue(0,3,41858,e);Ea(1)}a:do if(kf(i,k)|0){h=a+4|0;c[f>>2]=h;if((Cz(i,21887,f)|0)!=1){GO(a);a=0;break}b=c[h>>2]|0;if((b|0)<1){GO(a);a=0;break}f=FO(b*56|0)|0;c[a>>2]=f;if(!f){Ue(0,3,41858,g);Ea(1)}f=0;b:while(1){if((f|0)>=(b|0))break a;if(!(kf(i,k)|0)){b=15;break}c[n>>2]=j;if((Cz(i,21914,n)|0)!=1){b=17;break}g=sd(d,j)|0;e=c[a>>2]|0;c[e+(f*56|0)+4>>2]=g;if((g|0)<0){b=19;break}if(!(kf(i,k)|0)){b=21;break}c[l>>2]=(c[a>>2]|0)+(f*56|0);if((Cz(i,21815,l)|0)!=1){b=24;break}b=0;while(1){if(b>>>0>=3)break;if(!(kf(i,k)|0)){b=27;break b}g=c[a>>2]|0;c[m>>2]=g+(f*56|0)+8+(b<<4);c[m+4>>2]=g+(f*56|0)+8+(b<<4)+4;c[m+8>>2]=g+(f*56|0)+8+(b<<4)+8;c[m+12>>2]=g+(f*56|0)+8+(b<<4)+12;if((Cz(i,22080,m)|0)==4)b=b+1|0;else{b=29;break b}}f=f+1|0;b=c[h>>2]|0}if((b|0)==15){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==17){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==19){GO(e);GO(a);a=0;break}else if((b|0)==21){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==24){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==27){GO(c[a>>2]|0);GO(a);a=0;break}else if((b|0)==29){GO(c[a>>2]|0);GO(a);a=0;break}}else{GO(a);a=0}while(0);xz(k)|0}zb=o;return a|0}function kf(b,c){b=b|0;c=c|0;var d=0;a:while(1){d=Az(b,256,c)|0;if(!d){d=0;break}switch(a[b>>0]|0){case 35:case 10:break;default:break a}}return d|0}function lf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=zb;zb=zb+640|0;s=v+624|0;r=v+616|0;q=v+608|0;p=v+600|0;o=v+592|0;n=v+584|0;m=v+576|0;l=v+568|0;k=v+560|0;j=v+552|0;g=v+544|0;f=v+536|0;e=v+528|0;d=v+520|0;i=v+512|0;t=v;c[i>>2]=a;c[i+4>>2]=b;Hx(t,22627,i)|0;t=rz(t,22236)|0;if(!t){c[d>>2]=a;Ue(0,3,21818,d);b=0}else{b=FO(8)|0;if(!b){Ue(0,3,41858,e);Ea(1)}a=b+4|0;a:do if((gA(a,4,1,t)|0)==1){h=c[a>>2]|0;i=FO(h*20|0)|0;c[b>>2]=i;if(!i){Ue(0,3,41858,g);Ea(1)}g=0;b:while(1){if((g|0)>=(h|0))break a;if((gA(i+(g*20|0)+8|0,4,1,t)|0)!=1){u=12;break}if((gA(i+(g*20|0)+12|0,4,1,t)|0)!=1){u=15;break}if((gA(i+(g*20|0)+16|0,4,1,t)|0)!=1){u=17;break}e=i+(g*20|0)+4|0;if((gA(e,4,1,t)|0)!=1){u=19;break}a=c[e>>2]|0;d=FO(a*20|0)|0;f=i+(g*20|0)|0;c[f>>2]=d;if(!d){u=22;break}d=0;while(1){if((d|0)>=(a|0))break;if((gA((c[f>>2]|0)+(d*20|0)|0,4,1,t)|0)!=1){u=25;break b}if((gA((c[f>>2]|0)+(d*20|0)+4|0,4,1,t)|0)!=1){u=27;break b}if((gA((c[f>>2]|0)+(d*20|0)+8|0,4,1,t)|0)!=1){u=29;break b}if((gA((c[f>>2]|0)+(d*20|0)+12|0,4,1,t)|0)!=1){u=31;break b}if((gA((c[f>>2]|0)+(d*20|0)+16|0,4,1,t)|0)!=1){u=34;break b}d=d+1|0;a=c[e>>2]|0}g=g+1|0}switch(u|0){case 12:{Ue(0,3,21839,j);break}case 15:{Ue(0,3,21839,k);break}case 17:{Ue(0,3,21839,l);break}case 19:{Ue(0,3,21839,m);break}case 22:{Ue(0,3,41858,n);Ea(1);break}case 25:{Ue(0,3,21839,o);break}case 27:{Ue(0,3,21839,p);break}case 29:{Ue(0,3,21839,q);break}case 31:{Ue(0,3,21839,r);break}case 34:{Ue(0,3,21839,s);break}}a=0;while(1){if((a|0)==(g|0))break;GO(c[i+(a*20|0)>>2]|0);a=a+1|0}GO(i);u=39}else{Ue(0,3,21839,f);u=39}while(0);if((u|0)==39){GO(b);b=0}xz(t)|0}zb=v;return b|0}function mf(a){a=a|0;var b=0,d=0,e=0;b=c[a>>2]|0;if(!b)b=-1;else{e=0;while(1){d=c[b>>2]|0;if((e|0)>=(c[b+4>>2]|0))break;GO(c[d+(e*20|0)>>2]|0);e=e+1|0;b=c[a>>2]|0}GO(d);GO(c[a>>2]|0);c[a>>2]=0;b=0}return b|0}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(!a)of(0,b,c,d)|0;else of(a,b,c,d)|0;return 0}function of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0;m=zb;zb=zb+48|0;e=m;if(!a){t=+f[c>>2];w=+f[c+4>>2];s=+f[b>>2];o=t*s;v=+f[b+4>>2];n=w*v;p=+f[b+12>>2];i=+f[b+16>>2];q=t*i;g=+f[b+20>>2];k=w*g;r=+f[b+28>>2];z=+f[b+32>>2];x=t*z;h=+f[b+36>>2];j=w*h;y=+f[b+44>>2];l=y+(x+j);t=t+10.0;j=y+(t*z+j);w=w+10.0;h=y+(x+w*h);g=(r+(q+w*g))/h;h=(p+(o+w*v))/h;i=(r+(t*i+k))/j;j=(p+(t*s+n))/j;k=(r+(q+k))/l;l=(p+(o+n))/l}else{vd(a+8|0,b,e)|0;s=+f[c>>2];q=+f[c+4>>2];t=+f[e>>2];y=s*t;r=+f[e+4>>2];z=q*r;x=+f[e+12>>2];i=+f[e+16>>2];w=s*i;g=+f[e+20>>2];k=q*g;v=+f[e+28>>2];n=+f[e+32>>2];p=s*n;h=+f[e+36>>2];j=q*h;o=+f[e+44>>2];l=o+(p+j);s=s+10.0;j=o+(s*n+j);q=q+10.0;h=o+(p+q*h);g=(v+(w+q*g))/h;h=(x+(y+q*r))/h;i=(v+(s*i+k))/j;j=(x+(s*t+z))/j;k=(v+(w+k))/l;l=(x+(y+z))/l}x=j-l;y=i-k;y=x*x+y*y;x=h-l;z=g-k;z=x*x+z*z;e=y>2]=x;z=+u(+(e?y:z))*2.5399999618530273;f[d+4>>2]=z;zb=m;return 0}function pf(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=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.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0,z=0,A=0,B=0.0,C=0,D=0,E=0,F=0,G=0;G=zb;zb=zb+32|0;l=G+20|0;j=G+16|0;i=G+12|0;k=G+8|0;C=G+4|0;D=G;a:do if((d|0)<0)d=-1;else switch(d|0){case 0:{q=+((g|0)/8|0|0);r=+((g*7|0)/8|0|0);s=+((h|0)/8|0|0);t=+((h*7|0)/8|0|0);p=+((g|0)/2|0|0);o=+((h|0)/2|0|0);m=0.0;i=0;d=-1;b:while(1){switch(c[a+(i*24|0)+12>>2]|0){case -1:break b;case 0:{n=+f[a+(i*24|0)+16>>2];if((!(nr)?(u=+f[a+(i*24|0)+20>>2],!(ut)):0)?(B=n-p,v=u-o,v=B*B+v*v,v>m):0){m=v;d=i}break}default:{}}i=i+1|0}if((d|0)==-1){d=-1;break a}c[a+(d*24|0)+12>>2]=1;break a}case 1:{r=+((g|0)/8|0|0);p=+((g*7|0)/8|0|0);q=+((h|0)/8|0|0);o=+((h*7|0)/8|0|0);g=e+4|0;d=-1;i=0;m=0.0;c:while(1){switch(c[a+(i*24|0)+12>>2]|0){case -1:break c;case 0:{n=+f[a+(i*24|0)+16>>2];if((!(np)?(s=+f[a+(i*24|0)+20>>2],!(so)):0)?(B=n-+f[e>>2],t=s-+f[g>>2],t=B*B+t*t,t>m):0){d=i;m=t}break}default:{}}i=i+1|0}if((d|0)==-1){d=-1;break a}c[a+(d*24|0)+12>>2]=1;break a}case 2:{r=+((g|0)/8|0|0);p=+((g*7|0)/8|0|0);q=+((h|0)/8|0|0);o=+((h*7|0)/8|0|0);g=e+12|0;j=e+4|0;k=e+8|0;d=-1;i=0;m=0.0;d:while(1){switch(c[a+(i*24|0)+12>>2]|0){case -1:break d;case 0:{n=+f[a+(i*24|0)+16>>2];if((!(np)?(x=+f[a+(i*24|0)+20>>2],!(xo)):0)?(w=+f[e>>2],B=+f[j>>2],w=(n-w)*(+f[g>>2]-B)-(x-B)*(+f[k>>2]-w),w=w*w,w>m):0){d=i;m=w}break}default:{}}i=i+1|0}if((d|0)==-1){d=-1;break a}c[a+(d*24|0)+12>>2]=1;break a}case 3:{qf(e,e+8|0,l,j);qf(e,e+16|0,i,k);B=+((g|0)/8|0|0);w=+((g*7|0)/8|0|0);x=+((h|0)/8|0|0);v=+((h*7|0)/8|0|0);z=e+24|0;A=e+28|0;u=+f[i>>2];t=+f[j>>2];m=u*t;s=+f[k>>2];r=+f[l>>2];q=s*r;h=!(m-q>=0.0);y=!(q-m>=0.0);l=h?2:1;b=h?1:2;d=-1;k=0;m=0.0;e:while(1){f:do switch(c[a+(k*24|0)+12>>2]|0){case -1:break e;case 0:{n=+f[a+(k*24|0)+16>>2];if(!(nw)?(E=a+(k*24|0)+20|0,q=+f[E>>2],!(qv)):0){f[z>>2]=n;c[A>>2]=c[E>>2];qf(e,z,C,D);q=+f[C>>2];if(!h){n=+f[D>>2];if(!(t*q-r*n>=0.0))F=39;else{g=!(s*q-u*n>=0.0);i=g?2:3;g=g?3:2;j=1}}else{n=+f[D>>2];F=39}do if((F|0)==39){F=0;o=s*q;p=u*n;if(y|!(o-p>=0.0))if(p-o>=0.0?!(r*n-t*q>=0.0):1)break f;else{i=b;g=l;j=3;break}else{g=!(t*q-r*n>=0.0);i=g?1:3;g=g?3:1;j=2;break}}while(0);n=+rf(e,j,g,i);if(n>m){d=k;m=n}}break}default:{}}while(0);k=k+1|0}if((d|0)!=-1)c[a+(d*24|0)+12>>2]=1;break a}default:{l=0;g:while(1){d=b+(l*24|0)+12|0;h:do switch(c[d>>2]|0){case -1:break g;case 0:{c[d>>2]=1;i=b+(l*24|0)|0;g=b+(l*24|0)+4|0;j=b+(l*24|0)+8|0;d=0;while(1){k=a+(d*24|0)+12|0;switch(c[k>>2]|0){case -1:break h;case 0:{if(((c[i>>2]|0)==(c[a+(d*24|0)>>2]|0)?(c[g>>2]|0)==(c[a+(d*24|0)+4>>2]|0):0)?(c[j>>2]|0)==(c[a+(d*24|0)+8>>2]|0):0){F=55;break g}break}default:{}}d=d+1|0}}default:{}}while(0);l=l+1|0}if((F|0)==55){c[k>>2]=1;break a}c[b+12>>2]=-1;d=c[13865]|0;if(!d){_z(Ta(0)|0);d=c[13865]|0}d=d+1|0;c[13865]=(d|0)==128?0:d;d=0;i=0;i:while(1){switch(c[a+(i*24|0)+12>>2]|0){case -1:break i;case 0:{d=d+1|0;break}default:{}}i=i+1|0}if(!d){d=-1;break a}k=~~(+(d|0)*+($z()|0)*4.656612873077393e-10);d=0;i=0;j:while(1){g=a+(d*24|0)+12|0;j=c[g>>2]|0;switch(j|0){case -1:{d=j;break a}case 0:{if((i|0)==(k|0))break j;i=i+1|0;break}default:{}}d=d+1|0}c[g>>2]=1;break a}}while(0);zb=G;return d|0}function qf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0.0;g=+f[b>>2]-+f[a>>2];e=+f[b+4>>2]-+f[a+4>>2];g=+u(+(g*g+e*e));if(!(g==0.0)){f[c>>2]=e/g;f[d>>2]=(+f[b>>2]-+f[a>>2])/g}return}function rf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0;c=a+(c<<3)|0;e=+sf(a,a+(b<<3)|0,c);return +(e+ +sf(a,c,a+(d<<3)|0))}function sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;d=+f[a>>2];e=+f[a+4>>2];d=((+f[b>>2]-d)*(+f[c+4>>2]-e)-(+f[b+4>>2]-e)*(+f[c>>2]-d))*.5;return +(d<0.0?-d:d)}function tf(b,d,e){b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;M=zb;zb=zb+1248|0;L=M+1232|0;K=M+1224|0;J=M+1208|0;I=M+1200|0;H=M+1184|0;G=M+1176|0;F=M+1160|0;E=M+1152|0;D=M+1144|0;C=M+1136|0;B=M+1128|0;A=M+1120|0;z=M+1112|0;y=M+1104|0;x=M+1096|0;w=M+1088|0;v=M+1080|0;u=M+1072|0;p=M+1064|0;l=M+1056|0;k=M+1048|0;j=M+1040|0;i=M+1032|0;h=M+1024|0;r=M+768|0;s=M+512|0;t=M+1236|0;g=M;do if(((d|0)!=0?(a[d>>0]|0)!=0:0)?(Fx(d,41063)|0)!=0:0){c[h>>2]=b;c[h+4>>2]=d;Hx(g,22627,h)|0;d=rz(g,21853)|0;if(!d){c[i>>2]=b;Ue(0,3,21855,i);q=ox()|0;q=By(c[q>>2]|0)|0;c[j>>2]=57671;c[j+4>>2]=q;Ue(0,3,21881,j);q=0;break}else{n=d;d=1;m=8;break}}else m=4;while(0);if((m|0)==4){Wz(s,b,255)|0;a[s+255>>0]=0;n=0;d=0;m=8}do if((m|0)==8){o=FO(1140)|0;if(!o){Ue(0,3,41858,k);Ea(1)}k=(d|0)!=0;if(k){if(!(uf(r,n)|0)){xz(n)|0;GO(o);q=0;break}c[l>>2]=t;if((Cz(r,21887,l)|0)!=1){xz(n)|0;GO(o);q=0;break}d=c[t>>2]|0;if((d|0)<1){xz(n)|0;GO(o);q=0;break}}else d=1;c[o+4>>2]=d;c[o+152>>2]=0;j=FO(d*112|0)|0;c[o>>2]=j;if(!j){Ue(0,3,41858,p);Ea(1)}i=(e|0)==0;g=0;a:while(1){c[t>>2]=g;if((g|0)>=(d|0)){m=57;break}c[u>>2]=g+1;Ue(0,1,21890,u);if(k){if(!(uf(r,n)|0)){m=57;break}c[v>>2]=s;if((Cz(r,21914,v)|0)!=1){m=57;break}If(s)|0}Ue(0,1,21917,w);p=cf(s)|0;c[j+((c[t>>2]|0)*112|0)>>2]=p;if(!p){m=26;break}Ue(0,1,21966,y);Ue(0,1,21976,z);p=lf(s,41063)|0;c[j+((c[t>>2]|0)*112|0)+4>>2]=p;if(!p){m=29;break}Ue(0,1,21966,B);if(i)c[j+((c[t>>2]|0)*112|0)+8>>2]=0;else{Ue(0,1,22027,C);If(s)|0;p=jf(s,22046,e)|0;c[j+((c[t>>2]|0)*112|0)+8>>2]=p;if(!p){m=33;break}Ue(0,1,21966,E)}b:do if(k){if(!(uf(r,n)|0)){m=57;break a}p=c[t>>2]|0;c[F>>2]=j+(p*112|0)+12;c[F+4>>2]=j+(p*112|0)+16;c[F+8>>2]=j+(p*112|0)+20;c[F+12>>2]=j+(p*112|0)+24;if((Cz(r,22080,F)|0)!=4){m=40;break a}if(!(uf(r,n)|0)){m=57;break a}p=c[t>>2]|0;c[H>>2]=j+(p*112|0)+28;c[H+4>>2]=j+(p*112|0)+32;c[H+8>>2]=j+(p*112|0)+36;c[H+12>>2]=j+(p*112|0)+40;if((Cz(r,22080,H)|0)!=4){m=43;break a}if(!(uf(r,n)|0)){m=57;break a}p=c[t>>2]|0;c[J>>2]=j+(p*112|0)+44;c[J+4>>2]=j+(p*112|0)+48;c[J+8>>2]=j+(p*112|0)+52;c[J+12>>2]=j+(p*112|0)+56;if((Cz(r,22080,J)|0)!=4){m=47;break a}g=c[t>>2]|0}else{g=c[t>>2]|0;b=0;while(1){if((b|0)==3)break b;h=0;while(1){if((h|0)==4)break;f[j+(g*112|0)+12+(b<<4)+(h<<2)>>2]=(b|0)==(h|0)?1.0:0.0;h=h+1|0}b=b+1|0}}while(0);yd(j+(g*112|0)+12|0,j+(g*112|0)+60|0)|0;Hf(s,256,22128)|0;g=FO(256)|0;c[j+((c[t>>2]|0)*112|0)+108>>2]=g;if(!g){m=55;break}Wz(g,s,256)|0;g=(c[t>>2]|0)+1|0}if((m|0)==26){c[x>>2]=s;Ue(0,3,21935,x);GO(j);GO(o);if(!n){q=0;break}xz(n)|0;q=0;break}else if((m|0)==29){c[A>>2]=s;Ue(0,3,21996,A);ef(j+((c[t>>2]|0)*112|0)|0)|0;GO(j);GO(o);if(!n){q=0;break}xz(n)|0;q=0;break}else if((m|0)==33){c[D>>2]=s;Ue(0,3,22050,D);mf(j+((c[t>>2]|0)*112|0)+4|0)|0;ef(j+((c[t>>2]|0)*112|0)|0)|0;GO(j);GO(o);if(!n){q=0;break}xz(n)|0;q=0;break}else if((m|0)==40){Ue(0,3,22092,G);xz(n)|0;Ea(0)}else if((m|0)==43){Ue(0,3,22092,I);xz(n)|0;Ea(0)}else if((m|0)==47){Ue(0,3,22092,K);xz(n)|0;Ea(0)}else if((m|0)==55){Ue(0,3,41858,L);Ea(1)}else if((m|0)==57){if(n|0)xz(n)|0;if((c[t>>2]|0)>=(d|0)){q=o;break}Ea(0)}}while(0);zb=M;return q|0}function uf(b,c){b=b|0;c=c|0;var d=0;a:while(1){d=Az(b,256,c)|0;if(!d){d=0;break}switch(a[b>>0]|0){case 35:case 10:break;default:break a}}return d|0}function vf(a,b){a=a|0;b=b|0;var d=0,e=0;if(!a)d=-1;else{c[a+152>>2]=1;d=0;while(1){if((d|0)==3)break;e=0;while(1){if((e|0)==4)break;c[a+8+(d<<4)+(e<<2)>>2]=c[b+(d<<4)+(e<<2)>>2];e=e+1|0}d=d+1|0}c[a+168>>2]=-1;d=0}return d|0}function wf(b,e,g,h,i,j,k,l,m,n,o,p){b=b|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;var q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0;X=zb;zb=zb+80|0;F=X+8|0;E=X;M=X+72|0;P=X+60|0;R=X+48|0;D=X+36|0;S=X+32|0;T=X+24|0;U=X+16|0;V=j+16|0;A=c[V>>2]|0;W=j+20|0;x=c[W>>2]|0;y=g+-1|0;z=h+-1|0;w=0;while(1){if(w>>>0>=3)break;q=c[m+(w<<3)>>2]|0;if((q|0)<0)break;u=q&-4|2;q=((c[m+(w<<3)+4>>2]|0)/4|0)<<2|2;v=u-k|0;v=(v|0)>0?v:0;u=u+k|0;u=(u|0)<(g|0)?u:y;t=q-l|0;q=q+l|0;q=(q|0)<(h|0)?q:z;t=(t|0)>0?t:0;while(1){if((t|0)>(q|0))break;r=v;s=e+((B(t,g)|0)+v)|0;while(1){if((r|0)>(u|0))break;a[s>>0]=0;r=r+1|0;s=s+1|0}t=t+1|0}w=w+1|0}c[M>>2]=0;C=x<<1;z=A<<1;K=j+12|0;L=j+8|0;r=1;y=0;while(1){if(y>>>0>=3){J=28;break}q=c[m+(y<<3)>>2]|0;if((q|0)<0){J=14;break}x=q&-4|2;u=((c[m+(y<<3)+4>>2]|0)/4|0)<<2|2;v=u+l|0;w=x-k|0;x=x+k|0;q=r;u=u-l|0;a:while(1){if((u|0)>(v|0))break;b:do if((u|0)>=(z|0)){if((u+C|0)>=(h|0))break a;t=B(u,g)|0;s=w;while(1){if((s|0)>(x|0))break b;if((s|0)>=(c[L>>2]<<1|0)){if(((c[K>>2]<<1)+s|0)>=(g|0))break b;r=e+(s+t)|0;if(!(a[r>>0]|0)){a[r>>0]=1;xf(b,g,i,j,s,u,S);yf(s,u,c[S>>2]|0,M,P,R,D);q=0}}s=s+4|0}}while(0);u=u+4|0}r=q;y=y+1|0}if((J|0)==14)if(!r)J=28;else q=-1;if((J|0)==28){I=j+4|0;q=B((c[j>>2]<<3)+32|0,(c[I>>2]<<1)+8|0)|0;H=FO(q)|0;if(!H){Ue(0,3,41858,E);Ea(1)}G=FO(q)|0;if(!G){Ue(0,3,41858,F);Ea(1)}F=j+36|0;r=0;E=0;q=-1;while(1){if((E|0)>=(c[M>>2]|0))break;u=c[j>>2]|0;s=c[I>>2]|0;c:do if((c[F>>2]|0)==(B(s,u)|0)){switch(i|0){case 5:case 12:case 13:case 14:break;default:{J=40;break c}}l=R+(E<<2)|0;k=c[l>>2]|0;m=k+-3-(c[V>>2]<<1)|0;if((((m|0)>=0?(k+3+(c[W>>2]<<1)|0)<(h|0):0)?(N=P+(E<<2)|0,O=c[N>>2]|0,Q=O+-3-(c[L>>2]<<1)|0,(Q|0)>=0):0)?(O+3+(c[K>>2]<<1)|0)<(g|0):0){k=(s<<1)+6|0;t=(u<<2)+16|0;v=G;w=H;s=0;while(1){if((s|0)>=(t|0))break;c[w>>2]=0;c[v>>2]=0;v=v+4|0;w=w+4|0;s=s+1|0}D=(u<<1)+6|0;e=b+(Q+(B(m,g)|0))|0;z=G;A=H;s=w;C=0;while(1){if((C|0)>=(k|0))break;y=s+8|0;u=v;t=0;while(1){if((t|0)==2)break;c[s>>2]=0;c[u>>2]=0;c[T+(t<<2)>>2]=0;c[U+(t<<2)>>2]=0;u=u+4|0;s=s+4|0;t=t+1|0}x=e;u=z+8|0;w=A+8|0;v=v+8|0;s=y;t=0;while(1){if((t|0)>=(D|0))break;y=t&1;A=T+(y<<2)|0;z=(c[A>>2]|0)+(d[x>>0]|0)|0;c[A>>2]=z;A=d[x>>0]|0;A=B(A,A)|0;y=U+(y<<2)|0;A=A+(c[y>>2]|0)|0;c[y>>2]=A;c[s>>2]=(c[w>>2]|0)+z;c[v>>2]=(c[u>>2]|0)+A;x=x+1|0;u=u+4|0;w=w+4|0;v=v+4|0;s=s+4|0;t=t+1|0}e=e+g|0;z=u;A=w;C=C+1|0}u=0;while(1){if((u|0)==7)break c;v=u+m|0;w=u+2|0;x=u+-3|0;t=0;while(1){if((t|0)==7)break;zf(b,g,t+Q|0,v,j,H,G,t+2|0,w,S);s=c[S>>2]|0;if((s|0)>(r|0)){c[n>>2]=t+-3+(c[N>>2]|0);c[o>>2]=x+(c[l>>2]|0);f[p>>2]=+(s|0)/1.0e4;q=0;r=s}t=t+1|0}u=u+1|0}}else J=40}else J=40;while(0);d:do if((J|0)==40){J=0;v=c[R+(E<<2)>>2]|0;w=v+3|0;x=P+(E<<2)|0;v=v+-3|0;while(1){if((v|0)>(w|0))break d;e:do if((v|0)>=(c[V>>2]<<1|0)){if(((c[W>>2]<<1)+v|0)>=(h|0))break d;t=c[x>>2]|0;u=t+3|0;t=t+-3|0;while(1){if((t|0)>(u|0))break e;if((t|0)>=(c[L>>2]<<1|0)){if(((c[K>>2]<<1)+t|0)>=(g|0))break e;xf(b,g,i,j,t,v,S);s=c[S>>2]|0;if((s|0)>(r|0)){c[n>>2]=t;c[o>>2]=v;f[p>>2]=+(s|0)/1.0e4;r=s;q=0}}t=t+1|0}}while(0);v=v+1|0}}while(0);E=E+1|0}GO(H);GO(G)}zb=X;return q|0}function xf(a,e,f,g,h,i,j){a=a|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,p=0,q=0,r=0,s=0,t=0,v=0,w=0;l=c[g+24>>2]|0;a:do switch(f|0){case 5:case 12:case 13:case 14:{s=0-(c[g+8>>2]|0)|0;t=c[g+12>>2]|0;q=0-(c[g+16>>2]|0)|0;v=c[g+20>>2]|0;w=e<<1;m=l;p=a+((s<<1)+h+(B((q<<1)+i|0,e)|0))|0;l=0;f=0;k=0;while(1){if((q|0)>(v|0)){m=l;break a}r=s;n=m;o=p;while(1){if((r|0)>(t|0))break;m=b[n>>1]|0;if(m<<16>>16!=4096){i=d[o>>0]|0;l=l+i|0;f=(B(i,i)|0)+f|0;k=(B(i,m&65535)|0)+k|0}r=r+1|0;n=n+2|0;o=o+2|0}m=n;p=p+w|0;q=q+1|0}}default:{if(f>>>0<2){s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;r=0-(c[g+16>>2]|0)|0;m=0;f=0;k=0;while(1){if((r|0)>(s|0))break a;w=(B((r<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;q=c[v>>2]|0;o=0-p|0;p=a+((w-(p<<1)|0)*3|0)|0;while(1){if((o|0)>(q|0))break;n=b[l>>1]|0;if(n<<16>>16!=4096){w=(((d[p+1>>0]|0)+(d[p>>0]|0)+(d[p+2>>0]|0)|0)>>>0)/3|0;m=w+m|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}o=o+1|0;p=p+6|0;l=l+2|0}r=r+1|0}}if((f|1|0)==3){s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;r=0-(c[g+16>>2]|0)|0;m=0;f=0;k=0;while(1){if((r|0)>(s|0))break a;w=(B((r<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;q=c[v>>2]|0;o=0-p|0;p=a+(w-(p<<1)<<2)|0;while(1){if((o|0)>(q|0))break;n=b[l>>1]|0;if(n<<16>>16!=4096){w=(((d[p+1>>0]|0)+(d[p>>0]|0)+(d[p+2>>0]|0)|0)>>>0)/3|0;m=w+m|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}o=o+1|0;p=p+8|0;l=l+2|0}r=r+1|0}}if((f|2|0)==6){s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;r=0-(c[g+16>>2]|0)|0;m=l;l=0;f=0;k=0;while(1){if((r|0)>(s|0)){m=l;break a}w=(B((r<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;q=c[v>>2]|0;o=0-p|0;p=a+(w-(p<<1)<<2)|0;while(1){if((o|0)>(q|0))break;n=b[m>>1]|0;if(n<<16>>16!=4096){w=(((d[p+2>>0]|0)+(d[p+1>>0]|0)+(d[p+3>>0]|0)|0)>>>0)/3|0;l=w+l|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}o=o+1|0;p=p+8|0;m=m+2|0}r=r+1|0}}switch(f|0){case 7:{s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;m=0;f=0;k=0;r=0-(c[g+16>>2]|0)|0;while(1){if((r|0)>(s|0))break a;w=(B((r<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;q=c[v>>2]|0;o=0-p|0;p=a+(w-(p<<1)<<1)|0;while(1){if((o|0)>(q|0))break;n=b[l>>1]|0;if(n<<16>>16!=4096){w=d[p+1>>0]|0;m=m+w|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}o=o+1|0;p=p+4|0;l=l+2|0}r=r+1|0}}case 8:{s=c[g+20>>2]|0;t=g+8|0;v=g+12|0;m=0;f=0;k=0;q=0-(c[g+16>>2]|0)|0;while(1){if((q|0)>(s|0))break a;w=(B((q<<1)+i|0,e)|0)+h|0;p=c[t>>2]|0;r=c[v>>2]|0;o=0-p|0;p=a+(w-(p<<1)<<1)|0;while(1){if((o|0)>(r|0))break;n=b[l>>1]|0;if(n<<16>>16!=4096){w=d[p>>0]|0;m=m+w|0;f=(B(w,w)|0)+f|0;k=(B(w,n&65535)|0)+k|0}l=l+2|0;o=o+1|0;p=p+4|0}q=q+1|0}}default:{m=0;f=0;k=0;break a}}}}while(0);l=c[g+36>>2]|0;f=f-((B(m,m)|0)/(l|0)|0)|0;if(!f)f=0;else{i=(k-((B(c[g+32>>2]|0,m)|0)/(l|0)|0)|0)*100|0;f=(((i|0)/(c[g+28>>2]|0)|0)*100|0)/(~~+u(+(+(f|0)))|0)|0}c[j>>2]=f;return}function yf(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0;i=c[e>>2]|0;do if(!i){c[f>>2]=a;c[g>>2]=b;c[h>>2]=d;c[e>>2]=1}else{j=0;while(1){if((j|0)>=(i|0))break;if((c[h+(j<<2)>>2]|0)<(d|0))break;j=j+1|0}if((j|0)==(i|0)){if(i>>>0>=3)break;c[f+(i<<2)>>2]=a;c[g+(i<<2)>>2]=b;c[h+(i<<2)>>2]=d;c[e>>2]=(c[e>>2]|0)+1;break}if((i|0)==3)i=2;else c[e>>2]=i+1;while(1){if((i|0)<=(j|0))break;e=i+-1|0;c[f+(i<<2)>>2]=c[f+(e<<2)>>2];c[g+(i<<2)>>2]=c[g+(e<<2)>>2];c[h+(i<<2)>>2]=c[h+(e<<2)>>2];i=e}c[f+(i<<2)>>2]=a;c[g+(i<<2)>>2]=b;c[h+(i<<2)>>2]=d}while(0);return}function zf(a,b,f,g,h,i,j,k,l,m){a=a|0;b=b|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0;o=a+((B(g,b)|0)+f)|0;r=c[h+4>>2]|0;p=b<<1;q=c[h>>2]|0;b=0;a=c[h+24>>2]|0;s=0;while(1){if((b|0)>=(r|0))break;n=0;f=o;g=s;while(1){if((n|0)>=(q|0))break;s=(B(e[a>>1]|0,d[f>>0]|0)|0)+g|0;n=n+1|0;a=a+2|0;f=f+2|0;g=s}b=b+1|0;o=o+p|0;s=g}a=q<<1;q=a+8|0;g=k+-2|0;a=g+a|0;f=l+-2|0;l=B(q,f+(r<<1)|0)|0;f=B(q,f)|0;k=l+a|0;r=f+g|0;l=l+g|0;a=f+a|0;f=(c[i+(r<<2)>>2]|0)+(c[i+(k<<2)>>2]|0)-(c[i+(l<<2)>>2]|0)-(c[i+(a<<2)>>2]|0)|0;g=c[h+36>>2]|0;a=(c[j+(r<<2)>>2]|0)+(c[j+(k<<2)>>2]|0)-(c[j+(l<<2)>>2]|0)-(c[j+(a<<2)>>2]|0)-((B(f,f)|0)/(g|0)|0)|0;if(!a)a=0;else{j=(s-((B(c[h+32>>2]|0,f)|0)/(g|0)|0)|0)*100|0;a=(((j|0)/(c[h+28>>2]|0)|0)*100|0)/(~~+u(+(+(a|0)))|0)|0}c[m>>2]=a;return}function Af(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=FO(40)|0;if(!d){Ue(0,3,41858,e);Ea(1)}c[d+16>>2]=a;c[d+8>>2]=a;c[d+20>>2]=b;c[d+12>>2]=b;b=a+1+b|0;c[d>>2]=b;c[d+4>>2]=b;b=FO(B(b<<1,b)|0)|0;c[d+24>>2]=b;if(!b){Ue(0,3,41858,e+8|0);Ea(1)}else{zb=e;return d|0}return 0}function Bf(d,e,g,i,j,k){d=d|0;e=e|0;g=g|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0;D=zb;zb=zb+80|0;l=D+60|0;m=D+56|0;z=D+52|0;A=D+48|0;x=D;C=D+64|0;a:do if(!d){x=c[i>>2]|0;y=c[x+(j*20|0)+8>>2]|0;c[l>>2]=y;p=+f[x+(j*20|0)+12>>2];f[m>>2]=p;if((Ef(0,e,(c[h>>2]=y,+f[h>>2]),p,z,A)|0)<0)d=-1;else{s=~~(+f[z>>2]+.5);l=c[k+16>>2]|0;t=k+20|0;v=k+8|0;w=k+12|0;r=i+8|0;q=0-l|0;i=~~(+f[A>>2]+.5)-(l<<1)|0;l=0;j=0;d=0;m=c[k+24>>2]|0;while(1){if((q|0)>(c[t>>2]|0)){n=25;break a}o=c[v>>2]|0;p=+(i|0);n=0-o|0;o=s-(o<<1)|0;while(1){if((n|0)>(c[w>>2]|0))break;if((Gf(0,e,c[(c[g>>2]|0)+(c[r>>2]<<2)>>2]|0,+(o|0),p,C)|0)<0)b[m>>1]=4096;else{A=a[C>>0]|0;b[m>>1]=A&255;A=A&255;l=l+1|0;j=(B(A,A)|0)+j|0;d=d+A|0}n=n+1|0;o=o+2|0;m=m+2|0}q=q+1|0;i=i+2|0}}}else{vd(d+8|0,e,x)|0;w=c[i>>2]|0;e=c[w+(j*20|0)+8>>2]|0;c[l>>2]=e;p=+f[w+(j*20|0)+12>>2];f[m>>2]=p;if((Ef(0,x,(c[h>>2]=e,+f[h>>2]),p,l,m)|0)>=0?(y=d+184|0,(oe(y,+f[l>>2],+f[m>>2],z,A)|0)>=0):0){s=~~(+f[z>>2]+.5);o=c[k+16>>2]|0;t=k+20|0;v=k+8|0;w=k+12|0;r=i+8|0;l=0;n=0-o|0;o=~~(+f[A>>2]+.5)-(o<<1)|0;j=0;d=0;m=c[k+24>>2]|0;while(1){if((n|0)>(c[t>>2]|0)){n=25;break a}q=c[v>>2]|0;p=+(o|0);i=0-q|0;q=s-(q<<1)|0;while(1){if((i|0)>(c[w>>2]|0))break;do if((pe(y,+(q|0),p,z,A)|0)>=0)if((Gf(0,x,c[(c[g>>2]|0)+(c[r>>2]<<2)>>2]|0,+f[z>>2],+f[A>>2],C)|0)<0){b[m>>1]=4096;break}else{e=a[C>>0]|0;b[m>>1]=e&255;e=e&255;l=l+1|0;j=(B(e,e)|0)+j|0;d=d+e|0;break}else b[m>>1]=4096;while(0);i=i+1|0;q=q+2|0;m=m+2|0}n=n+1|0;o=o+2|0}}else d=-1}while(0);if((n|0)==25)if(!l)d=-1;else{g=~~+u(+(+(j-((B(d,d)|0)/(l|0)|0)|0)));c[k+28>>2]=g;c[k+32>>2]=d;c[k+36>>2]=l;d=0}zb=D;return d|0}function Cf(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0;r=zb;zb=zb+32|0;m=r+20|0;n=r+16|0;o=r+12|0;p=r+8|0;j=r+4|0;k=r;l=+f[g+8>>2];i=+f[g+12>>2];if((b|0)!=0?(Ef(a,b,l,i,m,p)|0)>=0:0){c[h>>2]=~~+f[m>>2];c[h+4>>2]=~~+f[p>>2];if((d|0)!=0?(Ef(a,d,l,i,n,j)|0)>=0:0){c[h+8>>2]=~~(+f[m>>2]*2.0-+f[n>>2]);c[h+12>>2]=~~(+f[p>>2]*2.0-+f[j>>2]);if((e|0)!=0?(Ef(a,e,l,i,o,k)|0)>=0:0){c[h+16>>2]=~~(+f[o>>2]+(+f[m>>2]*3.0-+f[n>>2]*3.0));g=~~(+f[k>>2]+(+f[p>>2]*3.0-+f[j>>2]*3.0))}else q=10}else q=9}else{c[h>>2]=-1;c[h+4>>2]=-1;q=9}if((q|0)==9){c[h+8>>2]=-1;c[h+12>>2]=-1;q=10}if((q|0)==10){c[h+16>>2]=-1;g=-1}c[h+20>>2]=g;zb=r;return}function Df(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;g=g|0;var h=0,i=0.0,j=0,k=0,l=0,m=0.0;l=zb;zb=zb+64|0;h=l;j=l+52|0;k=l+48|0;if(a){vd(a+8|0,b,h)|0;m=+f[h+44>>2]+(+f[h+32>>2]*c+ +f[h+36>>2]*d);i=(+f[h+12>>2]+(+f[h>>2]*c+ +f[h+4>>2]*d))/m;c=(+f[h+28>>2]+(+f[h+16>>2]*c+ +f[h+20>>2]*d))/m;b=a+184|0;if((oe(b,i,c,e,g)|0)>=0?(pe(b,+f[e>>2],+f[g>>2],j,k)|0)>=0:0){i=i-+f[j>>2];m=c-+f[k>>2];b=(i*i+m*m>1.0)<<31>>31}else b=-1}else{i=+f[b+28>>2]+(+f[b+16>>2]*c+ +f[b+20>>2]*d);m=+f[b+44>>2]+(+f[b+32>>2]*c+ +f[b+36>>2]*d);f[e>>2]=(+f[b+12>>2]+(+f[b>>2]*c+ +f[b+4>>2]*d))/m;f[g>>2]=i/m;b=0}zb=l;return b|0}function Ef(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;g=g|0;var h=0,i=0,j=0.0,k=0.0;i=zb;zb=zb+48|0;h=i;if(!a){k=+f[b+28>>2]+(+f[b+16>>2]*c+ +f[b+20>>2]*d);j=+f[b+44>>2]+(+f[b+32>>2]*c+ +f[b+36>>2]*d);f[e>>2]=(+f[b+12>>2]+(+f[b>>2]*c+ +f[b+4>>2]*d))/j;f[g>>2]=k/j;a=0}else{vd(a+8|0,b,h)|0;k=+f[h+44>>2]+(+f[h+32>>2]*c+ +f[h+36>>2]*d);a=(oe(a+184|0,(+f[h+12>>2]+(+f[h>>2]*c+ +f[h+4>>2]*d))/k,(+f[h+28>>2]+(+f[h+16>>2]*c+ +f[h+20>>2]*d))/k,e,g)|0)>>31}zb=i;return a|0}function Ff(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=+d;e=e|0;g=g|0;var h=0.0,i=0,j=0,k=0.0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0,s=0.0;r=zb;zb=zb+64|0;i=r+52|0;j=r+48|0;l=r;if(a)if((pe(a+184|0,c,d,i,j)|0)<0)a=-1;else{vd(a+8|0,b,l)|0;h=+f[l+32>>2];k=+f[i>>2];p=+f[l+36>>2];d=+f[j>>2];c=+f[l+44>>2];m=+f[l+12>>2]-k*c;n=p*d-+f[l+20>>2];o=h*d-+f[l+16>>2];p=k*p-+f[l+4>>2];k=h*k-+f[l>>2];h=+f[l+28>>2];c=d*c;q=5}else{k=+f[b+32>>2];p=+f[b+36>>2];s=+f[b+44>>2];m=+f[b+12>>2]-s*c;n=p*d-+f[b+20>>2];o=k*d-+f[b+16>>2];p=p*c-+f[b+4>>2];k=k*c-+f[b>>2];h=+f[b+28>>2];c=s*d;q=5}if((q|0)==5){c=h-c;h=k*n-p*o;if(h==0.0)a=-1;else{f[e>>2]=(n*m-p*c)/h;f[g>>2]=(k*c-o*m)/h;a=0}}zb=r;return a|0}function Gf(b,d,e,g,h,i){b=b|0;d=d|0;e=e|0;g=+g;h=+h;i=i|0;var j=0.0,k=0,l=0,m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;n=p+4|0;o=p;if((((Ff(b,d,g,h,n,o)|0)>=0?(j=+f[e+12>>2],k=~~(+f[n>>2]*j/25.399999618530273+.5),(k|0)>=0):0)?(l=c[e+4>>2]|0,(l|0)>(k|0)):0)?(n=c[e+8>>2]|0,m=~~(+(n|0)-j*+f[o>>2]/25.399999618530273+.5),(m|0)>-1&(n|0)>(m|0)):0){b=(B(l,m)|0)+k|0;a[i>>0]=a[(c[e>>2]|0)+b>>0]|0;b=0}else b=-1;zb=p;return b|0}function Hf(a,b,c){a=a|0;b=b|0;c=c|0;return Bd(a,b,c)|0}function If(a){a=a|0;return Cd(a)|0}function Jf(a){a=a|0;return Kf(a,c[a>>2]|0,c[a+4>>2]|0,1)|0}function Kf(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=zb;zb=zb+16|0;f=HO(1,4156)|0;if(!f){Ue(0,3,41858,g);Ea(1)}else{h=tB(4)|0;Ij(h);c[f>>2]=h;c[f+4>>2]=a;c[f+8>>2]=e;c[f+12>>2]=b;c[f+16>>2]=d;c[f+20>>2]=1;c[f+24>>2]=-1;e=f+28|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[e+20>>2]=0;c[e+24>>2]=0;c[e+28>>2]=0;zb=g;return f|0}return 0}function Lf(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;if(!b)b=-1;else{d=c[b>>2]|0;if(d){nk(d);SA(d);b=c[a>>2]|0}d=c[b+28>>2]|0;if(d){GO(d);b=c[a>>2]|0}d=c[b+36>>2]|0;if(d){GO(d);b=c[a>>2]|0}d=c[b+52>>2]|0;if(d){GO(d);b=c[a>>2]|0}d=c[b+44>>2]|0;if(d){GO(d);b=c[a>>2]|0}GO(b);c[a>>2]=0;b=0}return b|0}function Mf(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Nf(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-20|0;Of(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function Of(a){a=a|0;return}function Pf(a,b){a=a|0;b=b|0;Rf(a);return}function Qf(a){a=a|0;P(a|0)|0;UA()}function Rf(a){a=a|0;SA(a);return}function Sf(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=zb;zb=zb+48|0;r=s+40|0;p=s+32|0;m=s+24|0;k=s+16|0;f=s+8|0;e=s;if((a|0)!=0&(b|0)!=0){e=c[a>>2]|0;do if(!e){e=FO(16)|0;c[a>>2]=e;if(!e){Ue(0,3,41858,f);Ea(1)}else{c[e+4>>2]=0;c[e>>2]=0;c[e+12>>2]=0;c[e+8>>2]=0;l=e;d=e;break}}else{l=e;d=e}while(0);f=c[b>>2]|0;if(!f)d=0;else{g=c[l+4>>2]|0;h=c[f+4>>2]|0;i=h+g|0;j=FO(i*132|0)|0;if(!j){Ue(0,3,41858,k);Ea(1)}e=0;while(1){if((e|0)>=(g|0))break;_O(j+(e*132|0)|0,(c[l>>2]|0)+(e*132|0)|0,132)|0;e=e+1|0}e=0;while(1){if((e|0)>=(h|0))break;_O(j+((e+g|0)*132|0)|0,(c[f>>2]|0)+(e*132|0)|0,132)|0;e=e+1|0}e=c[l>>2]|0;if(e){GO(e);d=c[a>>2]|0}c[d>>2]=j;h=c[a>>2]|0;c[h+4>>2]=i;k=c[h+12>>2]|0;g=c[b>>2]|0;l=c[g+12>>2]|0;g=g+8|0;h=h+8|0;d=0;f=0;while(1){if((f|0)>=(l|0))break;e=0;while(1){if((e|0)>=(k|0))break;if((c[(c[g>>2]|0)+(f*12|0)+8>>2]|0)==(c[(c[h>>2]|0)+(e*12|0)+8>>2]|0)){q=23;break}else e=e+1|0}if((q|0)==23){q=0;d=d+1|0}f=f+1|0}n=l+k-d|0;o=FO(n*12|0)|0;if(!o){Ue(0,3,41858,m);Ea(1)}j=0;while(1){if((j|0)>=(k|0))break;h=(c[a>>2]|0)+8|0;d=c[h>>2]|0;g=d+(j*12|0)+8|0;c[o+(j*12|0)+8>>2]=c[g>>2];d=c[d+(j*12|0)+4>>2]|0;f=0;while(1){if((f|0)>=(l|0))break;e=c[(c[b>>2]|0)+8>>2]|0;if((c[e+(f*12|0)+8>>2]|0)==(c[g>>2]|0))d=(c[e+(f*12|0)+4>>2]|0)+d|0;f=f+1|0}i=o+(j*12|0)|0;m=FO(d*12|0)|0;c[i>>2]=m;if(!m){q=36;break}h=c[(c[h>>2]|0)+(j*12|0)+4>>2]|0;e=0;while(1){if((e|0)>=(h|0))break;g=(c[(c[(c[a>>2]|0)+8>>2]|0)+(j*12|0)>>2]|0)+(e*12|0)|0;m=(c[i>>2]|0)+(e*12|0)|0;c[m>>2]=c[g>>2];c[m+4>>2]=c[g+4>>2];c[m+8>>2]=c[g+8>>2];e=e+1|0}g=0;while(1){if((g|0)>=(l|0))break;e=c[(c[b>>2]|0)+8>>2]|0;if((c[e+(g*12|0)+8>>2]|0)==(c[(c[(c[a>>2]|0)+8>>2]|0)+(j*12|0)+8>>2]|0)){q=43;break}g=g+1|0}a:do if((q|0)==43){q=0;f=0;while(1){if((f|0)>=(c[e+(g*12|0)+4>>2]|0))break a;t=(c[e+(g*12|0)>>2]|0)+(f*12|0)|0;m=(c[i>>2]|0)+((f+h|0)*12|0)|0;c[m>>2]=c[t>>2];c[m+4>>2]=c[t+4>>2];c[m+8>>2]=c[t+8>>2];f=f+1|0;e=c[(c[b>>2]|0)+8>>2]|0}}while(0);c[o+(j*12|0)+4>>2]=d;j=j+1|0}if((q|0)==36){Ue(0,3,41858,p);Ea(1)}d=0;j=0;while(1){if((j|0)>=(l|0))break;f=c[(c[b>>2]|0)+8>>2]|0;g=c[f+(j*12|0)+8>>2]|0;e=0;while(1){if((e|0)>=(k|0)){q=53;break}if((g|0)==(c[(c[(c[a>>2]|0)+8>>2]|0)+(e*12|0)+8>>2]|0)){q=52;break}else e=e+1|0}if((q|0)==52){q=0;d=d+1|0}else if((q|0)==53){q=0;h=j+k-d|0;i=o+(h*12|0)|0;c[o+(h*12|0)+8>>2]=g;f=c[f+(j*12|0)+4>>2]|0;t=FO(f*12|0)|0;c[i>>2]=t;if(!t){q=55;break}e=0;while(1){if((e|0)>=(f|0))break;p=(c[(c[(c[b>>2]|0)+8>>2]|0)+(j*12|0)>>2]|0)+(e*12|0)|0;t=(c[i>>2]|0)+(e*12|0)|0;c[t>>2]=c[p>>2];c[t+4>>2]=c[p+4>>2];c[t+8>>2]=c[p+8>>2];e=e+1|0}c[o+(h*12|0)+4>>2]=f}j=j+1|0}if((q|0)==55){Ue(0,3,41858,r);Ea(1)}e=c[a>>2]|0;d=e+8|0;g=c[d>>2]|0;if(g){f=0;d=g;while(1){if((f|0)>=(c[e+12>>2]|0))break;GO(c[d+(f*12|0)>>2]|0);t=c[a>>2]|0;f=f+1|0;e=t;d=c[t+8>>2]|0}GO(d);d=(c[a>>2]|0)+8|0}c[d>>2]=o;c[(c[a>>2]|0)+12>>2]=n;Tf(b)|0;d=0}}else{Ue(0,3,22132,e);d=-1}zb=s;return d|0}function Tf(a){a=a|0;var b=0,d=0,e=0,f=0;e=zb;zb=zb+16|0;if(a){b=c[a>>2]|0;if(!b)b=0;else{b=c[b>>2]|0;if(b|0)GO(b);b=0;while(1){f=c[a>>2]|0;d=f+8|0;if((b|0)>=(c[f+12>>2]|0))break;GO(c[(c[d>>2]|0)+(b*12|0)>>2]|0);b=b+1|0}GO(c[d>>2]|0);GO(c[a>>2]|0);c[a>>2]=0;b=0}}else{Ue(0,3,22192,e);b=-1}zb=e;return b|0}function Uf(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;p=zb;zb=zb+64|0;o=p+56|0;n=p+48|0;l=p+40|0;k=p+32|0;j=p+24|0;i=p+8|0;h=p;g=p+60|0;a[g>>0]=a[22236]|0;a[g+1>>0]=a[22237]|0;a[g+2>>0]=a[22238]|0;a:do if((b|0)!=0&(e|0)!=0){m=Hg(b,d,g)|0;if(!m){f=(d|0)!=0;c[i>>2]=b;c[i+4>>2]=f?46716:57671;c[i+8>>2]=f?d:57671;Ue(0,3,22290,i);f=-1;break}i=HO(1,16)|0;if(!i){Ue(0,3,41858,j);Ea(1)}h=i+4|0;b:do if((gA(h,4,1,m)|0)==1?(f=c[h>>2]|0,(f|0)>=1):0){j=FO(f*132|0)|0;c[i>>2]=j;if(!j){Ue(0,3,41858,k);Ea(1)}g=0;while(1){if((g|0)>=(f|0))break;if((gA((c[i>>2]|0)+(g*132|0)|0,8,1,m)|0)!=1)break b;if((gA((c[i>>2]|0)+(g*132|0)+8|0,8,1,m)|0)!=1)break b;if((gA((c[i>>2]|0)+(g*132|0)+16|0,108,1,m)|0)!=1)break b;if((gA((c[i>>2]|0)+(g*132|0)+124|0,4,1,m)|0)!=1)break b;if((gA((c[i>>2]|0)+(g*132|0)+128|0,4,1,m)|0)!=1)break b;g=g+1|0;f=c[h>>2]|0}b=i+12|0;if((gA(b,4,1,m)|0)==1){f=c[b>>2]|0;if((f|0)<1){c[i+8>>2]=0;break}k=FO(f*12|0)|0;d=i+8|0;c[d>>2]=k;if(!k){Ue(0,3,41858,l);Ea(1)}h=0;while(1){if((h|0)>=(f|0)){f=32;break}if((gA((c[d>>2]|0)+(h*12|0)+8|0,4,1,m)|0)!=1)break b;if((gA((c[d>>2]|0)+(h*12|0)+4|0,4,1,m)|0)!=1)break b;l=c[d>>2]|0;f=c[l+(h*12|0)+4>>2]|0;g=FO(f*12|0)|0;c[l+(h*12|0)>>2]=g;if(!g){f=29;break}if((gA(g,12,f,m)|0)!=(f|0))break b;h=h+1|0;f=c[b>>2]|0}if((f|0)==29){Ue(0,3,41858,n);Ea(1)}else if((f|0)==32){c[e>>2]=i;xz(m)|0;f=0;break a}}}while(0);Ue(0,3,22357,o);f=c[i+8>>2]|0;if(f|0)GO(f);f=c[i>>2]|0;if(f|0)GO(f);GO(i);xz(m)|0;f=-1}else{Ue(0,3,22239,h);f=-1}while(0);zb=p;return f|0}function Vf(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;j=zb;zb=zb+16|0;a:do if(!a){Ue(0,3,22402,j);e=-1}else{g=c[a+4>>2]|0;i=(b|0)==-1;e=0;while(1){if((e|0)>=(g|0))break;f=(c[a>>2]|0)+(e*132|0)+124|0;h=c[f>>2]|0;if((h|0)==(b|0)|i&(h|0)>-1)c[f>>2]=d;e=e+1|0}h=c[a+12>>2]|0;f=a+8|0;e=0;while(1){if((e|0)>=(h|0)){e=0;break a}g=(c[f>>2]|0)+(e*12|0)+8|0;a=c[g>>2]|0;if((a|0)==(b|0)|i&(a|0)>-1)c[g>>2]=d;e=e+1|0}}while(0);zb=j;return e|0}function Wf(){return -1}function Xf(a,b){a=a|0;b=b|0;return Zf(a,b,Yf(b)|0)|0}function Yf(a){a=a|0;return Qy(a)|0}function Zf(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;l=zb;zb=zb+16|0;g=l+12|0;j=l;k=l+8|0;NE(j,b);if(a[j>>0]|0){h=(c[b>>2]|0)+-12|0;c[k>>2]=c[b+(c[h>>2]|0)+24>>2];h=b+(c[h>>2]|0)|0;i=c[h+4>>2]|0;f=d+e|0;m=Wf()|0;e=h+76|0;if(_f(m,c[e>>2]|0)|0){IE(g,h);m=XF(g,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,32)|0;YF(g);m=m<<24>>24;c[e>>2]=m;e=m}else e=c[e>>2]|0;c[g>>2]=c[k>>2];if(!($f(g,d,(i&176|0)==32?f:d,f,h,e&255)|0)){m=b+(c[(c[b>>2]|0)+-12>>2]|0)|0;GE(m,c[m+16>>2]|5)}}OE(j);zb=l;return b|0}function _f(a,b){a=a|0;b=b|0;return (a|0)==(b|0)|0}function $f(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;n=zb;zb=zb+16|0;m=n;i=c[b>>2]|0;a:do if(!i)i=0;else{k=d;j=f-k|0;l=g+12|0;g=c[l>>2]|0;g=(g|0)>(j|0)?g-j|0:0;j=e;k=j-k|0;if((k|0)>0?(Jb[c[(c[i>>2]|0)+48>>2]&63](i,d,k)|0)!=(k|0):0){c[b>>2]=0;i=0;break}do if((g|0)>0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;hO(m,g,h);if((Jb[c[(c[i>>2]|0)+48>>2]&63](i,(a[m+11>>0]|0)<0?c[m>>2]|0:m,g)|0)==(g|0)){jO(m);break}else{c[b>>2]=0;jO(m);i=0;break a}}while(0);f=f-j|0;if((f|0)>0?(Jb[c[(c[i>>2]|0)+48>>2]&63](i,e,f)|0)!=(f|0):0){c[b>>2]=0;i=0;break}c[l>>2]=0}while(0);zb=n;return i|0}function ag(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;j=zb;zb=zb+16|0;g=d;i=j;f=e-g|0;if(f>>>0>4294967279)eO(b);if(f>>>0<11){a[b+11>>0]=f;h=b}else{k=f+16&-16;h=tB(k)|0;c[b>>2]=h;c[b+8>>2]=k|-2147483648;c[b+4>>2]=f}f=e-g|0;b=h;while(1){if((d|0)==(e|0))break;bg(b,d);d=d+1|0;b=b+1|0}a[i>>0]=0;bg(h+f|0,i);zb=j;return}function bg(b,c){b=b|0;c=c|0;a[b>>0]=a[c>>0]|0;return}function cg(a){a=a|0;return a&255|0}function dg(a){a=a|0;if(_f(a,Wf()|0)|0)a=~(Wf()|0);return a|0}function eg(a){a=a|0;return a&255|0}function fg(b,d){b=b|0;d=d|0;var e=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;A=zb;zb=zb+112|0;z=A+48|0;p=A+40|0;n=A+32|0;l=A+24|0;h=A+16|0;g=A+8|0;e=A;v=A+96|0;w=A+84|0;x=A+72|0;y=A+52|0;a:do if((b|0)!=0&(d|0)!=0){i=d+4|0;e=c[i>>2]|0;if(!e){Ue(0,3,22499,g);e=-1;break}u=b+28|0;g=c[u>>2]|0;if(g){GO(g);e=c[i>>2]|0;if(!e){c[u>>2]=0;e=0}else j=7}else j=7;b:do if((j|0)==7){t=FO(e*132|0)|0;c[u>>2]=t;if(!t){Ue(0,3,41858,h);Ea(1)}g=0;while(1){if((g|0)>=(e|0))break b;_O((c[u>>2]|0)+(g*132|0)|0,(c[d>>2]|0)+(g*132|0)|0,132)|0;g=g+1|0;e=c[i>>2]|0}}while(0);m=b+32|0;c[m>>2]=e;t=b+36|0;e=c[t>>2]|0;if(e|0){i=b+40|0;h=0;while(1){if((h|0)>=(c[i>>2]|0))break;g=c[e+(h*12|0)>>2]|0;if(g){GO(g);e=c[t>>2]|0}h=h+1|0}GO(e)}k=d+12|0;e=c[k>>2]|0;c:do if(!e){c[t>>2]=0;o=0}else{s=FO(e*12|0)|0;c[t>>2]=s;if(!s){Ue(0,3,41858,l);Ea(1)}d=d+8|0;j=0;while(1){if((j|0)>=(e|0)){o=e;break c}i=c[d>>2]|0;g=c[t>>2]|0;c[g+(j*12|0)+8>>2]=c[i+(j*12|0)+8>>2];h=i+(j*12|0)+4|0;c[g+(j*12|0)+4>>2]=c[h>>2];h=c[h>>2]|0;if(!h)c[i+(j*12|0)>>2]=0;else{s=FO(h*12|0)|0;c[g+(j*12|0)>>2]=s;if(!s)break;g=0;e=i;while(1){if((g|0)>=(c[e+(j*12|0)+4>>2]|0))break;r=(c[e+(j*12|0)>>2]|0)+(g*12|0)|0;s=(c[(c[t>>2]|0)+(j*12|0)>>2]|0)+(g*12|0)|0;c[s>>2]=c[r>>2];c[s+4>>2]=c[r+4>>2];c[s+8>>2]=c[r+8>>2];g=g+1|0;e=c[d>>2]|0}e=c[k>>2]|0}j=j+1|0}Ue(0,3,41858,n);Ea(1)}while(0);s=b+40|0;c[s>>2]=o;i=b+52|0;e=c[i>>2]|0;if(e|0){GO(e);c[i>>2]=0;c[b+56>>2]=0}g=c[k>>2]|0;d:do if((g|0)>0){c[b+56>>2]=g;h=FO(g*68|0)|0;c[i>>2]=h;if(!h){Ue(0,3,41858,p);Ea(1)}e=0;while(1){if((e|0)==(g|0))break d;c[h+(e*68|0)+64>>2]=0;e=e+1|0}}while(0);l=c[m>>2]|0;if(!l)e=0;else{m=v+4|0;n=v+8|0;o=w+4|0;p=w+8|0;q=x+4|0;r=x+8|0;k=0;e=0;while(1){if((k|0)>=(c[s>>2]|0)){e=0;break a}d=0;while(1){if((d|0)>=(c[(c[t>>2]|0)+(k*12|0)+4>>2]|0))break;c[v>>2]=0;c[m>>2]=0;c[n>>2]=0;c[w>>2]=0;c[o>>2]=0;c[p>>2]=0;c[x>>2]=0;c[q>>2]=0;c[r>>2]=0;j=0;while(1){if((j|0)>=(l|0))break;g=c[u>>2]|0;i=c[t>>2]|0;e:do if((c[g+(j*132|0)+128>>2]|0)==(c[(c[i+(k*12|0)>>2]|0)+(d*12|0)+8>>2]|0)?(c[g+(j*132|0)+124>>2]|0)==(c[i+(k*12|0)+8>>2]|0):0){gg(y,+f[g+(j*132|0)>>2],+f[g+(j*132|0)+4>>2],+f[g+(j*132|0)+112>>2],+f[g+(j*132|0)+116>>2],(c[g+(j*132|0)+120>>2]|0)!=0);g=c[m>>2]|0;if(g>>>0<(c[n>>2]|0)>>>0){c[g>>2]=c[y>>2];c[g+4>>2]=c[y+4>>2];c[g+8>>2]=c[y+8>>2];c[g+12>>2]=c[y+12>>2];c[g+16>>2]=c[y+16>>2];c[m>>2]=g+20}else hg(v,y);Of(y);g=c[u>>2]|0;ig(y,+f[g+(j*132|0)+8>>2],+f[g+(j*132|0)+12>>2],0.0);g=c[o>>2]|0;if(g>>>0<(c[p>>2]|0)>>>0){c[g>>2]=c[y>>2];c[g+4>>2]=c[y+4>>2];c[g+8>>2]=c[y+8>>2];c[o>>2]=(c[o>>2]|0)+12}else jg(w,y);g=0;while(1){if(g>>>0>=96)break e;h=(c[u>>2]|0)+(j*132|0)+16+g|0;i=c[q>>2]|0;if((i|0)==(c[r>>2]|0))kg(x,h);else{a[i>>0]=a[h>>0]|0;c[q>>2]=(c[q>>2]|0)+1}g=g+1|0}}while(0);j=j+1|0}c[z>>2]=((c[m>>2]|0)-(c[v>>2]|0)|0)/20|0;Ue(0,1,22532,z);j=c[t>>2]|0;c[b+60+(e<<2)>>2]=c[j+(k*12|0)+8>>2];j=c[j+(k*12|0)>>2]|0;em(c[b>>2]|0,v,x,w,c[j+(d*12|0)>>2]|0,c[j+(d*12|0)+4>>2]|0,e);Mf(x);lg(w);Nf(v);d=d+1|0;e=e+1|0}k=k+1|0}}}else{Ue(0,3,22451,e);e=-1}while(0);zb=A;return e|0}function gg(b,c,d,e,g,h){b=b|0;c=+c;d=+d;e=+e;g=+g;h=h|0;f[b>>2]=c;f[b+4>>2]=d;f[b+8>>2]=e;f[b+12>>2]=g;a[b+16>>0]=h&1;return}function hg(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=(((c[e>>2]|0)-(c[a>>2]|0)|0)/20|0)+1|0;g=ug(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=((c[a+8>>2]|0)-i|0)/20|0;j=k<<1;vg(d,k>>>0>>1>>>0?(j>>>0>>0?f:j):g,((c[e>>2]|0)-i|0)/20|0,a+8|0);g=d+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[f+12>>2]=c[b+12>>2];c[f+16>>2]=c[b+16>>2];c[g>>2]=(c[g>>2]|0)+20;wg(a,d);xg(d);zb=h;return}}function ig(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;f[a>>2]=b;f[a+4>>2]=c;f[a+8>>2]=d;return}function jg(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=(((c[e>>2]|0)-(c[a>>2]|0)|0)/12|0)+1|0;g=qg(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=((c[a+8>>2]|0)-i|0)/12|0;j=k<<1;rg(d,k>>>0>>1>>>0?(j>>>0>>0?f:j):g,((c[e>>2]|0)-i|0)/12|0,a+8|0);g=d+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=c[b+4>>2];c[f+8>>2]=c[b+8>>2];c[g>>2]=(c[g>>2]|0)+12;sg(a,d);tg(d);zb=h;return}}function kg(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;i=zb;zb=zb+32|0;e=i;f=b+4|0;g=(c[f>>2]|0)-(c[b>>2]|0)+1|0;h=mg(b)|0;if(h>>>0>>0)EO(b);else{j=c[b>>2]|0;l=(c[b+8>>2]|0)-j|0;k=l<<1;ng(e,l>>>0>>1>>>0?(k>>>0>>0?g:k):h,(c[f>>2]|0)-j|0,b+8|0);h=e+8|0;a[c[h>>2]>>0]=a[d>>0]|0;c[h>>2]=(c[h>>2]|0)+1;og(b,e);pg(e);zb=i;return}}function lg(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function mg(a){a=a|0;return 2147483647}function ng(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;if(!b)e=0;else e=tB(b)|0;c[a>>2]=e;d=e+d|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+b;return}function og(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-f)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function pg(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-1|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function qg(a){a=a|0;return 357913941}function rg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>357913941){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*12|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*12|0);return}function sg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(((f|0)/-12|0)*12|0)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function tg(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-12|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function ug(a){a=a|0;return 214748364}function vg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>214748364){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*20|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*20|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*20|0);return}function wg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;i=(c[g>>2]|0)+-20|0;h=d+-20|0;c[i>>2]=c[h>>2];c[i+4>>2]=c[h+4>>2];c[i+8>>2]=c[h+8>>2];c[i+12>>2]=c[h+12>>2];c[i+16>>2]=c[h+16>>2];c[g>>2]=(c[g>>2]|0)+-20;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;h=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=h;f=a+8|0;i=b+12|0;h=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=h;c[b>>2]=c[g>>2];return}function xg(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-20|0;c[d>>2]=e;Of(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function yg(a,b){a=a|0;b=b|0;var d=0,e=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,u=0;u=zb;zb=zb+48|0;r=u+16|0;o=u+8|0;d=u;e=u+44|0;h=u+40|0;do if((a|0)!=0&(b|0)!=0){i=c[a+12>>2]|0;j=c[a+16>>2]|0;m=c[a+20>>2]|0;n=(m|0)==1;if(!n){d=Bg(b,i,j,m,e,h)|0;if(!d){d=-1;break}else{s=d;t=1}}else{s=b;t=0}Em(c[a>>2]|0,s,i,j)|0;j=fp(c[a>>2]|0)|0;j=(c[j+4>>2]|0)-(c[j>>2]|0)|0;d=(j|0)/20|0;i=a+48|0;c[i>>2]=d;a:do if(!j){e=c[a+56>>2]|0;b=a+52|0;d=0;while(1){if((d|0)>=(e|0))break a;c[(c[b>>2]|0)+(d*68|0)+60>>2]=-1;d=d+1|0}}else{j=a+44|0;b=c[j>>2]|0;if(b){GO(b);d=c[i>>2]|0}h=FO(d<<3)|0;c[j>>2]=h;if(!h){Ue(0,3,41858,o);Ea(1)}e=fp(c[a>>2]|0)|0;b:do if(n){h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k;f[o+(d<<3)+4>>2]=l}else{o=c[j>>2]|0;pe(b+184|0,k,l,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}else switch(m|0){case 5:{h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k*1.5;f[o+(d<<3)+4>>2]=l*1.5}else{o=c[j>>2]|0;pe(b+184|0,k*1.5,l*1.5,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}case 2:{h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k*2.0;f[o+(d<<3)+4>>2]=l*2.0}else{o=c[j>>2]|0;pe(b+184|0,k*2.0,l*2.0,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}case 4:{h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k*3.0;f[o+(d<<3)+4>>2]=l*3.0}else{o=c[j>>2]|0;pe(b+184|0,k*3.0,l*3.0,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}default:{h=a+4|0;d=0;while(1){if((d|0)>=(c[i>>2]|0))break b;b=c[e>>2]|0;k=+f[b+(d*20|0)>>2];l=+f[b+(d*20|0)+4>>2];b=c[h>>2]|0;if(!b){o=c[j>>2]|0;f[o+(d<<3)>>2]=k*4.0;f[o+(d<<3)+4>>2]=l*4.0}else{o=c[j>>2]|0;pe(b+184|0,k*4.0,l*4.0,o+(d<<3)|0,o+(d<<3)+4|0)|0}d=d+1|0}}}while(0);i=a+56|0;j=a+36|0;b=a+52|0;d=0;while(1){e=c[i>>2]|0;if((d|0)>=(e|0))break a;o=c[b>>2]|0;c[o+(d*68|0)+48>>2]=c[(c[j>>2]|0)+(d*12|0)+8>>2];c[o+(d*68|0)+60>>2]=-1;if(((c[o+(d*68|0)+64>>2]|0)==0?(p=hp(c[a>>2]|0)|0,q=cp(c[a>>2]|0)|0,(q|0)>=0):0)?(e=c[h>>2]|0,m=ep(c[a>>2]|0,q)|0,n=fp(c[a>>2]|0)|0,o=c[b>>2]|0,(zg(e,p,m,n,o+(d*68|0)|0,o+(d*68|0)+52|0)|0)==0):0){n=c[b>>2]|0;c[n+(d*68|0)+60>>2]=0;o=(c[p+4>>2]|0)-(c[p>>2]|0)>>3;c[n+(d*68|0)+56>>2]=o;c[n+(d*68|0)+48>>2]=c[a+60+(q<<2)>>2];l=+f[n+(d*68|0)+52>>2];c[r>>2]=d;c[r+4>>2]=o;c[r+8>>2]=o;g[r+16>>3]=l;Ue(0,1,22587,r)}d=d+1|0}}while(0);d=0;while(1){if((d|0)>=(e|0))break;c[(c[b>>2]|0)+(d*68|0)+64>>2]=0;d=d+1|0}if(!t)d=0;else{GO(s);d=0}}else{Ue(0,3,22543,d);d=-1}while(0);zb=u;return d|0}function zg(a,b,d,e,h,i){a=a|0;b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=zb;zb=zb+240|0;k=u+208|0;j=u+200|0;s=u+224|0;p=u+212|0;q=u+96|0;t=u+192|0;r=u;l=c[b>>2]|0;b=(c[b+4>>2]|0)-l|0;m=b>>3;do if(m>>>0<4)b=-1;else{o=FO(b<<1)|0;if(!o){Ue(0,3,41858,j);Ea(1)}n=FO(m*24|0)|0;if(!n){Ue(0,3,41858,k);Ea(1)}e=c[e>>2]|0;j=c[d>>2]|0;b=0;while(1){if((b|0)==(m|0))break;d=c[l+(b<<3)>>2]|0;g[o+(b<<4)>>3]=+f[e+(d*20|0)>>2];g[o+(b<<4)+8>>3]=+f[e+(d*20|0)+4>>2];d=c[l+(b<<3)+4>>2]|0;g[n+(b*24|0)>>3]=+f[j+(d*12|0)>>2];g[n+(b*24|0)+8>>3]=+f[j+(d*12|0)+4>>2];g[n+(b*24|0)+16>>3]=0.0;b=b+1|0}c[p+8>>2]=m;c[p>>2]=o;c[p+4>>2]=n;b=a+8|0;if((Me(b,o,n,m,q)|0)<0){GO(o);GO(n);b=-1;break}b=Ee(b)|0;c[s>>2]=b;if(!b){GO(o);GO(n);b=-1;break}if((He(b,p,q,r,t)|0)<0){GO(o);GO(n);Fe(s)|0;b=-1}else{j=0;while(1){if((j|0)==3)break;b=0;while(1){if((b|0)==4)break;f[h+(j<<4)+(b<<2)>>2]=+g[r+(j<<5)+(b<<3)>>3];b=b+1|0}j=j+1|0}Fe(s)|0;GO(o);GO(n);v=+g[t>>3];f[i>>2]=v;b=(v>10.0)<<31>>31}}while(0);zb=u;return b|0}function Ag(a,b,d){a=a|0;b=b|0;d=d|0;if(!a)a=-1;else{c[b>>2]=c[a+52>>2];c[d>>2]=c[a+56>>2];a=0}return a|0}function Bg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;switch(d|0){case 1:{a=Cg(a,b,c,e,f)|0;break}case 5:{a=Dg(a,b,c,e,f)|0;break}case 2:{a=Eg(a,b,c,e,f)|0;break}case 4:{a=Fg(a,b,c,e,f)|0;break}default:a=Gg(a,b,c,e,f)|0}return a|0}function Cg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=zb;zb=zb+16|0;c[e>>2]=b;c[f>>2]=d;b=B(d,b)|0;d=FO(b)|0;if(!d){Ue(0,3,41858,g);Ea(1)}else{_O(d|0,a|0,b|0)|0;zb=g;return d|0}return 0}function Dg(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,s=0,t=0,u=0;q=zb;zb=zb+16|0;o=(e|0)/3|0;p=o<<1;c[g>>2]=p;n=(f|0)/3|0;m=n<<1;c[h>>2]=m;m=FO(B(m,p)|0)|0;if(!m){Ue(0,3,41858,q);Ea(1)}h=0;f=m;g=m;while(1){if((h|0)>=(n|0))break;l=h*3|0;i=0;j=b+(B(l+2|0,e)|0)|0;k=b+(B(l+1|0,e)|0)|0;l=b+(B(l,e)|0)|0;g=g+p|0;while(1){if((i|0)>=(o|0))break;u=l+1|0;s=k+1|0;a[f>>0]=(((d[u>>0]|0)>>>1&255)+(d[l>>0]|0)+((d[k>>0]|0)>>>1&255)+((d[s>>0]|0)>>>2&255)<<2>>>0)/9|0;r=j+1|0;a[g>>0]=((((d[s>>0]|0)>>>2)+((d[k>>0]|0)>>>1)&255)+(d[j>>0]|0)+((d[r>>0]|0)>>>1&255)<<2>>>0)/9|0;t=k+2|0;a[f+1>>0]=(((d[u>>0]|0)>>>1&255)+(d[l+2>>0]|0)+((d[s>>0]|0)>>>2&255)+((d[t>>0]|0)>>>1&255)<<2>>>0)/9|0;a[g+1>>0]=((((d[t>>0]|0)>>>1)+((d[s>>0]|0)>>>2)&255)+((d[r>>0]|0)>>>1&255)+(d[j+2>>0]|0)<<2>>>0)/9|0;i=i+1|0;j=j+3|0;k=k+3|0;l=l+3|0;f=f+2|0;g=g+2|0}h=h+1|0;f=f+p|0}zb=q;return m|0}function Eg(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;n=zb;zb=zb+16|0;m=(e|0)/2|0;c[g>>2]=m;l=(f|0)/2|0;c[h>>2]=l;k=FO(B(l,m)|0)|0;if(!k){Ue(0,3,41858,n);Ea(1)}g=0;f=k;while(1){if((g|0)>=(l|0))break;j=g<<1;h=0;i=b+(B(j,e)|0)|0;j=b+(B(j|1,e)|0)|0;while(1){if((h|0)>=(m|0))break;a[f>>0]=((d[i+1>>0]|0)+(d[i>>0]|0)+(d[j>>0]|0)+(d[j+1>>0]|0)|0)>>>2;h=h+1|0;i=i+2|0;j=j+2|0;f=f+1|0}g=g+1|0}zb=n;return k|0}function Fg(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;o=zb;zb=zb+16|0;n=(e|0)/3|0;c[g>>2]=n;m=(f|0)/3|0;c[h>>2]=m;l=FO(B(m,n)|0)|0;if(!l){Ue(0,3,41858,o);Ea(1)}g=0;f=l;while(1){if((g|0)>=(m|0))break;k=g*3|0;h=0;i=b+(B(k,e)|0)|0;j=b+(B(k+2|0,e)|0)|0;k=b+(B(k+1|0,e)|0)|0;while(1){if((h|0)>=(n|0))break;a[f>>0]=((d[i+1>>0]|0)+(d[i>>0]|0)+(d[i+2>>0]|0)+(d[k>>0]|0)+(d[k+1>>0]|0)+(d[k+2>>0]|0)+(d[j>>0]|0)+(d[j+1>>0]|0)+(d[j+2>>0]|0)|0)/9|0;h=h+1|0;i=i+3|0;j=j+3|0;k=k+3|0;f=f+1|0}g=g+1|0}zb=o;return l|0}function Gg(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;p=zb;zb=zb+16|0;o=(e|0)/4|0;c[g>>2]=o;n=(f|0)/4|0;c[h>>2]=n;m=FO(B(n,o)|0)|0;if(!m){Ue(0,3,41858,p);Ea(1)}g=0;f=m;while(1){if((g|0)>=(n|0))break;l=g<<2;h=0;i=b+(B(l,e)|0)|0;j=b+(B(l|3,e)|0)|0;k=b+(B(l|2,e)|0)|0;l=b+(B(l|1,e)|0)|0;while(1){if((h|0)>=(o|0))break;a[f>>0]=((d[i+1>>0]|0)+(d[i>>0]|0)+(d[i+2>>0]|0)+(d[i+3>>0]|0)+(d[l>>0]|0)+(d[l+1>>0]|0)+(d[l+2>>0]|0)+(d[l+3>>0]|0)+(d[k>>0]|0)+(d[k+1>>0]|0)+(d[k+2>>0]|0)+(d[k+3>>0]|0)+(d[j>>0]|0)+(d[j+1>>0]|0)+(d[j+2>>0]|0)+(d[j+3>>0]|0)|0)/16|0;h=h+1|0;i=i+4|0;j=j+4|0;k=k+4|0;l=l+4|0;f=f+1|0}g=g+1|0}zb=p;return m|0}function Hg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i+8|0;g=i;do if(a){if(!b){e=rz(a,d)|0;break}f=Qy(a)|0;f=FO(f+2+(Qy(b)|0)|0)|0;if(!f){Ue(0,3,41858,g);Ea(1)}else{c[h>>2]=a;c[h+4>>2]=b;Hx(f,22627,h)|0;e=rz(f,d)|0;GO(f);break}}else e=0;while(0);zb=i;return e|0}function Ig(a){a=a|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 Jg(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;m=zb;zb=zb+16|0;d=m;if(!(Kg(b)|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,22633)|0,22676)|0,35e3)|0,53)|0,35007)|0,22771)|0;IE(d,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(d,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(d);QE(l,k)|0;ME(l)|0;ua()}i=Mg(Lg(b,0,0)|0)|0;j=Ng(Lg(b,0,0)|0)|0;k=Og(Lg(b,0,0)|0)|0;e=Pg(b)|0;l=a+12|0;c[l>>2]=e;b=(Qg(b)|0)+-1|0;e=a+16|0;c[e>>2]=b;Rg(a,B(c[l>>2]|0,b)|0);b=0;while(1){if(b>>>0>=(c[l>>2]|0)>>>0)break;f=j>>>b;g=k>>>b;d=0;while(1){h=c[e>>2]|0;if(d>>>0>=h>>>0)break;h=(B(h,b)|0)+d|0;cq((c[a>>2]|0)+(h<<5)|0,i,f,g,-1,1);d=d+1|0}b=b+1|0}zb=m;return}function Kg(a){a=a|0;return (c[a+8>>2]|0)-(c[a+4>>2]|0)>>5|0}function Lg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=zb;zb=zb+16|0;f=g;if((c[a+16>>2]|0)>>>0<=b>>>0){e=Xf(Xf(PE(Xf(Xf(Xf(56032,34017)|0,33900)|0,35e3)|0,218)|0,35007)|0,22796)|0;IE(f,e+(c[(c[e>>2]|0)+-12>>2]|0)|0);h=XF(f,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(f);QE(e,h)|0;ME(e)|0;ua()}e=c[a+20>>2]|0;if(e>>>0>d>>>0){h=(B(e,b)|0)+d|0;zb=g;return (c[a+4>>2]|0)+(h<<5)|0}else{h=Xf(Xf(PE(Xf(Xf(Xf(56032,34161)|0,33900)|0,35e3)|0,219)|0,35007)|0,22816)|0;IE(f,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);g=XF(f,56736)|0;g=Ib[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;YF(f);QE(h,g)|0;ME(h)|0;ua()}return 0}function Mg(a){a=a|0;return c[a>>2]|0}function Ng(a){a=a|0;return c[a+4>>2]|0}function Og(a){a=a|0;return c[a+8>>2]|0}function Pg(a){a=a|0;return c[a+16>>2]|0}function Qg(a){a=a|0;return c[a+20>>2]|0}function Rg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c[a>>2]|0;e=d-f>>5;if(e>>>0>=b>>>0){if(e>>>0>b>>>0){a=f+(b<<5)|0;while(1){if((d|0)==(a|0))break;f=d+-32|0;rq(f);d=f}c[g>>2]=a}}else Sg(a,b-e|0);return}function Sg(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>5>>>0>>0){d=(d-(c[a>>2]|0)>>5)+b|0;e=Ug(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>4;Vg(f,k>>5>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>5,a+8|0);Wg(f,b);Xg(a,f);Yg(f);break}}else Tg(a,b);while(0);zb=i;return}function Tg(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{_p(b);b=(c[d>>2]|0)+32|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Ug(a){a=a|0;return 134217727}function Vg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>134217727){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<5)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<5)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<5);return}function Wg(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{_p(b);b=(c[d>>2]|0)+32|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Xg(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-32|0;bq((c[g>>2]|0)+-32|0,h);c[g>>2]=(c[g>>2]|0)+-32;d=h}e=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=e;e=b+8|0;h=c[f>>2]|0;c[f>>2]=c[e>>2];c[e>>2]=h;e=a+8|0;h=b+12|0;f=c[e>>2]|0;c[e>>2]=c[h>>2];c[h>>2]=f;c[b>>2]=c[g>>2];return}function Yg(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-32|0;c[d>>2]=e;rq(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function Zg(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;h=zb;zb=zb+16|0;d=h;if((c[a+4>>2]|0)==(c[a>>2]|0)){g=Xf(Xf(PE(Xf(Xf(Xf(56032,22835)|0,22676)|0,35e3)|0,72)|0,35007)|0,22877)|0;IE(d,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);f=XF(d,56736)|0;f=Ib[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;YF(d);QE(g,f)|0;ME(g)|0;ua()}if((Pg(b)|0)<=0){g=Xf(Xf(PE(Xf(Xf(Xf(56032,22918)|0,22676)|0,35e3)|0,73)|0,35007)|0,22967)|0;IE(d,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);f=XF(d,56736)|0;f=Ib[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;YF(d);QE(g,f)|0;ME(g)|0;ua()}if(b|0?NA(b,13184,13192,0)|0:0){f=a+12|0;g=a+16|0;e=0;while(1){if(e>>>0>=(c[f>>2]|0)>>>0)break;d=0;while(1){if(d>>>0>=(c[g>>2]|0)>>>0)break;k=_g(a,e,d)|0;j=Lg(b,e,d)|0;i=d+1|0;$g(0,k,j,Lg(b,e,i)|0);d=i}e=e+1|0}zb=h;return}k=Xf(Xf(PE(Xf(Xf(Xf(56032,23003)|0,22676)|0,35e3)|0,74)|0,35007)|0,23075)|0;IE(d,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);j=XF(d,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(d);QE(k,j)|0;ME(k)|0;ua()}function _g(a,b,d){a=a|0;b=b|0;d=d|0;d=(B(c[a+16>>2]|0,b)|0)+d|0;return (c[a>>2]|0)+(d<<5)|0}function $g(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0;k=zb;zb=zb+16|0;a=k;if((Mg(b)|0)!=2){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23110)|0,22676)|0,35e3)|0,86)|0,35007)|0,23155)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((Mg(d)|0)!=2){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23181)|0,22676)|0,35e3)|0,87)|0,35007)|0,23155)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((Mg(e)|0)!=2){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23228)|0,22676)|0,35e3)|0,88)|0,35007)|0,23155)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((ah(b)|0)!=1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23275)|0,22676)|0,35e3)|0,89)|0,35007)|0,23316)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((ah(d)|0)!=1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23353)|0,22676)|0,35e3)|0,90)|0,35007)|0,23316)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}if((ah(e)|0)!=1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23396)|0,22676)|0,35e3)|0,91)|0,35007)|0,23316)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}j=Ng(b)|0;if((j|0)!=(Ng(e)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23439)|0,22676)|0,35e3)|0,92)|0,35007)|0,23487)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}j=Og(b)|0;if((j|0)!=(Og(e)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23519)|0,22676)|0,35e3)|0,93)|0,35007)|0,23569)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}j=Ng(d)|0;if((j|0)!=(Ng(e)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23602)|0,22676)|0,35e3)|0,94)|0,35007)|0,23487)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}j=Og(d)|0;if((j|0)!=(Og(e)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,23652)|0,22676)|0,35e3)|0,95)|0,35007)|0,23569)|0;IE(a,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(a,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(a);QE(j,i)|0;ME(j)|0;ua()}g=0;while(1){if(g>>>0>=(Og(d)|0)>>>0)break;h=bh(b,g)|0;i=ch(d,g)|0;j=ch(e,g)|0;a=0;while(1){if(a>>>0>=(Ng(d)|0)>>>0)break;f[h+(a<<2)>>2]=+f[i+(a<<2)>>2]-+f[j+(a<<2)>>2];a=a+1|0}g=g+1|0}zb=k;return}function ah(a){a=a|0;return c[a+16>>2]|0}function bh(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;if((c[a+8>>2]|0)>>>0>b>>>0){d=(c[a+24>>2]|0)+(B(c[a+12>>2]|0,b)|0)|0;zb=e;return d|0}else{e=Xf(Xf(PE(Xf(Xf(Xf(56032,23704)|0,23741)|0,35e3)|0,119)|0,35007)|0,23811)|0;IE(d,e+(c[(c[e>>2]|0)+-12>>2]|0)|0);b=XF(d,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(d);QE(e,b)|0;ME(e)|0;ua()}return 0}function ch(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;if((c[a+8>>2]|0)>>>0>b>>>0){d=(c[a+24>>2]|0)+(B(c[a+12>>2]|0,b)|0)|0;zb=e;return d|0}else{e=Xf(Xf(PE(Xf(Xf(Xf(56032,23704)|0,23741)|0,35e3)|0,124)|0,35007)|0,23811)|0;IE(d,e+(c[(c[e>>2]|0)+-12>>2]|0)|0);b=XF(d,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(d);QE(e,b)|0;ME(e)|0;ua()}return 0}function dh(b){b=b|0;var d=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=10;c[b+12>>2]=10;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=0;a[b+28>>0]=1;Ig(b+32|0);f[b+52>>2]=0.0;f[b+56>>2]=10.0;d=b+60|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[d+20>>2]=0;f[b+88>>2]=9.0;sj(b+92|0);d=b+144|0;c[d>>2]=0;c[b+148>>2]=0;c[b+152>>2]=0;eh(b,5e3);fh(d,36);return}function eh(a,b){a=a|0;b=b|0;c[a+84>>2]=b;uh(a+60|0,b);return}function fh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<2)}else nh(a,b-e|0);return}function gh(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function hh(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function ih(a){a=a|0;mh(a);return}function jh(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-12|0;kh(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function kh(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-12|0;lh(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function lh(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function mh(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-32|0;rq(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function nh(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>2>>>0>>0){d=(d-(c[a>>2]|0)>>2)+b|0;e=ph(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>1;qh(f,k>>2>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>2,a+8|0);rh(f,b);sh(a,f);th(f);break}}else oh(a,b);while(0);zb=i;return}function oh(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b<<2|0)|0;c[a>>2]=d+(b<<2);return}function ph(a){a=a|0;return 1073741823}function qh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>1073741823){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<2)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function rh(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b<<2|0)|0;c[a>>2]=d+(b<<2);return}function sh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function th(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-4|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function uh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+32|0;d=f;e=c[a>>2]|0;if((((c[a+8>>2]|0)-e|0)/36|0)>>>0>>0){vh(d,b,((c[a+4>>2]|0)-e|0)/36|0,a+8|0);wh(a,d);xh(d)}zb=f;return}function vh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>119304647){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*36|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*36|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*36|0);return}function wh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(((f|0)/-36|0)*36|0)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function xh(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-36|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function yh(a){a=a|0;gh(a+144|0);tj(a+92|0);hh(a+72|0);hh(a+60|0);ih(a+32|0);jh(a+16|0);return} function aI(){var b=0,d=0;if((a[54864]|0)==0?nB(54864)|0:0){d=53568;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=53856);pB(54864)}nO(53568,49685)|0;nO(53580,49693)|0;nO(53592,49702)|0;nO(53604,49708)|0;nO(53616,49714)|0;nO(53628,49718)|0;nO(53640,49723)|0;nO(53652,49728)|0;nO(53664,49735)|0;nO(53676,49745)|0;nO(53688,49753)|0;nO(53700,49762)|0;nO(53712,49771)|0;nO(53724,49775)|0;nO(53736,49779)|0;nO(53748,49783)|0;nO(53760,49714)|0;nO(53772,49787)|0;nO(53784,49791)|0;nO(53796,49795)|0;nO(53808,49799)|0;nO(53820,49803)|0;nO(53832,49807)|0;nO(53844,49811)|0;return}function bI(){var b=0,d=0;if((a[54880]|0)==0?nB(54880)|0:0){d=53856;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=54024);pB(54880)}nO(53856,49815)|0;nO(53868,49822)|0;nO(53880,49829)|0;nO(53892,49837)|0;nO(53904,49847)|0;nO(53916,49856)|0;nO(53928,49863)|0;nO(53940,49872)|0;nO(53952,49876)|0;nO(53964,49880)|0;nO(53976,49884)|0;nO(53988,49888)|0;nO(54e3,49892)|0;nO(54012,49896)|0;return}function cI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;a=a+8|0;a=Gb[c[c[a>>2]>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];a=(FG(d,i,a,a+168|0,g,f,0)|0)-a|0;if((a|0)<168)c[b>>2]=((a|0)/12|0|0)%7|0;zb=h;return}function dI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;a=a+8|0;a=Gb[c[(c[a>>2]|0)+4>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];a=(FG(d,i,a,a+288|0,g,f,0)|0)-a|0;if((a|0)<288)c[b>>2]=((a|0)/12|0|0)%12|0;zb=h;return}function eI(d,e,f,g,h,i,j,k){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=zb;zb=zb+16|0;s=z+12|0;r=z+8|0;w=z+4|0;x=z;IE(s,g);t=XF(s,56736)|0;YF(s);c[h>>2]=0;u=t+8|0;m=0;a:while(1){l=c[e>>2]|0;if(!((j|0)!=(k|0)&(m|0)==0))break;n=l;if(l){m=c[l+12>>2]|0;if((m|0)==(c[l+16>>2]|0))m=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=cg(a[m>>0]|0)|0;if(_f(m,Wf()|0)|0){c[e>>2]=0;l=0;o=1;q=0}else{o=0;q=n}}else{l=0;o=1;q=n}p=c[f>>2]|0;m=p;do if(p){n=c[p+12>>2]|0;if((n|0)==(c[p+16>>2]|0))n=Gb[c[(c[p>>2]|0)+36>>2]&127](p)|0;else n=cg(a[n>>0]|0)|0;if(!(_f(n,Wf()|0)|0))if(o)break;else{y=63;break a}else{c[f>>2]=0;m=0;y=15;break}}else y=15;while(0);if((y|0)==15){y=0;if(o){y=63;break}else p=0}b:do if((Jb[c[(c[t>>2]|0)+36>>2]&63](t,a[j>>0]|0,0)|0)<<24>>24==37){p=j+1|0;if((p|0)==(k|0)){y=63;break a}n=Jb[c[(c[t>>2]|0)+36>>2]&63](t,a[p>>0]|0,0)|0;switch(n<<24>>24){case 48:case 69:{j=j+2|0;if((j|0)==(k|0)){y=63;break a}o=n;l=Jb[c[(c[t>>2]|0)+36>>2]&63](t,a[j>>0]|0,0)|0;j=p;break}default:{o=0;l=n}}p=c[(c[d>>2]|0)+36>>2]|0;c[w>>2]=q;c[x>>2]=m;c[r>>2]=c[w>>2];c[s>>2]=c[x>>2];q=Qb[p&15](d,r,s,g,h,i,l,o)|0;c[e>>2]=q;j=j+2|0}else{m=a[j>>0]|0;if(m<<24>>24>-1?(v=c[u>>2]|0,b[v+(m<<24>>24<<1)>>1]&8192):0){do{j=j+1|0;if((j|0)==(k|0)){j=k;break}m=a[j>>0]|0;if(m<<24>>24<=-1)break}while((b[v+(m<<24>>24<<1)>>1]&8192)!=0);while(1){if(l){m=c[l+12>>2]|0;if((m|0)==(c[l+16>>2]|0))m=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=cg(a[m>>0]|0)|0;if(_f(m,Wf()|0)|0){c[e>>2]=0;l=0;n=1}else n=0}else{l=0;n=1}do if(p){m=c[p+12>>2]|0;if((m|0)==(c[p+16>>2]|0))m=Gb[c[(c[p>>2]|0)+36>>2]&127](p)|0;else m=cg(a[m>>0]|0)|0;if(!(_f(m,Wf()|0)|0))if(n)break;else break b;else{c[f>>2]=0;y=42;break}}else y=42;while(0);if((y|0)==42){y=0;if(n)break b;else p=0}n=l+12|0;m=c[n>>2]|0;o=l+16|0;if((m|0)==(c[o>>2]|0))m=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=cg(a[m>>0]|0)|0;if((m&255)<<24>>24<=-1)break b;if(!(b[(c[u>>2]|0)+(m<<24>>24<<1)>>1]&8192))break b;m=c[n>>2]|0;if((m|0)==(c[o>>2]|0))Gb[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[n>>2]=m+1;cg(a[m>>0]|0)|0}}}n=l+12|0;m=c[n>>2]|0;o=l+16|0;if((m|0)==(c[o>>2]|0))m=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else m=cg(a[m>>0]|0)|0;q=Ib[c[(c[t>>2]|0)+12>>2]&63](t,m&255)|0;if(q<<24>>24!=(Ib[c[(c[t>>2]|0)+12>>2]&63](t,a[j>>0]|0)|0)<<24>>24){c[h>>2]=4;break}m=c[n>>2]|0;if((m|0)==(c[o>>2]|0))Gb[c[(c[l>>2]|0)+40>>2]&127](l)|0;else{c[n>>2]=m+1;cg(a[m>>0]|0)|0}j=j+1|0}while(0);m=c[h>>2]|0}if((y|0)==63)c[h>>2]=4;if(l){j=c[l+12>>2]|0;if((j|0)==(c[l+16>>2]|0))j=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else j=cg(a[j>>0]|0)|0;if(_f(j,Wf()|0)|0){c[e>>2]=0;l=0;n=1}else n=0}else{l=0;n=1}j=c[f>>2]|0;do if(j){m=c[j+12>>2]|0;if((m|0)==(c[j+16>>2]|0))j=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else j=cg(a[m>>0]|0)|0;if(!(_f(j,Wf()|0)|0))if(n)break;else{y=78;break}else{c[f>>2]=0;y=76;break}}else y=76;while(0);if((y|0)==76?n:0)y=78;if((y|0)==78)c[h>>2]=c[h>>2]|2;zb=z;return l|0}function fI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<31&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function gI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<24&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function hI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<12&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function iI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,3)|0;d=c[f>>2]|0;if((a|0)<366&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;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,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<13&(d&4|0)==0)c[b>>2]=a+-1;else c[f>>2]=d|4;zb=h;return}function kI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<60&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function lI(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;j=h+8|0;a:while(1){d=c[e>>2]|0;do if(d){h=c[d+12>>2]|0;if((h|0)==(c[d+16>>2]|0))d=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0;else d=cg(a[h>>0]|0)|0;if(_f(d,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);i=c[f>>2]|0;do if(i){d=c[i+12>>2]|0;if((d|0)==(c[i+16>>2]|0))d=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else d=cg(a[d>>0]|0)|0;if(!(_f(d,Wf()|0)|0))if(h)break;else break a;else{c[f>>2]=0;k=15;break}}else k=15;while(0);if((k|0)==15){k=0;if(h){i=0;break}else i=0}d=c[e>>2]|0;h=c[d+12>>2]|0;if((h|0)==(c[d+16>>2]|0))d=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0;else d=cg(a[h>>0]|0)|0;if((d&255)<<24>>24<=-1)break;if(!(b[(c[j>>2]|0)+(d<<24>>24<<1)>>1]&8192))break;d=c[e>>2]|0;h=d+12|0;i=c[h>>2]|0;if((i|0)==(c[d+16>>2]|0))Gb[c[(c[d>>2]|0)+40>>2]&127](d)|0;else{c[h>>2]=i+1;cg(a[i>>0]|0)|0}}d=c[e>>2]|0;do if(d){h=c[d+12>>2]|0;if((h|0)==(c[d+16>>2]|0))d=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0;else d=cg(a[h>>0]|0)|0;if(_f(d,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);do if(i){d=c[i+12>>2]|0;if((d|0)==(c[i+16>>2]|0))d=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else d=cg(a[d>>0]|0)|0;if(!(_f(d,Wf()|0)|0))if(h)break;else{k=41;break}else{c[f>>2]=0;k=39;break}}else k=39;while(0);if((k|0)==39?h:0)k=41;if((k|0)==41)c[g>>2]=c[g>>2]|2;return}function mI(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;m=zb;zb=zb+16|0;k=m+4|0;l=m;j=b+8|0;j=Gb[c[(c[j>>2]|0)+8>>2]&127](j)|0;b=a[j+11>>0]|0;if(b<<24>>24<0)i=c[j+4>>2]|0;else i=b&255;b=a[j+12+11>>0]|0;if(b<<24>>24<0)b=c[j+16>>2]|0;else b=b&255;do if((i|0)!=(0-b|0)){c[l>>2]=c[f>>2];c[k>>2]=c[l>>2];b=(FG(e,k,j,j+24|0,h,g,0)|0)-j|0;i=c[d>>2]|0;if((i|0)==12&(b|0)==0){c[d>>2]=0;break}if((i|0)<12&(b|0)==12)c[d>>2]=i+12}else c[g>>2]=c[g>>2]|4;while(0);zb=m;return}function nI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<61&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function oI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,1)|0;d=c[f>>2]|0;if((a|0)<7&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function pI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,4)|0;if(!(c[f>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a|0)<100?a+1900|0:a;c[b>>2]=a+-1900}zb=h;return}function qI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=sI(d,a,f,g,4)|0;if(!(c[f>>2]&4))c[b>>2]=a+-1900;zb=h;return}function rI(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;b=c[d>>2]|0;do if(b){h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[h>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;i=1;break}else{i=(c[d>>2]|0)==0;break}}else i=1;while(0);h=c[e>>2]|0;do if(h){b=c[h+12>>2]|0;if((b|0)==(c[h+16>>2]|0))b=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(i){j=h;k=17;break}else{k=16;break}else{c[e>>2]=0;k=14;break}}else k=14;while(0);if((k|0)==14)if(i)k=16;else{j=0;k=17}a:do if((k|0)==16)c[f>>2]=c[f>>2]|6;else if((k|0)==17){b=c[d>>2]|0;h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[h>>0]|0)|0;if((Jb[c[(c[g>>2]|0)+36>>2]&63](g,b&255,0)|0)<<24>>24!=37){c[f>>2]=c[f>>2]|4;break}b=c[d>>2]|0;h=b+12|0;i=c[h>>2]|0;if((i|0)==(c[b+16>>2]|0))Gb[c[(c[b>>2]|0)+40>>2]&127](b)|0;else{c[h>>2]=i+1;cg(a[i>>0]|0)|0}b=c[d>>2]|0;do if(b){h=c[b+12>>2]|0;if((h|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[h>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;h=1;break}else{h=(c[d>>2]|0)==0;break}}else h=1;while(0);do if(j){b=c[j+12>>2]|0;if((b|0)==(c[j+16>>2]|0))b=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(h)break a;else break;else{c[e>>2]=0;k=38;break}}else k=38;while(0);if((k|0)==38?!h:0)break;c[f>>2]=c[f>>2]|2}while(0);return}function sI(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=c[d>>2]|0;do if(i){j=c[i+12>>2]|0;if((j|0)==(c[i+16>>2]|0))i=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else i=cg(a[j>>0]|0)|0;if(_f(i,Wf()|0)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);j=c[e>>2]|0;do if(j){i=c[j+12>>2]|0;if((i|0)==(c[j+16>>2]|0))i=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else i=cg(a[i>>0]|0)|0;if(!(_f(i,Wf()|0)|0))if(k){q=17;break}else{q=16;break}else{c[e>>2]=0;q=14;break}}else q=14;while(0);if((q|0)==14)if(k)q=16;else{j=0;q=17}a:do if((q|0)==16){c[f>>2]=c[f>>2]|6;i=0}else if((q|0)==17){i=c[d>>2]|0;k=c[i+12>>2]|0;if((k|0)==(c[i+16>>2]|0))i=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else i=cg(a[k>>0]|0)|0;k=i&255;if(k<<24>>24>-1?(p=g+8|0,b[(c[p>>2]|0)+(i<<24>>24<<1)>>1]&2048):0){i=(Jb[c[(c[g>>2]|0)+36>>2]&63](g,k,0)|0)<<24>>24;k=c[d>>2]|0;l=k+12|0;m=c[l>>2]|0;if((m|0)==(c[k+16>>2]|0))Gb[c[(c[k>>2]|0)+40>>2]&127](k)|0;else{c[l>>2]=m+1;cg(a[m>>0]|0)|0}n=j;m=j;while(1){i=i+-48|0;o=h+-1|0;j=c[d>>2]|0;do if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))j=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else j=cg(a[k>>0]|0)|0;if(_f(j,Wf()|0)|0){c[d>>2]=0;l=1;break}else{l=(c[d>>2]|0)==0;break}}else l=1;while(0);if(m){j=c[m+12>>2]|0;if((j|0)==(c[m+16>>2]|0))j=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0;else j=cg(a[j>>0]|0)|0;if(_f(j,Wf()|0)|0){c[e>>2]=0;j=1;n=0;m=0}else j=0}else{j=1;m=0}k=c[d>>2]|0;if(!((h|0)>1&(l^j)))break;j=c[k+12>>2]|0;if((j|0)==(c[k+16>>2]|0))j=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else j=cg(a[j>>0]|0)|0;k=j&255;if(k<<24>>24<=-1)break a;if(!(b[(c[p>>2]|0)+(j<<24>>24<<1)>>1]&2048))break a;i=(i*10|0)+((Jb[c[(c[g>>2]|0)+36>>2]&63](g,k,0)|0)<<24>>24)|0;j=c[d>>2]|0;k=j+12|0;l=c[k>>2]|0;if((l|0)==(c[j+16>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[k>>2]=l+1;cg(a[l>>0]|0)|0}h=o}do if(k){j=c[k+12>>2]|0;if((j|0)==(c[k+16>>2]|0))j=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else j=cg(a[j>>0]|0)|0;if(_f(j,Wf()|0)|0){c[d>>2]=0;k=1;break}else{k=(c[d>>2]|0)==0;break}}else k=1;while(0);do if(n){j=c[n+12>>2]|0;if((j|0)==(c[n+16>>2]|0))j=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else j=cg(a[j>>0]|0)|0;if(!(_f(j,Wf()|0)|0))if(k)break a;else break;else{c[e>>2]=0;q=63;break}}else q=63;while(0);if((q|0)==63?!k:0)break;c[f>>2]=c[f>>2]|2;break}c[f>>2]=c[f>>2]|4;i=0}while(0);return i|0}function tI(a){a=a|0;CF(a);return}function uI(a){a=a|0;CF(a);SA(a);return}function vI(a){a=a|0;return 2}function wI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+16|0;i=h+12|0;j=h+8|0;l=h+4|0;k=h;c[l>>2]=c[b>>2];c[k>>2]=c[d>>2];c[j>>2]=c[l>>2];c[i>>2]=c[k>>2];g=PI(a,j,i,e,f,g,13152,13184)|0;zb=h;return g|0}function xI(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;i=zb;zb=zb+16|0;j=i+12|0;k=i+8|0;m=i+4|0;l=i;n=b+8|0;n=Gb[c[(c[n>>2]|0)+20>>2]&127](n)|0;c[m>>2]=c[d>>2];c[l>>2]=c[e>>2];e=a[n+8+3>>0]|0;o=e<<24>>24<0;d=o?c[n>>2]|0:n;e=d+((o?c[n+4>>2]|0:e&255)<<2)|0;c[k>>2]=c[m>>2];c[j>>2]=c[l>>2];h=PI(b,k,j,f,g,h,d,e)|0;zb=i;return h|0}function yI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56768)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];NI(a,g+24|0,b,i,f,e);zb=h;return c[b>>2]|0}function zI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56768)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];OI(a,g+16|0,b,i,f,e);zb=h;return c[b>>2]|0}function AI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;IE(i,e);e=XF(i,56768)|0;YF(i);c[j>>2]=c[d>>2];c[i>>2]=c[j>>2];_I(a,g+20|0,b,i,f,e);zb=h;return c[b>>2]|0}function BI(b,d,e,f,g,h,i,j){b=b|0;d=d|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,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;R=zb;zb=zb+144|0;k=R+128|0;j=R+112|0;P=R+124|0;Q=R+120|0;l=R+116|0;m=R+108|0;n=R+104|0;o=R+100|0;p=R+96|0;q=R+92|0;r=R+88|0;s=R+84|0;t=R+80|0;u=R+76|0;v=R+72|0;w=R+68|0;x=R+64|0;y=R+60|0;z=R+56|0;A=R+52|0;B=R+48|0;C=R+44|0;D=R+40|0;E=R+36|0;F=R+32|0;G=R+28|0;H=R+24|0;I=R+20|0;J=R+16|0;K=R+12|0;L=R+8|0;M=R+4|0;N=R;c[g>>2]=0;IE(k,f);O=XF(k,56768)|0;YF(k);do switch(i<<24>>24|0){case 65:case 97:{c[P>>2]=c[e>>2];c[k>>2]=c[P>>2];NI(b,h+24|0,d,k,g,O);S=26;break}case 104:case 66:case 98:{c[Q>>2]=c[e>>2];c[k>>2]=c[Q>>2];OI(b,h+16|0,d,k,g,O);S=26;break}case 99:{Q=b+8|0;Q=Gb[c[(c[Q>>2]|0)+12>>2]&127](Q)|0;c[l>>2]=c[d>>2];c[m>>2]=c[e>>2];S=a[Q+8+3>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+((e?c[Q+4>>2]|0:S&255)<<2)|0;c[j>>2]=c[l>>2];c[k>>2]=c[m>>2];S=PI(b,j,k,f,g,h,i,S)|0;c[d>>2]=S;S=26;break}case 101:case 100:{c[n>>2]=c[e>>2];c[k>>2]=c[n>>2];QI(b,h+12|0,d,k,g,O);S=26;break}case 68:{c[o>>2]=c[d>>2];c[p>>2]=c[e>>2];c[j>>2]=c[o>>2];c[k>>2]=c[p>>2];S=PI(b,j,k,f,g,h,12976,13008)|0;c[d>>2]=S;S=26;break}case 70:{c[q>>2]=c[d>>2];c[r>>2]=c[e>>2];c[j>>2]=c[q>>2];c[k>>2]=c[r>>2];S=PI(b,j,k,f,g,h,13008,13040)|0;c[d>>2]=S;S=26;break}case 72:{c[s>>2]=c[e>>2];c[k>>2]=c[s>>2];RI(b,h+8|0,d,k,g,O);S=26;break}case 73:{c[t>>2]=c[e>>2];c[k>>2]=c[t>>2];SI(b,h+8|0,d,k,g,O);S=26;break}case 106:{c[u>>2]=c[e>>2];c[k>>2]=c[u>>2];TI(b,h+28|0,d,k,g,O);S=26;break}case 109:{c[v>>2]=c[e>>2];c[k>>2]=c[v>>2];UI(b,h+16|0,d,k,g,O);S=26;break}case 77:{c[w>>2]=c[e>>2];c[k>>2]=c[w>>2];VI(b,h+4|0,d,k,g,O);S=26;break}case 116:case 110:{c[x>>2]=c[e>>2];c[k>>2]=c[x>>2];WI(b,d,k,g,O);S=26;break}case 112:{c[y>>2]=c[e>>2];c[k>>2]=c[y>>2];XI(b,h+8|0,d,k,g,O);S=26;break}case 114:{c[z>>2]=c[d>>2];c[A>>2]=c[e>>2];c[j>>2]=c[z>>2];c[k>>2]=c[A>>2];S=PI(b,j,k,f,g,h,13040,13084)|0;c[d>>2]=S;S=26;break}case 82:{c[B>>2]=c[d>>2];c[C>>2]=c[e>>2];c[j>>2]=c[B>>2];c[k>>2]=c[C>>2];S=PI(b,j,k,f,g,h,13088,13108)|0;c[d>>2]=S;S=26;break}case 83:{c[D>>2]=c[e>>2];c[k>>2]=c[D>>2];YI(b,h,d,k,g,O);S=26;break}case 84:{c[E>>2]=c[d>>2];c[F>>2]=c[e>>2];c[j>>2]=c[E>>2];c[k>>2]=c[F>>2];S=PI(b,j,k,f,g,h,13120,13152)|0;c[d>>2]=S;S=26;break}case 119:{c[G>>2]=c[e>>2];c[k>>2]=c[G>>2];ZI(b,h+24|0,d,k,g,O);S=26;break}case 120:{i=c[(c[b>>2]|0)+20>>2]|0;c[H>>2]=c[d>>2];c[I>>2]=c[e>>2];c[j>>2]=c[H>>2];c[k>>2]=c[I>>2];j=Ob[i&63](b,j,k,f,g,h)|0;break}case 88:{Q=b+8|0;Q=Gb[c[(c[Q>>2]|0)+24>>2]&127](Q)|0;c[J>>2]=c[d>>2];c[K>>2]=c[e>>2];S=a[Q+8+3>>0]|0;e=S<<24>>24<0;i=e?c[Q>>2]|0:Q;S=i+((e?c[Q+4>>2]|0:S&255)<<2)|0;c[j>>2]=c[J>>2];c[k>>2]=c[K>>2];S=PI(b,j,k,f,g,h,i,S)|0;c[d>>2]=S;S=26;break}case 121:{c[L>>2]=c[e>>2];c[k>>2]=c[L>>2];_I(b,h+20|0,d,k,g,O);S=26;break}case 89:{c[M>>2]=c[e>>2];c[k>>2]=c[M>>2];$I(b,h+20|0,d,k,g,O);S=26;break}case 37:{c[N>>2]=c[e>>2];c[k>>2]=c[N>>2];aJ(b,d,k,g,O);S=26;break}default:{c[g>>2]=c[g>>2]|4;S=26}}while(0);if((S|0)==26)j=c[d>>2]|0;zb=R;return j|0}function CI(b){b=b|0;if((a[54952]|0)==0?nB(54952)|0:0){MI();c[14233]=54352;pB(54952)}return c[14233]|0}function DI(b){b=b|0;if((a[54936]|0)==0?nB(54936)|0:0){LI();c[14232]=54064;pB(54936)}return c[14232]|0}function EI(b){b=b|0;if((a[54920]|0)==0?nB(54920)|0:0){KI();c[14231]=54032;pB(54920)}return c[14231]|0}function FI(b){b=b|0;if((a[54912]|0)==0?nB(54912)|0:0){c[14228]=0;c[14229]=0;c[14230]=0;tO(56912,17648,JI(17648)|0);pB(54912)}return 56912}function GI(b){b=b|0;if((a[54904]|0)==0?nB(54904)|0:0){c[14225]=0;c[14226]=0;c[14227]=0;tO(56900,17600,JI(17600)|0);pB(54904)}return 56900}function HI(b){b=b|0;if((a[54896]|0)==0?nB(54896)|0:0){c[14222]=0;c[14223]=0;c[14224]=0;tO(56888,17564,JI(17564)|0);pB(54896)}return 56888}function II(b){b=b|0;if((a[54888]|0)==0?nB(54888)|0:0){c[14219]=0;c[14220]=0;c[14221]=0;tO(56876,17528,JI(17528)|0);pB(54888)}return 56876}function JI(a){a=a|0;return ly(a)|0}function KI(){var b=0,d=0;if((a[54928]|0)==0?nB(54928)|0:0){d=54032;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=54056);pB(54928)}AO(54032,17732)|0;AO(54044,17744)|0;return}function LI(){var b=0,d=0;if((a[54944]|0)==0?nB(54944)|0:0){d=54064;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=54352);pB(54944)}AO(54064,17756)|0;AO(54076,17788)|0;AO(54088,17824)|0;AO(54100,17848)|0;AO(54112,17872)|0;AO(54124,17888)|0;AO(54136,17908)|0;AO(54148,17928)|0;AO(54160,17956)|0;AO(54172,17996)|0;AO(54184,18028)|0;AO(54196,18064)|0;AO(54208,18100)|0;AO(54220,18116)|0;AO(54232,18132)|0;AO(54244,18148)|0;AO(54256,17872)|0;AO(54268,18164)|0;AO(54280,18180)|0;AO(54292,18196)|0;AO(54304,18212)|0;AO(54316,18228)|0;AO(54328,18244)|0;AO(54340,18260)|0;return}function MI(){var b=0,d=0;if((a[54960]|0)==0?nB(54960)|0:0){d=54352;do{c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}d=d+12|0}while((d|0)!=54520);pB(54960)}AO(54352,18276)|0;AO(54364,18304)|0;AO(54376,18332)|0;AO(54388,18364)|0;AO(54400,18404)|0;AO(54412,18440)|0;AO(54424,18468)|0;AO(54436,18504)|0;AO(54448,18520)|0;AO(54460,18536)|0;AO(54472,18552)|0;AO(54484,18568)|0;AO(54496,18584)|0;AO(54508,18600)|0;return}function NI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;a=a+8|0;a=Gb[c[c[a>>2]>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];a=(gH(d,i,a,a+168|0,g,f,0)|0)-a|0;if((a|0)<168)c[b>>2]=((a|0)/12|0|0)%7|0;zb=h;return}function OI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0;h=zb;zb=zb+16|0;i=h+4|0;j=h;a=a+8|0;a=Gb[c[(c[a>>2]|0)+4>>2]&127](a)|0;c[j>>2]=c[e>>2];c[i>>2]=c[j>>2];a=(gH(d,i,a,a+288|0,g,f,0)|0)-a|0;if((a|0)<288)c[b>>2]=((a|0)/12|0|0)%12|0;zb=h;return}function PI(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=zb;zb=zb+16|0;q=v+12|0;p=v+8|0;s=v+4|0;t=v;IE(q,e);r=XF(q,56768)|0;YF(q);c[f>>2]=0;k=0;a:while(1){j=c[b>>2]|0;if(!((h|0)!=(i|0)&(k|0)==0))break;l=j;if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))k=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=jE(c[k>>2]|0)|0;if(JE(k,iE()|0)|0){c[b>>2]=0;j=0;m=1;o=0}else{m=0;o=l}}else{j=0;m=1;o=l}n=c[d>>2]|0;k=n;do if(n){l=c[n+12>>2]|0;if((l|0)==(c[n+16>>2]|0))l=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else l=jE(c[l>>2]|0)|0;if(!(JE(l,iE()|0)|0))if(m)break;else{u=60;break a}else{c[d>>2]=0;k=0;u=15;break}}else u=15;while(0);if((u|0)==15){u=0;if(m){u=60;break}else n=0}b:do if((Jb[c[(c[r>>2]|0)+52>>2]&63](r,c[h>>2]|0,0)|0)<<24>>24==37){n=h+4|0;if((n|0)==(i|0)){u=60;break a}l=Jb[c[(c[r>>2]|0)+52>>2]&63](r,c[n>>2]|0,0)|0;switch(l<<24>>24){case 48:case 69:{h=h+8|0;if((h|0)==(i|0)){u=60;break a}m=l;j=Jb[c[(c[r>>2]|0)+52>>2]&63](r,c[h>>2]|0,0)|0;h=n;break}default:{m=0;j=l}}n=c[(c[a>>2]|0)+36>>2]|0;c[s>>2]=o;c[t>>2]=k;c[p>>2]=c[s>>2];c[q>>2]=c[t>>2];o=Qb[n&15](a,p,q,e,f,g,j,m)|0;c[b>>2]=o;h=h+8|0}else{if(!(Jb[c[(c[r>>2]|0)+12>>2]&63](r,8192,c[h>>2]|0)|0)){l=j+12|0;k=c[l>>2]|0;m=j+16|0;if((k|0)==(c[m>>2]|0))k=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=jE(c[k>>2]|0)|0;o=Ib[c[(c[r>>2]|0)+28>>2]&63](r,k)|0;if((o|0)!=(Ib[c[(c[r>>2]|0)+28>>2]&63](r,c[h>>2]|0)|0)){c[f>>2]=4;break}k=c[l>>2]|0;if((k|0)==(c[m>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[l>>2]=k+4;jE(c[k>>2]|0)|0}h=h+4|0;break}do{h=h+4|0;if((h|0)==(i|0)){h=i;break}}while(Jb[c[(c[r>>2]|0)+12>>2]&63](r,8192,c[h>>2]|0)|0);while(1){if(j){k=c[j+12>>2]|0;if((k|0)==(c[j+16>>2]|0))k=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=jE(c[k>>2]|0)|0;if(JE(k,iE()|0)|0){c[b>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}do if(n){k=c[n+12>>2]|0;if((k|0)==(c[n+16>>2]|0))k=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else k=jE(c[k>>2]|0)|0;if(!(JE(k,iE()|0)|0))if(l)break;else break b;else{c[d>>2]=0;u=40;break}}else u=40;while(0);if((u|0)==40){u=0;if(l)break b;else n=0}l=j+12|0;k=c[l>>2]|0;m=j+16|0;if((k|0)==(c[m>>2]|0))k=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else k=jE(c[k>>2]|0)|0;if(!(Jb[c[(c[r>>2]|0)+12>>2]&63](r,8192,k)|0))break b;k=c[l>>2]|0;if((k|0)==(c[m>>2]|0))Gb[c[(c[j>>2]|0)+40>>2]&127](j)|0;else{c[l>>2]=k+4;jE(c[k>>2]|0)|0}}}while(0);k=c[f>>2]|0}if((u|0)==60)c[f>>2]=4;if(j){h=c[j+12>>2]|0;if((h|0)==(c[j+16>>2]|0))h=Gb[c[(c[j>>2]|0)+36>>2]&127](j)|0;else h=jE(c[h>>2]|0)|0;if(JE(h,iE()|0)|0){c[b>>2]=0;j=0;l=1}else l=0}else{j=0;l=1}h=c[d>>2]|0;do if(h){k=c[h+12>>2]|0;if((k|0)==(c[h+16>>2]|0))h=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=jE(c[k>>2]|0)|0;if(!(JE(h,iE()|0)|0))if(l)break;else{u=75;break}else{c[d>>2]=0;u=73;break}}else u=73;while(0);if((u|0)==73?l:0)u=75;if((u|0)==75)c[f>>2]=c[f>>2]|2;zb=v;return j|0}function QI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<31&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function RI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<24&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function SI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a+-1|0)>>>0<12&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function TI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,3)|0;d=c[f>>2]|0;if((a|0)<366&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function UI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<13&(d&4|0)==0)c[b>>2]=a+-1;else c[f>>2]=d|4;zb=h;return}function VI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<60&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function WI(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;a:while(1){a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(JE(a,iE()|0)|0){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);g=c[d>>2]|0;do if(g){a=c[g+12>>2]|0;if((a|0)==(c[g+16>>2]|0))a=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else a=jE(c[a>>2]|0)|0;if(!(JE(a,iE()|0)|0))if(h){h=g;break}else{h=g;break a}else{c[d>>2]=0;i=15;break}}else i=15;while(0);if((i|0)==15){i=0;if(h){h=0;break}else h=0}a=c[b>>2]|0;g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(!(Jb[c[(c[f>>2]|0)+12>>2]&63](f,8192,a)|0))break;a=c[b>>2]|0;g=a+12|0;h=c[g>>2]|0;if((h|0)==(c[a+16>>2]|0))Gb[c[(c[a>>2]|0)+40>>2]&127](a)|0;else{c[g>>2]=h+4;jE(c[h>>2]|0)|0}}a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(JE(a,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){a=c[h+12>>2]|0;if((a|0)==(c[h+16>>2]|0))a=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else a=jE(c[a>>2]|0)|0;if(!(JE(a,iE()|0)|0))if(g)break;else{i=40;break}else{c[d>>2]=0;i=38;break}}else i=38;while(0);if((i|0)==38?g:0)i=40;if((i|0)==40)c[e>>2]=c[e>>2]|2;return}function XI(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;m=zb;zb=zb+16|0;k=m+4|0;l=m;j=b+8|0;j=Gb[c[(c[j>>2]|0)+8>>2]&127](j)|0;b=a[j+8+3>>0]|0;if(b<<24>>24<0)i=c[j+4>>2]|0;else i=b&255;b=a[j+20+3>>0]|0;if(b<<24>>24<0)b=c[j+16>>2]|0;else b=b&255;do if((i|0)!=(0-b|0)){c[l>>2]=c[f>>2];c[k>>2]=c[l>>2];b=(gH(e,k,j,j+24|0,h,g,0)|0)-j|0;i=c[d>>2]|0;if((i|0)==12&(b|0)==0){c[d>>2]=0;break}if((i|0)<12&(b|0)==12)c[d>>2]=i+12}else c[g>>2]=c[g>>2]|4;while(0);zb=m;return}function YI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,2)|0;d=c[f>>2]|0;if((a|0)<61&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function ZI(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,1)|0;d=c[f>>2]|0;if((a|0)<7&(d&4|0)==0)c[b>>2]=a;else c[f>>2]=d|4;zb=h;return}function _I(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,4)|0;if(!(c[f>>2]&4)){if((a|0)<69)a=a+2e3|0;else a=(a|0)<100?a+1900|0:a;c[b>>2]=a+-1900}zb=h;return}function $I(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=zb;zb=zb+16|0;a=h+4|0;i=h;c[i>>2]=c[e>>2];c[a>>2]=c[i>>2];a=bJ(d,a,f,g,4)|0;if(!(c[f>>2]&4))c[b>>2]=a+-1900;zb=h;return}function aJ(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;a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(JE(a,iE()|0)|0){c[b>>2]=0;h=1;break}else{h=(c[b>>2]|0)==0;break}}else h=1;while(0);g=c[d>>2]|0;do if(g){a=c[g+12>>2]|0;if((a|0)==(c[g+16>>2]|0))a=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else a=jE(c[a>>2]|0)|0;if(!(JE(a,iE()|0)|0))if(h){i=g;j=17;break}else{j=16;break}else{c[d>>2]=0;j=14;break}}else j=14;while(0);if((j|0)==14)if(h)j=16;else{i=0;j=17}a:do if((j|0)==16)c[e>>2]=c[e>>2]|6;else if((j|0)==17){a=c[b>>2]|0;g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if((Jb[c[(c[f>>2]|0)+52>>2]&63](f,a,0)|0)<<24>>24!=37){c[e>>2]=c[e>>2]|4;break}a=c[b>>2]|0;g=a+12|0;h=c[g>>2]|0;if((h|0)==(c[a+16>>2]|0))Gb[c[(c[a>>2]|0)+40>>2]&127](a)|0;else{c[g>>2]=h+4;jE(c[h>>2]|0)|0}a=c[b>>2]|0;do if(a){g=c[a+12>>2]|0;if((g|0)==(c[a+16>>2]|0))a=Gb[c[(c[a>>2]|0)+36>>2]&127](a)|0;else a=jE(c[g>>2]|0)|0;if(JE(a,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(i){a=c[i+12>>2]|0;if((a|0)==(c[i+16>>2]|0))a=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else a=jE(c[a>>2]|0)|0;if(!(JE(a,iE()|0)|0))if(g)break a;else break;else{c[d>>2]=0;j=38;break}}else j=38;while(0);if((j|0)==38?!g:0)break;c[e>>2]=c[e>>2]|2}while(0);return}function bJ(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;g=c[a>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=jE(c[h>>2]|0)|0;if(JE(g,iE()|0)|0){c[a>>2]=0;i=1;break}else{i=(c[a>>2]|0)==0;break}}else i=1;while(0);h=c[b>>2]|0;do if(h){g=c[h+12>>2]|0;if((g|0)==(c[h+16>>2]|0))g=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else g=jE(c[g>>2]|0)|0;if(!(JE(g,iE()|0)|0))if(i){n=17;break}else{n=16;break}else{c[b>>2]=0;n=14;break}}else n=14;while(0);if((n|0)==14)if(i)n=16;else{h=0;n=17}a:do if((n|0)==16){c[d>>2]=c[d>>2]|6;g=0}else if((n|0)==17){g=c[a>>2]|0;i=c[g+12>>2]|0;if((i|0)==(c[g+16>>2]|0))g=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=jE(c[i>>2]|0)|0;if(!(Jb[c[(c[e>>2]|0)+12>>2]&63](e,2048,g)|0)){c[d>>2]=c[d>>2]|4;g=0;break}g=(Jb[c[(c[e>>2]|0)+52>>2]&63](e,g,0)|0)<<24>>24;i=c[a>>2]|0;j=i+12|0;k=c[j>>2]|0;if((k|0)==(c[i+16>>2]|0))Gb[c[(c[i>>2]|0)+40>>2]&127](i)|0;else{c[j>>2]=k+4;jE(c[k>>2]|0)|0}l=h;k=h;while(1){g=g+-48|0;m=f+-1|0;h=c[a>>2]|0;do if(h){i=c[h+12>>2]|0;if((i|0)==(c[h+16>>2]|0))h=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else h=jE(c[i>>2]|0)|0;if(JE(h,iE()|0)|0){c[a>>2]=0;j=1;break}else{j=(c[a>>2]|0)==0;break}}else j=1;while(0);if(k){h=c[k+12>>2]|0;if((h|0)==(c[k+16>>2]|0))h=Gb[c[(c[k>>2]|0)+36>>2]&127](k)|0;else h=jE(c[h>>2]|0)|0;if(JE(h,iE()|0)|0){c[b>>2]=0;h=1;l=0;k=0}else h=0}else{h=1;k=0}i=c[a>>2]|0;if(!((f|0)>1&(j^h)))break;h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=jE(c[h>>2]|0)|0;if(!(Jb[c[(c[e>>2]|0)+12>>2]&63](e,2048,h)|0))break a;g=(g*10|0)+((Jb[c[(c[e>>2]|0)+52>>2]&63](e,h,0)|0)<<24>>24)|0;h=c[a>>2]|0;i=h+12|0;j=c[i>>2]|0;if((j|0)==(c[h+16>>2]|0))Gb[c[(c[h>>2]|0)+40>>2]&127](h)|0;else{c[i>>2]=j+4;jE(c[j>>2]|0)|0}f=m}do if(i){h=c[i+12>>2]|0;if((h|0)==(c[i+16>>2]|0))h=Gb[c[(c[i>>2]|0)+36>>2]&127](i)|0;else h=jE(c[h>>2]|0)|0;if(JE(h,iE()|0)|0){c[a>>2]=0;i=1;break}else{i=(c[a>>2]|0)==0;break}}else i=1;while(0);do if(l){h=c[l+12>>2]|0;if((h|0)==(c[l+16>>2]|0))h=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else h=jE(c[h>>2]|0)|0;if(!(JE(h,iE()|0)|0))if(i)break a;else break;else{c[b>>2]=0;n=61;break}}else n=61;while(0);if((n|0)==61?!i:0)break;c[d>>2]=c[d>>2]|2}while(0);return g|0}function cJ(a){a=a|0;hJ(a+8|0);CF(a);return}function dJ(a){a=a|0;hJ(a+8|0);CF(a);SA(a);return}function eJ(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;j=zb;zb=zb+112|0;e=j;f=j+100|0;c[f>>2]=e+100;fJ(b+8|0,e,f,g,h,i);i=c[f>>2]|0;h=e;e=c[d>>2]|0;while(1){if((h|0)==(i|0))break;f=a[h>>0]|0;if(!e)e=0;else{b=e+24|0;g=c[b>>2]|0;if((g|0)==(c[e+28>>2]|0)){d=c[(c[e>>2]|0)+52>>2]|0;f=cg(f)|0;f=Ib[d&63](e,f)|0}else{c[b>>2]=g+1;a[g>>0]=f;f=cg(f)|0}d=_f(f,Wf()|0)|0;e=d?0:e}h=h+1|0}zb=j;return e|0}function fJ(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;l=zb;zb=zb+16|0;i=l;a[i>>0]=37;j=i+1|0;a[j>>0]=g;k=i+2|0;a[k>>0]=h;a[i+3>>0]=0;if(h<<24>>24){a[j>>0]=h;a[k>>0]=g}k=gJ(d,c[e>>2]|0)|0;k=d+(Sa(d|0,k|0,i|0,f|0,c[b>>2]|0)|0)|0;c[e>>2]=k;zb=l;return}function gJ(a,b){a=a|0;b=b|0;return b-a|0}function hJ(a){a=a|0;var b=0;b=c[a>>2]|0;if((b|0)!=(_F()|0))Vy(c[a>>2]|0);return}function iJ(a){a=a|0;hJ(a+8|0);CF(a);return}function jJ(a){a=a|0;hJ(a+8|0);CF(a);SA(a);return}function kJ(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;i=zb;zb=zb+416|0;d=i;e=i+400|0;c[e>>2]=d+400;lJ(a+8|0,d,e,f,g,h);h=c[e>>2]|0;g=d;d=c[b>>2]|0;while(1){if((g|0)==(h|0))break;e=c[g>>2]|0;if(!d)d=0;else{a=d+24|0;f=c[a>>2]|0;if((f|0)==(c[d+28>>2]|0)){b=c[(c[d>>2]|0)+52>>2]|0;e=jE(e)|0;e=Ib[b&63](d,e)|0}else{c[a>>2]=f+4;c[f>>2]=e;e=jE(e)|0}b=JE(e,iE()|0)|0;d=b?0:d}g=g+4|0}zb=i;return d|0}function lJ(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;h=zb;zb=zb+128|0;k=h;l=h+116|0;i=h+104|0;j=h+112|0;c[l>>2]=k+100;fJ(a,k,l,e,f,g);e=i;c[e>>2]=0;c[e+4>>2]=0;c[j>>2]=k;e=mJ(b,c[d>>2]|0)|0;a=ez(c[a>>2]|0)|0;e=Sz(b,j,e,i)|0;if(a|0)ez(a)|0;if((e|0)==-1)nJ(0);else{c[d>>2]=b+(e<<2);zb=h;return}}function mJ(a,b){a=a|0;b=b|0;return b-a>>2|0}function nJ(a){a=a|0;ua()}function oJ(a){a=a|0;CF(a);return}function pJ(a){a=a|0;CF(a);SA(a);return}function qJ(a){a=a|0;return 127}function rJ(a){a=a|0;return 127}function sJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function tJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function uJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function vJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;hO(a,1,45);return}function wJ(a){a=a|0;return 0}function xJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function yJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function zJ(a){a=a|0;CF(a);return}function AJ(a){a=a|0;CF(a);SA(a);return}function BJ(a){a=a|0;return 127}function CJ(a){a=a|0;return 127}function DJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function EJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function FJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function GJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;hO(a,1,45);return}function HJ(a){a=a|0;return 0}function IJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function JJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function KJ(a){a=a|0;CF(a);return}function LJ(a){a=a|0;CF(a);SA(a);return}function MJ(a){a=a|0;return 2147483647}function NJ(a){a=a|0;return 2147483647}function OJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function PJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function QJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function RJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;uO(a,1,45);return}function SJ(a){a=a|0;return 0}function TJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function UJ(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function VJ(a){a=a|0;CF(a);return}function WJ(a){a=a|0;CF(a);SA(a);return}function XJ(a){a=a|0;return 2147483647}function YJ(a){a=a|0;return 2147483647}function ZJ(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function _J(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function $J(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[a+(b<<2)>>2]=0;b=b+1|0}return}function aK(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;uO(a,1,45);return}function bK(a){a=a|0;return 0}function cK(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function dK(b,c){b=b|0;c=c|0;a[b>>0]=2;a[b+1>>0]=3;a[b+2>>0]=0;a[b+3>>0]=4;return}function eK(a){a=a|0;CF(a);return}function fK(a){a=a|0;CF(a);SA(a);return}function gK(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=zb;zb=zb+256|0;n=v+240|0;q=v+216|0;m=v+112|0;u=v+232|0;p=v+228|0;s=v+224|0;j=v+250|0;w=v+220|0;o=v;c[u>>2]=m;c[u+4>>2]=145;IE(s,g);b=XF(s,56736)|0;a[j>>0]=0;c[w>>2]=c[e>>2];l=c[g+4>>2]|0;c[n>>2]=c[w>>2];if(jK(d,n,f,s,l,h,j,b,u,p,m+100|0)|0){Kb[c[(c[b>>2]|0)+32>>2]&15](b,50465,50475,n)|0;l=c[p>>2]|0;f=c[u>>2]|0;b=l-f|0;if((b|0)>98){b=FO(b+2|0)|0;if(!b)aO();else{k=b;r=b}}else{k=o;r=0}if(!(a[j>>0]|0))b=k;else{a[k>>0]=45;b=k+1|0}k=n+10|0;m=n;j=f;g=b;b=l;while(1){if(j>>>0>=b>>>0)break;f=a[j>>0]|0;b=n;while(1){if((b|0)==(k|0)){b=k;break}if((a[b>>0]|0)==f<<24>>24)break;b=b+1|0}a[g>>0]=a[50465+(b-m)>>0]|0;j=j+1|0;g=g+1|0;b=c[p>>2]|0}a[g>>0]=0;c[q>>2]=i;if((Cz(o,50476,q)|0)!=1)nJ(0);if(r|0)GO(r)}b=c[d>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[f>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);b=c[e>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[f>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(g)break;else{t=34;break}else{c[e>>2]=0;t=32;break}}else t=32;while(0);if((t|0)==32?g:0)t=34;if((t|0)==34)c[h>>2]=c[h>>2]|2;f=c[d>>2]|0;YF(s);b=c[u>>2]|0;c[u>>2]=0;if(b|0)Sb[c[u+4>>2]&255](b);zb=v;return f|0}function hK(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+128|0;j=s+120|0;b=s;r=s+112|0;m=s+108|0;p=s+100|0;k=s+124|0;n=s+104|0;c[r>>2]=b;c[r+4>>2]=145;IE(p,g);l=XF(p,56736)|0;a[k>>0]=0;o=c[e>>2]|0;c[n>>2]=o;g=c[g+4>>2]|0;c[j>>2]=c[n>>2];n=o;if(jK(d,j,f,p,g,h,k,l,r,m,b+100|0)|0){b=i+11|0;if((a[b>>0]|0)<0){f=c[i>>2]|0;a[j>>0]=0;bg(f,j);c[i+4>>2]=0}else{a[j>>0]=0;bg(i,j);a[b>>0]=0}if(a[k>>0]|0)sO(i,Ib[c[(c[l>>2]|0)+28>>2]&63](l,45)|0);k=Ib[c[(c[l>>2]|0)+28>>2]&63](l,48)|0;g=c[m>>2]|0;j=g+-1|0;b=c[r>>2]|0;while(1){if(b>>>0>=j>>>0)break;if((a[b>>0]|0)!=k<<24>>24)break;b=b+1|0}kK(i,b,g)|0}b=c[d>>2]|0;do if(b){g=c[b+12>>2]|0;if((g|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=cg(a[g>>0]|0)|0;if(_f(b,Wf()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);do if(o){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=Gb[c[(c[o>>2]|0)+36>>2]&127](n)|0;else b=cg(a[b>>0]|0)|0;if(!(_f(b,Wf()|0)|0))if(g)break;else{q=27;break}else{c[e>>2]=0;q=25;break}}else q=25;while(0);if((q|0)==25?g:0)q=27;if((q|0)==27)c[h>>2]=c[h>>2]|2;g=c[d>>2]|0;YF(p);b=c[r>>2]|0;c[r>>2]=0;if(b|0)Sb[c[r+4>>2]&255](b);zb=s;return g|0}function iK(a){a=a|0;return}function jK(e,f,g,h,i,j,k,l,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;var 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;Y=zb;zb=zb+512|0;I=Y+488|0;O=Y;X=Y+480|0;Q=Y+472|0;J=Y+468|0;K=Y+496|0;L=Y+493|0;M=Y+492|0;S=Y+456|0;T=Y+444|0;U=Y+432|0;V=Y+420|0;W=Y+408|0;N=Y+404|0;R=Y+400|0;c[I>>2]=o;c[X>>2]=O;c[X+4>>2]=145;c[Q>>2]=O;c[J>>2]=O+400;c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[S+(o<<2)>>2]=0;o=o+1|0}c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[T+(o<<2)>>2]=0;o=o+1|0}c[U>>2]=0;c[U+4>>2]=0;c[U+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[U+(o<<2)>>2]=0;o=o+1|0}c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[V+(o<<2)>>2]=0;o=o+1|0}c[W>>2]=0;c[W+4>>2]=0;c[W+8>>2]=0;o=0;while(1){if((o|0)==3)break;c[W+(o<<2)>>2]=0;o=o+1|0}mK(g,h,K,L,M,S,T,U,V,N);c[n>>2]=c[m>>2];B=l+8|0;C=U+11|0;D=U+4|0;E=V+11|0;F=V+4|0;G=S+11|0;H=S+4|0;v=(i&512|0)!=0;w=T+11|0;x=K+3|0;y=T+4|0;z=W+11|0;A=W+4|0;O=0;u=0;a:while(1){if(u>>>0>=4){P=243;break}o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);g=c[f>>2]|0;do if(g){o=c[g+12>>2]|0;if((o|0)==(c[g+16>>2]|0))o=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(h){t=g;break}else{P=243;break a}else{c[f>>2]=0;P=31;break}}else P=31;while(0);if((P|0)==31){P=0;if(h){P=243;break}else t=0}b:do switch(a[K+u>>0]|0){case 1:{if((u|0)==3)o=O;else{o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((o&255)<<24>>24<=-1){P=45;break a}if(!(b[(c[B>>2]|0)+(o<<24>>24<<1)>>1]&8192)){P=45;break a}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;o=cg(a[h>>0]|0)|0}sO(W,o&255);P=47}break}case 0:{if((u|0)==3)o=O;else P=47;break}case 3:{o=a[C>>0]|0;o=o<<24>>24<0?c[D>>2]|0:o&255;l=a[E>>0]|0;l=l<<24>>24<0?c[F>>2]|0:l&255;if((o|0)==(0-l|0))o=O;else{i=(o|0)==0;o=c[e>>2]|0;g=c[o+12>>2]|0;h=(g|0)==(c[o+16>>2]|0);if(i|(l|0)==0){if(h)o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;o=o&255;if(i){if((a[((a[E>>0]|0)<0?c[V>>2]|0:V)>>0]|0)!=o<<24>>24){o=O;break b}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}a[k>>0]=1;o=a[E>>0]|0;o=(o<<24>>24<0?c[F>>2]|0:o&255)>>>0>1?V:O;break b}if((a[((a[C>>0]|0)<0?c[U>>2]|0:U)>>0]|0)!=o<<24>>24){a[k>>0]=1;o=O;break b}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}o=a[C>>0]|0;o=(o<<24>>24<0?c[D>>2]|0:o&255)>>>0>1?U:O;break b}if(h)o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;g=c[e>>2]|0;h=g+12|0;l=c[h>>2]|0;i=(l|0)==(c[g+16>>2]|0);if((a[((a[C>>0]|0)<0?c[U>>2]|0:U)>>0]|0)==(o&255)<<24>>24){if(i)Gb[c[(c[g>>2]|0)+40>>2]&127](g)|0;else{c[h>>2]=l+1;cg(a[l>>0]|0)|0}o=a[C>>0]|0;o=(o<<24>>24<0?c[D>>2]|0:o&255)>>>0>1?U:O;break b}if(i)o=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else o=cg(a[l>>0]|0)|0;if((a[((a[E>>0]|0)<0?c[V>>2]|0:V)>>0]|0)!=(o&255)<<24>>24){P=105;break a}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}a[k>>0]=1;o=a[E>>0]|0;o=(o<<24>>24<0?c[F>>2]|0:o&255)>>>0>1?V:O}break}case 2:{if(u>>>0<2|(O|0)!=0){o=a[w>>0]|0;h=o<<24>>24<0;g=c[T>>2]|0;l=h?g:T;i=l;if(!u)h=i;else{s=i;P=110}}else{if(!(v|(u|0)==2&(a[x>>0]|0)!=0)){o=0;break b}o=a[w>>0]|0;h=o<<24>>24<0;g=c[T>>2]|0;s=h?g:T;l=s;P=110}c:do if((P|0)==110){P=0;if((d[K+(u+-1)>>0]|0)<2){i=l+(h?c[y>>2]|0:o&255)|0;h=s;while(1){p=h;if((i|0)==(p|0))break;q=a[p>>0]|0;if(q<<24>>24<=-1)break;if(!(b[(c[B>>2]|0)+(q<<24>>24<<1)>>1]&8192))break;h=p+1|0}q=h-s|0;p=a[z>>0]|0;r=p<<24>>24<0;i=c[A>>2]|0;p=p&255;if(q>>>0<=(r?i:p)>>>0){Z=(c[W>>2]|0)+i|0;i=W+p|0;p=r?Z:i;i=r?Z+(0-q)|0:i+(0-q)|0;while(1){if((i|0)==(p|0))break c;if((a[i>>0]|0)!=(a[l>>0]|0)){h=s;break c}l=l+1|0;i=i+1|0}}else h=s}else h=s}while(0);i=h;h=t;d:while(1){Z=o<<24>>24<0;if((i|0)==((Z?g:T)+(Z?c[y>>2]|0:o&255)|0))break;o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(g){l=h;break}else break d;else{c[f>>2]=0;P=136;break}}else P=136;while(0);if((P|0)==136){P=0;if(g)break;else l=0}o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((a[i>>0]|0)!=(o&255)<<24>>24)break;o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}i=i+1|0;o=a[w>>0]|0;g=c[T>>2]|0;h=l}if(v?(Z=a[w>>0]|0,t=Z<<24>>24<0,(i|0)!=((t?c[T>>2]|0:T)+(t?c[y>>2]|0:Z&255)|0)):0){P=148;break a}else o=O;break}case 4:{i=0;l=t;o=t;e:while(1){g=c[e>>2]|0;do if(g){h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=cg(a[h>>0]|0)|0;if(_f(g,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);do if(l){g=c[l+12>>2]|0;if((g|0)==(c[l+16>>2]|0))g=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else g=cg(a[g>>0]|0)|0;if(!(_f(g,Wf()|0)|0))if(h){p=l;break}else{l=o;break e}else{c[f>>2]=0;o=0;P=162;break}}else P=162;while(0);if((P|0)==162){P=0;if(h){l=o;break}else p=0}g=c[e>>2]|0;h=c[g+12>>2]|0;if((h|0)==(c[g+16>>2]|0))g=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else g=cg(a[h>>0]|0)|0;h=g&255;if(h<<24>>24>-1?(b[(c[B>>2]|0)+(g<<24>>24<<1)>>1]&2048)!=0:0){g=c[n>>2]|0;if((g|0)==(c[I>>2]|0)){nK(m,n,I);g=c[n>>2]|0}c[n>>2]=g+1;a[g>>0]=h;g=i+1|0}else{Z=a[G>>0]|0;if(!((a[M>>0]|0)==h<<24>>24&(i|0?((Z<<24>>24<0?c[H>>2]|0:Z&255)|0)!=0:0))){l=o;break}g=c[Q>>2]|0;if((g|0)==(c[J>>2]|0)){oK(X,Q,J);g=c[Q>>2]|0}c[Q>>2]=g+4;c[g>>2]=i;g=0}h=c[e>>2]|0;l=h+12|0;i=c[l>>2]|0;if((i|0)==(c[h+16>>2]|0))Gb[c[(c[h>>2]|0)+40>>2]&127](h)|0;else{c[l>>2]=i+1;cg(a[i>>0]|0)|0}i=g;l=p}o=c[Q>>2]|0;if(i|0?(c[X>>2]|0)!=(o|0):0){if((o|0)==(c[J>>2]|0)){oK(X,Q,J);o=c[Q>>2]|0}c[Q>>2]=o+4;c[o>>2]=i}f:do if((c[N>>2]|0)>0){o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(l){o=c[l+12>>2]|0;if((o|0)==(c[l+16>>2]|0))o=Gb[c[(c[l>>2]|0)+36>>2]&127](l)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(g)break;else{P=204;break a}else{c[f>>2]=0;P=198;break}}else P=198;while(0);if((P|0)==198){P=0;if(g){P=204;break a}else l=0}o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((a[L>>0]|0)!=(o&255)<<24>>24){P=204;break a}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}h=l;while(1){if((c[N>>2]|0)<=0)break f;o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(g){l=h;break}else{P=230;break a}else{c[f>>2]=0;P=223;break}}else P=223;while(0);if((P|0)==223){P=0;if(g){P=230;break a}else l=0}o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((o&255)<<24>>24<=-1){P=230;break a}if(!(b[(c[B>>2]|0)+(o<<24>>24<<1)>>1]&2048)){P=230;break a}if((c[n>>2]|0)==(c[I>>2]|0))nK(m,n,I);o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;g=c[n>>2]|0;c[n>>2]=g+1;a[g>>0]=o;c[N>>2]=(c[N>>2]|0)+-1;o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}h=l}}while(0);if((c[n>>2]|0)==(c[m>>2]|0)){P=241;break a}else o=O;break}default:o=O}while(0);g:do if((P|0)==47){P=0;h=t;while(1){o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;g=1;break}else{g=(c[e>>2]|0)==0;break}}else g=1;while(0);do if(h){o=c[h+12>>2]|0;if((o|0)==(c[h+16>>2]|0))o=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else o=cg(a[o>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(g){l=h;break}else{o=O;break g}else{c[f>>2]=0;P=61;break}}else P=61;while(0);if((P|0)==61){P=0;if(g){o=O;break g}else l=0}o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((o&255)<<24>>24<=-1){o=O;break g}if(!(b[(c[B>>2]|0)+(o<<24>>24<<1)>>1]&8192)){o=O;break g}o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;o=cg(a[h>>0]|0)|0}sO(W,o&255);h=l}}while(0);O=o;u=u+1|0}h:do if((P|0)==45){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==105){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==148){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==204){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==230){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==241){c[j>>2]=c[j>>2]|4;g=0}else if((P|0)==243){i:do if(O|0){i=O+11|0;p=O+4|0;l=1;j:while(1){o=a[i>>0]|0;if(o<<24>>24<0)o=c[p>>2]|0;else o=o&255;if(l>>>0>=o>>>0)break i;o=c[e>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(_f(o,Wf()|0)|0){c[e>>2]=0;h=1;break}else{h=(c[e>>2]|0)==0;break}}else h=1;while(0);o=c[f>>2]|0;do if(o){g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if(!(_f(o,Wf()|0)|0))if(h)break;else break j;else{c[f>>2]=0;P=262;break}}else P=262;while(0);if((P|0)==262?(P=0,h):0)break;o=c[e>>2]|0;g=c[o+12>>2]|0;if((g|0)==(c[o+16>>2]|0))o=Gb[c[(c[o>>2]|0)+36>>2]&127](o)|0;else o=cg(a[g>>0]|0)|0;if((a[i>>0]|0)<0)g=c[O>>2]|0;else g=O;if((a[g+l>>0]|0)!=(o&255)<<24>>24)break;o=c[e>>2]|0;g=o+12|0;h=c[g>>2]|0;if((h|0)==(c[o+16>>2]|0))Gb[c[(c[o>>2]|0)+40>>2]&127](o)|0;else{c[g>>2]=h+1;cg(a[h>>0]|0)|0}l=l+1|0}c[j>>2]=c[j>>2]|4;g=0;break h}while(0);g=c[X>>2]|0;o=c[Q>>2]|0;if((g|0)!=(o|0)){c[R>>2]=0;kG(S,g,o,R);if(!(c[R>>2]|0)){g=1;break}else{c[j>>2]=c[j>>2]|4;g=0;break}}else g=1}while(0);jO(W);jO(V);jO(U);jO(T);jO(S);o=c[X>>2]|0;c[X>>2]=0;if(o|0)Sb[c[X+4>>2]&255](o);zb=Y;return g|0}function kK(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;o=zb;zb=zb+16|0;j=d;m=o;n=b+11|0;h=a[n>>0]|0;f=h<<24>>24<0;if(f){l=c[b+4>>2]|0;i=(c[b+8>>2]&2147483647)+-1|0}else{l=h&255;i=10}k=e-j|0;do if(k|0){if(f){g=c[b>>2]|0;f=c[b+4>>2]|0}else{g=b;f=h&255}if(lK(d,g,g+f|0)|0){c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;ag(m,d,e);n=a[m+11>>0]|0;l=n<<24>>24<0;rO(b,l?c[m>>2]|0:m,l?c[m+4>>2]|0:n&255)|0;jO(m);break}if((i-l|0)>>>0>>0)qO(b,i,l+k-i|0,l,l,0,0);if((a[n>>0]|0)<0)h=c[b>>2]|0;else h=b;g=e+(l-j)|0;f=h+l|0;while(1){if((d|0)==(e|0))break;bg(f,d);f=f+1|0;d=d+1|0}a[m>>0]=0;bg(h+g|0,m);d=l+k|0;if((a[n>>0]|0)<0){c[b+4>>2]=d;break}else{a[n>>0]=d;break}}while(0);zb=o;return b|0}function lK(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0>>0|0}function mK(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;o=zb;zb=zb+16|0;m=o+12|0;n=o;if(b){d=XF(d,56968)|0;Ub[c[(c[d>>2]|0)+44>>2]&63](m,d);b=c[m>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ub[c[(c[d>>2]|0)+32>>2]&63](n,d);b=k+11|0;if((a[b>>0]|0)<0){e=c[k>>2]|0;a[m>>0]=0;bg(e,m);c[k+4>>2]=0;if((a[b>>0]|0)<0){e=k+8|0;Pf(c[k>>2]|0,c[e>>2]&2147483647);c[e>>2]=0}}else{a[m>>0]=0;bg(k,m);a[b>>0]=0};c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);Ub[c[(c[d>>2]|0)+28>>2]&63](n,d);b=j+11|0;if((a[b>>0]|0)<0){k=c[j>>2]|0;a[m>>0]=0;bg(k,m);c[j+4>>2]=0;if((a[b>>0]|0)<0){k=j+8|0;Pf(c[j>>2]|0,c[k>>2]&2147483647);c[k>>2]=0}}else{a[m>>0]=0;bg(j,m);a[b>>0]=0};c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);b=Gb[c[(c[d>>2]|0)+12>>2]&127](d)|0;a[f>>0]=b;b=Gb[c[(c[d>>2]|0)+16>>2]&127](d)|0;a[g>>0]=b;Ub[c[(c[d>>2]|0)+20>>2]&63](n,d);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[m>>0]=0;bg(g,m);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Pf(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[m>>0]=0;bg(h,m);a[b>>0]=0};c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];c[h+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);Ub[c[(c[d>>2]|0)+24>>2]&63](n,d);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[m>>0]=0;bg(h,m);c[i+4>>2]=0;if((a[b>>0]|0)<0){m=i+8|0;Pf(c[i>>2]|0,c[m>>2]&2147483647);c[m>>2]=0}}else{a[m>>0]=0;bg(i,m);a[b>>0]=0};c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);b=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0}else{d=XF(d,56960)|0;Ub[c[(c[d>>2]|0)+44>>2]&63](m,d);b=c[m>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ub[c[(c[d>>2]|0)+32>>2]&63](n,d);b=k+11|0;if((a[b>>0]|0)<0){e=c[k>>2]|0;a[m>>0]=0;bg(e,m);c[k+4>>2]=0;if((a[b>>0]|0)<0){e=k+8|0;Pf(c[k>>2]|0,c[e>>2]&2147483647);c[e>>2]=0}}else{a[m>>0]=0;bg(k,m);a[b>>0]=0};c[k>>2]=c[n>>2];c[k+4>>2]=c[n+4>>2];c[k+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);Ub[c[(c[d>>2]|0)+28>>2]&63](n,d);b=j+11|0;if((a[b>>0]|0)<0){k=c[j>>2]|0;a[m>>0]=0;bg(k,m);c[j+4>>2]=0;if((a[b>>0]|0)<0){k=j+8|0;Pf(c[j>>2]|0,c[k>>2]&2147483647);c[k>>2]=0}}else{a[m>>0]=0;bg(j,m);a[b>>0]=0};c[j>>2]=c[n>>2];c[j+4>>2]=c[n+4>>2];c[j+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);b=Gb[c[(c[d>>2]|0)+12>>2]&127](d)|0;a[f>>0]=b;b=Gb[c[(c[d>>2]|0)+16>>2]&127](d)|0;a[g>>0]=b;Ub[c[(c[d>>2]|0)+20>>2]&63](n,d);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[m>>0]=0;bg(g,m);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Pf(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[m>>0]=0;bg(h,m);a[b>>0]=0};c[h>>2]=c[n>>2];c[h+4>>2]=c[n+4>>2];c[h+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);Ub[c[(c[d>>2]|0)+24>>2]&63](n,d);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[m>>0]=0;bg(h,m);c[i+4>>2]=0;if((a[b>>0]|0)<0){m=i+8|0;Pf(c[i>>2]|0,c[m>>2]&2147483647);c[m>>2]=0}}else{a[m>>0]=0;bg(i,m);a[b>>0]=0};c[i>>2]=c[n>>2];c[i+4>>2]=c[n+4>>2];c[i+8>>2]=c[n+8>>2];b=0;while(1){if((b|0)==3)break;c[n+(b<<2)>>2]=0;b=b+1|0}jO(n);b=Gb[c[(c[d>>2]|0)+36>>2]&127](d)|0}c[l>>2]=b;zb=o;return}function nK(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;i=a+4|0;f=(c[i>>2]|0)!=145;e=c[a>>2]|0;h=e;j=(c[d>>2]|0)-h|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?1:g):-1;h=(c[b>>2]|0)-h|0;e=IO(f?e:0,g)|0;if(!e)aO();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Sb[c[i>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[i>>2]=146;c[b>>2]=e+h;c[d>>2]=(c[a>>2]|0)+g;return}function oK(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;i=a+4|0;f=(c[i>>2]|0)!=145;e=c[a>>2]|0;h=e;j=(c[d>>2]|0)-h|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?4:g):-1;h=(c[b>>2]|0)-h>>2;e=IO(f?e:0,g)|0;if(!e)aO();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Sb[c[i>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[i>>2]=146;c[b>>2]=e+(h<<2);c[d>>2]=(c[a>>2]|0)+(g>>>2<<2);return}function pK(a){a=a|0;CF(a);return}function qK(a){a=a|0;CF(a);SA(a);return}function rK(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=zb;zb=zb+592|0;n=v+512|0;q=v+552|0;m=v+112|0;u=v+568|0;p=v+564|0;s=v+560|0;j=v+576|0;w=v+556|0;o=v;c[u>>2]=m;c[u+4>>2]=145;IE(s,g);b=XF(s,56768)|0;a[j>>0]=0;c[w>>2]=c[e>>2];l=c[g+4>>2]|0;c[n>>2]=c[w>>2];if(tK(d,n,f,s,l,h,j,b,u,p,m+400|0)|0){Kb[c[(c[b>>2]|0)+48>>2]&15](b,50575,50585,n)|0;l=c[p>>2]|0;f=c[u>>2]|0;b=l-f|0;if((b|0)>392){b=FO((b>>>2)+2|0)|0;if(!b)aO();else{k=b;r=b}}else{k=o;r=0}if(!(a[j>>0]|0))b=k;else{a[k>>0]=45;b=k+1|0}k=n+40|0;m=n;j=f;g=b;b=l;while(1){if(j>>>0>=b>>>0)break;f=c[j>>2]|0;b=n;while(1){if((b|0)==(k|0)){b=k;break}if((c[b>>2]|0)==(f|0))break;b=b+4|0}a[g>>0]=a[50575+(b-m>>2)>>0]|0;j=j+4|0;g=g+1|0;b=c[p>>2]|0}a[g>>0]=0;c[q>>2]=i;if((Cz(o,50476,q)|0)!=1)nJ(0);if(r|0)GO(r)}b=c[d>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=jE(c[f>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);b=c[e>>2]|0;do if(b){f=c[b+12>>2]|0;if((f|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=jE(c[f>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(g)break;else{t=34;break}else{c[e>>2]=0;t=32;break}}else t=32;while(0);if((t|0)==32?g:0)t=34;if((t|0)==34)c[h>>2]=c[h>>2]|2;f=c[d>>2]|0;YF(s);b=c[u>>2]|0;c[u>>2]=0;if(b|0)Sb[c[u+4>>2]&255](b);zb=v;return f|0}function sK(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+432|0;j=s+424|0;b=s;r=s+416|0;m=s+408|0;p=s+400|0;k=s+428|0;n=s+404|0;c[r>>2]=b;c[r+4>>2]=145;IE(p,g);l=XF(p,56768)|0;a[k>>0]=0;o=c[e>>2]|0;c[n>>2]=o;g=c[g+4>>2]|0;c[j>>2]=c[n>>2];n=o;if(tK(d,j,f,p,g,h,k,l,r,m,b+400|0)|0){b=i+8+3|0;if((a[b>>0]|0)<0){f=c[i>>2]|0;c[j>>2]=0;JF(f,j);c[i+4>>2]=0}else{c[j>>2]=0;JF(i,j);a[b>>0]=0}if(a[k>>0]|0)DO(i,Ib[c[(c[l>>2]|0)+44>>2]&63](l,45)|0);k=Ib[c[(c[l>>2]|0)+44>>2]&63](l,48)|0;g=c[m>>2]|0;j=g+-4|0;b=c[r>>2]|0;while(1){if(b>>>0>=j>>>0)break;if((c[b>>2]|0)!=(k|0))break;b=b+4|0}uK(i,b,g)|0}b=c[d>>2]|0;do if(b){g=c[b+12>>2]|0;if((g|0)==(c[b+16>>2]|0))b=Gb[c[(c[b>>2]|0)+36>>2]&127](b)|0;else b=jE(c[g>>2]|0)|0;if(JE(b,iE()|0)|0){c[d>>2]=0;g=1;break}else{g=(c[d>>2]|0)==0;break}}else g=1;while(0);do if(o){b=c[n+12>>2]|0;if((b|0)==(c[n+16>>2]|0))b=Gb[c[(c[o>>2]|0)+36>>2]&127](n)|0;else b=jE(c[b>>2]|0)|0;if(!(JE(b,iE()|0)|0))if(g)break;else{q=27;break}else{c[e>>2]=0;q=25;break}}else q=25;while(0);if((q|0)==25?g:0)q=27;if((q|0)==27)c[h>>2]=c[h>>2]|2;g=c[d>>2]|0;YF(p);b=c[r>>2]|0;c[r>>2]=0;if(b|0)Sb[c[r+4>>2]&255](b);zb=s;return g|0}function tK(b,e,f,g,h,i,j,k,l,m,n){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;var 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;X=zb;zb=zb+512|0;H=X+496|0;N=X;W=X+488|0;P=X+480|0;I=X+476|0;J=X+500|0;K=X+472|0;L=X+468|0;R=X+456|0;S=X+444|0;T=X+432|0;U=X+420|0;V=X+408|0;M=X+404|0;Q=X+400|0;c[H>>2]=n;c[W>>2]=N;c[W+4>>2]=145;c[P>>2]=N;c[I>>2]=N+400;c[R>>2]=0;c[R+4>>2]=0;c[R+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[R+(n<<2)>>2]=0;n=n+1|0}c[S>>2]=0;c[S+4>>2]=0;c[S+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[S+(n<<2)>>2]=0;n=n+1|0}c[T>>2]=0;c[T+4>>2]=0;c[T+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[T+(n<<2)>>2]=0;n=n+1|0}c[U>>2]=0;c[U+4>>2]=0;c[U+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[U+(n<<2)>>2]=0;n=n+1|0}c[V>>2]=0;c[V+4>>2]=0;c[V+8>>2]=0;n=0;while(1){if((n|0)==3)break;c[V+(n<<2)>>2]=0;n=n+1|0}xK(f,g,J,K,L,R,S,T,U,M);c[m>>2]=c[l>>2];B=T+8+3|0;C=T+4|0;D=U+8+3|0;E=U+4|0;F=R+11|0;G=R+4|0;v=(h&512|0)!=0;w=S+8+3|0;x=J+3|0;y=S+4|0;z=V+8+3|0;A=V+4|0;N=0;u=0;a:while(1){if(u>>>0>=4){O=239;break}n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);f=c[e>>2]|0;do if(f){n=c[f+12>>2]|0;if((n|0)==(c[f+16>>2]|0))n=Gb[c[(c[f>>2]|0)+36>>2]&127](f)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(g){t=f;break}else{O=239;break a}else{c[e>>2]=0;O=31;break}}else O=31;while(0);if((O|0)==31){O=0;if(g){O=239;break}else t=0}b:do switch(a[J+u>>0]|0){case 1:{if((u|0)==3)n=N;else{n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(!(Jb[c[(c[k>>2]|0)+12>>2]&63](k,8192,n)|0)){O=44;break a}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;n=jE(c[g>>2]|0)|0}DO(V,n);O=46}break}case 0:{if((u|0)==3)n=N;else O=46;break}case 3:{n=a[B>>0]|0;n=n<<24>>24<0?c[C>>2]|0:n&255;h=a[D>>0]|0;h=h<<24>>24<0?c[E>>2]|0:h&255;if((n|0)==(0-h|0))n=N;else{o=(n|0)==0;n=c[b>>2]|0;f=c[n+12>>2]|0;g=(f|0)==(c[n+16>>2]|0);if(o|(h|0)==0){if(g)n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(o){if((n|0)!=(c[((a[D>>0]|0)<0?c[U>>2]|0:U)>>2]|0)){n=N;break b}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}a[j>>0]=1;n=a[D>>0]|0;n=(n<<24>>24<0?c[E>>2]|0:n&255)>>>0>1?U:N;break b}if((n|0)!=(c[((a[B>>0]|0)<0?c[T>>2]|0:T)>>2]|0)){a[j>>0]=1;n=N;break b}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}n=a[B>>0]|0;n=(n<<24>>24<0?c[C>>2]|0:n&255)>>>0>1?T:N;break b}if(g)n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;f=c[b>>2]|0;g=f+12|0;h=c[g>>2]|0;o=(h|0)==(c[f+16>>2]|0);if((n|0)==(c[((a[B>>0]|0)<0?c[T>>2]|0:T)>>2]|0)){if(o)Gb[c[(c[f>>2]|0)+40>>2]&127](f)|0;else{c[g>>2]=h+4;jE(c[h>>2]|0)|0}n=a[B>>0]|0;n=(n<<24>>24<0?c[C>>2]|0:n&255)>>>0>1?T:N;break b}if(o)n=Gb[c[(c[f>>2]|0)+36>>2]&127](f)|0;else n=jE(c[h>>2]|0)|0;if((n|0)!=(c[((a[D>>0]|0)<0?c[U>>2]|0:U)>>2]|0)){O=103;break a}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}a[j>>0]=1;n=a[D>>0]|0;n=(n<<24>>24<0?c[E>>2]|0:n&255)>>>0>1?U:N}break}case 2:{if(u>>>0<2|(N|0)!=0){f=a[w>>0]|0;g=c[S>>2]|0;n=f<<24>>24<0?g:S;if(u)O=108}else{if(!(v|(u|0)==2&(a[x>>0]|0)!=0)){n=0;break b}f=a[w>>0]|0;g=c[S>>2]|0;n=f<<24>>24<0?g:S;O=108}c:do if((O|0)==108){O=0;if((d[J+(u+-1)>>0]|0)<2){h=f;while(1){s=h<<24>>24<0;f=n;if(((s?g:S)+((s?c[y>>2]|0:h&255)<<2)|0)==(f|0)){f=h;break}if(!(Jb[c[(c[k>>2]|0)+12>>2]&63](k,8192,c[f>>2]|0)|0)){O=112;break}n=f+4|0;h=a[w>>0]|0;g=c[S>>2]|0}if((O|0)==112){O=0;f=a[w>>0]|0;g=c[S>>2]|0}o=f<<24>>24<0?g:S;s=o;q=n-s>>2;p=a[z>>0]|0;r=p<<24>>24<0;h=c[A>>2]|0;p=p&255;if(q>>>0>(r?h:p)>>>0)n=s;else{Y=(c[V>>2]|0)+(h<<2)|0;h=V+(p<<2)|0;p=r?Y:h;h=(r?Y:h)+(0-q<<2)|0;while(1){if((h|0)==(p|0))break c;if((c[h>>2]|0)!=(c[o>>2]|0)){n=s;break c}o=o+4|0;h=h+4|0}}}}while(0);o=n;h=t;d:while(1){Y=f<<24>>24<0;if((o|0)==((Y?g:S)+((Y?c[y>>2]|0:f&255)<<2)|0))break;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(h){n=c[h+12>>2]|0;if((n|0)==(c[h+16>>2]|0))n=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(f)break;else break d;else{c[e>>2]=0;O=134;break}}else O=134;while(0);if((O|0)==134){O=0;if(f)break;else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if((n|0)!=(c[o>>2]|0))break;n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}o=o+4|0;f=a[w>>0]|0;g=c[S>>2]|0}if(v?(Y=a[w>>0]|0,t=Y<<24>>24<0,(o|0)!=((t?c[S>>2]|0:S)+((t?c[y>>2]|0:Y&255)<<2)|0)):0){O=146;break a}else n=N;break}case 4:{o=0;h=t;n=t;e:while(1){f=c[b>>2]|0;do if(f){g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))f=Gb[c[(c[f>>2]|0)+36>>2]&127](f)|0;else f=jE(c[g>>2]|0)|0;if(JE(f,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);do if(h){f=c[h+12>>2]|0;if((f|0)==(c[h+16>>2]|0))f=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else f=jE(c[f>>2]|0)|0;if(!(JE(f,iE()|0)|0))if(g){p=h;break}else{h=n;break e}else{c[e>>2]=0;n=0;O=160;break}}else O=160;while(0);if((O|0)==160){O=0;if(g){h=n;break}else p=0}f=c[b>>2]|0;g=c[f+12>>2]|0;if((g|0)==(c[f+16>>2]|0))g=Gb[c[(c[f>>2]|0)+36>>2]&127](f)|0;else g=jE(c[g>>2]|0)|0;if(Jb[c[(c[k>>2]|0)+12>>2]&63](k,2048,g)|0){f=c[m>>2]|0;if((f|0)==(c[H>>2]|0)){yK(l,m,H);f=c[m>>2]|0}c[m>>2]=f+4;c[f>>2]=g;f=o+1|0}else{Y=a[F>>0]|0;if(!((g|0)==(c[L>>2]|0)&(o|0?((Y<<24>>24<0?c[G>>2]|0:Y&255)|0)!=0:0))){h=n;break}f=c[P>>2]|0;if((f|0)==(c[I>>2]|0)){oK(W,P,I);f=c[P>>2]|0}c[P>>2]=f+4;c[f>>2]=o;f=0}g=c[b>>2]|0;h=g+12|0;o=c[h>>2]|0;if((o|0)==(c[g+16>>2]|0))Gb[c[(c[g>>2]|0)+40>>2]&127](g)|0;else{c[h>>2]=o+4;jE(c[o>>2]|0)|0}o=f;h=p}n=c[P>>2]|0;if(o|0?(c[W>>2]|0)!=(n|0):0){if((n|0)==(c[I>>2]|0)){oK(W,P,I);n=c[P>>2]|0}c[P>>2]=n+4;c[n>>2]=o}f:do if((c[M>>2]|0)>0){n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(h){n=c[h+12>>2]|0;if((n|0)==(c[h+16>>2]|0))n=Gb[c[(c[h>>2]|0)+36>>2]&127](h)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(f)break;else{O=201;break a}else{c[e>>2]=0;O=195;break}}else O=195;while(0);if((O|0)==195){O=0;if(f){O=201;break a}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if((n|0)!=(c[K>>2]|0)){O=201;break a}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}g=h;while(1){if((c[M>>2]|0)<=0)break f;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(g){n=c[g+12>>2]|0;if((n|0)==(c[g+16>>2]|0))n=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(f){h=g;break}else{O=226;break a}else{c[e>>2]=0;O=220;break}}else O=220;while(0);if((O|0)==220){O=0;if(f){O=226;break a}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(!(Jb[c[(c[k>>2]|0)+12>>2]&63](k,2048,n)|0)){O=226;break a}if((c[m>>2]|0)==(c[H>>2]|0))yK(l,m,H);n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;f=c[m>>2]|0;c[m>>2]=f+4;c[f>>2]=n;c[M>>2]=(c[M>>2]|0)+-1;n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}g=h}}while(0);if((c[m>>2]|0)==(c[l>>2]|0)){O=237;break a}else n=N;break}default:n=N}while(0);g:do if((O|0)==46){O=0;g=t;while(1){n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;f=1;break}else{f=(c[b>>2]|0)==0;break}}else f=1;while(0);do if(g){n=c[g+12>>2]|0;if((n|0)==(c[g+16>>2]|0))n=Gb[c[(c[g>>2]|0)+36>>2]&127](g)|0;else n=jE(c[n>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(f){h=g;break}else{n=N;break g}else{c[e>>2]=0;O=60;break}}else O=60;while(0);if((O|0)==60){O=0;if(f){n=N;break g}else h=0}n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(!(Jb[c[(c[k>>2]|0)+12>>2]&63](k,8192,n)|0)){n=N;break g}n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;n=jE(c[g>>2]|0)|0}DO(V,n);g=h}}while(0);N=n;u=u+1|0}h:do if((O|0)==44){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==103){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==146){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==201){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==226){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==237){c[i>>2]=c[i>>2]|4;f=0}else if((O|0)==239){i:do if(N|0){o=N+8+3|0;p=N+4|0;h=1;j:while(1){n=a[o>>0]|0;if(n<<24>>24<0)n=c[p>>2]|0;else n=n&255;if(h>>>0>=n>>>0)break i;n=c[b>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(JE(n,iE()|0)|0){c[b>>2]=0;g=1;break}else{g=(c[b>>2]|0)==0;break}}else g=1;while(0);n=c[e>>2]|0;do if(n){f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if(!(JE(n,iE()|0)|0))if(g)break;else break j;else{c[e>>2]=0;O=258;break}}else O=258;while(0);if((O|0)==258?(O=0,g):0)break;n=c[b>>2]|0;f=c[n+12>>2]|0;if((f|0)==(c[n+16>>2]|0))n=Gb[c[(c[n>>2]|0)+36>>2]&127](n)|0;else n=jE(c[f>>2]|0)|0;if((a[o>>0]|0)<0)f=c[N>>2]|0;else f=N;if((n|0)!=(c[f+(h<<2)>>2]|0))break;n=c[b>>2]|0;f=n+12|0;g=c[f>>2]|0;if((g|0)==(c[n+16>>2]|0))Gb[c[(c[n>>2]|0)+40>>2]&127](n)|0;else{c[f>>2]=g+4;jE(c[g>>2]|0)|0}h=h+1|0}c[i>>2]=c[i>>2]|4;f=0;break h}while(0);f=c[W>>2]|0;n=c[P>>2]|0;if((f|0)!=(n|0)){c[Q>>2]=0;kG(R,f,n,Q);if(!(c[Q>>2]|0)){f=1;break}else{c[i>>2]=c[i>>2]|4;f=0;break}}else f=1}while(0);wO(V);wO(U);wO(T);wO(S);jO(R);n=c[W>>2]|0;c[W>>2]=0;if(n|0)Sb[c[W+4>>2]&255](n);zb=X;return f|0}function uK(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;n=zb;zb=zb+16|0;k=n;f=b+8|0;m=f+3|0;i=a[m>>0]|0;g=i<<24>>24<0;if(g){l=c[b+4>>2]|0;h=(c[f>>2]&2147483647)+-1|0}else{l=i&255;h=1}f=e-d|0;j=f>>2;do if(f|0){if(g){g=c[b>>2]|0;f=c[b+4>>2]|0}else{g=b;f=i&255}if(vK(d,g,g+(f<<2)|0)|0){c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;wK(k,d,e);m=a[k+8+3>>0]|0;l=m<<24>>24<0;CO(b,l?c[k>>2]|0:k,l?c[k+4>>2]|0:m&255)|0;wO(k);break}if((h-l|0)>>>0>>0)BO(b,h,l+j-h|0,l,l,0,0);if((a[m>>0]|0)<0)f=c[b>>2]|0;else f=b;f=f+(l<<2)|0;while(1){if((d|0)==(e|0))break;JF(f,d);f=f+4|0;d=d+4|0}c[k>>2]=0;JF(f,k);d=l+j|0;if((a[m>>0]|0)<0){c[b+4>>2]=d;break}else{a[m>>0]=d;break}}while(0);zb=n;return b|0}function vK(a,b,c){a=a|0;b=b|0;c=c|0;return b>>>0<=a>>>0&a>>>0>>0|0}function wK(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;i=j;h=e-d>>2;if(h>>>0>1073741807)eO(b);do if(h>>>0>=2){g=h+4&-4;if(g>>>0>1073741823)ua();else{f=tB(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=h;break}}else{a[b+8+3>>0]=h;f=b}while(0);while(1){if((d|0)==(e|0))break;JF(f,d);d=d+4|0;f=f+4|0}c[i>>2]=0;JF(f,i);zb=j;return}function xK(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;n=p+12|0;o=p;if(b){m=XF(d,56984)|0;Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+8|0;d=b+3|0;if((a[d>>0]|0)<0){e=c[k>>2]|0;c[n>>2]=0;JF(e,n);c[k+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[d>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=j+8|0;d=b+3|0;if((a[d>>0]|0)<0){k=c[j>>2]|0;c[n>>2]=0;JF(k,n);c[j+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(j,n);a[d>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[f>>2]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;c[g>>2]=b;Ub[c[(c[m>>2]|0)+20>>2]&63](o,m);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[n>>0]=0;bg(g,n);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Pf(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[n>>0]=0;bg(h,n);a[b>>0]=0};c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[m>>2]|0)+24>>2]&63](o,m);b=i+8|0;d=b+3|0;if((a[d>>0]|0)<0){h=c[i>>2]|0;c[n>>2]=0;JF(h,n);c[i+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[i>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(i,n);a[d>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=XF(d,56976)|0;Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[e>>0]=b;a[e+1>>0]=b>>8;a[e+2>>0]=b>>16;a[e+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+8|0;d=b+3|0;if((a[d>>0]|0)<0){e=c[k>>2]|0;c[n>>2]=0;JF(e,n);c[k+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[d>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=j+8|0;d=b+3|0;if((a[d>>0]|0)<0){k=c[j>>2]|0;c[n>>2]=0;JF(k,n);c[j+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(j,n);a[d>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[f>>2]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;c[g>>2]=b;Ub[c[(c[m>>2]|0)+20>>2]&63](o,m);b=h+11|0;if((a[b>>0]|0)<0){g=c[h>>2]|0;a[n>>0]=0;bg(g,n);c[h+4>>2]=0;if((a[b>>0]|0)<0){g=h+8|0;Pf(c[h>>2]|0,c[g>>2]&2147483647);c[g>>2]=0}}else{a[n>>0]=0;bg(h,n);a[b>>0]=0};c[h>>2]=c[o>>2];c[h+4>>2]=c[o+4>>2];c[h+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[m>>2]|0)+24>>2]&63](o,m);b=i+8|0;d=b+3|0;if((a[d>>0]|0)<0){h=c[i>>2]|0;c[n>>2]=0;JF(h,n);c[i+4>>2]=0;if((a[d>>0]|0)<0){Pf(c[i>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(i,n);a[d>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;zb=p;return}function yK(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;i=a+4|0;f=(c[i>>2]|0)!=145;e=c[a>>2]|0;h=e;j=(c[d>>2]|0)-h|0;g=j<<1;g=j>>>0<2147483647?((g|0)==0?4:g):-1;h=(c[b>>2]|0)-h>>2;e=IO(f?e:0,g)|0;if(!e)aO();if(!f){f=c[a>>2]|0;c[a>>2]=e;if(f){Sb[c[i>>2]&255](f);e=c[a>>2]|0}}else c[a>>2]=e;c[i>>2]=146;c[b>>2]=e+(h<<2);c[d>>2]=(c[a>>2]|0)+(g>>>2<<2);return}function zK(a){a=a|0;CF(a);return}function AK(a){a=a|0;CF(a);SA(a);return}function BK(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;E=zb;zb=zb+416|0;q=E+336|0;k=E+328|0;b=E+224|0;l=E+400|0;j=E+112|0;D=E+396|0;r=E+408|0;s=E+405|0;t=E+404|0;A=E+384|0;B=E+372|0;C=E+360|0;o=E+356|0;p=E;u=E+352|0;v=E+344|0;w=E+348|0;c[l>>2]=b;g[q>>3]=i;b=bz(b,100,50681,q)|0;if(b>>>0>99){b=_F()|0;g[k>>3]=i;b=uH(l,b,50681,k)|0;j=c[l>>2]|0;if(!j)aO();k=FO(b)|0;if(!k)aO();else{x=k;z=b;G=k;H=j}}else{x=j;z=b;G=0;H=0}IE(D,f);n=XF(D,56736)|0;m=c[l>>2]|0;Kb[c[(c[n>>2]|0)+32>>2]&15](n,m,m+z|0,x)|0;if(!z)m=0;else m=(a[c[l>>2]>>0]|0)==45;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[C+(b<<2)>>2]=0;b=b+1|0}DK(e,m,D,r,s,t,A,B,C,o);l=c[o>>2]|0;if((z|0)>(l|0)){k=a[C+11>>0]|0;b=a[B+11>>0]|0;b=b<<24>>24<0?c[B+4>>2]|0:b&255;j=l+1+(z-l<<1)|0;k=k<<24>>24<0?c[C+4>>2]|0:k&255}else{k=a[C+11>>0]|0;b=a[B+11>>0]|0;b=b<<24>>24<0?c[B+4>>2]|0:b&255;j=l+2|0;k=k<<24>>24<0?c[C+4>>2]|0:k&255}b=j+k+b|0;if(b>>>0>100){b=FO(b)|0;if(!b)aO();else{y=b;F=b}}else{y=p;F=0}EK(y,u,v,c[f+4>>2]|0,x,x+z|0,n,m,r,a[s>>0]|0,a[t>>0]|0,A,B,C,l);c[w>>2]=c[d>>2];d=c[u>>2]|0;b=c[v>>2]|0;c[q>>2]=c[w>>2];b=$f(q,y,d,b,f,h)|0;if(F|0)GO(F);jO(C);jO(B);jO(A);YF(D);if(G|0)GO(G);if(H|0)GO(H);zb=E;return b|0}function CK(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=zb;zb=zb+176|0;p=C+156|0;B=C+152|0;u=C+164|0;v=C+161|0;w=C+160|0;y=C+140|0;z=C+128|0;A=C+116|0;l=C+112|0;n=C;q=C+108|0;r=C+104|0;s=C+100|0;IE(B,f);t=XF(B,56736)|0;i=h+11|0;o=a[i>>0]|0;b=o<<24>>24<0;j=h+4|0;if(!((b?c[j>>2]|0:o&255)|0))o=0;else{o=a[(b?c[h>>2]|0:h)>>0]|0;o=o<<24>>24==(Ib[c[(c[t>>2]|0)+28>>2]&63](t,45)|0)<<24>>24};c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}DK(e,o,B,u,v,w,y,z,A,l);k=a[i>>0]|0;m=k<<24>>24<0;k=m?c[j>>2]|0:k&255;j=c[l>>2]|0;if((k|0)>(j|0)){e=a[A+11>>0]|0;b=a[z+11>>0]|0;b=b<<24>>24<0?c[z+4>>2]|0:b&255;i=j+1+(k-j<<1)|0;e=e<<24>>24<0?c[A+4>>2]|0:e&255}else{e=a[A+11>>0]|0;b=a[z+11>>0]|0;b=b<<24>>24<0?c[z+4>>2]|0:b&255;i=j+2|0;e=e<<24>>24<0?c[A+4>>2]|0:e&255}b=i+e+b|0;if(b>>>0>100){b=FO(b)|0;if(!b)aO();else{x=b;D=b}}else{x=n;D=0}h=m?c[h>>2]|0:h;EK(x,q,r,c[f+4>>2]|0,h,h+k|0,t,o,u,a[v>>0]|0,a[w>>0]|0,y,z,A,j);c[s>>2]=c[d>>2];h=c[q>>2]|0;b=c[r>>2]|0;c[p>>2]=c[s>>2];b=$f(p,x,h,b,f,g)|0;if(D|0)GO(D);jO(A);jO(z);jO(y);YF(B);zb=C;return b|0}function DK(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;n=p+12|0;o=p;if(b){m=XF(e,56968)|0;if(d){Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;bg(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Pf(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;bg(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);e=m}else{Ub[c[(c[m>>2]|0)+40>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;bg(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Pf(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;bg(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);e=m}b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;a[g>>0]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;a[h>>0]=b;Ub[c[(c[e>>2]|0)+20>>2]&63](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;bg(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Pf(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;bg(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[e>>2]|0)+24>>2]&63](o,m);b=j+11|0;if((a[b>>0]|0)<0){i=c[j>>2]|0;a[n>>0]=0;bg(i,n);c[j+4>>2]=0;if((a[b>>0]|0)<0){n=j+8|0;Pf(c[j>>2]|0,c[n>>2]&2147483647);c[n>>2]=0}}else{a[n>>0]=0;bg(j,n);a[b>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=XF(e,56960)|0;if(d){Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;bg(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Pf(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;bg(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);e=m}else{Ub[c[(c[m>>2]|0)+40>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=k+11|0;if((a[b>>0]|0)<0){f=c[k>>2]|0;a[n>>0]=0;bg(f,n);c[k+4>>2]=0;if((a[b>>0]|0)<0){f=k+8|0;Pf(c[k>>2]|0,c[f>>2]&2147483647);c[f>>2]=0}}else{a[n>>0]=0;bg(k,n);a[b>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);e=m}b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;a[g>>0]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;a[h>>0]=b;Ub[c[(c[e>>2]|0)+20>>2]&63](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;bg(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Pf(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;bg(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[e>>2]|0)+24>>2]&63](o,m);b=j+11|0;if((a[b>>0]|0)<0){i=c[j>>2]|0;a[n>>0]=0;bg(i,n);c[j+4>>2]=0;if((a[b>>0]|0)<0){n=j+8|0;Pf(c[j>>2]|0,c[n>>2]&2147483647);c[n>>2]=0}}else{a[n>>0]=0;bg(j,n);a[b>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;zb=p;return}function EK(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;var 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;c[f>>2]=d;y=q+11|0;G=q+4|0;z=p+11|0;A=p+4|0;B=(g&512|0)==0;C=j+8|0;D=(r|0)>0;E=o+11|0;F=o+4|0;x=0;while(1){if((x|0)==4)break;a:do switch(a[l+x>>0]|0){case 0:{c[e>>2]=c[f>>2];break}case 1:{c[e>>2]=c[f>>2];v=Ib[c[(c[j>>2]|0)+28>>2]&63](j,32)|0;w=c[f>>2]|0;c[f>>2]=w+1;a[w>>0]=v;break}case 3:{w=a[y>>0]|0;s=w<<24>>24<0;if((s?c[G>>2]|0:w&255)|0){v=a[(s?c[q>>2]|0:q)>>0]|0;w=c[f>>2]|0;c[f>>2]=w+1;a[w>>0]=v}break}case 2:{t=a[z>>0]|0;s=t<<24>>24<0;t=s?c[A>>2]|0:t&255;if(!(B|(t|0)==0)){w=s?c[p>>2]|0:p;u=w+t|0;s=c[f>>2]|0;t=w;while(1){if((t|0)==(u|0))break;a[s>>0]=a[t>>0]|0;s=s+1|0;t=t+1|0}c[f>>2]=s}break}case 4:{t=c[f>>2]|0;h=k?h+1|0:h;u=h;while(1){if(u>>>0>=i>>>0)break;s=a[u>>0]|0;if(s<<24>>24<=-1)break;if(!(b[(c[C>>2]|0)+(s<<24>>24<<1)>>1]&2048))break;u=u+1|0}if(D){v=r;while(1){s=(v|0)>0;if(!(u>>>0>h>>>0&s))break;w=u+-1|0;H=a[w>>0]|0;s=c[f>>2]|0;c[f>>2]=s+1;a[s>>0]=H;v=v+-1|0;u=w}if(s)w=Ib[c[(c[j>>2]|0)+28>>2]&63](j,48)|0;else w=0;s=v;while(1){v=c[f>>2]|0;c[f>>2]=v+1;if((s|0)<=0)break;a[v>>0]=w;s=s+-1|0}a[v>>0]=m}b:do if((u|0)==(h|0)){w=Ib[c[(c[j>>2]|0)+28>>2]&63](j,48)|0;H=c[f>>2]|0;c[f>>2]=H+1;a[H>>0]=w}else{H=a[E>>0]|0;s=H<<24>>24<0;if(!((s?c[F>>2]|0:H&255)|0))s=-1;else s=a[(s?c[o>>2]|0:o)>>0]|0;v=0;w=0;while(1){if((u|0)==(h|0))break b;if((w|0)==(s|0)){H=c[f>>2]|0;c[f>>2]=H+1;a[H>>0]=n;v=v+1|0;H=a[E>>0]|0;s=H<<24>>24<0;if(v>>>0<(s?c[F>>2]|0:H&255)>>>0){s=a[(s?c[o>>2]|0:o)+v>>0]|0;s=s<<24>>24==127?-1:s<<24>>24;w=0}else{s=w;w=0}}H=u+-1|0;J=a[H>>0]|0;I=c[f>>2]|0;c[f>>2]=I+1;a[I>>0]=J;w=w+1|0;u=H}}while(0);s=c[f>>2]|0;if((t|0)!=(s|0))while(1){s=s+-1|0;if(t>>>0>=s>>>0)break a;J=a[t>>0]|0;a[t>>0]=a[s>>0]|0;a[s>>0]=J;t=t+1|0}break}default:{}}while(0);x=x+1|0}h=a[y>>0]|0;s=h<<24>>24<0;h=s?c[G>>2]|0:h&255;if(h>>>0>1){J=s?c[q>>2]|0:q;t=J+h|0;s=c[f>>2]|0;h=J;while(1){h=h+1|0;if((h|0)==(t|0))break;a[s>>0]=a[h>>0]|0;s=s+1|0}c[f>>2]=s}switch((g&176)<<24>>24){case 32:{c[e>>2]=c[f>>2];break}case 16:break;default:c[e>>2]=d}return}function FK(a){a=a|0;CF(a);return}function GK(a){a=a|0;CF(a);SA(a);return}function HK(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=+i;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;E=zb;zb=zb+992|0;q=E+912|0;k=E+904|0;b=E+800|0;l=E+984|0;j=E+400|0;D=E+980|0;r=E+988|0;s=E+976|0;t=E+972|0;A=E+960|0;B=E+948|0;C=E+936|0;o=E+932|0;p=E;u=E+928|0;v=E+920|0;w=E+924|0;c[l>>2]=b;g[q>>3]=i;b=bz(b,100,50681,q)|0;if(b>>>0>99){b=_F()|0;g[k>>3]=i;b=uH(l,b,50681,k)|0;j=c[l>>2]|0;if(!j)aO();k=FO(b<<2)|0;if(!k)aO();else{x=k;z=b;G=k;H=j}}else{x=j;z=b;G=0;H=0}IE(D,f);n=XF(D,56768)|0;m=c[l>>2]|0;Kb[c[(c[n>>2]|0)+48>>2]&15](n,m,m+z|0,x)|0;if(!z)m=0;else m=(a[c[l>>2]>>0]|0)==45;c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}c[B>>2]=0;c[B+4>>2]=0;c[B+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[B+(b<<2)>>2]=0;b=b+1|0}c[C>>2]=0;c[C+4>>2]=0;c[C+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[C+(b<<2)>>2]=0;b=b+1|0}JK(e,m,D,r,s,t,A,B,C,o);l=c[o>>2]|0;if((z|0)>(l|0)){k=a[C+8+3>>0]|0;b=a[B+8+3>>0]|0;b=b<<24>>24<0?c[B+4>>2]|0:b&255;j=l+1+(z-l<<1)|0;k=k<<24>>24<0?c[C+4>>2]|0:k&255}else{k=a[C+8+3>>0]|0;b=a[B+8+3>>0]|0;b=b<<24>>24<0?c[B+4>>2]|0:b&255;j=l+2|0;k=k<<24>>24<0?c[C+4>>2]|0:k&255}b=j+k+b|0;if(b>>>0>100){b=FO(b<<2)|0;if(!b)aO();else{y=b;F=b}}else{y=p;F=0}KK(y,u,v,c[f+4>>2]|0,x,x+(z<<2)|0,n,m,r,c[s>>2]|0,c[t>>2]|0,A,B,C,l);c[w>>2]=c[d>>2];d=c[u>>2]|0;b=c[v>>2]|0;c[q>>2]=c[w>>2];b=IH(q,y,d,b,f,h)|0;if(F|0)GO(F);wO(C);wO(B);jO(A);YF(D);if(G|0)GO(G);if(H|0)GO(H);zb=E;return b|0}function IK(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=zb;zb=zb+480|0;p=C+464|0;B=C+460|0;u=C+468|0;v=C+456|0;w=C+452|0;y=C+440|0;z=C+428|0;A=C+416|0;l=C+412|0;n=C;q=C+408|0;r=C+404|0;s=C+400|0;IE(B,f);t=XF(B,56768)|0;i=h+8+3|0;o=a[i>>0]|0;b=o<<24>>24<0;j=h+4|0;if(!((b?c[j>>2]|0:o&255)|0))o=0;else{o=c[(b?c[h>>2]|0:h)>>2]|0;o=(o|0)==(Ib[c[(c[t>>2]|0)+44>>2]&63](t,45)|0)};c[y>>2]=0;c[y+4>>2]=0;c[y+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[y+(b<<2)>>2]=0;b=b+1|0}c[z>>2]=0;c[z+4>>2]=0;c[z+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[z+(b<<2)>>2]=0;b=b+1|0}c[A>>2]=0;c[A+4>>2]=0;c[A+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[A+(b<<2)>>2]=0;b=b+1|0}JK(e,o,B,u,v,w,y,z,A,l);k=a[i>>0]|0;m=k<<24>>24<0;k=m?c[j>>2]|0:k&255;j=c[l>>2]|0;if((k|0)>(j|0)){e=a[A+8+3>>0]|0;b=a[z+8+3>>0]|0;b=b<<24>>24<0?c[z+4>>2]|0:b&255;i=j+1+(k-j<<1)|0;e=e<<24>>24<0?c[A+4>>2]|0:e&255}else{e=a[A+8+3>>0]|0;b=a[z+8+3>>0]|0;b=b<<24>>24<0?c[z+4>>2]|0:b&255;i=j+2|0;e=e<<24>>24<0?c[A+4>>2]|0:e&255}b=i+e+b|0;if(b>>>0>100){b=FO(b<<2)|0;if(!b)aO();else{x=b;D=b}}else{x=n;D=0}h=m?c[h>>2]|0:h;KK(x,q,r,c[f+4>>2]|0,h,h+(k<<2)|0,t,o,u,c[v>>2]|0,c[w>>2]|0,y,z,A,j);c[s>>2]=c[d>>2];h=c[q>>2]|0;b=c[r>>2]|0;c[p>>2]=c[s>>2];b=IH(p,x,h,b,f,g)|0;if(D|0)GO(D);wO(A);wO(z);jO(y);YF(B);zb=C;return b|0}function JK(b,d,e,f,g,h,i,j,k,l){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;n=p+12|0;o=p;if(b){m=XF(e,56984)|0;if(d){Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;JF(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o)}else{Ub[c[(c[m>>2]|0)+40>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;JF(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o)}b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[g>>2]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;c[h>>2]=b;Ub[c[(c[m>>2]|0)+20>>2]&63](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;bg(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Pf(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;bg(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[m>>2]|0)+24>>2]&63](o,m);b=j+8|0;e=b+3|0;if((a[e>>0]|0)<0){i=c[j>>2]|0;c[n>>2]=0;JF(i,n);c[j+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(j,n);a[e>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}else{m=XF(e,56976)|0;if(d){Ub[c[(c[m>>2]|0)+44>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+32>>2]&63](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;JF(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o)}else{Ub[c[(c[m>>2]|0)+40>>2]&63](n,m);b=c[n>>2]|0;a[f>>0]=b;a[f+1>>0]=b>>8;a[f+2>>0]=b>>16;a[f+3>>0]=b>>24;Ub[c[(c[m>>2]|0)+28>>2]&63](o,m);b=k+8|0;e=b+3|0;if((a[e>>0]|0)<0){f=c[k>>2]|0;c[n>>2]=0;JF(f,n);c[k+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[k>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(k,n);a[e>>0]=0};c[k>>2]=c[o>>2];c[k+4>>2]=c[o+4>>2];c[k+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o)}b=Gb[c[(c[m>>2]|0)+12>>2]&127](m)|0;c[g>>2]=b;b=Gb[c[(c[m>>2]|0)+16>>2]&127](m)|0;c[h>>2]=b;Ub[c[(c[m>>2]|0)+20>>2]&63](o,m);b=i+11|0;if((a[b>>0]|0)<0){h=c[i>>2]|0;a[n>>0]=0;bg(h,n);c[i+4>>2]=0;if((a[b>>0]|0)<0){h=i+8|0;Pf(c[i>>2]|0,c[h>>2]&2147483647);c[h>>2]=0}}else{a[n>>0]=0;bg(i,n);a[b>>0]=0};c[i>>2]=c[o>>2];c[i+4>>2]=c[o+4>>2];c[i+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}jO(o);Ub[c[(c[m>>2]|0)+24>>2]&63](o,m);b=j+8|0;e=b+3|0;if((a[e>>0]|0)<0){i=c[j>>2]|0;c[n>>2]=0;JF(i,n);c[j+4>>2]=0;if((a[e>>0]|0)<0){Pf(c[j>>2]|0,c[b>>2]<<2);c[b>>2]=0}}else{c[n>>2]=0;JF(j,n);a[e>>0]=0};c[j>>2]=c[o>>2];c[j+4>>2]=c[o+4>>2];c[j+8>>2]=c[o+8>>2];b=0;while(1){if((b|0)==3)break;c[o+(b<<2)>>2]=0;b=b+1|0}wO(o);b=Gb[c[(c[m>>2]|0)+36>>2]&127](m)|0}c[l>>2]=b;zb=p;return}function KK(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;var 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;c[e>>2]=b;z=p+8+3|0;G=p+4|0;A=o+8+3|0;B=o+4|0;C=(f&512|0)==0;D=(q|0)>0;E=n+11|0;F=n+4|0;y=0;while(1){if((y|0)==4)break;a:do switch(a[k+y>>0]|0){case 0:{c[d>>2]=c[e>>2];break}case 1:{c[d>>2]=c[e>>2];w=Ib[c[(c[i>>2]|0)+44>>2]&63](i,32)|0;x=c[e>>2]|0;c[e>>2]=x+4;c[x>>2]=w;break}case 3:{x=a[z>>0]|0;r=x<<24>>24<0;if((r?c[G>>2]|0:x&255)|0){w=c[(r?c[p>>2]|0:p)>>2]|0;x=c[e>>2]|0;c[e>>2]=x+4;c[x>>2]=w}break}case 2:{v=a[A>>0]|0;r=v<<24>>24<0;v=r?c[B>>2]|0:v&255;if(!(C|(v|0)==0)){u=r?c[o>>2]|0:o;s=u+(v<<2)|0;t=c[e>>2]|0;r=t;while(1){if((u|0)==(s|0))break;c[r>>2]=c[u>>2];r=r+4|0;u=u+4|0}c[e>>2]=t+(v<<2)}break}case 4:{s=c[e>>2]|0;g=j?g+4|0:g;r=g;while(1){if(r>>>0>=h>>>0)break;if(!(Jb[c[(c[i>>2]|0)+12>>2]&63](i,2048,c[r>>2]|0)|0))break;r=r+4|0}if(D){u=q;while(1){t=(u|0)>0;if(!(r>>>0>g>>>0&t))break;x=r+-4|0;v=c[x>>2]|0;w=c[e>>2]|0;c[e>>2]=w+4;c[w>>2]=v;u=u+-1|0;r=x}if(t)w=Ib[c[(c[i>>2]|0)+44>>2]&63](i,48)|0;else w=0;v=c[e>>2]|0;while(1){t=v+4|0;if((u|0)<=0)break;c[v>>2]=w;u=u+-1|0;v=t}c[e>>2]=t;c[v>>2]=l;t=r}else t=r;if((t|0)==(g|0)){w=Ib[c[(c[i>>2]|0)+44>>2]&63](i,48)|0;x=c[e>>2]|0;r=x+4|0;c[e>>2]=r;c[x>>2]=w}else{x=a[E>>0]|0;r=x<<24>>24<0;if(!((r?c[F>>2]|0:x&255)|0))r=-1;else r=a[(r?c[n>>2]|0:n)>>0]|0;u=0;v=0;x=t;while(1){if((x|0)==(g|0))break;t=c[e>>2]|0;if((v|0)==(r|0)){w=t+4|0;c[e>>2]=w;c[t>>2]=m;t=u+1|0;u=a[E>>0]|0;r=u<<24>>24<0;if(t>>>0<(r?c[F>>2]|0:u&255)>>>0){r=a[(r?c[n>>2]|0:n)+t>>0]|0;r=r<<24>>24==127?-1:r<<24>>24;u=t;v=0;t=w}else{r=v;u=t;v=0;t=w}}w=x+-4|0;H=c[w>>2]|0;c[e>>2]=t+4;c[t>>2]=H;v=v+1|0;x=w}r=c[e>>2]|0}if((s|0)!=(r|0))while(1){r=r+-4|0;if(s>>>0>=r>>>0)break a;H=c[s>>2]|0;c[s>>2]=c[r>>2];c[r>>2]=H;s=s+4|0}break}default:{}}while(0);y=y+1|0}r=a[z>>0]|0;g=r<<24>>24<0;r=g?c[G>>2]|0:r&255;if(r>>>0>1){s=c[p>>2]|0;u=g?s+4|0:G;r=(g?s:p)+(r<<2)|0;s=c[e>>2]|0;t=r-u|0;g=s;while(1){if((u|0)==(r|0))break;c[g>>2]=c[u>>2];g=g+4|0;u=u+4|0}c[e>>2]=s+(t>>>2<<2)}switch((f&176)<<24>>24){case 32:{c[d>>2]=c[e>>2];break}case 16:break;default:c[d>>2]=b}return}function LK(a){a=a|0;CF(a);return}function MK(a){a=a|0;CF(a);SA(a);return}function NK(b,d,e){b=b|0;d=d|0;e=e|0;e=Py((a[d+11>>0]|0)<0?c[d>>2]|0:d,1)|0;return e>>>((e|0)!=(-1|0)&1)|0}function OK(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;j=zb;zb=zb+16|0;i=j;c[i>>2]=0;c[i+4>>2]=0;c[i+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[i+(d<<2)>>2]=0;d=d+1|0}k=a[h+11>>0]|0;l=k<<24>>24<0;d=l?c[h>>2]|0:h;h=d+(l?c[h+4>>2]|0:k&255)|0;while(1){if(d>>>0>=h>>>0)break;sO(i,a[d>>0]|0);d=d+1|0}d=(a[i+11>>0]|0)<0?c[i>>2]|0:i;e=Oy((e|0)==-1?-1:e<<1,f,g,d)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;h=0;while(1){if((h|0)==3)break;c[b+(h<<2)>>2]=0;h=h+1|0}h=d+(Qy(e)|0)|0;while(1){if(d>>>0>=h>>>0)break;sO(b,a[d>>0]|0);d=d+1|0}jO(i);zb=j;return}function PK(a,b){a=a|0;b=b|0;return}function QK(a){a=a|0;CF(a);return}function RK(a){a=a|0;CF(a);SA(a);return}function SK(b,d,e){b=b|0;d=d|0;e=e|0;e=Py((a[d+11>>0]|0)<0?c[d>>2]|0:d,1)|0;return e>>>((e|0)!=(-1|0)&1)|0}function TK(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=zb;zb=zb+176|0;p=t+168|0;q=t;r=t+164|0;s=t+160|0;n=t+128|0;l=t+152|0;o=t+144|0;c[n>>2]=0;c[n+4>>2]=0;c[n+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[n+(d<<2)>>2]=0;d=d+1|0}c[l+4>>2]=0;c[l>>2]=19072;j=a[h+8+3>>0]|0;k=j<<24>>24<0;d=k?c[h>>2]|0:h;j=d+((k?c[h+4>>2]|0:j&255)<<2)|0;k=q+32|0;h=d;d=0;while(1){if(!((d|0)!=2&h>>>0>>0))break;c[s>>2]=h;i=Qb[c[(c[l>>2]|0)+12>>2]&15](l,p,h,j,s,q,k,r)|0;if((i|0)==2?1:(c[s>>2]|0)==(h|0)){m=8;break}d=q;while(1){if(d>>>0>=(c[r>>2]|0)>>>0)break;sO(n,a[d>>0]|0);d=d+1|0}h=c[s>>2]|0;d=i}if((m|0)==8)nJ(0);CF(l);i=(a[n+11>>0]|0)<0?c[n>>2]|0:n;h=Oy((e|0)==-1?-1:e<<1,f,g,i)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;d=0;while(1){if((d|0)==3)break;c[b+(d<<2)>>2]=0;d=d+1|0}c[o+4>>2]=0;c[o>>2]=19120;j=i+(Qy(h)|0)|0;k=j;l=q+128|0;h=i;d=0;while(1){if(!((d|0)!=2&h>>>0>>0)){m=23;break}c[s>>2]=h;i=Qb[c[(c[o>>2]|0)+16>>2]&15](o,p,h,(k-h|0)>32?h+32|0:j,s,q,l,r)|0;if((i|0)==2?1:(c[s>>2]|0)==(h|0)){m=19;break}d=q;while(1){if(d>>>0>=(c[r>>2]|0)>>>0)break;DO(b,c[d>>2]|0);d=d+4|0}h=c[s>>2]|0;d=i}if((m|0)==19)nJ(0);else if((m|0)==23){CF(o);jO(n);zb=t;return}}function UK(a,b){a=a|0;b=b|0;return}function VK(a){a=a|0;CF(a);SA(a);return}function WK(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;b=zb;zb=zb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=dL(d,e,j,g,h,a,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];zb=b;return h|0}function XK(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;b=zb;zb=zb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=cL(d,e,j,g,h,a,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];zb=b;return h|0}function YK(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function ZK(a){a=a|0;return 0}function _K(a){a=a|0;return 0}function $K(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return bL(c,d,e,1114111,0)|0}function aL(a){a=a|0;return 4}function bL(b,c,e,f,g){b=b|0;c=c|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;o=c;if((((g&4|0)!=0?(o-b|0)>2:0)?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)g=(a[b+2>>0]|0)==-65?b+3|0:b;else g=b;n=0;a:while(1){if(!(n>>>0>>0&g>>>0>>0))break;k=a[g>>0]|0;m=k&255;do if(k<<24>>24<=-1){if((k&255)<194)break a;if((k&255)<224){if((o-g|0)<2)break a;h=d[g+1>>0]|0;if((h&192|0)!=128)break a;if((h&63|m<<6&1984)>>>0>f>>>0)break a;g=g+2|0;break}if((k&255)<240){if((o-g|0)<3)break a;i=a[g+1>>0]|0;h=a[g+2>>0]|0;switch(k<<24>>24){case -32:{if((i&-32)<<24>>24!=-96)break a;break}case -19:{if((i&-32)<<24>>24!=-128)break a;break}default:if((i&-64)<<24>>24!=-128)break a}h=h&255;if((h&192|0)!=128)break a;if(((i&63)<<6|m<<12&61440|h&63)>>>0>f>>>0)break a;else{g=g+3|0;break}}if((k&255)>=245)break a;if((o-g|0)<4)break a;l=a[g+1>>0]|0;h=a[g+2>>0]|0;j=a[g+3>>0]|0;switch(k<<24>>24){case -16:{if((l+112&255)>=48)break a;break}case -12:{if((l&-16)<<24>>24!=-128)break a;break}default:if((l&-64)<<24>>24!=-128)break a}i=h&255;if((i&192|0)!=128)break a;h=j&255;if((h&192|0)!=128)break a;if(((l&63)<<12|m<<18&1835008|i<<6&4032|h&63)>>>0>f>>>0)break a;else g=g+4|0}else{if(m>>>0>f>>>0)break a;g=g+1|0}while(0);n=n+1|0}return g-b|0}function cL(b,e,f,g,h,i,j,k){b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0;c[f>>2]=b;c[i>>2]=g;if(k&4){b=c[f>>2]|0;g=e;if((((g-b|0)>2?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)?(a[b+2>>0]|0)==-65:0)c[f>>2]=b+3}else g=e;a:while(1){p=c[f>>2]|0;if(p>>>0>=e>>>0){b=0;break}q=c[i>>2]|0;if(q>>>0>=h>>>0){b=1;break}n=a[p>>0]|0;b=n&255;do if(n<<24>>24>-1)if(b>>>0>j>>>0){b=2;break a}else k=1;else{if((n&255)<194){b=2;break a}if((n&255)<224){if((g-p|0)<2){b=1;break a}k=d[p+1>>0]|0;if((k&192|0)!=128){b=2;break a}b=k&63|b<<6&1984;if(b>>>0>j>>>0){b=2;break a}else{k=2;break}}if((n&255)<240){if((g-p|0)<3){b=1;break a}l=a[p+1>>0]|0;k=a[p+2>>0]|0;switch(n<<24>>24){case -32:{if((l&-32)<<24>>24!=-96){b=2;break a}break}case -19:{if((l&-32)<<24>>24!=-128){b=2;break a}break}default:if((l&-64)<<24>>24!=-128){b=2;break a}}k=k&255;if((k&192|0)!=128){b=2;break a}b=(l&63)<<6|b<<12&61440|k&63;if(b>>>0>j>>>0){b=2;break a}else{k=3;break}}if((n&255)>=245){b=2;break a}if((g-p|0)<4){b=1;break a}o=a[p+1>>0]|0;k=a[p+2>>0]|0;m=a[p+3>>0]|0;switch(n<<24>>24){case -16:{if((o+112&255)>=48){b=2;break a}break}case -12:{if((o&-16)<<24>>24!=-128){b=2;break a}break}default:if((o&-64)<<24>>24!=-128){b=2;break a}}l=k&255;if((l&192|0)!=128){b=2;break a}k=m&255;if((k&192|0)!=128){b=2;break a}b=(o&63)<<12|b<<18&1835008|l<<6&4032|k&63;if(b>>>0>j>>>0){b=2;break a}else k=4}while(0);c[q>>2]=b;c[f>>2]=p+k;c[i>>2]=(c[i>>2]|0)+4}return b|0}function dL(b,d,e,f,g,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0;c[e>>2]=b;c[h>>2]=f;l=g;if(j&2)if((l-f|0)<3)b=1;else{c[h>>2]=f+1;a[f>>0]=-17;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=-69;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=-65;k=4}else k=4;a:do if((k|0)==4){b=c[e>>2]|0;while(1){if(b>>>0>=d>>>0){b=0;break a}f=c[b>>2]|0;if(f>>>0>i>>>0|(f&-2048|0)==55296){b=2;break a}do if(f>>>0>=128){if(f>>>0<2048){b=c[h>>2]|0;if((l-b|0)<2){b=1;break a}c[h>>2]=b+1;a[b>>0]=f>>>6|192;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f&63|128;break}b=c[h>>2]|0;g=l-b|0;if(f>>>0<65536){if((g|0)<3){b=1;break a}c[h>>2]=b+1;a[b>>0]=f>>>12|224;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f>>>6&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f&63|128;break}else{if((g|0)<4){b=1;break a}c[h>>2]=b+1;a[b>>0]=f>>>18|240;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f>>>12&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f>>>6&63|128;k=c[h>>2]|0;c[h>>2]=k+1;a[k>>0]=f&63|128;break}}else{b=c[h>>2]|0;if((l-b|0)<1){b=1;break a}c[h>>2]=b+1;a[b>>0]=f}while(0);b=(c[e>>2]|0)+4|0;c[e>>2]=b}}while(0);return b|0}function eL(a){a=a|0;CF(a);SA(a);return}function fL(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function gL(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;c[f>>2]=d;c[i>>2]=g;return 3}function hL(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function iL(a){a=a|0;return 1}function jL(a){a=a|0;return 1}function kL(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;d=d-c|0;return (d>>>0>>0?d:e)|0}function lL(a){a=a|0;return 1}function mL(b,d,e,f,g,h,i,j){b=b|0;d=d|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,p=0,q=0,r=0;q=zb;zb=zb+16|0;p=q;n=q+8|0;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(c[k>>2]|0))break;k=k+4|0}c[j>>2]=h;c[g>>2]=e;m=i;o=b+8|0;a:while(1){if((h|0)==(i|0)|(e|0)==(f|0)){k=36;break}r=d;l=c[r+4>>2]|0;b=p;c[b>>2]=c[r>>2];c[b+4>>2]=l;b=ez(c[o>>2]|0)|0;l=Uz(h,g,k-e>>2,m-h|0,d)|0;if(b|0)ez(b)|0;switch(l|0){case -1:{k=10;break a}case 0:{e=1;k=33;break a}default:{}}h=(c[j>>2]|0)+l|0;c[j>>2]=h;if((h|0)==(i|0)){k=34;break}if((k|0)==(f|0)){k=f;e=c[g>>2]|0}else{h=ez(c[o>>2]|0)|0;e=_x(n,0,d)|0;if(h|0)ez(h)|0;if((e|0)==-1){e=2;k=32;break}if(e>>>0>(m-(c[j>>2]|0)|0)>>>0){e=1;k=32;break}h=n;while(1){if(!e)break;l=a[h>>0]|0;r=c[j>>2]|0;c[j>>2]=r+1;a[r>>0]=l;h=h+1|0;e=e+-1|0}e=(c[g>>2]|0)+4|0;c[g>>2]=e;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(c[k>>2]|0))break;k=k+4|0}h=c[j>>2]|0}}if((k|0)==10){c[j>>2]=h;while(1){if((e|0)==(c[g>>2]|0))break;r=c[e>>2]|0;k=ez(c[o>>2]|0)|0;h=_x(h,r,p)|0;if(k|0)ez(k)|0;if((h|0)==-1)break;h=(c[j>>2]|0)+h|0;c[j>>2]=h;e=e+4|0}c[g>>2]=e;e=2;k=33}else if((k|0)==32)k=33;else if((k|0)==34){e=c[g>>2]|0;k=36}if((k|0)!=33)if((k|0)==36)e=(e|0)!=(f|0)&1;zb=q;return e|0}function nL(b,d,e,f,g,h,i,j){b=b|0;d=d|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,p=0,q=0;p=zb;zb=zb+16|0;o=p;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(a[k>>0]|0))break;k=k+1|0}c[j>>2]=h;c[g>>2]=e;m=i;n=b+8|0;while(1){if((h|0)==(i|0)|(e|0)==(f|0)){b=33;break}q=d;l=c[q+4>>2]|0;b=o;c[b>>2]=c[q>>2];c[b+4>>2]=l;b=ez(c[n>>2]|0)|0;l=Rz(h,g,k-e|0,m-h>>2,d)|0;if(b|0)ez(b)|0;if((l|0)==-1){b=10;break}h=(c[j>>2]|0)+(l<<2)|0;c[j>>2]=h;if((h|0)==(i|0)){b=30;break}e=c[g>>2]|0;if((k|0)==(f|0))k=f;else{k=ez(c[n>>2]|0)|0;e=Xy(h,e,1,d)|0;if(k|0)ez(k)|0;if(e|0){e=2;b=29;break}c[j>>2]=(c[j>>2]|0)+4;e=(c[g>>2]|0)+1|0;c[g>>2]=e;k=e;while(1){if((k|0)==(f|0)){k=f;break}if(!(a[k>>0]|0))break;k=k+1|0}h=c[j>>2]|0}}do if((b|0)==10){a:while(1){c[j>>2]=h;if((e|0)==(c[g>>2]|0)){b=19;break}b=ez(c[n>>2]|0)|0;h=Xy(h,e,k-e|0,o)|0;if(b|0)ez(b)|0;switch(h|0){case -1:{b=15;break a}case -2:{b=16;break a}case 0:{h=1;break}default:{}}e=e+h|0;h=(c[j>>2]|0)+4|0}if((b|0)==15){c[g>>2]=e;e=2;b=29;break}else if((b|0)==16){c[g>>2]=e;e=1;b=29;break}else if((b|0)==19){c[g>>2]=e;e=(e|0)!=(f|0)&1;b=29;break}}else if((b|0)==30){e=c[g>>2]|0;b=33}while(0);if((b|0)!=29)if((b|0)==33)e=(e|0)!=(f|0)&1;zb=p;return e|0}function oL(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;i=zb;zb=zb+16|0;h=i;c[g>>2]=e;e=ez(c[b+8>>2]|0)|0;b=_x(h,0,d)|0;if(e|0)ez(e)|0;a:do if((b+1|0)>>>0>=2){b=b+-1|0;if(b>>>0>(f-(c[g>>2]|0)|0)>>>0)b=1;else while(1){if(!b){b=0;break a}d=a[h>>0]|0;f=c[g>>2]|0;c[g>>2]=f+1;a[f>>0]=d;h=h+1|0;b=b+-1|0}}else b=2;while(0);zb=i;return b|0}function pL(a){a=a|0;var b=0,d=0;a=a+8|0;b=ez(c[a>>2]|0)|0;d=pz(0,0,4)|0;if(b|0)ez(b)|0;if(!d){a=c[a>>2]|0;if(!a)a=1;else{b=ez(a)|0;a=hy()|0;if(b|0)ez(b)|0;return (a|0)==1|0}}else a=-1;return a|0}function qL(a){a=a|0;return 0}function rL(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;k=e;j=a+8|0;h=0;i=0;a:while(1){if((d|0)==(e|0)|h>>>0>=f>>>0)break;g=ez(c[j>>2]|0)|0;a=Qz(d,k-d|0,b)|0;if(g|0)ez(g)|0;switch(a|0){case -2:case -1:break a;case 0:{a=1;break}default:{}}h=h+1|0;i=a+i|0;d=d+a|0}return i|0}function sL(a){a=a|0;var b=0;a=c[a+8>>2]|0;if(a){b=ez(a)|0;a=hy()|0;if(b)ez(b)|0}else a=1;return a|0}function tL(a){a=a|0;var b=0,d=0;c[a>>2]=19168;b=a+8|0;d=c[b>>2]|0;if((d|0)!=(_F()|0))Vy(c[b>>2]|0);CF(a);return}function uL(a){a=a|0;tL(a);SA(a);return}function vL(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;b=zb;zb=zb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=EL(d,e,j,g,h,a,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];zb=b;return h|0}function wL(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;b=zb;zb=zb+16|0;j=b+4|0;a=b;c[j>>2]=d;c[a>>2]=g;h=DL(d,e,j,g,h,a,1114111,0)|0;c[f>>2]=c[j>>2];c[i>>2]=c[a>>2];zb=b;return h|0}function xL(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;c[f>>2]=d;return 3}function yL(a){a=a|0;return 0}function zL(a){a=a|0;return 0}function AL(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return CL(c,d,e,1114111,0)|0}function BL(a){a=a|0;return 4}function CL(b,c,e,f,g){b=b|0;c=c|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;o=c;if((((g&4|0)!=0?(o-b|0)>2:0)?(a[b>>0]|0)==-17:0)?(a[b+1>>0]|0)==-69:0)g=(a[b+2>>0]|0)==-65?b+3|0:b;else g=b;h=0;a:while(1){if(!(h>>>0>>0&g>>>0>>0))break;l=a[g>>0]|0;n=l&255;if(n>>>0>f>>>0)break;do if(l<<24>>24<=-1){if((l&255)<194)break a;if((l&255)<224){if((o-g|0)<2)break a;i=d[g+1>>0]|0;if((i&192|0)!=128)break a;if((i&63|n<<6&1984)>>>0>f>>>0)break a;else{g=g+2|0;break}}if((l&255)<240){if((o-g|0)<3)break a;j=a[g+1>>0]|0;i=a[g+2>>0]|0;switch(l<<24>>24){case -32:{if((j&-32)<<24>>24!=-96)break a;break}case -19:{if((j&-32)<<24>>24!=-128)break a;break}default:if((j&-64)<<24>>24!=-128)break a}i=i&255;if((i&192|0)!=128)break a;if(((j&63)<<6|n<<12&61440|i&63)>>>0>f>>>0)break a;else{g=g+3|0;break}}if((l&255)>=245)break a;if((e-h|0)>>>0<2|(o-g|0)<4)break a;m=a[g+1>>0]|0;i=a[g+2>>0]|0;k=a[g+3>>0]|0;switch(l<<24>>24){case -16:{if((m+112&255)>=48)break a;break}case -12:{if((m&-16)<<24>>24!=-128)break a;break}default:if((m&-64)<<24>>24!=-128)break a}j=i&255;if((j&192|0)!=128)break a;i=k&255;if((i&192|0)!=128)break a;if(((m&63)<<12|n<<18&1835008|j<<6&4032|i&63)>>>0>f>>>0)break a;else{h=h+1|0;g=g+4|0}}else g=g+1|0;while(0);h=h+1|0}return g-b|0}function DL(e,f,g,h,i,j,k,l){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0;c[g>>2]=e;c[j>>2]=h;if(l&4){e=c[g>>2]|0;h=f;if((((h-e|0)>2?(a[e>>0]|0)==-17:0)?(a[e+1>>0]|0)==-69:0)?(a[e+2>>0]|0)==-65:0)c[g>>2]=e+3}else h=f;s=i;a:while(1){n=c[g>>2]|0;if(n>>>0>=f>>>0){e=0;break}r=c[j>>2]|0;if(r>>>0>=i>>>0){e=1;break}m=a[n>>0]|0;q=m&255;if(q>>>0>k>>>0){e=2;break}do if(m<<24>>24>-1){b[r>>1]=m&255;e=n+1|0}else{if((m&255)<194){e=2;break a}if((m&255)<224){if((h-n|0)<2){e=1;break a}e=d[n+1>>0]|0;if((e&192|0)!=128){e=2;break a}e=e&63|q<<6&1984;if(e>>>0>k>>>0){e=2;break a}b[r>>1]=e;e=n+2|0;break}if((m&255)<240){if((h-n|0)<3){e=1;break a}l=a[n+1>>0]|0;e=a[n+2>>0]|0;switch(m<<24>>24){case -32:{if((l&-32)<<24>>24!=-96){e=2;break a}break}case -19:{if((l&-32)<<24>>24!=-128){e=2;break a}break}default:if((l&-64)<<24>>24!=-128){e=2;break a}}e=e&255;if((e&192|0)!=128){e=2;break a}e=(l&63)<<6|q<<12|e&63;if((e&65535)>>>0>k>>>0){e=2;break a}b[r>>1]=e;e=n+3|0;break}if((m&255)>=245){e=2;break a}if((h-n|0)<4){e=1;break a}o=a[n+1>>0]|0;e=a[n+2>>0]|0;l=a[n+3>>0]|0;switch(m<<24>>24){case -16:{if((o+112&255)>=48){e=2;break a}break}case -12:{if((o&-16)<<24>>24!=-128){e=2;break a}break}default:if((o&-64)<<24>>24!=-128){e=2;break a}}p=e&255;if((p&192|0)!=128){e=2;break a}e=l&255;if((e&192|0)!=128){e=2;break a}if((s-r|0)<4){e=1;break a}n=q&7;l=o&255;m=p<<6;e=e&63;if((l<<12&258048|n<<18|m&4032|e)>>>0>k>>>0){e=2;break a}b[r>>1]=l<<2&60|p>>>4&3|((l>>>4&3|n<<2)<<6)+16320|55296;r=r+2|0;c[j>>2]=r;b[r>>1]=e|m&960|56320;e=(c[g>>2]|0)+4|0}while(0);c[g>>2]=e;c[j>>2]=(c[j>>2]|0)+2}return e|0}function EL(d,f,g,h,i,j,k,l){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0;c[g>>2]=d;c[j>>2]=h;if(l&2)if((i-h|0)<3)d=1;else{c[j>>2]=h+1;a[h>>0]=-17;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=-69;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=-65;m=4}else m=4;a:do if((m|0)==4){n=f;d=c[g>>2]|0;while(1){if(d>>>0>=f>>>0){d=0;break a}h=b[d>>1]|0;m=h&65535;if(m>>>0>k>>>0){d=2;break a}do if((h&65535)<128){d=c[j>>2]|0;if((i-d|0)<1){d=1;break a}c[j>>2]=d+1;a[d>>0]=h}else{if((h&65535)<2048){d=c[j>>2]|0;if((i-d|0)<2){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>6|192;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m&63|128;break}if((h&65535)<55296){d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>12|224;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m>>>6&63|128;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m&63|128;break}if((h&65535)>=56320){if((h&65535)<57344){d=2;break a}d=c[j>>2]|0;if((i-d|0)<3){d=1;break a}c[j>>2]=d+1;a[d>>0]=m>>>12|224;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m>>>6&63|128;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m&63|128;break}if((n-d|0)<4){d=1;break a}d=d+2|0;h=e[d>>1]|0;if((h&64512|0)!=56320){d=2;break a}if((i-(c[j>>2]|0)|0)<4){d=1;break a}l=m&960;if(((l<<10)+65536|m<<10&64512|h&1023)>>>0>k>>>0){d=2;break a}c[g>>2]=d;d=(l>>>6)+1|0;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=d>>>2|240;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m>>>2&15|d<<4&48|128;l=c[j>>2]|0;c[j>>2]=l+1;a[l>>0]=m<<4&48|h>>>6&15|128;m=c[j>>2]|0;c[j>>2]=m+1;a[m>>0]=h&63|128}while(0);d=(c[g>>2]|0)+2|0;c[g>>2]=d}}while(0);return d|0}function FL(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;c[a>>2]=19216;e=a+8|0;f=a+12|0;d=0;while(1){b=c[e>>2]|0;if(d>>>0>=(c[f>>2]|0)-b>>2>>>0)break;b=c[b+(d<<2)>>2]|0;if(b|0?(h=b+4|0,g=c[h>>2]|0,c[h>>2]=g+-1,(g|0)==0):0)Sb[c[(c[b>>2]|0)+8>>2]&255](b);d=d+1|0}jO(a+144|0);HL(e);CF(a);return}function GL(a){a=a|0;FL(a);SA(a);return}function HL(b){b=b|0;var d=0,e=0;d=c[b>>2]|0;e=d;do if(d|0){c[b+4>>2]=e;if((d|0)==(b+16|0)){a[b+128>>0]=0;break}else{Pf(d,(c[b+8>>2]|0)-e|0);break}}while(0);return}function IL(b){b=b|0;var d=0;c[b>>2]=19236;d=c[b+8>>2]|0;if(d|0?a[b+12>>0]|0:0)vB(d);CF(b);return}function JL(a){a=a|0;IL(a);SA(a);return}function KL(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(TL()|0)+((b&255)<<2)|0;b=c[b>>2]&255}return b|0}function LL(b,d,e){b=b|0;d=d|0;e=e|0;while(1){if((d|0)==(e|0))break;b=a[d>>0]|0;if(b<<24>>24>-1){b=TL()|0;b=c[b+(a[d>>0]<<2)>>2]&255}a[d>>0]=b;d=d+1|0}return e|0}function ML(a,b){a=a|0;b=b|0;if(b<<24>>24>-1){b=(SL()|0)+(b<<24>>24<<2)|0;b=c[b>>2]&255}return b|0}function NL(b,d,e){b=b|0;d=d|0;e=e|0;while(1){if((d|0)==(e|0))break;b=a[d>>0]|0;if(b<<24>>24>-1){b=SL()|0;b=c[b+(a[d>>0]<<2)>>2]&255}a[d>>0]=b;d=d+1|0}return e|0}function OL(a,b){a=a|0;b=b|0;return b|0}function PL(b,c,d,e){b=b|0;c=c|0;d=d|0;e=e|0;while(1){if((c|0)==(d|0))break;a[e>>0]=a[c>>0]|0;e=e+1|0;c=c+1|0}return d|0}function QL(a,b,c){a=a|0;b=b|0;c=c|0;return (b<<24>>24>-1?b:c)|0}function RL(b,c,d,e,f){b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;while(1){if((c|0)==(d|0))break;b=a[c>>0]|0;a[f>>0]=b<<24>>24>-1?b:e;f=f+1|0;c=c+1|0}return d|0}function SL(){var a=0;a=jy()|0;return c[a>>2]|0}function TL(){var a=0;a=ky()|0;return c[a>>2]|0}function UL(){var a=0;a=gy()|0;return c[a>>2]|0}function VL(a){a=a|0;c[a>>2]=19288;jO(a+12|0);CF(a);return}function WL(a){a=a|0;VL(a);SA(a);return}function XL(b){b=b|0;return a[b+8>>0]|0}function YL(b){b=b|0;return a[b+9>>0]|0}function ZL(a,b){a=a|0;b=b|0;fO(a,b+12|0);return}function _L(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;gO(a,51258,Yf(51258)|0);return}function $L(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;gO(a,51252,Yf(51252)|0);return}function aM(a){a=a|0;c[a>>2]=19328;jO(a+16|0);CF(a);return}function bM(a){a=a|0;aM(a);SA(a);return}function cM(a){a=a|0;return c[a+8>>2]|0}function dM(a){a=a|0;return c[a+12>>2]|0}function eM(a,b){a=a|0;b=b|0;fO(a,b+16|0);return}function fM(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;tO(a,19384,JI(19384)|0);return}function gM(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;tO(a,19360,JI(19360)|0);return}function hM(a){a=a|0;CF(a);SA(a);return}function iM(a){a=a|0;CF(a);SA(a);return}function jM(a,c,d){a=a|0;c=c|0;d=d|0;if(d>>>0<128){a=(UL()|0)+(d<<1)|0;a=(b[a>>1]&c)<<16>>16!=0}else a=0;return a|0}function kM(a,d,f,g){a=a|0;d=d|0;f=f|0;g=g|0;while(1){if((d|0)==(f|0))break;if((c[d>>2]|0)>>>0<128){a=UL()|0;a=e[a+(c[d>>2]<<1)>>1]|0}else a=0;b[g>>1]=a;g=g+2|0;d=d+4|0}return f|0}function lM(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0)){e=f;break}if((c[e>>2]|0)>>>0<128?(a=UL()|0,(b[a+(c[e>>2]<<1)>>1]&d)<<16>>16):0)break;e=e+4|0}return e|0}function mM(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;while(1){if((e|0)==(f|0)){e=f;break}if((c[e>>2]|0)>>>0>=128)break;a=UL()|0;if(!((b[a+(c[e>>2]<<1)>>1]&d)<<16>>16))break;e=e+4|0}return e|0}function nM(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(TL()|0)+(b<<2)|0;b=c[b>>2]|0}return b|0}function oM(a,b,d){a=a|0;b=b|0;d=d|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(a>>>0<128){a=TL()|0;a=c[a+(c[b>>2]<<2)>>2]|0}c[b>>2]=a;b=b+4|0}return d|0}function pM(a,b){a=a|0;b=b|0;if(b>>>0<128){b=(SL()|0)+(b<<2)|0;b=c[b>>2]|0}return b|0}function qM(a,b,d){a=a|0;b=b|0;d=d|0;while(1){if((b|0)==(d|0))break;a=c[b>>2]|0;if(a>>>0<128){a=SL()|0;a=c[a+(c[b>>2]<<2)>>2]|0}c[b>>2]=a;b=b+4|0}return d|0}function rM(a,b){a=a|0;b=b|0;return b<<24>>24|0}function sM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;while(1){if((d|0)==(e|0))break;c[f>>2]=a[d>>0];f=f+4|0;d=d+1|0}return e|0}function tM(a,b,c){a=a|0;b=b|0;c=c|0;return (b>>>0<128?b&255:c)|0}function uM(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;h=(e-d|0)>>>2;b=g;g=d;while(1){if((g|0)==(e|0))break;i=c[g>>2]|0;a[b>>0]=i>>>0<128?i&255:f;b=b+1|0;g=g+4|0}return d+(h<<2)|0}function vM(a){a=a|0;CF(a);SA(a);return}function wM(a){a=a|0;CF(a);SA(a);return}function xM(a){a=a|0;CF(a);SA(a);return}function yM(a){a=a|0;c[a>>2]=19644;return}function zM(a){a=a|0;c[a>>2]=19680;return}function AM(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;c[b+4>>2]=f+-1;c[b>>2]=19236;f=b+8|0;c[f>>2]=d;a[b+12>>0]=e&1;if(!d){e=UL()|0;c[f>>2]=e}return}function BM(a,b){a=a|0;b=b|0;var d=0;c[a+4>>2]=b+-1;c[a>>2]=19216;b=a+8|0;CM(b,28);d=a+144|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;gO(d,49197,Yf(49197)|0);c[a+12>>2]=c[b>>2];DM();EM(a,54968);FM();GM(a,54976);HM();IM(a,54984);JM();KM(a,55e3);LM();MM(a,55008);NM();OM(a,55016);PM();QM(a,55032);RM();SM(a,55040);TM();UM(a,55048);VM();WM(a,55072);XM();YM(a,55104);ZM();_M(a,55112);$M();aN(a,55120);bN();cN(a,55128);dN();eN(a,55136);fN();gN(a,55144);hN();iN(a,55152);jN();kN(a,55160);lN();mN(a,55168);nN();oN(a,55176);pN();qN(a,55184);rN();sN(a,55192);tN();uN(a,55200);vN();wN(a,55216);xN();yN(a,55232);zN();AN(a,55248);BN();CN(a,55264);DN();EN(a,55272);return}function CM(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a[b+128>>0]=0;if(d|0){RN(b,d);IN(b,d)}return}function DM(){c[13743]=0;c[13742]=17072;return}function EM(a,b){a=a|0;b=b|0;FN(a,b,aG(56720)|0);return}function FM(){c[13745]=0;c[13744]=17104;return}function GM(a,b){a=a|0;b=b|0;FN(a,b,aG(56728)|0);return}function HM(){AM(54984,0,0,1);return}function IM(a,b){a=a|0;b=b|0;FN(a,b,aG(56736)|0);return}function JM(){c[13751]=0;c[13750]=19432;return}function KM(a,b){a=a|0;b=b|0;FN(a,b,aG(56768)|0);return}function LM(){c[13753]=0;c[13752]=19500;return}function MM(a,b){a=a|0;b=b|0;FN(a,b,aG(57040)|0);return}function NM(){QN(55016,1);return}function OM(a,b){a=a|0;b=b|0;FN(a,b,aG(57048)|0);return}function PM(){c[13759]=0;c[13758]=19548;return}function QM(a,b){a=a|0;b=b|0;FN(a,b,aG(57056)|0);return}function RM(){c[13761]=0;c[13760]=19596;return}function SM(a,b){a=a|0;b=b|0;FN(a,b,aG(57064)|0);return}function TM(){PN(55048,1);return}function UM(a,b){a=a|0;b=b|0;FN(a,b,aG(56752)|0);return}function VM(){ON(55072,1);return}function WM(a,b){a=a|0;b=b|0;FN(a,b,aG(56776)|0);return}function XM(){c[13777]=0;c[13776]=17136;return}function YM(a,b){a=a|0;b=b|0;FN(a,b,aG(56760)|0);return}function ZM(){c[13779]=0;c[13778]=17200;return}function _M(a,b){a=a|0;b=b|0;FN(a,b,aG(56784)|0);return}function $M(){c[13781]=0;c[13780]=17264;return}function aN(a,b){a=a|0;b=b|0;FN(a,b,aG(56792)|0);return}function bN(){c[13783]=0;c[13782]=17316;return}function cN(a,b){a=a|0;b=b|0;FN(a,b,aG(56800)|0);return}function dN(){c[13785]=0;c[13784]=18672;return}function eN(a,b){a=a|0;b=b|0;FN(a,b,aG(56960)|0);return}function fN(){c[13787]=0;c[13786]=18728;return}function gN(a,b){a=a|0;b=b|0;FN(a,b,aG(56968)|0);return}function hN(){c[13789]=0;c[13788]=18784;return}function iN(a,b){a=a|0;b=b|0;FN(a,b,aG(56976)|0);return}function jN(){c[13791]=0;c[13790]=18840;return}function kN(a,b){a=a|0;b=b|0;FN(a,b,aG(56984)|0);return}function lN(){c[13793]=0;c[13792]=18896;return}function mN(a,b){a=a|0;b=b|0;FN(a,b,aG(56992)|0);return}function nN(){c[13795]=0;c[13794]=18924;return}function oN(a,b){a=a|0;b=b|0;FN(a,b,aG(57e3)|0);return}function pN(){c[13797]=0;c[13796]=18952;return}function qN(a,b){a=a|0;b=b|0;FN(a,b,aG(57008)|0);return}function rN(){c[13799]=0;c[13798]=18980;return}function sN(a,b){a=a|0;b=b|0;FN(a,b,aG(57016)|0);return}function tN(){c[13801]=0;c[13800]=19412;yM(55208);c[13800]=17368;c[13802]=17416;return}function uN(a,b){a=a|0;b=b|0;FN(a,b,aG(56868)|0);return}function vN(){c[13805]=0;c[13804]=19412;zM(55224);c[13804]=17452;c[13806]=17500;return}function wN(a,b){a=a|0;b=b|0;FN(a,b,aG(56936)|0);return}function xN(){var a=0;c[13809]=0;c[13808]=19412;a=_F()|0;c[13810]=a;c[13808]=18624;return}function yN(a,b){a=a|0;b=b|0;FN(a,b,aG(56944)|0);return}function zN(){var a=0;c[13813]=0;c[13812]=19412;a=_F()|0;c[13814]=a;c[13812]=18648;return}function AN(a,b){a=a|0;b=b|0;FN(a,b,aG(56952)|0);return}function BN(){c[13817]=0;c[13816]=19008;return}function CN(a,b){a=a|0;b=b|0;FN(a,b,aG(57024)|0);return}function DN(){c[13819]=0;c[13818]=19040;return}function EN(a,b){a=a|0;b=b|0;FN(a,b,aG(57032)|0);return}function FN(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=b+4|0;c[f>>2]=(c[f>>2]|0)+1;f=a+8|0;e=c[f>>2]|0;if((c[a+12>>2]|0)-e>>2>>>0>d>>>0)a=f;else{GN(f,d+1|0);a=f;e=c[f>>2]|0}e=c[e+(d<<2)>>2]|0;if(e|0?(g=e+4|0,f=c[g>>2]|0,c[g>>2]=f+-1,(f|0)==0):0)Sb[c[(c[e>>2]|0)+8>>2]&255](e);c[(c[a>>2]|0)+(d<<2)>>2]=b;return}function GN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<2)}else HN(a,b-e|0);return}function HN(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>2>>>0>>0){d=(d-(c[a>>2]|0)>>2)+b|0;e=JN(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>1;KN(f,k>>2>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>2,a+16|0);LN(f,b);MN(a,f);NN(f);break}}else IN(a,b);while(0);zb=i;return}function IN(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function JN(a){a=a|0;return 1073741823}function KN(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;h=b+12|0;c[h>>2]=0;c[b+16>>2]=f;do if(d){g=f+112|0;if(d>>>0<29&(a[g>>0]|0)==0){a[g>>0]=1;break}else{f=tB(d<<2)|0;break}}else f=0;while(0);c[b>>2]=f;e=f+(e<<2)|0;c[b+8>>2]=e;c[b+4>>2]=e;c[h>>2]=f+(d<<2);return}function LN(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{c[b>>2]=0;b=(c[d>>2]|0)+4|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function MN(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function NN(b){b=b|0;var d=0,e=0,f=0,g=0;d=c[b+4>>2]|0;e=b+8|0;f=c[e>>2]|0;while(1){if((f|0)==(d|0))break;g=f+-4|0;c[e>>2]=g;f=g}e=c[b>>2]|0;f=e;do if(e|0){d=c[b+16>>2]|0;if((e|0)==(d|0)){a[d+112>>0]=0;break}else{Pf(e,(c[b+12>>2]|0)-f|0);break}}while(0);return}function ON(a,b){a=a|0;b=b|0;c[a+4>>2]=b+-1;c[a>>2]=19328;c[a+8>>2]=46;c[a+12>>2]=44;b=a+16|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;a=0;while(1){if((a|0)==3)break;c[b+(a<<2)>>2]=0;a=a+1|0}return}function PN(b,d){b=b|0;d=d|0;c[b+4>>2]=d+-1;c[b>>2]=19288;a[b+8>>0]=46;a[b+9>>0]=44;d=b+12|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;b=0;while(1){if((b|0)==3)break;c[d+(b<<2)>>2]=0;b=b+1|0}return}function QN(a,b){a=a|0;b=b|0;c[a+4>>2]=b+-1;c[a>>2]=19168;b=_F()|0;c[a+8>>2]=b;return}function RN(b,d){b=b|0;d=d|0;var e=0;if((JN(b)|0)>>>0>>0)EO(b);e=b+128|0;if(d>>>0<29&(a[e>>0]|0)==0){a[e>>0]=1;e=b+16|0}else e=tB(d<<2)|0;c[b+4>>2]=e;c[b>>2]=e;c[b+8>>2]=e+(d<<2);return}function SN(){if((a[55280]|0)==0?nB(55280)|0:0){TN()|0;c[14269]=57072;pB(55280)}return c[14269]|0}function TN(){UN();c[14268]=55288;return 57072}function UN(){BM(55288,1);return}function VN(){WN(57080,SN()|0);return 57080}function WN(a,b){a=a|0;b=b|0;b=c[b>>2]|0;c[a>>2]=b;b=b+4|0;c[b>>2]=(c[b>>2]|0)+1;return}function XN(){if((a[55448]|0)==0?nB(55448)|0:0){VN()|0;c[14271]=57080;pB(55448)}return c[14271]|0}function YN(a){a=a|0;var b=0;b=XN()|0;b=c[b>>2]|0;c[a>>2]=b;a=b+4|0;c[a>>2]=(c[a>>2]|0)+1;return}function ZN(a){a=a|0;return}function _N(a){a=a|0;var b=0,d=0;b=a+8|0;if(!((c[b>>2]|0)!=0?(d=c[b>>2]|0,c[b>>2]=d+-1,(d|0)!=0):0))Sb[c[(c[a>>2]|0)+16>>2]&255](a);return}function $N(a,b,d){a=a|0;b=b|0;d=d|0;do{}while((c[a>>2]|0)==1);if(!(c[a>>2]|0)){c[a>>2]=1;Sb[d&255](b);c[a>>2]=-1}return}function aO(){ua()}function bO(a,b){a=a|0;b=b|0;var d=0,e=0;e=Qy(b)|0;d=tB(e+13|0)|0;c[d>>2]=e;c[d+4>>2]=e;c[d+8>>2]=0;d=cO(d)|0;_O(d|0,b|0,e+1|0)|0;c[a>>2]=d;return}function cO(a){a=a|0;return a+12|0}function dO(a,b){a=a|0;b=b|0;c[a>>2]=16372;bO(a+4|0,b);return}function eO(a){a=a|0;ua()}function fO(b,d){b=b|0;d=d|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;if((a[d+11>>0]|0)<0)gO(b,c[d>>2]|0,c[d+4>>2]|0);else{c[b>>2]=c[d>>2];c[b+4>>2]=c[d+4>>2];c[b+8>>2]=c[d+8>>2]}return}function gO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=zb;zb=zb+16|0;f=g;if(e>>>0>4294967279)eO(b);if(e>>>0<11)a[b+11>>0]=e;else{i=e+16&-16;h=tB(i)|0;c[b>>2]=h;c[b+8>>2]=i|-2147483648;c[b+4>>2]=e;b=h}VD(b,d,e)|0;a[f>>0]=0;bg(b+e|0,f);zb=g;return}function hO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;g=zb;zb=zb+16|0;f=g;if(d>>>0>4294967279)eO(b);if(d>>>0<11)a[b+11>>0]=d;else{i=d+16&-16;h=tB(i)|0;c[b>>2]=h;c[b+8>>2]=i|-2147483648;c[b+4>>2]=d;b=h}iO(b,d,e)|0;a[f>>0]=0;bg(b+d|0,f);zb=g;return}function iO(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)aP(a|0,(cg(c)|0)&255|0,b|0)|0;return a|0}function jO(b){b=b|0;if((a[b+11>>0]|0)<0)Pf(c[b>>2]|0,c[b+8>>2]&2147483647);return}function kO(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;k=zb;zb=zb+16|0;i=k;j=b+11|0;f=a[j>>0]|0;g=f<<24>>24<0;if(g)h=(c[b+8>>2]&2147483647)+-1|0;else h=10;do if(h>>>0>=e>>>0){if(g)f=c[b>>2]|0;else f=b;lO(f,d,e)|0;a[i>>0]=0;bg(f+e|0,i);if((a[j>>0]|0)<0){c[b+4>>2]=e;break}else{a[j>>0]=e;break}}else{if(g)f=c[b+4>>2]|0;else f=f&255;mO(b,h,e-h|0,f,0,f,e,d)}while(0);zb=k;return b|0}function lO(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)$O(a|0,b|0,c|0)|0;return a|0} function nw(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=c[(c[a+484>>2]|0)+24>>2]|0;h=c[d>>2]|0;j=d+4|0;l=c[j>>2]|0;o=d+8|0;n=c[o>>2]|0;p=d+12|0;m=c[p>>2]|0;q=d+16|0;k=c[q>>2]|0;r=d+20|0;s=c[r>>2]|0;a:do if((l|0)<=(h|0)|(n|0)>(m|0)|(k|0)>(s|0))i=h;else{i=h;b:while(1){g=c[t+(i<<2)>>2]|0;e=n;while(1){a=g+(e<<6)+(k<<1)|0;f=k;while(1){if(b[a>>1]|0)break b;if((f|0)<(s|0)){a=a+2|0;f=f+1|0}else break}if((e|0)<(m|0))e=e+1|0;else break}if((i|0)<(l|0))i=i+1|0;else{i=h;break a}}c[d>>2]=i}while(0);c:do if(!((l|0)<=(i|0)|(n|0)>(m|0)|(k|0)>(s|0))){e=l;d:while(1){h=c[t+(e<<2)>>2]|0;f=n;while(1){a=h+(f<<6)+(k<<1)|0;g=k;while(1){if(b[a>>1]|0)break d;if((g|0)<(s|0)){a=a+2|0;g=g+1|0}else break}if((f|0)<(m|0))f=f+1|0;else break}if((e|0)>(i|0))e=e+-1|0;else break c}c[j>>2]=e;l=e}while(0);e:do if(!((m|0)<=(n|0)|(l|0)<(i|0)|(k|0)>(s|0))){f=n;f:while(1){e=i;while(1){a=(c[t+(e<<2)>>2]|0)+(f<<6)+(k<<1)|0;g=k;while(1){if(b[a>>1]|0)break f;if((g|0)<(s|0)){a=a+2|0;g=g+1|0}else break}if((e|0)<(l|0))e=e+1|0;else break}if((f|0)<(m|0))f=f+1|0;else break e}c[o>>2]=f;n=f}while(0);g:do if(!((m|0)<=(n|0)|(l|0)<(i|0)|(k|0)>(s|0))){f=m;h:while(1){e=i;while(1){a=(c[t+(e<<2)>>2]|0)+(f<<6)+(k<<1)|0;g=k;while(1){if(b[a>>1]|0)break h;if((g|0)<(s|0)){a=a+2|0;g=g+1|0}else break}if((e|0)<(l|0))e=e+1|0;else break}if((f|0)>(n|0))f=f+-1|0;else break g}c[p>>2]=f;m=f}while(0);i:do if(!((s|0)<=(k|0)|(l|0)<(i|0)|(m|0)<(n|0))){f=k;j:while(1){a=i;while(1){e=n;g=(c[t+(a<<2)>>2]|0)+(n<<6)+(f<<1)|0;while(1){if(b[g>>1]|0)break j;if((e|0)<(m|0)){e=e+1|0;g=g+64|0}else break}if((a|0)<(l|0))a=a+1|0;else break}if((f|0)<(s|0))f=f+1|0;else break i}c[q>>2]=f;k=f}while(0);k:do if((s|0)<=(k|0)|(l|0)<(i|0)|(m|0)<(n|0))f=s;else{f=s;l:while(1){a=i;while(1){e=n;g=(c[t+(a<<2)>>2]|0)+(n<<6)+(f<<1)|0;while(1){if(b[g>>1]|0)break l;if((e|0)<(m|0)){e=e+1|0;g=g+64|0}else break}if((a|0)<(l|0))a=a+1|0;else break}if((f|0)>(k|0))f=f+-1|0;else{f=s;break k}}c[r>>2]=f}while(0);r=l-i<<4;q=(m-n|0)*12|0;s=f-k<<3;s=(B(q,q)|0)+(B(r,r)|0)+(B(s,s)|0)|0;c[d+24>>2]=s;if((l|0)<(i|0)|(m|0)<(n|0)|(f|0)<(k|0)){t=0;d=d+28|0;c[d>>2]=t;return}a=0;while(1){j=c[t+(i<<2)>>2]|0;h=n;while(1){e=k;g=j+(h<<6)+(k<<1)|0;while(1){a=a+((b[g>>1]|0)!=0&1)|0;if((e|0)>=(f|0))break;else{e=e+1|0;g=g+2|0}}if((h|0)<(m|0))h=h+1|0;else break}if((i|0)<(l|0))i=i+1|0;else break}d=d+28|0;c[d>>2]=a;return}function ow(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=a+484|0;j=c[b>>2]|0;c[a+136>>2]=c[j+16>>2];c[a+132>>2]=c[j+20>>2];switch(c[a+88>>2]|0){case 0:{b=j+4|0;if((c[a+120>>2]|0)==3){c[b>>2]=22;return}else{c[b>>2]=23;return}}case 1:{l=a+120|0;c[j+4>>2]=(c[l>>2]|0)==3?24:25;c[j+48>>2]=0;if(!(c[j+28>>2]|0))rw(a);if(c[j+52>>2]|0)return;j=c[b>>2]|0;b=c[l>>2]|0;if((b|0)<=0)return;k=a+4|0;i=0;do{f=c[j+32+(i<<2)>>2]|0;a:do if(i){e=0;while(1){if((f|0)==(c[j+32+(e<<2)>>2]|0))break;e=e+1|0;if(e>>>0>=i>>>0){m=15;break a}}e=c[j+52+(e<<2)>>2]|0;if(!e)m=15}else m=15;while(0);if((m|0)==15){m=0;e=Jb[c[c[k>>2]>>2]&63](a,1,1024)|0;h=(f<<9)+-512|0;g=0;do{f=0;do{n=255-((d[5440+(g<<4)+f>>0]|0)<<1)|0;b=n*255|0;if((n|0)<0)b=0-((0-b|0)/(h|0)|0)|0;else b=(b|0)/(h|0)|0;c[e+(g<<6)+(f<<2)>>2]=b;f=f+1|0}while((f|0)!=16);g=g+1|0}while((g|0)!=16);b=c[l>>2]|0}c[j+52+(i<<2)>>2]=e;i=i+1|0}while((i|0)<(b|0));return}case 2:{c[j+4>>2]=26;c[j+84>>2]=0;if(!(c[j+68>>2]|0)){b=a+112|0;g=(c[b>>2]<<1)+4|0;h=a+120|0;if((c[h>>2]|0)<=0)return;i=a+4|0;e=0;do{f=Jb[c[(c[i>>2]|0)+4>>2]&63](a,1,g)|0;c[j+68+(e<<2)>>2]=f;e=e+1|0;f=c[h>>2]|0}while((e|0)<(f|0))}else{f=a+120|0;h=f;b=a+112|0;f=c[f>>2]|0}e=(c[b>>2]<<1)+4|0;if((f|0)<=0)return;b=0;do{aP(c[j+68+(b<<2)>>2]|0,0,e|0)|0;b=b+1|0}while((b|0)<(c[h>>2]|0));return}default:{n=c[a>>2]|0;c[n+20>>2]=49;Sb[c[n>>2]&255](a);return}}}function pw(a){a=a|0;return}function qw(a){a=a|0;var b=0;b=c[a>>2]|0;c[b+20>>2]=47;Sb[c[b>>2]&255](a);return}function rw(b){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;m=c[b+484>>2]|0;d=(c[b+88>>2]|0)==1;c[m+28>>2]=d&1;l=b+120|0;e=Kb[c[(c[b+4>>2]|0)+8>>2]&15](b,1,d?766:256,c[l>>2]|0)|0;k=m+24|0;c[k>>2]=e;b=c[m+20>>2]|0;if((c[l>>2]|0)<=0)return;if(!d){d=0;while(1){f=c[m+32+(d<<2)>>2]|0;b=(b|0)/(f|0)|0;h=c[e+(d<<2)>>2]|0;i=f+-1|0;j=i<<1;e=0;f=(f+254|0)/(j|0)|0;g=0;do{if((g|0)>(f|0))do{e=e+1|0;f=(((e<<1|1)*255|0)+i|0)/(j|0)|0}while((g|0)>(f|0));n=(B(e,b)|0)&255;a[h+g>>0]=n;g=g+1|0}while((g|0)!=256);d=d+1|0;if((d|0)>=(c[l>>2]|0))break;e=c[k>>2]|0}return}d=0;while(1){f=c[m+32+(d<<2)>>2]|0;b=(b|0)/(f|0)|0;j=e+(d<<2)|0;c[j>>2]=(c[j>>2]|0)+255;j=c[(c[k>>2]|0)+(d<<2)>>2]|0;h=f+-1|0;i=h<<1;e=0;f=(f+254|0)/(i|0)|0;g=0;do{if((g|0)>(f|0))do{e=e+1|0;f=(((e<<1|1)*255|0)+h|0)/(i|0)|0}while((g|0)>(f|0));n=(B(e,b)|0)&255;a[j+g>>0]=n;g=g+1|0}while((g|0)!=256);f=j+255|0;e=1;do{a[j+(0-e)>>0]=a[j>>0]|0;a[j+(e+255)>>0]=a[f>>0]|0;e=e+1|0}while((e|0)!=256);d=d+1|0;if((d|0)>=(c[l>>2]|0))break;e=c[k>>2]|0}return}function sw(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;m=c[(c[b+484>>2]|0)+24>>2]|0;n=c[m>>2]|0;l=c[m+4>>2]|0;m=c[m+8>>2]|0;k=c[b+112>>2]|0;if((g|0)<1|(k|0)==0)return;h=0;do{b=k;i=c[f+(h<<2)>>2]|0;j=c[e+(h<<2)>>2]|0;while(1){a[i>>0]=(d[l+(d[j+1>>0]|0)>>0]|0)+(d[n+(d[j>>0]|0)>>0]|0)+(d[m+(d[j+2>>0]|0)>>0]|0);b=b+-1|0;if(!b)break;else{i=i+1|0;j=j+3|0}}h=h+1|0}while((h|0)!=(g|0));return}function tw(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;o=c[(c[b+484>>2]|0)+24>>2]|0;p=c[b+112>>2]|0;n=c[b+120>>2]|0;if((g|0)<1|(p|0)==0)return;if((n|0)<=0){b=0;do{aP(c[f+(b<<2)>>2]|0,0,p|0)|0;b=b+1|0}while((b|0)!=(g|0));return}i=0;do{h=p;j=c[f+(i<<2)>>2]|0;k=c[e+(i<<2)>>2]|0;while(1){b=0;l=0;m=k;while(1){l=l+(d[(c[o+(b<<2)>>2]|0)+(d[m>>0]|0)>>0]|0)|0;b=b+1|0;if((b|0)==(n|0))break;else m=m+1|0}a[j>>0]=l;h=h+-1|0;if(!h)break;else{j=j+1|0;k=k+n|0}}i=i+1|0}while((i|0)!=(g|0));return}function uw(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,v=0,w=0;h=c[b+484>>2]|0;u=c[h+24>>2]|0;v=c[u>>2]|0;t=c[u+4>>2]|0;u=c[u+8>>2]|0;q=c[b+112>>2]|0;if((g|0)<=0)return;w=h+48|0;r=h+52|0;s=h+56|0;p=h+60|0;b=c[w>>2]|0;if(!q){h=0;do{b=b+1&15;h=h+1|0}while((h|0)!=(g|0));c[w>>2]=b;return}o=0;do{l=c[r>>2]|0;m=c[s>>2]|0;n=c[p>>2]|0;h=q;i=0;j=c[f+(o<<2)>>2]|0;k=c[e+(o<<2)>>2]|0;while(1){a[j>>0]=(d[t+((c[m+(b<<6)+(i<<2)>>2]|0)+(d[k+1>>0]|0))>>0]|0)+(d[v+((c[l+(b<<6)+(i<<2)>>2]|0)+(d[k>>0]|0))>>0]|0)+(d[u+((c[n+(b<<6)+(i<<2)>>2]|0)+(d[k+2>>0]|0))>>0]|0);h=h+-1|0;if(!h)break;else{i=i+1&15;j=j+1|0;k=k+3|0}}b=b+1&15;c[w>>2]=b;o=o+1|0}while((o|0)!=(g|0));return}function vw(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,v=0,w=0;u=c[b+484>>2]|0;v=c[b+120>>2]|0;w=c[b+112>>2]|0;if((g|0)<=0)return;t=u+48|0;m=u+24|0;n=(w|0)==0;if((v|0)<=0){b=0;do{aP(c[f+(b<<2)>>2]|0,0,w|0)|0;c[t>>2]=(c[t>>2]|0)+1&15;b=b+1|0}while((b|0)!=(g|0));return}h=0;do{o=f+(h<<2)|0;aP(c[o>>2]|0,0,w|0)|0;p=c[t>>2]|0;q=e+(h<<2)|0;if(!n){i=0;do{r=c[(c[m>>2]|0)+(i<<2)>>2]|0;s=c[u+52+(i<<2)>>2]|0;b=w;j=c[o>>2]|0;k=0;l=(c[q>>2]|0)+i|0;while(1){a[j>>0]=(d[j>>0]|0)+(d[r+((c[s+(p<<6)+(k<<2)>>2]|0)+(d[l>>0]|0))>>0]|0);b=b+-1|0;if(!b)break;else{j=j+1|0;k=k+1&15;l=l+v|0}}i=i+1|0}while((i|0)!=(v|0))}c[t>>2]=p+1&15;h=h+1|0}while((h|0)!=(g|0));return}function ww(e,f,g,h){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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;J=c[e+484>>2]|0;K=c[e+120>>2]|0;L=c[e+112>>2]|0;y=c[e+336>>2]|0;if((h|0)<=0)return;z=(K|0)>0;A=J+84|0;C=J+24|0;D=J+16|0;E=(L|0)==0;F=L+-1|0;G=B(F,K)|0;H=0-K|0;I=L+1|0;x=0;do{v=g+(x<<2)|0;aP(c[v>>2]|0,0,L|0)|0;a:do if(z){w=f+(x<<2)|0;if(E){i=(c[A>>2]|0)==0;e=0;while(1){w=c[J+68+(e<<2)>>2]|0;b[(i?w:w+(I<<1)|0)>>1]=0;e=e+1|0;if((e|0)==(K|0))break a}}r=0;do{e=(c[w>>2]|0)+r|0;i=c[v>>2]|0;if(!(c[A>>2]|0)){s=K;t=1;u=c[J+68+(r<<2)>>2]|0}else{s=H;t=-1;u=(c[J+68+(r<<2)>>2]|0)+(I<<1)|0;e=e+G|0;i=i+F|0}o=c[(c[C>>2]|0)+(r<<2)>>2]|0;p=c[(c[D>>2]|0)+(r<<2)>>2]|0;q=B(L,t)|0;l=0;m=L;n=0;j=0;k=u;while(1){M=k;k=k+(t<<1)|0;N=d[y+((j+8+(b[k>>1]|0)>>4)+(d[e>>0]|0))>>0]|0;j=d[o+N>>0]|0;a[i>>0]=(d[i>>0]|0)+j;j=N-(d[p+j>>0]|0)|0;b[M>>1]=(j*3|0)+n;n=(j*5|0)+l|0;m=m+-1|0;if(!m)break;else{l=j;j=j*7|0;e=e+s|0;i=i+t|0}}b[u+(q<<1)>>1]=n;r=r+1|0}while((r|0)!=(K|0))}while(0);c[A>>2]=(c[A>>2]|0)==0&1;x=x+1|0}while((x|0)!=(h|0));return}function xw(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=a+428|0;d=c[g>>2]|0;e=B(d,c[a+48>>2]|0)|0;f=c[a+52>>2]|0;do if(e>>>0>f>>>0){if(e>>>0<=f<<1>>>0){f=yw(c[a+28>>2]<<1,d)|0;c[a+112>>2]=f;f=2;b=c[a+32>>2]<<1;break}if(e>>>0<=(f*3|0)>>>0){f=yw((c[a+28>>2]|0)*3|0,d)|0;c[a+112>>2]=f;f=3;b=(c[a+32>>2]|0)*3|0;break}if(e>>>0<=f<<2>>>0){f=yw(c[a+28>>2]<<2,d)|0;c[a+112>>2]=f;f=4;b=c[a+32>>2]<<2;break}if(e>>>0<=(f*5|0)>>>0){f=yw((c[a+28>>2]|0)*5|0,d)|0;c[a+112>>2]=f;f=5;b=(c[a+32>>2]|0)*5|0;break}if(e>>>0<=(f*6|0)>>>0){f=yw((c[a+28>>2]|0)*6|0,d)|0;c[a+112>>2]=f;f=6;b=(c[a+32>>2]|0)*6|0;break}if(e>>>0<=(f*7|0)>>>0){f=yw((c[a+28>>2]|0)*7|0,d)|0;c[a+112>>2]=f;f=7;b=(c[a+32>>2]|0)*7|0;break}if(e>>>0<=f<<3>>>0){f=yw(c[a+28>>2]<<3,d)|0;c[a+112>>2]=f;f=8;b=c[a+32>>2]<<3;break}if(e>>>0<=(f*9|0)>>>0){f=yw((c[a+28>>2]|0)*9|0,d)|0;c[a+112>>2]=f;f=9;b=(c[a+32>>2]|0)*9|0;break}if(e>>>0<=(f*10|0)>>>0){f=yw((c[a+28>>2]|0)*10|0,d)|0;c[a+112>>2]=f;f=10;b=(c[a+32>>2]|0)*10|0;break}if(e>>>0<=(f*11|0)>>>0){f=yw((c[a+28>>2]|0)*11|0,d)|0;c[a+112>>2]=f;f=11;b=(c[a+32>>2]|0)*11|0;break}if(e>>>0<=(f*12|0)>>>0){f=yw((c[a+28>>2]|0)*12|0,d)|0;c[a+112>>2]=f;f=12;b=(c[a+32>>2]|0)*12|0;break}if(e>>>0<=(f*13|0)>>>0){f=yw((c[a+28>>2]|0)*13|0,d)|0;c[a+112>>2]=f;f=13;b=(c[a+32>>2]|0)*13|0;break}if(e>>>0<=(f*14|0)>>>0){f=yw((c[a+28>>2]|0)*14|0,d)|0;c[a+112>>2]=f;f=14;b=(c[a+32>>2]|0)*14|0;break}b=c[a+28>>2]|0;if(e>>>0>(f*15|0)>>>0){f=yw(b<<4,d)|0;c[a+112>>2]=f;f=16;b=c[a+32>>2]<<4;break}else{f=yw(b*15|0,d)|0;c[a+112>>2]=f;f=15;b=(c[a+32>>2]|0)*15|0;break}}else{f=yw(c[a+28>>2]|0,d)|0;c[a+112>>2]=f;f=1;b=c[a+32>>2]|0}while(0);e=yw(b,c[g>>2]|0)|0;c[a+116>>2]=e;c[a+324>>2]=f;c[a+328>>2]=f;e=c[a+36>>2]|0;if((e|0)<=0)return;d=0;b=c[a+216>>2]|0;while(1){c[b+36>>2]=f;c[b+40>>2]=f;d=d+1|0;if((d|0)>=(e|0))break;else b=b+88|0}return}function yw(a,b){a=a|0;b=b|0;return (a+-1+b|0)/(b|0)|0|0}function zw(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;j=zb;zb=zb+16|0;i=j;e=c[a+20>>2]|0;if((e|0)!=205){h=c[a>>2]|0;c[h+20>>2]=21;c[h+24>>2]=e;Sb[c[c[a>>2]>>2]&255](a)}e=a+140|0;f=c[e>>2]|0;g=c[a+116>>2]|0;if(f>>>0>=g>>>0){i=c[a>>2]|0;c[i+20>>2]=126;Ub[c[i+4>>2]&63](a,-1);i=0;zb=j;return i|0}h=c[a+8>>2]|0;if(h|0){c[h+4>>2]=f;c[h+8>>2]=g;Sb[c[h>>2]&255](a)}c[i>>2]=0;Xb[c[(c[a+448>>2]|0)+4>>2]&31](a,b,i,d);i=c[i>>2]|0;c[e>>2]=(c[e>>2]|0)+i;zb=j;return i|0}function Aw(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=zb;zb=zb+16|0;j=k;g=k+8|0;h=k+12|0;d=b+4|0;c[d>>2]=0;e=Bw(b)|0;c[g>>2]=e;f=Cw(b,84)|0;if(!f){Dw(b);i=c[b>>2]|0;c[i+20>>2]=56;c[i+24>>2]=0;Sb[c[c[b>>2]>>2]&255](b)}c[f>>2]=33;c[f+4>>2]=34;c[f+8>>2]=9;c[f+12>>2]=10;c[f+16>>2]=39;c[f+20>>2]=40;c[f+24>>2]=135;c[f+28>>2]=21;c[f+32>>2]=22;c[f+36>>2]=52;c[f+40>>2]=136;c[f+48>>2]=1e9;i=f+44|0;c[i>>2]=e;c[f+56>>2]=0;c[f+64>>2]=0;c[f+52>>2]=0;c[f+60>>2]=0;c[f+68>>2]=0;c[f+72>>2]=0;c[f+76>>2]=84;c[d>>2]=f;b=Ja(46641)|0;if(!b){zb=k;return}a[h>>0]=120;c[j>>2]=g;c[j+4>>2]=h;if((Cz(b,46649,j)|0)>0){switch(a[h>>0]|0){case 77:case 109:{b=(c[g>>2]|0)*1e3|0;c[g>>2]=b;break}default:b=c[g>>2]|0}c[i>>2]=b*1e3}zb=k;return}function Bw(a){a=a|0;return 0}function Cw(a,b){a=a|0;b=b|0;return FO(b)|0}function Dw(a){a=a|0;return}function Ew(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;k=c[a+4>>2]|0;if(d>>>0>999999984){j=c[a>>2]|0;c[j+20>>2]=56;c[j+24>>2]=1;Sb[c[c[a>>2]>>2]&255](a)}j=d&7;j=((j|0)==0?0:8-j|0)+d|0;if(b>>>0>1){i=c[a>>2]|0;c[i+20>>2]=15;c[i+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}i=k+52+(b<<2)|0;d=c[i>>2]|0;a:do if(!d){d=0;f=9}else while(1){if((c[d+8>>2]|0)>>>0>=j>>>0)break a;e=c[d>>2]|0;if(!e){f=9;break}else d=e}while(0);do if((f|0)==9){h=(d|0)==0;b=c[(h?15936:15944)+(b<<2)>>2]|0;e=999999984-j|0;b=b>>>0>e>>>0?e:b;e=b+j|0;g=e+16|0;f=Cw(a,g)|0;if(!f){do{if(b>>>0<100){g=c[a>>2]|0;c[g+20>>2]=56;c[g+24>>2]=2;Sb[c[c[a>>2]>>2]&255](a)}b=b>>>1;e=b+j|0;g=e+16|0;f=Cw(a,g)|0}while(!(f|0));b=g}else b=g;k=k+76|0;c[k>>2]=(c[k>>2]|0)+b;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=e;if(h){c[i>>2]=f;d=f;break}else{c[d>>2]=f;d=f;break}}while(0);i=d+4|0;k=c[i>>2]|0;c[i>>2]=k+j;i=d+8|0;c[i>>2]=(c[i>>2]|0)-j;return d+16+k|0}function Fw(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;if(d>>>0>999999984){f=c[a>>2]|0;c[f+20>>2]=56;c[f+24>>2]=3;Sb[c[c[a>>2]>>2]&255](a)}f=d&7;d=((f|0)==0?0:8-f|0)+d|0;if(b>>>0>1){f=c[a>>2]|0;c[f+20>>2]=15;c[f+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}e=d+16|0;f=Tw(a,e)|0;if(!f){h=c[a>>2]|0;c[h+20>>2]=56;c[h+24>>2]=4;Sb[c[c[a>>2]>>2]&255](a)}h=g+76|0;c[h>>2]=(c[h>>2]|0)+e;h=g+60+(b<<2)|0;c[f>>2]=c[h>>2];c[f+4>>2]=d;c[f+8>>2]=0;c[h>>2]=f;return f+16|0}function Gw(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;g=c[a+4>>2]|0;f=999999984/(d>>>0)|0;if(d>>>0>999999984){m=c[a>>2]|0;c[m+20>>2]=72;Sb[c[m>>2]&255](a)}h=(f|0)<(e|0)?f:e;c[g+80>>2]=h;l=Ew(a,b,e<<2)|0;if(!e)return l|0;m=~e;f=0;do{i=e-f|0;g=h;h=h>>>0>>0?h:i;i=Fw(a,b,B(h,d)|0)|0;if(h){j=f+m|0;k=~g;k=j>>>0>k>>>0?j:k;j=h;g=i;i=f;while(1){c[l+(i<<2)>>2]=g;j=j+-1|0;if(!j)break;else{g=g+d|0;i=i+1|0}}f=f+-1-k|0}}while(f>>>0>>0);return l|0}function Hw(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;g=c[a+4>>2]|0;n=d<<7;f=999999984/(n>>>0)|0;if(n>>>0>999999984){m=c[a>>2]|0;c[m+20>>2]=72;Sb[c[m>>2]&255](a)}h=(f|0)<(e|0)?f:e;c[g+80>>2]=h;l=Ew(a,b,e<<2)|0;if(!e)return l|0;m=~e;f=0;do{i=e-f|0;g=h;h=h>>>0>>0?h:i;i=Fw(a,b,B(n,h)|0)|0;if(h){j=f+m|0;k=~g;k=j>>>0>k>>>0?j:k;j=h;g=i;i=f;while(1){c[l+(i<<2)>>2]=g;j=j+-1|0;if(!j)break;else{g=g+(d<<7)|0;i=i+1|0}}f=f+-1-k|0}}while(f>>>0>>0);return l|0}function Iw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=c[a+4>>2]|0;if((b|0)==1)b=1;else{i=c[a>>2]|0;c[i+20>>2]=15;c[i+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}i=Ew(a,b,128)|0;c[i>>2]=0;c[i+4>>2]=f;c[i+8>>2]=e;c[i+12>>2]=g;c[i+32>>2]=d;c[i+40>>2]=0;h=h+68|0;c[i+44>>2]=c[h>>2];c[h>>2]=i;return i|0}function Jw(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;h=c[a+4>>2]|0;if((b|0)==1)b=1;else{i=c[a>>2]|0;c[i+20>>2]=15;c[i+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}i=Ew(a,b,128)|0;c[i>>2]=0;c[i+4>>2]=f;c[i+8>>2]=e;c[i+12>>2]=g;c[i+32>>2]=d;c[i+40>>2]=0;h=h+72|0;c[i+44>>2]=c[h>>2];c[h>>2]=i;return i|0}function Kw(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;u=a+4|0;s=c[u>>2]|0;f=s+68|0;b=c[f>>2]|0;if(!b){d=0;e=0}else{d=0;e=0;do{if(!(c[b>>2]|0)){t=c[b+8>>2]|0;d=(B(t,c[b+12>>2]|0)|0)+d|0;e=(B(c[b+4>>2]|0,t)|0)+e|0}b=c[b+44>>2]|0}while((b|0)!=0)}r=s+72|0;b=c[r>>2]|0;if(!b)b=e;else{do{if(!(c[b>>2]|0)){t=c[b+8>>2]|0;d=(B(c[b+12>>2]<<7,t)|0)+d|0;e=(B(t<<7,c[b+4>>2]|0)|0)+e|0}b=c[b+44>>2]|0}while((b|0)!=0);b=e}if((d|0)<1)return;e=Rw(a,d,b,c[s+76>>2]|0)|0;if((e|0)<(b|0)){t=(e|0)/(d|0)|0;t=(t|0)>1?t:1}else t=1e9;b=c[f>>2]|0;if(b|0){q=s+80|0;do{if(!(c[b>>2]|0)){e=c[b+4>>2]|0;d=c[b+12>>2]|0;if(((((e+-1|0)>>>0)/(d>>>0)|0)+1|0)>(t|0)){d=B(d,t)|0;p=b+16|0;c[p>>2]=d;d=b+8|0;Sw(a,b+48|0,B(c[d>>2]|0,e)|0);c[b+40>>2]=1;e=c[p>>2]|0}else{c[b+16>>2]=e;d=b+8|0}p=c[d>>2]|0;f=c[u>>2]|0;d=999999984/(p>>>0)|0;if(p>>>0>999999984){o=c[a>>2]|0;c[o+20>>2]=72;Sb[c[o>>2]&255](a)}g=(d|0)<(e|0)?d:e;c[f+80>>2]=g;n=Ew(a,1,e<<2)|0;if(e|0){o=~e;d=0;do{f=e-d|0;j=g;g=g>>>0>>0?g:f;f=B(g,p)|0;i=c[u>>2]|0;if(f>>>0>999999984){m=c[a>>2]|0;c[m+20>>2]=56;c[m+24>>2]=3;Sb[c[c[a>>2]>>2]&255](a)}h=f&7;f=((h|0)==0?0:8-h|0)+f|0;h=f+16|0;m=Tw(a,h)|0;if(!m){l=c[a>>2]|0;c[l+20>>2]=56;c[l+24>>2]=4;Sb[c[c[a>>2]>>2]&255](a)}l=i+76|0;c[l>>2]=(c[l>>2]|0)+h;l=i+64|0;c[m>>2]=c[l>>2];c[m+4>>2]=f;c[m+8>>2]=0;c[l>>2]=m;if(g){l=d+o|0;j=~j;k=l>>>0>j>>>0;i=g;f=m+16|0;h=d;while(1){c[n+(h<<2)>>2]=f;i=i+-1|0;if(!i)break;else{f=f+p|0;h=h+1|0}}d=d+-1-(k?l:j)|0}}while(d>>>0>>0)}c[b>>2]=n;c[b+20>>2]=c[q>>2];c[b+24>>2]=0;c[b+28>>2]=0;c[b+36>>2]=0}b=c[b+44>>2]|0}while((b|0)!=0)}b=c[r>>2]|0;if(!b)return;r=s+80|0;do{if(!(c[b>>2]|0)){e=c[b+4>>2]|0;d=c[b+12>>2]|0;if(((((e+-1|0)>>>0)/(d>>>0)|0)+1|0)>(t|0)){d=B(d,t)|0;s=b+16|0;c[s>>2]=d;d=b+8|0;Sw(a,b+48|0,B(e<<7,c[d>>2]|0)|0);c[b+40>>2]=1;e=c[s>>2]|0}else{c[b+16>>2]=e;d=b+8|0}p=c[d>>2]|0;f=c[u>>2]|0;q=p<<7;d=999999984/(q>>>0)|0;if(q>>>0>999999984){s=c[a>>2]|0;c[s+20>>2]=72;Sb[c[s>>2]&255](a)}g=(d|0)<(e|0)?d:e;c[f+80>>2]=g;n=Ew(a,1,e<<2)|0;if(e|0){o=~e;d=0;do{f=e-d|0;j=g;g=g>>>0>>0?g:f;f=B(g,q)|0;h=c[u>>2]|0;if(f>>>0>999999984){s=c[a>>2]|0;c[s+20>>2]=56;c[s+24>>2]=3;Sb[c[c[a>>2]>>2]&255](a)}i=f|16;m=Tw(a,i)|0;if(!m){s=c[a>>2]|0;c[s+20>>2]=56;c[s+24>>2]=4;Sb[c[c[a>>2]>>2]&255](a)}s=h+76|0;c[s>>2]=(c[s>>2]|0)+i;s=h+64|0;c[m>>2]=c[s>>2];c[m+4>>2]=f;c[m+8>>2]=0;c[s>>2]=m;if(g){l=d+o|0;j=~j;k=l>>>0>j>>>0;i=g;f=m+16|0;h=d;while(1){c[n+(h<<2)>>2]=f;i=i+-1|0;if(!i)break;else{f=f+(p<<7)|0;h=h+1|0}}d=d+-1-(k?l:j)|0}}while(d>>>0>>0)}c[b>>2]=n;c[b+20>>2]=c[r>>2];c[b+24>>2]=0;c[b+28>>2]=0;c[b+36>>2]=0}b=c[b+44>>2]|0}while((b|0)!=0);return}function Lw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;w=e+d|0;s=b+4|0;if(!((w>>>0<=(c[s>>2]|0)>>>0?(c[b+12>>2]|0)>>>0>=e>>>0:0)?(c[b>>2]|0)!=0:0)){x=c[a>>2]|0;c[x+20>>2]=23;Sb[c[x>>2]&255](a)}x=b+24|0;n=c[x>>2]|0;if(!(n>>>0<=d>>>0?w>>>0<=((c[b+16>>2]|0)+n|0)>>>0:0))v=7;a:do if((v|0)==7){if(!(c[b+40>>2]|0)){n=c[a>>2]|0;c[n+20>>2]=71;Sb[c[n>>2]&255](a)}k=b+36|0;if(c[k>>2]|0){l=c[b+8>>2]|0;e=c[x>>2]|0;m=b+20|0;n=b+16|0;g=c[n>>2]|0;b:do if((g|0)>0?(o=b+28|0,p=b+48|0,q=b+52|0,h=c[m>>2]|0,h=(h|0)<(g|0)?h:g,j=(c[o>>2]|0)-e|0,j=(h|0)<(j|0)?h:j,h=(c[s>>2]|0)-e|0,h=(j|0)<(h|0)?j:h,(h|0)>=1):0){i=B(e,l)|0;j=0;e=h;while(1){h=B(e,l)|0;Yb[c[q>>2]&63](a,p,c[(c[b>>2]|0)+(j<<2)>>2]|0,i,h);e=c[m>>2]|0;j=e+j|0;g=c[n>>2]|0;if((g|0)<=(j|0))break b;y=g-j|0;y=(e|0)<(y|0)?e:y;e=j+(c[x>>2]|0)|0;g=(c[o>>2]|0)-e|0;g=(y|0)<(g|0)?y:g;e=(c[s>>2]|0)-e|0;e=(g|0)<(e|0)?g:e;if((e|0)<1)break;else i=h+i|0}}while(0);c[k>>2]=0}k=b+16|0;e=c[k>>2]|0;if((c[x>>2]|0)>>>0>>0)g=d;else{g=w-e|0;g=(g|0)>0?g:0}c[x>>2]=g;l=c[b+8>>2]|0;m=b+20|0;if((e|0)>0?(t=b+28|0,u=b+48|0,r=c[m>>2]|0,r=(r|0)<(e|0)?r:e,y=(c[t>>2]|0)-g|0,y=(r|0)<(y|0)?r:y,r=(c[s>>2]|0)-g|0,r=(y|0)<(r|0)?y:r,(r|0)>=1):0){i=B(l,g)|0;j=0;e=r;while(1){h=B(e,l)|0;Yb[c[u>>2]&63](a,u,c[(c[b>>2]|0)+(j<<2)>>2]|0,i,h);g=c[m>>2]|0;j=g+j|0;e=c[k>>2]|0;if((e|0)<=(j|0))break a;r=e-j|0;r=(g|0)<(r|0)?g:r;e=j+(c[x>>2]|0)|0;y=(c[t>>2]|0)-e|0;y=(r|0)<(y|0)?r:y;e=(c[s>>2]|0)-e|0;e=(y|0)<(e|0)?y:e;if((e|0)<1)break;else i=h+i|0}}}while(0);h=b+28|0;e=c[h>>2]|0;do if(e>>>0>>0){g=(f|0)==0;if(e>>>0>>0)if(g){e=d;g=0}else{e=c[a>>2]|0;c[e+20>>2]=23;Sb[c[e>>2]&255](a);e=d;v=28}else if(g)g=0;else v=28;if((v|0)==28){c[h>>2]=w;g=1}if(!(c[b+32>>2]|0)){if(g)break;y=c[a>>2]|0;c[y+20>>2]=23;Sb[c[y>>2]&255](a);break}h=c[b+8>>2]|0;g=c[x>>2]|0;e=e-g|0;g=w-g|0;if(e>>>0>>0)do{aP(c[(c[b>>2]|0)+(e<<2)>>2]|0,0,h|0)|0;e=e+1|0}while((e|0)!=(g|0))}while(0);if(!f){f=c[b>>2]|0;y=c[x>>2]|0;y=d-y|0;y=f+(y<<2)|0;return y|0}c[b+36>>2]=1;f=c[b>>2]|0;y=c[x>>2]|0;y=d-y|0;y=f+(y<<2)|0;return y|0}function Mw(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;w=e+d|0;s=b+4|0;if(!((w>>>0<=(c[s>>2]|0)>>>0?(c[b+12>>2]|0)>>>0>=e>>>0:0)?(c[b>>2]|0)!=0:0)){x=c[a>>2]|0;c[x+20>>2]=23;Sb[c[x>>2]&255](a)}x=b+24|0;n=c[x>>2]|0;if(!(n>>>0<=d>>>0?w>>>0<=((c[b+16>>2]|0)+n|0)>>>0:0))v=7;a:do if((v|0)==7){if(!(c[b+40>>2]|0)){n=c[a>>2]|0;c[n+20>>2]=71;Sb[c[n>>2]&255](a)}k=b+36|0;if(c[k>>2]|0){l=c[b+8>>2]<<7;e=c[x>>2]|0;m=b+20|0;n=b+16|0;g=c[n>>2]|0;b:do if((g|0)>0?(o=b+28|0,p=b+48|0,q=b+52|0,h=c[m>>2]|0,h=(h|0)<(g|0)?h:g,j=(c[o>>2]|0)-e|0,j=(h|0)<(j|0)?h:j,h=(c[s>>2]|0)-e|0,h=(j|0)<(h|0)?j:h,(h|0)>=1):0){i=B(e,l)|0;j=0;e=h;while(1){h=B(e,l)|0;Yb[c[q>>2]&63](a,p,c[(c[b>>2]|0)+(j<<2)>>2]|0,i,h);e=c[m>>2]|0;j=e+j|0;g=c[n>>2]|0;if((g|0)<=(j|0))break b;y=g-j|0;y=(e|0)<(y|0)?e:y;e=j+(c[x>>2]|0)|0;g=(c[o>>2]|0)-e|0;g=(y|0)<(g|0)?y:g;e=(c[s>>2]|0)-e|0;e=(g|0)<(e|0)?g:e;if((e|0)<1)break;else i=h+i|0}}while(0);c[k>>2]=0}k=b+16|0;e=c[k>>2]|0;if((c[x>>2]|0)>>>0>>0)g=d;else{g=w-e|0;g=(g|0)>0?g:0}c[x>>2]=g;l=c[b+8>>2]<<7;m=b+20|0;if((e|0)>0?(t=b+28|0,u=b+48|0,r=c[m>>2]|0,r=(r|0)<(e|0)?r:e,y=(c[t>>2]|0)-g|0,y=(r|0)<(y|0)?r:y,r=(c[s>>2]|0)-g|0,r=(y|0)<(r|0)?y:r,(r|0)>=1):0){i=B(l,g)|0;j=0;e=r;while(1){h=B(e,l)|0;Yb[c[u>>2]&63](a,u,c[(c[b>>2]|0)+(j<<2)>>2]|0,i,h);e=c[m>>2]|0;j=e+j|0;g=c[k>>2]|0;if((g|0)<=(j|0))break a;r=g-j|0;r=(e|0)<(r|0)?e:r;e=j+(c[x>>2]|0)|0;y=(c[t>>2]|0)-e|0;y=(r|0)<(y|0)?r:y;e=(c[s>>2]|0)-e|0;e=(y|0)<(e|0)?y:e;if((e|0)<1)break;else i=h+i|0}}}while(0);h=b+28|0;e=c[h>>2]|0;do if(e>>>0>>0){g=(f|0)==0;if(e>>>0>>0)if(g){e=d;g=0}else{e=c[a>>2]|0;c[e+20>>2]=23;Sb[c[e>>2]&255](a);e=d;v=28}else if(g)g=0;else v=28;if((v|0)==28){c[h>>2]=w;g=1}if(!(c[b+32>>2]|0)){if(g)break;y=c[a>>2]|0;c[y+20>>2]=23;Sb[c[y>>2]&255](a);break}h=c[b+8>>2]<<7;g=c[x>>2]|0;e=e-g|0;g=w-g|0;if(e>>>0>>0)do{aP(c[(c[b>>2]|0)+(e<<2)>>2]|0,0,h|0)|0;e=e+1|0}while((e|0)!=(g|0))}while(0);if(!f){f=c[b>>2]|0;y=c[x>>2]|0;y=d-y|0;y=f+(y<<2)|0;return y|0}c[b+36>>2]=1;f=c[b>>2]|0;y=c[x>>2]|0;y=d-y|0;y=f+(y<<2)|0;return y|0}function Nw(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=c[a+4>>2]|0;if(b>>>0<=1){if((b|0)==1){f=g+68|0;d=c[f>>2]|0;if(d|0)do{e=d+40|0;if(c[e>>2]|0){c[e>>2]=0;Ub[c[d+56>>2]&63](a,d+48|0)}d=c[d+44>>2]|0}while((d|0)!=0);c[f>>2]=0;f=g+72|0;d=c[f>>2]|0;if(d|0)do{e=d+40|0;if(c[e>>2]|0){c[e>>2]=0;Ub[c[d+56>>2]&63](a,d+48|0)}d=c[d+44>>2]|0}while((d|0)!=0);c[f>>2]=0}}else{f=c[a>>2]|0;c[f+20>>2]=15;c[f+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}f=g+60+(b<<2)|0;d=c[f>>2]|0;c[f>>2]=0;if(d|0){e=g+76|0;do{h=d;d=c[d>>2]|0;f=(c[h+4>>2]|0)+16+(c[h+8>>2]|0)|0;Qw(a,h,f);c[e>>2]=(c[e>>2]|0)-f}while((d|0)!=0)}h=g+52+(b<<2)|0;d=c[h>>2]|0;c[h>>2]=0;if(!d)return;e=g+76|0;do{g=d;d=c[d>>2]|0;h=(c[g+4>>2]|0)+16+(c[g+8>>2]|0)|0;Pw(a,g,h);c[e>>2]=(c[e>>2]|0)-h}while((d|0)!=0);return}function Ow(a){a=a|0;var b=0;Nw(a,1);Nw(a,0);b=a+4|0;Pw(a,c[b>>2]|0,84);c[b>>2]=0;Dw(a);return}function Pw(a,b,c){a=a|0;b=b|0;c=c|0;GO(b);return}function Qw(a,b,c){a=a|0;b=b|0;c=c|0;GO(b);return}function Rw(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return c|0}function Sw(a,b,d){a=a|0;b=b|0;d=d|0;d=c[a>>2]|0;c[d+20>>2]=51;Sb[c[d>>2]&255](a);return}function Tw(a,b){a=a|0;b=b|0;return FO(b)|0}function Uw(a){a=a|0;var b=0,d=0;b=a+4|0;d=c[b>>2]|0;if(d|0)Sb[c[d+40>>2]&255](a);c[b>>2]=0;c[a+20>>2]=0;return}function Vw(a){a=a|0;var b=0;b=c[a+4>>2]|0;if(!b)return;Ub[c[b+36>>2]&63](a,1);b=a+20|0;if(!(c[a+16>>2]|0)){c[b>>2]=100;return}else{c[b>>2]=200;c[a+312>>2]=0;return}}function Ww(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;c[a+4>>2]=0;if((b|0)!=90){e=c[a>>2]|0;c[e+20>>2]=13;c[e+24>>2]=90;c[(c[a>>2]|0)+28>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}if((d|0)==488)b=a;else{b=c[a>>2]|0;c[b+20>>2]=22;c[b+24>>2]=488;c[(c[a>>2]|0)+28>>2]=d;Sb[c[c[a>>2]>>2]&255](a);b=a}f=c[a>>2]|0;d=a+12|0;e=c[d>>2]|0;aP(a+4|0,0,484)|0;c[a>>2]=f;c[d>>2]=e;c[a+16>>2]=1;Aw(b);c[a+8>>2]=0;c[a+24>>2]=0;c[a+312>>2]=0;b=a+164|0;d=b+48|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));Ut(a);Xw(a);c[a+20>>2]=200;return}function Xw(a){a=a|0;var b=0;b=Jb[c[c[a+4>>2]>>2]&63](a,0,28)|0;c[a+460>>2]=b;c[b>>2]=90;c[b+4>>2]=137;c[b+8>>2]=138;c[b+12>>2]=139;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=1;return}function Yw(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,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;G=a+460|0;b=c[G>>2]|0;H=b+20|0;if(c[H>>2]|0){a=2;return a|0}I=a+464|0;K=b+24|0;L=a+340|0;F=b+16|0;l=a+32|0;m=a+212|0;n=a+28|0;o=a+36|0;p=a+316|0;q=a+320|0;r=a+216|0;s=a+220|0;t=a+224|0;u=a+324|0;v=a+328|0;w=a+428|0;x=a+432|0;y=a+436|0;z=a+416|0;A=a+332|0;C=a+412|0;D=a+420|0;E=a+424|0;a:while(1){b=Gb[c[(c[I>>2]|0)+4>>2]&127](a)|0;switch(b|0){case 2:{k=58;break a}case 1:break;default:{k=63;break a}}b:do switch(c[K>>2]|0){case 0:{if(!(c[F>>2]|0)){j=c[a>>2]|0;c[j+20>>2]=36;Sb[c[j>>2]&255](a)}if(c[L>>2]|0){k=57;break a}break}case 1:{if(!((c[l>>2]|0)<=65500?(c[n>>2]|0)<=65500:0)){j=c[a>>2]|0;c[j+20>>2]=42;c[j+24>>2]=65500;Sb[c[c[a>>2]>>2]&255](a)}b=c[m>>2]|0;if((b+-8|0)>>>0>4){j=c[a>>2]|0;c[j+20>>2]=16;c[j+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}b=c[o>>2]|0;if((b|0)>10){j=c[a>>2]|0;c[j+20>>2]=27;c[j+24>>2]=b;c[(c[a>>2]|0)+28>>2]=10;Sb[c[c[a>>2]>>2]&255](a);b=c[o>>2]|0}c[p>>2]=1;c[q>>2]=1;if((b|0)>0){i=0;j=c[r>>2]|0;f=1;h=1;while(1){d=j+8|0;e=c[d>>2]|0;g=j+12|0;if((e+-1|0)>>>0<=3?(J=c[g>>2]|0,(J+-1|0)>>>0<=3):0)d=J;else{h=c[a>>2]|0;c[h+20>>2]=19;Sb[c[h>>2]&255](a);h=c[p>>2]|0;e=c[d>>2]|0;f=c[q>>2]|0;d=c[g>>2]|0;b=c[o>>2]|0}h=(h|0)>(e|0)?h:e;c[p>>2]=h;f=(f|0)>(d|0)?f:d;c[q>>2]=f;i=i+1|0;if((i|0)>=(b|0)){d=b;break}else j=j+88|0}}else d=b;c:do if(!(c[s>>2]|0)){if(c[t>>2]|0?c[L>>2]|0:0){k=22;break}do switch(c[z>>2]|0){case 0:{c[w>>2]=1;c[x>>2]=2064;c[y>>2]=0;b=1;break c}case 3:{c[w>>2]=2;c[x>>2]=3280;c[y>>2]=3;b=2;break c}case 8:{c[w>>2]=3;c[x>>2]=3168;c[y>>2]=8;b=3;break c}case 15:{c[w>>2]=4;c[x>>2]=3040;c[y>>2]=15;b=4;break c}case 24:{c[w>>2]=5;c[x>>2]=2864;c[y>>2]=24;b=5;break c}case 35:{c[w>>2]=6;c[x>>2]=2656;c[y>>2]=35;b=6;break c}case 48:{c[w>>2]=7;c[x>>2]=2384;c[y>>2]=48;b=7;break c}case 63:{c[w>>2]=8;c[x>>2]=2064;c[y>>2]=63;b=8;break c}case 80:{c[w>>2]=9;c[x>>2]=2064;c[y>>2]=63;b=9;break c}case 99:{c[w>>2]=10;c[x>>2]=2064;c[y>>2]=63;b=10;break c}case 120:{c[w>>2]=11;c[x>>2]=2064;c[y>>2]=63;b=11;break c}case 143:{c[w>>2]=12;c[x>>2]=2064;c[y>>2]=63;b=12;break c}case 168:{c[w>>2]=13;c[x>>2]=2064;c[y>>2]=63;b=13;break c}case 195:{c[w>>2]=14;c[x>>2]=2064;c[y>>2]=63;b=14;break c}case 224:{c[w>>2]=15;c[x>>2]=2064;c[y>>2]=63;b=15;break c}case 255:{c[w>>2]=16;c[x>>2]=2064;c[y>>2]=63;b=16;break c}default:{b=c[a>>2]|0;c[b+20>>2]=17;c[b+24>>2]=c[C>>2];c[(c[a>>2]|0)+28>>2]=c[z>>2];c[(c[a>>2]|0)+32>>2]=c[D>>2];c[(c[a>>2]|0)+36>>2]=c[E>>2];Sb[c[c[a>>2]>>2]&255](a);b=c[w>>2]|0;d=c[o>>2]|0;break c}}while(0)}else k=22;while(0);if((k|0)==22){c[w>>2]=8;c[x>>2]=2064;c[y>>2]=63;b=8}c[u>>2]=b;c[v>>2]=b;if((d|0)>0){d=0;e=c[r>>2]|0;while(1){c[e+36>>2]=b;c[e+40>>2]=b;k=e+8|0;j=B(c[k>>2]|0,c[n>>2]|0)|0;b=yw(j,B(c[p>>2]|0,b)|0)|0;c[e+28>>2]=b;b=e+12|0;j=B(c[b>>2]|0,c[l>>2]|0)|0;j=yw(j,B(c[w>>2]|0,c[q>>2]|0)|0)|0;c[e+32>>2]=j;k=B(c[k>>2]|0,c[n>>2]|0)|0;k=yw(k,c[p>>2]|0)|0;c[e+44>>2]=k;b=B(c[b>>2]|0,c[l>>2]|0)|0;b=yw(b,c[q>>2]|0)|0;c[e+48>>2]=b;c[e+52>>2]=1;c[e+80>>2]=0;b=d+1|0;if((b|0)>=(c[o>>2]|0))break;d=b;e=e+88|0;b=c[w>>2]|0}b=c[w>>2]|0}b=yw(c[l>>2]|0,B(b,c[q>>2]|0)|0)|0;c[A>>2]=b;b=c[L>>2]|0;if((b|0)>=(c[o>>2]|0)?(c[t>>2]|0)==0:0){c[(c[G>>2]|0)+16>>2]=0;k=50;break b}c[(c[G>>2]|0)+16>>2]=1;k=50;break}default:{b=c[L>>2]|0;k=50}}while(0);if((k|0)==50){k=0;if(b|0){k=52;break}c[K>>2]=2}}if((k|0)==52){c[K>>2]=0;a=1;return a|0}else if((k|0)==57){_w(a);a=1;return a|0}else if((k|0)==58){c[H>>2]=1;if(!(c[K>>2]|0)){d=a+152|0;b=c[a+144>>2]|0;if((c[d>>2]|0)<=(b|0)){a=2;return a|0}c[d>>2]=b;a=2;return a|0}else{if(!(c[(c[I>>2]|0)+16>>2]|0)){a=2;return a|0}L=c[a>>2]|0;c[L+20>>2]=62;Sb[c[L>>2]&255](a);a=2;return a|0}}else if((k|0)==63)return b|0;return 0}function Zw(a){a=a|0;var b=0;b=c[a+460>>2]|0;c[b>>2]=90;c[b+16>>2]=0;c[b+20>>2]=0;c[b+24>>2]=1;Sb[c[(c[a>>2]|0)+16>>2]&255](a);Sb[c[c[a+464>>2]>>2]&255](a);c[a+160>>2]=0;return}function _w(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;h=a+340|0;b=c[h>>2]|0;if((b|0)!=1){if((b+-1|0)>>>0>3){g=c[a>>2]|0;c[g+20>>2]=27;c[g+24>>2]=b;c[(c[a>>2]|0)+28>>2]=4;Sb[c[c[a>>2]>>2]&255](a)}f=a+428|0;g=yw(c[a+28>>2]|0,B(c[f>>2]|0,c[a+316>>2]|0)|0)|0;c[a+360>>2]=g;f=yw(c[a+32>>2]|0,B(c[f>>2]|0,c[a+320>>2]|0)|0)|0;c[a+364>>2]=f;f=a+368|0;c[f>>2]=0;if((c[h>>2]|0)<=0){g=a+468|0;g=c[g>>2]|0;g=c[g>>2]|0;Sb[g&255](a);g=a+452|0;h=c[g>>2]|0;h=c[h>>2]|0;Sb[h&255](a);g=c[g>>2]|0;g=g+4|0;g=c[g>>2]|0;h=a+460|0;h=c[h>>2]|0;c[h>>2]=g;return}d=0;e=0;while(1){g=c[a+344+(d<<2)>>2]|0;k=c[g+8>>2]|0;c[g+56>>2]=k;j=c[g+12>>2]|0;c[g+60>>2]=j;b=B(j,k)|0;c[g+64>>2]=b;i=B(c[g+36>>2]|0,k)|0;c[g+68>>2]=i;i=((c[g+28>>2]|0)>>>0)%(k>>>0)|0;c[g+72>>2]=(i|0)==0?k:i;i=((c[g+32>>2]|0)>>>0)%(j>>>0)|0;c[g+76>>2]=(i|0)==0?j:i;if((b+e|0)>10){k=c[a>>2]|0;c[k+20>>2]=14;Sb[c[k>>2]&255](a)}if((b|0)>0)while(1){k=c[f>>2]|0;c[f>>2]=k+1;c[a+372+(k<<2)>>2]=d;if((b|0)>1)b=b+-1|0;else break}d=d+1|0;b=c[h>>2]|0;if((d|0)>=(b|0))break;e=c[f>>2]|0}if((b|0)<=0){j=a+468|0;j=c[j>>2]|0;j=c[j>>2]|0;Sb[j&255](a);j=a+452|0;k=c[j>>2]|0;k=c[k>>2]|0;Sb[k&255](a);j=c[j>>2]|0;j=j+4|0;j=c[j>>2]|0;k=a+460|0;k=c[k>>2]|0;c[k>>2]=j;return}}else{b=c[a+344>>2]|0;c[a+360>>2]=c[b+28>>2];k=c[b+32>>2]|0;c[a+364>>2]=k;c[b+56>>2]=1;c[b+60>>2]=1;c[b+64>>2]=1;c[b+68>>2]=c[b+36>>2];c[b+72>>2]=1;j=c[b+12>>2]|0;k=(k>>>0)%(j>>>0)|0;c[b+76>>2]=(k|0)==0?j:k;c[a+368>>2]=1;c[a+372>>2]=0;b=1}g=a+4|0;f=0;do{d=c[a+344+(f<<2)>>2]|0;e=d+80|0;if(!(c[e>>2]|0)){d=c[d+16>>2]|0;b=a+164+(d<<2)|0;if(!(d>>>0<=3?(c[b>>2]|0)!=0:0)){k=c[a>>2]|0;c[k+20>>2]=54;c[k+24>>2]=d;Sb[c[c[a>>2]>>2]&255](a)}k=Jb[c[c[g>>2]>>2]&63](a,1,132)|0;_O(k|0,c[b>>2]|0,132)|0;c[e>>2]=k;b=c[h>>2]|0}f=f+1|0}while((f|0)<(b|0));j=a+468|0;j=c[j>>2]|0;j=c[j>>2]|0;Sb[j&255](a);j=a+452|0;k=c[j>>2]|0;k=c[k>>2]|0;Sb[k&255](a);j=c[j>>2]|0;j=j+4|0;j=c[j>>2]|0;k=a+460|0;k=c[k>>2]|0;c[k>>2]=j;return}function $w(a){a=a|0;Sb[c[(c[a+468>>2]|0)+8>>2]&255](a);c[c[a+460>>2]>>2]=90;return}function ax(a){a=a|0;Uw(a);return}function bx(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a+20>>2]|0;if((d&-2|0)!=200){e=c[a>>2]|0;c[e+20>>2]=21;c[e+24>>2]=d;Sb[c[c[a>>2]>>2]&255](a)}d=cx(a)|0;switch(d|0){case 1:{e=1;return e|0}case 2:{if(b){e=c[a>>2]|0;c[e+20>>2]=53;Sb[c[e>>2]&255](a)}Vw(a);e=2;return e|0}default:{e=d;return e|0}}return 0}function cx(b){b=b|0;var d=0,e=0,f=0,h=0,i=0;i=b+20|0;d=c[i>>2]|0;switch(d|0){case 200:{d=b+460|0;Sb[c[(c[d>>2]|0)+4>>2]&255](b);Sb[c[(c[b+24>>2]|0)+8>>2]&255](b);c[i>>2]=201;break}case 201:{d=b+460|0;break}case 210:case 208:case 207:case 206:case 205:case 204:case 203:{i=Gb[c[c[b+460>>2]>>2]&127](b)|0;return i|0}case 202:{i=1;return i|0}default:{i=c[b>>2]|0;c[i+20>>2]=21;c[i+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b);i=0;return i|0}}d=Gb[c[c[d>>2]>>2]&127](b)|0;if((d|0)!=1){i=d;return i|0}d=c[b+36>>2]|0;a:do switch(d|0){case 1:{e=d;break}case 3:{f=c[b+216>>2]|0;d=c[f>>2]|0;e=c[f+88>>2]|0;f=c[f+176>>2]|0;h=(d|0)==1;if(!(h&(e|0)==2&(f|0)==3))if(!(h&(e|0)==34&(f|0)==35))if(!((d|0)==82&(e|0)==71&(f|0)==66))if(!((d|0)==114&(e|0)==103&(f|0)==98))if(!(c[b+284>>2]|0)){if(!(c[b+296>>2]|0)){h=c[b>>2]|0;c[h+24>>2]=d;c[h+28>>2]=e;c[h+32>>2]=f;c[h+20>>2]=113;Ub[c[h+4>>2]&63](b,1);e=2;d=3;break a}d=a[b+300>>0]|0;switch(d<<24>>24){case 0:{e=2;d=2;break a}case 1:{e=2;d=3;break a}default:{e=c[b>>2]|0;c[e+20>>2]=116;c[e+24>>2]=d&255;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1);e=2;d=3;break a}}}else{e=2;d=3}else{e=2;d=6}else{e=2;d=2}else{e=2;d=7}else{e=2;d=3}break}case 4:{if(!(c[b+296>>2]|0)){e=4;d=4}else{d=a[b+300>>0]|0;switch(d<<24>>24){case 0:{e=4;d=4;break a}case 2:{e=4;d=5;break a}default:{e=c[b>>2]|0;c[e+20>>2]=116;c[e+24>>2]=d&255;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1);e=4;d=5;break a}}}break}default:{e=0;d=0}}while(0);c[b+40>>2]=d;c[b+44>>2]=e;h=c[b+428>>2]|0;c[b+48>>2]=h;c[b+52>>2]=h;g[b+56>>3]=1.0;c[b+64>>2]=0;c[b+68>>2]=0;c[b+72>>2]=0;c[b+76>>2]=1;c[b+80>>2]=1;c[b+84>>2]=0;c[b+88>>2]=2;c[b+92>>2]=1;c[b+96>>2]=256;c[b+136>>2]=0;c[b+100>>2]=0;c[b+104>>2]=0;c[b+108>>2]=0;c[i>>2]=202;i=1;return i|0}function dx(a){a=a|0;var b=0,d=0,e=0;b=a+20|0;d=c[b>>2]|0;if((d+-205|0)>>>0<2?(c[a+64>>2]|0)==0:0){if((c[a+140>>2]|0)>>>0<(c[a+116>>2]|0)>>>0){d=c[a>>2]|0;c[d+20>>2]=69;Sb[c[d>>2]&255](a)}Sb[c[(c[a+444>>2]|0)+4>>2]&255](a);c[b>>2]=210}else e=6;a:do if((e|0)==6)switch(d|0){case 210:break a;case 207:{c[b>>2]=210;break a}default:{e=c[a>>2]|0;c[e+20>>2]=21;c[e+24>>2]=d;Sb[c[c[a>>2]>>2]&255](a);break a}}while(0);d=a+460|0;b=c[d>>2]|0;b:do if(!(c[b+20>>2]|0)){while(1){if(!(Gb[c[b>>2]&127](a)|0)){b=0;break}b=c[d>>2]|0;if(c[b+20>>2]|0)break b}return b|0}while(0);Sb[c[(c[a+24>>2]|0)+24>>2]&255](a);Vw(a);a=1;return a|0}function ex(a){a=a|0;c[a>>2]=140;c[a+4>>2]=53;c[a+8>>2]=141;c[a+12>>2]=54;c[a+16>>2]=142;c[a+104>>2]=0;c[a+108>>2]=0;c[a+20>>2]=0;c[a+112>>2]=3824;c[a+116>>2]=126;c[a+120>>2]=0;c[a+124>>2]=0;c[a+128>>2]=0;return a|0}function fx(a){a=a|0;Sb[c[(c[a>>2]|0)+8>>2]&255](a);Uw(a);Ea(1)}function gx(a,b){a=a|0;b=b|0;var d=0,e=0;d=c[a>>2]|0;if((b|0)>=0){if((c[d+104>>2]|0)<(b|0))return;Sb[c[d+8>>2]&255](a);return}e=d+108|0;b=c[e>>2]|0;if(!((b|0)!=0?(c[d+104>>2]|0)<=2:0)){Sb[c[d+8>>2]&255](a);b=c[e>>2]|0}c[e>>2]=b+1;return}function hx(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+208|0;d=b+200|0;e=b;Ub[c[(c[a>>2]|0)+12>>2]&63](a,e);a=c[4001]|0;c[d>>2]=e;Lz(a,46655,d)|0;zb=b;return}function ix(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=zb;zb=zb+48|0;j=k+8|0;i=k;h=c[b>>2]|0;f=c[h+20>>2]|0;if((f|0)>0?(f|0)<=(c[h+116>>2]|0):0){b=(c[h+112>>2]|0)+(f<<2)|0;g=8}else{b=c[h+120>>2]|0;if(((b|0)!=0?(e=c[h+124>>2]|0,(f|0)>=(e|0)):0)?(f|0)<=(c[h+128>>2]|0):0){b=b+(f-e<<2)|0;g=8}else g=9}if((g|0)==8){b=c[b>>2]|0;if(!b)g=9}if((g|0)==9){c[h+24>>2]=f;b=c[c[h+112>>2]>>2]|0}e=b;a:while(1){f=e+1|0;switch(a[e>>0]|0){case 0:break a;case 37:{g=12;break a}default:e=f}}if((g|0)==12?(a[f>>0]|0)==115:0){c[i>>2]=h+24;Hx(d,b,i)|0;zb=k;return}n=c[h+28>>2]|0;m=c[h+32>>2]|0;l=c[h+36>>2]|0;e=c[h+40>>2]|0;f=c[h+44>>2]|0;g=c[h+48>>2]|0;i=c[h+52>>2]|0;c[j>>2]=c[h+24>>2];c[j+4>>2]=n;c[j+8>>2]=m;c[j+12>>2]=l;c[j+16>>2]=e;c[j+20>>2]=f;c[j+24>>2]=g;c[j+28>>2]=i;Hx(d,b,j)|0;zb=k;return}function jx(a){a=a|0;a=c[a>>2]|0;c[a+108>>2]=0;c[a+20>>2]=0;return}function kx(a){a=a|0;return (aa(px(c[a+60>>2]|0)|0)|0)&65535|0}function lx(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;l=zb;zb=zb+32|0;h=l;i=l+16|0;j=a+28|0;f=c[j>>2]|0;c[h>>2]=f;k=a+20|0;f=(c[k>>2]|0)-f|0;c[h+4>>2]=f;c[h+8>>2]=b;c[h+12>>2]=d;e=a+60|0;g=2;b=f+d|0;while(1){if(!(nx(da(c[e>>2]|0,h|0,g|0,i|0)|0)|0))f=c[i>>2]|0;else{c[i>>2]=-1;f=-1}if((b|0)==(f|0)){b=6;break}if((f|0)<0){b=8;break}p=c[h+4>>2]|0;n=f>>>0>p>>>0;m=n?h+8|0:h;p=f-(n?p:0)|0;c[m>>2]=(c[m>>2]|0)+p;o=m+4|0;c[o>>2]=(c[o>>2]|0)-p;g=g+(n<<31>>31)|0;b=b-f|0;h=m}if((b|0)==6){p=c[a+44>>2]|0;c[a+16>>2]=p+(c[a+48>>2]|0);c[j>>2]=p;c[k>>2]=p}else if((b|0)==8){c[a+16>>2]=0;c[j>>2]=0;c[k>>2]=0;c[a>>2]=c[a>>2]|32;if((g|0)==2)d=0;else d=d-(c[h+4>>2]|0)|0}zb=l;return d|0}function mx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=zb;zb=zb+16|0;f=g;if(!(nx(ca(c[a+60>>2]|0,b|0,d|0,e&255|0,f|0)|0)|0)){b=f;a=c[b+4>>2]|0;b=c[b>>2]|0}else{a=f;c[a>>2]=-1;c[a+4>>2]=-1;a=-1;b=-1}E(a|0);zb=g;return b|0}function nx(a){a=a|0;var b=0;if(!(a<<16>>16))a=0;else{b=ox()|0;c[b>>2]=a&65535;a=-1}return a|0}function ox(){return 55620}function px(a){a=a|0;return a|0}function qx(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;l=zb;zb=zb+32|0;i=l;f=l+16|0;c[i>>2]=d;g=i+4|0;j=b+48|0;m=c[j>>2]|0;c[g>>2]=e-((m|0)!=0&1);h=b+44|0;c[i+8>>2]=c[h>>2];c[i+12>>2]=m;if(!(nx(ba(c[b+60>>2]|0,i|0,2,f|0)|0)|0)){f=c[f>>2]|0;if((f|0)>=1){i=c[g>>2]|0;if(f>>>0>i>>>0){g=c[h>>2]|0;h=b+4|0;c[h>>2]=g;c[b+8>>2]=g+(f-i);if(!(c[j>>2]|0))f=e;else{c[h>>2]=g+1;a[d+(e+-1)>>0]=a[g>>0]|0;f=e}}}else k=4}else{c[f>>2]=-1;f=-1;k=4}if((k|0)==4)c[b>>2]=f&48^16|c[b>>2];zb=l;return f|0}function rx(a){a=a|0;return 0}function sx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;E(0);return 0}function tx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=ux(a,b,c)|0;E(F()|0);return d|0}function ux(a,b,c){a=a|0;b=b|0;c=c|0;c=vx(a,b,c,-1,-1)|0;E(F()|0);return c|0}function vx(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;j=zb;zb=zb+144|0;h=j;c[h>>2]=0;i=h+4|0;c[i>>2]=a;c[h+44>>2]=a;g=h+8|0;c[g>>2]=(a|0)<0?-1:a+2147483647|0;c[h+76>>2]=-1;wx(h,0,0);d=xx(h,d,1,e,f)|0;e=F()|0;if(b|0)c[b>>2]=a+((c[i>>2]|0)+(c[h+120>>2]|0)-(c[g>>2]|0));E(e|0);zb=j;return d|0}function wx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;f=a+112|0;c[f>>2]=b;c[f+4>>2]=d;f=c[a+8>>2]|0;e=c[a+4>>2]|0;g=f-e|0;h=((g|0)<0)<<31>>31;i=a+120|0;c[i>>2]=g;c[i+4>>2]=h;if(((b|0)!=0|(d|0)!=0)&((h|0)>(d|0)|(h|0)==(d|0)&g>>>0>b>>>0))c[a+104>>2]=e+b;else c[a+104>>2]=f;return}function xx(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){h=ox()|0;c[h>>2]=28;h=0;g=0}else{r=b+4|0;q=b+104|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=yx(b)|0}while((zx(i)|0)!=0);b:do switch(i|0){case 43:case 45:{i=((i|0)==45)<<31>>31;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;p=i;i=d[j>>0]|0;break b}else{p=i;i=yx(b)|0;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=yx(b)|0;if((i|32|0)!=120)if(j){o=8;n=47;break}else{n=32;break}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=yx(b)|0;if((d[5937+i>>0]|0)>15){g=(c[q>>2]|0)==0;if(!g)c[r>>2]=(c[r>>2]|0)+-1;if(!f){wx(b,0,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{o=16;n=47}}else{e=j?10:e;if(e>>>0>(d[5937+i>>0]|0)>>>0)n=32;else{if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;wx(b,0,0);h=ox()|0;c[h>>2]=28;h=0;g=0;break a}}while(0);c:do if((n|0)==32)if((e|0)==10){e=i+-48|0;if(e>>>0<10){i=0;do{i=(i*10|0)+e|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=yx(b)|0;e=j+-48|0}while(e>>>0<10&i>>>0<429496729);if(e>>>0<10){m=0;do{f=NO(i|0,m|0,10,0)|0;k=F()|0;l=((e|0)<0)<<31>>31;o=~l;if(k>>>0>o>>>0|(k|0)==(o|0)&f>>>0>~e>>>0){f=10;e=m;n=76;break c}i=OO(f|0,k|0,e|0,l|0)|0;m=F()|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=yx(b)|0;e=j+-48|0}while(e>>>0<10&(m>>>0<429496729|(m|0)==429496729&i>>>0<2576980378));if(e>>>0>9){j=p;e=m}else{f=10;e=m;n=76}}else{j=p;e=0}}else{j=p;e=0;i=0}}else{o=e;n=47}while(0);d:do if((n|0)==47){if(!(o+-1&o)){n=a[46659+((o*23|0)>>>5&7)>>0]|0;f=a[5937+i>>0]|0;e=f&255;if(o>>>0>e>>>0){i=0;do{i=e|i<>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=yx(b)|0;f=a[5937+j>>0]|0;e=f&255}while(i>>>0<134217728&o>>>0>e>>>0);k=e;e=0}else{j=i;k=e;e=0;i=0}l=TO(-1,-1,n|0)|0;m=F()|0;if(o>>>0<=k>>>0|(m>>>0>>0|(m|0)==(e|0)&l>>>0>>0)){f=o;n=76;break}while(1){i=UO(i|0,e|0,n|0)|0;e=F()|0;i=i|f&255;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=yx(b)|0;f=a[5937+j>>0]|0;if(o>>>0<=(f&255)>>>0|(e>>>0>m>>>0|(e|0)==(m|0)&i>>>0>l>>>0)){f=o;n=76;break d}}}e=a[5937+i>>0]|0;f=e&255;if(o>>>0>f>>>0){i=0;do{i=f+(B(i,o)|0)|0;e=c[r>>2]|0;if(e>>>0<(c[q>>2]|0)>>>0){c[r>>2]=e+1;j=d[e>>0]|0}else j=yx(b)|0;e=a[5937+j>>0]|0;f=e&255}while(i>>>0<119304647&o>>>0>f>>>0);k=e;e=0}else{j=i;k=e;i=0;e=0}if(o>>>0>f>>>0){m=SO(-1,-1,o|0,0)|0;n=F()|0;f=k;while(1){if(e>>>0>n>>>0|(e|0)==(n|0)&i>>>0>m>>>0){f=o;n=76;break d}k=NO(i|0,e|0,o|0,0)|0;l=F()|0;f=f&255;if(l>>>0>4294967295|(l|0)==-1&k>>>0>~f>>>0){f=o;n=76;break d}i=OO(k|0,l|0,f|0,0)|0;e=F()|0;j=c[r>>2]|0;if(j>>>0<(c[q>>2]|0)>>>0){c[r>>2]=j+1;j=d[j>>0]|0}else j=yx(b)|0;f=a[5937+j>>0]|0;if(o>>>0<=(f&255)>>>0){f=o;n=76;break}}}else{f=o;n=76}}while(0);if((n|0)==76)if(f>>>0>(d[5937+j>>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=yx(b)|0}while(f>>>0>(d[5937+i>>0]|0)>>>0);j=ox()|0;c[j>>2]=68;j=(g&1|0)==0&0==0?p:0;e=h;i=g}else j=p;if(c[q>>2]|0)c[r>>2]=(c[r>>2]|0)+-1;if(!(e>>>0>>0|(e|0)==(h|0)&i>>>0>>0)){if(!((g&1|0)!=0|0!=0|(j|0)!=0)){r=ox()|0;c[r>>2]=68;g=OO(g|0,h|0,-1,-1)|0;h=F()|0;break}if(e>>>0>h>>>0|(e|0)==(h|0)&i>>>0>g>>>0){r=ox()|0;c[r>>2]=68;break}}g=((j|0)<0)<<31>>31;g=PO(i^j|0,e^g|0,j|0,g|0)|0;h=F()|0}while(0);E(h|0);return g|0}function yx(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;g=b+112|0;f=g;e=c[f>>2]|0;f=c[f+4>>2]|0;if(!((e|0)==0&(f|0)==0)?(i=b+120|0,h=c[i+4>>2]|0,!((h|0)<(f|0)|((h|0)==(f|0)?(c[i>>2]|0)>>>0>>0:0))):0)j=4;else{e=Ax(b)|0;if((e|0)>=0){f=c[g>>2]|0;g=c[g+4>>2]|0;i=c[b+8>>2]|0;if(!((f|0)==0&(g|0)==0)){h=c[b+4>>2]|0;k=i-h|0;l=((k|0)<0)<<31>>31;m=b+120|0;f=PO(f|0,g|0,c[m>>2]|0,c[m+4>>2]|0)|0;m=F()|0;g=i;if((m|0)>(l|0)|(m|0)==(l|0)&f>>>0>k>>>0)j=9;else c[b+104>>2]=h+(f+-1)}else{g=i;j=9}if((j|0)==9)c[b+104>>2]=i;f=b+4|0;if(!g)f=c[f>>2]|0;else{f=c[f>>2]|0;k=g+1-f|0;m=b+120|0;l=m;k=OO(c[l>>2]|0,c[l+4>>2]|0,k|0,((k|0)<0)<<31>>31|0)|0;l=F()|0;c[m>>2]=k;c[m+4>>2]=l}f=f+-1|0;if((e|0)!=(d[f>>0]|0|0))a[f>>0]=e}else j=4}if((j|0)==4){c[b+104>>2]=0;e=-1}return e|0}function zx(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function Ax(a){a=a|0;var b=0,e=0;e=zb;zb=zb+16|0;b=e;if((Bx(a)|0)==0?(Jb[c[a+32>>2]&63](a,b,1)|0)==1:0)a=d[b>>0]|0;else a=-1;zb=e;return a|0}function Bx(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+28|0;if((c[d>>2]|0)>>>0>(c[e>>2]|0)>>>0)Jb[c[b+36>>2]&63](b,0,0)|0;c[b+16>>2]=0;c[e>>2]=0;c[d>>2]=0;d=c[b>>2]|0;if(!(d&4)){e=(c[b+44>>2]|0)+(c[b+48>>2]|0)|0;c[b+8>>2]=e;c[b+4>>2]=e;d=d<<27>>31}else{c[b>>2]=d|32;d=-1}return d|0}function Cx(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;d=Dx(a,b,c)|0;E(F()|0);return d|0}function Dx(a,b,c){a=a|0;b=b|0;c=c|0;c=vx(a,b,c,0,-2147483648)|0;E(F()|0);return c|0}function Ex(a,b){a=+a;b=+b;var d=0,e=0;g[h>>3]=a;e=c[h>>2]|0;d=c[h+4>>2]|0;g[h>>3]=b;d=c[h+4>>2]&-2147483648|d&2147483647;c[h>>2]=e;c[h+4>>2]=d;return +(+g[h>>3])}function Fx(b,c){b=b|0;c=c|0;var d=0,e=0;d=a[b>>0]|0;e=a[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24)b=e;else{do{b=b+1|0;c=c+1|0;d=a[b>>0]|0;e=a[c>>0]|0}while(!(d<<24>>24==0?1:d<<24>>24!=e<<24>>24));b=e}return (d&255)-(b&255)|0}function Gx(a){a=a|0;return (a+-48|0)>>>0<10|0}function Hx(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+16|0;f=e;c[f>>2]=d;d=Ix(a,b,f)|0;zb=e;return d|0}function Ix(a,b,c){a=a|0;b=b|0;c=c|0;return Jx(a,2147483647,b,c)|0}function Jx(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;j=zb;zb=zb+160|0;g=j+144|0;i=j;_O(i|0,13736,144)|0;if((d+-1|0)>>>0>2147483646)if(!d){b=g;d=1;h=4}else{d=ox()|0;c[d>>2]=61;d=-1}else h=4;if((h|0)==4){h=-2-b|0;h=d>>>0>h>>>0?h:d;c[i+48>>2]=h;g=i+20|0;c[g>>2]=b;c[i+44>>2]=b;d=b+h|0;b=i+16|0;c[b>>2]=d;c[i+28>>2]=d;d=Kx(i,e,f)|0;if(h){i=c[g>>2]|0;a[i+(((i|0)==(c[b>>2]|0))<<31>>31)>>0]=0}}zb=j;return d|0}function Kx(a,b,c){a=a|0;b=b|0;c=c|0;return Nx(a,b,c,1,55)|0}function Lx(b,e,f,g,h,i){b=b|0;e=+e;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=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,z=0,A=0,C=0,D=0,E=0,G=0,H=0;H=zb;zb=zb+560|0;l=H+32|0;u=H+536|0;G=H;E=G;m=H+540|0;c[u>>2]=0;D=m+12|0;dy(e)|0;j=F()|0;if((j|0)<0){e=-e;dy(e)|0;C=1;A=46685;j=F()|0}else{C=(h&2049|0)!=0&1;A=(h&2048|0)==0?((h&1|0)==0?46686:46691):46688}do if(0==0&(j&2146435072|0)==2146435072){G=(i&32|0)!=0;j=C+3|0;Yx(b,32,f,j,h&-65537);Rx(b,A,C);Rx(b,e!=e|0.0!=0.0?(G?46727:46712):G?46704:46708,3);Yx(b,32,f,j,h^8192)}else{q=+ey(e,u)*2.0;j=q!=0.0;if(j)c[u>>2]=(c[u>>2]|0)+-1;t=i|32;if((t|0)==97){o=i&32;r=(o|0)==0?A:A+9|0;p=C|2;j=12-g|0;do if(!(g>>>0>11|(j|0)==0)){e=8.0;do{j=j+-1|0;e=e*16.0}while((j|0)!=0);if((a[r>>0]|0)==45){e=-(e+(-q-e));break}else{e=q+e-e;break}}else e=q;while(0);k=c[u>>2]|0;j=(k|0)<0?0-k|0:k;j=Wx(j,((j|0)<0)<<31>>31,D)|0;if((j|0)==(D|0)){j=m+11|0;a[j>>0]=48}a[j+-1>>0]=(k>>31&2)+43;n=j+-2|0;a[n>>0]=i+15;k=(g|0)<1;l=(h&8|0)==0;m=G;do{C=~~e;j=m+1|0;a[m>>0]=o|d[6672+C>>0];e=(e-+(C|0))*16.0;if((j-E|0)==1?!(l&(k&e==0.0)):0){a[j>>0]=46;m=m+2|0}else m=j}while(e!=0.0);if((g|0)!=0?(-2-E+m|0)<(g|0):0){k=D;l=n;j=g+2+k-l|0}else{k=D;l=n;j=k-E-l+m|0}D=j+p|0;Yx(b,32,f,D,h);Rx(b,r,p);Yx(b,48,f,D,h^65536);E=m-E|0;Rx(b,G,E);G=k-l|0;Yx(b,48,j-(E+G)|0,0,0);Rx(b,n,G);Yx(b,32,f,D,h^8192);j=D;break}k=(g|0)<0?6:g;if(j){j=(c[u>>2]|0)+-28|0;c[u>>2]=j;e=q*268435456.0}else{e=q;j=c[u>>2]|0}z=(j|0)<0?l:l+288|0;l=z;do{x=~~e>>>0;c[l>>2]=x;l=l+4|0;e=(e-+(x>>>0))*1.0e9}while(e!=0.0);x=z;if((j|0)>0){o=z;while(1){n=(j|0)<29?j:29;j=l+-4|0;if(j>>>0>=o>>>0){m=0;do{s=UO(c[j>>2]|0,0,n|0)|0;s=OO(s|0,F()|0,m|0,0)|0;v=F()|0;m=SO(s|0,v|0,1e9,0)|0;w=NO(m|0,F()|0,1e9,0)|0;w=PO(s|0,v|0,w|0,F()|0)|0;F()|0;c[j>>2]=w;j=j+-4|0}while(j>>>0>=o>>>0);if(m){w=o+-4|0;c[w>>2]=m;m=w}else m=o}else m=o;a:do if(l>>>0>m>>>0){j=l;while(1){l=j+-4|0;if(c[l>>2]|0){l=j;break a}if(l>>>0>m>>>0)j=l;else break}}while(0);j=(c[u>>2]|0)-n|0;c[u>>2]=j;if((j|0)>0)o=m;else break}}else m=z;if((j|0)<0){g=((k+25|0)/9|0)+1|0;s=(t|0)==102;do{r=0-j|0;r=(r|0)<9?r:9;if(m>>>0>>0){n=(1<>>r;p=0;j=m;do{w=c[j>>2]|0;c[j>>2]=(w>>>r)+p;p=B(w&n,o)|0;j=j+4|0}while(j>>>0>>0);m=(c[m>>2]|0)==0?m+4|0:m;if(p){c[l>>2]=p;l=l+4|0}}else m=(c[m>>2]|0)==0?m+4|0:m;j=s?z:m;l=(l-j>>2|0)>(g|0)?j+(g<<2)|0:l;j=(c[u>>2]|0)+r|0;c[u>>2]=j}while((j|0)<0);s=m}else s=m;if(s>>>0>>0){j=(x-s>>2)*9|0;n=c[s>>2]|0;if(n>>>0>=10){m=10;do{m=m*10|0;j=j+1|0}while(n>>>0>=m>>>0)}}else j=0;v=(t|0)==103;w=(k|0)!=0;m=k-((t|0)==102?0:j)+((w&v)<<31>>31)|0;if((m|0)<(((l-x>>2)*9|0)+-9|0)){u=m+9216|0;m=(u|0)/9|0;g=z+4+(m+-1024<<2)|0;m=u-(m*9|0)|0;if((m|0)<8){n=10;while(1){n=n*10|0;if((m|0)<7)m=m+1|0;else break}}else n=10;p=c[g>>2]|0;m=(p>>>0)/(n>>>0)|0;r=p-(B(m,n)|0)|0;o=(g+4|0)==(l|0);if(!(o&(r|0)==0)){q=(m&1|0)==0?9007199254740992.0:9007199254740994.0;u=n>>>1;e=r>>>0>>0?.5:o&(r|0)==(u|0)?1.0:1.5;if(C){u=(a[A>>0]|0)==45;e=u?-e:e;q=u?-q:q}m=p-r|0;c[g>>2]=m;if(q+e!=q){u=m+n|0;c[g>>2]=u;if(u>>>0>999999999){n=g;j=s;while(1){m=n+-4|0;c[n>>2]=0;if(m>>>0>>0){j=j+-4|0;c[j>>2]=0}u=(c[m>>2]|0)+1|0;c[m>>2]=u;if(u>>>0>999999999)n=m;else{n=j;break}}}else{m=g;n=s}j=(x-n>>2)*9|0;p=c[n>>2]|0;if(p>>>0>=10){o=10;do{o=o*10|0;j=j+1|0}while(p>>>0>=o>>>0)}}else{m=g;n=s}}else{m=g;n=s}u=m+4|0;l=l>>>0>u>>>0?u:l}else n=s;g=0-j|0;b:do if(l>>>0>n>>>0)while(1){m=l+-4|0;if(c[m>>2]|0){u=l;t=1;break b}if(m>>>0>n>>>0)l=m;else{u=m;t=0;break}}else{u=l;t=0}while(0);do if(v){k=k+((w^1)&1)|0;if((k|0)>(j|0)&(j|0)>-5){o=i+-1|0;k=k+-1-j|0}else{o=i+-2|0;k=k+-1|0}if(!(h&8)){if(t?(y=c[u+-4>>2]|0,(y|0)!=0):0)if(!((y>>>0)%10|0)){m=0;l=10;do{l=l*10|0;m=m+1|0}while(!((y>>>0)%(l>>>0)|0|0))}else m=0;else m=9;l=((u-x>>2)*9|0)+-9|0;if((o|32|0)==102){i=l-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}else{i=l+j-m|0;i=(i|0)>0?i:0;k=(k|0)<(i|0)?k:i;break}}}else o=i;while(0);s=(k|0)!=0;p=s?1:h>>>3&1;r=(o|32|0)==102;if(r){v=0;j=(j|0)>0?j:0}else{l=(j|0)<0?g:j;l=Wx(l,((l|0)<0)<<31>>31,D)|0;m=D;if((m-l|0)<2)do{l=l+-1|0;a[l>>0]=48}while((m-l|0)<2);a[l+-1>>0]=(j>>31&2)+43;j=l+-2|0;a[j>>0]=o;v=j;j=m-j|0}j=C+1+k+p+j|0;Yx(b,32,f,j,h);Rx(b,A,C);Yx(b,48,f,j,h^65536);if(r){p=n>>>0>z>>>0?z:n;r=G+9|0;n=r;o=G+8|0;m=p;do{l=Wx(c[m>>2]|0,0,r)|0;if((m|0)==(p|0)){if((l|0)==(r|0)){a[o>>0]=48;l=o}}else if(l>>>0>G>>>0){aP(G|0,48,l-E|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}Rx(b,l,n-l|0);m=m+4|0}while(m>>>0<=z>>>0);if(!((h&8|0)==0&(s^1)))Rx(b,46716,1);if(m>>>0>>0&(k|0)>0)while(1){l=Wx(c[m>>2]|0,0,r)|0;if(l>>>0>G>>>0){aP(G|0,48,l-E|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}Rx(b,l,(k|0)<9?k:9);m=m+4|0;l=k+-9|0;if(!(m>>>0>>0&(k|0)>9)){k=l;break}else k=l}Yx(b,48,k+9|0,9,0)}else{u=t?u:n+4|0;if(n>>>0>>0&(k|0)>-1){g=G+9|0;s=(h&8|0)==0;t=g;p=0-E|0;r=G+8|0;o=n;do{l=Wx(c[o>>2]|0,0,g)|0;if((l|0)==(g|0)){a[r>>0]=48;l=r}do if((o|0)==(n|0)){m=l+1|0;Rx(b,l,1);if(s&(k|0)<1){l=m;break}Rx(b,46716,1);l=m}else{if(l>>>0<=G>>>0)break;aP(G|0,48,l+p|0)|0;do l=l+-1|0;while(l>>>0>G>>>0)}while(0);E=t-l|0;Rx(b,l,(k|0)>(E|0)?E:k);k=k-E|0;o=o+4|0}while(o>>>0>>0&(k|0)>-1)}Yx(b,48,k+18|0,18,0);Rx(b,v,D-v|0)}Yx(b,32,f,j,h^8192)}while(0);zb=H;return ((j|0)<(f|0)?f:j)|0}function Mx(a,b){a=a|0;b=b|0;var d=0.0,e=0;e=(c[b>>2]|0)+(8-1)&~(8-1);d=+g[e>>3];c[b>>2]=e+8;g[a>>3]=d;return}function Nx(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=zb;zb=zb+224|0;p=t+208|0;q=t+160|0;r=t+80|0;s=t;h=q;i=h+40|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));c[p>>2]=c[e>>2];if((Ox(0,d,p,r,q,f,g)|0)<0)e=-1;else{if((c[b+76>>2]|0)>-1)o=Px(b)|0;else o=0;e=c[b>>2]|0;n=e&32;if((a[b+74>>0]|0)<1)c[b>>2]=e&-33;h=b+48|0;if(!(c[h>>2]|0)){i=b+44|0;j=c[i>>2]|0;c[i>>2]=s;k=b+28|0;c[k>>2]=s;l=b+20|0;c[l>>2]=s;c[h>>2]=80;m=b+16|0;c[m>>2]=s+80;e=Ox(b,d,p,r,q,f,g)|0;if(j){Jb[c[b+36>>2]&63](b,0,0)|0;e=(c[l>>2]|0)==0?-1:e;c[i>>2]=j;c[h>>2]=0;c[m>>2]=0;c[k>>2]=0;c[l>>2]=0}}else e=Ox(b,d,p,r,q,f,g)|0;h=c[b>>2]|0;c[b>>2]=h|n;if(o|0)Qx(b);e=(h&32|0)==0?e:-1}zb=t;return e|0}function Ox(d,e,f,h,i,j,k){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0,K=0;J=zb;zb=zb+64|0;G=J+56|0;I=J+40|0;A=J;C=J+48|0;D=J+60|0;c[G>>2]=e;x=(d|0)!=0;y=A+40|0;z=y;A=A+39|0;B=C+4|0;l=0;e=0;n=0;a:while(1){do{do if((e|0)>-1)if((l|0)>(2147483647-e|0)){e=ox()|0;c[e>>2]=61;e=-1;break}else{e=l+e|0;break}while(0);r=c[G>>2]|0;l=a[r>>0]|0;if(!(l<<24>>24)){w=92;break a}m=r;b:while(1){switch(l<<24>>24){case 37:{w=10;break b}case 0:{l=m;break b}default:{}}v=m+1|0;c[G>>2]=v;l=a[v>>0]|0;m=v}c:do if((w|0)==10){w=0;l=m;do{if((a[m+1>>0]|0)!=37)break c;l=l+1|0;m=m+2|0;c[G>>2]=m}while((a[m>>0]|0)==37)}while(0);l=l-r|0;if(x)Rx(d,r,l)}while((l|0)!=0);v=(Gx(a[(c[G>>2]|0)+1>>0]|0)|0)==0;m=c[G>>2]|0;if(!v?(a[m+2>>0]|0)==36:0){t=(a[m+1>>0]|0)+-48|0;p=1;l=3}else{t=-1;p=n;l=1}l=m+l|0;c[G>>2]=l;m=a[l>>0]|0;n=(m<<24>>24)+-32|0;if(n>>>0>31|(1<>2]=l;m=a[l>>0]|0;n=(m<<24>>24)+-32|0}while(!(n>>>0>31|(1<>24==42){if((Gx(a[l+1>>0]|0)|0)!=0?(H=c[G>>2]|0,(a[H+2>>0]|0)==36):0){l=H+1|0;c[i+((a[l>>0]|0)+-48<<2)>>2]=10;l=c[h+((a[l>>0]|0)+-48<<3)>>2]|0;n=1;m=H+3|0}else{if(p|0){e=-1;break}if(x){v=(c[f>>2]|0)+(4-1)&~(4-1);l=c[v>>2]|0;c[f>>2]=v+4}else l=0;n=0;m=(c[G>>2]|0)+1|0}c[G>>2]=m;v=(l|0)<0;u=v?0-l|0:l;o=v?o|8192:o;v=n}else{l=Sx(G)|0;if((l|0)<0){e=-1;break}u=l;v=p;m=c[G>>2]|0}do if((a[m>>0]|0)==46){l=m+1|0;if((a[l>>0]|0)!=42){c[G>>2]=l;l=Sx(G)|0;m=c[G>>2]|0;break}if(Gx(a[m+2>>0]|0)|0?(E=c[G>>2]|0,(a[E+3>>0]|0)==36):0){l=E+2|0;c[i+((a[l>>0]|0)+-48<<2)>>2]=10;l=c[h+((a[l>>0]|0)+-48<<3)>>2]|0;m=E+4|0;c[G>>2]=m;break}if(v|0){e=-1;break a}if(x){s=(c[f>>2]|0)+(4-1)&~(4-1);l=c[s>>2]|0;c[f>>2]=s+4}else l=0;m=(c[G>>2]|0)+2|0;c[G>>2]=m}else l=-1;while(0);s=0;while(1){if(((a[m>>0]|0)+-65|0)>>>0>57){e=-1;break a}n=m;m=m+1|0;c[G>>2]=m;n=a[(a[n>>0]|0)+-65+(6208+(s*58|0))>>0]|0;p=n&255;if((p+-1|0)>>>0>=8)break;else s=p}if(!(n<<24>>24)){e=-1;break}q=(t|0)>-1;do if(n<<24>>24==19)if(q){e=-1;break a}else w=54;else{if(q){c[i+(t<<2)>>2]=p;q=h+(t<<3)|0;t=c[q+4>>2]|0;w=I;c[w>>2]=c[q>>2];c[w+4>>2]=t;w=54;break}if(!x){e=0;break a}Tx(I,p,f,k);m=c[G>>2]|0;w=55}while(0);if((w|0)==54){w=0;if(x)w=55;else l=0}d:do if((w|0)==55){w=0;m=a[m+-1>>0]|0;m=(s|0)!=0&(m&15|0)==3?m&-33:m;n=o&-65537;t=(o&8192|0)==0?o:n;e:do switch(m|0){case 110:switch((s&255)<<24>>24){case 0:{c[c[I>>2]>>2]=e;l=0;break d}case 1:{c[c[I>>2]>>2]=e;l=0;break d}case 2:{l=c[I>>2]|0;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=0;break d}case 3:{b[c[I>>2]>>1]=e;l=0;break d}case 4:{a[c[I>>2]>>0]=e;l=0;break d}case 6:{c[c[I>>2]>>2]=e;l=0;break d}case 7:{l=c[I>>2]|0;c[l>>2]=e;c[l+4>>2]=((e|0)<0)<<31>>31;l=0;break d}default:{l=0;break d}}case 112:{m=120;l=l>>>0>8?l:8;n=t|8;w=67;break}case 88:case 120:{n=t;w=67;break}case 111:{q=I;q=Vx(c[q>>2]|0,c[q+4>>2]|0,y)|0;n=z-q|0;o=0;p=46668;l=(t&8|0)==0|(l|0)>(n|0)?l:n+1|0;n=t;w=73;break}case 105:case 100:{n=I;m=c[n>>2]|0;n=c[n+4>>2]|0;if((n|0)<0){m=PO(0,0,m|0,n|0)|0;n=F()|0;o=I;c[o>>2]=m;c[o+4>>2]=n;o=1;p=46668;w=72;break e}else{o=(t&2049|0)!=0&1;p=(t&2048|0)==0?((t&1|0)==0?46668:46670):46669;w=72;break e}}case 117:{n=I;o=0;p=46668;m=c[n>>2]|0;n=c[n+4>>2]|0;w=72;break}case 99:{a[A>>0]=c[I>>2];r=A;o=0;p=46668;q=1;m=n;l=z;break}case 115:{s=c[I>>2]|0;s=(s|0)==0?46678:s;t=Xx(s,0,l)|0;K=(t|0)==0;r=s;o=0;p=46668;q=K?l:t-s|0;m=n;l=K?s+l|0:t;break}case 67:{c[C>>2]=c[I>>2];c[B>>2]=0;c[I>>2]=C;p=-1;w=79;break}case 83:{if(!l){Yx(d,32,u,0,t);l=0;w=89}else{p=l;w=79}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{l=Hb[j&1](d,+g[I>>3],u,l,t,m)|0;break d}default:{o=0;p=46668;q=l;m=t;l=z}}while(0);f:do if((w|0)==67){q=I;q=Ux(c[q>>2]|0,c[q+4>>2]|0,y,m&32)|0;p=I;p=(n&8|0)==0|(c[p>>2]|0)==0&(c[p+4>>2]|0)==0;o=p?0:2;p=p?46668:46668+(m>>>4)|0;w=73}else if((w|0)==72){q=Wx(m,n,y)|0;n=t;w=73}else if((w|0)==79){w=0;o=c[I>>2]|0;l=0;while(1){m=c[o>>2]|0;if(!m)break;m=Zx(D,m)|0;n=(m|0)<0;if(n|m>>>0>(p-l|0)>>>0){w=83;break}l=m+l|0;if(p>>>0>l>>>0)o=o+4|0;else break}if((w|0)==83){w=0;if(n){e=-1;break a}}Yx(d,32,u,l,t);if(!l){l=0;w=89}else{n=c[I>>2]|0;o=0;while(1){m=c[n>>2]|0;if(!m){w=89;break f}m=Zx(D,m)|0;o=m+o|0;if((o|0)>(l|0)){w=89;break f}Rx(d,D,m);if(o>>>0>=l>>>0){w=89;break}else n=n+4|0}}}while(0);if((w|0)==73){w=0;m=I;m=(c[m>>2]|0)!=0|(c[m+4>>2]|0)!=0;K=(l|0)!=0|m;m=z-q+((m^1)&1)|0;r=K?q:y;q=K?((l|0)>(m|0)?l:m):0;m=(l|0)>-1?n&-65537:n;l=z}else if((w|0)==89){w=0;Yx(d,32,u,l,t^8192);l=(u|0)>(l|0)?u:l;break}t=l-r|0;s=(q|0)<(t|0)?t:q;K=s+o|0;l=(u|0)<(K|0)?K:u;Yx(d,32,l,K,m);Rx(d,p,o);Yx(d,48,l,K,m^65536);Yx(d,48,s,t,0);Rx(d,r,t);Yx(d,32,l,K,m^8192)}while(0);n=v}g:do if((w|0)==92)if(!d)if(!n)e=0;else{e=1;while(1){l=c[i+(e<<2)>>2]|0;if(!l)break;Tx(h+(e<<3)|0,l,f,k);e=e+1|0;if(e>>>0>=10){e=1;break g}}while(1){if(c[i+(e<<2)>>2]|0){e=-1;break g}e=e+1|0;if(e>>>0>=10){e=1;break}}}while(0);zb=J;return e|0}function Px(a){a=a|0;return 1}function Qx(a){a=a|0;return}function Rx(a,b,d){a=a|0;b=b|0;d=d|0;if(!(c[a>>2]&32))by(b,d,a)|0;return}function Sx(b){b=b|0;var d=0,e=0;if(!(Gx(a[c[b>>2]>>0]|0)|0))d=0;else{d=0;do{e=c[b>>2]|0;d=(d*10|0)+-48+(a[e>>0]|0)|0;e=e+1|0;c[b>>2]=e}while((Gx(a[e>>0]|0)|0)!=0)}return d|0}function Tx(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{b=(c[d>>2]|0)+(4-1)&~(4-1);e=c[b>>2]|0;c[d>>2]=b+4;c[a>>2]=e;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);h=+g[f>>3];c[d>>2]=f+8;g[a>>3]=h;break a}case 18:{Ub[e&63](a,d);break a}default:break a}while(0);while(0);return}function Ux(b,c,e,f){b=b|0;c=c|0;e=e|0;f=f|0;if(!((b|0)==0&(c|0)==0))do{e=e+-1|0;a[e>>0]=d[6672+(b&15)>>0]|0|f;b=TO(b|0,c|0,4)|0;c=F()|0}while(!((b|0)==0&(c|0)==0));return e|0}function Vx(b,c,d){b=b|0;c=c|0;d=d|0;if(!((b|0)==0&(c|0)==0))do{d=d+-1|0;a[d>>0]=b&7|48;b=TO(b|0,c|0,3)|0;c=F()|0}while(!((b|0)==0&(c|0)==0));return d|0}function Wx(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;if(c>>>0>0|(c|0)==0&b>>>0>4294967295){do{e=b;b=SO(b|0,c|0,10,0)|0;f=c;c=F()|0;g=NO(b|0,c|0,10,0)|0;g=PO(e|0,f|0,g|0,F()|0)|0;F()|0;d=d+-1|0;a[d>>0]=g&255|48}while(f>>>0>9|(f|0)==9&e>>>0>4294967295);c=b}else c=b;if(c)do{g=c;c=(c>>>0)/10|0;d=d+-1|0;a[d>>0]=g-(c*10|0)|48}while(g>>>0>=10);return d|0}function Xx(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 i=16;b:do if((i|0)==6){g=d&255;if((a[b>>0]|0)==g<<24>>24)if(!e){i=16;break}else break;f=B(h,16843009)|0;c:do if(e>>>0>3)while(1){h=c[b>>2]^f;if((h&-2139062144^-2139062144)&h+-16843009|0)break c;b=b+4|0;e=e+-4|0;if(e>>>0<=3){i=11;break}}else i=11;while(0);if((i|0)==11)if(!e){i=16;break}while(1){if((a[b>>0]|0)==g<<24>>24)break b;e=e+-1|0;if(!e){i=16;break}else b=b+1|0}}while(0);if((i|0)==16)b=0;return b|0}function Yx(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;g=zb;zb=zb+256|0;f=g;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;aP(f|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;do{Rx(a,f,256);e=e+-256|0}while(e>>>0>255);e=b&255}Rx(a,f,e)}zb=g;return}function Zx(a,b){a=a|0;b=b|0;if(!a)a=0;else a=_x(a,b,0)|0;return a|0}function _x(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}e=($x()|0)+188|0;if(!(c[c[e>>2]>>2]|0))if((d&-128|0)==57216){a[b>>0]=d;b=1;break}else{b=ox()|0;c[b>>2]=25;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{b=ox()|0;c[b>>2]=25;b=-1;break}}else b=1;while(0);return b|0}function $x(){return ay()|0}function ay(){return 16020}function by(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=e+16|0;g=c[f>>2]|0;if(!g)if(!(cy(e)|0)){g=c[f>>2]|0;h=5}else f=0;else h=5;a:do if((h|0)==5){j=e+20|0;i=c[j>>2]|0;f=i;if((g-i|0)>>>0>>0){f=Jb[c[e+36>>2]&63](e,b,d)|0;break}b:do if((a[e+75>>0]|0)<0|(d|0)==0){h=0;g=b}else{i=d;while(1){g=i+-1|0;if((a[b+g>>0]|0)==10)break;if(!g){h=0;g=b;break b}else i=g}f=Jb[c[e+36>>2]&63](e,b,i)|0;if(f>>>0>>0)break a;h=i;g=b+i|0;d=d-i|0;f=c[j>>2]|0}while(0);_O(f|0,g|0,d|0)|0;c[j>>2]=(c[j>>2]|0)+d;f=h+d|0}while(0);return f|0}function cy(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;e=c[b+44>>2]|0;c[b+28>>2]=e;c[b+20>>2]=e;c[b+16>>2]=e+(c[b+48>>2]|0);b=0}else{c[b>>2]=d|32;b=-1}return b|0}function dy(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;E(c[h+4>>2]|0);return b|0}function ey(a,b){a=+a;b=b|0;var d=0,e=0,f=0;g[h>>3]=a;d=c[h>>2]|0;e=c[h+4>>2]|0;f=TO(d|0,e|0,52)|0;F()|0;switch(f&2047){case 0:{if(a!=0.0){a=+ey(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&2047)+-1022;c[h>>2]=d;c[h+4>>2]=e&-2146435073|1071644672;a=+g[h>>3]}}return +a}function fy(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;_O(f|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a;return d|0}function gy(){return 16264}function hy(){var a=0;a=(iy()|0)+188|0;return ((c[c[a>>2]>>2]|0)==0?1:4)|0}function iy(){return ay()|0}function jy(){return 16268}function ky(){return 16272}function ly(a){a=a|0;var b=0;b=a;while(1)if(!(c[b>>2]|0))break;else b=b+4|0;return b-a>>2|0}function my(a){a=a|0;return (((a|32)+-97|0)>>>0<6|(Gx(a)|0)!=0)&1|0}function ny(a){a=a|0;var b=0;if(a>>>0>4294963200){b=ox()|0;c[b>>2]=0-a;a=-1}return a|0}function oy(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;m=zb;zb=zb+208|0;j=m;k=m+192|0;h=B(d,b)|0;i=k;c[i>>2]=1;c[i+4>>2]=0;a:do if(h|0){i=0-d|0;c[j+4>>2]=d;c[j>>2]=d;f=2;b=d;g=d;while(1){b=b+d+g|0;c[j+(f<<2)>>2]=b;if(b>>>0>>0){n=g;f=f+1|0;g=b;b=n}else break}g=a+h+i|0;if(g>>>0>a>>>0){h=g;f=1;b=1;do{do if((b&3|0)!=3){b=f+-1|0;if((c[j+(b<<2)>>2]|0)>>>0<(h-a|0)>>>0)py(a,d,e,f,j);else ry(a,d,e,k,f,0,j);if((f|0)==1){sy(k,1);f=0;break}else{sy(k,b);f=1;break}}else{py(a,d,e,f,j);qy(k,2);f=f+2|0}while(0);b=c[k>>2]|1;c[k>>2]=b;a=a+d|0}while(a>>>0>>0)}else{f=1;b=1}ry(a,d,e,k,f,0,j);g=k+4|0;while(1){if((f|0)==1&(b|0)==1)if(!(c[g>>2]|0))break a;else l=19;else if((f|0)<2)l=19;else{sy(k,2);n=f+-2|0;c[k>>2]=c[k>>2]^7;qy(k,1);ry(a+(0-(c[j+(n<<2)>>2]|0))+i|0,d,e,k,f+-1|0,1,j);sy(k,1);b=c[k>>2]|1;c[k>>2]=b;a=a+i|0;ry(a,d,e,k,n,1,j);f=n}if((l|0)==19){l=0;b=ty(k)|0;qy(k,b);a=a+i|0;f=b+f|0;b=c[k>>2]|0}}}while(0);zb=m;return}function py(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;m=zb;zb=zb+240|0;l=m;c[l>>2]=a;a:do if((e|0)>1){k=0-b|0;i=a;g=e;e=1;h=a;while(1){i=i+k|0;j=g+-2|0;a=i+(0-(c[f+(j<<2)>>2]|0))|0;if((Ib[d&63](h,a)|0)>-1?(Ib[d&63](h,i)|0)>-1:0)break a;h=l+(e<<2)|0;if((Ib[d&63](a,i)|0)>-1){c[h>>2]=a;g=g+-1|0}else{c[h>>2]=i;a=i;g=j}e=e+1|0;if((g|0)<=1)break a;i=a;h=c[l>>2]|0}}else e=1;while(0);vy(b,l,e);zb=m;return}function qy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;if(b>>>0>31){e=c[f>>2]|0;c[a>>2]=e;c[f>>2]=0;b=b+-32|0;d=0}else{d=c[f>>2]|0;e=c[a>>2]|0}c[a>>2]=d<<32-b|e>>>b;c[f>>2]=d>>>b;return}function ry(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;o=zb;zb=zb+240|0;m=o+232|0;n=o;p=c[e>>2]|0;c[m>>2]=p;j=c[e+4>>2]|0;k=m+4|0;c[k>>2]=j;c[n>>2]=a;a:do if((p|0)!=1|(j|0)!=0?(l=0-b|0,i=a+(0-(c[h+(f<<2)>>2]|0))|0,(Ib[d&63](i,a)|0)>=1):0){e=1;g=(g|0)==0;j=i;while(1){if(g&(f|0)>1){g=a+l|0;i=c[h+(f+-2<<2)>>2]|0;if((Ib[d&63](g,j)|0)>-1){i=10;break a}if((Ib[d&63](g+(0-i)|0,j)|0)>-1){i=10;break a}}g=e+1|0;c[n+(e<<2)>>2]=j;p=ty(m)|0;qy(m,p);f=p+f|0;if(!((c[m>>2]|0)!=1|(c[k>>2]|0)!=0)){e=g;a=j;i=10;break a}a=j+(0-(c[h+(f<<2)>>2]|0))|0;if((Ib[d&63](a,c[n>>2]|0)|0)<1){a=j;e=g;g=0;i=9;break}else{p=j;e=g;g=1;j=a;a=p}}}else{e=1;i=9}while(0);if((i|0)==9?(g|0)==0:0)i=10;if((i|0)==10){vy(b,n,e);py(a,b,d,f,h)}zb=o;return}function sy(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=a+4|0;if(b>>>0>31){e=c[a>>2]|0;c[f>>2]=e;c[a>>2]=0;b=b+-32|0;d=0}else{d=c[a>>2]|0;e=c[f>>2]|0}c[f>>2]=d>>>(32-b|0)|e<>2]=d<>2]|0)+-1|0)|0;if(!b){b=uy(c[a+4>>2]|0)|0;return ((b|0)==0?0:b+32|0)|0}else return b|0;return 0}function uy(a){a=a|0;var b=0;if(a)if(!(a&1)){b=a;a=0;while(1){a=a+1|0;if(!(b&2))b=b>>>1;else break}}else a=0;else a=32;return a|0}function vy(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=zb;zb=zb+256|0;e=h;a:do if((d|0)>=2?(g=b+(d<<2)|0,c[g>>2]=e,a|0):0)while(1){f=a>>>0<256?a:256;_O(e|0,c[b>>2]|0,f|0)|0;e=0;do{i=b+(e<<2)|0;e=e+1|0;_O(c[i>>2]|0,c[b+(e<<2)>>2]|0,f|0)|0;c[i>>2]=(c[i>>2]|0)+f}while((e|0)!=(d|0));a=a-f|0;if(!a)break a;e=c[g>>2]|0}while(0);zb=h;return}function wy(b,e){b=b|0;e=e|0;var f=0,g=0;f=0;while(1){if((d[10528+f>>0]|0)==(b|0)){g=4;break}f=f+1|0;if((f|0)==87){b=87;g=5;break}}if((g|0)==4)if(!f)f=10624;else{b=f;g=5}if((g|0)==5){f=10624;do{do{g=f;f=f+1|0}while((a[g>>0]|0)!=0);b=b+-1|0}while((b|0)!=0)}return xy(f,c[e+20>>2]|0)|0}function xy(a,b){a=a|0;b=b|0;return yy(a,b)|0}function yy(a,b){a=a|0;b=b|0;if(!b)b=0;else b=zy(c[b>>2]|0,c[b+4>>2]|0,a)|0;return ((b|0)==0?a:b)|0}function zy(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;o=(c[b>>2]|0)+1794895138|0;h=Ay(c[b+8>>2]|0,o)|0;f=Ay(c[b+12>>2]|0,o)|0;g=Ay(c[b+16>>2]|0,o)|0;a:do if((h>>>0>>2>>>0?(n=d-(h<<2)|0,f>>>0>>0&g>>>0>>0):0)?((g|f)&3|0)==0:0){n=f>>>2;m=g>>>2;l=0;while(1){j=h>>>1;k=l+j|0;i=k<<1;g=i+n|0;f=Ay(c[b+(g<<2)>>2]|0,o)|0;g=Ay(c[b+(g+1<<2)>>2]|0,o)|0;if(!(g>>>0>>0&f>>>0<(d-g|0)>>>0)){f=0;break a}if(a[b+(g+f)>>0]|0){f=0;break a}f=Fx(e,b+g|0)|0;if(!f)break;f=(f|0)<0;if((h|0)==1){f=0;break a}l=f?l:k;h=f?j:h-j|0}f=i+m|0;g=Ay(c[b+(f<<2)>>2]|0,o)|0;f=Ay(c[b+(f+1<<2)>>2]|0,o)|0;if(f>>>0>>0&g>>>0<(d-f|0)>>>0)f=(a[b+(f+g)>>0]|0)==0?b+f|0:0;else f=0}else f=0;while(0);return f|0}function Ay(a,b){a=a|0;b=b|0;var c=0;c=WO(a|0)|0;return ((b|0)==0?a:c)|0}function By(a){a=a|0;var b=0;b=(Cy()|0)+188|0;return wy(a,c[b>>2]|0)|0}function Cy(){return ay()|0}function Dy(b,e,f){b=b|0;e=e|0;f=f|0;var g=0.0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;switch(e|0){case 0:{l=-149;m=24;j=4;break}case 1:{l=-1074;m=53;j=4;break}case 2:{l=-1074;m=53;j=4;break}default:g=0.0}a:do if((j|0)==4){o=b+4|0;n=b+104|0;do{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=yx(b)|0}while((zx(e)|0)!=0);b:do switch(e|0){case 43:case 45:{i=1-(((e|0)==45&1)<<1)|0;e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;h=d[e>>0]|0;break b}else{h=yx(b)|0;break b}}default:{h=e;i=1}}while(0);e=0;while(1){if((h|32|0)!=(a[46718+e>>0]|0))break;do if(e>>>0<7){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=yx(b)|0;break}}while(0);e=e+1|0;if(e>>>0>=8){e=8;break}}c:do switch(e&2147483647|0){case 8:break;case 3:{j=23;break}default:{k=(f|0)!=0;if(k&e>>>0>3)if((e|0)==8)break c;else{j=23;break c}d:do if(!e){e=0;while(1){if((h|32|0)!=(a[46727+e>>0]|0))break d;do if(e>>>0<2){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0;break}else{h=yx(b)|0;break}}while(0);e=e+1|0;if(e>>>0>=3){e=3;break}}}while(0);switch(e|0){case 3:{e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=yx(b)|0;if((e|0)!=40){if(!(c[n>>2]|0)){g=q;break a}c[o>>2]=(c[o>>2]|0)+-1;g=q;break a}e=1;while(1){h=c[o>>2]|0;if(h>>>0<(c[n>>2]|0)>>>0){c[o>>2]=h+1;h=d[h>>0]|0}else h=yx(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=q;break a}h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!k){o=ox()|0;c[o>>2]=28;wx(b,0,0);g=0.0;break a}if(!e){g=q;break a}while(1){e=e+-1|0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if(!e){g=q;break a}}}case 0:{if((h|0)==48){e=c[o>>2]|0;if(e>>>0<(c[n>>2]|0)>>>0){c[o>>2]=e+1;e=d[e>>0]|0}else e=yx(b)|0;if((e|32|0)==120){g=+Ey(b,m,l,i,f);break a}if(!(c[n>>2]|0))e=48;else{c[o>>2]=(c[o>>2]|0)+-1;e=48}}else e=h;g=+Fy(b,e,m,l,i,f);break a}default:{if(c[n>>2]|0)c[o>>2]=(c[o>>2]|0)+-1;o=ox()|0;c[o>>2]=28;wx(b,0,0);g=0.0;break a}}}}while(0);if((j|0)==23){h=(c[n>>2]|0)==0;if(!h)c[o>>2]=(c[o>>2]|0)+-1;if((f|0)!=0&e>>>0>3)do{if(!h)c[o>>2]=(c[o>>2]|0)+-1;e=e+-1|0}while(e>>>0>3)}g=+(i|0)*r}while(0);return +g}function Ey(a,b,e,f,g){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;var h=0.0,i=0,j=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,x=0,y=0;y=a+4|0;i=c[y>>2]|0;x=a+104|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;j=0;a:while(1){switch(i|0){case 46:{w=10;break a}case 48:break;default:{p=0;m=j;l=0;j=0;break a}}i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;j=1}if((w|0)==10){i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;if((i|0)==48){l=0;j=0;do{i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;l=OO(l|0,j|0,-1,-1)|0;j=F()|0}while((i|0)==48);p=1;m=1}else{p=1;m=j;l=0;j=0}}o=0;n=1.0;h=0.0;v=0;s=p;t=m;u=0;m=0;while(1){q=i+-48|0;p=i|32;if(q>>>0>=10){r=(i|0)==46;if(!(r|(p+-97|0)>>>0<6))break;if(r)if(!s){s=1;k=n;q=v;r=t;l=m;j=u;p=u}else{i=46;break}else w=24}else w=24;if((w|0)==24){w=0;i=(i|0)>57?p+-87|0:q;do if(!((u|0)<0|(u|0)==0&m>>>0<8))if((u|0)<0|(u|0)==0&m>>>0<14){n=n*.0625;k=n;h=h+n*+(i|0);i=v;break}else{i=(o|0)!=0|(i|0)==0;o=i?o:1;k=n;h=i?h:h+n*.5;i=v;break}else{k=n;i=i+(v<<4)|0}while(0);m=OO(m|0,u|0,1,0)|0;q=i;r=1;p=F()|0}i=c[y>>2]|0;if(i>>>0<(c[x>>2]|0)>>>0){c[y>>2]=i+1;i=d[i>>0]|0}else i=yx(a)|0;n=k;v=q;t=r;u=p}do if(!t){i=(c[x>>2]|0)==0;if(!i)c[y>>2]=(c[y>>2]|0)+-1;if(g){if(!i?(c[y>>2]=(c[y>>2]|0)+-1,!((s|0)==0|i)):0)c[y>>2]=(c[y>>2]|0)+-1}else wx(a,0,0);h=+(f|0)*0.0}else{o=(s|0)==0;p=o?m:l;o=o?u:j;if((u|0)<0|(u|0)==0&m>>>0<8){j=v;l=u;do{j=j<<4;w=m;m=OO(m|0,l|0,1,0)|0;v=l;l=F()|0}while((v|0)<0|(v|0)==0&w>>>0<7);m=j}else m=v;if((i|32|0)==112){j=Gy(a,g)|0;i=F()|0;if((j|0)==0&(i|0)==-2147483648){if(!g){wx(a,0,0);h=0.0;break}if(!(c[x>>2]|0)){j=0;i=0}else{c[y>>2]=(c[y>>2]|0)+-1;j=0;i=0}}}else if(!(c[x>>2]|0)){j=0;i=0}else{c[y>>2]=(c[y>>2]|0)+-1;j=0;i=0}l=UO(p|0,o|0,2)|0;l=OO(l|0,F()|0,-32,-1)|0;l=OO(l|0,F()|0,j|0,i|0)|0;i=F()|0;if(!m){h=+(f|0)*0.0;break}y=0-e|0;g=((y|0)<0)<<31>>31;if((i|0)>(g|0)|(i|0)==(g|0)&l>>>0>y>>>0){b=ox()|0;c[b>>2]=68;h=+(f|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}y=e+-106|0;g=((y|0)<0)<<31>>31;if((i|0)<(g|0)|(i|0)==(g|0)&l>>>0>>0){b=ox()|0;c[b>>2]=68;h=+(f|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if((m|0)>-1){j=m;do{y=!(h>=.5);j=j<<1|(y^1)&1;h=h+(y?h:h+-1.0);l=OO(l|0,i|0,-1,-1)|0;i=F()|0}while((j|0)>-1);n=h;m=j}else n=h;y=((b|0)<0)<<31>>31;e=PO(32,0,e|0,((e|0)<0)<<31>>31|0)|0;i=OO(e|0,F()|0,l|0,i|0)|0;e=F()|0;if((e|0)<(y|0)|(e|0)==(y|0)&i>>>0>>0)if((i|0)>0)w=65;else{j=0;i=84;w=67}else{i=b;w=65}if((w|0)==65)if((i|0)<53){j=i;i=84-i|0;w=67}else{k=0.0;h=+(f|0)}if((w|0)==67){h=+(f|0);k=+Iy(+Hy(1.0,i),h);i=j}f=(m&1|0)==0&(n!=0.0&(i|0)<32);h=(f?0.0:n)*h+(k+h*+((m+(f&1)|0)>>>0))-k;if(!(h!=0.0)){f=ox()|0;c[f>>2]=68}h=+Ky(h,l)}while(0);return +h}function Fy(a,b,e,f,g,h){a=a|0;b=b|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0.0,j=0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,G=0,H=0,I=0,J=0.0;I=zb;zb=zb+512|0;E=I;G=f+e|0;H=0-G|0;D=a+4|0;C=a+104|0;j=0;a:while(1){switch(b|0){case 46:{z=7;break a}case 48:break;default:{v=0;p=j;j=0;o=0;break a}}b=c[D>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=yx(a)|0;j=1}if((z|0)==7){b=c[D>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=yx(a)|0;if((b|0)==48){j=0;b=0;while(1){j=OO(j|0,b|0,-1,-1)|0;o=F()|0;b=c[D>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=yx(a)|0;if((b|0)==48)b=o;else{v=1;p=1;break}}}else{v=1;p=j;j=0;o=0}}c[E>>2]=0;n=b+-48|0;m=(b|0)==46;b:do if(m|n>>>0<10){A=E+496|0;w=0;l=0;s=0;x=v;y=p;z=n;p=0;n=0;c:while(1){do if(m)if(!x){x=1;j=p;o=n}else break c;else{p=OO(p|0,n|0,1,0)|0;n=F()|0;v=(b|0)!=48;if((l|0)>=125){if(!v)break;c[A>>2]=c[A>>2]|1;break}m=E+(l<<2)|0;if(!w)b=z;else b=b+-48+((c[m>>2]|0)*10|0)|0;c[m>>2]=b;w=w+1|0;y=(w|0)==9;w=y?0:w;l=l+(y&1)|0;s=v?p:s;y=1}while(0);b=c[D>>2]|0;if(b>>>0<(c[C>>2]|0)>>>0){c[D>>2]=b+1;b=d[b>>0]|0}else b=yx(a)|0;z=b+-48|0;m=(b|0)==46;if(!(m|z>>>0<10)){v=x;m=y;z=31;break b}}b=w;m=(y|0)!=0;z=39}else{w=0;l=0;s=0;m=p;p=0;n=0;z=31}while(0);do if((z|0)==31){A=(v|0)==0;j=A?p:j;o=A?n:o;m=(m|0)!=0;if(!(m&(b|32|0)==101))if((b|0)>-1){b=w;z=39;break}else{b=w;z=41;break}m=Gy(a,h)|0;b=F()|0;if((m|0)==0&(b|0)==-2147483648){if(!h){wx(a,0,0);i=0.0;break}if(!(c[C>>2]|0)){m=0;b=0}else{c[D>>2]=(c[D>>2]|0)+-1;m=0;b=0}}j=OO(m|0,b|0,j|0,o|0)|0;b=w;o=F()|0;z=43}while(0);if((z|0)==39)if(c[C>>2]|0){c[D>>2]=(c[D>>2]|0)+-1;if(m)z=43;else z=42}else z=41;if((z|0)==41)if(m)z=43;else z=42;do if((z|0)==42){H=ox()|0;c[H>>2]=28;wx(a,0,0);i=0.0}else if((z|0)==43){m=c[E>>2]|0;if(!m){i=+(g|0)*0.0;break}if(((n|0)<0|(n|0)==0&p>>>0<10)&((j|0)==(p|0)&(o|0)==(n|0))?(e|0)>30|(m>>>e|0)==0:0){i=+(g|0)*+(m>>>0);break}a=(f|0)/-2|0;D=((a|0)<0)<<31>>31;if((o|0)>(D|0)|(o|0)==(D|0)&j>>>0>a>>>0){H=ox()|0;c[H>>2]=68;i=+(g|0)*1797693134862315708145274.0e284*1797693134862315708145274.0e284;break}a=f+-106|0;D=((a|0)<0)<<31>>31;if((o|0)<(D|0)|(o|0)==(D|0)&j>>>0>>0){H=ox()|0;c[H>>2]=68;i=+(g|0)*2.2250738585072014e-308*2.2250738585072014e-308;break}if(b){if((b|0)<9){n=E+(l<<2)|0;m=c[n>>2]|0;while(1){m=m*10|0;if((b|0)>=8)break;else b=b+1|0}c[n>>2]=m}l=l+1|0}if((s|0)<9?(s|0)<=(j|0)&(j|0)<18:0){if((j|0)==9){i=+(g|0)*+((c[E>>2]|0)>>>0);break}if((j|0)<9){i=+(g|0)*+((c[E>>2]|0)>>>0)/+(c[12432+(8-j<<2)>>2]|0);break}a=e+27+(B(j,-3)|0)|0;b=c[E>>2]|0;if((a|0)>30|(b>>>a|0)==0){i=+(g|0)*+(b>>>0)*+(c[12432+(j+-10<<2)>>2]|0);break}}b=(j|0)%9|0;if(!b)m=0;else{s=(j|0)>-1?b:b+9|0;o=c[12432+(8-s<<2)>>2]|0;if(l){p=1e9/(o|0)|0;n=0;m=0;b=0;do{C=E+(b<<2)|0;D=c[C>>2]|0;a=(D>>>0)/(o>>>0)|0;D=D-(B(a,o)|0)|0;a=a+n|0;c[C>>2]=a;n=B(p,D)|0;a=(b|0)==(m|0)&(a|0)==0;j=a?j+-9|0:j;m=a?m+1&127:m;b=b+1|0}while((b|0)!=(l|0));if(!n)b=l;else{c[E+(l<<2)>>2]=n;b=l+1|0}}else{m=0;b=0}l=b;j=9-s+j|0}b=0;d:while(1){v=(j|0)<18;w=(j|0)==18;x=E+(m<<2)|0;while(1){if(!v){if(!w)break d;if((c[x>>2]|0)>>>0>=9007199){j=18;break d}}n=0;y=l;l=l+127|0;while(1){p=l&127;o=E+(p<<2)|0;l=UO(c[o>>2]|0,0,29)|0;l=OO(l|0,F()|0,n|0,0)|0;n=F()|0;if(n>>>0>0|(n|0)==0&l>>>0>1e9){s=SO(l|0,n|0,1e9,0)|0;a=NO(s|0,F()|0,1e9,0)|0;l=PO(l|0,n|0,a|0,F()|0)|0;F()|0}else s=0;c[o>>2]=l;a=(p|0)==(m|0);o=(p|0)!=(y+127&127|0)|a?y:(l|0)==0?p:y;if(a)break;else{n=s;y=o;l=p+-1|0}}b=b+-29|0;if(!s)l=y;else break}m=m+127&127;l=o+127&127;n=E+((o+126&127)<<2)|0;if((m|0)==(o|0))c[n>>2]=c[n>>2]|c[E+(l<<2)>>2];else l=y;c[E+(m<<2)>>2]=s;j=j+9|0}e:while(1){w=l+1&127;x=E+((l+127&127)<<2)|0;while(1){p=(j|0)==18;v=(j|0)>27?9:1;y=m;while(1){o=0;while(1){m=o+y&127;if((m|0)==(l|0)){z=92;break}m=c[E+(m<<2)>>2]|0;n=c[16276+(o<<2)>>2]|0;if(m>>>0>>0){z=92;break}if(m>>>0>n>>>0)break;if((o+1|0)>>>0<2)o=1;else{z=92;break}}if((z|0)==92?(z=0,p):0)break e;b=v+b|0;if((y|0)==(l|0))y=l;else break}p=(1<>>v;o=0;m=y;n=y;do{C=E+(n<<2)|0;D=c[C>>2]|0;a=(D>>>v)+o|0;c[C>>2]=a;o=B(D&p,s)|0;a=(n|0)==(m|0)&(a|0)==0;j=a?j+-9|0:j;m=a?m+1&127:m;n=n+1&127}while((n|0)!=(l|0));if(o|0){if((w|0)!=(m|0))break;c[x>>2]=c[x>>2]|1}}c[E+(l<<2)>>2]=o;l=w}i=0.0;j=l;m=0;do{n=m+y&127;l=j+1&127;if((n|0)==(j|0)){c[E+(l+-1<<2)>>2]=0;j=l}i=i*1.0e9+ +((c[E+(n<<2)>>2]|0)>>>0);m=m+1|0}while((m|0)!=2);u=+(g|0);k=i*u;n=b+53|0;o=n-f|0;p=(o|0)<(e|0);m=p?((o|0)>0?o:0):e;if((m|0)<53){J=+Iy(+Hy(1.0,105-m|0),k);q=+Jy(k,+Hy(1.0,53-m|0));r=J;i=q;q=J+(k-q)}else{r=0.0;i=0.0;q=k}l=y+2&127;if((l|0)!=(j|0)){l=c[E+(l<<2)>>2]|0;do if(l>>>0>=5e8){if((l|0)!=5e8){i=u*.75+i;break}if((y+3&127|0)==(j|0)){i=u*.5+i;break}else{i=u*.75+i;break}}else{if((l|0)==0?(y+3&127|0)==(j|0):0)break;i=u*.25+i}while(0);if((53-m|0)>1?!(+Jy(i,1.0)!=0.0):0)k=i+1.0;else k=i}else k=i;i=q+k-r;do if((n&2147483647|0)>(-2-G|0)){G=!(+t(+i)>=9007199254740992.0);b=b+((G^1)&1)|0;i=G?i:i*.5;if((b+50|0)<=(H|0)?!(k!=0.0&(p&((m|0)!=(o|0)|G))):0)break;H=ox()|0;c[H>>2]=68}while(0);i=+Ky(i,b)}while(0);zb=I;return +i}function Gy(a,b){a=a|0;b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;i=a+4|0;e=c[i>>2]|0;j=a+104|0;if(e>>>0<(c[j>>2]|0)>>>0){c[i>>2]=e+1;f=d[e>>0]|0}else f=yx(a)|0;switch(f|0){case 43:case 45:{g=(f|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=yx(a)|0;f=e+-48|0;if((b|0)!=0&f>>>0>9)if(!(c[j>>2]|0)){f=0;e=-2147483648}else{c[i>>2]=(c[i>>2]|0)+-1;k=14}else k=12;break}default:{g=0;e=f;f=f+-48|0;k=12}}if((k|0)==12)if(f>>>0>9)k=14;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=yx(a)|0;b=e+-48|0}while(b>>>0<10&(f|0)<214748364);h=((f|0)<0)<<31>>31;if(b>>>0<10){do{l=NO(f|0,h|0,10,0)|0;b=F()|0;e=OO(e|0,((e|0)<0)<<31>>31|0,-48,-1)|0;f=OO(e|0,F()|0,l|0,b|0)|0;h=F()|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=yx(a)|0;b=e+-48|0}while(b>>>0<10&((h|0)<21474836|(h|0)==21474836&f>>>0<2061584302));if(b>>>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=yx(a)|0}while((e+-48|0)>>>0<10);e=h}else e=h}else e=h;if(c[j>>2]|0)c[i>>2]=(c[i>>2]|0)+-1;j=(g|0)==0;i=PO(0,0,f|0,e|0)|0;l=F()|0;f=j?f:i;e=j?e:l}if((k|0)==14)if(!(c[j>>2]|0)){f=0;e=-2147483648}else{c[i>>2]=(c[i>>2]|0)+-1;f=0;e=-2147483648}E(e|0);return f|0}function Hy(a,b){a=+a;b=b|0;var d=0,e=0;if((b|0)<=1023){if((b|0)<-1022){a=a*2.2250738585072014e-308;e=(b|0)<-2044;d=b+2044|0;a=e?a*2.2250738585072014e-308:a;b=e?((d|0)>-1022?d:-1022):b+1022|0}}else{a=a*8988465674311579538646525.0e283;d=(b|0)>2046;e=b+-2046|0;a=d?a*8988465674311579538646525.0e283:a;b=d?((e|0)<1023?e:1023):b+-1023|0}d=UO(b+1023|0,0,52)|0;e=F()|0;c[h>>2]=d;c[h+4>>2]=e;return +(a*+g[h>>3])}function Iy(a,b){a=+a;b=+b;return +(+Ex(a,b))}function Jy(a,b){a=+a;b=+b;return +(+Ly(a,b))}function Ky(a,b){a=+a;b=b|0;return +(+Hy(a,b))}function Ly(a,b){a=+a;b=+b;var d=0,e=0,f=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;g[h>>3]=a;j=c[h>>2]|0;l=c[h+4>>2]|0;g[h>>3]=b;n=c[h>>2]|0;o=c[h+4>>2]|0;e=TO(j|0,l|0,52)|0;F()|0;e=e&2047;m=TO(n|0,o|0,52)|0;F()|0;m=m&2047;p=l&-2147483648;i=UO(n|0,o|0,1)|0;k=F()|0;a:do if(!((i|0)==0&(k|0)==0)?(f=My(b)|0,d=(F()|0)&2147483647,!((e|0)==2047|(d>>>0>2146435072|(d|0)==2146435072&f>>>0>0))):0){d=UO(j|0,l|0,1)|0;f=F()|0;if(!(f>>>0>k>>>0|(f|0)==(k|0)&d>>>0>i>>>0))return +((d|0)==(i|0)&(f|0)==(k|0)?a*0.0:a);if(!e){d=UO(j|0,l|0,12)|0;f=F()|0;if((f|0)>-1|(f|0)==-1&d>>>0>4294967295){e=0;do{e=e+-1|0;d=UO(d|0,f|0,1)|0;f=F()|0}while((f|0)>-1|(f|0)==-1&d>>>0>4294967295)}else e=0;j=UO(j|0,l|0,1-e|0)|0;i=F()|0}else i=l&1048575|1048576;if(!m){f=UO(n|0,o|0,12)|0;k=F()|0;if((k|0)>-1|(k|0)==-1&f>>>0>4294967295){d=0;do{d=d+-1|0;f=UO(f|0,k|0,1)|0;k=F()|0}while((k|0)>-1|(k|0)==-1&f>>>0>4294967295)}else d=0;n=UO(n|0,o|0,1-d|0)|0;m=d;l=F()|0}else l=o&1048575|1048576;f=PO(j|0,i|0,n|0,l|0)|0;d=F()|0;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;b:do if((e|0)>(m|0)){while(1){if(k){if((f|0)==0&(d|0)==0)break}else{f=j;d=i}j=UO(f|0,d|0,1)|0;i=F()|0;e=e+-1|0;f=PO(j|0,i|0,n|0,l|0)|0;d=F()|0;k=(d|0)>-1|(d|0)==-1&f>>>0>4294967295;if((e|0)<=(m|0))break b}b=a*0.0;break a}while(0);if(k){if((f|0)==0&(d|0)==0){b=a*0.0;break}}else{d=i;f=j}if(d>>>0<1048576|(d|0)==1048576&f>>>0<0)do{f=UO(f|0,d|0,1)|0;d=F()|0;e=e+-1|0}while(d>>>0<1048576|(d|0)==1048576&f>>>0<0);if((e|0)>0){o=OO(f|0,d|0,0,-1048576)|0;d=F()|0;e=UO(e|0,0,52)|0;d=d|(F()|0);e=o|e}else{e=TO(f|0,d|0,1-e|0)|0;d=F()|0}c[h>>2]=e;c[h+4>>2]=d|p;b=+g[h>>3]}else q=3;while(0);if((q|0)==3){b=a*b;b=b/b}return +b}function My(a){a=+a;var b=0;g[h>>3]=a;b=c[h>>2]|0;E(c[h+4>>2]|0);return b|0}function Ny(a){a=a|0;return 0}function Oy(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return d|0}function Py(a,b){a=a|0;b=b|0;return -1|0}function Qy(b){b=b|0;var d=0,e=0,f=0;f=b;a:do if(!(f&3))e=5;else{d=f;while(1){if(!(a[b>>0]|0)){b=d;break a}b=b+1|0;d=b;if(!(d&3)){e=5;break}}}while(0);if((e|0)==5){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 Ry(a,b){a=a|0;b=b|0;var d=0,e=0;d=zb;zb=zb+16|0;e=d;c[e>>2]=a;c[e+4>>2]=b;b=ny(_(91,e|0)|0)|0;zb=d;return b|0}function Sy(b,c){b=b|0;c=c|0;b=Ty(b,c)|0;return ((a[b>>0]|0)==(c&255)<<24>>24?b:0)|0}function Ty(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=d&255;a:do if(!f)b=b+(Qy(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=B(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 Uy(){return}function Vy(a){a=a|0;if(Wy(a)|0)GO(a);return}function Wy(a){a=a|0;return (a|0)!=15980&((a|0)!=0&(a|0)!=55596)&1|0}function Xy(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;l=zb;zb=zb+16|0;h=l;j=(g|0)==0?55624:g;g=c[j>>2]|0;a:do if(!e)if(!g)g=0;else k=19;else{i=(b|0)==0?h:b;if(!f)g=-2;else{if(!g){g=a[e>>0]|0;if(g<<24>>24>-1){c[i>>2]=g&255;g=g<<24>>24!=0&1;break}h=(Yy()|0)+188|0;g=a[e>>0]|0;if(!(c[c[h>>2]>>2]|0)){c[i>>2]=g<<24>>24&57343;g=1;break}g=(g&255)+-194|0;if(g>>>0>50){k=19;break}g=c[5728+(g<<2)>>2]|0;h=f+-1|0;if(h){e=e+1|0;k=11}}else{h=f;k=11}b:do if((k|0)==11){b=d[e>>0]|0;m=b>>>3;if((m+-16|m+(g>>26))>>>0>7){k=19;break a}g=b+-128|g<<6;b=h+-1|0;if((g|0)<0)do{e=e+1|0;if(!b)break b;h=a[e>>0]|0;if((h&-64)<<24>>24!=-128){k=19;break a}g=(h&255)+-128|g<<6;b=b+-1|0}while((g|0)<0);c[j>>2]=0;c[i>>2]=g;g=f-b|0;break a}while(0);c[j>>2]=g;g=-2}}while(0);if((k|0)==19){c[j>>2]=0;g=ox()|0;c[g>>2]=25;g=-1}zb=l;return g|0}function Yy(){return ay()|0}function Zy(a,b){a=a|0;b=b|0;return Gx(a)|0}function _y(a,b){a=a|0;b=b|0;return my(a)|0}function $y(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+272|0;m=o;n=o+256|0;do if(!(a[d>>0]|0)){d=Ja(46731)|0;if(d|0?a[d>>0]|0:0)break;d=Ja(12464+(b*12|0)|0)|0;if(d|0?a[d>>0]|0:0)break;d=Ja(46738)|0;if(d|0?a[d>>0]|0:0)break;d=46743}while(0);e=0;a:while(1){switch(a[d+e>>0]|0){case 47:case 0:break a;default:{}}e=e+1|0;if(e>>>0>=15){e=15;break}}f=a[d>>0]|0;if(f<<24>>24!=46?(a[d+e>>0]|0)==0:0)if(f<<24>>24==67)l=15;else{k=d;l=16}else{d=46743;l=15}if((l|0)==15)if(!(a[d+1>>0]|0))l=18;else{k=d;l=16}b:do if((l|0)==16)if((Fx(k,46743)|0)!=0?(Fx(k,46751)|0)!=0:0){d=c[13907]|0;if(d|0)do{if(!(Fx(k,d+8|0)|0))break b;d=c[d+24>>2]|0}while((d|0)!=0);U(55632);d=c[13907]|0;c:do if(d|0){while(1){if(!(Fx(k,d+8|0)|0))break;d=c[d+24>>2]|0;if(!d)break c}$(55632);break b}while(0);d:do if(((c[13885]|0)==0?(g=Ja(46757)|0,(g|0)!=0):0)?(a[g>>0]|0)!=0:0){i=254-e|0;j=e+1|0;f=g;while(1){h=Ty(f,58)|0;d=a[h>>0]|0;g=h-f+((d<<24>>24!=0)<<31>>31)|0;if(g>>>0>>0){_O(m|0,f|0,g|0)|0;f=m+g|0;a[f>>0]=47;_O(f+1|0,k|0,e|0)|0;a[m+(j+g)>>0]=0;f=V(m|0,n|0)|0;if(f|0)break;d=a[h>>0]|0}f=h+(d<<24>>24!=0&1)|0;if(!(a[f>>0]|0)){l=41;break d}}d=FO(28)|0;if(!d){Ry(f,c[n>>2]|0)|0;l=41;break}else{c[d>>2]=f;c[d+4>>2]=c[n>>2];n=d+8|0;_O(n|0,k|0,e|0)|0;a[n+e>>0]=0;c[d+24>>2]=c[13907];c[13907]=d;break}}else l=41;while(0);if((l|0)==41){d=FO(28)|0;if(d){c[d>>2]=c[3988];c[d+4>>2]=c[3989];n=d+8|0;_O(n|0,k|0,e|0)|0;a[n+e>>0]=0;c[d+24>>2]=c[13907];c[13907]=d}}$(55632);d=(b|0)==0&(d|0)==0?15952:d}else{d=k;l=18}while(0);do if((l|0)==18){if((b|0)==0?(a[d+1>>0]|0)==46:0){d=15952;break}d=0}while(0);zb=o;return d|0}function az(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;j=zb;zb=zb+32|0;i=j;a:do if(!(Wy(d)|0)){h=(d|0)!=0;f=0;g=0;do{e=1<>2]|0;else e=$y(g,(e|0)==0?57671:b)|0;f=f+((e|0)!=0&1)|0;c[i+(g<<2)>>2]=e;g=g+1|0}while((g|0)!=6);switch(f&2147483647|0){case 0:{d=55596;break a}case 1:{if((c[i>>2]|0)==15952){d=15980;break a}break}default:{}}}else{e=0;do{if(1<>2]=i}e=e+1|0}while((e|0)!=6)}while(0);zb=j;return d|0}function bz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;c[g>>2]=e;e=Jx(a,b,d,g)|0;zb=f;return e|0}function cz(a,b){a=a|0;b=b|0;dz(a,b)|0;return a|0}function dz(b,d){b=b|0;d=d|0;var e=0,f=0;e=d;a:do if(!((e^b)&3)){if(e&3)do{e=a[d>>0]|0;a[b>>0]=e;if(!(e<<24>>24))break a;d=d+1|0;b=b+1|0}while((d&3|0)!=0);e=c[d>>2]|0;if(!((e&-2139062144^-2139062144)&e+-16843009)){f=b;while(1){d=d+4|0;b=f+4|0;c[f>>2]=e;e=c[d>>2]|0;if((e&-2139062144^-2139062144)&e+-16843009|0)break;else f=b}}f=10}else f=10;while(0);if((f|0)==10){f=a[d>>0]|0;a[b>>0]=f;if(f<<24>>24)do{d=d+1|0;b=b+1|0;f=a[d>>0]|0;a[b>>0]=f}while(f<<24>>24!=0)}return b|0}function ez(a){a=a|0;var b=0,d=0;b=(fz()|0)+188|0;d=c[b>>2]|0;if(a|0)c[b>>2]=(a|0)==(-1|0)?55572:a;return ((d|0)==55572?-1:d)|0}function fz(){return ay()|0}function gz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{b=b+4|0;e=e+4|0}}}return a|0}function hz(a,b){a=+a;b=b|0;return +(+Hy(a,b))}function iz(a){a=+a;return ~~+bP(+a)|0}function jz(a){a=a|0;var b=0,c=0;b=(Qy(a)|0)+1|0;c=FO(b)|0;if(!c)a=0;else a=_O(c|0,a|0,b|0)|0;return a|0}function kz(a,b){a=a|0;b=b|0;var c=0;c=Qy(a)|0;return ((lz(a,1,c,b)|0)!=(c|0))<<31>>31|0}function lz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=B(d,b)|0;d=(b|0)==0?0:d;if((c[e+76>>2]|0)>-1){g=(Px(e)|0)==0;a=by(a,f,e)|0;if(!g)Qx(e)}else a=by(a,f,e)|0;if((a|0)!=(f|0))d=(a>>>0)/(b>>>0)|0;return d|0}function mz(a){a=a|0;var b=0;if(c[a+68>>2]|0){b=c[a+132>>2]|0;a=a+128|0;if(b|0)c[b+128>>2]=c[a>>2];a=c[a>>2]|0;if(!a)a=(nz()|0)+232|0;else a=a+132|0;c[a>>2]=b}return}function nz(){return ay()|0}function oz(b,e){b=b|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;l=zb;zb=zb+16|0;j=l;k=e&255;a[j>>0]=k;g=b+16|0;h=c[g>>2]|0;if(!h)if(!(cy(b)|0)){h=c[g>>2]|0;i=4}else f=-1;else i=4;do if((i|0)==4){i=b+20|0;g=c[i>>2]|0;if(g>>>0>>0?(f=e&255,(f|0)!=(a[b+75>>0]|0)):0){c[i>>2]=g+1;a[g>>0]=k;break}if((Jb[c[b+36>>2]&63](b,j,1)|0)==1)f=d[j>>0]|0;else f=-1}while(0);zb=l;return f|0}function pz(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;g=j;a:do if(!e)b=0;else{do if(f|0){i=(b|0)==0?g:b;b=a[e>>0]|0;if(b<<24>>24>-1){c[i>>2]=b&255;b=b<<24>>24!=0&1;break a}h=(qz()|0)+188|0;b=a[e>>0]|0;if(!(c[c[h>>2]>>2]|0)){c[i>>2]=b<<24>>24&57343;b=1;break a}b=(b&255)+-194|0;if(b>>>0<=50){g=e+1|0;h=c[5728+(b<<2)>>2]|0;if(f>>>0<4?h&-2147483648>>>((f*6|0)+-6|0)|0:0)break;b=d[g>>0]|0;f=b>>>3;if((f+-16|f+(h>>26))>>>0<=7){b=b+-128|h<<6;if((b|0)>=0){c[i>>2]=b;b=2;break a}g=(d[e+2>>0]|0)+-128|0;if(g>>>0<=63){g=g|b<<6;if((g|0)>=0){c[i>>2]=g;b=3;break a}b=(d[e+3>>0]|0)+-128|0;if(b>>>0<=63){c[i>>2]=b|g<<6;b=4;break a}}}}}while(0);b=ox()|0;c[b>>2]=25;b=-1}while(0);zb=j;return b|0}function qz(){return ay()|0}function rz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;f=zb;zb=zb+16|0;e=f;if(Sy(46770,a[d>>0]|0)|0){g=sz(d)|0|32768;c[e>>2]=b;c[e+4>>2]=g;c[e+8>>2]=438;e=ny(Y(5,e|0)|0)|0;if((e|0)>=0){b=tz(e,d)|0;if(!b){aa(e|0)|0;b=0}}else b=0}else{b=ox()|0;c[b>>2]=28;b=0}zb=f;return b|0}function sz(b){b=b|0;var c=0,d=0,e=0;d=(Sy(b,43)|0)==0;c=a[b>>0]|0;d=d?c<<24>>24!=114&1:2;e=(Sy(b,120)|0)==0;d=e?d:d|128;b=(Sy(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 tz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;j=zb;zb=zb+48|0;i=j+24|0;g=j+8|0;f=j;h=j+40|0;if(Sy(46770,a[d>>0]|0)|0){e=FO(1176)|0;if(!e)e=0;else{aP(e|0,0,144)|0;k=(Sy(d,43)|0)==0;d=a[d>>0]|0;if(k)c[e>>2]=d<<24>>24==114?8:4;if(d<<24>>24==97){c[f>>2]=b;c[f+4>>2]=3;d=X(221,f|0)|0;if(!(d&1024)){c[g>>2]=b;c[g+4>>2]=4;c[g+8>>2]=d|1024;X(221,g|0)|0}f=c[e>>2]|128;c[e>>2]=f}else f=c[e>>2]|0;c[e+60>>2]=b;c[e+44>>2]=e+152;c[e+48>>2]=1024;d=e+75|0;a[d>>0]=-1;if((f&8|0)==0?(c[i>>2]=b,c[i+4>>2]=21523,c[i+8>>2]=h,(Z(54,i|0)|0)==0):0)a[d>>0]=10;c[e+32>>2]=2;c[e+36>>2]=1;c[e+40>>2]=1;c[e+12>>2]=2;if(!(c[13884]|0))c[e+76>>2]=-1;uz(e)|0}}else{e=ox()|0;c[e>>2]=28;e=0}zb=j;return e|0}function uz(a){a=a|0;var b=0,d=0;b=vz()|0;c[a+56>>2]=c[b>>2];d=c[b>>2]|0;if(d|0)c[d+52>>2]=a;c[b>>2]=a;wz();return a|0}function vz(){U(55640);return 55648}function wz(){$(55640);return}function xz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;if((c[a+76>>2]|0)>-1)f=Px(a)|0;else f=0;mz(a);g=(c[a>>2]&1|0)!=0;if(!g){e=vz()|0;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[e>>2]|0)==(a|0))c[e>>2]=b;wz()}b=yz(a)|0;b=Gb[c[a+12>>2]&127](a)|0|b;d=c[a+96>>2]|0;if(d|0)GO(d);if(g){if(f|0)Qx(a)}else GO(a);return b|0}function yz(a){a=a|0;var b=0,d=0;do if(a){if((c[a+76>>2]|0)<=-1){b=zz(a)|0;break}d=(Px(a)|0)==0;b=zz(a)|0;if(!d)Qx(a)}else{if(!(c[4004]|0))b=0;else b=yz(c[4004]|0)|0;a=vz()|0;a=c[a>>2]|0;if(a)do{if((c[a+76>>2]|0)>-1)d=Px(a)|0;else d=0;if((c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0)b=zz(a)|0|b;if(d|0)Qx(a);a=c[a+56>>2]|0}while((a|0)!=0);wz()}while(0);return b|0}function zz(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+20|0;h=a+28|0;if((c[b>>2]|0)>>>0>(c[h>>2]|0)>>>0?(Jb[c[a+36>>2]&63](a,0,0)|0,(c[b>>2]|0)==0):0)a=-1;else{d=a+4|0;e=c[d>>2]|0;f=a+8|0;g=c[f>>2]|0;if(e>>>0>>0){g=e-g|0;Kb[c[a+40>>2]&15](a,g,((g|0)<0)<<31>>31,1)|0;F()|0}c[a+16>>2]=0;c[h>>2]=0;c[b>>2]=0;c[f>>2]=0;c[d>>2]=0;a=0}return a|0}function Az(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;if((c[f+76>>2]|0)>-1)m=Px(f)|0;else m=0;g=e+-1|0;if((e|0)<2){n=f+74|0;l=a[n>>0]|0;a[n>>0]=l+255|l;if(m|0)Qx(f);if(!g)a[b>>0]=0;else b=0}else{a:do if(g){k=f+4|0;l=f+8|0;e=b;while(1){h=c[k>>2]|0;o=h;p=(c[l>>2]|0)-o|0;j=Xx(h,10,p)|0;i=(j|0)==0;j=i?p:1-o+j|0;j=j>>>0>>0?j:g;_O(e|0,h|0,j|0)|0;h=(c[k>>2]|0)+j|0;c[k>>2]=h;e=e+j|0;j=g-j|0;if(!(i&(j|0)!=0)){n=17;break a}if(h>>>0>=(c[l>>2]|0)>>>0){g=Ax(f)|0;if((g|0)<0)break;else h=g}else{c[k>>2]=h+1;h=d[h>>0]|0}i=e+1|0;a[e>>0]=h;g=j+-1|0;if((h&255|0)==10|(g|0)==0){e=i;n=17;break a}else e=i}if((e|0)!=(b|0)?(c[f>>2]&16|0)!=0:0)n=17;else b=0}else{e=b;n=17}while(0);if((n|0)==17)if(!b)b=0;else a[e>>0]=0;if(m)Qx(f)}return b|0}function Bz(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Px(a)|0)==0;a=(c[a>>2]|0)>>>5&1}else a=(c[a>>2]|0)>>>5&1;return a|0}function Cz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+16|0;f=e;c[f>>2]=d;d=Dz(a,b,f)|0;zb=e;return d|0}function Dz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+144|0;f=e;aP(f|0,0,144)|0;c[f+32>>2]=35;c[f+44>>2]=a;c[f+76>>2]=-1;c[f+84>>2]=a;d=Fz(f,b,d)|0;zb=e;return d|0}function Ez(a,b,c){a=a|0;b=b|0;c=c|0;return Jz(a,b,c)|0}function Fz(e,h,i){e=e|0;h=h|0;i=i|0;var j=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,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=zb;zb=zb+288|0;K=Q+264|0;L=Q;M=Q+260|0;N=Q+272|0;if((c[e+76>>2]|0)>-1)P=Px(e)|0;else P=0;j=a[h>>0]|0;a:do if(j<<24>>24){B=e+4|0;C=e+104|0;D=e+120|0;E=e+8|0;G=L+10|0;H=L+33|0;I=L+46|0;J=L+94|0;A=K+4|0;m=h;h=0;k=0;l=j;j=0;u=0;v=0;b:while(1){c:do if(!(zx(l&255)|0)){n=(a[m>>0]|0)==37;d:do if(n){l=m+1|0;o=a[l>>0]|0;e:do switch(o<<24>>24){case 37:break d;case 42:{z=0;l=m+2|0;break}default:{if(Gx(o&255)|0?(a[m+2>>0]|0)==36:0){z=Gz(i,(d[l>>0]|0)+-48|0)|0;l=m+3|0;break e}y=(c[i>>2]|0)+(4-1)&~(4-1);z=c[y>>2]|0;c[i>>2]=y+4}}while(0);if(!(Gx(d[l>>0]|0)|0)){r=0;o=l}else{m=0;do{m=(m*10|0)+-48+(d[l>>0]|0)|0;l=l+1|0}while((Gx(d[l>>0]|0)|0)!=0);r=m;o=l}n=a[o>>0]|0;q=o+1|0;if(n<<24>>24==109){l=(z|0)!=0&1;k=0;m=q;o=o+2|0;n=a[q>>0]|0;j=0}else{l=0;m=o;o=q}switch(n<<24>>24){case 104:{y=(a[o>>0]|0)==104;n=y?-2:-1;m=y?m+2|0:o;break}case 108:{y=(a[o>>0]|0)==108;n=y?3:1;m=y?m+2|0:o;break}case 106:{n=3;m=o;break}case 116:case 122:{n=1;m=o;break}case 76:{n=2;m=o;break}case 110:case 112:case 67:case 83:case 91:case 99:case 115:case 88:case 71:case 70:case 69:case 65:case 103:case 102:case 101:case 97:case 120:case 117:case 111:case 105:case 100:{n=0;break}default:{O=143;break b}}s=d[m>>0]|0;t=(s&47|0)==3;s=t?s|32:s;t=t?1:n;q=s&255;switch(q<<24>>24){case 99:{y=(r|0)>1?r:1;break}case 91:{y=r;break}case 110:{Hz(z,t,u,v);n=u;o=v;break c}default:{wx(e,0,0);do{n=c[B>>2]|0;if(n>>>0<(c[C>>2]|0)>>>0){c[B>>2]=n+1;n=d[n>>0]|0}else n=yx(e)|0}while((zx(n)|0)!=0);if(!(c[C>>2]|0))n=c[B>>2]|0;else{n=(c[B>>2]|0)+-1|0;c[B>>2]=n}x=D;y=n-(c[E>>2]|0)|0;u=OO(c[x>>2]|0,c[x+4>>2]|0,u|0,v|0)|0;u=OO(u|0,F()|0,y|0,((y|0)<0)<<31>>31|0)|0;y=r;v=F()|0}}x=((y|0)<0)<<31>>31;wx(e,y,x);o=c[B>>2]|0;n=c[C>>2]|0;if(o>>>0>>0)c[B>>2]=o+1;else{if((yx(e)|0)<0){O=143;break b}n=c[C>>2]|0}if(n|0)c[B>>2]=(c[B>>2]|0)+-1;f:do switch(q<<24>>24){case 91:case 99:case 115:{w=(s|0)==99;g:do if((s|16|0)==115){aP(L|0,-1,257)|0;a[L>>0]=0;if((s|0)==115){a[H>>0]=0;b[G>>1]=0;b[G+2>>1]=0;a[G+4>>0]=0}}else{s=m+1|0;r=(a[s>>0]|0)==94;n=r&1;m=r?m+2|0:s;aP(L|0,n|0,257)|0;a[L>>0]=0;switch(a[m>>0]|0){case 45:{q=(n^1)&255;a[I>>0]=q;m=m+1|0;break}case 93:{q=(n^1)&255;a[J>>0]=q;m=m+1|0;break}default:q=(n^1)&255}while(1){n=a[m>>0]|0;h:do switch(n<<24>>24){case 0:{O=143;break b}case 93:break g;case 45:{o=m+1|0;n=a[o>>0]|0;switch(n<<24>>24){case 93:case 0:{n=45;break h}default:{}}m=a[m+-1>>0]|0;if((m&255)<(n&255)){m=m&255;do{m=m+1|0;a[L+m>>0]=q;n=a[o>>0]|0}while(m>>>0<(n&255)>>>0);m=o}else m=o;break}default:{}}while(0);a[L+((n&255)+1)>>0]=q;m=m+1|0}}while(0);n=w?y+1|0:31;s=(t|0)==1;t=(l|0)!=0;i:do if(s){if(t){j=FO(n<<2)|0;if(!j){k=0;j=0;O=143;break b}}else j=z;c[K>>2]=0;c[A>>2]=0;k=0;j:while(1){q=(j|0)==0;do{k:while(1){o=c[B>>2]|0;if(o>>>0<(c[C>>2]|0)>>>0){c[B>>2]=o+1;o=d[o>>0]|0}else o=yx(e)|0;if(!(a[L+(o+1)>>0]|0))break j;a[N>>0]=o;switch(Xy(M,N,1,K)|0){case -1:{k=0;O=143;break b}case -2:break;default:break k}}if(!q){c[j+(k<<2)>>2]=c[M>>2];k=k+1|0}}while(!(t&(k|0)==(n|0)));n=n<<1|1;o=IO(j,n<<2)|0;if(!o){k=0;O=143;break b}else j=o}if(!(Iz(K)|0)){k=0;O=143;break b}else{q=k;k=0;r=j}}else{if(t){k=FO(n)|0;if(!k){k=0;j=0;O=143;break b}j=0;while(1){q=j;do{j=c[B>>2]|0;if(j>>>0<(c[C>>2]|0)>>>0){c[B>>2]=j+1;j=d[j>>0]|0}else j=yx(e)|0;if(!(a[L+(j+1)>>0]|0)){r=0;j=0;break i}r=q;q=q+1|0;a[k+r>>0]=j}while((q|0)!=(n|0));n=n<<1|1;o=IO(k,n)|0;if(!o){j=0;O=143;break b}else{j=q;k=o}}}if(!z)while(1){j=c[B>>2]|0;if(j>>>0<(c[C>>2]|0)>>>0){c[B>>2]=j+1;j=d[j>>0]|0}else j=yx(e)|0;if(!(a[L+(j+1)>>0]|0)){q=0;k=0;r=0;j=0;break i}}k=0;while(1){j=c[B>>2]|0;if(j>>>0<(c[C>>2]|0)>>>0){c[B>>2]=j+1;j=d[j>>0]|0}else j=yx(e)|0;if(!(a[L+(j+1)>>0]|0)){q=k;k=z;r=0;j=0;break i}a[z+k>>0]=j;k=k+1|0}}while(0);if(!(c[C>>2]|0))n=c[B>>2]|0;else{n=(c[B>>2]|0)+-1|0;c[B>>2]=n}o=D;n=n-(c[E>>2]|0)|0;n=OO(c[o>>2]|0,c[o+4>>2]|0,n|0,((n|0)<0)<<31>>31|0)|0;o=F()|0;if((n|0)==0&(o|0)==0)break b;if(!((n|0)==(y|0)&(o|0)==(x|0)|w^1))break b;do if(t)if(s){c[z>>2]=r;break}else{c[z>>2]=k;break}while(0);if(!w){if(r|0)c[r+(q<<2)>>2]=0;if(!k){k=0;break f}a[k+q>>0]=0}break}case 120:case 88:case 112:{n=16;O=131;break}case 111:{n=8;O=131;break}case 117:case 100:{n=10;O=131;break}case 105:{n=0;O=131;break}case 71:case 103:case 70:case 102:case 69:case 101:case 65:case 97:{p=+Dy(e,t,0);y=D;w=c[y>>2]|0;y=c[y+4>>2]|0;x=(c[B>>2]|0)-(c[E>>2]|0)|0;x=PO(0,0,x|0,((x|0)<0)<<31>>31|0)|0;if((w|0)==(x|0)&(y|0)==(F()|0))break b;if(z)switch(t|0){case 0:{f[z>>2]=p;break f}case 1:{g[z>>3]=p;break f}case 2:{g[z>>3]=p;break f}default:break f}break}default:{}}while(0);do if((O|0)==131){O=0;n=xx(e,n,0,-1,-1)|0;o=F()|0;y=D;w=c[y>>2]|0;y=c[y+4>>2]|0;x=(c[B>>2]|0)-(c[E>>2]|0)|0;x=PO(0,0,x|0,((x|0)<0)<<31>>31|0)|0;if((w|0)==(x|0)&(y|0)==(F()|0))break b;if((z|0)!=0&(s|0)==112){c[z>>2]=n;break}else{Hz(z,t,n,o);break}}while(0);o=D;n=(c[B>>2]|0)-(c[E>>2]|0)|0;o=OO(c[o>>2]|0,c[o+4>>2]|0,u|0,v|0)|0;n=OO(o|0,F()|0,n|0,((n|0)<0)<<31>>31|0)|0;h=h+((z|0)!=0&1)|0;o=F()|0;break c}while(0);m=m+(n&1)|0;wx(e,0,0);l=c[B>>2]|0;if(l>>>0<(c[C>>2]|0)>>>0){c[B>>2]=l+1;l=d[l>>0]|0}else l=yx(e)|0;if((l|0)!=(d[m>>0]|0)){O=23;break b}n=OO(u|0,v|0,1,0)|0;o=F()|0}else{while(1){l=m+1|0;if(!(zx(d[l>>0]|0)|0))break;else m=l}wx(e,0,0);do{l=c[B>>2]|0;if(l>>>0<(c[C>>2]|0)>>>0){c[B>>2]=l+1;l=d[l>>0]|0}else l=yx(e)|0}while((zx(l)|0)!=0);if(!(c[C>>2]|0))l=c[B>>2]|0;else{l=(c[B>>2]|0)+-1|0;c[B>>2]=l}o=D;n=l-(c[E>>2]|0)|0;o=OO(c[o>>2]|0,c[o+4>>2]|0,u|0,v|0)|0;n=OO(o|0,F()|0,n|0,((n|0)<0)<<31>>31|0)|0;o=F()|0}while(0);m=m+1|0;l=a[m>>0]|0;if(!(l<<24>>24))break a;else{u=n;v=o}}if((O|0)==23){if(c[C>>2]|0)c[B>>2]=(c[B>>2]|0)+-1;if((h|0)!=0|(l|0)>-1)break;else{l=0;h=k;O=144}}else if((O|0)==143)if(!h){h=k;O=144}if((O|0)==144){k=h;h=-1}if(l){GO(k);GO(j)}}else h=0;while(0);if(P|0)Qx(e);zb=Q;return h|0}function Gz(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=c[a>>2];while(1){f=(c[d>>2]|0)+(4-1)&~(4-1);a=c[f>>2]|0;c[d>>2]=f+4;if(b>>>0>1)b=b+-1|0;else break}zb=e;return a|0}function Hz(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;a:do if(d|0)switch(e|0){case -2:{a[d>>0]=f;break a}case -1:{b[d>>1]=f;break a}case 0:{c[d>>2]=f;break a}case 1:{c[d>>2]=f;break a}case 3:{e=d;c[e>>2]=f;c[e+4>>2]=g;break a}default:break a}while(0);return}function Iz(a){a=a|0;if(!a)a=1;else a=(c[a>>2]|0)==0&1;return a|0}function Jz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+84|0;g=c[e>>2]|0;h=d+256|0;f=Xx(g,0,h)|0;f=(f|0)==0?h:f-g|0;d=f>>>0>>0?f:d;_O(b|0,g|0,d|0)|0;c[a+4>>2]=g+d;b=g+f|0;c[a+8>>2]=b;c[e>>2]=b;return d|0}function Kz(a,b,c){a=a|0;b=b|0;c=c|0;return Mz(a,b,((b|0)<0)<<31>>31,c)|0}function Lz(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+16|0;f=e;c[f>>2]=d;d=Kx(a,b,f)|0;zb=e;return d|0}function Mz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((c[a+76>>2]|0)>-1){f=(Px(a)|0)==0;b=Nz(a,b,d,e)|0;if(!f)Qx(a)}else b=Nz(a,b,d,e)|0;return b|0}function Nz(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;if((e|0)==1){g=(c[a+8>>2]|0)-(c[a+4>>2]|0)|0;b=PO(b|0,d|0,g|0,((g|0)<0)<<31>>31|0)|0;d=F()|0}f=a+20|0;g=a+28|0;if((c[f>>2]|0)>>>0>(c[g>>2]|0)>>>0?(Jb[c[a+36>>2]&63](a,0,0)|0,(c[f>>2]|0)==0):0)b=-1;else{c[a+16>>2]=0;c[g>>2]=0;c[f>>2]=0;Kb[c[a+40>>2]&15](a,b,d,e)|0;if((F()|0)<0)b=-1;else{c[a+8>>2]=0;c[a+4>>2]=0;c[a>>2]=c[a>>2]&-17;b=0}}return b|0}function Oz(a,b){a=a|0;b=b|0;return Pz(a,b,(Qy(a)|0)+1|0)|0}function Pz(b,c,d){b=b|0;c=c|0;d=d|0;a:do if(!d)d=0;else{c=c&255;while(1){d=d+-1|0;if((a[b+d>>0]|0)==c<<24>>24)break;if(!d){d=0;break a}}d=b+d|0}while(0);return d|0}function Qz(a,b,c){a=a|0;b=b|0;c=c|0;return Xy(0,a,b,(c|0)==0?55652:c)|0}function Rz(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;n=zb;zb=zb+1040|0;k=n;l=n+1024|0;j=c[b>>2]|0;c[l>>2]=j;m=(a|0)!=0;h=m?e:256;i=m?a:k;g=j;a:do if((h|0)!=0&(j|0)!=0){e=0;j=i;while(1){a=d>>>2;i=a>>>0>=h>>>0;if(!(d>>>0>131|i)){i=j;break a}a=i?h:a;d=d-a|0;a=Sz(j,l,a,f)|0;if((a|0)==-1)break;i=(j|0)==(k|0);h=h-(i?0:a)|0;i=i?j:j+(a<<2)|0;e=a+e|0;g=c[l>>2]|0;if((h|0)!=0&(g|0)!=0)j=i;else break a}e=-1;i=j;h=0;g=c[l>>2]|0}else e=0;while(0);b:do if((g|0)!=0?(h|0)!=0&(d|0)!=0:0){while(1){a=Xy(i,g,d,f)|0;if((a+2|0)>>>0<3)break;g=(c[l>>2]|0)+a|0;c[l>>2]=g;d=d-a|0;h=h+-1|0;e=e+1|0;if(!((h|0)!=0&(d|0)!=0))break b;else i=i+4|0}switch(a|0){case -1:{e=a;break b}case 0:{c[l>>2]=0;break b}default:{c[f>>2]=0;break b}}}while(0);if(m)c[b>>2]=c[l>>2];zb=n;return e|0}function Sz(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;h=c[e>>2]|0;if((g|0)!=0?(i=c[g>>2]|0,(i|0)!=0):0)if(!b){j=h;g=f;l=26}else{c[g>>2]=0;k=f;j=h;l=48}else l=5;a:do if((l|0)==5){l=(Tz()|0)+188|0;g=(b|0)!=0;if(c[c[l>>2]>>2]|0)if(g){g=f;l=33;break}else{g=f;l=15;break}if(!g){f=Qy(h)|0;l=63;break}b:do if(f){g=f;while(1){i=a[h>>0]|0;if(!(i<<24>>24))break;h=h+1|0;c[b>>2]=i<<24>>24&57343;g=g+-1|0;if(!g)break b;else b=b+4|0}c[b>>2]=0;c[e>>2]=0;f=f-g|0;l=63;break a}while(0);c[e>>2]=h;l=63}while(0);c:while(1){d:do if((l|0)==15){while(1){i=a[h>>0]|0;if(((i&255)+-1|0)>>>0<127?(h&3|0)==0:0){l=c[h>>2]|0;i=l&255;if(!((l+-16843009|l)&-2139062144)){do{h=h+4|0;g=g+-4|0;i=c[h>>2]|0}while(!((i+-16843009|i)&-2139062144|0));i=i&255}}i=i&255;if((i+-1|0)>>>0>=127)break;g=g+-1|0;h=h+1|0}i=i+-194|0;if(i>>>0>50)l=57;else{i=c[5728+(i<<2)>>2]|0;j=h+1|0;l=26;continue c}}else if((l|0)==26){l=(d[j>>0]|0)>>>3;if((l+-16|l+(i>>26))>>>0>7){h=j;l=56}else{h=j+1|0;if(i&33554432){if((a[h>>0]&-64)<<24>>24!=-128){h=j;l=56;break}h=j+2|0;if(i&524288){if((a[h>>0]&-64)<<24>>24!=-128){h=j;l=56;break}h=j+3|0}}g=g+-1|0;l=15;continue c}}else if((l|0)==33){l=0;e:do if(g){while(1){i=d[h>>0]|0;j=i+-1|0;if(j>>>0<127){if((h&3|0)==0&g>>>0>4){while(1){i=c[h>>2]|0;if((i+-16843009|i)&-2139062144|0){l=42;break}c[b>>2]=i&255;c[b+4>>2]=d[h+1>>0];c[b+8>>2]=d[h+2>>0];j=h+4|0;i=b+16|0;c[b+12>>2]=d[h+3>>0];g=g+-4|0;if(g>>>0>4){b=i;h=j}else{l=41;break}}if((l|0)==41){b=i;h=j;i=a[j>>0]|0}else if((l|0)==42)i=i&255;i=i&255;j=i+-1|0;l=44}}else l=44;if((l|0)==44){l=0;if(j>>>0>=127)break}h=h+1|0;c[b>>2]=i;g=g+-1|0;if(!g)break e;else b=b+4|0}i=i+-194|0;if(i>>>0>50){l=57;break d}i=c[5728+(i<<2)>>2]|0;k=g;j=h+1|0;l=48;continue c}while(0);c[e>>2]=h;l=63;continue c}else if((l|0)==48){l=0;g=d[j>>0]|0;h=g>>>3;if((h+-16|h+(i>>26))>>>0>7){h=j;g=k;l=56}else{h=j+1|0;g=g+-128|i<<6;do if((g|0)<0){i=(d[h>>0]|0)+-128|0;if(i>>>0<=63){h=j+2|0;g=i|g<<6;if((g|0)>=0)break;i=(d[h>>0]|0)+-128|0;if(i>>>0<=63){h=j+3|0;g=i|g<<6;break}}h=ox()|0;c[h>>2]=25;h=j+-1|0;break d}while(0);c[b>>2]=g;b=b+4|0;g=k+-1|0;l=33;continue c}}else if((l|0)==63)return f|0;while(0);if((l|0)==56){h=h+-1|0;if(!i)l=57;else{f=b;l=61}}if((l|0)==57)if(!(a[h>>0]|0)){if(b|0){c[b>>2]=0;c[e>>2]=0}f=f-g|0;l=63;continue}else{f=b;l=61}if((l|0)==61){l=ox()|0;c[l>>2]=25;if(!f){f=-1;l=63;continue}}c[e>>2]=h;f=-1;l=63}return 0}function Tz(){return ay()|0}function Uz(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;l=zb;zb=zb+272|0;i=l;j=l+256|0;f=c[b>>2]|0;c[j>>2]=f;k=(a|0)!=0;g=k?e:256;h=k?a:i;e=f;a:do if((g|0)!=0&(f|0)!=0){f=0;a=e;while(1){e=d>>>0>=g>>>0;if(!(e|d>>>0>32)){e=a;break a}e=e?g:d;d=d-e|0;e=Vz(h,j,e,0)|0;if((e|0)==-1)break;a=(h|0)==(i|0);g=g-(a?0:e)|0;h=a?h:h+e|0;f=e+f|0;e=c[j>>2]|0;if((g|0)!=0&(e|0)!=0)a=e;else break a}f=-1;g=0;e=c[j>>2]|0}else f=0;while(0);b:do if((e|0)!=0?(g|0)!=0&(d|0)!=0:0){while(1){a=_x(h,c[e>>2]|0,0)|0;if((a+1|0)>>>0<2)break;e=(c[j>>2]|0)+4|0;c[j>>2]=e;d=d+-1|0;g=g-a|0;f=a+f|0;if(!((g|0)!=0&(d|0)!=0))break b;else h=h+a|0}if(!a)c[j>>2]=0;else f=-1}while(0);if(k)c[b>>2]=c[j>>2];zb=l;return f|0}function Vz(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;j=zb;zb=zb+16|0;i=j;a:do if(!b){e=c[d>>2]|0;f=c[e>>2]|0;if(!f)e=0;else{b=e;e=0;do{if(f>>>0>127){f=_x(i,f,0)|0;if((f|0)==-1){e=-1;break a}}else f=1;e=f+e|0;b=b+4|0;f=c[b>>2]|0}while((f|0)!=0)}}else{b:do if(e>>>0>3){f=e;g=c[d>>2]|0;while(1){h=c[g>>2]|0;if((h+-1|0)>>>0>126){if(!h)break;h=_x(b,h,0)|0;if((h|0)==-1){e=-1;break a}b=b+h|0;f=f-h|0}else{a[b>>0]=h;b=b+1|0;f=f+-1|0;g=c[d>>2]|0}g=g+4|0;c[d>>2]=g;if(f>>>0<=3)break b}a[b>>0]=0;c[d>>2]=0;e=e-f|0;break a}else f=e;while(0);if(f){g=c[d>>2]|0;while(1){h=c[g>>2]|0;if((h+-1|0)>>>0>126){if(!h){g=20;break}h=_x(i,h,0)|0;if((h|0)==-1){e=-1;break a}if(f>>>0>>0){g=23;break}_x(b,c[g>>2]|0,0)|0;b=b+h|0;f=f-h|0}else{a[b>>0]=h;b=b+1|0;f=f+-1|0;g=c[d>>2]|0}g=g+4|0;c[d>>2]=g;if(!f)break a}if((g|0)==20){a[b>>0]=0;c[d>>2]=0;e=e-f|0;break}else if((g|0)==23){e=e-f|0;break}}}while(0);zb=j;return e|0}function Wz(a,b,c){a=a|0;b=b|0;c=c|0;Xz(a,b,c)|0;return a|0}function Xz(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=d;a:do if(!((g^b)&3)){f=(e|0)!=0;if(f&(g&3|0)!=0)do{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}while(f&(d&3|0)!=0);if(f){if(a[d>>0]|0){b:do if(e>>>0>3){f=d;while(1){d=c[f>>2]|0;if((d&-2139062144^-2139062144)&d+-16843009|0){d=f;break b}c[b>>2]=d;e=e+-4|0;d=f+4|0;b=b+4|0;if(e>>>0>3)f=d;else break}}while(0);h=13}}else e=0}else h=13;while(0);c:do if((h|0)==13)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);aP(b|0,0,e|0)|0;return b|0}function Yz(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=zb;zb=zb+32|0;f=g;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[f+24>>2]=0;c[f+28>>2]=0;e=a[d>>0]|0;do if(!(e<<24>>24))d=0;else{if(!(a[d+1>>0]|0)){d=b;while(1)if((a[d>>0]|0)==e<<24>>24)d=d+1|0;else break;d=d-b|0;break}do{i=e&255;h=f+(i>>>5<<2)|0;c[h>>2]=c[h>>2]|1<<(i&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);e=a[b>>0]|0;a:do if(!(e<<24>>24))d=b;else{d=b;do{i=e&255;if(!(c[f+(i>>>5<<2)>>2]&1<<(i&31)))break a;d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0)}while(0);d=d-b|0}while(0);zb=g;return d|0}function Zz(a){a=a|0;var b=0,e=0,f=0;if((c[a+76>>2]|0)>=0?(Px(a)|0)!=0:0){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0}else b=Ax(a)|0}else f=3;do if((f|0)==3){b=a+4|0;e=c[b>>2]|0;if(e>>>0<(c[a+8>>2]|0)>>>0){c[b>>2]=e+1;b=d[e>>0]|0;break}else{b=Ax(a)|0;break}}while(0);return b|0}function _z(a){a=a|0;var b=0;b=54792;c[b>>2]=a+-1;c[b+4>>2]=0;return}function $z(){var a=0,b=0,d=0;b=54792;b=NO(c[b>>2]|0,c[b+4>>2]|0,1284865837,1481765933)|0;b=OO(b|0,F()|0,1,0)|0;a=F()|0;d=54792;c[d>>2]=b;c[d+4>>2]=a;a=TO(b|0,a|0,33)|0;F()|0;return a|0}function aA(a,b){a=a|0;b=b|0;cz(a+(Qy(a)|0)|0,b)|0;return a|0}function bA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;h=zb;zb=zb+16|0;e=h;c[e>>2]=c[d>>2];e=Jx(0,0,b,e)|0;if((e|0)>=0?(f=e+1|0,g=FO(f)|0,c[a>>2]=g,(g|0)!=0):0)a=Jx(g,f,b,d)|0;else a=-1;zb=h;return a|0}function cA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;do if((b|0)!=-1){if((c[d+76>>2]|0)>-1)g=Px(d)|0;else g=0;h=d+4|0;e=c[h>>2]|0;if(!e){Bx(d)|0;e=c[h>>2]|0;if(e|0){f=e;i=6}}else{f=e;i=6}if((i|0)==6?f>>>0>((c[d+44>>2]|0)+-8|0)>>>0:0){i=f+-1|0;c[h>>2]=i;a[i>>0]=b;c[d>>2]=c[d>>2]&-17;if(!g)break;Qx(d);break}if(g){Qx(d);b=-1}else b=-1}else b=-1;while(0);return b|0}function dA(a){a=a|0;var b=0,d=0,e=0;if((c[a+76>>2]|0)>-1){e=(Px(a)|0)==0;d=eA(a)|0;b=F()|0;if(e)a=d;else{Qx(a);a=d}}else{a=eA(a)|0;b=F()|0}E(b|0);return a|0}function eA(a){a=a|0;var b=0,d=0,e=0;if(!(c[a>>2]&128))b=1;else b=(c[a+20>>2]|0)>>>0>(c[a+28>>2]|0)>>>0?2:1;b=Kb[c[a+40>>2]&15](a,0,0,b)|0;d=F()|0;if((d|0)>=0){e=(c[a+8>>2]|0)-(c[a+4>>2]|0)|0;e=PO(b|0,d|0,e|0,((e|0)<0)<<31>>31|0)|0;d=F()|0;b=(c[a+20>>2]|0)-(c[a+28>>2]|0)|0;b=OO(e|0,d|0,b|0,((b|0)<0)<<31>>31|0)|0;d=F()|0}E(d|0);return b|0}function fA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;if((c[d+76>>2]|0)>=0?(Px(d)|0)!=0:0){f=b&255;e=b&255;if((e|0)!=(a[d+75>>0]|0)?(i=d+20|0,j=c[i>>2]|0,j>>>0<(c[d+16>>2]|0)>>>0):0){c[i>>2]=j+1;a[j>>0]=f}else e=oz(d,b)|0;Qx(d)}else k=3;do if((k|0)==3){f=b&255;e=b&255;if((e|0)!=(a[d+75>>0]|0)?(g=d+20|0,h=c[g>>2]|0,h>>>0<(c[d+16>>2]|0)>>>0):0){c[g>>2]=h+1;a[h>>0]=f;break}e=oz(d,b)|0}while(0);return e|0}function gA(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;k=B(e,d)|0;e=(d|0)==0?0:e;if((c[f+76>>2]|0)>-1)j=Px(f)|0;else j=0;g=f+74|0;h=a[g>>0]|0;a[g>>0]=h+255|h;g=f+4|0;h=c[g>>2]|0;i=(c[f+8>>2]|0)-h|0;if((i|0)>0){i=i>>>0>>0?i:k;_O(b|0,h|0,i|0)|0;c[g>>2]=(c[g>>2]|0)+i;g=k-i|0;b=b+i|0}else g=k;a:do if(!g)l=13;else{i=f+32|0;while(1){if(Bx(f)|0)break;h=Jb[c[i>>2]&63](f,b,g)|0;if((h+1|0)>>>0<2)break;g=g-h|0;if(!g){l=13;break a}else b=b+h|0}if(j|0)Qx(f);e=((k-g|0)>>>0)/(d>>>0)|0}while(0);if((l|0)==13)if(j)Qx(f);return e|0}function hA(a){a=a|0;var b=0;a=dA(a)|0;b=F()|0;if((b|0)>0|(b|0)==0&a>>>0>2147483647){a=ox()|0;c[a>>2]=61;a=-1}return a|0}function iA(a){a=a|0;var b=0;if((c[a+76>>2]|0)>-1){b=(Px(a)|0)==0;Nz(a,0,0,0)|0;c[a>>2]=c[a>>2]&-33;if(!b)Qx(a)}else{Nz(a,0,0,0)|0;c[a>>2]=c[a>>2]&-33}return}function jA(a,b){a=a|0;b=b|0;return +(+kA(a,b,1))}function kA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,g=0,h=0,i=0;g=zb;zb=zb+144|0;e=g;aP(e|0,0,144)|0;i=e+4|0;c[i>>2]=a;h=e+8|0;c[h>>2]=-1;c[e+44>>2]=a;c[e+76>>2]=-1;wx(e,0,0);f=+Dy(e,d,1);e=e+120|0;d=(c[i>>2]|0)-(c[h>>2]|0)|0;d=OO(c[e>>2]|0,c[e+4>>2]|0,d|0,((d|0)<0)<<31>>31|0)|0;e=F()|0;if(b|0)c[b>>2]=(d|0)==0&(e|0)==0?a:a+d|0;zb=g;return +f}function lA(b){b=b|0;var c=0,d=0,e=0,f=0,g=0;while(1){e=b+1|0;if(!(zx(a[b>>0]|0)|0))break;else b=e}d=a[b>>0]|0;switch(d|0){case 45:{b=1;f=5;break}case 43:{b=0;f=5;break}default:{g=0;c=b;b=d}}if((f|0)==5){g=b;c=e;b=a[e>>0]|0}if(!(Gx(b)|0))b=0;else{b=0;do{b=(b*10|0)+48-(a[c>>0]|0)|0;c=c+1|0}while((Gx(a[c>>0]|0)|0)!=0)}return ((g|0)==0?0-b|0:b)|0}function mA(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;h=zb;zb=zb+32|0;f=h;e=a[d>>0]|0;a:do if(e<<24>>24!=0?(a[d+1>>0]|0)!=0:0){aP(f|0,0,32)|0;e=a[d>>0]|0;if(e<<24>>24)do{j=e&255;i=f+(j>>>5<<2)|0;c[i>>2]=c[i>>2]|1<<(j&31);d=d+1|0;e=a[d>>0]|0}while(e<<24>>24!=0);d=a[b>>0]|0;if(!(d<<24>>24))e=b;else{e=b;do{j=d&255;if(c[f+(j>>>5<<2)>>2]&1<<(j&31)|0)break a;e=e+1|0;d=a[e>>0]|0}while(d<<24>>24!=0)}}else g=3;while(0);if((g|0)==3)e=Ty(b,e<<24>>24)|0;zb=h;return e-b|0}function nA(a,b){a=a|0;b=b|0;return +(+kA(a,b,0))}function oA(a,b){a=a|0;b=b|0;return +(+kA(a,b,2))}function pA(a,b,c){a=a|0;b=b|0;c=c|0;return +(+nA(a,b))}function qA(a,b,c){a=a|0;b=b|0;c=c|0;return +(+jA(a,b))}function rA(a,b,c){a=a|0;b=b|0;c=c|0;return +(+oA(a,b))}function sA(b,c,d){b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=b+(Qy(b)|0)|0;a:do if(d)while(1){g=a[c>>0]|0;if(!(g<<24>>24))break a;d=d+-1|0;f=e+1|0;a[e>>0]=g;if(!d){e=f;break}else{c=c+1|0;e=f}}while(0);a[e>>0]=0;return b|0}function tA(b,d){b=b|0;d=d|0;var e=0;if(!b){b=c[13914]|0;if(!b)b=0;else e=3}else e=3;do if((e|0)==3){b=b+(Yz(b,d)|0)|0;if(!(a[b>>0]|0)){c[13914]=0;b=0;break}d=b+(mA(b,d)|0)|0;c[13914]=d;if(!(a[d>>0]|0)){c[13914]=0;break}else{c[13914]=d+1;a[d>>0]=0;break}}while(0);return b|0}function uA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=b;if(!d)break;else e=e+4|0}}return a|0}function vA(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;if(a-b>>2>>>0>=d>>>0){if(d|0){e=a;while(1){d=d+-1|0;c[e>>2]=c[b>>2];if(!d)break;else{b=b+4|0;e=e+4|0}}}}else do{d=d+-1|0;c[a+(d<<2)>>2]=c[b+(d<<2)>>2]}while((d|0)!=0);return a|0}function wA(){var a=0,b=0,d=0,e=0,f=0,g=0,h=0;e=zb;zb=zb+48|0;g=e+32|0;b=e+24|0;h=e+16|0;f=e;e=e+36|0;a=xA()|0;if(a|0?(d=c[a>>2]|0,d|0):0){a=d+48|0;if(!(yA(a)|0)){c[b>>2]=46910;AA(46860,b)}b=zA(a)|0;if((b|0)==1126902529&(F()|0)==1129074247)a=c[d+44>>2]|0;else a=d+80|0;c[e>>2]=a;d=c[d>>2]|0;a=c[d+4>>2]|0;if(Jb[c[(c[3470]|0)+16>>2]&63](13880,d,e)|0){h=c[e>>2]|0;h=Gb[c[(c[h>>2]|0)+8>>2]&127](h)|0;c[f>>2]=46910;c[f+4>>2]=a;c[f+8>>2]=h;AA(46774,f)}else{c[h>>2]=46910;c[h+4>>2]=a;AA(46819,h)}}AA(46898,g)}function xA(){return 55660}function yA(a){a=a|0;return 0}function zA(a){a=a|0;E(0);return 0}function AA(a,b){a=a|0;b=b|0;var d=0;d=zb;zb=zb+16|0;c[d>>2]=b;b=c[4001]|0;Kx(b,a,d)|0;fA(10,b)|0;ua()}function BA(a){a=a|0;return}function CA(a){a=a|0;BA(a);SA(a);return}function DA(a){a=a|0;return}function EA(a){a=a|0;return}function FA(d,e,f){d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;l=zb;zb=zb+64|0;j=l;if(!(JA(d,e,0)|0))if((e|0)!=0?(k=NA(e,13904,13888,0)|0,(k|0)!=0):0){c[j>>2]=k;c[j+4>>2]=0;c[j+8>>2]=d;c[j+12>>2]=-1;d=j+16|0;e=j+24|0;g=j+48|0;h=d;i=h+36|0;do{c[h>>2]=0;h=h+4|0}while((h|0)<(i|0));b[d+36>>1]=0;a[d+38>>0]=0;c[g>>2]=1;Xb[c[(c[k>>2]|0)+28>>2]&31](k,j,c[f>>2]|0,1);if((c[e>>2]|0)==1){c[f>>2]=c[d>>2];d=1}else d=0}else d=0;else d=1;zb=l;return d|0}function GA(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(JA(a,c[b+8>>2]|0,g)|0)MA(0,b,d,e,f);return}function HA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0;do if(!(JA(b,c[d+8>>2]|0,g)|0)){if(JA(b,c[d>>2]|0,g)|0){if((c[d+16>>2]|0)!=(e|0)?(h=d+20|0,(c[h>>2]|0)!=(e|0)):0){c[d+32>>2]=f;c[h>>2]=e;g=d+40|0;c[g>>2]=(c[g>>2]|0)+1;if((c[d+36>>2]|0)==1?(c[d+24>>2]|0)==2:0)a[d+54>>0]=1;c[d+44>>2]=4;break}if((f|0)==1)c[d+32>>2]=1}}else LA(0,d,e,f);while(0);return}function IA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(JA(a,c[b+8>>2]|0,0)|0)KA(0,b,d,e);return}function JA(a,b,d){a=a|0;b=b|0;d=d|0;if(d)a=(Fx(c[a+4>>2]|0,c[b+4>>2]|0)|0)==0;else a=(a|0)==(b|0);return a|0}function KA(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;b=d+16|0;g=c[b>>2]|0;do if(g){if((g|0)!=(e|0)){f=d+36|0;c[f>>2]=(c[f>>2]|0)+1;c[d+24>>2]=2;a[d+54>>0]=1;break}b=d+24|0;if((c[b>>2]|0)==2)c[b>>2]=f}else{c[b>>2]=e;c[d+24>>2]=f;c[d+36>>2]=1}while(0);return}function LA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;if((c[b+4>>2]|0)==(d|0)?(f=b+28|0,(c[f>>2]|0)!=1):0)c[f>>2]=e;return}function MA(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;a[d+53>>0]=1;do if((c[d+4>>2]|0)==(f|0)){a[d+52>>0]=1;b=d+16|0;f=c[b>>2]|0;if(!f){c[b>>2]=e;c[d+24>>2]=g;c[d+36>>2]=1;if(!((g|0)==1?(c[d+48>>2]|0)==1:0))break;a[d+54>>0]=1;break}if((f|0)!=(e|0)){g=d+36|0;c[g>>2]=(c[g>>2]|0)+1;a[d+54>>0]=1;break}f=d+24|0;b=c[f>>2]|0;if((b|0)==2){c[f>>2]=g;b=g}if((b|0)==1?(c[d+48>>2]|0)==1:0)a[d+54>>0]=1}while(0);return}function NA(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=zb;zb=zb+64|0;n=p;m=c[d>>2]|0;o=d+(c[m+-8>>2]|0)|0;m=c[m+-4>>2]|0;c[n>>2]=f;c[n+4>>2]=d;c[n+8>>2]=e;c[n+12>>2]=g;d=n+16|0;e=n+20|0;g=n+24|0;h=n+28|0;i=n+32|0;j=n+40|0;k=d;l=k+36|0;do{c[k>>2]=0;k=k+4|0}while((k|0)<(l|0));b[d+36>>1]=0;a[d+38>>0]=0;a:do if(JA(m,f,0)|0){c[n+48>>2]=1;Zb[c[(c[m>>2]|0)+20>>2]&7](m,n,o,o,1,0);d=(c[g>>2]|0)==1?o:0}else{Yb[c[(c[m>>2]|0)+24>>2]&63](m,n,o,1,0);switch(c[n+36>>2]|0){case 0:{d=(c[j>>2]|0)==1&(c[h>>2]|0)==1&(c[i>>2]|0)==1?c[e>>2]|0:0;break a}case 1:break;default:{d=0;break a}}if((c[g>>2]|0)!=1?!((c[j>>2]|0)==0&(c[h>>2]|0)==1&(c[i>>2]|0)==1):0){d=0;break}d=c[d>>2]|0}while(0);zb=p;return d|0}function OA(a){a=a|0;BA(a);SA(a);return}function PA(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(JA(a,c[b+8>>2]|0,g)|0)MA(0,b,d,e,f);else{a=c[a+8>>2]|0;Zb[c[(c[a>>2]|0)+20>>2]&7](a,b,d,e,f,g)}return}function QA(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;a:do if(!(JA(b,c[d+8>>2]|0,g)|0)){if(!(JA(b,c[d>>2]|0,g)|0)){i=c[b+8>>2]|0;Yb[c[(c[i>>2]|0)+24>>2]&63](i,d,e,f,g);break}if((c[d+16>>2]|0)!=(e|0)?(i=d+20|0,(c[i>>2]|0)!=(e|0)):0){c[d+32>>2]=f;f=d+44|0;do if((c[f>>2]|0)!=4){h=d+52|0;a[h>>0]=0;j=d+53|0;a[j>>0]=0;b=c[b+8>>2]|0;Zb[c[(c[b>>2]|0)+20>>2]&7](b,d,e,e,1,g);if(a[j>>0]|0){j=(a[h>>0]|0)==0;c[f>>2]=3;if(j)break;else break a}else{c[f>>2]=4;break}}while(0);c[i>>2]=e;j=d+40|0;c[j>>2]=(c[j>>2]|0)+1;if((c[d+36>>2]|0)!=1)break;if((c[d+24>>2]|0)!=2)break;a[d+54>>0]=1;break}if((f|0)==1)c[d+32>>2]=1}else LA(0,d,e,f);while(0);return}function RA(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;if(JA(a,c[b+8>>2]|0,0)|0)KA(0,b,d,e);else{a=c[a+8>>2]|0;Xb[c[(c[a>>2]|0)+28>>2]&31](a,b,d,e)}return}function SA(a){a=a|0;GO(a);return}function TA(a){a=a|0;return}function UA(){var a=0,b=0;a=xA()|0;if((a|0?(b=c[a>>2]|0,b|0):0)?yA(b+48|0)|0:0)VA(c[b+12>>2]|0);VA(WA()|0)}function VA(a){a=a|0;var b=0;b=zb;zb=zb+16|0;Rb[a&1]();AA(47049,b)}function WA(){return 1}function XA(a){a=a|0;return}function YA(a){a=a|0;c[a>>2]=16372;aB(a+4|0);return}function ZA(a){a=a|0;YA(a);SA(a);return}function _A(a){a=a|0;return $A(a+4|0)|0}function $A(a){a=a|0;return c[a>>2]|0}function aB(a){a=a|0;var b=0,d=0;if(bB(a)|0?(b=cB(c[a>>2]|0)|0,d=b+8|0,a=c[d>>2]|0,c[d>>2]=a+-1,(a|0)<1):0)SA(b);return}function bB(a){a=a|0;return 1}function cB(a){a=a|0;return a+-12|0}function dB(a){a=a|0;YA(a);SA(a);return}function eB(a){a=a|0;BA(a);SA(a);return}function fB(a,b,c){a=a|0;b=b|0;c=c|0;return JA(a,b,0)|0}function gB(a){a=a|0;BA(a);SA(a);return}function hB(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if(JA(b,c[d+8>>2]|0,h)|0)MA(0,d,e,f,g);else{r=d+52|0;j=a[r>>0]|0;q=d+53|0;i=a[q>>0]|0;p=c[b+12>>2]|0;m=b+16+(p<<3)|0;a[r>>0]=0;a[q>>0]=0;lB(b+16|0,d,e,f,g,h);k=a[r>>0]|0;j=k|j;l=a[q>>0]|0;i=l|i;a:do if((p|0)>1){n=d+24|0;o=b+8|0;p=d+54|0;b=b+24|0;do{i=i&1;j=j&1;if(a[p>>0]|0)break a;if(!(k<<24>>24)){if(l<<24>>24?(c[o>>2]&1|0)==0:0)break a}else{if((c[n>>2]|0)==1)break a;if(!(c[o>>2]&2))break a}a[r>>0]=0;a[q>>0]=0;lB(b,d,e,f,g,h);k=a[r>>0]|0;j=k|j;l=a[q>>0]|0;i=l|i;b=b+8|0}while(b>>>0>>0)}while(0);a[r>>0]=j<<24>>24!=0&1;a[q>>0]=i<<24>>24!=0&1}return}function iB(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;a:do if(!(JA(b,c[d+8>>2]|0,g)|0)){if(!(JA(b,c[d>>2]|0,g)|0)){p=c[b+12>>2]|0;k=b+16+(p<<3)|0;mB(b+16|0,d,e,f,g);h=b+24|0;if((p|0)<=1)break;b=c[b+8>>2]|0;if((b&2|0)==0?(j=d+36|0,(c[j>>2]|0)!=1):0){if(!(b&1)){b=d+54|0;while(1){if(a[b>>0]|0)break a;if((c[j>>2]|0)==1)break a;mB(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}b=d+24|0;i=d+54|0;while(1){if(a[i>>0]|0)break a;if((c[j>>2]|0)==1?(c[b>>2]|0)==1:0)break a;mB(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}b=d+54|0;while(1){if(a[b>>0]|0)break a;mB(h,d,e,f,g);h=h+8|0;if(h>>>0>=k>>>0)break a}}if((c[d+16>>2]|0)!=(e|0)?(p=d+20|0,(c[p>>2]|0)!=(e|0)):0){c[d+32>>2]=f;o=d+44|0;if((c[o>>2]|0)!=4){j=b+16+(c[b+12>>2]<<3)|0;k=d+52|0;f=d+53|0;l=d+54|0;m=b+8|0;n=d+24|0;h=0;i=b+16|0;b=0;b:while(1){if(i>>>0>=j>>>0){i=18;break}a[k>>0]=0;a[f>>0]=0;lB(i,d,e,e,1,g);if(a[l>>0]|0){i=18;break}do if(a[f>>0]|0){if(!(a[k>>0]|0))if(!(c[m>>2]&1)){i=19;break b}else{b=1;break}if((c[n>>2]|0)==1){h=1;i=19;break b}if(!(c[m>>2]&2)){h=1;i=19;break b}else{h=1;b=1}}while(0);i=i+8|0}if((i|0)==18)if(b)i=19;else b=4;if((i|0)==19)b=3;c[o>>2]=b;if(h&1)break}c[p>>2]=e;e=d+40|0;c[e>>2]=(c[e>>2]|0)+1;if((c[d+36>>2]|0)!=1)break;if((c[d+24>>2]|0)!=2)break;a[d+54>>0]=1;break}if((f|0)==1)c[d+32>>2]=1}else LA(0,d,e,f);while(0);return}function jB(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0;a:do if(!(JA(b,c[d+8>>2]|0,0)|0)){h=c[b+12>>2]|0;g=b+16+(h<<3)|0;kB(b+16|0,d,e,f);if((h|0)>1){h=d+54|0;b=b+24|0;do{kB(b,d,e,f);if(a[h>>0]|0)break a;b=b+8|0}while(b>>>0>>0)}}else KA(0,d,e,f);while(0);return}function kB(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=c[a+4>>2]|0;if(d){f=g>>8;if(g&1)f=c[(c[d>>2]|0)+f>>2]|0}else f=0;a=c[a>>2]|0;Xb[c[(c[a>>2]|0)+28>>2]&31](a,b,d+f|0,(g&2|0)==0?2:e);return}function lB(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=c[a+4>>2]|0;h=i>>8;if(i&1)h=c[(c[e>>2]|0)+h>>2]|0;a=c[a>>2]|0;Zb[c[(c[a>>2]|0)+20>>2]&7](a,b,d,e+h|0,(i&2|0)==0?2:f,g);return} function $b(a){a=a|0;var b=0;b=zb;zb=zb+a|0;zb=zb+15&-16;return b|0}function ac(){return zb|0}function bc(a){a=a|0;zb=a}function cc(a,b){a=a|0;b=b|0;zb=a;Ab=b}function dc(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=zb;zb=zb+16|0;v=y;x=(e|0)/2|0;w=(f|0)/2|0;m=c[i>>2]|0;u=w+-1|0;f=m;j=m+((B(u,x)|0)<<1)|0;k=0;while(1){if((k|0)>=(x|0))break;b[j>>1]=0;b[f>>1]=0;f=f+2|0;j=j+2|0;k=k+1|0}t=x+-1|0;f=m;j=m+(t<<1)|0;k=0;while(1){if((k|0)>=(w|0))break;b[j>>1]=0;b[f>>1]=0;f=f+(x<<1)|0;j=j+(x<<1)|0;k=k+1|0}l=i+1179664|0;s=0-x|0;j=a+((e<<1)+2)|0;r=1;o=0;k=m+(x+1<<1)|0;a:while(1){if((r|0)>=(u|0)){j=59;break}q=j;f=o;p=1;while(1){if((p|0)>=(t|0))break;do if((d[q>>0]|0|0)>(h|0))b[k>>1]=0;else{a=k+(s<<1)|0;j=b[a>>1]|0;if(j<<16>>16>0){b[k>>1]=j;o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+r;c[i+1310736+(o+-1<<2)>>2]=r;break}n=b[a+2>>1]|0;o=n<<16>>16;j=b[a+-2>>1]|0;m=j<<16>>16;a=j<<16>>16>0;if(n<<16>>16<=0){if(a){b[k>>1]=j;j=m*7|0;a=i+1310736+(j+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(j+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+p;a=i+1310736+(j+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+r;a=i+1310736+(j+-3<<2)|0;if((c[a>>2]|0)<(p|0))c[a>>2]=p;c[i+1310736+(j+-1<<2)>>2]=r;break}j=b[k+-2>>1]|0;if(j<<16>>16>0){b[k>>1]=j;j=(j<<16>>16)*7|0;o=i+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+p;o=i+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=i+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(p|0))break;c[j>>2]=p;break}else{j=f+1|0;if((f|0)>32767){j=54;break a}b[k>>1]=j;c[i+1179664+(f<<2)>>2]=j<<16>>16;f=f*7|0;c[i+1310736+(f<<2)>>2]=1;c[i+1310736+(f+1<<2)>>2]=p;c[i+1310736+(f+2<<2)>>2]=r;c[i+1310736+(f+3<<2)>>2]=p;c[i+1310736+(f+4<<2)>>2]=p;c[i+1310736+(f+5<<2)>>2]=r;c[i+1310736+(f+6<<2)>>2]=r;f=j;break}}if(a){j=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+(m+-1<<2)>>2]|0;b:do if((j|0)<=(n|0)){b[k>>1]=j;if((j|0)<(n|0)){a=l;m=0;while(1){if((m|0)>=(f|0))break b;if((c[a>>2]|0)==(n|0))c[a>>2]=j;a=a+4|0;m=m+1|0}}}else{b[k>>1]=n;a=l;m=0;while(1){if((m|0)>=(f|0)){j=n;break b}if((c[a>>2]|0)==(j|0))c[a>>2]=n;a=a+4|0;m=m+1|0}}while(0);o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+r;c[i+1310736+(o+-1<<2)>>2]=r;break}a=b[k+-2>>1]|0;if(a<<16>>16<=0){b[k>>1]=n;j=o*7|0;a=i+1310736+(j+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(j+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+p;a=i+1310736+(j+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+r;a=i+1310736+(j+-4<<2)|0;if((c[a>>2]|0)>(p|0))c[a>>2]=p;c[i+1310736+(j+-1<<2)>>2]=r;break}j=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+((a<<16>>16)+-1<<2)>>2]|0;c:do if((j|0)<=(n|0)){b[k>>1]=j;if((j|0)<(n|0)){a=l;m=0;while(1){if((m|0)>=(f|0))break c;if((c[a>>2]|0)==(n|0))c[a>>2]=j;a=a+4|0;m=m+1|0}}}else{b[k>>1]=n;a=l;m=0;while(1){if((m|0)>=(f|0)){j=n;break c}if((c[a>>2]|0)==(j|0))c[a>>2]=n;a=a+4|0;m=m+1|0}}while(0);o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;o=i+1310736+(o+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+r}while(0);q=q+2|0;p=p+1|0;k=k+2|0}j=q+e+4|0;r=r+1|0;o=f;k=k+4|0}d:do if((j|0)==54){Ue(0,3,19708,v);f=-1}else if((j|0)==59){m=i+12|0;f=1;a=1;while(1){if((a|0)>(o|0))break;j=c[l>>2]|0;if((j|0)==(a|0))k=f+1|0;else{k=f;f=c[i+1179664+(j+-1<<2)>>2]|0}c[l>>2]=f;f=k;a=a+1|0;l=l+4|0}n=i+8|0;j=f+-1|0;c[n>>2]=j;if(!j)f=0;else{aP(m|0,0,j<<2|0)|0;aP(i+655376|0,0,j<<4|0)|0;f=0;while(1){if((f|0)>=(j|0))break;v=f<<2;c[i+131084+(v<<2)>>2]=x;c[i+131084+((v|1)<<2)>>2]=0;c[i+131084+((v|2)<<2)>>2]=w;c[i+131084+((v|3)<<2)>>2]=0;f=f+1|0}a=0;while(1){if((a|0)>=(o|0))break;k=(c[i+1179664+(a<<2)>>2]|0)+-1|0;l=a*7|0;f=i+12+(k<<2)|0;c[f>>2]=(c[f>>2]|0)+(c[i+1310736+(l<<2)>>2]|0);f=k<<1;j=i+655376+(f<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(l+1<<2)>>2]|0);f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]+ +(c[i+1310736+(l+2<<2)>>2]|0);k=k<<2;f=i+131084+(k<<2)|0;j=c[i+1310736+(l+3<<2)>>2]|0;if((c[f>>2]|0)>(j|0))c[f>>2]=j;f=i+131084+((k|1)<<2)|0;j=c[i+1310736+(l+4<<2)>>2]|0;if((c[f>>2]|0)<(j|0))c[f>>2]=j;f=i+131084+((k|2)<<2)|0;j=c[i+1310736+(l+5<<2)>>2]|0;if((c[f>>2]|0)>(j|0))c[f>>2]=j;j=i+131084+((k|3)<<2)|0;f=c[i+1310736+(l+6<<2)>>2]|0;if((c[j>>2]|0)<(f|0))c[j>>2]=f;a=a+1|0}j=c[n>>2]|0;f=0;while(1){if((f|0)>=(j|0)){f=0;break d}z=+(c[i+12+(f<<2)>>2]|0);x=f<<1;w=i+655376+(x<<3)|0;g[w>>3]=+g[w>>3]/z;x=i+655376+((x|1)<<3)|0;g[x>>3]=+g[x>>3]/z;f=f+1|0}}}while(0);zb=y;return f|0}function ec(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=zb;zb=zb+16|0;w=x;n=c[i>>2]|0;v=f+-1|0;j=n;k=n+((B(v,e)|0)<<1)|0;l=0;while(1){if((l|0)>=(e|0))break;b[k>>1]=0;b[j>>1]=0;j=j+2|0;k=k+2|0;l=l+1|0}u=e+-1|0;j=n;k=n+(u<<1)|0;l=0;while(1){if((l|0)>=(f|0))break;b[k>>1]=0;b[j>>1]=0;j=j+(e<<1)|0;k=k+(e<<1)|0;l=l+1|0}m=i+1179664|0;l=e+1|0;t=0-e|0;k=a+l|0;s=1;p=0;l=n+(l<<1)|0;a:while(1){if((s|0)>=(v|0)){k=59;break}r=k;j=p;q=1;while(1){if((q|0)>=(u|0))break;do if((d[r>>0]|0|0)>(h|0))b[l>>1]=0;else{a=l+(t<<1)|0;k=b[a>>1]|0;if(k<<16>>16>0){b[l>>1]=k;p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=i+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;c[i+1310736+(p+-1<<2)>>2]=s;break}o=b[a+2>>1]|0;p=o<<16>>16;k=b[a+-2>>1]|0;n=k<<16>>16;a=k<<16>>16>0;if(o<<16>>16<=0){if(a){b[l>>1]=k;k=n*7|0;a=i+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+q;a=i+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=i+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(q|0))c[a>>2]=q;c[i+1310736+(k+-1<<2)>>2]=s;break}k=b[l+-2>>1]|0;if(k<<16>>16>0){b[l>>1]=k;k=(k<<16>>16)*7|0;p=i+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=i+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=i+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=i+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0))break;c[k>>2]=q;break}else{k=j+1|0;if((j|0)>32767){k=54;break a}b[l>>1]=k;c[i+1179664+(j<<2)>>2]=k<<16>>16;j=j*7|0;c[i+1310736+(j<<2)>>2]=1;c[i+1310736+(j+1<<2)>>2]=q;c[i+1310736+(j+2<<2)>>2]=s;c[i+1310736+(j+3<<2)>>2]=q;c[i+1310736+(j+4<<2)>>2]=q;c[i+1310736+(j+5<<2)>>2]=s;c[i+1310736+(j+6<<2)>>2]=s;j=k;break}}if(a){k=c[i+1179664+(p+-1<<2)>>2]|0;o=c[i+1179664+(n+-1<<2)>>2]|0;b:do if((k|0)<=(o|0)){b[l>>1]=k;if((k|0)<(o|0)){a=m;n=0;while(1){if((n|0)>=(j|0))break b;if((c[a>>2]|0)==(o|0))c[a>>2]=k;a=a+4|0;n=n+1|0}}}else{b[l>>1]=o;a=m;n=0;while(1){if((n|0)>=(j|0)){k=o;break b}if((c[a>>2]|0)==(k|0))c[a>>2]=o;a=a+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=i+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;c[i+1310736+(p+-1<<2)>>2]=s;break}k=b[l+-2>>1]|0;if(k<<16>>16<=0){b[l>>1]=o;k=p*7|0;a=i+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+q;a=i+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=i+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(q|0))c[a>>2]=q;c[i+1310736+(k+-1<<2)>>2]=s;break}o=c[i+1179664+(p+-1<<2)>>2]|0;k=c[i+1179664+((k<<16>>16)+-1<<2)>>2]|0;c:do if((o|0)<=(k|0)){b[l>>1]=o;if((o|0)<(k|0)){a=m;n=0;while(1){if((n|0)>=(j|0)){k=o;break c}if((c[a>>2]|0)==(k|0))c[a>>2]=o;a=a+4|0;n=n+1|0}}else k=o}else{b[l>>1]=k;a=m;n=0;while(1){if((n|0)>=(j|0))break c;if((c[a>>2]|0)==(o|0))c[a>>2]=k;a=a+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;p=i+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+s}while(0);r=r+1|0;q=q+1|0;l=l+2|0}k=r+2|0;s=s+1|0;p=j;l=l+4|0}d:do if((k|0)==54){Ue(0,3,19708,w);j=-1}else if((k|0)==59){n=i+12|0;j=1;a=1;while(1){if((a|0)>(p|0))break;k=c[m>>2]|0;if((k|0)==(a|0))l=j+1|0;else{l=j;j=c[i+1179664+(k+-1<<2)>>2]|0}c[m>>2]=j;j=l;a=a+1|0;m=m+4|0}o=i+8|0;k=j+-1|0;c[o>>2]=k;if(!k)j=0;else{aP(n|0,0,k<<2|0)|0;aP(i+655376|0,0,k<<4|0)|0;j=0;while(1){if((j|0)>=(k|0))break;w=j<<2;c[i+131084+(w<<2)>>2]=e;c[i+131084+((w|1)<<2)>>2]=0;c[i+131084+((w|2)<<2)>>2]=f;c[i+131084+((w|3)<<2)>>2]=0;j=j+1|0}a=0;while(1){if((a|0)>=(p|0))break;l=(c[i+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;j=i+12+(l<<2)|0;c[j>>2]=(c[j>>2]|0)+(c[i+1310736+(m<<2)>>2]|0);j=l<<1;k=i+655376+(j<<3)|0;g[k>>3]=+g[k>>3]+ +(c[i+1310736+(m+1<<2)>>2]|0);j=i+655376+((j|1)<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(m+2<<2)>>2]|0);l=l<<2;j=i+131084+(l<<2)|0;k=c[i+1310736+(m+3<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;j=i+131084+((l|1)<<2)|0;k=c[i+1310736+(m+4<<2)>>2]|0;if((c[j>>2]|0)<(k|0))c[j>>2]=k;j=i+131084+((l|2)<<2)|0;k=c[i+1310736+(m+5<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;k=i+131084+((l|3)<<2)|0;j=c[i+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(j|0))c[k>>2]=j;a=a+1|0}k=c[o>>2]|0;j=0;while(1){if((j|0)>=(k|0)){j=0;break d}y=+(c[i+12+(j<<2)>>2]|0);f=j<<1;e=i+655376+(f<<3)|0;g[e>>3]=+g[e>>3]/y;f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]/y;j=j+1|0}}}while(0);zb=x;return j|0}function fc(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=zb;zb=zb+16|0;w=x;n=c[i>>2]|0;v=f+-1|0;j=n;k=0;l=n+((B(v,e)|0)<<1)|0;while(1){if((k|0)>=(e|0))break;b[l>>1]=0;b[j>>1]=0;j=j+2|0;k=k+1|0;l=l+2|0}u=e+-1|0;j=n;k=0;l=n+(u<<1)|0;while(1){if((k|0)>=(f|0))break;b[l>>1]=0;b[j>>1]=0;j=j+(e<<1)|0;k=k+1|0;l=l+(e<<1)|0}m=i+1179664|0;l=e+1|0;t=0-e|0;a=a+l|0;k=h+l|0;s=1;o=0;l=n+(l<<1)|0;a:while(1){if((s|0)>=(v|0)){k=59;break}q=k;j=o;p=1;r=l;while(1){if((p|0)>=(u|0))break;do if((d[a>>0]|0)>(d[q>>0]|0))b[r>>1]=0;else{l=r+(t<<1)|0;k=b[l>>1]|0;if(k<<16>>16>0){b[r>>1]=k;o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+s;c[i+1310736+(o+-1<<2)>>2]=s;break}n=b[l+2>>1]|0;o=n<<16>>16;k=b[l+-2>>1]|0;h=k<<16>>16;l=k<<16>>16>0;if(n<<16>>16<=0){if(l){b[r>>1]=k;k=h*7|0;l=i+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=i+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+p;l=i+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=i+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(p|0))c[l>>2]=p;c[i+1310736+(k+-1<<2)>>2]=s;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;o=i+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+p;o=i+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;k=i+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0))break;c[k>>2]=p;break}else{k=j+1|0;if((j|0)>32767){k=54;break a}b[r>>1]=k;c[i+1179664+(j<<2)>>2]=k<<16>>16;j=j*7|0;c[i+1310736+(j<<2)>>2]=1;c[i+1310736+(j+1<<2)>>2]=p;c[i+1310736+(j+2<<2)>>2]=s;c[i+1310736+(j+3<<2)>>2]=p;c[i+1310736+(j+4<<2)>>2]=p;c[i+1310736+(j+5<<2)>>2]=s;c[i+1310736+(j+6<<2)>>2]=s;j=k;break}}if(l){k=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+(h+-1<<2)>>2]|0;b:do if((k|0)<=(n|0)){b[r>>1]=k;if((k|0)<(n|0)){l=m;h=0;while(1){if((h|0)>=(j|0))break b;if((c[l>>2]|0)==(n|0))c[l>>2]=k;l=l+4|0;h=h+1|0}}}else{b[r>>1]=n;l=m;h=0;while(1){if((h|0)>=(j|0)){k=n;break b}if((c[l>>2]|0)==(k|0))c[l>>2]=n;l=l+4|0;h=h+1|0}}while(0);o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+s;c[i+1310736+(o+-1<<2)>>2]=s;break}l=b[r+-2>>1]|0;if(l<<16>>16<=0){b[r>>1]=n;k=o*7|0;l=i+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=i+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+p;l=i+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=i+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(p|0))c[l>>2]=p;c[i+1310736+(k+-1<<2)>>2]=s;break}k=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+((l<<16>>16)+-1<<2)>>2]|0;c:do if((k|0)<=(n|0)){b[r>>1]=k;if((k|0)<(n|0)){l=m;h=0;while(1){if((h|0)>=(j|0))break c;if((c[l>>2]|0)==(n|0))c[l>>2]=k;l=l+4|0;h=h+1|0}}}else{b[r>>1]=n;l=m;h=0;while(1){if((h|0)>=(j|0)){k=n;break c}if((c[l>>2]|0)==(k|0))c[l>>2]=n;l=l+4|0;h=h+1|0}}while(0);o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;o=i+1310736+(o+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s}while(0);a=a+1|0;q=q+1|0;p=p+1|0;r=r+2|0}a=a+2|0;k=q+2|0;s=s+1|0;o=j;l=r+4|0}d:do if((k|0)==54){Ue(0,3,19708,w);j=-1}else if((k|0)==59){h=i+12|0;j=1;a=1;while(1){if((a|0)>(o|0))break;k=c[m>>2]|0;if((k|0)==(a|0))l=j+1|0;else{l=j;j=c[i+1179664+(k+-1<<2)>>2]|0}c[m>>2]=j;j=l;a=a+1|0;m=m+4|0}n=i+8|0;k=j+-1|0;c[n>>2]=k;if(!k)j=0;else{aP(h|0,0,k<<2|0)|0;aP(i+655376|0,0,k<<4|0)|0;j=0;while(1){if((j|0)>=(k|0))break;w=j<<2;c[i+131084+(w<<2)>>2]=e;c[i+131084+((w|1)<<2)>>2]=0;c[i+131084+((w|2)<<2)>>2]=f;c[i+131084+((w|3)<<2)>>2]=0;j=j+1|0}a=0;while(1){if((a|0)>=(o|0))break;l=(c[i+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;j=i+12+(l<<2)|0;c[j>>2]=(c[j>>2]|0)+(c[i+1310736+(m<<2)>>2]|0);j=l<<1;k=i+655376+(j<<3)|0;g[k>>3]=+g[k>>3]+ +(c[i+1310736+(m+1<<2)>>2]|0);j=i+655376+((j|1)<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(m+2<<2)>>2]|0);l=l<<2;j=i+131084+(l<<2)|0;k=c[i+1310736+(m+3<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;j=i+131084+((l|1)<<2)|0;k=c[i+1310736+(m+4<<2)>>2]|0;if((c[j>>2]|0)<(k|0))c[j>>2]=k;j=i+131084+((l|2)<<2)|0;k=c[i+1310736+(m+5<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;k=i+131084+((l|3)<<2)|0;j=c[i+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(j|0))c[k>>2]=j;a=a+1|0}k=c[n>>2]|0;j=0;while(1){if((j|0)>=(k|0)){j=0;break d}y=+(c[i+12+(j<<2)>>2]|0);f=j<<1;e=i+655376+(f<<3)|0;g[e>>3]=+g[e>>3]/y;f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]/y;j=j+1|0}}}while(0);zb=x;return j|0}function gc(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0;y=zb;zb=zb+16|0;v=y;x=(e|0)/2|0;w=(f|0)/2|0;m=c[i>>2]|0;u=w+-1|0;f=m;j=m+((B(u,x)|0)<<1)|0;k=0;while(1){if((k|0)>=(x|0))break;b[j>>1]=0;b[f>>1]=0;f=f+2|0;j=j+2|0;k=k+1|0}t=x+-1|0;f=m;j=m+(t<<1)|0;k=0;while(1){if((k|0)>=(w|0))break;b[j>>1]=0;b[f>>1]=0;f=f+(x<<1)|0;j=j+(x<<1)|0;k=k+1|0}l=i+1179664|0;s=0-x|0;j=a+((e<<1)+2)|0;r=1;o=0;k=m+(x+1<<1)|0;a:while(1){if((r|0)>=(u|0)){j=59;break}q=j;f=o;p=1;while(1){if((p|0)>=(t|0))break;do if((d[q>>0]|0|0)>(h|0)){a=k+(s<<1)|0;j=b[a>>1]|0;if(j<<16>>16>0){b[k>>1]=j;o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+r;c[i+1310736+(o+-1<<2)>>2]=r;break}n=b[a+2>>1]|0;o=n<<16>>16;j=b[a+-2>>1]|0;m=j<<16>>16;a=j<<16>>16>0;if(n<<16>>16<=0){if(a){b[k>>1]=j;j=m*7|0;a=i+1310736+(j+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(j+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+p;a=i+1310736+(j+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+r;a=i+1310736+(j+-3<<2)|0;if((c[a>>2]|0)<(p|0))c[a>>2]=p;c[i+1310736+(j+-1<<2)>>2]=r;break}j=b[k+-2>>1]|0;if(j<<16>>16>0){b[k>>1]=j;j=(j<<16>>16)*7|0;o=i+1310736+(j+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(j+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+p;o=i+1310736+(j+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+r;j=i+1310736+(j+-3<<2)|0;if((c[j>>2]|0)>=(p|0))break;c[j>>2]=p;break}else{j=f+1|0;if((f|0)>32767){j=54;break a}b[k>>1]=j;c[i+1179664+(f<<2)>>2]=j<<16>>16;f=f*7|0;c[i+1310736+(f<<2)>>2]=1;c[i+1310736+(f+1<<2)>>2]=p;c[i+1310736+(f+2<<2)>>2]=r;c[i+1310736+(f+3<<2)>>2]=p;c[i+1310736+(f+4<<2)>>2]=p;c[i+1310736+(f+5<<2)>>2]=r;c[i+1310736+(f+6<<2)>>2]=r;f=j;break}}if(a){j=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+(m+-1<<2)>>2]|0;b:do if((j|0)<=(n|0)){b[k>>1]=j;if((j|0)<(n|0)){a=l;m=0;while(1){if((m|0)>=(f|0))break b;if((c[a>>2]|0)==(n|0))c[a>>2]=j;a=a+4|0;m=m+1|0}}}else{b[k>>1]=n;a=l;m=0;while(1){if((m|0)>=(f|0)){j=n;break b}if((c[a>>2]|0)==(j|0))c[a>>2]=n;a=a+4|0;m=m+1|0}}while(0);o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+r;c[i+1310736+(o+-1<<2)>>2]=r;break}a=b[k+-2>>1]|0;if(a<<16>>16<=0){b[k>>1]=n;j=o*7|0;a=i+1310736+(j+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(j+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+p;a=i+1310736+(j+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+r;a=i+1310736+(j+-4<<2)|0;if((c[a>>2]|0)>(p|0))c[a>>2]=p;c[i+1310736+(j+-1<<2)>>2]=r;break}j=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+((a<<16>>16)+-1<<2)>>2]|0;c:do if((j|0)<=(n|0)){b[k>>1]=j;if((j|0)<(n|0)){a=l;m=0;while(1){if((m|0)>=(f|0))break c;if((c[a>>2]|0)==(n|0))c[a>>2]=j;a=a+4|0;m=m+1|0}}}else{b[k>>1]=n;a=l;m=0;while(1){if((m|0)>=(f|0)){j=n;break c}if((c[a>>2]|0)==(j|0))c[a>>2]=n;a=a+4|0;m=m+1|0}}while(0);o=(j<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;o=i+1310736+(o+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+r}else b[k>>1]=0;while(0);q=q+2|0;p=p+1|0;k=k+2|0}j=q+e+4|0;r=r+1|0;o=f;k=k+4|0}d:do if((j|0)==54){Ue(0,3,19708,v);f=-1}else if((j|0)==59){m=i+12|0;f=1;a=1;while(1){if((a|0)>(o|0))break;j=c[l>>2]|0;if((j|0)==(a|0))k=f+1|0;else{k=f;f=c[i+1179664+(j+-1<<2)>>2]|0}c[l>>2]=f;f=k;a=a+1|0;l=l+4|0}n=i+8|0;j=f+-1|0;c[n>>2]=j;if(!j)f=0;else{aP(m|0,0,j<<2|0)|0;aP(i+655376|0,0,j<<4|0)|0;f=0;while(1){if((f|0)>=(j|0))break;v=f<<2;c[i+131084+(v<<2)>>2]=x;c[i+131084+((v|1)<<2)>>2]=0;c[i+131084+((v|2)<<2)>>2]=w;c[i+131084+((v|3)<<2)>>2]=0;f=f+1|0}a=0;while(1){if((a|0)>=(o|0))break;k=(c[i+1179664+(a<<2)>>2]|0)+-1|0;l=a*7|0;f=i+12+(k<<2)|0;c[f>>2]=(c[f>>2]|0)+(c[i+1310736+(l<<2)>>2]|0);f=k<<1;j=i+655376+(f<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(l+1<<2)>>2]|0);f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]+ +(c[i+1310736+(l+2<<2)>>2]|0);k=k<<2;f=i+131084+(k<<2)|0;j=c[i+1310736+(l+3<<2)>>2]|0;if((c[f>>2]|0)>(j|0))c[f>>2]=j;f=i+131084+((k|1)<<2)|0;j=c[i+1310736+(l+4<<2)>>2]|0;if((c[f>>2]|0)<(j|0))c[f>>2]=j;f=i+131084+((k|2)<<2)|0;j=c[i+1310736+(l+5<<2)>>2]|0;if((c[f>>2]|0)>(j|0))c[f>>2]=j;j=i+131084+((k|3)<<2)|0;f=c[i+1310736+(l+6<<2)>>2]|0;if((c[j>>2]|0)<(f|0))c[j>>2]=f;a=a+1|0}j=c[n>>2]|0;f=0;while(1){if((f|0)>=(j|0)){f=0;break d}z=+(c[i+12+(f<<2)>>2]|0);x=f<<1;w=i+655376+(x<<3)|0;g[w>>3]=+g[w>>3]/z;x=i+655376+((x|1)<<3)|0;g[x>>3]=+g[x>>3]/z;f=f+1|0}}}while(0);zb=y;return f|0}function hc(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=zb;zb=zb+16|0;w=x;n=c[i>>2]|0;v=f+-1|0;j=n;k=n+((B(v,e)|0)<<1)|0;l=0;while(1){if((l|0)>=(e|0))break;b[k>>1]=0;b[j>>1]=0;j=j+2|0;k=k+2|0;l=l+1|0}u=e+-1|0;j=n;k=n+(u<<1)|0;l=0;while(1){if((l|0)>=(f|0))break;b[k>>1]=0;b[j>>1]=0;j=j+(e<<1)|0;k=k+(e<<1)|0;l=l+1|0}m=i+1179664|0;l=e+1|0;t=0-e|0;k=a+l|0;s=1;p=0;l=n+(l<<1)|0;a:while(1){if((s|0)>=(v|0)){k=59;break}r=k;j=p;q=1;while(1){if((q|0)>=(u|0))break;do if((d[r>>0]|0|0)>(h|0)){a=l+(t<<1)|0;k=b[a>>1]|0;if(k<<16>>16>0){b[l>>1]=k;p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=i+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;c[i+1310736+(p+-1<<2)>>2]=s;break}o=b[a+2>>1]|0;p=o<<16>>16;k=b[a+-2>>1]|0;n=k<<16>>16;a=k<<16>>16>0;if(o<<16>>16<=0){if(a){b[l>>1]=k;k=n*7|0;a=i+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+q;a=i+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=i+1310736+(k+-3<<2)|0;if((c[a>>2]|0)<(q|0))c[a>>2]=q;c[i+1310736+(k+-1<<2)>>2]=s;break}k=b[l+-2>>1]|0;if(k<<16>>16>0){b[l>>1]=k;k=(k<<16>>16)*7|0;p=i+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=i+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=i+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+s;k=i+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0))break;c[k>>2]=q;break}else{k=j+1|0;if((j|0)>32767){k=54;break a}b[l>>1]=k;c[i+1179664+(j<<2)>>2]=k<<16>>16;j=j*7|0;c[i+1310736+(j<<2)>>2]=1;c[i+1310736+(j+1<<2)>>2]=q;c[i+1310736+(j+2<<2)>>2]=s;c[i+1310736+(j+3<<2)>>2]=q;c[i+1310736+(j+4<<2)>>2]=q;c[i+1310736+(j+5<<2)>>2]=s;c[i+1310736+(j+6<<2)>>2]=s;j=k;break}}if(a){k=c[i+1179664+(p+-1<<2)>>2]|0;o=c[i+1179664+(n+-1<<2)>>2]|0;b:do if((k|0)<=(o|0)){b[l>>1]=k;if((k|0)<(o|0)){a=m;n=0;while(1){if((n|0)>=(j|0))break b;if((c[a>>2]|0)==(o|0))c[a>>2]=k;a=a+4|0;n=n+1|0}}}else{b[l>>1]=o;a=m;n=0;while(1){if((n|0)>=(j|0)){k=o;break b}if((c[a>>2]|0)==(k|0))c[a>>2]=o;a=a+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=i+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;c[i+1310736+(p+-1<<2)>>2]=s;break}k=b[l+-2>>1]|0;if(k<<16>>16<=0){b[l>>1]=o;k=p*7|0;a=i+1310736+(k+-7<<2)|0;c[a>>2]=(c[a>>2]|0)+1;a=i+1310736+(k+-6<<2)|0;c[a>>2]=(c[a>>2]|0)+q;a=i+1310736+(k+-5<<2)|0;c[a>>2]=(c[a>>2]|0)+s;a=i+1310736+(k+-4<<2)|0;if((c[a>>2]|0)>(q|0))c[a>>2]=q;c[i+1310736+(k+-1<<2)>>2]=s;break}o=c[i+1179664+(p+-1<<2)>>2]|0;k=c[i+1179664+((k<<16>>16)+-1<<2)>>2]|0;c:do if((o|0)<=(k|0)){b[l>>1]=o;if((o|0)<(k|0)){a=m;n=0;while(1){if((n|0)>=(j|0)){k=o;break c}if((c[a>>2]|0)==(k|0))c[a>>2]=o;a=a+4|0;n=n+1|0}}else k=o}else{b[l>>1]=k;a=m;n=0;while(1){if((n|0)>=(j|0))break c;if((c[a>>2]|0)==(o|0))c[a>>2]=k;a=a+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=i+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;p=i+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+s}else b[l>>1]=0;while(0);r=r+1|0;q=q+1|0;l=l+2|0}k=r+2|0;s=s+1|0;p=j;l=l+4|0}d:do if((k|0)==54){Ue(0,3,19708,w);j=-1}else if((k|0)==59){n=i+12|0;j=1;a=1;while(1){if((a|0)>(p|0))break;k=c[m>>2]|0;if((k|0)==(a|0))l=j+1|0;else{l=j;j=c[i+1179664+(k+-1<<2)>>2]|0}c[m>>2]=j;j=l;a=a+1|0;m=m+4|0}o=i+8|0;k=j+-1|0;c[o>>2]=k;if(!k)j=0;else{aP(n|0,0,k<<2|0)|0;aP(i+655376|0,0,k<<4|0)|0;j=0;while(1){if((j|0)>=(k|0))break;w=j<<2;c[i+131084+(w<<2)>>2]=e;c[i+131084+((w|1)<<2)>>2]=0;c[i+131084+((w|2)<<2)>>2]=f;c[i+131084+((w|3)<<2)>>2]=0;j=j+1|0}a=0;while(1){if((a|0)>=(p|0))break;l=(c[i+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;j=i+12+(l<<2)|0;c[j>>2]=(c[j>>2]|0)+(c[i+1310736+(m<<2)>>2]|0);j=l<<1;k=i+655376+(j<<3)|0;g[k>>3]=+g[k>>3]+ +(c[i+1310736+(m+1<<2)>>2]|0);j=i+655376+((j|1)<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(m+2<<2)>>2]|0);l=l<<2;j=i+131084+(l<<2)|0;k=c[i+1310736+(m+3<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;j=i+131084+((l|1)<<2)|0;k=c[i+1310736+(m+4<<2)>>2]|0;if((c[j>>2]|0)<(k|0))c[j>>2]=k;j=i+131084+((l|2)<<2)|0;k=c[i+1310736+(m+5<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;k=i+131084+((l|3)<<2)|0;j=c[i+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(j|0))c[k>>2]=j;a=a+1|0}k=c[o>>2]|0;j=0;while(1){if((j|0)>=(k|0)){j=0;break d}y=+(c[i+12+(j<<2)>>2]|0);f=j<<1;e=i+655376+(f<<3)|0;g[e>>3]=+g[e>>3]/y;f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]/y;j=j+1|0}}}while(0);zb=x;return j|0}function ic(a,e,f,h,i){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0.0;x=zb;zb=zb+16|0;w=x;n=c[i>>2]|0;v=f+-1|0;j=n;k=0;l=n+((B(v,e)|0)<<1)|0;while(1){if((k|0)>=(e|0))break;b[l>>1]=0;b[j>>1]=0;j=j+2|0;k=k+1|0;l=l+2|0}u=e+-1|0;j=n;k=0;l=n+(u<<1)|0;while(1){if((k|0)>=(f|0))break;b[l>>1]=0;b[j>>1]=0;j=j+(e<<1)|0;k=k+1|0;l=l+(e<<1)|0}m=i+1179664|0;l=e+1|0;t=0-e|0;a=a+l|0;k=h+l|0;s=1;o=0;l=n+(l<<1)|0;a:while(1){if((s|0)>=(v|0)){k=59;break}q=k;j=o;p=1;r=l;while(1){if((p|0)>=(u|0))break;do if((d[a>>0]|0)>(d[q>>0]|0)){l=r+(t<<1)|0;k=b[l>>1]|0;if(k<<16>>16>0){b[r>>1]=k;o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+s;c[i+1310736+(o+-1<<2)>>2]=s;break}n=b[l+2>>1]|0;o=n<<16>>16;k=b[l+-2>>1]|0;h=k<<16>>16;l=k<<16>>16>0;if(n<<16>>16<=0){if(l){b[r>>1]=k;k=h*7|0;l=i+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=i+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+p;l=i+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=i+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(p|0))c[l>>2]=p;c[i+1310736+(k+-1<<2)>>2]=s;break}k=b[r+-2>>1]|0;if(k<<16>>16>0){b[r>>1]=k;k=(k<<16>>16)*7|0;o=i+1310736+(k+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=i+1310736+(k+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+p;o=i+1310736+(k+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s;k=i+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(p|0))break;c[k>>2]=p;break}else{k=j+1|0;if((j|0)>32767){k=54;break a}b[r>>1]=k;c[i+1179664+(j<<2)>>2]=k<<16>>16;j=j*7|0;c[i+1310736+(j<<2)>>2]=1;c[i+1310736+(j+1<<2)>>2]=p;c[i+1310736+(j+2<<2)>>2]=s;c[i+1310736+(j+3<<2)>>2]=p;c[i+1310736+(j+4<<2)>>2]=p;c[i+1310736+(j+5<<2)>>2]=s;c[i+1310736+(j+6<<2)>>2]=s;j=k;break}}if(l){k=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+(h+-1<<2)>>2]|0;b:do if((k|0)<=(n|0)){b[r>>1]=k;if((k|0)<(n|0)){l=m;h=0;while(1){if((h|0)>=(j|0))break b;if((c[l>>2]|0)==(n|0))c[l>>2]=k;l=l+4|0;h=h+1|0}}}else{b[r>>1]=n;l=m;h=0;while(1){if((h|0)>=(j|0)){k=n;break b}if((c[l>>2]|0)==(k|0))c[l>>2]=n;l=l+4|0;h=h+1|0}}while(0);o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;n=i+1310736+(o+-5<<2)|0;c[n>>2]=(c[n>>2]|0)+s;c[i+1310736+(o+-1<<2)>>2]=s;break}l=b[r+-2>>1]|0;if(l<<16>>16<=0){b[r>>1]=n;k=o*7|0;l=i+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=i+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+p;l=i+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+s;l=i+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(p|0))c[l>>2]=p;c[i+1310736+(k+-1<<2)>>2]=s;break}k=c[i+1179664+(o+-1<<2)>>2]|0;n=c[i+1179664+((l<<16>>16)+-1<<2)>>2]|0;c:do if((k|0)<=(n|0)){b[r>>1]=k;if((k|0)<(n|0)){l=m;h=0;while(1){if((h|0)>=(j|0))break c;if((c[l>>2]|0)==(n|0))c[l>>2]=k;l=l+4|0;h=h+1|0}}}else{b[r>>1]=n;l=m;h=0;while(1){if((h|0)>=(j|0)){k=n;break c}if((c[l>>2]|0)==(k|0))c[l>>2]=n;l=l+4|0;h=h+1|0}}while(0);o=(k<<16>>16)*7|0;n=i+1310736+(o+-7<<2)|0;c[n>>2]=(c[n>>2]|0)+1;n=i+1310736+(o+-6<<2)|0;c[n>>2]=(c[n>>2]|0)+p;o=i+1310736+(o+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+s}else b[r>>1]=0;while(0);a=a+1|0;q=q+1|0;p=p+1|0;r=r+2|0}a=a+2|0;k=q+2|0;s=s+1|0;o=j;l=r+4|0}d:do if((k|0)==54){Ue(0,3,19708,w);j=-1}else if((k|0)==59){h=i+12|0;j=1;a=1;while(1){if((a|0)>(o|0))break;k=c[m>>2]|0;if((k|0)==(a|0))l=j+1|0;else{l=j;j=c[i+1179664+(k+-1<<2)>>2]|0}c[m>>2]=j;j=l;a=a+1|0;m=m+4|0}n=i+8|0;k=j+-1|0;c[n>>2]=k;if(!k)j=0;else{aP(h|0,0,k<<2|0)|0;aP(i+655376|0,0,k<<4|0)|0;j=0;while(1){if((j|0)>=(k|0))break;w=j<<2;c[i+131084+(w<<2)>>2]=e;c[i+131084+((w|1)<<2)>>2]=0;c[i+131084+((w|2)<<2)>>2]=f;c[i+131084+((w|3)<<2)>>2]=0;j=j+1|0}a=0;while(1){if((a|0)>=(o|0))break;l=(c[i+1179664+(a<<2)>>2]|0)+-1|0;m=a*7|0;j=i+12+(l<<2)|0;c[j>>2]=(c[j>>2]|0)+(c[i+1310736+(m<<2)>>2]|0);j=l<<1;k=i+655376+(j<<3)|0;g[k>>3]=+g[k>>3]+ +(c[i+1310736+(m+1<<2)>>2]|0);j=i+655376+((j|1)<<3)|0;g[j>>3]=+g[j>>3]+ +(c[i+1310736+(m+2<<2)>>2]|0);l=l<<2;j=i+131084+(l<<2)|0;k=c[i+1310736+(m+3<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;j=i+131084+((l|1)<<2)|0;k=c[i+1310736+(m+4<<2)>>2]|0;if((c[j>>2]|0)<(k|0))c[j>>2]=k;j=i+131084+((l|2)<<2)|0;k=c[i+1310736+(m+5<<2)>>2]|0;if((c[j>>2]|0)>(k|0))c[j>>2]=k;k=i+131084+((l|3)<<2)|0;j=c[i+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(j|0))c[k>>2]=j;a=a+1|0}k=c[n>>2]|0;j=0;while(1){if((j|0)>=(k|0)){j=0;break d}y=+(c[i+12+(j<<2)>>2]|0);f=j<<1;e=i+655376+(f<<3)|0;g[e>>3]=+g[e>>3]/y;f=i+655376+((f|1)<<3)|0;g[f>>3]=+g[f>>3]/y;j=j+1|0}}}while(0);zb=x;return j|0}function jc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0.0;A=zb;zb=zb+16|0;x=A;z=(f|0)/2|0;y=(h|0)/2|0;n=c[j>>2]|0;w=y+-1|0;h=n;k=n+((B(w,z)|0)<<1)|0;l=0;while(1){if((l|0)>=(z|0))break;b[k>>1]=0;b[h>>1]=0;h=h+2|0;k=k+2|0;l=l+1|0}v=z+-1|0;h=n;k=n+(v<<1)|0;l=0;while(1){if((l|0)>=(y|0))break;b[k>>1]=0;b[h>>1]=0;h=h+(z<<1)|0;k=k+(z<<1)|0;l=l+1|0}m=j+1179664|0;s=z+1|0;u=0-z|0;k=e+((f<<1)+2)|0;t=1;p=0;l=(c[j+4>>2]|0)+s|0;e=n+(s<<1)|0;a:while(1){if((t|0)>=(w|0)){k=59;break}r=k;h=p;s=l;q=1;while(1){if((q|0)>=(v|0))break;do if((d[r>>0]|0|0)>(i|0)){b[e>>1]=0;a[s>>0]=0}else{a[s>>0]=-1;l=e+(u<<1)|0;k=b[l>>1]|0;if(k<<16>>16>0){b[e>>1]=k;p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=j+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+t;c[j+1310736+(p+-1<<2)>>2]=t;break}o=b[l+2>>1]|0;p=o<<16>>16;k=b[l+-2>>1]|0;n=k<<16>>16;l=k<<16>>16>0;if(o<<16>>16<=0){if(l){b[e>>1]=k;k=n*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+q;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+t;l=j+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(q|0))c[l>>2]=q;c[j+1310736+(k+-1<<2)>>2]=t;break}k=b[e+-2>>1]|0;if(k<<16>>16>0){b[e>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+t;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0))break;c[k>>2]=q;break}else{k=h+1|0;if((h|0)>32767){k=54;break a}b[e>>1]=k;c[j+1179664+(h<<2)>>2]=k<<16>>16;h=h*7|0;c[j+1310736+(h<<2)>>2]=1;c[j+1310736+(h+1<<2)>>2]=q;c[j+1310736+(h+2<<2)>>2]=t;c[j+1310736+(h+3<<2)>>2]=q;c[j+1310736+(h+4<<2)>>2]=q;c[j+1310736+(h+5<<2)>>2]=t;c[j+1310736+(h+6<<2)>>2]=t;h=k;break}}if(l){k=c[j+1179664+(p+-1<<2)>>2]|0;o=c[j+1179664+(n+-1<<2)>>2]|0;b:do if((k|0)<=(o|0)){b[e>>1]=k;if((k|0)<(o|0)){l=m;n=0;while(1){if((n|0)>=(h|0))break b;if((c[l>>2]|0)==(o|0))c[l>>2]=k;l=l+4|0;n=n+1|0}}}else{b[e>>1]=o;l=m;n=0;while(1){if((n|0)>=(h|0)){k=o;break b}if((c[l>>2]|0)==(k|0))c[l>>2]=o;l=l+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=j+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+t;c[j+1310736+(p+-1<<2)>>2]=t;break}l=b[e+-2>>1]|0;if(l<<16>>16<=0){b[e>>1]=o;k=p*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+q;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+t;l=j+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(q|0))c[l>>2]=q;c[j+1310736+(k+-1<<2)>>2]=t;break}k=c[j+1179664+(p+-1<<2)>>2]|0;o=c[j+1179664+((l<<16>>16)+-1<<2)>>2]|0;c:do if((k|0)<=(o|0)){b[e>>1]=k;if((k|0)<(o|0)){l=m;n=0;while(1){if((n|0)>=(h|0))break c;if((c[l>>2]|0)==(o|0))c[l>>2]=k;l=l+4|0;n=n+1|0}}}else{b[e>>1]=o;l=m;n=0;while(1){if((n|0)>=(h|0)){k=o;break c}if((c[l>>2]|0)==(k|0))c[l>>2]=o;l=l+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;p=j+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+t}while(0);r=r+2|0;s=s+1|0;q=q+1|0;e=e+2|0}k=r+f+4|0;t=t+1|0;p=h;l=s+2|0;e=e+4|0}d:do if((k|0)==54){Ue(0,3,19708,x);h=-1}else if((k|0)==59){n=j+12|0;h=1;e=1;while(1){if((e|0)>(p|0))break;k=c[m>>2]|0;if((k|0)==(e|0))l=h+1|0;else{l=h;h=c[j+1179664+(k+-1<<2)>>2]|0}c[m>>2]=h;h=l;e=e+1|0;m=m+4|0}o=j+8|0;k=h+-1|0;c[o>>2]=k;if(!k)h=0;else{aP(n|0,0,k<<2|0)|0;aP(j+655376|0,0,k<<4|0)|0;h=0;while(1){if((h|0)>=(k|0))break;x=h<<2;c[j+131084+(x<<2)>>2]=z;c[j+131084+((x|1)<<2)>>2]=0;c[j+131084+((x|2)<<2)>>2]=y;c[j+131084+((x|3)<<2)>>2]=0;h=h+1|0}e=0;while(1){if((e|0)>=(p|0))break;l=(c[j+1179664+(e<<2)>>2]|0)+-1|0;m=e*7|0;h=j+12+(l<<2)|0;c[h>>2]=(c[h>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);h=l<<1;k=j+655376+(h<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;h=j+131084+(l<<2)|0;k=c[j+1310736+(m+3<<2)>>2]|0;if((c[h>>2]|0)>(k|0))c[h>>2]=k;h=j+131084+((l|1)<<2)|0;k=c[j+1310736+(m+4<<2)>>2]|0;if((c[h>>2]|0)<(k|0))c[h>>2]=k;h=j+131084+((l|2)<<2)|0;k=c[j+1310736+(m+5<<2)>>2]|0;if((c[h>>2]|0)>(k|0))c[h>>2]=k;k=j+131084+((l|3)<<2)|0;h=c[j+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(h|0))c[k>>2]=h;e=e+1|0}k=c[o>>2]|0;h=0;while(1){if((h|0)>=(k|0)){h=0;break d}C=+(c[j+12+(h<<2)>>2]|0);z=h<<1;y=j+655376+(z<<3)|0;g[y>>3]=+g[y>>3]/C;z=j+655376+((z|1)<<3)|0;g[z>>3]=+g[z>>3]/C;h=h+1|0}}}while(0);zb=A;return h|0}function kc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;y=z;o=c[j>>2]|0;x=h+-1|0;k=o;l=o+((B(x,f)|0)<<1)|0;m=0;while(1){if((m|0)>=(f|0))break;b[l>>1]=0;b[k>>1]=0;k=k+2|0;l=l+2|0;m=m+1|0}w=f+-1|0;k=o;l=o+(w<<1)|0;m=0;while(1){if((m|0)>=(h|0))break;b[l>>1]=0;b[k>>1]=0;k=k+(f<<1)|0;l=l+(f<<1)|0;m=m+1|0}n=j+1179664|0;t=f+1|0;v=0-f|0;l=e+t|0;u=1;q=0;m=(c[j+4>>2]|0)+t|0;e=o+(t<<1)|0;a:while(1){if((u|0)>=(x|0)){l=59;break}s=l;k=q;t=m;r=1;while(1){if((r|0)>=(w|0))break;do if((d[s>>0]|0|0)>(i|0)){b[e>>1]=0;a[t>>0]=0}else{a[t>>0]=-1;m=e+(v<<1)|0;l=b[m>>1]|0;if(l<<16>>16>0){b[e>>1]=l;q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;p=j+1310736+(q+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;c[j+1310736+(q+-1<<2)>>2]=u;break}p=b[m+2>>1]|0;q=p<<16>>16;l=b[m+-2>>1]|0;o=l<<16>>16;m=l<<16>>16>0;if(p<<16>>16<=0){if(m){b[e>>1]=l;l=o*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(l+-1<<2)>>2]=u;break}l=b[e+-2>>1]|0;if(l<<16>>16>0){b[e>>1]=l;l=(l<<16>>16)*7|0;q=j+1310736+(l+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=j+1310736+(l+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+r;q=j+1310736+(l+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+u;l=j+1310736+(l+-3<<2)|0;if((c[l>>2]|0)>=(r|0))break;c[l>>2]=r;break}else{l=k+1|0;if((k|0)>32767){l=54;break a}b[e>>1]=l;c[j+1179664+(k<<2)>>2]=l<<16>>16;k=k*7|0;c[j+1310736+(k<<2)>>2]=1;c[j+1310736+(k+1<<2)>>2]=r;c[j+1310736+(k+2<<2)>>2]=u;c[j+1310736+(k+3<<2)>>2]=r;c[j+1310736+(k+4<<2)>>2]=r;c[j+1310736+(k+5<<2)>>2]=u;c[j+1310736+(k+6<<2)>>2]=u;k=l;break}}if(m){l=c[j+1179664+(q+-1<<2)>>2]|0;p=c[j+1179664+(o+-1<<2)>>2]|0;b:do if((l|0)<=(p|0)){b[e>>1]=l;if((l|0)<(p|0)){m=n;o=0;while(1){if((o|0)>=(k|0))break b;if((c[m>>2]|0)==(p|0))c[m>>2]=l;m=m+4|0;o=o+1|0}}}else{b[e>>1]=p;m=n;o=0;while(1){if((o|0)>=(k|0)){l=p;break b}if((c[m>>2]|0)==(l|0))c[m>>2]=p;m=m+4|0;o=o+1|0}}while(0);q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;p=j+1310736+(q+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;c[j+1310736+(q+-1<<2)>>2]=u;break}m=b[e+-2>>1]|0;if(m<<16>>16<=0){b[e>>1]=p;l=q*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(l+-1<<2)>>2]=u;break}l=c[j+1179664+(q+-1<<2)>>2]|0;p=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;c:do if((l|0)<=(p|0)){b[e>>1]=l;if((l|0)<(p|0)){m=n;o=0;while(1){if((o|0)>=(k|0))break c;if((c[m>>2]|0)==(p|0))c[m>>2]=l;m=m+4|0;o=o+1|0}}}else{b[e>>1]=p;m=n;o=0;while(1){if((o|0)>=(k|0)){l=p;break c}if((c[m>>2]|0)==(l|0))c[m>>2]=p;m=m+4|0;o=o+1|0}}while(0);q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;q=j+1310736+(q+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+u}while(0);s=s+1|0;t=t+1|0;r=r+1|0;e=e+2|0}l=s+2|0;u=u+1|0;q=k;m=t+2|0;e=e+4|0}d:do if((l|0)==54){Ue(0,3,19708,y);k=-1}else if((l|0)==59){o=j+12|0;k=1;e=1;while(1){if((e|0)>(q|0))break;l=c[n>>2]|0;if((l|0)==(e|0))m=k+1|0;else{m=k;k=c[j+1179664+(l+-1<<2)>>2]|0}c[n>>2]=k;k=m;e=e+1|0;n=n+4|0}p=j+8|0;l=k+-1|0;c[p>>2]=l;if(!l)k=0;else{aP(o|0,0,l<<2|0)|0;aP(j+655376|0,0,l<<4|0)|0;k=0;while(1){if((k|0)>=(l|0))break;y=k<<2;c[j+131084+(y<<2)>>2]=f;c[j+131084+((y|1)<<2)>>2]=0;c[j+131084+((y|2)<<2)>>2]=h;c[j+131084+((y|3)<<2)>>2]=0;k=k+1|0}e=0;while(1){if((e|0)>=(q|0))break;m=(c[j+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(n<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;g[l>>3]=+g[l>>3]+ +(c[j+1310736+(n+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(n+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(n+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(n+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(n+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(n+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;e=e+1|0}l=c[p>>2]|0;k=0;while(1){if((k|0)>=(l|0)){k=0;break d}A=+(c[j+12+(k<<2)>>2]|0);h=k<<1;f=j+655376+(h<<3)|0;g[f>>3]=+g[f>>3]/A;h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]/A;k=k+1|0}}}while(0);zb=z;return k|0}function lc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;y=z;p=c[j>>2]|0;x=h+-1|0;k=p;l=0;m=p+((B(x,f)|0)<<1)|0;while(1){if((l|0)>=(f|0))break;b[m>>1]=0;b[k>>1]=0;k=k+2|0;l=l+1|0;m=m+2|0}w=f+-1|0;k=p;l=0;m=p+(w<<1)|0;while(1){if((l|0)>=(h|0))break;b[m>>1]=0;b[k>>1]=0;k=k+(f<<1)|0;l=l+1|0;m=m+(f<<1)|0}n=j+1179664|0;t=f+1|0;v=0-f|0;o=e+t|0;l=i+t|0;u=1;q=0;m=(c[j+4>>2]|0)+t|0;e=p+(t<<1)|0;a:while(1){if((u|0)>=(x|0)){l=59;break}r=l;k=q;s=m;q=1;t=e;while(1){if((q|0)>=(w|0))break;do if((d[o>>0]|0)>(d[r>>0]|0)){b[t>>1]=0;a[s>>0]=0}else{a[s>>0]=-1;m=t+(v<<1)|0;l=b[m>>1]|0;if(l<<16>>16>0){b[t>>1]=l;p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;i=j+1310736+(p+-5<<2)|0;c[i>>2]=(c[i>>2]|0)+u;c[j+1310736+(p+-1<<2)>>2]=u;break}i=b[m+2>>1]|0;p=i<<16>>16;l=b[m+-2>>1]|0;e=l<<16>>16;m=l<<16>>16>0;if(i<<16>>16<=0){if(m){b[t>>1]=l;l=e*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+q;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-3<<2)|0;if((c[m>>2]|0)<(q|0))c[m>>2]=q;c[j+1310736+(l+-1<<2)>>2]=u;break}l=b[t+-2>>1]|0;if(l<<16>>16>0){b[t>>1]=l;l=(l<<16>>16)*7|0;p=j+1310736+(l+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(l+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=j+1310736+(l+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;l=j+1310736+(l+-3<<2)|0;if((c[l>>2]|0)>=(q|0))break;c[l>>2]=q;break}else{l=k+1|0;if((k|0)>32767){l=54;break a}b[t>>1]=l;c[j+1179664+(k<<2)>>2]=l<<16>>16;k=k*7|0;c[j+1310736+(k<<2)>>2]=1;c[j+1310736+(k+1<<2)>>2]=q;c[j+1310736+(k+2<<2)>>2]=u;c[j+1310736+(k+3<<2)>>2]=q;c[j+1310736+(k+4<<2)>>2]=q;c[j+1310736+(k+5<<2)>>2]=u;c[j+1310736+(k+6<<2)>>2]=u;k=l;break}}if(m){l=c[j+1179664+(p+-1<<2)>>2]|0;i=c[j+1179664+(e+-1<<2)>>2]|0;b:do if((l|0)<=(i|0)){b[t>>1]=l;if((l|0)<(i|0)){m=n;e=0;while(1){if((e|0)>=(k|0))break b;if((c[m>>2]|0)==(i|0))c[m>>2]=l;m=m+4|0;e=e+1|0}}}else{b[t>>1]=i;m=n;e=0;while(1){if((e|0)>=(k|0)){l=i;break b}if((c[m>>2]|0)==(l|0))c[m>>2]=i;m=m+4|0;e=e+1|0}}while(0);p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;i=j+1310736+(p+-5<<2)|0;c[i>>2]=(c[i>>2]|0)+u;c[j+1310736+(p+-1<<2)>>2]=u;break}m=b[t+-2>>1]|0;if(m<<16>>16<=0){b[t>>1]=i;l=p*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+q;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-4<<2)|0;if((c[m>>2]|0)>(q|0))c[m>>2]=q;c[j+1310736+(l+-1<<2)>>2]=u;break}l=c[j+1179664+(p+-1<<2)>>2]|0;i=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;c:do if((l|0)<=(i|0)){b[t>>1]=l;if((l|0)<(i|0)){m=n;e=0;while(1){if((e|0)>=(k|0))break c;if((c[m>>2]|0)==(i|0))c[m>>2]=l;m=m+4|0;e=e+1|0}}}else{b[t>>1]=i;m=n;e=0;while(1){if((e|0)>=(k|0)){l=i;break c}if((c[m>>2]|0)==(l|0))c[m>>2]=i;m=m+4|0;e=e+1|0}}while(0);p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;p=j+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u}while(0);o=o+1|0;r=r+1|0;s=s+1|0;q=q+1|0;t=t+2|0}o=o+2|0;l=r+2|0;u=u+1|0;q=k;m=s+2|0;e=t+4|0}d:do if((l|0)==54){Ue(0,3,19708,y);k=-1}else if((l|0)==59){i=j+12|0;k=1;e=1;while(1){if((e|0)>(q|0))break;l=c[n>>2]|0;if((l|0)==(e|0))m=k+1|0;else{m=k;k=c[j+1179664+(l+-1<<2)>>2]|0}c[n>>2]=k;k=m;e=e+1|0;n=n+4|0}o=j+8|0;l=k+-1|0;c[o>>2]=l;if(!l)k=0;else{aP(i|0,0,l<<2|0)|0;aP(j+655376|0,0,l<<4|0)|0;k=0;while(1){if((k|0)>=(l|0))break;y=k<<2;c[j+131084+(y<<2)>>2]=f;c[j+131084+((y|1)<<2)>>2]=0;c[j+131084+((y|2)<<2)>>2]=h;c[j+131084+((y|3)<<2)>>2]=0;k=k+1|0}e=0;while(1){if((e|0)>=(q|0))break;m=(c[j+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(n<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;g[l>>3]=+g[l>>3]+ +(c[j+1310736+(n+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(n+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(n+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(n+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(n+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(n+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;e=e+1|0}l=c[o>>2]|0;k=0;while(1){if((k|0)>=(l|0)){k=0;break d}A=+(c[j+12+(k<<2)>>2]|0);h=k<<1;f=j+655376+(h<<3)|0;g[f>>3]=+g[f>>3]/A;h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]/A;k=k+1|0}}}while(0);zb=z;return k|0}function mc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0.0;A=zb;zb=zb+16|0;x=A;z=(f|0)/2|0;y=(h|0)/2|0;n=c[j>>2]|0;w=y+-1|0;h=n;k=n+((B(w,z)|0)<<1)|0;l=0;while(1){if((l|0)>=(z|0))break;b[k>>1]=0;b[h>>1]=0;h=h+2|0;k=k+2|0;l=l+1|0}v=z+-1|0;h=n;k=n+(v<<1)|0;l=0;while(1){if((l|0)>=(y|0))break;b[k>>1]=0;b[h>>1]=0;h=h+(z<<1)|0;k=k+(z<<1)|0;l=l+1|0}m=j+1179664|0;s=z+1|0;u=0-z|0;k=e+((f<<1)+2)|0;t=1;p=0;l=(c[j+4>>2]|0)+s|0;e=n+(s<<1)|0;a:while(1){if((t|0)>=(w|0)){k=59;break}r=k;h=p;s=l;q=1;while(1){if((q|0)>=(v|0))break;do if((d[r>>0]|0|0)>(i|0)){a[s>>0]=-1;l=e+(u<<1)|0;k=b[l>>1]|0;if(k<<16>>16>0){b[e>>1]=k;p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=j+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+t;c[j+1310736+(p+-1<<2)>>2]=t;break}o=b[l+2>>1]|0;p=o<<16>>16;k=b[l+-2>>1]|0;n=k<<16>>16;l=k<<16>>16>0;if(o<<16>>16<=0){if(l){b[e>>1]=k;k=n*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+q;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+t;l=j+1310736+(k+-3<<2)|0;if((c[l>>2]|0)<(q|0))c[l>>2]=q;c[j+1310736+(k+-1<<2)>>2]=t;break}k=b[e+-2>>1]|0;if(k<<16>>16>0){b[e>>1]=k;k=(k<<16>>16)*7|0;p=j+1310736+(k+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(k+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=j+1310736+(k+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+t;k=j+1310736+(k+-3<<2)|0;if((c[k>>2]|0)>=(q|0))break;c[k>>2]=q;break}else{k=h+1|0;if((h|0)>32767){k=54;break a}b[e>>1]=k;c[j+1179664+(h<<2)>>2]=k<<16>>16;h=h*7|0;c[j+1310736+(h<<2)>>2]=1;c[j+1310736+(h+1<<2)>>2]=q;c[j+1310736+(h+2<<2)>>2]=t;c[j+1310736+(h+3<<2)>>2]=q;c[j+1310736+(h+4<<2)>>2]=q;c[j+1310736+(h+5<<2)>>2]=t;c[j+1310736+(h+6<<2)>>2]=t;h=k;break}}if(l){k=c[j+1179664+(p+-1<<2)>>2]|0;o=c[j+1179664+(n+-1<<2)>>2]|0;b:do if((k|0)<=(o|0)){b[e>>1]=k;if((k|0)<(o|0)){l=m;n=0;while(1){if((n|0)>=(h|0))break b;if((c[l>>2]|0)==(o|0))c[l>>2]=k;l=l+4|0;n=n+1|0}}}else{b[e>>1]=o;l=m;n=0;while(1){if((n|0)>=(h|0)){k=o;break b}if((c[l>>2]|0)==(k|0))c[l>>2]=o;l=l+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;o=j+1310736+(p+-5<<2)|0;c[o>>2]=(c[o>>2]|0)+t;c[j+1310736+(p+-1<<2)>>2]=t;break}l=b[e+-2>>1]|0;if(l<<16>>16<=0){b[e>>1]=o;k=p*7|0;l=j+1310736+(k+-7<<2)|0;c[l>>2]=(c[l>>2]|0)+1;l=j+1310736+(k+-6<<2)|0;c[l>>2]=(c[l>>2]|0)+q;l=j+1310736+(k+-5<<2)|0;c[l>>2]=(c[l>>2]|0)+t;l=j+1310736+(k+-4<<2)|0;if((c[l>>2]|0)>(q|0))c[l>>2]=q;c[j+1310736+(k+-1<<2)>>2]=t;break}k=c[j+1179664+(p+-1<<2)>>2]|0;o=c[j+1179664+((l<<16>>16)+-1<<2)>>2]|0;c:do if((k|0)<=(o|0)){b[e>>1]=k;if((k|0)<(o|0)){l=m;n=0;while(1){if((n|0)>=(h|0))break c;if((c[l>>2]|0)==(o|0))c[l>>2]=k;l=l+4|0;n=n+1|0}}}else{b[e>>1]=o;l=m;n=0;while(1){if((n|0)>=(h|0)){k=o;break c}if((c[l>>2]|0)==(k|0))c[l>>2]=o;l=l+4|0;n=n+1|0}}while(0);p=(k<<16>>16)*7|0;o=j+1310736+(p+-7<<2)|0;c[o>>2]=(c[o>>2]|0)+1;o=j+1310736+(p+-6<<2)|0;c[o>>2]=(c[o>>2]|0)+q;p=j+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+t}else{b[e>>1]=0;a[s>>0]=0}while(0);r=r+2|0;s=s+1|0;q=q+1|0;e=e+2|0}k=r+f+4|0;t=t+1|0;p=h;l=s+2|0;e=e+4|0}d:do if((k|0)==54){Ue(0,3,19708,x);h=-1}else if((k|0)==59){n=j+12|0;h=1;e=1;while(1){if((e|0)>(p|0))break;k=c[m>>2]|0;if((k|0)==(e|0))l=h+1|0;else{l=h;h=c[j+1179664+(k+-1<<2)>>2]|0}c[m>>2]=h;h=l;e=e+1|0;m=m+4|0}o=j+8|0;k=h+-1|0;c[o>>2]=k;if(!k)h=0;else{aP(n|0,0,k<<2|0)|0;aP(j+655376|0,0,k<<4|0)|0;h=0;while(1){if((h|0)>=(k|0))break;x=h<<2;c[j+131084+(x<<2)>>2]=z;c[j+131084+((x|1)<<2)>>2]=0;c[j+131084+((x|2)<<2)>>2]=y;c[j+131084+((x|3)<<2)>>2]=0;h=h+1|0}e=0;while(1){if((e|0)>=(p|0))break;l=(c[j+1179664+(e<<2)>>2]|0)+-1|0;m=e*7|0;h=j+12+(l<<2)|0;c[h>>2]=(c[h>>2]|0)+(c[j+1310736+(m<<2)>>2]|0);h=l<<1;k=j+655376+(h<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(m+1<<2)>>2]|0);h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]+ +(c[j+1310736+(m+2<<2)>>2]|0);l=l<<2;h=j+131084+(l<<2)|0;k=c[j+1310736+(m+3<<2)>>2]|0;if((c[h>>2]|0)>(k|0))c[h>>2]=k;h=j+131084+((l|1)<<2)|0;k=c[j+1310736+(m+4<<2)>>2]|0;if((c[h>>2]|0)<(k|0))c[h>>2]=k;h=j+131084+((l|2)<<2)|0;k=c[j+1310736+(m+5<<2)>>2]|0;if((c[h>>2]|0)>(k|0))c[h>>2]=k;k=j+131084+((l|3)<<2)|0;h=c[j+1310736+(m+6<<2)>>2]|0;if((c[k>>2]|0)<(h|0))c[k>>2]=h;e=e+1|0}k=c[o>>2]|0;h=0;while(1){if((h|0)>=(k|0)){h=0;break d}C=+(c[j+12+(h<<2)>>2]|0);z=h<<1;y=j+655376+(z<<3)|0;g[y>>3]=+g[y>>3]/C;z=j+655376+((z|1)<<3)|0;g[z>>3]=+g[z>>3]/C;h=h+1|0}}}while(0);zb=A;return h|0}function nc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;y=z;o=c[j>>2]|0;x=h+-1|0;k=o;l=o+((B(x,f)|0)<<1)|0;m=0;while(1){if((m|0)>=(f|0))break;b[l>>1]=0;b[k>>1]=0;k=k+2|0;l=l+2|0;m=m+1|0}w=f+-1|0;k=o;l=o+(w<<1)|0;m=0;while(1){if((m|0)>=(h|0))break;b[l>>1]=0;b[k>>1]=0;k=k+(f<<1)|0;l=l+(f<<1)|0;m=m+1|0}n=j+1179664|0;t=f+1|0;v=0-f|0;l=e+t|0;u=1;q=0;m=(c[j+4>>2]|0)+t|0;e=o+(t<<1)|0;a:while(1){if((u|0)>=(x|0)){l=59;break}s=l;k=q;t=m;r=1;while(1){if((r|0)>=(w|0))break;do if((d[s>>0]|0|0)>(i|0)){a[t>>0]=-1;m=e+(v<<1)|0;l=b[m>>1]|0;if(l<<16>>16>0){b[e>>1]=l;q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;p=j+1310736+(q+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;c[j+1310736+(q+-1<<2)>>2]=u;break}p=b[m+2>>1]|0;q=p<<16>>16;l=b[m+-2>>1]|0;o=l<<16>>16;m=l<<16>>16>0;if(p<<16>>16<=0){if(m){b[e>>1]=l;l=o*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-3<<2)|0;if((c[m>>2]|0)<(r|0))c[m>>2]=r;c[j+1310736+(l+-1<<2)>>2]=u;break}l=b[e+-2>>1]|0;if(l<<16>>16>0){b[e>>1]=l;l=(l<<16>>16)*7|0;q=j+1310736+(l+-7<<2)|0;c[q>>2]=(c[q>>2]|0)+1;q=j+1310736+(l+-6<<2)|0;c[q>>2]=(c[q>>2]|0)+r;q=j+1310736+(l+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+u;l=j+1310736+(l+-3<<2)|0;if((c[l>>2]|0)>=(r|0))break;c[l>>2]=r;break}else{l=k+1|0;if((k|0)>32767){l=54;break a}b[e>>1]=l;c[j+1179664+(k<<2)>>2]=l<<16>>16;k=k*7|0;c[j+1310736+(k<<2)>>2]=1;c[j+1310736+(k+1<<2)>>2]=r;c[j+1310736+(k+2<<2)>>2]=u;c[j+1310736+(k+3<<2)>>2]=r;c[j+1310736+(k+4<<2)>>2]=r;c[j+1310736+(k+5<<2)>>2]=u;c[j+1310736+(k+6<<2)>>2]=u;k=l;break}}if(m){l=c[j+1179664+(q+-1<<2)>>2]|0;p=c[j+1179664+(o+-1<<2)>>2]|0;b:do if((l|0)<=(p|0)){b[e>>1]=l;if((l|0)<(p|0)){m=n;o=0;while(1){if((o|0)>=(k|0))break b;if((c[m>>2]|0)==(p|0))c[m>>2]=l;m=m+4|0;o=o+1|0}}}else{b[e>>1]=p;m=n;o=0;while(1){if((o|0)>=(k|0)){l=p;break b}if((c[m>>2]|0)==(l|0))c[m>>2]=p;m=m+4|0;o=o+1|0}}while(0);q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;p=j+1310736+(q+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;c[j+1310736+(q+-1<<2)>>2]=u;break}m=b[e+-2>>1]|0;if(m<<16>>16<=0){b[e>>1]=p;l=q*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+r;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-4<<2)|0;if((c[m>>2]|0)>(r|0))c[m>>2]=r;c[j+1310736+(l+-1<<2)>>2]=u;break}l=c[j+1179664+(q+-1<<2)>>2]|0;p=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;c:do if((l|0)<=(p|0)){b[e>>1]=l;if((l|0)<(p|0)){m=n;o=0;while(1){if((o|0)>=(k|0))break c;if((c[m>>2]|0)==(p|0))c[m>>2]=l;m=m+4|0;o=o+1|0}}}else{b[e>>1]=p;m=n;o=0;while(1){if((o|0)>=(k|0)){l=p;break c}if((c[m>>2]|0)==(l|0))c[m>>2]=p;m=m+4|0;o=o+1|0}}while(0);q=(l<<16>>16)*7|0;p=j+1310736+(q+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(q+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+r;q=j+1310736+(q+-5<<2)|0;c[q>>2]=(c[q>>2]|0)+u}else{b[e>>1]=0;a[t>>0]=0}while(0);s=s+1|0;t=t+1|0;r=r+1|0;e=e+2|0}l=s+2|0;u=u+1|0;q=k;m=t+2|0;e=e+4|0}d:do if((l|0)==54){Ue(0,3,19708,y);k=-1}else if((l|0)==59){o=j+12|0;k=1;e=1;while(1){if((e|0)>(q|0))break;l=c[n>>2]|0;if((l|0)==(e|0))m=k+1|0;else{m=k;k=c[j+1179664+(l+-1<<2)>>2]|0}c[n>>2]=k;k=m;e=e+1|0;n=n+4|0}p=j+8|0;l=k+-1|0;c[p>>2]=l;if(!l)k=0;else{aP(o|0,0,l<<2|0)|0;aP(j+655376|0,0,l<<4|0)|0;k=0;while(1){if((k|0)>=(l|0))break;y=k<<2;c[j+131084+(y<<2)>>2]=f;c[j+131084+((y|1)<<2)>>2]=0;c[j+131084+((y|2)<<2)>>2]=h;c[j+131084+((y|3)<<2)>>2]=0;k=k+1|0}e=0;while(1){if((e|0)>=(q|0))break;m=(c[j+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(n<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;g[l>>3]=+g[l>>3]+ +(c[j+1310736+(n+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(n+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(n+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(n+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(n+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(n+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;e=e+1|0}l=c[p>>2]|0;k=0;while(1){if((k|0)>=(l|0)){k=0;break d}A=+(c[j+12+(k<<2)>>2]|0);h=k<<1;f=j+655376+(h<<3)|0;g[f>>3]=+g[f>>3]/A;h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]/A;k=k+1|0}}}while(0);zb=z;return k|0}function oc(e,f,h,i,j){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;y=z;p=c[j>>2]|0;x=h+-1|0;k=p;l=0;m=p+((B(x,f)|0)<<1)|0;while(1){if((l|0)>=(f|0))break;b[m>>1]=0;b[k>>1]=0;k=k+2|0;l=l+1|0;m=m+2|0}w=f+-1|0;k=p;l=0;m=p+(w<<1)|0;while(1){if((l|0)>=(h|0))break;b[m>>1]=0;b[k>>1]=0;k=k+(f<<1)|0;l=l+1|0;m=m+(f<<1)|0}n=j+1179664|0;t=f+1|0;v=0-f|0;o=e+t|0;l=i+t|0;u=1;q=0;m=(c[j+4>>2]|0)+t|0;e=p+(t<<1)|0;a:while(1){if((u|0)>=(x|0)){l=59;break}r=l;k=q;s=m;q=1;t=e;while(1){if((q|0)>=(w|0))break;do if((d[o>>0]|0)>(d[r>>0]|0)){a[s>>0]=-1;m=t+(v<<1)|0;l=b[m>>1]|0;if(l<<16>>16>0){b[t>>1]=l;p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;i=j+1310736+(p+-5<<2)|0;c[i>>2]=(c[i>>2]|0)+u;c[j+1310736+(p+-1<<2)>>2]=u;break}i=b[m+2>>1]|0;p=i<<16>>16;l=b[m+-2>>1]|0;e=l<<16>>16;m=l<<16>>16>0;if(i<<16>>16<=0){if(m){b[t>>1]=l;l=e*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+q;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-3<<2)|0;if((c[m>>2]|0)<(q|0))c[m>>2]=q;c[j+1310736+(l+-1<<2)>>2]=u;break}l=b[t+-2>>1]|0;if(l<<16>>16>0){b[t>>1]=l;l=(l<<16>>16)*7|0;p=j+1310736+(l+-7<<2)|0;c[p>>2]=(c[p>>2]|0)+1;p=j+1310736+(l+-6<<2)|0;c[p>>2]=(c[p>>2]|0)+q;p=j+1310736+(l+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u;l=j+1310736+(l+-3<<2)|0;if((c[l>>2]|0)>=(q|0))break;c[l>>2]=q;break}else{l=k+1|0;if((k|0)>32767){l=54;break a}b[t>>1]=l;c[j+1179664+(k<<2)>>2]=l<<16>>16;k=k*7|0;c[j+1310736+(k<<2)>>2]=1;c[j+1310736+(k+1<<2)>>2]=q;c[j+1310736+(k+2<<2)>>2]=u;c[j+1310736+(k+3<<2)>>2]=q;c[j+1310736+(k+4<<2)>>2]=q;c[j+1310736+(k+5<<2)>>2]=u;c[j+1310736+(k+6<<2)>>2]=u;k=l;break}}if(m){l=c[j+1179664+(p+-1<<2)>>2]|0;i=c[j+1179664+(e+-1<<2)>>2]|0;b:do if((l|0)<=(i|0)){b[t>>1]=l;if((l|0)<(i|0)){m=n;e=0;while(1){if((e|0)>=(k|0))break b;if((c[m>>2]|0)==(i|0))c[m>>2]=l;m=m+4|0;e=e+1|0}}}else{b[t>>1]=i;m=n;e=0;while(1){if((e|0)>=(k|0)){l=i;break b}if((c[m>>2]|0)==(l|0))c[m>>2]=i;m=m+4|0;e=e+1|0}}while(0);p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;i=j+1310736+(p+-5<<2)|0;c[i>>2]=(c[i>>2]|0)+u;c[j+1310736+(p+-1<<2)>>2]=u;break}m=b[t+-2>>1]|0;if(m<<16>>16<=0){b[t>>1]=i;l=p*7|0;m=j+1310736+(l+-7<<2)|0;c[m>>2]=(c[m>>2]|0)+1;m=j+1310736+(l+-6<<2)|0;c[m>>2]=(c[m>>2]|0)+q;m=j+1310736+(l+-5<<2)|0;c[m>>2]=(c[m>>2]|0)+u;m=j+1310736+(l+-4<<2)|0;if((c[m>>2]|0)>(q|0))c[m>>2]=q;c[j+1310736+(l+-1<<2)>>2]=u;break}l=c[j+1179664+(p+-1<<2)>>2]|0;i=c[j+1179664+((m<<16>>16)+-1<<2)>>2]|0;c:do if((l|0)<=(i|0)){b[t>>1]=l;if((l|0)<(i|0)){m=n;e=0;while(1){if((e|0)>=(k|0))break c;if((c[m>>2]|0)==(i|0))c[m>>2]=l;m=m+4|0;e=e+1|0}}}else{b[t>>1]=i;m=n;e=0;while(1){if((e|0)>=(k|0)){l=i;break c}if((c[m>>2]|0)==(l|0))c[m>>2]=i;m=m+4|0;e=e+1|0}}while(0);p=(l<<16>>16)*7|0;i=j+1310736+(p+-7<<2)|0;c[i>>2]=(c[i>>2]|0)+1;i=j+1310736+(p+-6<<2)|0;c[i>>2]=(c[i>>2]|0)+q;p=j+1310736+(p+-5<<2)|0;c[p>>2]=(c[p>>2]|0)+u}else{b[t>>1]=0;a[s>>0]=0}while(0);o=o+1|0;r=r+1|0;s=s+1|0;q=q+1|0;t=t+2|0}o=o+2|0;l=r+2|0;u=u+1|0;q=k;m=s+2|0;e=t+4|0}d:do if((l|0)==54){Ue(0,3,19708,y);k=-1}else if((l|0)==59){i=j+12|0;k=1;e=1;while(1){if((e|0)>(q|0))break;l=c[n>>2]|0;if((l|0)==(e|0))m=k+1|0;else{m=k;k=c[j+1179664+(l+-1<<2)>>2]|0}c[n>>2]=k;k=m;e=e+1|0;n=n+4|0}o=j+8|0;l=k+-1|0;c[o>>2]=l;if(!l)k=0;else{aP(i|0,0,l<<2|0)|0;aP(j+655376|0,0,l<<4|0)|0;k=0;while(1){if((k|0)>=(l|0))break;y=k<<2;c[j+131084+(y<<2)>>2]=f;c[j+131084+((y|1)<<2)>>2]=0;c[j+131084+((y|2)<<2)>>2]=h;c[j+131084+((y|3)<<2)>>2]=0;k=k+1|0}e=0;while(1){if((e|0)>=(q|0))break;m=(c[j+1179664+(e<<2)>>2]|0)+-1|0;n=e*7|0;k=j+12+(m<<2)|0;c[k>>2]=(c[k>>2]|0)+(c[j+1310736+(n<<2)>>2]|0);k=m<<1;l=j+655376+(k<<3)|0;g[l>>3]=+g[l>>3]+ +(c[j+1310736+(n+1<<2)>>2]|0);k=j+655376+((k|1)<<3)|0;g[k>>3]=+g[k>>3]+ +(c[j+1310736+(n+2<<2)>>2]|0);m=m<<2;k=j+131084+(m<<2)|0;l=c[j+1310736+(n+3<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;k=j+131084+((m|1)<<2)|0;l=c[j+1310736+(n+4<<2)>>2]|0;if((c[k>>2]|0)<(l|0))c[k>>2]=l;k=j+131084+((m|2)<<2)|0;l=c[j+1310736+(n+5<<2)>>2]|0;if((c[k>>2]|0)>(l|0))c[k>>2]=l;l=j+131084+((m|3)<<2)|0;k=c[j+1310736+(n+6<<2)>>2]|0;if((c[l>>2]|0)<(k|0))c[l>>2]=k;e=e+1|0}l=c[o>>2]|0;k=0;while(1){if((k|0)>=(l|0)){k=0;break d}A=+(c[j+12+(k<<2)>>2]|0);h=k<<1;f=j+655376+(h<<3)|0;g[f>>3]=+g[f>>3]/A;h=j+655376+((h|1)<<3)|0;g[h>>3]=+g[h>>3]/A;k=k+1|0}}}while(0);zb=z;return k|0}function pc(a){a=a|0;return qc(a+8|0)|0}function qc(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=FO(4)|0;if(!b){Ue(0,3,41858,d);Ea(1)}a=Ee(a)|0;c[b>>2]=a;if(!a){GO(b);b=0}zb=d;return b|0}function rc(a){a=a|0;var b=0;b=c[a>>2]|0;if(!b)a=-1;else{Fe(b)|0;GO(c[a>>2]|0);c[a>>2]=0;a=0}return a|0}function sc(a){a=a|0;var b=0,d=0,e=0;d=zb;zb=zb+16|0;b=FO(7062432)|0;if(!b){Ue(0,3,41858,d);Ea(1)}c[b>>2]=0;c[b+4834148>>2]=0;c[b+7062408>>2]=0;c[b+4>>2]=-1;c[b+8>>2]=0;c[b+12>>2]=1;c[b+16>>2]=100;c[b+20>>2]=0;c[b+24>>2]=0;c[b+28>>2]=2;g[b+7062416>>3]=.5;c[b+7062424>>2]=3;c[b+32>>2]=a;e=c[a>>2]|0;c[b+36>>2]=e;a=c[a+4>>2]|0;c[b+40>>2]=a;c[b+44>>2]=0;c[b+15408>>2]=0;c[b+4834152>>2]=0;c[b+4818296>>2]=0;a=FO(B(e<<1,a)|0)|0;c[b+4834144>>2]=a;if(!a){Ue(0,3,41858,d+8|0);Ea(1)}else{c[b+7062384>>2]=0;tc(b,0)|0;c[b+7062388>>2]=-1;uc(b,0)|0;vc(b,7)|0;zb=d;return b|0}return 0}function tc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;do if(a)if((c[a>>2]|0)!=(b|0)){c[a>>2]=b;if(!b){d=a+4834148|0;GO(c[d>>2]|0);c[d>>2]=0;d=0;break}b=FO(B(c[a+40>>2]|0,c[a+36>>2]|0)|0)|0;c[a+4834148>>2]=b;if(!b){Ue(0,3,41858,e);Ea(1)}else d=0}else d=0;else d=-1;while(0);zb=f;return d|0}function uc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i+8|0;f=i;if(a){g=a+7062388|0;if((c[g>>2]|0)!=(b|0)){d=a+7062408|0;e=c[d>>2]|0;if(e|0){Zc(e);c[d>>2]=0}switch(b|0){case 3:case 2:case 1:{f=Yc(c[a+36>>2]|0,c[a+40>>2]|0)|0;c[d>>2]=f;break}case 4:{c[a+7062404>>2]=1;c[a+7062400>>2]=1;b=4;break}case 0:break;default:{Ue(0,3,19740,f);b=0}}c[g>>2]=b;if((c[a>>2]|0)==1){c[h>>2]=c[16+(b<<2)>>2];Ue(0,3,19814,h);b=0}else b=0}else b=0}else b=-1;zb=i;return b|0}function vc(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+7062392>>2]=b;c[a+7062396>>2]=0;a=0}return a|0}function wc(a){a=a|0;var b=0,d=0;if(!a)a=-1;else{b=a+7062408|0;d=c[b>>2]|0;if(d|0){Zc(d);c[b>>2]=0}GO(c[a+4834144>>2]|0);GO(c[a+4834148>>2]|0);GO(a);a=0}return a|0}function xc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a>>2];a=0}else a=-1;return a|0}function yc(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<2){c[a+12>>2]=b;a=0}else a=-1;return a|0}function zc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+12>>2];a=0}else a=-1;return a|0}function Ac(a,b){a=a|0;b=b|0;if((a|0)==0|b>>>0>255)a=-1;else{c[a+16>>2]=b;a=0}return a|0}function Bc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+16>>2];a=0}else a=-1;return a|0}function Cc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+7062388>>2];a=0}else a=-1;return a|0}function Dc(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<2){c[a+20>>2]=b;a=0}else a=-1;return a|0}function Ec(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[b>>2]=c[a+20>>2];a=0}return a|0}function Fc(a,b){a=a|0;b=b|0;if((a|0)!=0&b>>>0<5){c[a+24>>2]=b;a=0}else a=-1;return a|0}function Gc(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[a+7062424>>2]=b;a=0}return a|0}function Hc(a,b){a=a|0;b=b|0;if((a|0)!=0&(b|0)!=0){c[b>>2]=c[a+7062424>>2];a=0}else a=-1;return a|0}function Ic(a,b){a=a|0;b=b|0;if(!a)a=-1;else{c[b>>2]=c[a+24>>2];a=0}return a|0}function Jc(a,b){a=a|0;b=+b;if((a|0)!=0?!(b<=0.0|b>=1.0):0){g[a+7062416>>3]=b;a=0}else a=-1;return a|0}function Kc(a,b){a=a|0;b=b|0;if(!a)a=-1;else{g[b>>3]=+g[a+7062416>>3];a=0}return a|0}function Lc(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;a:do if(a){d=a+4|0;if((c[d>>2]|0)!=(b|0)){if(b>>>0>=15){c[e>>2]=b;Ue(0,3,19909,e);a=-1;break}c[d>>2]=b;d=zd(b)|0;c[a+8>>2]=d;a=a+24|0;d=c[a>>2]|0;if(!(28704>>>(b&32767)&1))switch(d|0){case 1:{c[a>>2]=4;a=0;break a}case 4:{c[a>>2]=3;a=0;break a}default:{a=0;break a}}else switch(d|0){case 0:{c[a>>2]=1;a=0;break a}case 3:{c[a>>2]=4;a=0;break a}default:{a=0;break a}}}else a=0}else a=-1;while(0);zb=f;return a|0}function Mc(a,b){a=a|0;b=b|0;var e=0,f=0,h=0,i=0,j=0,k=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,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.0,O=0,P=0,Q=0.0,R=0.0;P=zb;zb=zb+64|0;L=P+32|0;F=P+24|0;y=P;J=P+52|0;C=P+40|0;a:do if((a|0)!=0&(b|0)!=0){O=a+44|0;c[O>>2]=0;K=a+7062388|0;e=c[K>>2]|0;b:do if((e|0)==4){H=a+7062396|0;e=c[H>>2]|0;do if((e|0)>0)c[H>>2]=e+-1;else{B=a+16|0;D=c[B>>2]|0;E=a+7062400|0;z=(c[E>>2]|0)+D|0;z=(z|0)<255?z:255;c[J>>2]=z;G=a+7062404|0;A=D-(c[G>>2]|0)|0;A=(A|0)>0?A:0;c[J+4>>2]=A;c[J+8>>2]=D;f=b+12|0;h=a+36|0;i=a+40|0;j=a+12|0;k=a+20|0;n=a+4834144|0;p=a+15416|0;q=a+15408|0;r=a+4|0;s=a+7062384|0;t=a+24|0;u=a+32|0;v=a+7062416|0;w=a+48|0;x=a+7062424|0;e=0;while(1){if(e>>>0>=3)break;if((ed(c[f>>2]|0,c[h>>2]|0,c[i>>2]|0,c[a>>2]|0,c[j>>2]|0,c[J+(e<<2)>>2]|0,c[k>>2]|0,n,0)|0)<0){M=29;break}if((Oc(c[h>>2]|0,c[i>>2]|0,n,c[k>>2]|0,1e6,70,1.0,p,q)|0)<0){M=29;break}if((Tc(c[b>>2]|0,c[h>>2]|0,c[i>>2]|0,c[r>>2]|0,p,c[q>>2]|0,c[s>>2]|0,c[k>>2]|0,c[t>>2]|0,(c[u>>2]|0)+184|0,+g[v>>3],w,O,c[x>>2]|0)|0)<0){M=29;break}c[C+(e<<2)>>2]=c[O>>2];e=e+1|0}if((M|0)==29){e=-1;break a}if((c[a>>2]|0)==1){x=c[C+4>>2]|0;h=c[C+8>>2]|0;f=c[C>>2]|0;c[y>>2]=A;c[y+4>>2]=x;c[y+8>>2]=D;c[y+12>>2]=h;c[y+16>>2]=z;c[y+20>>2]=f;Ue(0,3,19958,y)}else{f=c[C>>2]|0;h=c[C+8>>2]|0}e=c[C+4>>2]|0;if((f|0)>(h|0)|(e|0)>(h|0)){f=(f|0)<(e|0)?A:z;c[B>>2]=f;e=f-D|0;if((e|0)>0){c[E>>2]=e;e=1}else{c[E>>2]=1;e=0-e|0}c[G>>2]=e;if((c[a>>2]|0)==1){c[F>>2]=f;Ue(0,3,20034,F);c[H>>2]=c[a+7062392>>2];break}else{c[H>>2]=c[a+7062392>>2];break}}e=c[E>>2]|0;f=c[G>>2]|0;do if((e|0)>=(f|0))if((e|0)>(f|0)){c[G>>2]=f+1;break}else{e=e+1|0;c[E>>2]=e;c[G>>2]=f+1;break}else{e=e+1|0;c[E>>2]=e}while(0);if((e+D|0)>254){c[E>>2]=1;e=1}if((D|0)<=(e|0))c[G>>2]=1;c[H>>2]=c[a+7062392>>2];break b}while(0);h=c[K>>2]|0;M=33}else{h=e;M=33}while(0);if((M|0)==33){c:do switch(h|0){case 3:{f=a+7062408|0;h=b+12|0;e=dd(c[f>>2]|0,c[h>>2]|0,9,-7)|0;if((e|0)<0)break a;e=c[f>>2]|0;k=a+4834144|0;e=ed(c[h>>2]|0,c[e+4>>2]|0,c[e+8>>2]|0,c[a>>2]|0,c[a+12>>2]|0,0,0,k,c[e>>2]|0)|0;if((e|0)<0)break a;e=a+36|0;f=a+40|0;h=a+20|0;break}case 2:case 1:{i=a+7062396|0;e=c[i>>2]|0;if((e|0)>0){c[i>>2]=e+-1;M=48;break c}e=c[a+7062408>>2]|0;f=c[b+12>>2]|0;if((h|0)==1)e=bd(e,f,J)|0;else e=cd(e,f,J)|0;if((e|0)<0)break a;e=a+16|0;if((c[a>>2]|0)==1?(I=d[J>>0]|0,(c[e>>2]|0)!=(I|0)):0){c[L>>2]=(c[K>>2]|0)==1?20086:20093;c[L+4>>2]=I;Ue(0,3,20098,L)}c[e>>2]=d[J>>0];c[i>>2]=c[a+7062392>>2];M=48;break}default:M=48}while(0);if((M|0)==48){e=a+36|0;f=a+40|0;h=a+20|0;k=a+4834144|0;if((ed(c[b+12>>2]|0,c[e>>2]|0,c[f>>2]|0,c[a>>2]|0,c[a+12>>2]|0,c[a+16>>2]|0,c[h>>2]|0,k,0)|0)<0){e=-1;break}}i=a+15416|0;j=a+15408|0;if((Oc(c[e>>2]|0,c[f>>2]|0,k,c[h>>2]|0,1e6,70,1.0,i,j)|0)<0){e=-1;break}if((Tc(c[b>>2]|0,c[e>>2]|0,c[f>>2]|0,c[a+4>>2]|0,i,c[j>>2]|0,c[a+7062384>>2]|0,c[h>>2]|0,c[a+24>>2]|0,(c[a+32>>2]|0)+184|0,+g[a+7062416>>3],a+48|0,O,c[a+7062424>>2]|0)|0)<0){e=-1;break}}s=a+28|0;if((c[s>>2]|0)==1){Nc(a);e=0;break}t=a+4818296|0;q=c[t>>2]|0;r=a+24|0;p=0;while(1){if((p|0)>=(q|0))break;h=c[O>>2]|0;i=a+4818304+(p*264|0)|0;j=a+4818304+(p*264|0)+56|0;k=a+4818304+(p*264|0)+64|0;f=0;n=-1;l=.5;while(1){if((f|0)>=(h|0))break;m=+(c[a+48+(f<<8)>>2]|0);o=+(c[i>>2]|0)/m;if(!(o<.7|o>1.43)?(o=+g[a+48+(f<<8)+56>>3]-+g[j>>3],N=+g[a+48+(f<<8)+64>>3]-+g[k>>3],N=(o*o+N*N)/m,N-1){k=c[r>>2]|0;switch(k|0){case 2:case 1:case 0:break;case 4:case 3:{f=a+48+(n<<8)+40|0;m=+g[a+4818304+(p*264|0)+40>>3];if(!(+g[f>>3]>3];if(!(+g[e>>3]>3]}g[f>>3]=m;c[a+48+(n<<8)+8>>2]=c[a+4818304+(p*264|0)+8>>2];g[e>>3]=l;c[a+48+(n<<8)+12>>2]=c[a+4818304+(p*264|0)+12>>2];f=0;h=-1;m=1.0e8;while(1){if((f|0)==4)break;e=0;l=0.0;while(1){if((e|0)==4)break;b=e+f&3;Q=+g[a+4818304+(p*264|0)+168+(e<<4)>>3]-+g[a+48+(n<<8)+168+(b<<4)>>3];o=+g[a+4818304+(p*264|0)+168+(e<<4)+8>>3]-+g[a+48+(n<<8)+168+(b<<4)+8>>3];e=e+1|0;l=l+(Q*Q+o*o)}b=l>2]=(b+(c[a+4818304+(p*264|0)+20>>2]|0)|0)%4|0;c[a+48+(n<<8)+24>>2]=(b+(c[a+4818304+(p*264|0)+24>>2]|0)|0)%4|0;break d}default:{e=-1;break a}}e=a+48+(n<<8)+32|0;o=+g[a+4818304+(p*264|0)+32>>3];if(+g[e>>3]>3]=o;i=c[a+4818304+(p*264|0)+4>>2]|0;c[a+48+(n<<8)+4>>2]=i;j=a+4818304+(p*264|0)+16|0;f=-1;l=1.0e8;h=0;while(1){if((h|0)==4)break;e=0;m=0.0;while(1){if((e|0)==4)break;b=e+h&3;R=+g[a+4818304+(p*264|0)+168+(e<<4)>>3]-+g[a+48+(n<<8)+168+(b<<4)>>3];Q=+g[a+4818304+(p*264|0)+168+(e<<4)+8>>3]-+g[a+48+(n<<8)+168+(b<<4)+8>>3];e=e+1|0;m=m+(R*R+Q*Q)}if(m>2]|0)|0)%4|0;l=m}else e=f;f=e;h=h+1|0}c[a+48+(n<<8)+16>>2]=f;if(k>>>0<2){c[a+48+(n<<8)+8>>2]=i;g[a+48+(n<<8)+40>>3]=o;c[a+48+(n<<8)+20>>2]=f;break}else{c[a+48+(n<<8)+12>>2]=i;g[a+48+(n<<8)+48>>3]=o;c[a+48+(n<<8)+24>>2]=f;break}}}while(0);p=p+1|0}Nc(a);f=0;e=0;while(1){if((f|0)>=(c[t>>2]|0))break;M=a+4818304+(f*264|0)+256|0;b=c[M>>2]|0;c[M>>2]=b+1;if((b|0)<3){if((f|0)!=(e|0))_O(a+4818304+(e*264|0)|0,a+4818304+(f*264|0)|0,264)|0;e=e+1|0}f=f+1|0}c[t>>2]=e;f=c[O>>2]|0;k=0;while(1){if((k|0)>=(f|0))break;j=a+48+(k<<8)|0;h=c[a+48+(k<<8)+4>>2]|0;if((h|0)>=0){i=0;while(1){if((i|0)>=(e|0))break;if((c[a+4818304+(i*264|0)+4>>2]|0)==(h|0))break;i=i+1|0}if((i|0)==(e|0)){if((e|0)==60)break;e=e+1|0;c[t>>2]=e}_O(a+4818304+(i*264|0)|0,j|0,256)|0;c[a+4818304+(i*264|0)+256>>2]=1}k=k+1|0}if((c[s>>2]|0)==2)e=0;else{n=0;while(1){if((n|0)>=(e|0)){e=0;break a}i=a+4818304+(n*264|0)|0;j=a+4818304+(n*264|0)+56|0;k=a+4818304+(n*264|0)+64|0;h=0;while(1){if((h|0)>=(f|0))break;l=+(c[a+48+(h<<8)>>2]|0);R=+(c[i>>2]|0)/l;if(!(R<.7|R>1.43)?(Q=+g[a+48+(h<<8)+56>>3]-+g[j>>3],R=+g[a+48+(h<<8)+64>>3]-+g[k>>3],(Q*Q+R*R)/l<.5):0)break;h=h+1|0}if((h|0)==(f|0)){_O(a+48+(f<<8)|0,a+4818304+(n*264|0)|0,256)|0;f=f+1|0;c[O>>2]=f;e=c[t>>2]|0}n=n+1|0}}}else e=-1;while(0);zb=P;return e|0}function Nc(a){a=a|0;var b=0,d=0,e=0,f=0;a:do switch(c[a+24>>2]|0){case 1:case 0:{d=c[a+44>>2]|0;b=0;while(1){if((b|0)>=(d|0))break a;e=a+48+(b<<8)+4|0;if((c[e>>2]|0)>-1?+g[a+48+(b<<8)+32>>3]<.5:0){c[a+48+(b<<8)+8>>2]=-1;c[e>>2]=-1;c[a+48+(b<<8)+236>>2]=6}b=b+1|0}}case 2:{d=c[a+44>>2]|0;b=0;while(1){if((b|0)>=(d|0))break a;e=a+48+(b<<8)+4|0;if((c[e>>2]|0)>-1?+g[a+48+(b<<8)+32>>3]<.5:0){c[a+48+(b<<8)+12>>2]=-1;c[e>>2]=-1;c[a+48+(b<<8)+236>>2]=6}b=b+1|0}}default:{f=c[a+44>>2]|0;e=0;while(1){if((e|0)>=(f|0))break a;b=a+48+(e<<8)+8|0;if((c[b>>2]|0)>-1?+g[a+48+(e<<8)+40>>3]<.5:0){c[b>>2]=-1;b=0}else b=1;d=a+48+(e<<8)+12|0;if(((c[d>>2]|0)>-1?+g[a+48+(e<<8)+48>>3]<.5:0)?(c[d>>2]=-1,(b|0)==0):0)c[a+48+(e<<8)+236>>2]=6;e=e+1|0}}}while(0);return}function Oc(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;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;r=(e|0)==1;if(r){a=(a|0)/2|0;b=(b|0)/2|0;f=(f|0)/4|0;h=(h|0)/4|0}c[k>>2]=0;n=d+8|0;o=a+-2|0;b=b+-2|0;l=d+1179664|0;e=0;while(1){if((e|0)>=(c[n>>2]|0)){q=5;break}m=d+12+(e<<2)|0;s=c[m>>2]|0;if(((((((!((s|0)<(h|0)|(s|0)>(f|0))?(p=d+131084+(e<<4)|0,(c[p>>2]|0)!=1):0)?(c[d+131084+(e<<4)+4>>2]|0)!=(o|0):0)?(c[d+131084+(e<<4)+8>>2]|0)!=1:0)?(c[d+131084+(e<<4)+12>>2]|0)!=(b|0):0)?(Pc(c[d>>2]|0,a,0,l,e+1|0,p,j+((c[k>>2]|0)*80048|0)|0)|0)>=0:0)?(Qc(c[m>>2]|0,j+((c[k>>2]|0)*80048|0)|0,i)|0)>=0:0)?(c[j+((c[k>>2]|0)*80048|0)>>2]=c[m>>2],s=c[k>>2]|0,g[j+(s*80048|0)+8>>3]=+g[d+655376+(e<<4)>>3],g[j+(s*80048|0)+16>>3]=+g[d+655376+(e<<4)+8>>3],s=s+1|0,c[k>>2]=s,(s|0)==60):0){e=60;break}e=e+1|0}if((q|0)==5)e=c[k>>2]|0;a=0;while(1){if((a|0)>=(e|0))break;l=a+1|0;m=j+(a*80048|0)+8|0;n=j+(a*80048|0)+16|0;h=j+(a*80048|0)|0;f=l;while(1){if((f|0)>=(e|0))break;t=+g[m>>3]-+g[j+(f*80048|0)+8>>3];i=+g[n>>3]-+g[j+(f*80048|0)+16>>3];i=t*t+i*i;e=c[h>>2]|0;a=j+(f*80048|0)|0;b=c[a>>2]|0;if((e|0)>(b|0)){if(i<+((e|0)/4|0|0))c[a>>2]=0}else if(i<+((b|0)/4|0|0))c[h>>2]=0;f=f+1|0;e=c[k>>2]|0}a=l}f=0;while(1){if((f|0)>=(e|0))break;if(!(c[j+(f*80048|0)>>2]|0)){b=f;while(1){a=b+1|0;if((a|0)>=(e|0))break;_O(j+(b*80048|0)|0,j+(a*80048|0)|0,80048)|0;b=a;e=c[k>>2]|0}e=e+-1|0;c[k>>2]=e}f=f+1|0}a:do if(r){b=0;while(1){if((b|0)>=(e|0))break a;c[j>>2]=c[j>>2]<<2;a=j+8|0;g[a>>3]=+g[a>>3]*2.0;a=j+16|0;g[a>>3]=+g[a>>3]*2.0;a=c[j+24>>2]|0;e=0;while(1){if((e|0)>=(a|0))break;s=j+28+(e<<2)|0;c[s>>2]=c[s>>2]<<1;s=j+40028+(e<<2)|0;c[s>>2]=c[s>>2]<<1;e=e+1|0}j=j+80048|0;b=b+1|0;e=c[k>>2]|0}}while(0);return 0}function Pc(a,d,e,f,g,h,i){a=a|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;w=zb;zb=zb+80032|0;n=w+80016|0;m=w+80008|0;j=w+8e4|0;u=w+4e4|0;v=w;s=c[h+8>>2]|0;t=B(s,d)|0;e=c[h>>2]|0;h=c[h+4>>2]|0;r=e;e=a+(t+e<<1)|0;while(1){if((r|0)>(h|0)){t=7;break}t=b[e>>1]|0;if(t<<16>>16>0?(c[f+((t<<16>>16)+-1<<2)>>2]|0)==(g|0):0){t=6;break}r=r+1|0;e=e+2|0}do if((t|0)==6)if((r|0)!=-1){o=i+24|0;c[o>>2]=1;p=i+28|0;c[p>>2]=r;q=i+40028|0;c[q>>2]=s;g=5;e=s;l=r;f=1;while(1){k=a+((B(e,d)|0)+l<<1)|0;j=0;e=g+5|0;while(1){g=(e|0)%8|0;if(j>>>0>=8){t=13;break}e=c[48+(g<<2)>>2]|0;x=B(e,d)|0;h=c[80+(g<<2)>>2]|0;if((b[k+(x+h<<1)>>1]|0)>0)break;j=j+1|0;e=g+1|0}if((t|0)==13){t=0;if((j|0)==8){t=15;break}h=c[80+(g<<2)>>2]|0;e=c[48+(g<<2)>>2]|0}c[i+28+(f<<2)>>2]=h+l;j=c[o>>2]|0;c[i+40028+(j<<2)>>2]=e+(c[i+40028+(j+-1<<2)>>2]|0);j=c[o>>2]|0;h=i+28+(j<<2)|0;if((c[h>>2]|0)==(r|0)?(c[i+40028+(j<<2)>>2]|0)==(s|0):0){t=18;break}f=j+1|0;c[o>>2]=f;if((f|0)==9999){t=21;break}e=c[i+40028+(j<<2)>>2]|0;l=c[h>>2]|0}if((t|0)==15){Ue(0,3,20152,m);e=-1;break}else if((t|0)==18){f=0;e=0;h=1;while(1){if((h|0)>=(j|0))break;x=(c[i+28+(h<<2)>>2]|0)-r|0;x=B(x,x)|0;d=(c[i+40028+(h<<2)>>2]|0)-s|0;x=(B(d,d)|0)+x|0;d=(x|0)>(e|0);f=d?h:f;e=d?x:e;h=h+1|0}e=0;while(1){if((e|0)>=(f|0))break;c[u+(e<<2)>>2]=c[i+28+(e<<2)>>2];c[v+(e<<2)>>2]=c[i+40028+(e<<2)>>2];e=e+1|0}h=f;e=j;while(1){if((h|0)>=(e|0))break;e=h-f|0;c[i+28+(e<<2)>>2]=c[i+28+(h<<2)>>2];c[i+40028+(e<<2)>>2]=c[i+40028+(h<<2)>>2];h=h+1|0;e=c[o>>2]|0}e=0;while(1){if((e|0)>=(f|0))break;x=e-f|0;c[i+28+((c[o>>2]|0)+x<<2)>>2]=c[u+(e<<2)>>2];c[i+40028+((c[o>>2]|0)+x<<2)>>2]=c[v+(e<<2)>>2];e=e+1|0}c[i+28+(c[o>>2]<<2)>>2]=c[p>>2];c[i+40028+(c[o>>2]<<2)>>2]=c[q>>2];c[o>>2]=(c[o>>2]|0)+1;e=0;break}else if((t|0)==21){Ue(0,3,20159,n);e=-1;break}}else t=7;while(0);if((t|0)==7){Ue(0,3,20145,j);e=-1}zb=w;return e|0}function Qc(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;r=zb;zb=zb+96|0;o=r+48|0;k=r+92|0;p=r;l=r+88|0;m=b+28|0;j=c[m>>2]|0;n=b+40028|0;h=c[n>>2]|0;q=b+24|0;i=(c[q>>2]|0)+-1|0;f=1;g=0;e=0;while(1){if((f|0)>=(i|0))break;t=(c[b+28+(f<<2)>>2]|0)-j|0;t=B(t,t)|0;u=(c[b+40028+(f<<2)>>2]|0)-h|0;t=(B(u,u)|0)+t|0;u=(t|0)>(g|0);s=u?f:e;f=f+1|0;g=u?t:g;e=s}d=+(a|0)/.75*.01*d;c[k>>2]=0;c[l>>2]=0;a:do if((Rc(m,n,0,e,d,o,k)|0)>=0?(Rc(m,n,e,(c[q>>2]|0)+-1|0,d,p,l)|0)>=0:0){f=c[k>>2]|0;g=c[l>>2]|0;do if((f|0)==1&(g|0)==1){f=c[p>>2]|0;g=c[o>>2]|0}else{if((f|0)>1&(g|0)==0){f=(e|0)/2|0;c[l>>2]=0;c[k>>2]=0;if((Rc(m,n,0,f,d,o,k)|0)<0){e=-1;break a}if((Rc(m,n,f,e,d,p,l)|0)<0){e=-1;break a}if(!((c[k>>2]|0)==1&(c[l>>2]|0)==1)){e=-1;break a}f=e;g=c[o>>2]|0;e=c[p>>2]|0;break}if(!((f|0)==0&(g|0)>1)){e=-1;break a}f=(e+-1+(c[q>>2]|0)|0)/2|0;c[l>>2]=0;c[k>>2]=0;if((Rc(m,n,e,f,d,o,k)|0)<0){e=-1;break a}if((Rc(m,n,f,(c[q>>2]|0)+-1|0,d,p,l)|0)<0){e=-1;break a}if(!((c[k>>2]|0)==1&(c[l>>2]|0)==1)){e=-1;break a}f=c[p>>2]|0;g=e;e=c[o>>2]|0}while(0);c[b+80028>>2]=0;c[b+80032>>2]=g;c[b+80036>>2]=e;c[b+80040>>2]=f;c[b+80044>>2]=(c[q>>2]|0)+-1;e=0}else e=-1;while(0);zb=r;return e|0}function Rc(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;g=g|0;h=h|0;var i=0,j=0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0.0;j=c[b+(e<<2)>>2]|0;q=c[b+(d<<2)>>2]|0;l=+(j-q|0);i=c[a+(d<<2)>>2]|0;r=c[a+(e<<2)>>2]|0;m=+(i-r|0);n=+((B(r,q)|0)-(B(i,j)|0)|0);j=d+1|0;i=j;k=0.0;while(1){if((j|0)>=(e|0))break;s=l*+(c[a+(j<<2)>>2]|0)+m*+(c[b+(j<<2)>>2]|0)+n;s=s*s;r=s>k;i=r?j:i;j=j+1|0;k=r?s:k}if(k/(l*l+m*m)>f)if(((Rc(a,b,d,i,f,g,h)|0)>=0?(o=c[h>>2]|0,(o|0)<=5):0)?(c[g+(o<<2)>>2]=i,c[h>>2]=(c[h>>2]|0)+1,(Rc(a,b,i,e,f,g,h)|0)>=0):0)p=8;else i=-1;else p=8;if((p|0)==8)i=0;return i|0}function Sc(a,b,d,e,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;y=zb;zb=zb+16|0;r=y+4|0;s=y;x=qe(2)|0;u=qe(2)|0;v=Dd(2,2)|0;k=0;a:while(1){if(k>>>0>=4){q=10;break}l=k+1|0;q=c[e+(l<<2)>>2]|0;n=c[e+(k<<2)>>2]|0;p=+(q+1-n|0)*.05+.5;n=~~(p+ +(n|0));q=~~(+(q|0)-p)-n|0;w=Dd(q+1|0,2)|0;d=0;while(1){if((d|0)>(q|0))break;z=d+n|0;if((pe(h,+(c[a+(z<<2)>>2]|0),+(c[b+(z<<2)>>2]|0),r,s)|0)<0){q=6;break a}A=c[w>>2]|0;z=d<<1;g[A+(z<<3)>>3]=+f[r>>2];g[A+((z|1)<<3)>>3]=+f[s>>2];d=d+1|0}if((Pd(w,v,x,u)|0)<0){q=14;break}A=c[v>>2]|0;o=+g[A+8>>3];g[i+(k*24|0)>>3]=o;p=-+g[A>>3];g[i+(k*24|0)+8>>3]=p;A=c[u>>2]|0;g[i+(k*24|0)+16>>3]=-(o*+g[A>>3]+ +g[A+8>>3]*p);Ld(w)|0;k=l}b:do if((q|0)==6)q=14;else if((q|0)==10){Ld(v)|0;re(u)|0;re(x)|0;d=0;while(1){if(d>>>0>=4){d=0;break b}k=d+3&3;l=i+(k*24|0)|0;m=+g[i+(d*24|0)+8>>3];n=i+(d*24|0)|0;o=+g[i+(k*24|0)+8>>3];p=+g[l>>3]*m-+g[n>>3]*o;if(+t(+p)<.0001){d=-1;break b}A=i+(d*24|0)+16|0;z=i+(k*24|0)+16|0;g[j+(d<<4)>>3]=(o*+g[A>>3]-m*+g[z>>3])/p;g[j+(d<<4)+8>>3]=(+g[n>>3]*+g[z>>3]-+g[l>>3]*+g[A>>3])/p;d=d+1|0}}while(0);if((q|0)==14){Ld(w)|0;Ld(v)|0;re(u)|0;re(x)|0;d=-1}zb=y;return d|0}function Tc(a,b,d,e,h,i,j,k,l,m,n,o,p,q){a=a|0;b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=+n;o=o|0;p=p|0;q=q|0;var 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;G=zb;zb=zb+16|0;A=G+4|0;B=G;C=l>>>0<2;D=(l|0)==2;z=0;r=0;while(1){if((z|0)>=(i|0))break;c[o+(r<<8)>>2]=c[h+(z*80048|0)>>2];if((pe(m,+g[h+(z*80048|0)+8>>3],+g[h+(z*80048|0)+16>>3],A,B)|0)>=0?(g[o+(r<<8)+56>>3]=+f[A>>2],g[o+(r<<8)+64>>3]=+f[B>>2],E=o+(r<<8)+168|0,(Sc(h+(z*80048|0)+28|0,h+(z*80048|0)+40028|0,c[h+(z*80048|0)+24>>2]|0,h+(z*80048|0)+80028|0,m,o+(r<<8)+72|0,E)|0)>=0):0){v=o+(r<<8)+8|0;s=o+(r<<8)+20|0;t=o+(r<<8)+40|0;w=o+(r<<8)+12|0;y=o+(r<<8)+24|0;x=o+(r<<8)+48|0;u=od(j,k,l,a,b,d,e,m,E,n,v,s,t,w,y,x,q,o+(r<<8)+240|0,o+(r<<8)+248|0)|0;switch(u|0){case 0:{F=12;break}case -1:{u=2;F=12;break}case -2:{u=3;F=12;break}case -3:{u=4;F=12;break}case -4:{u=5;F=12;break}case -5:{u=9;F=12;break}case -6:{u=1;F=12;break}default:{}}if((F|0)==12){F=0;c[o+(r<<8)+236>>2]=u}if(!C){if(D){c[o+(r<<8)+4>>2]=c[w>>2];t=x;s=y;F=17}}else{c[o+(r<<8)+4>>2]=c[v>>2];F=17}if((F|0)==17){F=0;c[o+(r<<8)+16>>2]=c[s>>2];g[o+(r<<8)+32>>3]=+g[t>>3]}r=r+1|0}z=z+1|0}c[p>>2]=r;zb=G;return 0}function Uc(a,b,d,e){a=a|0;b=b|0;d=+d;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0;m=zb;zb=zb+288|0;h=m+192|0;i=m+96|0;j=m+264|0;k=m;l=m+256|0;do if((c[b+12>>2]|0)>=0)if((c[b+8>>2]|0)<0){f=b+24|0;break}else{f=b+16|0;break}else f=b+20|0;while(0);f=c[f>>2]|0;o=(4-f|0)%4|0;g[h>>3]=+g[b+168+(o<<4)>>3];g[h+8>>3]=+g[b+168+(o<<4)+8>>3];o=(5-f|0)%4|0;g[h+16>>3]=+g[b+168+(o<<4)>>3];g[h+24>>3]=+g[b+168+(o<<4)+8>>3];o=(6-f|0)%4|0;g[h+32>>3]=+g[b+168+(o<<4)>>3];g[h+40>>3]=+g[b+168+(o<<4)+8>>3];f=(7-f|0)%4|0;g[h+48>>3]=+g[b+168+(f<<4)>>3];g[h+56>>3]=+g[b+168+(f<<4)+8>>3];n=d*-.5;g[i>>3]=n;d=d*.5;g[i+8>>3]=d;g[i+16>>3]=0.0;g[i+24>>3]=d;g[i+32>>3]=d;g[i+40>>3]=0.0;g[i+48>>3]=d;g[i+56>>3]=n;g[i+64>>3]=0.0;g[i+72>>3]=n;g[i+80>>3]=n;g[i+88>>3]=0.0;c[j>>2]=h;c[j+4>>2]=i;c[j+8>>2]=4;if((Me(c[a>>2]|0,h,i,4,k)|0)<0)d=1.0e8;else{o=(He(c[a>>2]|0,j,k,e,l)|0)<0;d=o?1.0e8:+g[l>>3]}zb=m;return +d}function Vc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0;m=zb;zb=zb+192|0;i=m+96|0;j=m;k=m+168|0;l=m+160|0;do if((c[b+12>>2]|0)>=0)if((c[b+8>>2]|0)<0){h=b+24|0;break}else{h=b+16|0;break}else h=b+20|0;while(0);h=c[h>>2]|0;o=(4-h|0)%4|0;g[i>>3]=+g[b+168+(o<<4)>>3];g[i+8>>3]=+g[b+168+(o<<4)+8>>3];o=(5-h|0)%4|0;g[i+16>>3]=+g[b+168+(o<<4)>>3];g[i+24>>3]=+g[b+168+(o<<4)+8>>3];o=(6-h|0)%4|0;g[i+32>>3]=+g[b+168+(o<<4)>>3];g[i+40>>3]=+g[b+168+(o<<4)+8>>3];h=(7-h|0)%4|0;g[i+48>>3]=+g[b+168+(h<<4)>>3];g[i+56>>3]=+g[b+168+(h<<4)+8>>3];n=e*-.5;g[j>>3]=n;e=e*.5;g[j+8>>3]=e;g[j+16>>3]=0.0;g[j+24>>3]=e;g[j+32>>3]=e;g[j+40>>3]=0.0;g[j+48>>3]=e;g[j+56>>3]=n;g[j+64>>3]=0.0;g[j+72>>3]=n;g[j+80>>3]=n;g[j+88>>3]=0.0;c[k>>2]=i;c[k+4>>2]=j;c[k+8>>2]=4;k=(He(c[a>>2]|0,k,d,f,l)|0)<0;zb=m;return +(k?1.0e8:+g[l>>3])}function Wc(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,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+32|0;l=o+20|0;m=o;n=FO(f<<4)|0;c[l>>2]=n;if(!n){Ue(0,3,41858,o+8|0);Ea(1)}j=FO(f*24|0)|0;k=l+4|0;c[k>>2]=j;if(!j){Ue(0,3,41858,o+16|0);Ea(1)}i=0;while(1){if((i|0)>=(f|0))break;g[n+(i<<4)>>3]=+g[d+(i<<4)>>3];g[n+(i<<4)+8>>3]=+g[d+(i<<4)+8>>3];g[j+(i*24|0)>>3]=+g[e+(i*24|0)>>3];g[j+(i*24|0)+8>>3]=+g[e+(i*24|0)+8>>3];g[j+(i*24|0)+16>>3]=+g[e+(i*24|0)+16>>3];i=i+1|0}c[l+8>>2]=f;if((He(c[a>>2]|0,l,b,h,m)|0)<0)g[m>>3]=1.0e8;GO(c[l>>2]|0);GO(c[k>>2]|0);zb=o;return +(+g[m>>3])}function Xc(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,j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+32|0;l=o+20|0;m=o;n=FO(f<<4)|0;c[l>>2]=n;if(!n){Ue(0,3,41858,o+8|0);Ea(1)}j=FO(f*24|0)|0;k=l+4|0;c[k>>2]=j;if(!j){Ue(0,3,41858,o+16|0);Ea(1)}i=0;while(1){if((i|0)>=(f|0))break;g[n+(i<<4)>>3]=+g[d+(i<<4)>>3];g[n+(i<<4)+8>>3]=+g[d+(i<<4)+8>>3];g[j+(i*24|0)>>3]=+g[e+(i*24|0)>>3];g[j+(i*24|0)+8>>3]=+g[e+(i*24|0)+8>>3];g[j+(i*24|0)+16>>3]=+g[e+(i*24|0)+16>>3];i=i+1|0}c[l+8>>2]=f;if((Je(c[a>>2]|0,l,b,h,m)|0)<0)g[m>>3]=1.0e8;GO(c[l>>2]|0);GO(c[k>>2]|0);zb=o;return +(+g[m>>3])}function Yc(a,b){a=a|0;b=b|0;var d=0;d=FO(2064)|0;if(d|0){c[d>>2]=0;c[d+4>>2]=a;c[d+8>>2]=b}return d|0}function Zc(a){a=a|0;if(a|0){GO(c[a>>2]|0);GO(a)}return}function _c(a,b){a=a|0;b=b|0;var e=0,f=0;a:do if((a|0)!=0&(b|0)!=0){aP(a+12|0,0,1024)|0;e=b+(B(c[a+8>>2]|0,c[a+4>>2]|0)|0)|0;while(1){if(b>>>0>=e>>>0){b=0;break a}f=a+12+((d[b>>0]|0)<<2)|0;c[f>>2]=(c[f>>2]|0)+1;b=b+1|0}}else b=-1;while(0);return b|0}function $c(a,b){a=a|0;b=b|0;var d=0;b=_c(a,b)|0;if((b|0)>=0){b=0;d=0;do{b=(c[a+12+(d<<2)>>2]|0)+b|0;c[a+1036+(d<<2)>>2]=b;d=d+1|0}while((d|0)!=256);b=0}return b|0}function ad(b,d,e,f){b=b|0;d=d|0;e=+e;f=f|0;var g=0,h=0,i=0,j=0;if(!(e<0.0|e>1.0)){d=$c(b,d)|0;if((d|0)>=0){i=~~(+(B(c[b+8>>2]|0,c[b+4>>2]|0)|0)*e)>>>0;d=0;while(1){j=d&255;g=c[b+1036+(j<<2)>>2]|0;if(g>>>0>>0)d=d+1<<24>>24;else break}while(1){h=d+1<<24>>24;if((g|0)!=(i|0))break;d=h;g=c[b+1036+((h&255)<<2)>>2]|0}a[f>>0]=((d&255)+j|0)>>>1;d=0}}else d=-1;return d|0}function bd(a,b,c){a=a|0;b=b|0;c=c|0;return ad(a,b,.5,c)|0}function cd(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0.0,n=0,o=0.0;d=_c(b,d)|0;if((d|0)>=0){m=0.0;d=1;do{m=m+ +((B(c[b+12+(d<<2)>>2]|0,d)|0)>>>0);d=d+1|0}while((d|0)!=256);k=+(B(c[b+8>>2]|0,c[b+4>>2]|0)|0);d=0;h=0.0;j=0.0;g=0.0;l=0;while(1){f=c[b+12+(l<<2)>>2]|0;j=j+ +(f>>>0);if(j!=0.0){i=k-j;if(i==0.0)break;g=g+ +((B(f,l)|0)>>>0);o=g/j-(m-g)/i;i=o*(j*i*o);n=i>h;f=l&255;d=n?f:d;h=n?i:h}else f=l&255;if(f<<24>>24==-1)break;else l=l+1|0}a[e>>0]=d;d=0}return d|0}function dd(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;h=_c(b,e)|0;a:do if((h|0)>=0){if(!(c[b>>2]|0)){h=b+4|0;i=b+8|0;s=FO(B(c[i>>2]|0,c[h>>2]|0)|0)|0;c[b>>2]=s;if(!s){h=-1;break}else{s=h;r=i}}else{s=b+4|0;r=b+8|0}p=f>>1;q=0-p|0;o=0;while(1){h=c[r>>2]|0;if((o|0)>=(h|0))break;l=0;while(1){n=c[s>>2]|0;if((l|0)>=(n|0))break;m=q;f=0;h=0;while(1){if((m|0)>(p|0))break;i=m+o|0;b:do if((i|0)>=0?(i|0)<(c[r>>2]|0):0){k=B(i,n)|0;j=q;i=f;while(1){if((j|0)>(p|0))break b;f=j+l|0;if((f|0)>-1&(f|0)<(n|0)){i=i+1|0;h=h+(d[e+(f+k)>>0]|0)|0}j=j+1|0}}else i=f;while(0);m=m+1|0;f=i}n=(c[b>>2]|0)+((B(n,o)|0)+l)|0;a[n>>0]=(h|0)/(f|0)|0;l=l+1|0}o=o+1|0}if(!g)h=0;else{i=0;while(1){if((i|0)>=(B(h,c[s>>2]|0)|0)){h=0;break a}h=(c[b>>2]|0)+i|0;a[h>>0]=(d[h>>0]|0)+g;i=i+1|0;h=c[r>>2]|0}}}while(0);return h|0}function ed(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0;e=(e|0)==1;j=(i|0)!=0;do if(!d)if(e){if(j){e=fc(a,b,c,i,h)|0;break}if(!g){e=ec(a,b,c,f,h)|0;break}else{e=dc(a,b,c,f,h)|0;break}}else{if(j){e=ic(a,b,c,i,h)|0;break}if(!g){e=hc(a,b,c,f,h)|0;break}else{e=gc(a,b,c,f,h)|0;break}}else if(e){if(j){e=lc(a,b,c,i,h)|0;break}if(!g){e=kc(a,b,c,f,h)|0;break}else{e=jc(a,b,c,f,h)|0;break}}else{if(j){e=oc(a,b,c,i,h)|0;break}if(!g){e=nc(a,b,c,f,h)|0;break}else{e=mc(a,b,c,f,h)|0;break}}while(0);return e|0}function fd(a,b){a=a|0;b=b|0;var d=0;if((a|0)!=0?(d=a+7062384|0,(c[d>>2]|0)==0):0){c[d>>2]=b;a=0}else a=-1;return a|0}function gd(a){a=a|0;var b=0;if((a|0)!=0?(b=a+7062384|0,(c[b>>2]|0)!=0):0){c[b>>2]=0;a=0}else a=-1;return a|0}function hd(){return id(16,50)|0}function id(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;q=zb;zb=zb+64|0;p=q+56|0;o=q+48|0;i=q+40|0;h=q+32|0;g=q+24|0;f=q+16|0;e=q+8|0;d=q;a:do if(!((a+-16|0)>>>0>48|(b|0)<1)){m=FO(32)|0;if(!m){Ue(0,3,41858,d);Ea(1)}c[m>>2]=0;c[m+4>>2]=b;c[m+28>>2]=a;l=FO(b<<2)|0;c[m+8>>2]=l;if(!l){Ue(0,3,41858,e);Ea(1)}d=b<<4;k=FO(d)|0;c[m+12>>2]=k;if(!k){Ue(0,3,41858,f);Ea(1)}f=FO(d)|0;j=m+20|0;c[j>>2]=f;if(!f){Ue(0,3,41858,g);Ea(1)}d=b<<5;g=FO(d)|0;c[m+16>>2]=g;if(!g){Ue(0,3,41858,h);Ea(1)}h=FO(d)|0;c[m+24>>2]=h;if(!h){Ue(0,3,41858,i);Ea(1)}g=B(a,a)|0;f=g*12|0;g=g<<2;e=0;b:while(1){if((e|0)>=(b|0)){n=m;break a}c[l+(e<<2)>>2]=0;a=e<<2;d=0;while(1){if(d>>>0>=4)break;i=FO(f)|0;h=d+a|0;c[k+(h<<2)>>2]=i;if(!i){d=19;break b}i=FO(g)|0;c[(c[j>>2]|0)+(h<<2)>>2]=i;if(!i){d=21;break b}else d=d+1|0}e=e+1|0}if((d|0)==19){Ue(0,3,41858,o);Ea(1)}else if((d|0)==21){Ue(0,3,41858,p);Ea(1)}}else n=0;while(0);zb=q;return n|0}function jd(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;if(!a)b=-1;else{f=a+4|0;g=a+8|0;h=a+12|0;i=a+20|0;d=0;while(1){if((d|0)>=(c[f>>2]|0))break;if(c[(c[g>>2]|0)+(d<<2)>>2]|0)td(a,d)|0;e=d<<2;b=0;while(1){if((b|0)==4)break;j=b+e|0;GO(c[(c[h>>2]|0)+(j<<2)>>2]|0);GO(c[(c[i>>2]|0)+(j<<2)>>2]|0);b=b+1|0}d=d+1|0}GO(c[h>>2]|0);GO(c[i>>2]|0);GO(c[g>>2]|0);GO(c[a+16>>2]|0);GO(c[a+24>>2]|0);GO(a);b=0}return b|0}function kd(b,e,f,h,i,j,k){b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=zb;zb=zb+32|0;p=u+24|0;o=u;t=u+16|0;a:do if((e+-3|0)>>>0>5){c[f>>2]=-1;c[h>>2]=0;g[i>>3]=-1.0;l=-1}else{c[o>>2]=0;s=e+-1|0;q=B(s,e)|0;c[o+4>>2]=q;q=B(e,e)|0;c[o+8>>2]=q+-1;c[o+12>>2]=s;l=0;m=0;n=-1;while(1){if((l|0)==4)break;r=a[b+(c[o+(l<<2)>>2]|0)>>0]|0;l=l+1|0;m=(r&255)>(m&255)?r:m;n=(r&255)<(n&255)?r:n}m=m&255;l=n&255;if((m-l|0)<30){c[f>>2]=-1;c[h>>2]=0;g[i>>3]=-1.0;l=-2;break}n=(m+l|0)>>>1;l=0;while(1){if((l|0)==4)break;a[p+l>>0]=n>>>0>(d[b+(c[o+(l<<2)>>2]|0)>>0]|0)>>>0&1;l=l+1|0}m=0;while(1){if(m>>>0>=4){l=18;break}l=m+1|0;if(((a[p+m>>0]|0)==1?(a[p+(l&3)>>0]|0)==1:0)?(a[p+(m+2&3)>>0]|0)==0:0){l=17;break}m=l}if((l|0)==17)c[h>>2]=m;else if((l|0)==18?(m|0)==4:0){c[f>>2]=-1;c[h>>2]=0;g[i>>3]=-1.0;l=-3;break}r=255;l=0;while(1){if((l|0)==(q|0))break;o=b+l|0;m=d[o>>0]|0;p=m-n|0;p=(p|0)<0?0-p|0:p;a[o>>0]=n>>>0>m>>>0&1;r=(p|0)<(r|0)?p:r;l=l+1|0}l=c[h>>2]|0;b:do switch(l|0){case 0:{n=l;m=0;l=0;while(1){if((n|0)>=(e|0))break b;p=(n|0)==(s|0);q=B(n,e)|0;o=0;while(1){if((o|0)==(e|0))break;if((o|n|0)!=0?!(p&((o|0)==0|(o|0)==(s|0))):0){m=UO(m|0,l|0,1)|0;l=F()|0;m=m|(a[b+(o+q)>>0]|0)!=0}o=o+1|0}n=n+1|0}}case 1:{o=0;m=0;l=0;while(1){if((o|0)>=(e|0))break b;p=(o|0)==0;q=(o|0)==(s|0);n=s;while(1){if((n|0)<=-1)break;h=(n|0)==(s|0);if(!(p&h)?!(q&(h|(n|0)==0)):0){h=UO(m|0,l|0,1)|0;l=F()|0;m=b+((B(n,e)|0)+o)|0;m=h|(a[m>>0]|0)!=0}n=n+-1|0}o=o+1|0}}case 2:{n=s;m=0;l=0;while(1){if((n|0)<=-1)break b;q=(n|0)==(s|0)|(n|0)==0;p=B(n,e)|0;o=s;while(1){if((o|0)<=-1)break;if(!(q&(o|0)==(s|0)|(o|n|0)==0)){m=UO(m|0,l|0,1)|0;l=F()|0;m=m|(a[b+(o+p)>>0]|0)!=0}o=o+-1|0}n=n+-1|0}}case 3:{o=s;m=0;l=0;while(1){if((o|0)<=-1)break b;p=(o|0)==(s|0);q=(o|0)==0;n=0;while(1){if((n|0)>=(e|0))break;if(!(p&(n|0)==0|(n|o|0)==0|q&(n|0)==(s|0))){h=UO(m|0,l|0,1)|0;l=F()|0;m=b+((B(n,e)|0)+o)|0;m=h|(a[m>>0]|0)!=0}n=n+1|0}o=o+-1|0}}default:{m=0;l=0}}while(0);g[i>>3]=(r|0)>30?1.0:+(r|0)/30.0;switch(j|0){case 259:{k=a[240+m>>0]|0;s=k<<24>>24;j=t;c[j>>2]=s;c[j+4>>2]=((s|0)<0)<<31>>31;if(k<<24>>24<0){c[f>>2]=-1;g[i>>3]=-1.0;l=-4;break a}break}case 515:{l=a[112+m>>0]|0;s=l<<24>>24;j=t;c[j>>2]=s;c[j+4>>2]=((s|0)<0)<<31>>31;if(k|0)c[k>>2]=d[176+m>>0];if(l<<24>>24<0){c[f>>2]=-1;g[i>>3]=-1.0;l=-4;break a}break}case 772:case 1028:case 1029:case 1285:{l=md(j,m,l,0,t)|0;if((l|0)<0){c[f>>2]=-1;g[i>>3]=-1.0;l=-4;break a}if((k|0)!=0&(l|0)!=0)c[k>>2]=l;break}default:{k=t;c[k>>2]=m;c[k+4>>2]=l}}c[f>>2]=c[t>>2];l=0}while(0);zb=u;return l|0}function ld(b,d,e,f,h,i,j){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0.0;z=zb;zb=zb+16|0;l=z+8|0;k=z;a:do if((b|0)==0|(f|0)<1){c[h>>2]=0;c[i>>2]=0;g[j>>3]=-1.0;d=-1}else switch(d|0){case 0:{x=B(f,f)|0;w=x*3|0;x=FO(x*12|0)|0;if(!x){Ue(0,3,41858,k);Ea(1)}d=0;k=0;while(1){if((d|0)==(w|0))break;t=k+(~a[e+d>>0]&255)|0;d=d+1|0;k=t}l=(k>>>0)/(w>>>0)|0;d=0;k=0;while(1){if((k|0)==(w|0))break;t=(~a[e+k>>0]&255)-l|0;c[x+(k<<2)>>2]=t;d=(B(t,t)|0)+d|0;k=k+1|0}v=+u(+(+(d|0)));if(v/(+(f|0)*1.7320508)<15.0){c[h>>2]=0;c[i>>2]=0;g[j>>3]=-1.0;GO(x);d=-2;break a}r=c[b>>2]|0;s=b+8|0;t=b+12|0;q=b+16|0;m=0.0;p=0;d=-1;e=-1;k=-1;while(1){if((p|0)>=(r|0))break;l=c[s>>2]|0;b:while(1){d=d+1|0;switch(c[l+(d<<2)>>2]|0){case 0:break;case 2:{l=e;break b}default:{y=18;break b}}}c:do if((y|0)==18){y=0;o=d<<2;n=0;l=e;while(1){if((n|0)==4)break c;b=n+o|0;e=0;f=0;while(1){if((f|0)==(w|0))break;e=(B(c[(c[(c[t>>2]|0)+(b<<2)>>2]|0)+(f<<2)>>2]|0,c[x+(f<<2)>>2]|0)|0)+e|0;f=f+1|0}A=+(e|0)/+g[(c[q>>2]|0)+(b<<3)>>3]/v;f=A>m;b=f?n:k;n=n+1|0;m=f?A:m;l=f?d:l;k=b}}while(0);p=p+1|0;e=l}c[i>>2]=k;c[h>>2]=e;g[j>>3]=m;GO(x);d=0;break a}case 1:{w=B(f,f)|0;x=FO(w<<2)|0;if(!x){Ue(0,3,41858,l);Ea(1)}d=0;k=0;while(1){if((k|0)==(w|0))break;d=d+(~a[e+k>>0]&255)|0;k=k+1|0}l=(d>>>0)/(w>>>0)|0;d=0;k=0;while(1){if((k|0)==(w|0))break;t=(~a[e+k>>0]&255)-l|0;c[x+(k<<2)>>2]=t;d=(B(t,t)|0)+d|0;k=k+1|0}v=+u(+(+(d|0)));if(v/+(f|0)<15.0){c[h>>2]=0;c[i>>2]=0;g[j>>3]=-1.0;GO(x);d=-2;break a}r=c[b>>2]|0;s=b+8|0;t=b+20|0;q=b+24|0;p=0;d=-1;m=0.0;e=-1;k=-1;while(1){if((p|0)>=(r|0))break;l=c[s>>2]|0;d:while(1){d=d+1|0;switch(c[l+(d<<2)>>2]|0){case 0:break;case 2:{l=e;break d}default:{y=40;break d}}}e:do if((y|0)==40){y=0;o=d<<2;n=0;l=e;while(1){if((n|0)==4)break e;b=n+o|0;e=0;f=0;while(1){if((f|0)==(w|0))break;e=(B(c[(c[(c[t>>2]|0)+(b<<2)>>2]|0)+(f<<2)>>2]|0,c[x+(f<<2)>>2]|0)|0)+e|0;f=f+1|0}A=+(e|0)/+g[(c[q>>2]|0)+(b<<3)>>3]/v;f=A>m;b=f?n:k;n=n+1|0;m=f?A:m;l=f?d:l;k=b}}while(0);p=p+1|0;e=l}c[i>>2]=k;c[h>>2]=e;g[j>>3]=m;GO(x);d=0;break a}default:{d=-1;break a}}while(0);zb=z;return d|0}function md(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,G=0,H=0,I=0;I=zb;zb=zb+2384|0;l=I+2320|0;D=I+880|0;A=I+800|0;H=I+720|0;C=I+640|0;y=I+560|0;G=I+48|0;E=I;switch(b|0){case 2830:{l=g;u=1200;x=688;m=120;n=127;w=64;o=9;i=8;break}case 772:{j=624;k=432;m=13;n=15;b=9;o=1;i=5;break}case 1028:{j=624;k=432;m=13;n=15;b=5;o=2;i=5;break}case 1029:{b=12;g=2;i=4;break}case 1285:{b=7;g=3;i=4;break}default:b=-1}if((i|0)==4){j=496;k=304;m=22;n=31;o=g;i=5}a:do if((i|0)==5){i=0;g=f;while(1){if((i|0)==(m|0)){u=j;x=k;w=b;i=8;break a}a[l+i>>0]=e&1;x=TO(e|0,g|0,1)|0;i=i+1|0;e=x;g=F()|0}}while(0);b:do if((i|0)==8){t=o<<1;g=0;i=1;while(1){if((i|0)>(t|0))break;j=y+(i<<2)|0;c[j>>2]=0;e=0;b=0;while(1){if((e|0)>=(m|0))break;if(a[l+e>>0]|0){v=x+(((B(e,i)|0)%(n|0)|0)<<2)|0;b=b^c[v>>2];c[j>>2]=b}e=e+1|0}c[j>>2]=c[u+(b<<2)>>2];g=(b|0)==0?g:1;i=i+1|0}v=(g|0)!=0;c:do if(v){c[A>>2]=0;g=c[y+4>>2]|0;c[A+4>>2]=g;c[D>>2]=0;c[D+72>>2]=1;b=1;while(1){if((b|0)>=(t|0))break;c[D+(b<<2)>>2]=-1;c[D+72+(b<<2)>>2]=0;b=b+1|0}c[H>>2]=0;c[H+4>>2]=0;c[C>>2]=-1;c[C+4>>2]=0;s=0;r=0;while(1){f=s;s=s+1|0;d:do if((g|0)==-1){f=f+2|0;c[H+(f<<2)>>2]=r;b=0;while(1){if((b|0)>(r|0)){q=r;break d}q=D+(s*72|0)+(b<<2)|0;p=c[q>>2]|0;c[D+(f*72|0)+(b<<2)>>2]=p;c[q>>2]=c[u+(p<<2)>>2];b=b+1|0}}else{e=f;while(1){b=(e|0)>0;if(b&(c[A+(e<<2)>>2]|0)==-1)e=e+-1|0;else break}if(b){b=e;i=e;while(1){j=i;i=i+-1|0;if((c[A+(i<<2)>>2]|0)==-1)e=b;else e=(c[C+(b<<2)>>2]|0)<(c[C+(i<<2)>>2]|0)?i:b;if((j|0)<=1)break;else b=e}}i=H+(e<<2)|0;p=s-e|0;q=p+(c[i>>2]|0)|0;f=f+2|0;q=(r|0)>(q|0)?r:q;c[H+(f<<2)>>2]=q;b=0;while(1){if((b|0)>=(t|0))break;c[D+(f*72|0)+(b<<2)>>2]=0;b=b+1|0}j=g+n|0;k=A+(e<<2)|0;g=c[i>>2]|0;b=0;while(1){if((b|0)>(g|0))break;i=c[D+(e*72|0)+(b<<2)>>2]|0;if((i|0)!=-1)c[D+(f*72|0)+(p+b<<2)>>2]=c[x+(((j+i-(c[k>>2]|0)|0)%(n|0)|0)<<2)>>2];b=b+1|0}b=0;while(1){if((b|0)>(r|0))break d;p=D+(s*72|0)+(b<<2)|0;k=c[p>>2]|0;j=D+(f*72|0)+(b<<2)|0;c[j>>2]=c[j>>2]^k;c[p>>2]=c[u+(k<<2)>>2];b=b+1|0}}while(0);c[C+(f<<2)>>2]=s-q;if((s|0)>=(t|0))break;b=c[y+(f<<2)>>2]|0;if((b|0)==-1)b=0;else b=c[x+(b<<2)>>2]|0;i=A+(f<<2)|0;c[i>>2]=b;e=1;while(1){if((e|0)>(q|0))break;g=c[y+(f-e<<2)>>2]|0;if((g|0)!=-1?(z=c[D+(f*72|0)+(e<<2)>>2]|0,(z|0)!=0):0){b=b^c[x+((((c[u+(z<<2)>>2]|0)+g|0)%(n|0)|0)<<2)>>2];c[i>>2]=b}e=e+1|0}g=c[u+(b<<2)>>2]|0;c[i>>2]=g;if((q|0)>(o|0))break;else r=q}if((q|0)>(o|0)){b=-1;break b}b=0;while(1){if((b|0)>(q|0))break;C=D+(f*72|0)+(b<<2)|0;c[C>>2]=c[u+(c[C>>2]<<2)>>2];b=b+1|0}b=1;while(1){if((b|0)>(q|0))break;c[E+(b<<2)>>2]=c[D+(f*72|0)+(b<<2)>>2];b=b+1|0}b=0;k=1;while(1){if((n|0)<(k|0))break;j=1;g=1;while(1){if((j|0)>(q|0))break;e=E+(j<<2)|0;i=c[e>>2]|0;if((i|0)!=-1){D=(i+j|0)%(n|0)|0;c[e>>2]=D;g=c[x+(D<<2)>>2]^g}j=j+1|0}if(!g){c[G+(b<<2)>>2]=n-k;b=b+1|0}k=k+1|0}if((b|0)!=(q|0)){b=-1;break b}b=0;while(1){if((b|0)>=(q|0))break c;E=l+(c[G+(b<<2)>>2]|0)|0;a[E>>0]=a[E>>0]^1;b=b+1|0}}else f=0;while(0);b=h;c[b>>2]=0;c[b+4>>2]=0;b=m-w|0;g=1;e=0;i=0;j=0;while(1){if((b|0)>=(m|0))break;E=NO(g|0,e|0,d[l+b>>0]|0,0)|0;E=OO(E|0,F()|0,i|0,j|0)|0;G=F()|0;D=h;c[D>>2]=E;c[D+4>>2]=G;D=UO(g|0,e|0,1)|0;b=b+1|0;g=D;e=F()|0;i=E;j=G}if(v)b=c[H+(f<<2)>>2]|0;else b=0}while(0);zb=I;return b|0}function nd(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;f=Dd(8,8)|0;h=Dd(8,1)|0;i=Dd(8,1)|0;e=0;while(1){if((e|0)==4)break;o=a+(e<<4)|0;j=c[f>>2]|0;k=e<<4;g[j+(k<<3)>>3]=+g[o>>3];n=a+(e<<4)+8|0;g[j+((k|1)<<3)>>3]=+g[n>>3];g[j+((k|2)<<3)>>3]=1.0;g[j+((k|3)<<3)>>3]=0.0;g[j+((k|4)<<3)>>3]=0.0;g[j+((k|5)<<3)>>3]=0.0;m=b+(e<<4)|0;g[j+((k|6)<<3)>>3]=-(+g[o>>3]*+g[m>>3]);g[j+((k|7)<<3)>>3]=-(+g[n>>3]*+g[m>>3]);g[j+((k|8)<<3)>>3]=0.0;g[j+((k|9)<<3)>>3]=0.0;g[j+((k|10)<<3)>>3]=0.0;g[j+((k|11)<<3)>>3]=+g[o>>3];g[j+((k|12)<<3)>>3]=+g[n>>3];g[j+((k|13)<<3)>>3]=1.0;l=b+(e<<4)+8|0;g[j+((k|14)<<3)>>3]=-(+g[o>>3]*+g[l>>3]);g[j+((k|15)<<3)>>3]=-(+g[n>>3]*+g[l>>3]);k=c[h>>2]|0;j=e<<1;g[k+(j<<3)>>3]=+g[m>>3];g[k+((j|1)<<3)>>3]=+g[l>>3];e=e+1|0}Xd(f)|0;Nd(i,f,h)|0;a=c[i>>2]|0;e=0;while(1){if((e|0)==2)break;o=e*3|0;g[d+(e*24|0)>>3]=+g[a+(o<<3)>>3];g[d+(e*24|0)+8>>3]=+g[a+(o+1<<3)>>3];g[d+(e*24|0)+16>>3]=+g[a+(o+2<<3)>>3];e=e+1|0}g[d+48>>3]=+g[a+48>>3];g[d+56>>3]=+g[a+56>>3];g[d+64>>3]=1.0;Ld(f)|0;Ld(h)|0;Ld(i)|0;return}function od(a,b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=+k;l=l|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;t=t|0;var u=0,v=0,w=0;w=zb;zb=zb+12304|0;v=w;u=w+12288|0;do if((d+-2|0)>>>0<3){if((r|0)!=2830){u=r&255;if((pd(b,2,u,u*3|0,e,f,g,h,i,j,k,v)|0)<0){c[o>>2]=-1;r=-6;break}u=kd(v,u,o,p,q,r,s)|0;if(!t){r=u;break}r=t;c[r>>2]=0;c[r+4>>2]=0;r=u;break}if((pd(b,2,14,42,e,f,g,h,i,j,.875,v)|0)<0){c[o>>2]=-1;r=-6;break}r=qd(v,u,p,q,s)|0;if((r|0)<0){c[o>>2]=-1;break}p=u;u=c[p>>2]|0;p=c[p+4>>2]|0;if((u|0)==-1&(p|0)==-1){c[o>>2]=-1;r=-5;break}c[o>>2]=(u&-32768|0)==0&0==0?u&32767:0;if(t){c[t>>2]=u;c[t+4>>2]=p}}else r=1;while(0);a:do switch(d|0){case 0:case 1:case 3:case 4:{if(!a){c[l>>2]=-1;u=-1;break a}u=a+28|0;p=c[u>>2]|0;q=p<<2;switch(d|0){case 0:case 3:if((pd(b,0,p,q,e,f,g,h,i,j,k,v)|0)<0){c[l>>2]=-1;u=-6;break a}else{u=ld(a,0,v,c[u>>2]|0,l,m,n)|0;break a}default:if((pd(b,1,p,q,e,f,g,h,i,j,k,v)|0)<0){c[l>>2]=-1;u=-6;break a}else{u=ld(a,1,v,c[u>>2]|0,l,m,n)|0;break a}}}default:u=1}while(0);if((r|0)!=1)u=(u|0)==1?r:(u&r|0)<0?u:0;zb=w;return u|0}function pd(b,e,h,i,j,k,l,m,n,o,p,q){b=b|0;e=e|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;n=n|0;o=o|0;p=+p;q=q|0;var r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0.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,V=0.0,W=0,X=0;R=zb;zb=zb+256|0;A=R+232|0;z=R+224|0;D=R+216|0;C=R+208|0;s=R+144|0;t=R+80|0;N=R;O=R+240|0;P=R+236|0;g[s>>3]=100.0;g[s+8>>3]=100.0;g[s+16>>3]=110.0;g[s+24>>3]=100.0;g[s+32>>3]=110.0;g[s+40>>3]=110.0;g[s+48>>3]=100.0;g[s+56>>3]=110.0;r=0;while(1){if((r|0)==4)break;g[t+(r<<4)>>3]=+g[o+(r<<4)>>3];g[t+(r<<4)+8>>3]=+g[o+(r<<4)+8>>3];r=r+1|0}nd(s,t,N);y=+g[t>>3];T=+g[t+16>>3];w=y-T;I=+g[t+8>>3];S=+g[t+24>>3];u=I-S;r=~~(w*w+u*u);u=+g[t+32>>3];w=+g[t+48>>3];V=u-w;v=+g[t+40>>3];x=+g[t+56>>3];U=v-x;L=~~(V*V+U*U);u=T-u;v=S-v;t=~~(u*u+v*v);y=w-y;I=x-I;M=~~(y*y+I*I);r=~~(+(((L|0)>(r|0)?L:r)|0)*p*p);t=~~(+(((M|0)>(t|0)?M:t)|0)*p*p);if(!b){s=h;while(1)if((s|0)<(i|0)&(B(s,s)|0)<(r|0))s=s<<1;else break;r=h;while(1)if((r|0)<(i|0)&(B(r,r)|0)<(t|0))r=r<<1;else break}else{s=h;while(1)if((s|0)<(i|0)&(B(s<<2,s)|0)<(r|0))s=s<<1;else break;r=h;while(1)if((r|0)<(i|0)&(B(r<<2,r)|0)<(t|0))r=r<<1;else break}M=(s|0)>(i|0)?i:s;J=(r|0)>(i|0)?i:r;K=(M|0)/(h|0)|0;L=(J|0)/(h|0)|0;u=(1.0-p)*.5*10.0;I=p*10.0;H=B(h,h)|0;a:do if(!e){H=H*3|0;r=HO(H,4)|0;if(!r){Ue(0,3,41858,C);Ea(1)}b:do switch(m|0){case 0:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=((B(t,k)|0)+s|0)*3|0;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t+2)>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t+1)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+t>>0]|0)}i=i+1|0}o=o+1|0}}case 1:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=((B(t,k)|0)+s|0)*3|0;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+t>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t+1)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+(t+2)>>0]|0)}i=i+1|0}o=o+1|0}}case 2:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=(B(t,k)|0)+s<<2;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|2)>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|1)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+t>>0]|0)}i=i+1|0}o=o+1|0}}case 3:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=(B(t,k)|0)+s<<2;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+t>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|1)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+(t|2)>>0]|0)}i=i+1|0}o=o+1|0}}case 4:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=(B(t,k)|0)+s<<2;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|1)>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|2)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+(t|3)>>0]|0)}i=i+1|0}o=o+1|0}}case 5:case 12:case 13:case 14:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=j+((B(t,k)|0)+s)|0;t=d[t>>0]|0;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+t;s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+t;b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+t}i=i+1|0}o=o+1|0}}case 6:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=(B(t,k)|0)+s<<2;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|3)>>0]|0);s=r+(b+1<<2)|0;c[s>>2]=(c[s>>2]|0)+(d[j+(t|2)>>0]|0);b=r+(b+2<<2)|0;c[b>>2]=(c[b>>2]|0)+(d[j+(t|1)>>0]|0)}i=i+1|0}o=o+1|0}}case 7:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){X=B(t,k)|0;W=(s&65534)+X<<1;T=+((d[j+W>>0]|0)+-128|0);V=+((d[j+(W+2)>>0]|0)+-128|0);U=+((d[j+(X+s<<1|1)>>0]|0)+-16|0)*298.0820007324219;X=~~(T*516.4110107421875+U)>>8;W=~~(U-T*100.29100036621094-V*208.1199951171875)>>8;t=~~(U+V*408.5830078125)>>8;X=(X|0)>0?X:0;b=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;s=r+(b<<2)|0;c[s>>2]=((X|0)<255?X:255)+(c[s>>2]|0);W=(W|0)>0?W:0;s=r+(b+1<<2)|0;c[s>>2]=((W|0)<255?W:255)+(c[s>>2]|0);t=(t|0)>0?t:0;b=r+(b+2<<2)|0;c[b>>2]=((t|0)<255?t:255)+(c[b>>2]|0)}i=i+1|0}o=o+1|0}}case 8:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){t=B(t,k)|0;W=(s&65534)+t<<1;T=+((d[j+(W|1)>>0]|0)+-128|0);V=+((d[j+(W+3)>>0]|0)+-128|0);U=+((d[j+(t+s<<1)>>0]|0)+-16|0)*298.0820007324219;s=~~(U+T*516.4110107421875)>>8;t=~~(U-T*100.29100036621094-V*208.1199951171875)>>8;W=~~(U+V*408.5830078125)>>8;s=(s|0)>0?s:0;X=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;b=r+(X<<2)|0;c[b>>2]=((s|0)<255?s:255)+(c[b>>2]|0);t=(t|0)>0?t:0;b=r+(X+1<<2)|0;c[b>>2]=((t|0)<255?t:255)+(c[b>>2]|0);W=(W|0)>0?W:0;X=r+(X+2<<2)|0;c[X>>2]=((W|0)<255?W:255)+(c[X>>2]|0)}i=i+1|0}o=o+1|0}}case 9:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;i=0;while(1){if((i|0)>=(J|0))break b;v=w+I*(+(i|0)+.5)/x;o=0;while(1){if((o|0)>=(M|0))break;u=w+I*(+(o|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;t=a[j+(W|1)>>0]|0;X=((B((i|0)/(L|0)|0,h)|0)+((o|0)/(K|0)|0)|0)*3|0;b=r+(X<<2)|0;c[b>>2]=(c[b>>2]|0)+((t<<3&255|4)&255);W=a[j+W>>0]|0;b=r+(X+1<<2)|0;c[b>>2]=((t&-32&255)>>>3|W<<5&255|2)+(c[b>>2]|0);X=r+(X+2<<2)|0;c[X>>2]=(c[X>>2]|0)+((W&-8|4)&255)}o=o+1|0}i=i+1|0}}case 10:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;t=a[j+(W|1)>>0]|0;X=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;b=r+(X<<2)|0;c[b>>2]=(c[b>>2]|0)+((t<<2&255|4)&255);W=a[j+W>>0]|0;b=r+(X+1<<2)|0;c[b>>2]=((t&-64&255)>>>3|W<<5&255|4)+(c[b>>2]|0);X=r+(X+2<<2)|0;c[X>>2]=(c[X>>2]|0)+((W&-8|4)&255)}i=i+1|0}o=o+1|0}}case 11:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break b;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;X=((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)|0)*3|0;b=r+(X<<2)|0;c[b>>2]=(c[b>>2]|0)+((a[j+(W|1)>>0]&-16|8)&255);W=a[j+W>>0]|0;b=r+(X+1<<2)|0;c[b>>2]=(c[b>>2]|0)+((W<<4&255|8)&255);X=r+(X+2<<2)|0;c[X>>2]=(c[X>>2]|0)+((W&-16|8)&255)}i=i+1|0}o=o+1|0}}default:{Ue(0,3,20166,D);Q=306;break a}}while(0);t=B(L,K)|0;s=0;while(1){if((s|0)==(H|0))break;a[q+s>>0]=((c[r+(s<<2)>>2]|0)>>>0)/(t>>>0)|0;s=s+1|0}GO(r);r=0}else{r=HO(H,4)|0;if(!r){Ue(0,3,41858,z);Ea(1)}c:do if(m>>>0<2){w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=((B(t,k)|0)+s|0)*3|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+((((d[j+(W+1)>>0]|0)+(d[j+W>>0]|0)+(d[j+(W+2)>>0]|0)|0)>>>0)/3|0)}i=i+1|0}o=o+1|0}}else{if((m|1|0)==3){w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<2;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+((((d[j+(W|1)>>0]|0)+(d[j+W>>0]|0)+(d[j+(W|2)>>0]|0)|0)>>>0)/3|0)}i=i+1|0}o=o+1|0}}if((m|2|0)==6){w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<2;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+((((d[j+(W|2)>>0]|0)+(d[j+(W|1)>>0]|0)+(d[j+(W|3)>>0]|0)|0)>>>0)/3|0)}i=i+1|0}o=o+1|0}}switch(m|0){case 5:case 12:case 13:case 14:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=j+((B(t,k)|0)+s)|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+(d[W>>0]|0)}i=i+1|0}o=o+1|0}}case 7:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=j+((B(t,k)|0)+s<<1|1)|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+(d[W>>0]|0)}i=i+1|0}o=o+1|0}}case 8:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=j+((B(t,k)|0)+s<<1)|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=(c[X>>2]|0)+(d[W>>0]|0)}i=i+1|0}o=o+1|0}}case 9:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;b=d[j+W>>0]|0;W=d[j+(W|1)>>0]|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=((((b<<5&224|W>>>3&28|2)+(b&248|4)+(W<<3&248|4)|0)>>>0)/3|0)+(c[X>>2]|0)}i=i+1|0}o=o+1|0}}case 10:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;b=d[j+W>>0]|0;W=d[j+(W|1)>>0]|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=((((b<<5&224|W>>>3&24|4)+(b&248|4)+(W<<2&248|4)|0)>>>0)/3|0)+(c[X>>2]|0)}i=i+1|0}o=o+1|0}}case 11:{w=u+100.0;x=+(J|0);y=+(M|0);z=N+48|0;A=N+56|0;C=N+64|0;D=N+8|0;m=N+16|0;E=N+24|0;F=N+32|0;G=N+40|0;e=(b|0)==1;o=0;while(1){if((o|0)>=(J|0))break c;v=w+I*(+(o|0)+.5)/x;i=0;while(1){if((i|0)>=(M|0))break;u=w+I*(+(i|0)+.5)/y;p=+g[C>>3]+(u*+g[z>>3]+v*+g[A>>3]);if(p==0.0){Q=306;break a}V=(+g[m>>3]+(u*+g[N>>3]+v*+g[D>>3]))/p;f[O>>2]=V;u=(+g[G>>3]+(u*+g[E>>3]+v*+g[F>>3]))/p;f[P>>2]=u;oe(n,V,u,O,P)|0;u=+f[O>>2];if(e){s=((~~(u+1.0)|0)/2|0)<<1;t=((~~(+f[P>>2]+1.0)|0)/2|0)<<1}else{s=~~(u+.5);t=~~(+f[P>>2]+.5)}if((s|0)>-1?(t|0)<(l|0)&((t|0)>-1&(s|0)<(k|0)):0){W=(B(t,k)|0)+s<<1;b=d[j+W>>0]|0;X=r+((B((o|0)/(L|0)|0,h)|0)+((i|0)/(K|0)|0)<<2)|0;c[X>>2]=((((b<<4&240|8)+(b&240|8)+((a[j+(W|1)>>0]&-16|8)&255)|0)>>>0)/3|0)+(c[X>>2]|0)}i=i+1|0}o=o+1|0}}default:{Ue(0,3,20166,A);Q=306;break a}}}while(0);t=B(L,K)|0;s=0;while(1){if((s|0)==(H|0))break;a[q+s>>0]=((c[r+(s<<2)>>2]|0)>>>0)/(t>>>0)|0;s=s+1|0}GO(r);r=0}while(0);if((Q|0)==306){GO(r);r=-1}zb=R;return r|0}function qd(b,e,f,h,i){b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=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;y=zb;zb=zb+160|0;o=y+152|0;n=y+128|0;x=y+144|0;w=y;c[n>>2]=0;c[n+4>>2]=182;c[n+8>>2]=195;c[n+12>>2]=13;j=0;l=0;m=-1;while(1){if((j|0)==4)break;v=a[b+(c[n+(j<<2)>>2]|0)>>0]|0;j=j+1|0;l=(v&255)>(l&255)?v:l;m=(v&255)<(m&255)?v:m}l=l&255;j=m&255;a:do if((l-j|0)>=30){v=(l+j|0)>>>1;j=0;while(1){if((j|0)==4)break;a[o+j>>0]=v>>>0>(d[b+(c[n+(j<<2)>>2]|0)>>0]|0)>>>0&1;j=j+1|0}u=0;while(1){if(u>>>0>=4)break;j=u+1|0;if(((a[o+u>>0]|0)==1?(a[o+(j&3)>>0]|0)==1:0)?(a[o+(u+2&3)>>0]|0)==0:0)break;u=j}b:do switch(u&2147483647|0){case 4:{c[f>>2]=0;g[h>>3]=-1.0;j=-3;break a}case 0:{l=119;n=0;j=255;while(1){if((n|0)==14){p=57;break b}o=n+-3|0;p=(n&2147483646|0)==12;q=n*14|0;m=0;while(1){if((m|0)==14)break;if(((m+-3|o)>>>0>=8?(r=m&2147483646,((m|n)&2147483646|0)!=0):0)?!(p&((r|0)==0|(r|0)==12)):0){t=(d[b+(m+q)>>0]|0)-v|0;a[w+l>>0]=t>>>31;t=(t|0)>-1?t:0-t|0;l=l+-1|0;j=(t|0)<(j|0)?t:j}m=m+1|0}n=n+1|0}}case 1:{l=119;j=255;n=0;while(1){if((n|0)==14){p=57;break b}o=n+-3|0;q=n&2147483646;p=(q|0)==0;q=(q|0)==12;m=13;while(1){if((m|0)<=-1)break;if(((m+-3|o)>>>0>=8?(s=(m&-2|0)==12,!(p&s)):0)?!(q&(m>>>0<2|s)):0){t=(d[b+((m*14|0)+n)>>0]|0)-v|0;a[w+l>>0]=t>>>31;t=(t|0)>-1?t:0-t|0;l=l+-1|0;j=(t|0)<(j|0)?t:j}m=m+-1|0}n=n+1|0}}case 2:{m=13;l=119;j=255;while(1){if((m|0)<=-1){p=57;break b}n=m+-3|0;q=m>>>0<2|(m&-2|0)==12;p=m*14|0;o=13;while(1){if((o|0)<=-1)break;if((o+-3|n)>>>0>=8?!((o|m)>>>0<2|q&(o&-2|0)==12):0){t=(d[b+(o+p)>>0]|0)-v|0;a[w+l>>0]=t>>>31;t=(t|0)>-1?t:0-t|0;l=l+-1|0;j=(t|0)<(j|0)?t:j}o=o+-1|0}m=m+-1|0}}case 3:{n=13;l=119;j=255;while(1){if((n|0)<=-1){p=57;break b}o=n+-3|0;p=n&-2;q=(p|0)==12;r=(p|0)==0;m=0;while(1){if((m|0)==14)break;if(((m+-3|o)>>>0>=8?(t=m&2147483646,!(q&(t|0)==0)):0)?!((t|p|0)==0|r&(t|0)==12):0){s=(d[b+((m*14|0)+n)>>0]|0)-v|0;a[w+l>>0]=s>>>31;s=(s|0)>-1?s:0-s|0;l=l+-1|0;j=(s|0)<(j|0)?s:j}m=m+1|0}n=n+-1|0}}default:{c[f>>2]=u;k=1.0}}while(0);if((p|0)==57){c[f>>2]=u;k=(j|0)>30?1.0:+(j|0)/30.0}g[h>>3]=k;j=md(2830,0,0,w,x)|0;if((j|0)<0)j=-4;else{if(i|0)c[i>>2]=j;i=x;x=c[i+4>>2]|0;j=e;c[j>>2]=c[i>>2];c[j+4>>2]=x;j=0}}else{c[f>>2]=0;g[h>>3]=-1.0;j=-2}while(0);zb=y;return j|0}function rd(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,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0.0;A=zb;zb=zb+32|0;z=A+24|0;f=A+16|0;d=A+8|0;do if(a){if(!b){Ue(0,3,20225,d);d=-1;break}y=a+8|0;e=c[a+4>>2]|0;d=0;while(1){if((d|0)>=(e|0))break;if(!(c[(c[y>>2]|0)+(d<<2)>>2]|0))break;d=d+1|0}if((d|0)!=(e|0)){x=jz(b)|0;if(!x){Ue(0,3,20270,f);d=-1;break}p=a+28|0;q=a+12|0;r=d<<2;s=a+20|0;t=a+16|0;v=a+24|0;e=tA(x,20293)|0;o=0;a:while(1){if(o>>>0>=4){e=36;break}w=o+r|0;b=0;n=0;while(1){if(n>>>0>=3)break;l=(n|0)==0;m=(n|0)==2;k=0;f=c[p>>2]|0;while(1){if((k|0)>=(f|0))break;j=0;while(1){if((j|0)>=(f|0))break;if(!e){e=21;break a}f=lA(e)|0;e=tA(0,20293)|0;f=255-f|0;h=(c[(c[q>>2]|0)+(w<<2)>>2]|0)+((((B(c[p>>2]|0,k)|0)+j|0)*3|0)+n<<2)|0;c[h>>2]=f;h=c[(c[s>>2]|0)+(w<<2)>>2]|0;i=h+((B(c[p>>2]|0,k)|0)+j<<2)|0;if(!l){c[i>>2]=(c[i>>2]|0)+f;if(m){i=h+((B(c[p>>2]|0,k)|0)+j<<2)|0;c[i>>2]=(c[i>>2]|0)/3|0}}else c[i>>2]=f;j=j+1|0;b=f+b|0;f=c[p>>2]|0}k=k+1|0}n=n+1|0}i=c[p>>2]|0;j=(b|0)/(B(i*3|0,i)|0)|0;b=0;f=0;while(1){if(f>>>0>=(B(i*3|0,i)|0)>>>0)break;n=(c[(c[q>>2]|0)+(w<<2)>>2]|0)+(f<<2)|0;i=(c[n>>2]|0)-j|0;c[n>>2]=i;i=(B(i,i)|0)+b|0;b=i;f=f+1|0;i=c[p>>2]|0}C=+u(+(+(b|0)));g[(c[t>>2]|0)+(w<<3)>>3]=C==0.0?1.0e-07:C;f=0;h=0;b=i;while(1){if(h>>>0>=(B(b,b)|0)>>>0)break;n=(c[(c[s>>2]|0)+(w<<2)>>2]|0)+(h<<2)|0;b=(c[n>>2]|0)-j|0;c[n>>2]=b;b=(B(b,b)|0)+f|0;f=b;h=h+1|0;b=c[p>>2]|0}C=+u(+(+(f|0)));g[(c[v>>2]|0)+(w<<3)>>3]=C==0.0?1.0e-07:C;o=o+1|0}if((e|0)==21){Ue(0,3,20298,z);GO(x);d=-1;break}else if((e|0)==36){GO(x);c[(c[y>>2]|0)+(d<<2)>>2]=1;c[a>>2]=(c[a>>2]|0)+1;break}}else d=-1}else{Ue(0,3,20200,A);d=-1}while(0);zb=A;return d|0} function Lm(b,d,e,g){b=b|0;d=d|0;e=e|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;y=zb;zb=zb+16|0;v=y;w=b+4|0;c[w>>2]=c[b>>2];do if((Ak(d)|0)!=0?(Ak(e)|0)!=0:0){Ym(b,Ak(d)|0);t=b+8|0;u=b+12|0;s=0;a:while(1){if(s>>>0>=(Ak(d)|0)>>>0)break;n=Zm(d,s)|0;yo(g,n)|0;q=_m(d,s)|0;o=zo(g)|0;p=o+4|0;q=q+16|0;l=0;m=-1;j=-1;i=2147483647;while(1){h=c[o>>2]|0;if(l>>>0>=(c[p>>2]|0)-h>>2>>>0)break;z=a[q>>0]|0;k=(_m(e,c[h+(l<<2)>>2]|0)|0)+16|0;do if(z<<24>>24==(a[k>>0]|0)){h=yl(n,Zm(e,c[(c[o>>2]|0)+(l<<2)>>2]|0)|0)|0;if(h>>>0>>0){k=h;h=m;i=c[(c[o>>2]|0)+(l<<2)>>2]|0;break}else{k=m;h=h>>>0>>0?h:j;break}}else{k=m;h=j}while(0);l=l+1|0;m=k;j=h}do if((m|0)!=-1){if((i|0)==-1){x=15;break a}if((j|0)==-1){an(v,s,i);h=c[w>>2]|0;if(h>>>0<(c[t>>2]|0)>>>0){p=v;q=c[p+4>>2]|0;z=h;c[z>>2]=c[p>>2];c[z+4>>2]=q;c[w>>2]=(c[w>>2]|0)+8}else bn(b,v);break}if(+(m>>>0)/+(j>>>0)<+f[u>>2]){an(v,s,i);h=c[w>>2]|0;if(h>>>0<(c[t>>2]|0)>>>0){p=v;q=c[p+4>>2]|0;z=h;c[z>>2]=c[p>>2];c[z+4>>2]=q;c[w>>2]=(c[w>>2]|0)+8}else bn(b,v)}}while(0);s=s+1|0}if((x|0)==15){z=Xf(Xf(PE(Xf(Xf(Xf(56032,31276)|0,31157)|0,35e3)|0,160)|0,35007)|0,31348)|0;IE(v,z+(c[(c[z>>2]|0)+-12>>2]|0)|0);x=XF(v,56736)|0;x=Ib[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;YF(v);QE(z,x)|0;ME(z)|0;ua()}z=(c[w>>2]|0)-(c[b>>2]|0)>>3;if(z>>>0>(Ak(d)|0)>>>0){z=Xf(Xf(PE(Xf(Xf(Xf(56032,31366)|0,31157)|0,35e3)|0,175)|0,35007)|0,31426)|0;IE(v,z+(c[(c[z>>2]|0)+-12>>2]|0)|0);x=XF(v,56736)|0;x=Ib[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;YF(v);QE(z,x)|0;ME(z)|0;ua()}else{r=(c[w>>2]|0)-(c[b>>2]|0)>>3;break}}else r=0;while(0);zb=y;return r|0}function Mm(b,d,e){b=b|0;d=d|0;e=e|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;t=zb;zb=zb+16|0;r=t;s=b+4|0;c[s>>2]=c[b>>2];do if((Ak(d)|0)!=0?(Ak(e)|0)!=0:0){Ym(b,Ak(d)|0);p=b+8|0;q=b+12|0;o=0;while(1){if(o>>>0>=(Ak(d)|0)>>>0)break;l=Zm(d,o)|0;m=(_m(d,o)|0)+16|0;i=0;j=-1;g=2147483647;h=-1;while(1){if(i>>>0>=(Ak(e)|0)>>>0)break;u=a[m>>0]|0;k=(_m(e,i)|0)+16|0;if(u<<24>>24==(a[k>>0]|0)){u=yl(l,Zm(e,i)|0)|0;v=u>>>0>>0;k=v?u:j;g=v?i:g;h=v?j:u>>>0>>0?u:h}else k=j;i=i+1|0;j=k}do if((j|0)!=-1){if((h|0)==-1){an(r,o,g);g=c[s>>2]|0;if(g>>>0<(c[p>>2]|0)>>>0){m=r;u=c[m+4>>2]|0;v=g;c[v>>2]=c[m>>2];c[v+4>>2]=u;c[s>>2]=(c[s>>2]|0)+8}else bn(b,r);break}if(+(j>>>0)/+(h>>>0)<+f[q>>2]){an(r,o,g);g=c[s>>2]|0;if(g>>>0<(c[p>>2]|0)>>>0){m=r;u=c[m+4>>2]|0;v=g;c[v>>2]=c[m>>2];c[v+4>>2]=u;c[s>>2]=(c[s>>2]|0)+8}else bn(b,r)}}while(0);o=o+1|0}v=(c[s>>2]|0)-(c[b>>2]|0)>>3;if(v>>>0>(Ak(d)|0)>>>0){v=Xf(Xf(PE(Xf(Xf(Xf(56032,31366)|0,31157)|0,35e3)|0,112)|0,35007)|0,31426)|0;IE(r,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(r,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(r);QE(v,u)|0;ME(v)|0;ua()}else{n=(c[s>>2]|0)-(c[b>>2]|0)>>3;break}}else n=0;while(0);zb=t;return n|0}function Nm(a){a=a|0;return a|0}function Om(a){a=a|0;return c[a>>2]|0}function Pm(a){a=a|0;return c[a+4>>2]|0}function Qm(a,b,d,e,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0.0,A=0.0;u=zb;zb=zb+32|0;s=u+20|0;t=u+8|0;o=u+4|0;p=u;q=e+4|0;uo(s,(c[q>>2]|0)-(c[e>>2]|0)>>1);uo(t,(c[q>>2]|0)-(c[e>>2]|0)>>1);n=c[e>>2]|0;r=(c[q>>2]|0)-n>>3;m=c[b>>2]|0;d=c[d>>2]|0;k=c[s>>2]|0;l=c[t>>2]|0;b=0;while(1){if((b|0)==(r|0))break;y=c[n+(b<<3)>>2]|0;w=c[n+(b<<3)+4>>2]|0;v=b<<2;x=k+(v<<2)|0;c[x>>2]=c[m+(y*20|0)>>2];c[x+4>>2]=c[m+(y*20|0)+4>>2];c[x+8>>2]=c[m+(y*20|0)+8>>2];c[x+12>>2]=c[m+(y*20|0)+12>>2];v=l+(v<<2)|0;c[v>>2]=c[d+(w*20|0)>>2];c[v+4>>2]=c[d+(w*20|0)+4>>2];c[v+8>>2]=c[d+(w*20|0)+8>>2];c[v+12>>2]=c[d+(w*20|0)+12>>2];b=b+1|0}A=+(g|0);A=A*.20000000298023224+A;z=+(h|0);z=z*.20000000298023224+z;op(a,-A,A,-z,z,0,0,12,10);vo(a,+(i>>1|0),+(j>>1|0));wo(a,i,j);qp(a,c[s>>2]|0,c[t>>2]|0,(c[q>>2]|0)-(c[e>>2]|0)>>3);Fp(a,o,p);y=+f[o>>2]<3.0?-1:c[p>>2]|0;gh(t);gh(s);zb=u;return y|0}function Rm(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=+g;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;v=zb;zb=zb+48|0;h=v+32|0;r=v+28|0;s=v+24|0;t=v+20|0;u=v+16|0;n=v+12|0;o=v+8|0;p=v+4|0;q=v;qo(b,n,o,p,q,e);l=a+4|0;c[l>>2]=c[a>>2];m=ro(b)|0;m=(c[m+4>>2]|0)-(c[m>>2]|0)>>2;e=so(b)|0;if(m>>>0>(c[d+4>>2]|0)-(c[d>>2]|0)>>3>>>0){k=Xf(Xf(PE(Xf(Xf(Xf(56032,31870)|0,30067)|0,35e3)|0,342)|0,35007)|0,31916)|0;IE(h,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);j=XF(h,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(h);QE(k,j)|0;ME(k)|0;ua()}k=a+8|0;e=c[e>>2]|0;h=0;while(1){if((h|0)>=(m|0))break;to(b,r,s,t,u,+f[e>>2],+f[e+4>>2],+f[e+8>>2],+f[e+12>>2],+(c[n>>2]|0)+.5,+(c[o>>2]|0)+.5,+(c[p>>2]|0)+.5,+(c[q>>2]|0)+.5);do if((+f[r>>2]>2]>2]>2]>2]|0)+(c[(c[i>>2]|0)+(h<<2)>>2]<<3)|0;j=c[l>>2]|0;if((j|0)==(c[k>>2]|0)){hn(a,i);break}else{w=i;i=c[w+4>>2]|0;c[j>>2]=c[w>>2];c[j+4>>2]=i;c[l>>2]=(c[l>>2]|0)+8;break}}while(0);e=e+16|0;h=h+1|0}zb=v;return}function Sm(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0;q=zb;zb=zb+64|0;o=q+44|0;p=q+32|0;n=q;m=e+4|0;jn(o,(c[m>>2]|0)-(c[e>>2]|0)>>3);jn(p,(c[m>>2]|0)-(c[e>>2]|0)>>3);l=c[e>>2]|0;m=(c[m>>2]|0)-l>>3;j=c[b>>2]|0;k=c[p>>2]|0;b=c[d>>2]|0;d=c[o>>2]|0;e=0;while(1){if((e|0)==(m|0))break;r=c[l+(e<<3)>>2]|0;c[k+(e<<3)>>2]=c[j+(r*20|0)>>2];c[k+(e<<3)+4>>2]=c[j+(r*20|0)+4>>2];r=c[l+(e<<3)+4>>2]|0;c[d+(e<<3)>>2]=c[b+(r*20|0)>>2];c[d+(e<<3)+4>>2]=c[b+(r*20|0)+4>>2];e=e+1|0}f[n>>2]=0.0;f[n+4>>2]=0.0;s=+(h|0);f[n+8>>2]=s;f[n+12>>2]=0.0;f[n+16>>2]=s;s=+(i|0);f[n+20>>2]=s;f[n+24>>2]=0.0;f[n+28>>2]=s;if(kn(g,a,d,k,m,n,4)|0)e=mn(a,h,i)|0;else e=0;ln(p);ln(o);zb=q;return e|0}function Tm(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;q=zb;zb=zb+16|0;p=q;h=+ji(h);o=g+4|0;Ym(a,(c[o>>2]|0)-(c[g>>2]|0)>>3);l=p+4|0;m=a+4|0;n=a+8|0;k=0;while(1){i=c[g>>2]|0;if(k>>>0>=(c[o>>2]|0)-i>>3>>>0)break;j=c[i+(k<<3)+4>>2]|0;i=c[e>>2]|0;$m(p,l,b,+f[i+(j*20|0)>>2],+f[i+(j*20|0)+4>>2]);r=+ji(+f[p>>2]-+f[(c[d>>2]|0)+((c[(c[g>>2]|0)+(k<<3)>>2]|0)*20|0)>>2]);do if(r+ +ji(+f[l>>2]-+f[(c[d>>2]|0)+((c[(c[g>>2]|0)+(k<<3)>>2]|0)*20|0)+4>>2])<=h){i=(c[g>>2]|0)+(k<<3)|0;j=c[m>>2]|0;if((j|0)==(c[n>>2]|0)){hn(a,i);break}else{s=i;i=c[s+4>>2]|0;c[j>>2]=c[s>>2];c[j+4>>2]=i;c[m>>2]=(c[m>>2]|0)+8;break}}while(0);k=k+1|0}zb=q;return}function Um(b,d,e,g,h){b=b|0;d=d|0;e=e|0;g=g|0;h=+h;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.0,B=0;z=zb;zb=zb+64|0;u=z+40|0;v=z;w=z+52|0;x=z+48|0;t=b+4|0;c[t>>2]=c[b>>2];do if((Ak(d)|0)!=0?(Ak(e)|0)!=0:0){h=+ji(h);if(!(Xm(v,g,0.0)|0)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,31132)|0,31157)|0,35e3)|0,196)|0,35007)|0,31243)|0;IE(u,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(u,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(u);QE(r,q)|0;ME(r)|0;ua()}Ym(b,Ak(d)|0);q=b+8|0;r=b+12|0;p=0;a:while(1){if(p>>>0>=(Ak(d)|0)>>>0)break;n=Zm(d,p)|0;o=_m(d,p)|0;$m(w,x,v,+f[o>>2],+f[o+4>>2]);o=o+16|0;l=0;m=-1;j=-1;i=2147483647;while(1){if(l>>>0>=(Ak(e)|0)>>>0)break;g=_m(e,l)|0;if((a[o>>0]|0)==(a[g+16>>0]|0)?(A=+ji(+f[w>>2]-+f[g>>2]),!(A+ +ji(+f[x>>2]-+f[g+4>>2])>h)):0){g=zl(n,Zm(e,l)|0)|0;B=g>>>0>>0;k=B?g:m;g=B?m:g>>>0>>0?g:j;i=B?l:i}else{k=m;g=j}l=l+1|0;m=k;j=g}do if((m|0)!=-1){if((i|0)==-1){y=16;break a}if((j|0)==-1){an(u,p,i);g=c[t>>2]|0;if(g>>>0<(c[q>>2]|0)>>>0){n=u;o=c[n+4>>2]|0;B=g;c[B>>2]=c[n>>2];c[B+4>>2]=o;c[t>>2]=(c[t>>2]|0)+8}else bn(b,u);break}if(+(m>>>0)/+(j>>>0)<+f[r>>2]){an(u,p,i);g=c[t>>2]|0;if(g>>>0<(c[q>>2]|0)>>>0){n=u;o=c[n+4>>2]|0;B=g;c[B>>2]=c[n>>2];c[B+4>>2]=o;c[t>>2]=(c[t>>2]|0)+8}else bn(b,u)}}while(0);p=p+1|0}if((y|0)==16){B=Xf(Xf(PE(Xf(Xf(Xf(56032,31276)|0,31157)|0,35e3)|0,241)|0,35007)|0,31348)|0;IE(u,B+(c[(c[B>>2]|0)+-12>>2]|0)|0);y=XF(u,56736)|0;y=Ib[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;YF(u);QE(B,y)|0;ME(B)|0;ua()}B=(c[t>>2]|0)-(c[b>>2]|0)>>3;if(B>>>0>(Ak(d)|0)>>>0){B=Xf(Xf(PE(Xf(Xf(Xf(56032,31366)|0,31157)|0,35e3)|0,256)|0,35007)|0,31426)|0;IE(u,B+(c[(c[B>>2]|0)+-12>>2]|0)|0);y=XF(u,56736)|0;y=Ib[c[(c[y>>2]|0)+28>>2]&63](y,10)|0;YF(u);QE(B,y)|0;ME(B)|0;ua()}else{s=(c[t>>2]|0)-(c[b>>2]|0)>>3;break}}else s=0;while(0);zb=z;return s|0}function Vm(a,b){a=a|0;b=b|0;var d=0;d=a+36|0;do{c[a>>2]=c[b>>2];a=a+4|0;b=b+4|0}while((a|0)<(d|0));return}function Wm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;b=b+8|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function Xm(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=+gn(b);if(!(+t(+d)<=c)){d=1.0/d;e=b+16|0;k=b+20|0;j=b+28|0;m=b+32|0;c=d*+xi(+f[e>>2],+f[k>>2],+f[j>>2],+f[m>>2]);f[a>>2]=c;l=b+8|0;h=b+4|0;c=d*+xi(+f[l>>2],+f[h>>2],+f[m>>2],+f[j>>2]);f[a+4>>2]=c;c=d*+xi(+f[h>>2],+f[l>>2],+f[e>>2],+f[k>>2]);f[a+8>>2]=c;g=b+12|0;i=b+24|0;c=d*+xi(+f[k>>2],+f[g>>2],+f[m>>2],+f[i>>2]);f[a+12>>2]=c;c=d*+xi(+f[b>>2],+f[l>>2],+f[i>>2],+f[m>>2]);f[a+16>>2]=c;c=d*+xi(+f[l>>2],+f[b>>2],+f[k>>2],+f[g>>2]);f[a+20>>2]=c;c=d*+xi(+f[g>>2],+f[e>>2],+f[i>>2],+f[j>>2]);f[a+24>>2]=c;c=d*+xi(+f[h>>2],+f[b>>2],+f[j>>2],+f[i>>2]);f[a+28>>2]=c;d=d*+xi(+f[b>>2],+f[h>>2],+f[g>>2],+f[e>>2]);f[a+32>>2]=d;a=1}else a=0;return a|0}function Ym(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+32|0;d=f;e=c[a>>2]|0;if((c[a+8>>2]|0)-e>>3>>>0>>0){dn(d,b,(c[a+4>>2]|0)-e>>3,a+8|0);en(a,d);fn(d)}zb=f;return}function Zm(a,b){a=a|0;b=b|0;b=B(c[a>>2]|0,b)|0;return (c[a+4>>2]|0)+b|0}function _m(a,b){a=a|0;b=b|0;return (c[a+16>>2]|0)+(b*20|0)|0}function $m(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;var g=0.0;g=+f[c+32>>2]+(+f[c+24>>2]*d+ +f[c+28>>2]*e);f[a>>2]=(+f[c+8>>2]+(+f[c>>2]*d+ +f[c+4>>2]*e))/g;f[b>>2]=(+f[c+20>>2]+(+f[c+12>>2]*d+ +f[c+16>>2]*e))/g;return}function an(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function bn(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=cn(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;dn(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;en(a,d);fn(d);zb=h;return}}function cn(a){a=a|0;return 536870911}function dn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function en(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function fn(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-8|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function gn(a){a=a|0;var b=0.0,c=0.0,d=0.0,e=0,g=0,h=0,i=0,j=0,k=0;h=a+16|0;k=a+20|0;e=a+28|0;j=a+32|0;d=+xi(+f[h>>2],+f[k>>2],+f[e>>2],+f[j>>2]);i=a+12|0;g=a+24|0;c=+xi(+f[i>>2],+f[k>>2],+f[g>>2],+f[j>>2]);b=+xi(+f[i>>2],+f[h>>2],+f[g>>2],+f[e>>2]);return +(d*+f[a>>2]-c*+f[a+4>>2]+b*+f[a+8>>2])}function hn(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=cn(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;dn(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;en(a,d);fn(d);zb=h;return}}function jn(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){no(a,b);oo(a,b)}return}function kn(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0;j=a+12|0;Vk(j,g);return wn(b,d,e,g,h,i,a,j,a+24|0,+f[a+36>>2],c[a+40>>2]|0,c[a+44>>2]|0,c[a+48>>2]|0)|0}function ln(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function mn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=zb;zb=zb+96|0;e=m+88|0;g=m+80|0;h=m+72|0;i=m+64|0;j=m;k=m+56|0;l=m+48|0;d=m+40|0;if(Xm(j,a,9.999999747378752e-06)|0){n=+(b|0);f[k>>2]=n;f[k+4>>2]=0.0;f[l>>2]=n;n=+(c|0);f[l+4>>2]=n;f[d>>2]=0.0;f[d+4>>2]=n;nn(e,j,55476);nn(g,j,k);nn(h,j,l);nn(i,j,d);n=+(B(c,b)|0)*.0001;if(+on(e,g,h,i)>2];e=c+4|0;g=+f[e>>2];d=+f[b+32>>2]+(+f[b+24>>2]*h+ +f[b+28>>2]*g);f[a>>2]=(+f[b+8>>2]+(h*+f[b>>2]+g*+f[b+4>>2]))/d;f[a+4>>2]=(+f[b+20>>2]+(+f[b+12>>2]*+f[c>>2]+ +f[b+16>>2]*+f[e>>2]))/d;return}function on(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0,g=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0;f=zb;zb=zb+48|0;l=f+32|0;m=f+24|0;k=f+16|0;h=f+8|0;g=f;rn(l,b,a);rn(m,c,a);rn(k,d,a);rn(h,b,c);rn(g,d,c);j=+sn(l,m);i=+sn(m,k);e=+sn(l,k);e=+tn(j,i,e,+sn(h,g));zb=f;return +e}function pn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=+qn(a,b,c)>0.0;f=+qn(b,c,d)>0.0;c=+qn(c,d,a)>0.0;d=+qn(d,a,b)>0.0;d=(f?1:-1)+(e?1:-1)+(c?1:-1)+(d?1:-1)|0;return (((d|0)>-1?d:0-d|0)|0)==4|0}function qn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0;d=+f[a>>2];e=+f[a+4>>2];return +((+f[b>>2]-d)*(+f[c+4>>2]-e)-(+f[b+4>>2]-e)*(+f[c>>2]-d))}function rn(a,b,c){a=a|0;b=b|0;c=c|0;f[a>>2]=+f[b>>2]-+f[c>>2];f[a+4>>2]=+f[b+4>>2]-+f[c+4>>2];return}function sn(a,b){a=a|0;b=b|0;return +(+t(+(+f[a>>2]*+f[b+4>>2]-+f[a+4>>2]*+f[b>>2]))*.5)}function tn(a,b,c,d){a=+a;b=+b;c=+c;d=+d;return +(+vn(+un(a,b,c),d))}function un(a,b,c){a=+a;b=+b;c=+c;return +(+vn(+vn(a,b),c))}function vn(a,b){a=+a;b=+b;return +(a>2]|0)-(c[i>>2]|0)>>2>>>0<(m*9|0)>>>0){z=Xf(Xf(PE(Xf(Xf(Xf(56032,31460)|0,31518)|0,35e3)|0,119)|0,35007)|0,31612)|0;IE(y,z+(c[(c[z>>2]|0)+-12>>2]|0)|0);x=XF(y,56736)|0;x=Ib[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;YF(y);QE(z,x)|0;ME(z)|0;ua()}x=c[j>>2]|0;z=x;if((c[j+4>>2]|0)-x>>2>>>0>>0){x=Xf(Xf(PE(Xf(Xf(Xf(56032,31662)|0,31518)|0,35e3)|0,120)|0,35007)|0,31712)|0;IE(y,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);u=XF(y,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(y);QE(x,u)|0;ME(x)|0;ua()}if((c[k+4>>2]|0)-(c[k>>2]|0)>>3>>>0>>0){x=Xf(Xf(PE(Xf(Xf(Xf(56032,31754)|0,31518)|0,35e3)|0,121)|0,35007)|0,31816)|0;IE(y,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);u=XF(y,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(y);QE(x,u)|0;ME(x)|0;ua()}if((e|0)>=4){c[w>>2]=1234;l=+ji(l);x=Bj(o,e)|0;tl(z,e,0);ul(z,e,e,w);q=z+4|0;r=z+8|0;s=z+12|0;t=(h|0)>0;o=0;u=0;while(1){if(!((u|0)<(m|0)&(o|0)<(n|0)))break;ul(z,e,4,w);D=c[z>>2]<<1;C=c[q>>2]<<1;B=c[r>>2]<<1;j=c[s>>2]<<1;do if(xn(b+(D<<2)|0,b+(C<<2)|0,b+(B<<2)|0,b+(j<<2)|0,d+(D<<2)|0,d+(C<<2)|0,d+(B<<2)|0,d+(j<<2)|0)|0?(v=u*9|0,j=c[z>>2]<<1,B=c[q>>2]<<1,C=c[r>>2]<<1,D=c[s>>2]<<1,yn((c[i>>2]|0)+(v<<2)|0,b+(j<<2)|0,b+(B<<2)|0,b+(C<<2)|0,b+(D<<2)|0,d+(j<<2)|0,d+(B<<2)|0,d+(C<<2)|0,d+(D<<2)|0)|0):0){if(t?!(zn((c[i>>2]|0)+(v<<2)|0,g,h)|0):0){j=u;break}j=u+1|0}else j=u;while(0);o=o+1|0;u=j}l=1.0/l;if(u){o=c[k>>2]|0;j=0;while(1){if((j|0)>=(u|0))break;f[o+(j<<3)>>2]=0.0;c[o+(j<<3)+4>>2]=j;j=j+1|0}t=0;while(1){if(!((u|0)>2&(t|0)<(e|0)))break;r=(Bj(x,e-t|0)|0)+t|0;q=0;j=c[k>>2]|0;while(1){if((q|0)==(u|0))break;s=(c[i>>2]|0)+((c[j+(q<<3)+4>>2]|0)*9<<2)|0;o=t;while(1){if((o|0)>=(r|0))break;j=c[z+(o<<2)>>2]<<1;p=+Bn(s,b+(j<<2)|0,d+(j<<2)|0,l);j=c[k>>2]|0;D=j+(q<<3)|0;f[D>>2]=p+ +f[D>>2];o=o+1|0}q=q+1|0}An(y,j,u);t=r;u=u>>1}q=c[k>>2]|0;o=1;l=+f[q>>2];j=c[q+4>>2]|0;while(1){if((o|0)>=(u|0))break;p=+f[q+(o<<3)>>2];if(p>2]|0}o=o+1|0}Vm(a,(c[i>>2]|0)+(j*9<<2)|0);Cn(a);j=1}else j=0}else j=0;zb=A;return j|0}function xn(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;var i=0;i=+qn(a,b,c)>0.0;if((!(i^+qn(e,f,g)>0.0)?(i=+qn(b,c,d)>0.0,!(i^+qn(f,g,h)>0.0)):0)?(i=+qn(c,d,a)>0.0,!(i^+qn(g,h,e)>0.0)):0){a=+qn(d,a,b)>0.0;a=a^+qn(h,e,f)>0.0^1}else a=0;return a|0}function yn(a,b,c,d,e,g,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;x=zb;zb=zb+128|0;w=x;k=x+124|0;l=x+120|0;m=x+112|0;n=x+104|0;o=x+96|0;p=x+88|0;q=x+80|0;r=x+72|0;s=x+64|0;t=x+56|0;u=x+48|0;v=x+40|0;if((In(o,p,q,r,k,m,b,c,d,e)|0?In(s,t,u,v,l,n,g,h,i,j)|0:0)?Jn(w,o,p,q,r,s,t,u,v)|0:0){Kn(a,w,+f[k>>2],m,+f[l>>2],n);a=1}else a=0;zb=x;return a|0}function zn(a,b,c){a=a|0;b=b|0;c=c|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=zb;zb=zb+48|0;f=n+32|0;e=n+24|0;d=n+16|0;k=n+8|0;l=n;a:do if((c|0)>=2){m=b+8|0;g=b+16|0;nn(f,a,b);nn(e,a,m);nn(d,a,g);Gn(k,f);Gn(l,e);if(Hn(b,m,g,f,e,d)|0){j=3;i=f;f=m;h=b;while(1){if((j|0)>=(c|0))break;h=h+8|0;f=f+8|0;g=g+8|0;nn(i,a,g);if(!(Hn(h,f,g,e,d,i)|0)){d=0;break a}else{o=i;j=j+1|0;i=e;e=d;d=o}}if(Hn(f,g,b,e,d,k)|0)d=Hn(g,b,m,d,k,l)|0;else d=0}else d=0}else d=1;while(0);zb=n;return d|0}function An(a,b,c){a=a|0;b=b|0;c=c|0;Fn(a,b,c,(c&1)+-1+((c|0)/2|0)|0);return}function Bn(a,b,c,d){a=a|0;b=b|0;c=c|0;d=+d;var e=0,g=0,h=0,i=0;e=zb;zb=zb+16|0;i=e+8|0;g=e;h=i+4|0;$m(i,h,a,+f[b>>2],+f[b+4>>2]);f[g>>2]=+f[i>>2]-+f[c>>2];f[g+4>>2]=+f[h>>2]-+f[c+4>>2];d=+Dn(g,d);zb=e;return +d}function Cn(a){a=a|0;var b=0,c=0.0,d=0;b=a+32|0;c=1.0/+f[b>>2];f[a>>2]=+f[a>>2]*c;d=a+4|0;f[d>>2]=c*+f[d>>2];d=a+8|0;f[d>>2]=c*+f[d>>2];d=a+12|0;f[d>>2]=c*+f[d>>2];d=a+16|0;f[d>>2]=c*+f[d>>2];d=a+20|0;f[d>>2]=c*+f[d>>2];d=a+24|0;f[d>>2]=c*+f[d>>2];a=a+28|0;f[a>>2]=c*+f[a>>2];f[b>>2]=1.0;return}function Dn(a,b){a=a|0;b=+b;return +(+En(+f[a>>2],+f[a+4>>2],b))}function En(a,b,c){a=+a;b=+b;c=+c;return +(+z(+((a*a+b*b)*c+1.0)))}function Fn(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0,k=0.0,l=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0;s=zb;zb=zb+16|0;g=s;if((d|0)<=0){r=Xf(Xf(PE(Xf(Xf(Xf(56032,33419)|0,33448)|0,35e3)|0,82)|0,35007)|0,33521)|0;IE(g,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(g,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(g);QE(r,q)|0;ME(r)|0;ua()}if((e|0)<=0){r=Xf(Xf(PE(Xf(Xf(Xf(56032,33540)|0,33448)|0,35e3)|0,83)|0,35007)|0,33569)|0;IE(g,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(g,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(g);QE(r,q)|0;ME(r)|0;ua()}p=e+-1|0;q=b+(p<<3)|0;r=b+(p<<3)+4|0;l=d+-1|0;m=0;while(1){if((m|0)>=(l|0))break;n=+f[q>>2];o=c[r>>2]|0;g=m;d=l;do{while(1){j=b+(g<<3)|0;k=+f[j>>2];if(!(k>2]|0)>=(o|0))break}g=g+1|0}while(1){h=b+(d<<3)|0;i=+f[h>>2];if(!(n=(c[b+(d<<3)+4>>2]|0))break}d=d+-1|0}if((g|0)<=(d|0)){f[j>>2]=i;f[h>>2]=k;t=b+(g<<3)+4|0;j=b+(d<<3)+4|0;h=c[t>>2]|0;c[t>>2]=c[j>>2];c[j>>2]=h;g=g+1|0;d=d+-1|0}}while((g|0)<=(d|0));l=(g|0)<(e|0)?l:d;m=(d|0)<(p|0)?g:m}b=q;e=c[b+4>>2]|0;t=a;c[t>>2]=c[b>>2];c[t+4>>2]=e;zb=s;return}function Gn(a,b){a=a|0;b=b|0;var d=0,e=0;e=b;d=c[e+4>>2]|0;b=a;c[b>>2]=c[e>>2];c[b+4>>2]=d;return}function Hn(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;c=+qn(a,b,c)>0.0;return c^+qn(d,e,f)>0.0^1|0}function In(a,b,c,d,e,g,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var 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,v=0,w=0,x=0,y=0;l=(+f[h>>2]+ +f[i>>2]+ +f[j>>2]+ +f[k>>2])*.25;f[g>>2]=l;y=h+4|0;x=i+4|0;w=j+4|0;v=k+4|0;m=(+f[y>>2]+ +f[x>>2]+ +f[w>>2]+ +f[v>>2])*.25;f[g+4>>2]=m;s=+f[h>>2]-l;t=+f[y>>2]-m;q=+f[i>>2]-l;r=+f[x>>2]-m;o=+f[j>>2]-l;p=+f[w>>2]-m;l=+f[k>>2]-l;m=+f[v>>2]-m;n=(+u(+(s*s+t*t))+ +u(+(q*q+r*r))+ +u(+(o*o+p*p))+ +u(+(l*l+m*m)))*.25;if(n==0.0)g=0;else{n=1.0/n*1.4142135623730951;f[e>>2]=n;f[a>>2]=s*n;f[a+4>>2]=t*+f[e>>2];f[b>>2]=q*+f[e>>2];f[b+4>>2]=r*+f[e>>2];f[c>>2]=o*+f[e>>2];f[c+4>>2]=p*+f[e>>2];f[d>>2]=l*+f[e>>2];f[d+4>>2]=m*+f[e>>2];g=1}return g|0}function Jn(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0;j=zb;zb=zb+288|0;k=j;Ln(k,b,c,d,e,f,g,h,i);if(Mn(a,k)|0)a=!(+t(+(+gn(a)))<1.0e-05);else a=0;zb=j;return a|0}function Kn(a,b,c,d,e,g){a=a|0;b=b|0;c=+c;d=d|0;e=+e;g=g|0;var h=0,i=0.0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0;l=b+24|0;o=+f[l>>2];q=+f[g>>2];k=b+28|0;n=+f[k>>2];r=o*q+ +f[b>>2]/e;q=q*n+ +f[b+4>>2]/e;p=g+4|0;m=+f[p>>2];o=o*m+ +f[b+12>>2]/e;m=n*m+ +f[b+16>>2]/e;n=+f[d>>2]*c;h=d+4|0;i=+f[h>>2]*c;f[a>>2]=r*c;f[a+4>>2]=q*c;j=b+32|0;f[a+8>>2]=+f[j>>2]*+f[g>>2]+ +f[b+8>>2]/e-r*n-q*i;f[a+12>>2]=o*c;f[a+16>>2]=m*c;f[a+20>>2]=+f[j>>2]*+f[p>>2]+ +f[b+20>>2]/e-o*n-m*i;i=+f[l>>2]*c;f[a+24>>2]=i;e=+f[k>>2]*c;f[a+28>>2]=e;f[a+32>>2]=+f[j>>2]-i*+f[d>>2]-e*+f[h>>2];return}function Ln(a,b,c,d,e,f,g,h,i){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;lo(a,b,f);lo(a+72|0,c,g);lo(a+144|0,d,h);lo(a+216|0,e,i);return}function Mn(a,b){a=a|0;b=b|0;var c=0,d=0;d=zb;zb=zb+288|0;c=d;if(((((((Nn(c,b)|0?On(c,b)|0:0)?Pn(c,b)|0:0)?Qn(c,b)|0:0)?Rn(c,b)|0:0)?Sn(c,b)|0:0)?Tn(c,b)|0:0)?Un(c,b)|0:0)a=Vn(a,c)|0;else a=0;zb=d;return a|0}function Nn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0;g=zb;zb=zb+32|0;d=g;h=+_n(b);f[d>>2]=h;e=b+36|0;h=+_n(e);f[d+4>>2]=h;h=+_n(b+72|0);f[d+8>>2]=h;h=+_n(b+108|0);f[d+12>>2]=h;h=+_n(b+144|0);f[d+16>>2]=h;h=+_n(b+180|0);f[d+20>>2]=h;h=+_n(b+216|0);f[d+24>>2]=h;h=+_n(b+252|0);f[d+28>>2]=h;c=jo(d)|0;d=d+(c<<2)|0;if(+f[d>>2]==0.0)a=0;else{co(b,b+(c*9<<2)|0);Yn(a,b,1.0/+u(+(+f[d>>2])));ko(a+36|0,e,63);a=1}zb=g;return a|0}function On(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0;e=zb;zb=zb+32|0;g=e;c=a+36|0;d=b+36|0;ao(c,a,d);n=a+72|0;ao(n,a,b+72|0);m=a+108|0;ao(m,a,b+108|0);l=a+144|0;ao(l,a,b+144|0);k=a+180|0;ao(k,a,b+180|0);j=a+216|0;ao(j,a,b+216|0);i=a+252|0;ao(i,a,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(n);f[g+4>>2]=h;h=+_n(m);f[g+8>>2]=h;h=+_n(l);f[g+12>>2]=h;h=+_n(k);f[g+16>>2]=h;h=+_n(j);f[g+20>>2]=h;h=+_n(i);f[g+24>>2]=h;a=io(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Pn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0,k=0,l=0,m=0;e=zb;zb=zb+32|0;g=e;c=a+72|0;m=a+36|0;d=b+72|0;ao(c,m,d);l=a+108|0;ao(l,m,b+108|0);k=a+144|0;ao(k,m,b+144|0);j=a+180|0;ao(j,m,b+180|0);i=a+216|0;ao(i,m,b+216|0);a=a+252|0;ao(a,m,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(l);f[g+4>>2]=h;h=+_n(k);f[g+8>>2]=h;h=+_n(j);f[g+12>>2]=h;h=+_n(i);f[g+16>>2]=h;h=+_n(a);f[g+20>>2]=h;a=ho(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Qn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0,k=0,l=0;e=zb;zb=zb+32|0;g=e;c=a+108|0;l=a+72|0;d=b+108|0;ao(c,l,d);k=a+144|0;ao(k,l,b+144|0);j=a+180|0;ao(j,l,b+180|0);i=a+216|0;ao(i,l,b+216|0);a=a+252|0;ao(a,l,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(k);f[g+4>>2]=h;h=+_n(j);f[g+8>>2]=h;h=+_n(i);f[g+12>>2]=h;h=+_n(a);f[g+16>>2]=h;a=go(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Rn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0,k=0;e=zb;zb=zb+16|0;g=e;c=a+144|0;k=a+108|0;d=b+144|0;ao(c,k,d);j=a+180|0;ao(j,k,b+180|0);i=a+216|0;ao(i,k,b+216|0);a=a+252|0;ao(a,k,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(j);f[g+4>>2]=h;h=+_n(i);f[g+8>>2]=h;h=+_n(a);f[g+12>>2]=h;a=fo(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Sn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0,j=0;e=zb;zb=zb+16|0;g=e;c=a+180|0;j=a+144|0;d=b+180|0;ao(c,j,d);i=a+216|0;ao(i,j,b+216|0);a=a+252|0;ao(a,j,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(i);f[g+4>>2]=h;h=+_n(a);f[g+8>>2]=h;a=eo(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Tn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0.0,i=0;e=zb;zb=zb+16|0;g=e;c=a+216|0;i=a+180|0;d=b+216|0;ao(c,i,d);a=a+252|0;ao(a,i,b+252|0);h=+_n(c);f[g>>2]=h;h=+_n(a);f[g+4>>2]=h;a=bo(g)|0;b=g+(a<<2)|0;if(+f[b>>2]==0.0)a=0;else{a=a*9|0;co(c,c+(a<<2)|0);co(d,d+(a<<2)|0);Yn(c,c,1.0/+u(+(+f[b>>2])));a=1}zb=e;return a|0}function Un(a,b){a=a|0;b=b|0;var c=0.0,d=0;d=a+252|0;ao(d,a+216|0,b+252|0);c=+_n(d);if(c==0.0)a=0;else{Yn(d,d,1.0/+u(+c));a=1}return a|0}function Vn(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0.0;d=zb;zb=zb+384|0;e=d+336|0;c=d;g=+Wn(c,b,0);f[e>>2]=g;g=+Wn(c+36|0,b,1);f[e+4>>2]=g;g=+Wn(c+72|0,b,2);f[e+8>>2]=g;g=+Wn(c+108|0,b,3);f[e+12>>2]=g;g=+Wn(c+144|0,b,4);f[e+16>>2]=g;g=+Wn(c+180|0,b,5);f[e+20>>2]=g;g=+Wn(c+216|0,b,6);f[e+24>>2]=g;g=+Wn(c+252|0,b,7);f[e+28>>2]=g;g=+Wn(c+288|0,b,8);f[e+32>>2]=g;b=Xn(e)|0;if(+f[e+(b<<2)>>2]==0.0)b=0;else{Vm(a,c+(b*9<<2)|0);b=1}zb=d;return b|0}function Wn(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0.0,g=0;Yn(a,b,-+f[b+(c<<2)>>2]);g=a+(c<<2)|0;f[g>>2]=+f[g>>2]+1.0;Zn(a,b+36|0,-+f[b+(c+9<<2)>>2]);Zn(a,b+72|0,-+f[b+(c+18<<2)>>2]);Zn(a,b+108|0,-+f[b+(c+27<<2)>>2]);Zn(a,b+144|0,-+f[b+(c+36<<2)>>2]);Zn(a,b+180|0,-+f[b+(c+45<<2)>>2]);Zn(a,b+216|0,-+f[b+(c+54<<2)>>2]);Zn(a,b+252|0,-+f[b+(c+63<<2)>>2]);e=+_n(a);d=+u(+e);if(e==0.0)d=0.0;else Yn(a,a,1.0/d);return +d}function Xn(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;b=+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b;b=+f[a+20>>2]>+f[a+(b<<2)>>2]?5:b;b=+f[a+24>>2]>+f[a+(b<<2)>>2]?6:b;b=+f[a+28>>2]>+f[a+(b<<2)>>2]?7:b;return (+f[a+32>>2]>+f[a+(b<<2)>>2]?8:b)|0}function Yn(a,b,c){a=a|0;b=b|0;c=+c;f[a>>2]=+f[b>>2]*c;f[a+4>>2]=+f[b+4>>2]*c;f[a+8>>2]=+f[b+8>>2]*c;f[a+12>>2]=+f[b+12>>2]*c;f[a+16>>2]=+f[b+16>>2]*c;f[a+20>>2]=+f[b+20>>2]*c;f[a+24>>2]=+f[b+24>>2]*c;f[a+28>>2]=+f[b+28>>2]*c;f[a+32>>2]=+f[b+32>>2]*c;return}function Zn(a,b,c){a=a|0;b=b|0;c=+c;var d=0;f[a>>2]=+f[a>>2]+ +f[b>>2]*c;d=a+4|0;f[d>>2]=+f[d>>2]+ +f[b+4>>2]*c;d=a+8|0;f[d>>2]=+f[d>>2]+ +f[b+8>>2]*c;d=a+12|0;f[d>>2]=+f[d>>2]+ +f[b+12>>2]*c;d=a+16|0;f[d>>2]=+f[d>>2]+ +f[b+16>>2]*c;d=a+20|0;f[d>>2]=+f[d>>2]+ +f[b+20>>2]*c;d=a+24|0;f[d>>2]=+f[d>>2]+ +f[b+24>>2]*c;d=a+28|0;f[d>>2]=+f[d>>2]+ +f[b+28>>2]*c;a=a+32|0;f[a>>2]=+f[a>>2]+ +f[b+32>>2]*c;return}function _n(a){a=a|0;return +(+$n(a,a))}function $n(a,b){a=a|0;b=b|0;return +(+f[a>>2]*+f[b>>2]+ +f[a+4>>2]*+f[b+4>>2]+ +f[a+8>>2]*+f[b+8>>2]+ +f[a+12>>2]*+f[b+12>>2]+ +f[a+16>>2]*+f[b+16>>2]+ +f[a+20>>2]*+f[b+20>>2]+ +f[a+24>>2]*+f[b+24>>2]+ +f[a+28>>2]*+f[b+28>>2]+ +f[a+32>>2]*+f[b+32>>2])}function ao(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0;d=+$n(c,b);f[a>>2]=+f[a>>2]-d*+f[b>>2];c=a+4|0;f[c>>2]=+f[c>>2]-d*+f[b+4>>2];c=a+8|0;f[c>>2]=+f[c>>2]-d*+f[b+8>>2];c=a+12|0;f[c>>2]=+f[c>>2]-d*+f[b+12>>2];c=a+16|0;f[c>>2]=+f[c>>2]-d*+f[b+16>>2];c=a+20|0;f[c>>2]=+f[c>>2]-d*+f[b+20>>2];c=a+24|0;f[c>>2]=+f[c>>2]-d*+f[b+24>>2];c=a+28|0;f[c>>2]=+f[c>>2]-d*+f[b+28>>2];c=a+32|0;f[c>>2]=+f[c>>2]-d*+f[b+32>>2];return}function bo(a){a=a|0;return +f[a+4>>2]>+f[a>>2]|0}function co(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=c[a>>2]|0;f=a+4|0;c[a>>2]=c[b>>2];d=b+4|0;c[b>>2]=g;g=c[f>>2]|0;e=a+8|0;c[f>>2]=c[d>>2];f=b+8|0;c[d>>2]=g;d=c[e>>2]|0;g=a+12|0;c[e>>2]=c[f>>2];e=b+12|0;c[f>>2]=d;f=c[g>>2]|0;d=a+16|0;c[g>>2]=c[e>>2];g=b+16|0;c[e>>2]=f;e=c[d>>2]|0;f=a+20|0;c[d>>2]=c[g>>2];d=b+20|0;c[g>>2]=e;g=c[f>>2]|0;e=a+24|0;c[f>>2]=c[d>>2];f=b+24|0;c[d>>2]=g;d=c[e>>2]|0;g=a+28|0;c[e>>2]=c[f>>2];e=b+28|0;c[f>>2]=d;f=c[g>>2]|0;d=a+32|0;c[g>>2]=c[e>>2];b=b+32|0;c[e>>2]=f;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function eo(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;return (+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b)|0}function fo(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;return (+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b)|0}function go(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;return (+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b)|0}function ho(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;b=+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b;return (+f[a+20>>2]>+f[a+(b<<2)>>2]?5:b)|0}function io(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;b=+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b;b=+f[a+20>>2]>+f[a+(b<<2)>>2]?5:b;return (+f[a+24>>2]>+f[a+(b<<2)>>2]?6:b)|0}function jo(a){a=a|0;var b=0;b=+f[a+4>>2]>+f[a>>2]&1;b=+f[a+8>>2]>+f[a+(b<<2)>>2]?2:b;b=+f[a+12>>2]>+f[a+(b<<2)>>2]?3:b;b=+f[a+16>>2]>+f[a+(b<<2)>>2]?4:b;b=+f[a+20>>2]>+f[a+(b<<2)>>2]?5:b;b=+f[a+24>>2]>+f[a+(b<<2)>>2]?6:b;return (+f[a+28>>2]>+f[a+(b<<2)>>2]?7:b)|0}function ko(a,b,c){a=a|0;b=b|0;c=c|0;_O(a|0,b|0,c<<2|0)|0;return}function lo(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;f[a>>2]=-+f[b>>2];e=b+4|0;f[a+4>>2]=-+f[e>>2];f[a+8>>2]=-1.0;mo(a+12|0);f[a+24>>2]=+f[d>>2]*+f[b>>2];f[a+28>>2]=+f[d>>2]*+f[e>>2];c[a+32>>2]=c[d>>2];mo(a+36|0);f[a+48>>2]=-+f[b>>2];f[a+52>>2]=-+f[e>>2];f[a+56>>2]=-1.0;d=d+4|0;f[a+60>>2]=+f[d>>2]*+f[b>>2];f[a+64>>2]=+f[d>>2]*+f[e>>2];c[a+68>>2]=c[d>>2];return}function mo(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function no(a,b){a=a|0;b=b|0;var d=0;if((rj(a)|0)>>>0>>0)EO(a);if(b>>>0>536870911){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b<<3)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<3);return}}function oo(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{po(b);b=(c[d>>2]|0)+8|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function po(a){a=a|0;f[a>>2]=0.0;f[a+4>>2]=0.0;return}function qo(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=zb;zb=zb+16|0;j=k;i=a+88|0;n=a+84|0;h=a+52|0;m=(((g|0)%(c[i>>2]|0)|0|0)%(c[n>>2]|0)|0|0)%(c[h>>2]|0)|0;c[b>>2]=m;m=(((g-m|0)%(c[i>>2]|0)|0|0)%(c[n>>2]|0)|0|0)/(c[h>>2]|0)|0;c[d>>2]=m;m=g-(c[b>>2]|0)-(B(c[h>>2]|0,m)|0)|0;m=((m|0)%(c[i>>2]|0)|0|0)/(c[n>>2]|0)|0;c[e>>2]=m;l=B(c[h>>2]|0,c[d>>2]|0)|0;g=g-(c[b>>2]|0)-((B(c[n>>2]|0,m)|0)+l)|0;i=(g|0)/(c[i>>2]|0)|0;c[f>>2]=i;g=c[b>>2]|0;if((g|0)<=-1){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32616)|0,32155)|0,35e3)|0,190)|0,35007)|0,32649)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>=(c[h>>2]|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32667)|0,32155)|0,35e3)|0,191)|0,35007)|0,32649)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}g=c[d>>2]|0;if((g|0)<=-1){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32707)|0,32155)|0,35e3)|0,192)|0,35007)|0,32740)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>=(c[a+56>>2]|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32758)|0,32155)|0,35e3)|0,193)|0,35007)|0,32740)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}g=c[e>>2]|0;if((g|0)<=-1){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32798)|0,32155)|0,35e3)|0,194)|0,35007)|0,32835)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>=(c[a+60>>2]|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32857)|0,32155)|0,35e3)|0,195)|0,35007)|0,32835)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((i|0)<=-1){n=Xf(Xf(PE(Xf(Xf(Xf(56032,32905)|0,32155)|0,35e3)|0,196)|0,35007)|0,32942)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}if((i|0)<(c[a+64>>2]|0)){zb=k;return}else{n=Xf(Xf(PE(Xf(Xf(Xf(56032,32964)|0,32155)|0,35e3)|0,197)|0,35007)|0,32942)|0;IE(j,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(j,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(j);QE(n,m)|0;ME(n)|0;ua()}}function ro(a){a=a|0;return a+124|0}function so(a){a=a|0;return a+112|0}function to(a,b,d,e,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0,q=0;q=zb;zb=zb+16|0;p=q;l=+t(+(h-l));f[b>>2]=l;l=+t(+(i-m));f[d>>2]=l;l=+t(+(k-o));f[g>>2]=l;l=+t(+(j-n));l=+vn(l,+(c[a+60>>2]|0)-l);f[e>>2]=l;if(!(l>=0.0)){q=Xf(Xf(PE(Xf(Xf(Xf(56032,31935)|0,32155)|0,35e3)|0,333)|0,35007)|0,31976)|0;IE(p,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);g=XF(p,56736)|0;g=Ib[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;YF(p);QE(q,g)|0;ME(q)|0;ua()}else{zb=q;return}}function uo(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){xo(a,b);oh(a,b)}return}function vo(a,b,c){a=a|0;b=+b;c=+c;f[a+8>>2]=b;f[a+12>>2]=c;return}function wo(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function xo(a,b){a=a|0;b=b|0;var d=0;if((ph(a)|0)>>>0>>0)EO(a);if(b>>>0>1073741823){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b<<2)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<2);return}}function yo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;t=zb;zb=zb+48|0;j=t+8|0;i=t+32|0;h=t+28|0;k=t+24|0;p=t+20|0;q=t+16|0;r=t;s=a+8|0;if(!(c[s>>2]|0)){o=Xf(Xf(PE(Xf(Xf(Xf(56032,32010)|0,29190)|0,35e3)|0,405)|0,35007)|0,32045)|0;IE(j,o+(c[(c[o>>2]|0)+-12>>2]|0)|0);n=XF(j,56736)|0;n=Ib[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;YF(j);QE(o,n)|0;ME(o)|0;ua()}c[a+100>>2]=0;l=a+72|0;m=a+76|0;c[m>>2]=c[l>>2];n=a+84|0;o=a+88|0;e=c[o>>2]|0;while(1){d=c[n>>2]|0;f=d;if((d|0)==(e|0))break;g=e-f|0;if((g|0)>8){e=e+-8|0;u=d;v=c[u>>2]|0;u=c[u+4>>2]|0;x=j;c[x>>2]=v;c[x+4>>2]=u;x=e;w=c[x+4>>2]|0;c[d>>2]=c[x>>2];c[d+4>>2]=w;d=e;c[d>>2]=v;c[d+4>>2]=u;Yl(j);c[k>>2]=f;c[p>>2]=e;c[q>>2]=f;c[h>>2]=c[k>>2];c[i>>2]=c[p>>2];c[j>>2]=c[q>>2];Ao(h,i,r,(g>>>3)+-1|0,j);e=c[o>>2]|0}d=0;while(1){if((d|0)==-1)break;x=d+-1|0;Yl(e+(x<<3)|0);d=x}e=e+-8|0;c[o>>2]=e}Bo(a,n,c[s>>2]|0,b);zb=t;return (c[m>>2]|0)-(c[l>>2]|0)>>2|0}function zo(a){a=a|0;return a+72|0}function Ao(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;m=zb;zb=zb+16|0;l=m;j=c[f>>2]|0;k=c[a>>2]|0;b=j-k|0;i=j;h=j;if((e|0)>=2?(n=(e+-2|0)/2|0,(n|0)>=(b>>3|0)):0){b=b>>2|1;a=k+(b<<3)|0;d=a;g=b+1|0;if((g|0)<(e|0)){o=a+8|0;a=Oo(a,o)|0;b=a?g:b;d=a?o:d}if(!(Oo(d,i)|0)){o=c[j+4>>2]|0;i=l;c[i>>2]=c[j>>2];c[i+4>>2]=o;i=d;while(1){o=h;h=i;g=h;j=c[g+4>>2]|0;c[o>>2]=c[g>>2];c[o+4>>2]=j;c[f>>2]=i;if((n|0)<(b|0))break;b=b<<1|1;a=k+(b<<3)|0;d=a;g=b+1|0;if((g|0)<(e|0)){o=a+8|0;j=Oo(a,o)|0;b=j?g:b;d=j?o:d}if(Oo(d,l)|0)break;else i=d}e=l;f=c[e+4>>2]|0;o=i;c[o>>2]=c[e>>2];c[o+4>>2]=f;Yl(l)}}zb=m;return}function Bo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;t=zb;zb=zb+64|0;m=t+8|0;l=t+56|0;k=t+52|0;n=t+44|0;o=t+36|0;p=t+28|0;q=t;g=t+48|0;h=t+40|0;f=t+32|0;r=t+16|0;if(Co(d)|0){c[g>>2]=c[a+76>>2];s=Do(d)|0;c[h>>2]=c[s>>2];s=(Do(d)|0)+4|0;c[f>>2]=c[s>>2];c[k>>2]=c[g>>2];c[l>>2]=c[h>>2];c[m>>2]=c[f>>2];Eo(a+72|0,k,l,m)|0}else{c[r>>2]=0;h=r+4|0;c[h>>2]=0;c[r+8>>2]=0;Fo(d,r,b,e);f=0;while(1){g=c[r>>2]|0;if(f>>>0>=(c[h>>2]|0)-g>>2>>>0)break;Bo(a,b,c[g+(f<<2)>>2]|0,e);f=f+1|0}i=a+100|0;if((c[i>>2]|0)<(c[a+104>>2]|0)?(j=c[b>>2]|0,s=b+4|0,(j|0)!=(c[s>>2]|0)):0){d=Go(j)|0;f=c[b>>2]|0;g=c[s>>2]|0;h=g-f|0;if((h|0)>8){j=f;g=g+-8|0;u=j;v=c[u>>2]|0;u=c[u+4>>2]|0;x=m;c[x>>2]=v;c[x+4>>2]=u;x=g;w=c[x+4>>2]|0;c[j>>2]=c[x>>2];c[j+4>>2]=w;j=g;c[j>>2]=v;c[j+4>>2]=u;Yl(m);c[n>>2]=f;c[o>>2]=g;c[p>>2]=f;c[k>>2]=c[n>>2];c[l>>2]=c[o>>2];c[m>>2]=c[p>>2];Ao(k,l,q,(h>>>3)+-1|0,m);g=c[s>>2]|0}f=0;while(1){if((f|0)==-1)break;x=f+-1|0;Yl(g+(x<<3)|0);f=x}c[s>>2]=g+-8;c[i>>2]=(c[i>>2]|0)+1;Bo(a,b,d,e)}Ho(r)}zb=t;return}function Co(b){b=b|0;return (a[b+100>>0]|0)!=0|0}function Do(a){a=a|0;return a+116|0}function Eo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+48|0;p=s+40|0;o=s+36|0;q=s+32|0;r=s+28|0;j=s+8|0;k=s+4|0;l=s;f=c[a>>2]|0;g=f;b=f+((c[b>>2]|0)-g>>2<<2)|0;d=c[d>>2]|0;f=c[e>>2]|0;n=f-d|0;m=n>>2;a:do if((n|0)>0){h=a+8|0;n=c[a+4>>2]|0;i=n;if((m|0)>((c[h>>2]|0)-i>>2|0)){e=(i-g>>2)+m|0;g=ll(a)|0;if(g>>>0>>0)EO(a);else{r=c[a>>2]|0;n=(c[h>>2]|0)-r|0;q=n>>1;ml(j,n>>2>>>0>>1>>>0?(q>>>0>>0?e:q):g,b-r>>2,a+8|0);c[k>>2]=d;c[l>>2]=f;c[o>>2]=c[k>>2];c[p>>2]=c[l>>2];ap(j,o,p);b=bp(a,j,b)|0;ol(j);break}}g=i-b|0;h=g>>2;e=d+(h<<2)|0;if((m|0)>(h|0)){c[q>>2]=e;c[r>>2]=f;c[o>>2]=c[q>>2];c[p>>2]=c[r>>2];_o(a,o,p,m-h|0);if((g|0)>0)f=e;else break}$o(a,b,n,b+(m<<2)|0);e=b;while(1){if((d|0)==(f|0))break a;c[e>>2]=c[d>>2];e=e+4|0;d=d+4|0}}while(0);zb=s;return b|0}function Fo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;t=zb;zb=zb+48|0;n=t+8|0;m=t+36|0;o=t+32|0;p=t+28|0;q=t;r=t+16|0;s=a+104|0;Io(r,(c[a+108>>2]|0)-(c[s>>2]|0)>>2);l=r+4|0;a=-1;f=0;k=-1;while(1){if(f>>>0>=(c[l>>2]|0)-(c[r>>2]|0)>>3>>>0)break;i=yl((c[(c[s>>2]|0)+(f<<2)>>2]|0)+4|0,e)|0;Jo(n,c[(c[s>>2]|0)+(f<<2)>>2]|0,i);g=n;j=c[g+4>>2]|0;h=(c[r>>2]|0)+(f<<3)|0;c[h>>2]=c[g>>2];c[h+4>>2]=j;Yl(n);h=i>>>0>>0;j=h?f:k;a=h?i:a;f=f+1|0;k=j}if((k|0)==-1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32065)|0,29190)|0,35e3)|0,155)|0,35007)|0,32099)|0;IE(n,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(n,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(n);QE(j,i)|0;ME(j)|0;ua()}a=c[(c[s>>2]|0)+(k<<2)>>2]|0;c[n>>2]=a;i=b+4|0;f=c[i>>2]|0;j=b+8|0;if(f>>>0<(c[j>>2]|0)>>>0){c[f>>2]=a;c[i>>2]=(c[i>>2]|0)+4}else Ko(b,n);g=d+4|0;h=d+8|0;e=0;while(1){a=c[r>>2]|0;if(e>>>0>=(c[l>>2]|0)-a>>3>>>0)break;do if((e|0)!=(k|0)){f=Lo(a+(e<<3)|0)|0;if((f|0)==(Lo((c[r>>2]|0)+(k<<3)|0)|0)){a=c[(c[s>>2]|0)+(e<<2)>>2]|0;c[n>>2]=a;f=c[i>>2]|0;if(f>>>0<(c[j>>2]|0)>>>0){c[f>>2]=a;c[i>>2]=(c[i>>2]|0)+4}else Ko(b,n);break}else{a=(c[r>>2]|0)+(e<<3)|0;f=c[g>>2]|0;if((f|0)==(c[h>>2]|0)){Mo(d,a);a=c[g>>2]|0}else{v=a;u=c[v+4>>2]|0;a=f;c[a>>2]=c[v>>2];c[a+4>>2]=u;a=(c[g>>2]|0)+8|0;c[g>>2]=a}v=c[d>>2]|0;c[o>>2]=v;c[p>>2]=a;c[m>>2]=c[o>>2];c[n>>2]=c[p>>2];No(m,n,q,a-v>>3);break}}while(0);e=e+1|0}Xl(r);zb=t;return}function Go(a){a=a|0;return c[a>>2]|0}function Ho(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Io(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){Xo(a,b);Yo(a,b)}return}function Jo(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+4>>2]=d;return}function Ko(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>2)+1|0;g=To(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>1;Uo(d,k>>2>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>2,a+8|0);g=d+8|0;c[c[g>>2]>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;Vo(a,d);Wo(d);zb=h;return}}function Lo(a){a=a|0;return c[a+4>>2]|0}function Mo(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=Po(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;Qo(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;Ro(a,d);So(d);zb=h;return}}function No(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;j=zb;zb=zb+16|0;i=j;if((e|0)>1?(g=(e+-2|0)/2|0,k=c[a>>2]|0,h=k+(g<<3)|0,f=(c[b>>2]|0)+-8|0,c[b>>2]=f,Oo(h,f)|0):0){a=f;e=c[a+4>>2]|0;d=i;c[d>>2]=c[a>>2];c[d+4>>2]=e;d=h;while(1){a=d;e=c[a+4>>2]|0;h=f;c[h>>2]=c[a>>2];c[h+4>>2]=e;c[b>>2]=d;if(!g)break;g=(g+-1|0)/2|0;f=k+(g<<3)|0;if(!(Oo(f,i)|0))break;else{h=d;d=f;f=h}}h=i;b=c[h+4>>2]|0;k=d;c[k>>2]=c[h>>2];c[k+4>>2]=b;Yl(i)}zb=j;return}function Oo(a,b){a=a|0;b=b|0;return (c[a+4>>2]|0)>>>0>(c[b+4>>2]|0)>>>0|0}function Po(a){a=a|0;return 536870911}function Qo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function Ro(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;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;h=d+-8|0;k=h;j=c[k+4>>2]|0;i=(c[g>>2]|0)+-8|0;c[i>>2]=c[k>>2];c[i+4>>2]=j;c[g>>2]=(c[g>>2]|0)+-8;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;k=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=k;i=a+8|0;k=b+12|0;j=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=j;c[b>>2]=c[g>>2];return}function So(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-8|0;c[d>>2]=e;Yl(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function To(a){a=a|0;return 1073741823}function Uo(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>1073741823){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<2)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function Vo(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function Wo(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-4|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function Xo(a,b){a=a|0;b=b|0;var d=0;if((Po(a)|0)>>>0>>0)EO(a);if(b>>>0>536870911){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b<<3)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<3);return}}function Yo(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{Zo(b);b=(c[d>>2]|0)+8|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Zo(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;return}function _o(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=c[d>>2]|0;e=a+4|0;d=c[b>>2]|0;while(1){if((d|0)==(f|0))break;b=c[e>>2]|0;c[b>>2]=c[d>>2];c[e>>2]=b+4;d=d+4|0}return}function $o(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;h=a+4|0;i=c[h>>2]|0;f=i-e|0;g=f>>2;a=b+(g<<2)|0;e=i;while(1){if(a>>>0>=d>>>0)break;c[e>>2]=c[a>>2];j=e+4|0;c[h>>2]=j;a=a+4|0;e=j}if(f|0)$O(i+(0-g<<2)|0,b|0,f|0)|0;return}function ap(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=c[d>>2]|0;d=a+8|0;a=c[b>>2]|0;while(1){if((a|0)==(e|0))break;f=c[d>>2]|0;c[f>>2]=c[a>>2];c[d>>2]=f+4;f=a+4|0;c[b>>2]=f;a=f}return}function bp(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;i=b+4|0;j=c[i>>2]|0;f=c[a>>2]|0;h=d;g=h-f|0;e=j+(0-(g>>2)<<2)|0;c[i>>2]=e;if((g|0)>0)_O(e|0,f|0,g|0)|0;f=a+4|0;g=b+8|0;e=(c[f>>2]|0)-h|0;if((e|0)>0){_O(c[g>>2]|0,d|0,e|0)|0;c[g>>2]=(c[g>>2]|0)+(e>>>2<<2)}h=c[a>>2]|0;c[a>>2]=c[i>>2];c[i>>2]=h;h=c[f>>2]|0;c[f>>2]=c[g>>2];c[g>>2]=h;h=a+8|0;d=b+12|0;a=c[h>>2]|0;c[h>>2]=c[d>>2];c[d>>2]=a;c[b>>2]=c[i>>2];return j|0}function cp(a){a=a|0;return dp(c[c[a>>2]>>2]|0)|0}function dp(a){a=a|0;return c[a+24>>2]|0}function ep(a,b){a=a|0;b=b|0;var d=0,e=0;d=zb;zb=zb+16|0;e=d;c[e>>2]=b;b=mm((c[a>>2]|0)+4|0,e)|0;zb=d;return b|0}function fp(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;gp(d,c[c[a>>2]>>2]|0);a=gm(zk(c[d>>2]|0)|0)|0;Rj(d);zb=b;return a|0}function gp(a,b){a=a|0;b=b|0;c[a>>2]=c[b+64>>2];b=c[b+68>>2]|0;c[a+4>>2]=b;if(b|0){a=b+4|0;c[a>>2]=(c[a>>2]|0)+1}return}function hp(a){a=a|0;return ip(c[c[a>>2]>>2]|0)|0}function ip(a){a=a|0;return a+12|0}function jp(b){b=b|0;var d=0,e=0,f=0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;a[b+16>>0]=1;d=b+108|0;e=b+20|0;f=e+88|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));c[d>>2]=1065353216;f=b+112|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;return}function kp(a){a=a|0;Xj(a+124|0);gh(a+112|0);lp(a+92|0);return}function lp(a){a=a|0;mp(a);return}function mp(a){a=a|0;var b=0;np(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function np(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;Pf(b,16);b=a}return}function op(b,d,e,g,h,i,j,k,l){b=b|0;d=+d;e=+e;g=+g;h=+h;i=i|0;j=j|0;k=k|0;l=l|0;f[b+20>>2]=d;f[b+24>>2]=e;f[b+28>>2]=g;f[b+32>>2]=h;f[b+36>>2]=-1.0;f[b+40>>2]=1.0;c[b+52>>2]=i;c[b+56>>2]=j;c[b+60>>2]=k;c[b+64>>2]=l;l=B(j,i)|0;c[b+84>>2]=l;l=B(l,k)|0;c[b+88>>2]=l;f[b+44>>2]=10.0;f[b+48>>2]=.4342944622039795;a[b+16>>0]=(j|i|0)==0&1;pp(b+92|0);return}function pp(a){a=a|0;var b=0,d=0,e=0;d=a+12|0;if(c[d>>2]|0){e=a+8|0;np(a,c[e>>2]|0);c[e>>2]=0;e=c[a+4>>2]|0;b=0;while(1){if((b|0)==(e|0))break;c[(c[a>>2]|0)+(b<<2)>>2]=0;b=b+1|0}c[d>>2]=0}return}function qp(b,d,e,g){b=b|0;d=d|0;e=e|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;t=zb;zb=zb+16|0;p=t+12|0;q=t+8|0;r=t+4|0;s=t;pp(b+92|0);if(g|0){j=b+112|0;fh(j,g<<2);k=b+124|0;Vk(k,g);if(a[b+16>>0]|0)rp(b,d,e,g);l=b+68|0;m=b+72|0;n=b+76|0;o=b+80|0;h=0;i=0;while(1){if((i|0)>=(g|0))break;u=i<<2;v=d+(u<<2)|0;u=e+(u<<2)|0;sp(b,p,q,r,s,+f[v>>2],+f[v+4>>2],+f[v+8>>2],+f[v+12>>2],+f[u>>2],+f[u+4>>2],+f[u+8>>2],+f[u+12>>2]);if(tp(b,+f[p>>2],+f[q>>2],+f[r>>2],+f[s>>2])|0){v=(c[j>>2]|0)+(h<<2<<2)|0;c[v>>2]=c[l>>2];c[v+4>>2]=c[m>>2];c[v+8>>2]=c[n>>2];c[v+12>>2]=c[o>>2];c[(c[k>>2]|0)+(h<<2)>>2]=i;h=h+1|0}i=i+1|0}fh(j,h<<2);Vk(k,h)}zb=t;return}function rp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0;l=zb;zb=zb+16|0;g=l+12|0;k=l;i=a+4|0;j=Aj(c[a>>2]|0,c[i>>2]|0)|0;uo(k,e);if((e|0)<=0){m=Xf(Xf(PE(Xf(Xf(Xf(56032,33144)|0,33176)|0,35e3)|0,208)|0,35007)|0,33265)|0;IE(g,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);n=XF(g,56736)|0;n=Ib[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;YF(g);QE(m,n)|0;ME(m)|0;ua()}if((c[a>>2]|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,33287)|0,33176)|0,35e3)|0,209)|0,35007)|0,33329)|0;IE(g,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(g,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(g);QE(n,m)|0;ME(n)|0;ua()}if((c[i>>2]|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,33352)|0,33176)|0,35e3)|0,210)|0,35007)|0,33395)|0;IE(g,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(g,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(g);QE(n,m)|0;ME(n)|0;ua()}h=+(j|0);g=0;while(1){if((g|0)==(e|0))break;n=g<<2;o=+Bp(+f[b+(n<<2)+12>>2],+f[d+(n<<2)+12>>2])*h;f[(c[k>>2]|0)+(g<<2)>>2]=o;g=g+1|0}n=c[k>>2]|0;o=+Dp(n,(c[k+4>>2]|0)-n>>2)*.25;n=Aj(5,~~+A(+((+f[a+24>>2]-+f[a+20>>2])/o)))|0;m=a+52|0;c[m>>2]=n;n=Aj(5,~~+A(+((+f[a+32>>2]-+f[a+28>>2])/o)))|0;c[a+56>>2]=n;n=B(c[m>>2]|0,n)|0;c[a+84>>2]=n;n=B(c[a+60>>2]|0,n)|0;c[a+88>>2]=n;gh(k);zb=l;return}function sp(a,b,d,e,g,h,i,j,k,l,m,n,o){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;i=+i;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;var p=0,q=0,r=0,s=0,t=0;s=zb;zb=zb+32|0;q=s+16|0;r=s;n=j-n;f[e>>2]=n;j=n;if(!(j<=-3.141592653589793)){if(j>3.141592653589793){n=j+-6.283185307179586;p=5}}else{n=j+6.283185307179586;p=5}if((p|0)==5)f[e>>2]=n;if(!(n>-3.141592653589793)){p=Xf(Xf(PE(Xf(Xf(Xf(56032,32372)|0,32155)|0,35e3)|0,468)|0,35007)|0,32407)|0;IE(q,p+(c[(c[p>>2]|0)+-12>>2]|0)|0);t=XF(q,56736)|0;t=Ib[c[(c[t>>2]|0)+28>>2]&63](t,10)|0;YF(q);QE(p,t)|0;ME(p)|0;ua()}if(!(n<=3.141592653589793)){t=Xf(Xf(PE(Xf(Xf(Xf(56032,32426)|0,32155)|0,35e3)|0,469)|0,35007)|0,32407)|0;IE(q,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);s=XF(q,56736)|0;s=Ib[c[(c[s>>2]|0)+28>>2]&63](s,10)|0;YF(q);QE(t,s)|0;ME(t)|0;ua()}else{n=+Bp(k,o);f[g>>2]=n;Cp(r,+f[e>>2],n);n=+z(+(+f[g>>2]));f[g>>2]=n*+f[a+48>>2];n=+f[r>>2];j=+f[r+4>>2];o=+f[r+8>>2];k=+f[r+12>>2];g=a+8|0;t=a+12|0;f[b>>2]=h-(n*l+j*m)+(n*+f[g>>2]+j*+f[t>>2]);f[d>>2]=i-(o*l+k*m)+(o*+f[g>>2]+k*+f[t>>2]);zb=s;return}}function tp(a,b,d,e,g){a=a|0;b=+b;d=+d;e=+e;g=+g;var h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,t=0.0,u=0,v=0,w=0,x=0;x=zb;zb=zb+16|0;h=x;t=+f[a+20>>2];if((((((!(t>b)?(m=+f[a+24>>2],!(m<=b)):0)?(n=+f[a+28>>2],!(n>d)):0)?(o=+f[a+32>>2],!(o<=d)):0)?(p=e,!(p<=-3.141592653589793|p>3.141592653589793)):0)?(q=+f[a+36>>2],!(q>g)):0)?(r=+f[a+40>>2],!(r<=g)):0){if(!(t<=b)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32121)|0,32155)|0,35e3)|0,360)|0,35007)|0,32242)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(m>b)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32257)|0,32155)|0,35e3)|0,361)|0,35007)|0,32242)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(n<=d)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32290)|0,32155)|0,35e3)|0,362)|0,35007)|0,32324)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(o>d)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32339)|0,32155)|0,35e3)|0,363)|0,35007)|0,32324)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(p>-3.141592653589793)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32372)|0,32155)|0,35e3)|0,364)|0,35007)|0,32407)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(p<=3.141592653589793)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32426)|0,32155)|0,35e3)|0,365)|0,35007)|0,32407)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(q<=g)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32461)|0,32155)|0,35e3)|0,366)|0,35007)|0,32503)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}if(!(r>g)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32522)|0,32155)|0,35e3)|0,367)|0,35007)|0,32503)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(h,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(h);QE(l,k)|0;ME(l)|0;ua()}h=a+68|0;i=a+72|0;l=a+76|0;j=a+80|0;up(a,h,i,l,j,b,d,e,g);h=~~+s(+(+f[h>>2]+-.5));i=~~+s(+(+f[i>>2]+-.5));l=~~+s(+(+f[l>>2]+-.5));j=~~+s(+(+f[j>>2]+-.5));k=c[a+60>>2]|0;l=(k+l|0)%(k|0)|0;if((((h|0)>=0?(u=h+1|0,!((i|0)<0?1:(u|0)>=(c[a+52>>2]|0))):0)?(v=i+1|0,!((j|0)<0?1:(v|0)>=(c[a+56>>2]|0))):0)?(w=j+1|0,(w|0)<(c[a+64>>2]|0)):0){k=(l+1|0)%(k|0)|0;wp(a,vp(a,h,i,l,j)|0,1);wp(a,vp(a,u,i,l,j)|0,1);wp(a,vp(a,u,v,l,j)|0,1);wp(a,vp(a,u,v,k,j)|0,1);wp(a,vp(a,u,v,k,w)|0,1);wp(a,vp(a,u,v,l,w)|0,1);wp(a,vp(a,u,i,k,j)|0,1);wp(a,vp(a,u,i,k,w)|0,1);wp(a,vp(a,u,i,l,w)|0,1);wp(a,vp(a,h,v,l,j)|0,1);wp(a,vp(a,h,v,k,j)|0,1);wp(a,vp(a,h,v,k,w)|0,1);wp(a,vp(a,h,v,l,w)|0,1);wp(a,vp(a,h,i,k,j)|0,1);wp(a,vp(a,h,i,k,w)|0,1);wp(a,vp(a,h,i,l,w)|0,1);h=1}else h=0}else h=0;zb=x;return h|0}function up(a,b,d,e,g,h,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=+h;i=+i;j=+j;k=+k;var l=0.0,m=0.0;l=+(c[a+52>>2]|0);m=+f[a+20>>2];h=+Bp(h-m,+f[a+24>>2]-m)*l;f[b>>2]=h;h=+(c[a+56>>2]|0);l=+f[a+28>>2];i=+Bp(i-l,+f[a+32>>2]-l)*h;f[d>>2]=i;f[e>>2]=(j+3.141592653589793)*.15915494309189535*+(c[a+60>>2]|0);j=+(c[a+64>>2]|0);i=+f[a+36>>2];k=+Bp(k-i,+f[a+40>>2]-i)*j;f[g>>2]=k;return}function vp(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;k=zb;zb=zb+16|0;h=k;if((b|0)<=-1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32616)|0,32155)|0,35e3)|0,165)|0,35007)|0,32649)|0;IE(h,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(h,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(h);QE(j,i)|0;ME(j)|0;ua()}g=c[a+52>>2]|0;if((g|0)<=(b|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32667)|0,32155)|0,35e3)|0,166)|0,35007)|0,32649)|0;IE(h,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(h,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(h);QE(j,i)|0;ME(j)|0;ua()}if((d|0)<=-1){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32707)|0,32155)|0,35e3)|0,167)|0,35007)|0,32740)|0;IE(h,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(h,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(h);QE(j,i)|0;ME(j)|0;ua()}i=c[a+56>>2]|0;if((i|0)<=(d|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,32758)|0,32155)|0,35e3)|0,168)|0,35007)|0,32740)|0;IE(h,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);l=XF(h,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(h);QE(j,l)|0;ME(j)|0;ua()}if((e|0)<=-1){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32798)|0,32155)|0,35e3)|0,169)|0,35007)|0,32835)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);j=XF(h,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(h);QE(l,j)|0;ME(l)|0;ua()}j=c[a+60>>2]|0;if((j|0)<=(e|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,32857)|0,32155)|0,35e3)|0,170)|0,35007)|0,32835)|0;IE(h,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);m=XF(h,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(h);QE(l,m)|0;ME(l)|0;ua()}if((f|0)<=-1){m=Xf(Xf(PE(Xf(Xf(Xf(56032,32905)|0,32155)|0,35e3)|0,171)|0,35007)|0,32942)|0;IE(h,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);l=XF(h,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(h);QE(m,l)|0;ME(m)|0;ua()}if((c[a+64>>2]|0)<=(f|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,32964)|0,32155)|0,35e3)|0,172)|0,35007)|0,32942)|0;IE(h,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);l=XF(h,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(h);QE(m,l)|0;ME(m)|0;ua()}m=(B(g,d)|0)+b|0;l=(B(c[a+84>>2]|0,e)|0)+m|0;a=l+(B(c[a+88>>2]|0,f)|0)|0;if((a|0)>((B(B(i,g)|0,(B(j,f)|0)+e|0)|0)+m|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,33012)|0,32155)|0,35e3)|0,176)|0,35007)|0,32597)|0;IE(h,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);l=XF(h,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(h);QE(m,l)|0;ME(m)|0;ua()}else{zb=k;return a|0}return 0}function wp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0,i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+32|0;e=s+8|0;n=s;if((b|0)<=-1){r=Xf(Xf(PE(Xf(Xf(Xf(56032,32563)|0,32155)|0,35e3)|0,290)|0,35007)|0,32597)|0;IE(e,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(e,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(e);QE(r,q)|0;ME(r)|0;ua()}r=a+92|0;c[e>>2]=b;g=xp(r,e)|0;if(!g){c[n>>2]=b;c[n+4>>2]=d;p=a+96|0;k=c[p>>2]|0;q=(k|0)==0;a:do if(!q){l=k+-1|0;m=(l&k|0)==0;if(!m)if(k>>>0>b>>>0)d=b;else d=(b>>>0)%(k>>>0)|0;else d=l&b;g=c[(c[r>>2]|0)+(d<<2)>>2]|0;if(!g)o=19;else do{g=c[g>>2]|0;if(!g){o=19;break a}h=c[g+4>>2]|0;if((h|0)!=(b|0)){if(!m){if(h>>>0>=k>>>0)h=(h>>>0)%(k>>>0)|0}else h=h&l;if((h|0)!=(d|0)){o=19;break a}}}while((c[g+8>>2]|0)!=(b|0))}else{d=0;o=19}while(0);if((o|0)==19){yp(e,r,b,n);l=a+104|0;i=+(((c[l>>2]|0)+1|0)>>>0);j=+f[a+108>>2];do if(q|j*+(k>>>0)>>0<3|(k+-1&k|0)!=0)&1;g=~~+A(+(i/j))>>>0;zp(r,d>>>0>>0?g:d);d=c[p>>2]|0;g=d+-1|0;if(!(g&d)){k=d;d=g&b;break}if(d>>>0>b>>>0){k=d;d=b}else{k=d;d=(b>>>0)%(d>>>0)|0}}while(0);g=c[(c[r>>2]|0)+(d<<2)>>2]|0;if(!g){h=a+100|0;c[c[e>>2]>>2]=c[h>>2];c[h>>2]=c[e>>2];c[(c[r>>2]|0)+(d<<2)>>2]=h;h=c[e>>2]|0;d=c[h>>2]|0;if(d){d=c[d+4>>2]|0;g=k+-1|0;if(g&k){if(d>>>0>=k>>>0)d=(d>>>0)%(k>>>0)|0}else d=d&g;c[(c[r>>2]|0)+(d<<2)>>2]=h}}else{c[c[e>>2]>>2]=c[g>>2];c[g>>2]=c[e>>2]}c[l>>2]=(c[l>>2]|0)+1;c[e>>2]=0}}else{r=g+12|0;c[r>>2]=(c[r>>2]|0)+d}zb=s;return}function xp(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(!h)if(e>>>0>>0)d=e;else d=(e>>>0)%(f>>>0)|0;else d=g&e;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(e|0)){if((c[b+8>>2]|0)==(e|0))break a}else{if(!h){if(a>>>0>=f>>>0)a=(a>>>0)%(f>>>0)|0}else a=a&g;if((a|0)!=(d|0)){b=0;break a}}}else b=0}else b=0;while(0);return b|0}function yp(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=tB(16)|0;c[b>>2]=g;c[b+4>>2]=d+8;c[g+8>>2]=c[f>>2];c[g+12>>2]=c[f+4>>2];a[b+8>>0]=1;c[g+4>>2]=e;c[g>>2]=0;return}function zp(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Ap(a,b)}}else Ap(a,b);return}function Ap(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function Bp(a,b){a=+a;b=+b;return +(a/(b==0.0?1.0:b))}function Cp(a,b,c){a=a|0;b=+b;c=+c;var d=0.0;d=+w(+b)*c;c=+x(+b)*c;f[a>>2]=d;f[a+4>>2]=-c;f[a+8>>2]=c;f[a+12>>2]=d;return}function Dp(a,b){a=a|0;b=b|0;return +(+Ep(a,b,(b&1)+-1+((b|0)/2|0)|0))}function Ep(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0;r=zb;zb=zb+16|0;e=r;if((b|0)<=0){q=Xf(Xf(PE(Xf(Xf(Xf(56032,33419)|0,33448)|0,35e3)|0,53)|0,35007)|0,33521)|0;IE(e,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);p=XF(e,56736)|0;p=Ib[c[(c[p>>2]|0)+28>>2]&63](p,10)|0;YF(e);QE(q,p)|0;ME(q)|0;ua()}if((d|0)<=0){q=Xf(Xf(PE(Xf(Xf(Xf(56032,33540)|0,33448)|0,35e3)|0,54)|0,35007)|0,33569)|0;IE(e,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);p=XF(e,56736)|0;p=Ib[c[(c[p>>2]|0)+28>>2]&63](p,10)|0;YF(e);QE(q,p)|0;ME(q)|0;ua()}p=d+-1|0;q=a+(p<<2)|0;m=b+-1|0;n=0;while(1){o=+f[q>>2];if((n|0)>=(m|0))break;e=n;b=m;do{while(1){i=a+(e<<2)|0;j=+f[i>>2];k=e+1|0;if(j>2];l=b+-1|0;if(o>2]=h;f[g>>2]=j;e=k;b=l}}while((e|0)<=(b|0));m=(e|0)<(d|0)?m:b;n=(b|0)<(p|0)?e:n}zb=r;return +o}function Fp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0,h=0;f[b>>2]=0.0;c[d>>2]=-1;a=a+100|0;e=0.0;while(1){a=c[a>>2]|0;if(!a)break;g=a;h=g+12|0;if(e<+((c[h>>2]|0)>>>0)){c[d>>2]=c[g+8>>2];e=+((c[h>>2]|0)>>>0);f[b>>2]=e}}return}function Gp(a){a=a|0;ko(a,1760,12);ko(a+48|0,1808,12);ko(a+96|0,1856,12);ko(a+144|0,1904,12);ko(a+192|0,1952,12);ko(a+240|0,2e3,12);f[a+288>>2]=.10000000149011612;f[a+292>>2]=.17499999701976776;f[a+296>>2]=.25;f[a+300>>2]=.32499998807907104;f[a+304>>2]=.4000000059604645;f[a+308>>2]=.4749999940395355;f[a+312>>2]=.550000011920929;f[a+316>>2]=7.0;return}function Hp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;fm(b,96);Ip(b,((c[e+4>>2]|0)-(c[e>>2]|0)|0)/20|0);Jp(b,d,e,a,a+48|0,a+96|0,a+144|0,a+192|0,a+240|0,+f[a+288>>2],+f[a+292>>2],+f[a+296>>2],+f[a+300>>2],+f[a+304>>2],+f[a+308>>2],+f[a+312>>2],+f[a+316>>2]);return}function Ip(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=zb;zb=zb+16|0;f=e;g=B(c[b>>2]|0,d)|0;a[f>>0]=0;Wp(b+4|0,g,f);hm(b+16|0,d);zb=e;return}function Jp(b,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=zb;zb=zb+16|0;x=z;if(!d){y=Xf(Xf(PE(Xf(Xf(Xf(56032,33588)|0,33619)|0,35e3)|0,537)|0,35007)|0,33688)|0;IE(x,y+(c[(c[y>>2]|0)+-12>>2]|0)|0);w=XF(x,56736)|0;w=Ib[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;YF(x);QE(y,w)|0;ME(y)|0;ua()}w=Ak(b)|0;y=e+4|0;v=c[y>>2]|0;u=c[e>>2]|0;if((w|0)!=((v-u|0)/20|0|0)){w=Xf(Xf(PE(Xf(Xf(Xf(56032,33704)|0,33619)|0,35e3)|0,538)|0,35007)|0,33757)|0;IE(x,w+(c[(c[w>>2]|0)+-12>>2]|0)|0);t=XF(x,56736)|0;t=Ib[c[(c[t>>2]|0)+28>>2]&63](t,10)|0;YF(x);QE(w,t)|0;ME(w)|0;ua()}w=0;t=0;while(1){u=(v-u|0)/20|0;if(w>>>0>=u>>>0)break;v=Kp(b,t)|0;if(Lp(v,d,(c[e>>2]|0)+(w*20|0)|0,f,g,h,i,j,k,l,m,n,o,p,q,r,s)|0){u=(c[e>>2]|0)+(w*20|0)|0;v=Mp(b,t)|0;c[v>>2]=c[u>>2];c[v+4>>2]=c[u+4>>2];c[v+8>>2]=c[u+8>>2];c[v+12>>2]=c[u+12>>2];a[v+16>>0]=a[u+16>>0]|0;t=t+1|0}w=w+1|0;u=c[e>>2]|0;v=c[y>>2]|0}if((t|0)==(u|0)){Ip(b,t);zb=z;return}else{z=Xf(Xf(PE(Xf(Xf(Xf(56032,33794)|0,33619)|0,35e3)|0,617)|0,35007)|0,33845)|0;IE(x,z+(c[(c[z>>2]|0)+-12>>2]|0)|0);k=XF(x,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(x);QE(z,k)|0;ME(z)|0;ua()}}function Kp(a,b){a=a|0;b=b|0;b=B(c[a>>2]|0,b)|0;return (c[a+4>>2]|0)+b|0}function Lp(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=+j;k=+k;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;var r=0,s=0;s=zb;zb=zb+160|0;r=s;if(Np(r,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q)|0){Op(a,r);a=1}else a=0;zb=s;return a|0}function Mp(a,b){a=a|0;b=b|0;return (c[a+16>>2]|0)+(b*20|0)|0}function Np(a,b,d,e,g,h,i,j,k,l,m,n,o,p,q,r,s){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=+l;m=+m;n=+n;o=+o;p=+p;q=+q;r=+r;s=+s;var 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,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;t=zb;zb=zb+336|0;aa=t+288|0;y=t+240|0;D=t+192|0;I=t+144|0;N=t+96|0;S=t+48|0;X=t;v=t+328|0;u=t+324|0;x=+f[d+12>>2]*s;x=x<1.0?1.0:x;Qp(aa,+f[d>>2],+f[d+4>>2],+f[d+8>>2],x);w=+f[aa+8>>2];s=+f[aa+20>>2];Rp(y,aa,e);C=y+8|0;Rp(C,aa,e+8|0);B=y+16|0;Rp(B,aa,e+16|0);A=y+24|0;Rp(A,aa,e+24|0);z=y+32|0;Rp(z,aa,e+32|0);d=y+40|0;Rp(d,aa,e+40|0);Rp(D,aa,g);H=D+8|0;Rp(H,aa,g+8|0);G=D+16|0;Rp(G,aa,g+16|0);F=D+24|0;Rp(F,aa,g+24|0);E=D+32|0;Rp(E,aa,g+32|0);e=D+40|0;Rp(e,aa,g+40|0);Rp(I,aa,h);M=I+8|0;Rp(M,aa,h+8|0);L=I+16|0;Rp(L,aa,h+16|0);K=I+24|0;Rp(K,aa,h+24|0);J=I+32|0;Rp(J,aa,h+32|0);g=I+40|0;Rp(g,aa,h+40|0);Rp(N,aa,i);R=N+8|0;Rp(R,aa,i+8|0);Q=N+16|0;Rp(Q,aa,i+16|0);P=N+24|0;Rp(P,aa,i+24|0);O=N+32|0;Rp(O,aa,i+32|0);h=N+40|0;Rp(h,aa,i+40|0);Rp(S,aa,j);W=S+8|0;Rp(W,aa,j+8|0);V=S+16|0;Rp(V,aa,j+16|0);U=S+24|0;Rp(U,aa,j+24|0);T=S+32|0;Rp(T,aa,j+32|0);i=S+40|0;Rp(i,aa,j+40|0);Rp(X,aa,k);$=X+8|0;Rp($,aa,k+8|0);_=X+16|0;Rp(_,aa,k+16|0);Z=X+24|0;Rp(Z,aa,k+24|0);Y=X+32|0;Rp(Y,aa,k+32|0);j=X+40|0;Rp(j,aa,k+40|0);Sp(b,v,u,x*r);r=+Tp(b,+f[X>>2],+f[X+4>>2],c[v>>2]|0,c[u>>2]|0);f[a>>2]=r;r=+Tp(b,+f[$>>2],+f[X+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+4>>2]=r;r=+Tp(b,+f[_>>2],+f[X+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+8>>2]=r;r=+Tp(b,+f[Z>>2],+f[X+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+12>>2]=r;r=+Tp(b,+f[Y>>2],+f[X+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+16>>2]=r;r=+Tp(b,+f[j>>2],+f[X+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+20>>2]=r;Sp(b,v,u,x*q);r=+Tp(b,+f[S>>2],+f[S+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+24>>2]=r;r=+Tp(b,+f[W>>2],+f[S+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+28>>2]=r;r=+Tp(b,+f[V>>2],+f[S+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+32>>2]=r;r=+Tp(b,+f[U>>2],+f[S+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+36>>2]=r;r=+Tp(b,+f[T>>2],+f[S+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+40>>2]=r;r=+Tp(b,+f[i>>2],+f[S+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+44>>2]=r;Sp(b,v,u,x*p);r=+Tp(b,+f[N>>2],+f[N+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+48>>2]=r;r=+Tp(b,+f[R>>2],+f[N+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+52>>2]=r;r=+Tp(b,+f[Q>>2],+f[N+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+56>>2]=r;r=+Tp(b,+f[P>>2],+f[N+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+60>>2]=r;r=+Tp(b,+f[O>>2],+f[N+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+64>>2]=r;r=+Tp(b,+f[h>>2],+f[N+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+68>>2]=r;Sp(b,v,u,x*o);r=+Tp(b,+f[I>>2],+f[I+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+72>>2]=r;r=+Tp(b,+f[M>>2],+f[I+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+76>>2]=r;r=+Tp(b,+f[L>>2],+f[I+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+80>>2]=r;r=+Tp(b,+f[K>>2],+f[I+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+84>>2]=r;r=+Tp(b,+f[J>>2],+f[I+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+88>>2]=r;r=+Tp(b,+f[g>>2],+f[I+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+92>>2]=r;Sp(b,v,u,x*n);r=+Tp(b,+f[D>>2],+f[D+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+96>>2]=r;r=+Tp(b,+f[H>>2],+f[D+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+100>>2]=r;r=+Tp(b,+f[G>>2],+f[D+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+104>>2]=r;r=+Tp(b,+f[F>>2],+f[D+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+108>>2]=r;r=+Tp(b,+f[E>>2],+f[D+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+112>>2]=r;r=+Tp(b,+f[e>>2],+f[D+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+116>>2]=r;Sp(b,v,u,x*m);r=+Tp(b,+f[y>>2],+f[y+4>>2],c[v>>2]|0,c[u>>2]|0);f[a+120>>2]=r;r=+Tp(b,+f[C>>2],+f[y+12>>2],c[v>>2]|0,c[u>>2]|0);f[a+124>>2]=r;r=+Tp(b,+f[B>>2],+f[y+20>>2],c[v>>2]|0,c[u>>2]|0);f[a+128>>2]=r;r=+Tp(b,+f[A>>2],+f[y+28>>2],c[v>>2]|0,c[u>>2]|0);f[a+132>>2]=r;r=+Tp(b,+f[z>>2],+f[y+36>>2],c[v>>2]|0,c[u>>2]|0);f[a+136>>2]=r;r=+Tp(b,+f[d>>2],+f[y+44>>2],c[v>>2]|0,c[u>>2]|0);f[a+140>>2]=r;Sp(b,v,u,x*l);l=+Tp(b,w,s,c[v>>2]|0,c[u>>2]|0);f[a+144>>2]=l;zb=t;return 1}function Op(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;Il(a,84);c=0;g=0;i=36;j=35;k=36;while(1){if((c|0)==37)break;h=c+1|0;e=b+(c<<2)|0;c=h;d=g;while(1){if((d|0)==(k|0))break;Pp(a,d,+f[e>>2]<+f[b+(c<<2)>>2]&1);c=c+1|0;d=d+1|0}e=k+j|0;c=h;g=g+i|0;i=i+-1|0;j=j+-1|0;k=e}return}function Pp(b,c,e){b=b|0;c=c|0;e=e|0;b=b+((c|0)/8|0)|0;a[b>>0]=(e&255)<<(c&7)|(d[b>>0]|0);return}function Qp(a,b,c,d,e){a=a|0;b=+b;c=+c;d=+d;e=+e;var g=0.0;g=+w(+d)*e;e=+x(+d)*e;f[a>>2]=g;f[a+4>>2]=-e;f[a+8>>2]=b;f[a+12>>2]=e;f[a+16>>2]=g;f[a+20>>2]=c;f[a+24>>2]=0.0;f[a+28>>2]=0.0;f[a+32>>2]=1.0;return}function Rp(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=c+4|0;f[a>>2]=+f[b+8>>2]+(+f[b>>2]*+f[c>>2]+ +f[b+4>>2]*+f[d>>2]);f[a+4>>2]=+f[b+20>>2]+(+f[b+12>>2]*+f[c>>2]+ +f[b+16>>2]*+f[d>>2]);return}function Sp(a,b,d,e){a=a|0;b=b|0;d=d|0;e=+e;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=zb;zb=zb+16|0;l=m;g=~~+s(+(+Oi(e)));c[b>>2]=g;e=+z(+(e/+(1<>2]*e);c[d>>2]=g;j=a+20|0;if(((c[j>>2]|0)+-1|0)==(g|0)){c[b>>2]=(c[b>>2]|0)+1;c[d>>2]=0;g=0}h=c[b>>2]|0;if((h|0)>=0){i=c[a+16>>2]|0;if((h|0)<(i|0))h=g;else{c[b>>2]=i+-1;g=(c[j>>2]|0)+-1|0;k=7}}else{c[b>>2]=0;g=0;k=7}if((k|0)==7){c[d>>2]=g;h=g}g=c[b>>2]|0;if((g|0)<=-1){k=Xf(Xf(PE(Xf(Xf(Xf(56032,33865)|0,33900)|0,35e3)|0,268)|0,35007)|0,33993)|0;IE(l,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);b=XF(l,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(l);QE(k,b)|0;ME(k)|0;ua()}if((g|0)>=(c[a+16>>2]|0)){a=Xf(Xf(PE(Xf(Xf(Xf(56032,34017)|0,33900)|0,35e3)|0,269)|0,35007)|0,34061)|0;IE(l,a+(c[(c[a>>2]|0)+-12>>2]|0)|0);k=XF(l,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(l);QE(a,k)|0;ME(a)|0;ua()}if((h|0)<=-1){a=Xf(Xf(PE(Xf(Xf(Xf(56032,34104)|0,33900)|0,35e3)|0,270)|0,35007)|0,34138)|0;IE(l,a+(c[(c[a>>2]|0)+-12>>2]|0)|0);k=XF(l,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(l);QE(a,k)|0;ME(a)|0;ua()}if((h|0)<(c[j>>2]|0)){zb=m;return}else{m=Xf(Xf(PE(Xf(Xf(Xf(56032,34161)|0,33900)|0,35e3)|0,271)|0,35007)|0,34212)|0;IE(l,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);a=XF(l,56736)|0;a=Ib[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;YF(l);QE(m,a)|0;ME(m)|0;ua()}}function Tp(a,b,c,d,e){a=a|0;b=+b;c=+c;d=d|0;e=e|0;var g=0,h=0,i=0;g=zb;zb=zb+16|0;i=g+4|0;h=g;e=Lg(a,d,e)|0;mi(i,h,b,c,d);c=+Up(e,+f[i>>2],+f[h>>2]);zb=g;return +c}function Up(a,b,c){a=a|0;b=+b;c=+c;return +(+Vp(a,b,c))}function Vp(a,b,c){a=a|0;b=+b;c=+c;b=+Zh(b,0.0,+(((Ng(a)|0)+-2|0)>>>0));return +(+Ci(a,b,+Zh(c,0.0,+(((Og(a)|0)+-2|0)>>>0))))}function Wp(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+4|0;g=c[a>>2]|0;f=(c[e>>2]|0)-g|0;if(f>>>0>=b>>>0){if(f>>>0>b>>>0)c[e>>2]=g+b}else Xp(a,b-f|0,d);return}function Xp(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;k=zb;zb=zb+32|0;h=k;i=b+8|0;j=b+4|0;f=c[j>>2]|0;do if(((c[i>>2]|0)-f|0)>>>0>>0){f=f-(c[b>>2]|0)+d|0;g=mg(b)|0;if(g>>>0>>0)EO(b);else{l=c[b>>2]|0;m=(c[i>>2]|0)-l|0;i=m<<1;ng(h,m>>>0>>1>>>0?(i>>>0>>0?f:i):g,(c[j>>2]|0)-l|0,b+8|0);Yp(h,d,e);og(b,h);pg(h);break}}else do{a[f>>0]=a[e>>0]|0;f=(c[j>>2]|0)+1|0;c[j>>2]=f;d=d+-1|0}while((d|0)!=0);while(0);zb=k;return}function Yp(b,d,e){b=b|0;d=d|0;e=e|0;var f=0;f=b+8|0;b=d;d=c[f>>2]|0;do{a[d>>0]=a[e>>0]|0;d=(c[f>>2]|0)+1|0;c[f>>2]=d;b=b+-1|0}while((b|0)!=0);return}function Zp(a){a=a|0;var b=0,d=0,e=0;b=zb;zb=zb+272|0;e=b+256|0;d=b;Ta(e|0)|0;Ra(d|0,256,34263,Oa(e|0)|0)|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;gO(a,d,Yf(d)|0);zb=b;return}function _p(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;return}function $p(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;f=i;c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];c[a+16>>2]=c[b+16>>2];c[a+20>>2]=c[b+20>>2];g=a+24|0;h=c[b+24>>2]|0;c[f>>2]=h;e=f+4|0;b=c[b+28>>2]|0;c[e>>2]=b;if(!b){d=e;b=0}else{d=b+4|0;c[d>>2]=(c[d>>2]|0)+1;d=e;b=c[e>>2]|0}c[f>>2]=c[g>>2];c[g>>2]=h;h=a+28|0;c[d>>2]=c[h>>2];c[h>>2]=b;aq(f);zb=i;return}function aq(a){a=a|0;var b=0,d=0;a=c[a+4>>2]|0;if(a|0?(d=a+4|0,b=c[d>>2]|0,c[d>>2]=b+-1,(b|0)==0):0){Sb[c[(c[a>>2]|0)+8>>2]&255](a);_N(a)}return}function bq(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;c[a+28>>2]=0;$p(a,b);return}function cq(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;l=zb;zb=zb+32|0;i=l+16|0;j=l+8|0;k=l;if(!d){h=Xf(Xf(PE(Xf(Xf(Xf(56032,34281)|0,34314)|0,35e3)|0,127)|0,35007)|0,34386)|0;IE(i,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);m=XF(i,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(i);QE(h,m)|0;ME(h)|0;ua()}if(!e){m=Xf(Xf(PE(Xf(Xf(Xf(56032,34407)|0,34314)|0,35e3)|0,128)|0,35007)|0,34441)|0;IE(i,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(m,h)|0;ME(m)|0;ua()}if(f>>>0>>0){m=Xf(Xf(PE(Xf(Xf(Xf(56032,34463)|0,34314)|0,35e3)|0,129)|0,35007)|0,34500)|0;IE(i,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(m,h)|0;ME(m)|0;ua()}if(!g){m=Xf(Xf(PE(Xf(Xf(Xf(56032,34545)|0,34314)|0,35e3)|0,130)|0,35007)|0,34581)|0;IE(i,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(m,h)|0;ME(m)|0;ua()}if((f|0)<0)f=B(B(g,d)|0,dq(b)|0)|0;c[a+12>>2]=f;f=B(f,e)|0;h=a+20|0;if((c[h>>2]|0)!=(f|0)?(m=a+24|0,o=uB(f)|0,c[k>>2]=0,c[i>>2]=c[k>>2],eq(j,o,i),o=c[j>>2]|0,c[j>>2]=c[m>>2],c[m>>2]=o,o=j+4|0,k=a+28|0,n=c[o>>2]|0,c[o>>2]=c[k>>2],c[k>>2]=n,aq(j),(c[m>>2]|0)==0):0){o=Xf(Xf(PE(Xf(Xf(Xf(56032,34615)|0,34314)|0,35e3)|0,149)|0,35007)|0,34650)|0;IE(i,o+(c[(c[o>>2]|0)+-12>>2]|0)|0);n=XF(i,56736)|0;n=Ib[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;YF(i);QE(o,n)|0;ME(o)|0;ua()}c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=e;c[a+16>>2]=g;c[h>>2]=f;zb=l;return}function dq(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;switch(a|0){case 1:break;case 2:{a=4;break}default:{d=O(16)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;gO(b,34774,Yf(34774)|0);mj(d,b);Q(d|0,13208,5)}}zb=d;return a|0}function eq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;d=zb;zb=zb+16|0;e=d;c[a>>2]=b;f=tB(16)|0;c[f+4>>2]=0;c[f+8>>2]=0;c[f>>2]=15768;c[f+12>>2]=b;c[a+4>>2]=f;c[e>>2]=b;c[e+4>>2]=b;fq(a,e);zb=d;return}function fq(a,b){a=a|0;b=b|0;return}function gq(a){a=a|0;ZN(a);SA(a);return}function hq(a){a=a|0;SA(c[a+12>>2]|0);return}function iq(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==34671?a+12|0:0)|0}function jq(a){a=a|0;Pf(a,16);return}function kq(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;j=zb;zb=zb+16|0;k=j+8|0;l=j+4|0;m=j;c[b>>2]=e;c[b+4>>2]=f;c[b+8>>2]=g;c[b+16>>2]=i;g=B(h,g)|0;c[b+20>>2]=g;c[m>>2]=0;a[l>>0]=a[j+12>>0]|0;c[k>>2]=c[m>>2];lq(b+24|0,d,l,k);if((h|0)<0)h=B(B(i,f)|0,dq(e)|0)|0;c[b+12>>2]=h;zb=j;return}function lq(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;e=zb;zb=zb+16|0;d=e;c[a>>2]=b;f=tB(16)|0;c[f+4>>2]=0;c[f+8>>2]=0;c[f>>2]=15796;c[f+12>>2]=b;c[a+4>>2]=f;c[d>>2]=b;c[d+4>>2]=b;fq(a,d);zb=e;return}function mq(a,b){a=a|0;b=b|0;return}function nq(a){a=a|0;ZN(a);SA(a);return}function oq(a){a=a|0;a=a+12|0;mq(a,c[a>>2]|0);return}function pq(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==34793?a+12|0:0)|0}function qq(a){a=a|0;Pf(a,16);return}function rq(a){a=a|0;aq(a+24|0);return}function sq(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;return}function tq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=a+4|0;e=0;while(1){g=c[a>>2]|0;if(e>>>0>=(c[f>>2]|0)-g>>3>>>0)break;g=c[g+(e<<3)>>2]|0;Wb[c[(c[g>>2]|0)+8>>2]&3](g,b,d);e=e+1|0}return}function uq(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;f=zb;zb=zb+48|0;i=f;h=f+28|0;g=f+16|0;c[i>>2]=e;c[g>>2]=0;c[g+4>>2]=0;c[g+8>>2]=0;gO(g,d,Yf(d)|0);vq(h,g,i);tq(a,b,h);jO(h);jO(g);zb=f;return}function vq(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+2048|0;g=f;Jx(g,2048,(a[d+11>>0]|0)<0?c[d>>2]|0:d,e)|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;gO(b,g,Yf(g)|0);zb=f;return}function wq(a){a=a|0;g[a>>3]=-1.0;g[a+8>>3]=-1.0;return}function xq(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;Ka(d|0,0)|0;g[a>>3]=+(c[d+4>>2]|0)*1.0e-06+ +(c[d>>2]|0);zb=b;return}function yq(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;if(!(+g[a>>3]>=0.0)){d=Xf(Xf(PE(Xf(Xf(Xf(56032,34888)|0,34927)|0,35e3)|0,67)|0,35007)|0,35010)|0;IE(b,d+(c[(c[d>>2]|0)+-12>>2]|0)|0);a=XF(b,56736)|0;a=Ib[c[(c[a>>2]|0)+28>>2]&63](a,10)|0;YF(b);QE(d,a)|0;ME(d)|0;ua()}else{Ka(b|0,0)|0;g[a+8>>3]=+(c[b+4>>2]|0)*1.0e-06+ +(c[b>>2]|0);zb=d;return}}function zq(a){a=a|0;var b=0.0,d=0,e=0.0,f=0,h=0,i=0;f=zb;zb=zb+16|0;d=f;e=+g[a>>3];if(!(e>=0.0)){h=Xf(Xf(PE(Xf(Xf(Xf(56032,34888)|0,34927)|0,35e3)|0,80)|0,35007)|0,35010)|0;IE(d,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);i=XF(d,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(d);QE(h,i)|0;ME(h)|0;ua()}b=+g[a+8>>3];if(!(b>=0.0)){i=Xf(Xf(PE(Xf(Xf(Xf(56032,35037)|0,34927)|0,35e3)|0,81)|0,35007)|0,35075)|0;IE(d,i+(c[(c[i>>2]|0)+-12>>2]|0)|0);h=XF(d,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(d);QE(i,h)|0;ME(i)|0;ua()}else{zb=f;return +(b-e)}return +(0.0)}function Aq(a){a=a|0;return +(+zq(a)*1.0e3)}function Bq(a,b){a=a|0;b=b|0;var d=0;wq(a);d=a+16|0;c[d>>2]=0;c[d+4>>2]=0;c[d+8>>2]=0;gO(d,b,Yf(b)|0);xq(a);return}function Cq(b){b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0.0;k=zb;zb=zb+48|0;j=k;d=k+24|0;yq(b);f=yk()|0;Zp(d);h=(a[d+11>>0]|0)<0?c[d>>2]|0:d;i=b+16|0;if((a[i+11>>0]|0)<0)e=c[i>>2]|0;else e=i;l=+Aq(b);c[j>>2]=35129;c[j+4>>2]=h;c[j+8>>2]=35137;c[j+12>>2]=e;g[j+16>>3]=l;uq(f,8,35102,j);jO(d);jO(i);zb=k;return}function Dq(){Eq();Fq();Gq();return}function Eq(){c[13871]=0;c[13872]=0;c[13873]=0;c[13874]=0;c[13875]=1065353216;return}function Fq(){c[13876]=0;c[13877]=0;c[13878]=0;c[13879]=0;c[13880]=1065353216;return}function Gq(){Hq(0);return}function Hq(a){a=a|0;var b=0;a=zb;zb=zb+16|0;b=a;Jq(35173,26);Lq(35179,67);Lq(35188,68);Oq(35197,20);Oq(35208,21);Oq(35224,22);Sq(35238,23);Lq(35256,69);Vq(35276,70);Jq(35288,27);Sq(35305,24);Jq(35325,28);Jq(35343,29);Sq(35365,25);Sq(35388,26);Lq(35417,71);Lq(35430,72);Lq(35443,73);Jq(35459,30);Sq(35478,27);Sq(35488,28);Sq(35501,29);Lq(35514,74);Lq(35527,75);kr(35546,114);mr(35558,1);or(35570,1);qr(35593,1);or(35616,2);qr(35638,2);ur(35660,40);Lq(35677,76);ur(35694,41);Lq(35707,77);ur(35720,42);Lq(35744,78);Br(35768,3);qr(35781,3);ur(35794,43);Lq(35812,79);ur(35830,44);Lq(35846,80);ur(35862,45);Lq(35879,81);Jr(35896,15816);Jr(35925,15820);Jr(35953,15824);c[b>>2]=0;Jr(35986,b);c[b>>2]=1;Jr(36003,b);c[b>>2]=0;Jr(36019,b);c[b>>2]=0;Jr(36041,b);c[b>>2]=1;Jr(36066,b);c[b>>2]=1;Jr(36091,b);c[b>>2]=100;Jr(36116,b);c[b>>2]=0;Jr(36143,b);c[b>>2]=1;Jr(36169,b);c[b>>2]=0;Jr(36195,b);c[b>>2]=0;Jr(36222,b);c[b>>2]=1;Jr(36249,b);c[b>>2]=2;Jr(36275,b);c[b>>2]=3;Jr(36300,b);c[b>>2]=4;Jr(36338,b);c[b>>2]=0;Jr(36375,b);c[b>>2]=0;Jr(36409,b);c[b>>2]=1;Jr(36433,b);c[b>>2]=2;Jr(36459,b);c[b>>2]=2;Jr(36486,b);c[b>>2]=5;Jr(36520,b);g[b>>3]=.5;Kr(36538,b);c[b>>2]=0;Jr(36559,b);c[b>>2]=1;Jr(36578,b);c[b>>2]=2;Jr(36596,b);c[b>>2]=3;Jr(36614,b);c[b>>2]=4;Jr(36633,b);c[b>>2]=3;Jr(36655,b);c[b>>2]=515;Jr(36674,b);c[b>>2]=259;Jr(36703,b);c[b>>2]=4;Jr(36731,b);c[b>>2]=772;Jr(36750,b);c[b>>2]=1028;Jr(36780,b);c[b>>2]=0;Jr(36810,b);c[b>>2]=1;Jr(36841,b);c[b>>2]=2;Jr(36877,b);c[b>>2]=3;Jr(36911,b);c[b>>2]=0;Jr(36949,b);c[b>>2]=1;Jr(36982,b);c[b>>2]=2;Jr(37029,b);c[b>>2]=3;Jr(37071,b);c[b>>2]=4;Jr(37114,b);c[b>>2]=5;Jr(37166,b);c[b>>2]=6;Jr(37217,b);c[b>>2]=7;Jr(37262,b);c[b>>2]=8;Jr(37301,b);c[b>>2]=9;Jr(37346,b);zb=a;return}function Iq(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;i=zb;zb=zb+16|0;h=i+8|0;f=i+12|0;g=c[13882]|0;c[13882]=g+1;c[f>>2]=g;g=Ur(55484,f)|0;c[g>>2]=c[f>>2];c[g+208>>2]=a;c[g+212>>2]=b;j=B(a<<2,b)|0;a=g+200|0;c[a>>2]=j;j=FO(j)|0;b=g+196|0;c[b>>2]=j;j=FO((c[a>>2]|0)/4|0)|0;e=g+204|0;c[e>>2]=j;j=hd()|0;c[g+220>>2]=j;if(!j)Ue(0,3,41354,i);yt(c[f>>2]|0,d)|0;c[h>>2]=c[a>>2];Ue(0,1,41391,h);za(0,c[g>>2]|0,c[b>>2]|0,c[a>>2]|0,g+344|0,51360,c[e>>2]|0)|0;zb=i;return c[g>>2]|0}function Jq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=tt(d)|0;d=ut(d)|0;ka(a|0,e|0,d|0,vt()|0,8,b|0);zb=c;return}function Kq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;d=g;c[d>>2]=a;if(!(Tr(55484,d)|0))a=-1;else{f=Ur(55484,d)|0;a=f+196|0;b=c[a>>2]|0;if(b|0){GO(b);c[a>>2]=0;c[f+200>>2]=0}pt(f);jd(c[f+220>>2]|0)|0;qt(55484,d)|0;b=f+328|0;d=f+332|0;a=0;while(1){e=c[b>>2]|0;if(a>>>0>=(c[d>>2]|0)-e>>3>>>0)break;Oe(c[e+(a<<3)+4>>2]|0)|0;a=a+1|0}Zr(b);SA(b);Yr(f);SA(f);a=0}zb=g;return a|0}function Lq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=lt(d)|0;d=mt(d)|0;ka(a|0,e|0,d|0,Ns()|0,30,b|0);zb=c;return}function Mq(a){a=a|0;var b=0,d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;f=g;b=g+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{b=Ur(55484,b)|0;e=b+192|0;a=At(c[e>>2]|0,c[b+472>>2]|0)|0;d=b+236|0;c[d>>2]=a;if(!a){Ue(0,3,41323,f);b=b+232|0;Lf(b)|0;a=c[d>>2]|0}else b=b+232|0;Ye(a,5.0)|0;Xe(c[d>>2]|0,.5)|0;_e(c[d>>2]|0,16)|0;Ze(c[d>>2]|0,6)|0;$e(c[d>>2]|0,6)|0;af(c[d>>2]|0,6)|0;a=kt(c[e>>2]|0)|0;c[b>>2]=a;a=0}zb=g;return a|0}function Nq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;g=zb;zb=zb+16|0;f=g;e=g+4|0;c[e>>2]=b;do if(Tr(55484,e)|0){e=Ur(55484,e)|0;if((a[d+11>>0]|0)<0)d=c[d>>2]|0;b=e+340|0;if(!(jt(d,b,e+220|0)|0)){Ue(0,3,41233,f);b=-1;break}else{b=c[b>>2]|0;break}}else b=-1;while(0);zb=g;return b|0}function Oq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=ft(d)|0;d=gt(d)|0;ka(a|0,e|0,d|0,Xs()|0,31,b|0);zb=c;return}function Pq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;g=j+8|0;e=j+12|0;i=j;c[e>>2]=b;do if(!(Tr(55484,e)|0))b=-1;else{h=Ur(55484,e)|0;if((a[d+11>>0]|0)<0)b=c[d>>2]|0;else b=d;f=h+224|0;if(!($s(b,c[h+216>>2]|0,h+220|0,f)|0)){Ue(0,3,41157,g);b=-1;break}b=h+328|0;e=h+332|0;d=c[e>>2]|0;c[i>>2]=d-(c[b>>2]|0)>>3;c[i+4>>2]=c[f>>2];if((c[h+336>>2]|0)==(d|0))at(b,i);else{f=i;g=c[f+4>>2]|0;h=d;c[h>>2]=c[f>>2];c[h+4>>2]=g;c[e>>2]=(c[e>>2]|0)+8}b=c[i>>2]|0}while(0);zb=j;return b|0}function Qq(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i;e=i+4|0;c[e>>2]=b;do if(Tr(55484,e)|0){f=Ur(55484,e)|0;g=f+244|0;b=c[g>>2]|0;if((a[d+11>>0]|0)<0)e=c[d>>2]|0;else e=d;if(!(_s(f,b,e)|0)){Ue(0,3,40842,h);b=-1;break}else{c[g>>2]=(c[g>>2]|0)+1;break}}else b=-1;while(0);zb=i;return b|0}function Rq(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;e=g;c[e>>2]=a;if(((Tr(55484,e)|0)!=0?(f=Ur(55484,e)|0,(b|0)>=0):0)?(d=c[f+328>>2]|0,(c[f+332>>2]|0)-d>>3>>>0>b>>>0):0)a=c[(c[d+(b<<3)+4>>2]|0)+4>>2]|0;else a=-1;zb=g;return a|0}function Sq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=Vs(d)|0;d=Ws(d)|0;ka(a|0,e|0,d|0,Xs()|0,32,b|0);zb=c;return}function Tq(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=Ur(55484,b)|0;a=(c[a+332>>2]|0)-(c[a+328>>2]|0)>>3}zb=d;return a|0}function Uq(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+208|0;h=i+192|0;g=i+184|0;d=i;e=b+11|0;if((a[e>>0]|0)<0)f=c[b>>2]|0;else f=b;if((ke(f,1,d,g)|0)<0){if((a[e>>0]|0)<0)b=c[b>>2]|0;c[h>>2]=b;Ue(0,3,40778,h);b=-1}else{b=c[13881]|0;c[13881]=b+1;c[g>>2]=b;_O(Rs(55504,g)|0,d|0,184)|0;b=c[g>>2]|0}zb=i;return b|0}function Vq(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=Ls(d)|0;d=Ms(d)|0;ka(a|0,e|0,d|0,Ns()|0,31,b|0);zb=c;return}function Wq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=a;do if(Tr(55484,e)|0){a=(Ur(55484,e)|0)+216|0;a=c[a>>2]|0;if((c[a+44>>2]|0)>(b|0)){c[((b|0)<0?54536:a+48+(b<<8)|0)+16>>2]=d;a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=f;return a|0}function Xq(a,b){a=a|0;b=b|0;var d=0,e=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;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;do if(Tr(55484,d)|0){a=(Ur(55484,d)|0)+216|0;a=c[a>>2]|0;if((c[a+44>>2]|0)>(b|0)){a=(b|0)<0?54536:a+48+(b<<8)|0;n=+g[6420];g[a+168>>3]=n;j=+g[6421];g[a+176>>3]=j;m=+g[6422];g[a+184>>3]=m;i=+g[6423];g[a+192>>3]=i;l=+g[6424];g[a+200>>3]=l;h=+g[6425];g[a+208>>3]=h;k=+g[6426];g[a+216>>3]=k;f=+g[6427];g[a+224>>3]=f;g[a+56>>3]=(n+m+l+k)*.25;g[a+64>>3]=(j+i+h+f)*.25;a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=e;return a|0}function Yq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=a;do if(Tr(55484,e)|0){a=Ur(55484,e)|0;e=c[a+216>>2]|0;if((c[e+44>>2]|0)>(b|0)){+Uc(c[a+228>>2]|0,(b|0)<0?54536:e+48+(b<<8)|0,+(d|0),51360);a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=f;return a|0}function Zq(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=a;do if(Tr(55484,e)|0){a=Ur(55484,e)|0;e=c[a+216>>2]|0;if((c[e+44>>2]|0)>(b|0)){+Vc(c[a+228>>2]|0,(b|0)<0?54536:e+48+(b<<8)|0,51360,+(d|0),51360);a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=f;return a|0}function _q(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;do if(Tr(55484,d)|0){d=Ur(55484,d)|0;a=c[d+328>>2]|0;if((b|0)<0?1:(c[d+332>>2]|0)-a>>3>>>0<=b>>>0){a=c[3955]|0;break}else{a=c[a+(b<<3)+4>>2]|0;b=c[d+216>>2]|0;+Pe(c[d+228>>2]|0,b+48|0,c[b+44>>2]|0,a);Ks(a+8|0,51360);a=0;break}}else a=c[3954]|0;while(0);zb=e;return a|0}function $q(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;do if(Tr(55484,d)|0){d=Ur(55484,d)|0;a=c[d+328>>2]|0;if((b|0)<0?1:(c[d+332>>2]|0)-a>>3>>>0<=b>>>0){a=c[3955]|0;break}else{a=c[a+(b<<3)+4>>2]|0;b=c[d+216>>2]|0;+Re(c[d+228>>2]|0,b+48|0,c[b+44>>2]|0,a);Ks(a+8|0,51360);a=0;break}}else a=c[3954]|0;while(0);zb=e;return a|0}function ar(a){a=a|0;var b=0,d=0,e=0,f=0;f=zb;zb=zb+48|0;b=f+40|0;e=f;c[b>>2]=a;if(!(Tr(55484,b)|0))a=c[3954]|0;else{a=Ur(55484,b)|0;b=e;d=b+40|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));c[e>>2]=c[a+196>>2];c[e+16>>2]=1;c[e+12>>2]=c[a+204>>2];a=Mc(c[a+216>>2]|0,e)|0}zb=f;return a|0}function br(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;c[b>>2]=a;if(!(Tr(55484,b)|0))a=15816;else{a=(Ur(55484,b)|0)+216|0;a=(c[a>>2]|0)+44|0}zb=d;return c[a>>2]|0}function cr(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;c[b>>2]=a;if(Tr(55484,b)|0)Ur(55484,b)|0;zb=d;return -1}function dr(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=zb;zb=zb+16|0;e=f;c[e>>2]=a;do if(Tr(55484,e)|0){e=Ur(55484,e)|0;a=c[e+328>>2]|0;if((b|0)<0?1:(c[e+332>>2]|0)-a>>3>>>0<=b>>>0){a=c[3955]|0;break}a=c[a+(b<<3)+4>>2]|0;if((d|0)<0?1:(c[a+4>>2]|0)<=(d|0)){a=c[3956]|0;break}else{a=c[a>>2]|0;Ks(a+(d*320|0)+16|0,51360);ya(1,c[a+(d*320|0)+304>>2]|0,c[a+(d*320|0)>>2]|0,c[a+(d*320|0)+4>>2]|0,+(+g[a+(d*320|0)+8>>3]))|0;a=0;break}}else a=c[3954]|0;while(0);zb=f;return a|0}function er(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;do if(Tr(55484,d)|0){a=(Ur(55484,d)|0)+216|0;a=c[a>>2]|0;if((c[a+44>>2]|0)>(b|0)){a=(b|0)<0?54536:a+48+(b<<8)|0;Aa(2,c[a>>2]|0,c[a+4>>2]|0,c[a+8>>2]|0,c[a+12>>2]|0,c[a+16>>2]|0,c[a+20>>2]|0,c[a+24>>2]|0,+(+g[a+32>>3]),+(+g[a+40>>3]),+(+g[a+48>>3]),+(+g[a+56>>3]),+(+g[a+64>>3]),+(+g[a+72>>3]),+(+g[a+80>>3]),+(+g[a+88>>3]),+(+g[a+96>>3]),+(+g[a+104>>3]),+(+g[a+112>>3]),+(+g[a+120>>3]),+(+g[a+128>>3]),+(+g[a+136>>3]),+(+g[a+144>>3]),+(+g[a+152>>3]),+(+g[a+160>>3]),+(+g[a+168>>3]),+(+g[a+176>>3]),+(+g[a+184>>3]),+(+g[a+192>>3]),+(+g[a+200>>3]),+(+g[a+208>>3]),+(+g[a+216>>3]),+(+g[a+224>>3]),c[a+240>>2]|0)|0;a=0;break}else{a=c[3956]|0;break}}else a=c[3954]|0;while(0);zb=e;return a|0}function fr(a,b){a=a|0;b=b|0;var d=0,e=0,g=0.0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;r=zb;zb=zb+80|0;q=r+56|0;p=r+48|0;d=r+72|0;i=r+76|0;e=r+68|0;n=r;o=r+64|0;c[d>>2]=a;do if(!(Tr(55484,d)|0))a=c[3954]|0;else{k=Ur(55484,d)|0;l=k+244|0;if((c[l>>2]|0)<=(b|0)){a=c[3956]|0;break}c[i>>2]=0;c[e>>2]=-1;f[o>>2]=-1.0;m=k+240|0;a=c[m>>2]|0;do if((a|0)==-2){j=k+232|0;yg(c[j>>2]|0,c[k+204>>2]|0)|0;Ag(c[j>>2]|0,i,e)|0;e=c[e>>2]|0;j=c[i>>2]|0;a=-1;d=0;while(1){if((d|0)>=(e|0))break;do if((c[j+(d*68|0)+48>>2]|0)==(b|0)?(c[j+(d*68|0)+60>>2]|0)==0:0){if((a|0)==-1)a=c[j+(d*68|0)+52>>2]|0;else{g=+f[j+(d*68|0)+52>>2];if(!(+f[o>>2]>g))break;a=(f[h>>2]=g,c[h>>2]|0)}c[o>>2]=a;a=d}while(0);d=d+1|0}if((a|0)<=-1){c[m>>2]=-2;d=30;break}i=c[j+48>>2]|0;c[m>>2]=i;e=0;while(1){if((e|0)==3)break;d=0;while(1){if((d|0)==4)break;c[n+(e<<4)+(d<<2)>>2]=c[j+(a*68|0)+(e<<4)+(d<<2)>>2];d=d+1|0}e=e+1|0}vf(c[k+248+(i<<2)>>2]|0,n)|0;a=c[m>>2]|0;d=25}else d=25;while(0);do if((d|0)==25)if((a|0)>-1){a=Ct(c[k+236>>2]|0,c[k+248+(a<<2)>>2]|0,c[k+196>>2]|0,n,o)|0;if((a|0)<0){c[p>>2]=a;Ue(0,1,37701,p);c[m>>2]=-2;d=30;break}p=(c[l>>2]|0)+-1|0;c[q>>2]=c[k+248+(c[m>>2]<<2)>>2];c[q+4>>2]=p;Ue(0,1,37720,q);if((c[m>>2]|0)>-1)xa(3,b|0,+(+f[o>>2]),+(+f[n>>2]),+(+f[n+4>>2]),+(+f[n+8>>2]),+(+f[n+12>>2]),+(+f[n+16>>2]),+(+f[n+20>>2]),+(+f[n+24>>2]),+(+f[n+28>>2]),+(+f[n+32>>2]),+(+f[n+36>>2]),+(+f[n+40>>2]),+(+f[n+44>>2]))|0;else d=30}else d=30;while(0);if((d|0)==30)wa(4,b|0)|0;a=0}while(0);zb=r;return a|0}function gr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(!(Tr(55484,d)|0))b=0;else{a=(Ur(55484,d)|0)+216|0;d=(b|0)!=0;tc(c[a>>2]|0,d&1)|0;c[e>>2]=d?37670:37674;Ue(0,1,37679,e)}zb=f;return b|0}function hr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=0;else{a=(Ur(55484,b)|0)+216|0;xc(c[a>>2]|0,d)|0;a=c[d>>2]|0}zb=e;return a|0}function ir(a){a=a|0;var b=0,d=0;d=zb;zb=zb+16|0;b=d;c[b>>2]=a;if(!(Tr(55484,b)|0))a=0;else{a=(Ur(55484,b)|0)+216|0;a=c[(c[a>>2]|0)+4834148>>2]|0}zb=d;return a|0}function jr(a){a=a|0;c[3916]=a;return}function kr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=Fs(d)|0;d=Gs(d)|0;ka(a|0,e|0,d|0,Hs()|0,46,b|0);zb=c;return}function lr(){return c[3916]|0}function mr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=As(d)|0;d=Bs(d)|0;ka(a|0,e|0,d|0,Cs()|0,82,b|0);zb=c;return}function nr(a,b){a=a|0;b=+b;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(Tr(55484,d)|0){d=(Ur(55484,d)|0)+312|0;g[d>>3]=b}zb=e;return}function or(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=us(d)|0;d=vs(d)|0;ka(a|0,e|0,d|0,ws()|0,1,b|0);zb=c;return}function pr(a){a=a|0;var b=0.0,d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(!(Tr(55484,d)|0))b=-1.0;else{d=(Ur(55484,d)|0)+312|0;b=+g[d>>3]}zb=e;return +b}function qr(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=ps(d)|0;d=qs(d)|0;ka(a|0,e|0,d|0,rs()|0,1,b|0);zb=c;return}function rr(a,b){a=a|0;b=+b;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(Tr(55484,d)|0){d=(Ur(55484,d)|0)+320|0;g[d>>3]=b}zb=e;return}function sr(a){a=a|0;var b=0.0,d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(!(Tr(55484,d)|0))b=-1.0;else{d=(Ur(55484,d)|0)+320|0;b=+g[d>>3]}zb=e;return +b}function tr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(Tr(55484,d)|0?(d=(Ur(55484,d)|0)+216|0,(uc(c[d>>2]|0,b)|0)==0):0){c[e>>2]=b;Ue(0,1,37628,e)}zb=f;return}function ur(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=ks(d)|0;d=ls(d)|0;ka(a|0,e|0,d|0,ms()|0,2,b|0);zb=c;return}function vr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(Cc(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function wr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=zb;zb=zb+16|0;f=g;d=g+4|0;c[d>>2]=a;if((Tr(55484,d)|0?(e=Ur(55484,d)|0,b>>>0<=255):0)?(Ac(c[e+216>>2]|0,b)|0)==0:0){c[f>>2]=b;Ue(0,1,37602,f)}zb=g;return}function xr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(Bc(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function yr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(Tr(55484,d)|0?(d=(Ur(55484,d)|0)+216|0,(Fc(c[d>>2]|0,b)|0)==0):0){c[e>>2]=b;Ue(0,1,37567,e)}zb=f;return}function zr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(Ic(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function Ar(a,b){a=a|0;b=+b;var d=0,e=0,f=0,h=0.0,i=0,j=0;j=zb;zb=zb+16|0;i=j;e=j+8|0;c[e>>2]=a;if(((Tr(55484,e)|0?(f=Ur(55484,e)|0,!(b<=0.0|b>=1.0)):0)?(h=b,d=c[f+216>>2]|0,d|0):0)?(Jc(d,h)|0)==0:0){g[i>>3]=h;Ue(0,1,37536,i)}zb=j;return}function Br(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=zb;zb=zb+16|0;d=c;e=ds(d)|0;d=es(d)|0;ka(a|0,e|0,d|0,fs()|0,2,b|0);zb=c;return}function Cr(a){a=a|0;var b=0.0,d=0,e=0,f=0;f=zb;zb=zb+16|0;d=f+8|0;e=f;c[d>>2]=a;if(!(Tr(55484,d)|0))b=-1.0;else{a=(Ur(55484,d)|0)+216|0;a=c[a>>2]|0;if(!a)b=-1.0;else{d=(Kc(a,e)|0)==0;b=d?+g[e>>3]:-1.0}}zb=f;return +b}function Dr(a,b){a=a|0;b=b|0;var d=0,e=0;e=zb;zb=zb+16|0;d=e;c[d>>2]=a;if(Tr(55484,d)|0){d=(Ur(55484,d)|0)+216|0;Gc(c[d>>2]|0,b)|0}zb=e;return}function Er(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;Hc(c[a>>2]|0,d)|0;a=c[d>>2]|0}zb=e;return a|0}function Fr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(Tr(55484,d)|0?(d=(Ur(55484,d)|0)+216|0,(yc(c[d>>2]|0,b)|0)==0):0){c[e>>2]=b;Ue(0,1,37506,e)}zb=f;return}function Gr(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(zc(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function Hr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;e=f;d=f+4|0;c[d>>2]=a;if(Tr(55484,d)|0?(d=(Ur(55484,d)|0)+216|0,(Dc(c[d>>2]|0,b)|0)==0):0){c[e>>2]=b;Ue(0,1,37477,e)}zb=f;return}function Ir(a){a=a|0;var b=0,d=0,e=0;e=zb;zb=zb+16|0;b=e;d=e+4|0;c[b>>2]=a;if(!(Tr(55484,b)|0))a=-1;else{a=(Ur(55484,b)|0)+216|0;a=(Ec(c[a>>2]|0,d)|0)==0;a=a?c[d>>2]|0:-1}zb=e;return a|0}function Jr(a,b){a=a|0;b=b|0;var c=0;c=Pr()|0;ha(a|0,c|0,+(+Rr(Qr(b)|0)));return}function Kr(a,b){a=a|0;b=b|0;var c=0;c=Lr()|0;ha(a|0,c|0,+(+Nr(+Mr(b))));return}function Lr(){return Or()|0}function Mr(a){a=a|0;return +(+g[a>>3])}function Nr(a){a=+a;return +a}function Or(){return 14120}function Pr(){return Sr()|0}function Qr(a){a=a|0;return c[a>>2]|0}function Rr(a){a=a|0;return +(+(a|0))}function Sr(){return 14080}function Tr(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(!h)if(e>>>0>>0)d=e;else d=(e>>>0)%(f>>>0)|0;else d=g&e;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(e|0)){if((c[b+8>>2]|0)==(e|0))break a}else{if(!h){if(a>>>0>=f>>>0)a=(a>>>0)%(f>>>0)|0}else a=a&g;if((a|0)!=(d|0)){b=0;break a}}}else b=0}else b=0;while(0);return b|0}function Ur(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){Vr(r,a,q,57661,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;Wr(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+16|0}function Vr(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(496)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];g=h+16|0;aP(g|0,0,480)|0;cs(g);a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function Wr(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)bs(a,b)}}else bs(a,b);return}function Xr(a){a=a|0;Yr(a+8|0);return}function Yr(a){a=a|0;Zr(a+328|0);_r(a+288|0);return}function Zr(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function _r(a){a=a|0;$r(a);return}function $r(a){a=a|0;var b=0;as(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function as(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;Pf(b,16);b=a}return}function bs(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function cs(a){a=a|0;var b=0;c[a+192>>2]=0;c[a+196>>2]=0;b=a+204|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+240>>2]=-2;c[a+244>>2]=0;b=a+288|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[a+304>>2]=1065353216;g[a+312>>3]=.0001;g[a+320>>3]=1.0e3;b=a+328|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;c[a+472>>2]=2;return}function ds(a){a=a|0;return 3}function es(a){a=a|0;return js()|0}function fs(){return 37531}function gs(a,b,c){a=a|0;b=b|0;c=+c;b=hs(b)|0;c=+is(c);Tb[a&3](b,c);return}function hs(a){a=a|0;return a|0}function is(a){a=+a;return +a}function js(){return 15828}function ks(a){a=a|0;return 3}function ls(a){a=a|0;return os()|0}function ms(){return 37623}function ns(a,b,c){a=a|0;b=b|0;c=c|0;b=hs(b)|0;c=hs(c)|0;Ub[a&63](b,c);return}function os(){return 15840}function ps(a){a=a|0;return 2}function qs(a){a=a|0;return ts()|0}function rs(){return 37654}function ss(a,b){a=a|0;b=b|0;var c=0.0,d=0,e=0;d=zb;zb=zb+16|0;e=d;b=hs(b)|0;c=+Db[a&3](b);g[e>>3]=c;c=+Mr(e);zb=d;return +c}function ts(){return 15852}function us(a){a=a|0;return 3}function vs(a){a=a|0;return zs()|0}function ws(){return 37658}function xs(a,b,c){a=a|0;b=b|0;c=+c;b=hs(b)|0;c=+ys(c);Tb[a&3](b,c);return}function ys(a){a=+a;return +a}function zs(){return 15860}function As(a){a=a|0;return 1}function Bs(a){a=a|0;return Es()|0}function Cs(){return 37663}function Ds(a){a=a|0;var b=0,d=0;b=zb;zb=zb+16|0;d=b;a=Fb[a&1]()|0;c[d>>2]=a;a=Qr(d)|0;zb=b;return a|0}function Es(){return 15872}function Fs(a){a=a|0;return 2}function Gs(a){a=a|0;return Js()|0}function Hs(){return 37666}function Is(a,b){a=a|0;b=b|0;b=hs(b)|0;Sb[a&255](b);return}function Js(){return 15876}function Ks(a,b){a=a|0;b=b|0;var c=0,d=0;d=0;while(1){if((d|0)==3)break;c=0;while(1){if((c|0)==4)break;g[b+(d<<5)+(c<<3)>>3]=+g[a+(d<<5)+(c<<3)>>3];c=c+1|0}d=d+1|0}return}function Ls(a){a=a|0;return 2}function Ms(a){a=a|0;return Qs()|0}function Ns(){return 40673}function Os(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=zb;zb=zb+16|0;f=d+12|0;e=d;Ps(e,b);b=Gb[a&127](e)|0;c[f>>2]=b;b=Qr(f)|0;jO(e);zb=d;return b|0}function Ps(a,b){a=a|0;b=b|0;var d=0;d=c[b>>2]|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;gO(a,b+4|0,d);return}function Qs(){return 15884}function Rs(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){Ss(r,a,q,57661,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;Ts(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+16|0}function Ss(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(200)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];aP(h+16|0,0,184)|0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function Ts(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Us(a,b)}}else Us(a,b);return}function Us(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function Vs(a){a=a|0;return 3}function Ws(a){a=a|0;return Zs()|0}function Xs(){return 40837}function Ys(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=zb;zb=zb+16|0;f=e;b=hs(b)|0;d=hs(d)|0;d=Ib[a&63](b,d)|0;c[f>>2]=d;d=Qr(f)|0;zb=e;return d|0}function Zs(){return 15892}function _s(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;r=zb;zb=zb+96|0;n=r+80|0;m=r+72|0;l=r+64|0;k=r+56|0;j=r+48|0;i=r+40|0;q=r+32|0;p=r+24|0;o=r+16|0;h=r+8|0;s=r;e=r+88|0;f=r+84|0;g=c[a+232>>2]|0;c[e>>2]=0;c[s>>2]=d;Ue(0,1,40887,s);do if((Uf(d,40905,f)|0)>=0){c[o>>2]=b;Ue(0,1,40949,o);if((Vf(c[f>>2]|0,-1,b)|0)<0){Ue(0,3,40974,p);a=0;break}if((Sf(e,f)|0)<0){Ue(0,3,41010,q);a=0;break}Ue(0,1,41037,i);c[j>>2]=d;Ue(0,1,41046,j);s=tf(d,41063,0)|0;c[a+248+(b<<2)>>2]=s;if(!s){c[k>>2]=d;Ue(0,3,41068,k)}Ue(0,1,41037,l);if((b|0)==10)Ea(-1);if((fg(g,c[e>>2]|0)|0)<0){Ue(0,3,41101,m);a=0;break}else{Tf(e)|0;Ue(0,1,41126,n);a=1;break}}else{c[h>>2]=d;Ue(0,3,40911,h);a=0}while(0);zb=r;return a|0}function $s(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=zb;zb=zb+16|0;a=Se(a,c[d>>2]|0)|0;c[e>>2]=a;a:do if(!a){Ue(0,3,41206,f);jd(c[d>>2]|0)|0;a=0}else switch(c[a+108>>2]|0){case 0:{Fc(b,0)|0;a=1;break a}case 1:{Fc(b,2)|0;a=1;break a}default:{Fc(b,3)|0;a=1;break a}}while(0);zb=f;return a|0}function at(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=bt(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;ct(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;dt(a,d);et(d);zb=h;return}}function bt(a){a=a|0;return 536870911}function ct(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function dt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function et(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-8|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function ft(a){a=a|0;return 3}function gt(a){a=a|0;return it()|0}function ht(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=zb;zb=zb+16|0;g=e+12|0;f=e;b=hs(b)|0;Ps(f,d);d=Ib[a&63](b,f)|0;c[g>>2]=d;d=Qr(g)|0;jO(f);zb=e;return d|0}function it(){return 15904}function jt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=zb;zb=zb+16|0;e=f;g=sd(c[d>>2]|0,a)|0;c[b>>2]=g;if((g|0)<0){c[e>>2]=a;Ue(0,3,41277,e);jd(c[d>>2]|0)|0;a=0}else a=1;zb=f;return a|0}function kt(a){a=a|0;return Jf(a)|0}function lt(a){a=a|0;return 2}function mt(a){a=a|0;return ot()|0}function nt(a,b){a=a|0;b=b|0;var d=0,e=0;d=zb;zb=zb+16|0;e=d;b=hs(b)|0;b=Gb[a&127](b)|0;c[e>>2]=b;b=Qr(e)|0;zb=d;return b|0}function ot(){return 15916}function pt(a){a=a|0;var b=0,d=0;b=a+216|0;d=c[b>>2]|0;if(d|0){gd(d)|0;wc(c[b>>2]|0)|0;c[b>>2]=0}b=a+228|0;if(c[b>>2]|0){rc(b)|0;c[b>>2]=0}b=a+192|0;if(c[b>>2]|0){ne(b)|0;c[b>>2]=0}return}function qt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;d=f+4|0;e=f;b=Tr(a,b)|0;if(!b)b=0;else{c[e>>2]=b;c[d>>2]=c[e>>2];rt(a,d)|0;b=1}zb=f;return b|0}function rt(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;g=zb;zb=zb+32|0;h=g+16|0;f=g+4|0;i=g;d=c[d>>2]|0;e=c[d>>2]|0;c[i>>2]=d;c[h>>2]=c[i>>2];st(f,b,h);d=c[f>>2]|0;c[f>>2]=0;if(d|0){if(a[f+8>>0]|0)Xr(d+8|0);Pf(d,496)}zb=g;return e|0}function st(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;o=c[e>>2]|0;l=c[d+4>>2]|0;e=c[o+4>>2]|0;m=l+-1|0;i=(m&l|0)==0;if(!i)if(e>>>0>>0)j=e;else j=(e>>>0)%(l>>>0)|0;else j=m&e;f=(c[d>>2]|0)+(j<<2)|0;n=c[f>>2]|0;while(1){e=c[n>>2]|0;if((e|0)==(o|0))break;else n=e}k=d+8|0;if((n|0)!=(k|0)){e=c[n+4>>2]|0;if(!i){if(e>>>0>=l>>>0)e=(e>>>0)%(l>>>0)|0}else e=e&m;if((e|0)==(j|0))g=o;else h=14}else h=14;do if((h|0)==14){e=c[o>>2]|0;if(e|0){e=c[e+4>>2]|0;if(!i){if(e>>>0>=l>>>0)e=(e>>>0)%(l>>>0)|0}else e=e&m;if((e|0)==(j|0)){g=o;break}}c[f>>2]=0;g=o}while(0);f=c[g>>2]|0;e=f;if(f){f=c[f+4>>2]|0;if(!i){if(f>>>0>=l>>>0)f=(f>>>0)%(l>>>0)|0}else f=f&m;if((f|0)!=(j|0)){c[(c[d>>2]|0)+(f<<2)>>2]=n;e=c[o>>2]|0}}c[n>>2]=e;c[g>>2]=0;d=d+12|0;c[d>>2]=(c[d>>2]|0)+-1;c[b>>2]=o;c[b+4>>2]=k;a[b+8>>0]=1;return}function tt(a){a=a|0;return 4}function ut(a){a=a|0;return xt()|0}function vt(){return 41348}function wt(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+16|0;g=f;b=hs(b)|0;d=hs(d)|0;e=hs(e)|0;e=Jb[a&63](b,d,e)|0;c[g>>2]=e;e=Qr(g)|0;zb=f;return e|0}function xt(){return 2048}function yt(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;m=zb;zb=zb+48|0;l=m+24|0;k=m+16|0;i=m+8|0;f=m;d=m+32|0;e=m+28|0;c[d>>2]=a;c[e>>2]=b;do if((Tr(55484,d)|0)!=0?(j=Ur(55484,d)|0,(zt(55504,e)|0)!=0):0){h=j+8|0;_O(h|0,Rs(55504,e)|0,184)|0;a=c[h>>2]|0;b=j+208|0;d=c[j+12>>2]|0;e=j+212|0;if(!((a|0)==(c[b>>2]|0)?(d|0)==(c[e>>2]|0):0)){c[f>>2]=a;c[f+4>>2]=d;Ue(0,2,41698,f);be(h,c[b>>2]|0,c[e>>2]|0,h)|0}pt(j);a=me(h,15)|0;d=j+192|0;c[d>>2]=a;if(!a){Ue(0,3,41745,i);a=-1;break}a=sc(a)|0;b=j+216|0;c[b>>2]=a;if(!a){Ue(0,3,41783,k);a=-1;break}Lc(a,c[j+472>>2]|0)|0;k=pc(h)|0;c[j+228>>2]=k;if(!k){Ue(0,3,41820,l);a=-1;break}else{fd(c[b>>2]|0,c[j+220>>2]|0)|0;le(c[d>>2]|0,+g[j+312>>3],+g[j+320>>3],j+344|0);a=kt(c[d>>2]|0)|0;c[j+232>>2]=a;a=0;break}}else a=-1;while(0);zb=m;return a|0}function zt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(!h)if(e>>>0>>0)d=e;else d=(e>>>0)%(f>>>0)|0;else d=g&e;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(e|0)){if((c[b+8>>2]|0)==(e|0))break a}else{if(!h){if(a>>>0>=f>>>0)a=(a>>>0)%(f>>>0)|0}else a=a&g;if((a|0)!=(d|0)){b=0;break a}}}else b=0}else b=0;while(0);return b|0}function At(a,b){a=a|0;b=b|0;b=Bt(b,c[a>>2]|0,c[a+4>>2]|0)|0;c[b>>2]=1;c[b+12>>2]=a;a=Ee(a+8|0)|0;c[b+16>>2]=a;Ge(a,0.0)|0;return b|0}function Bt(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,g=0;g=zb;zb=zb+16|0;e=FO(13732)|0;if(!e){Ue(0,3,41858,g);Ea(1)}c[e+20>>2]=a;c[e+4>>2]=b;c[e+8>>2]=d;c[e+24>>2]=25;c[e+28>>2]=11;c[e+32>>2]=11;c[e+36>>2]=10;f[e+40>>2]=.6000000238418579;f[e+44>>2]=2.0;c[e+13280>>2]=1;d=FO(B(d,b)|0)|0;c[e+13300>>2]=d;if(!d){Ue(0,3,41858,g+8|0);Ea(1)}else{c[e+13304>>2]=0;zb=g;return e|0}return 0}function Ct(a,b,d,e,h){a=a|0;b=b|0;d=d|0;e=e|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.0;D=zb;zb=zb+48|0;x=D;y=D+40|0;z=D+32|0;a:do if((a|0)!=0&(b|0)!=0&(d|0)!=0&(e|0)!=0&(h|0)!=0){C=b+152|0;if((c[C>>2]|0)<1)i=-2;else{f[h>>2]=0.0;j=b+4|0;B=b+8|0;k=b+56|0;l=b+104|0;i=0;while(1){if((i|0)>=(c[j>>2]|0))break;wd(B,(c[b>>2]|0)+(i*112|0)+12|0,a+48+(i*48|0)|0)|0;if((c[C>>2]|0)>1?(wd(k,(c[b>>2]|0)+(i*112|0)+12|0,a+528+(i*48|0)|0)|0,(c[C>>2]|0)>2):0)wd(l,(c[b>>2]|0)+(i*112|0)+12|0,a+1008+(i*48|0)|0)|0;i=i+1|0}if((c[a>>2]|0)==1){q=a+12|0;r=a+2672|0;n=a+7496|0;Dt(c[q>>2]|0,a+48|0,b,r,n);o=a+4|0;p=a+8|0}else{o=a+4|0;p=a+8|0;r=a+2672|0;n=a+7496|0;Et(c[o>>2]|0,c[p>>2]|0,a+48|0,b,r,n);q=a+12|0}s=a+36|0;t=a+13280|0;u=b+156|0;v=a+1488|0;w=a+40|0;A=0;i=r;j=0;while(1){if((j|0)>=(c[s>>2]|0))break;m=0;l=A;k=i;while(1){if((m|0)>=(c[t>>2]|0))break;if((j|0)==(c[s>>2]|0))break;i=pf(k,u,l,v,c[o>>2]|0,c[p>>2]|0)|0;if((i|0)<0){if((k|0)!=(r|0))break;i=pf(n,u,l,v,c[o>>2]|0,c[p>>2]|0)|0;if((i|0)<0){k=n;break}else k=n}E=k+(i*24|0)|0;c[x+(m<<2)>>2]=E;c[a+1488+(l<<3)>>2]=c[k+(i*24|0)+16>>2];c[a+1488+(l<<3)+4>>2]=c[k+(i*24|0)+20>>2];c[a+13284+(m*52|0)>>2]=a;c[a+13284+(m*52|0)+4>>2]=b;c[a+13284+(m*52|0)+8>>2]=E;c[a+13284+(m*52|0)+12>>2]=d;i=l+1|0;m=m+1|0;l=(i|0)==5?A:i;j=j+1|0}if(!m)break;l=0;i=A;while(1){if((l|0)==(m|0))break;E=a+13284+(l*52|0)+24|0;A=Lt(c[a+13284+(l*52|0)>>2]|0,c[a+13284+(l*52|0)+4>>2]|0,c[a+13284+(l*52|0)+8>>2]|0,c[a+13284+(l*52|0)+12>>2]|0,c[a+13284+(l*52|0)+16>>2]|0,a+13284+(l*52|0)+20|0,E)|0;c[a+13284+(l*52|0)+48>>2]=A;if((A|0)==0?+f[E>>2]>+f[w>>2]:0){if((c[a>>2]|0)==1){E=c[q>>2]|0;fe(E+104|0,+f[a+13284+(l*52|0)+28>>2],+f[a+13284+(l*52|0)+32>>2],y,z,c[E+176>>2]|0)|0;f[a+1872+(i<<3)>>2]=+g[y>>3];f[a+1872+(i<<3)+4>>2]=+g[z>>3]}else{c[a+1872+(i<<3)>>2]=c[a+13284+(l*52|0)+28>>2];c[a+1872+(i<<3)+4>>2]=c[a+13284+(l*52|0)+32>>2]}c[a+2192+(i*12|0)>>2]=c[a+13284+(l*52|0)+36>>2];c[a+2192+(i*12|0)+4>>2]=c[a+13284+(l*52|0)+40>>2];c[a+2192+(i*12|0)+8>>2]=c[a+13284+(l*52|0)+44>>2];E=c[x+(l<<2)>>2]|0;c[a+1488+(i<<3)>>2]=c[E+16>>2];c[a+1488+(i<<3)+4>>2]=c[E+20>>2];c[a+12320+(i*24|0)>>2]=c[E>>2];c[a+12320+(i*24|0)+4>>2]=c[E+4>>2];c[a+12320+(i*24|0)+8>>2]=c[E+8>>2];c[a+12320+(i*24|0)+12>>2]=0;i=i+1|0}l=l+1|0}A=i;i=k}i=0;while(1){if((i|0)>=(A|0))break;E=b+156+(i*24|0)|0;z=a+12320+(i*24|0)|0;c[E>>2]=c[z>>2];c[E+4>>2]=c[z+4>>2];c[E+8>>2]=c[z+8>>2];c[E+12>>2]=c[z+12>>2];c[E+16>>2]=c[z+16>>2];c[E+20>>2]=c[z+20>>2];i=i+1|0}c[b+156+(A*24|0)+12>>2]=-1;i=(A|0)<3;if((c[a>>2]|0)==1){if(i){c[C>>2]=0;i=-3;break}j=a+16|0;k=a+1872|0;l=a+2192|0;F=+Ft(c[j>>2]|0,B,k,l,A,e,0);f[h>>2]=F;i=a+44|0;if((((F>+f[i>>2]?(Ge(c[j>>2]|0,.800000011920929)|0,F=+Ft(c[j>>2]|0,e,k,l,A,e,1),f[h>>2]=F,F>+f[i>>2]):0)?(Ge(c[j>>2]|0,.6000000238418579)|0,F=+Ft(c[j>>2]|0,e,k,l,A,e,1),f[h>>2]=F,F>+f[i>>2]):0)?(Ge(c[j>>2]|0,.4000000059604645)|0,F=+Ft(c[j>>2]|0,e,k,l,A,e,1),f[h>>2]=F,F>+f[i>>2]):0)?(Ge(c[j>>2]|0,0.0)|0,F=+Ft(c[j>>2]|0,e,k,l,A,e,1),f[h>>2]=F,F>+f[i>>2]):0){c[C>>2]=0;i=-4;break}}else{if(i){c[C>>2]=0;i=-3;break}j=a+1872|0;k=a+2192|0;F=+Gt(B,j,k,A,e,0,1.0);f[h>>2]=F;i=a+44|0;if((((F>+f[i>>2]?(F=+Gt(e,j,k,A,e,1,.800000011920929),f[h>>2]=F,F>+f[i>>2]):0)?(F=+Gt(e,j,k,A,e,1,.6000000238418579),f[h>>2]=F,F>+f[i>>2]):0)?(F=+Gt(e,j,k,A,e,1,.4000000059604645),f[h>>2]=F,F>+f[i>>2]):0)?(F=+Gt(e,j,k,A,e,1,0.0),f[h>>2]=F,F>+f[i>>2]):0){c[C>>2]=0;i=-4;break}}c[C>>2]=(c[C>>2]|0)+1;i=0;while(1){if((i|0)==3)break;j=0;while(1){if((j|0)==4)break;c[b+104+(i<<4)+(j<<2)>>2]=c[b+56+(i<<4)+(j<<2)>>2];j=j+1|0}i=i+1|0}i=0;while(1){if((i|0)==3)break;j=0;while(1){if((j|0)==4)break;c[b+56+(i<<4)+(j<<2)>>2]=c[b+8+(i<<4)+(j<<2)>>2];j=j+1|0}i=i+1|0}i=0;while(1){if((i|0)==3){i=0;break a}j=0;while(1){if((j|0)==4)break;c[b+8+(i<<4)+(j<<2)>>2]=c[e+(i<<4)+(j<<2)>>2];j=j+1|0}i=i+1|0}}}else i=-1;while(0);zb=D;return i|0}function Dt(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0.0,s=0.0,t=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.0,N=0,O=0,P=0,Q=0,R=0.0,S=0.0;Q=zb;zb=zb+80|0;P=Q+48|0;I=Q;J=Q+76|0;L=Q+72|0;N=Q+64|0;O=Q+56|0;q=d+4|0;r=+(c[a>>2]|0);s=+(c[a+4>>2]|0);t=I+4|0;v=I+12|0;w=I+16|0;x=I+20|0;y=I+28|0;z=I+32|0;A=I+36|0;B=I+44|0;C=I+8|0;D=I+24|0;E=I+40|0;F=N+4|0;G=O+4|0;H=g+4812|0;k=0;l=0;p=0;a:while(1){if((p|0)>=(c[q>>2]|0)){i=29;break}i=0;while(1){if((i|0)==3)break;h=0;while(1){if((h|0)==4)break;c[I+(i<<4)+(h<<2)>>2]=c[b+(p*48|0)+(i<<4)+(h<<2)>>2];h=h+1|0}i=i+1|0}h=k;i=l;o=0;k=c[(c[d>>2]|0)+(p*112|0)+4>>2]|0;while(1){if((o|0)>=(c[k+4>>2]|0))break;n=0;l=k;while(1){k=c[l>>2]|0;if((n|0)>=(c[k+(o*20|0)+4>>2]|0))break;l=c[k+(o*20|0)>>2]|0;l=(Df(a,I,+f[l+(n*20|0)+8>>2],+f[l+(n*20|0)+12>>2],J,L)|0)<0;j=+f[J>>2];do if((!(l|j<0.0)?(m=+f[L>>2],!(m>=s)&(!(j>=r)&!(m<0.0))):0)?(l=c[(c[c[(c[d>>2]|0)+(p*112|0)+4>>2]>>2]|0)+(o*20|0)>>2]|0,K=+f[l+(n*20|0)+8>>2],M=+f[l+(n*20|0)+12>>2],R=+f[v>>2]+(+f[I>>2]*K+ +f[t>>2]*M),j=+f[y>>2]+(K*+f[w>>2]+M*+f[x>>2]),S=+f[B>>2]+(K*+f[z>>2]+M*+f[A>>2]),m=+u(+(R*R+j*j+S*S)),!(+f[E>>2]*(S/m)+(+f[C>>2]*(R/m)+ +f[D>>2]*(j/m))>-.10000000149011612)):0){f[N>>2]=K;f[F>>2]=M;nf(a,I,N,O)|0;j=+f[G>>2];k=c[c[(c[d>>2]|0)+(p*112|0)+4>>2]>>2]|0;m=+f[k+(o*20|0)+12>>2];if(j<=m?j>=+f[k+(o*20|0)+16>>2]:0){if((i|0)==200){i=19;break a}c[e+(i*24|0)>>2]=p;c[e+(i*24|0)+4>>2]=o;c[e+(i*24|0)+8>>2]=n;c[e+(i*24|0)+16>>2]=c[J>>2];c[e+(i*24|0)+20>>2]=c[L>>2];c[e+(i*24|0)+12>>2]=0;i=i+1|0;break}if(j<=m*2.0?j>=+f[k+(o*20|0)+16>>2]*.5:0)if((h|0)==200){c[H>>2]=-1;h=200;break}else{c[g+(h*24|0)>>2]=p;c[g+(h*24|0)+4>>2]=o;c[g+(h*24|0)+8>>2]=n;c[g+(h*24|0)+16>>2]=c[J>>2];c[g+(h*24|0)+20>>2]=c[L>>2];c[g+(h*24|0)+12>>2]=0;h=h+1|0;break}}while(0);n=n+1|0;l=c[(c[d>>2]|0)+(p*112|0)+4>>2]|0}o=o+1|0;k=l}k=h;l=i;p=p+1|0}if((i|0)==19){Ue(0,3,41890,P);h=e+4812|0}else if((i|0)==29){c[e+(l*24|0)+12>>2]=-1;h=g+(k*24|0)+12|0}c[h>>2]=-1;zb=Q;return} function Et(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0.0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0.0,q=0,r=0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;B=zb;zb=zb+80|0;A=B+48|0;w=B;x=B+76|0;y=B+72|0;z=B+64|0;u=B+56|0;v=e+4|0;t=+(a|0);p=+(b|0);q=z+4|0;r=u+4|0;s=h+4812|0;j=0;k=0;o=0;a:while(1){if((o|0)>=(c[v>>2]|0)){b=28;break}b=0;while(1){if((b|0)==3)break;a=0;while(1){if((a|0)==4)break;c[w+(b<<4)+(a<<2)>>2]=c[d+(o*48|0)+(b<<4)+(a<<2)>>2];a=a+1|0}b=b+1|0}a=j;b=k;n=0;j=c[(c[e>>2]|0)+(o*112|0)+4>>2]|0;while(1){if((n|0)>=(c[j+4>>2]|0))break;m=0;k=j;while(1){j=c[k>>2]|0;if((m|0)>=(c[j+(n*20|0)+4>>2]|0))break;k=c[j+(n*20|0)>>2]|0;k=(Df(0,w,+f[k+(m*20|0)+8>>2],+f[k+(m*20|0)+12>>2],x,y)|0)<0;i=+f[x>>2];do if(!(k|i<0.0)?(l=+f[y>>2],!(l>=p)&(!(i>=t)&!(l<0.0))):0){j=c[(c[c[(c[e>>2]|0)+(o*112|0)+4>>2]>>2]|0)+(n*20|0)>>2]|0;c[z>>2]=c[j+(m*20|0)+8>>2];c[q>>2]=c[j+(m*20|0)+12>>2];nf(0,w,z,u)|0;i=+f[r>>2];j=c[c[(c[e>>2]|0)+(o*112|0)+4>>2]>>2]|0;l=+f[j+(n*20|0)+12>>2];if(i<=l?i>=+f[j+(n*20|0)+16>>2]:0){if((b|0)==200){b=18;break a}c[g+(b*24|0)>>2]=o;c[g+(b*24|0)+4>>2]=n;c[g+(b*24|0)+8>>2]=m;c[g+(b*24|0)+16>>2]=c[x>>2];c[g+(b*24|0)+20>>2]=c[y>>2];c[g+(b*24|0)+12>>2]=0;b=b+1|0;break}if(i<=l*2.0?i>=+f[j+(n*20|0)+16>>2]*.5:0)if((a|0)==200){c[s>>2]=-1;a=200;break}else{c[h+(a*24|0)>>2]=o;c[h+(a*24|0)+4>>2]=n;c[h+(a*24|0)+8>>2]=m;c[h+(a*24|0)+16>>2]=c[x>>2];c[h+(a*24|0)+20>>2]=c[y>>2];c[h+(a*24|0)+12>>2]=0;a=a+1|0;break}}while(0);m=m+1|0;k=c[(c[e>>2]|0)+(o*112|0)+4>>2]|0}n=n+1|0;j=k}j=a;k=b;o=o+1|0}if((b|0)==18){Ue(0,3,41890,A);a=g+4812|0}else if((b|0)==28){c[g+(k*24|0)+12>>2]=-1;a=h+(j*24|0)+12|0}c[a>>2]=-1;zb=B;return}function Ft(a,b,d,e,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0.0,s=0,t=0,u=0,v=0,w=0,x=0.0,y=0.0;w=zb;zb=zb+224|0;s=w+212|0;t=w+96|0;v=w;u=w+192|0;l=FO(h<<4)|0;c[s>>2]=l;if(!l){Ue(0,3,41858,w+200|0);Ea(1)}p=FO(h*24|0)|0;q=s+4|0;c[q>>2]=p;if(!p){Ue(0,3,41858,w+208|0);Ea(1)}k=0;o=0.0;n=0.0;m=0.0;while(1){if((k|0)>=(h|0))break;r=m+ +f[e+(k*12|0)>>2];x=n+ +f[e+(k*12|0)+4>>2];y=o+ +f[e+(k*12|0)+8>>2];k=k+1|0;o=y;n=x;m=r}y=+(h|0);r=m/y;n=n/y;m=o/y;k=0;while(1){if((k|0)>=(h|0))break;g[l+(k<<4)>>3]=+f[d+(k<<3)>>2];g[l+(k<<4)+8>>3]=+f[d+(k<<3)+4>>2];g[p+(k*24|0)>>3]=+f[e+(k*12|0)>>2]-r;g[p+(k*24|0)+8>>3]=+f[e+(k*12|0)+4>>2]-n;g[p+(k*24|0)+16>>3]=+f[e+(k*12|0)+8>>2]-m;k=k+1|0}c[s+8>>2]=h;k=0;while(1){if((k|0)==3)break;l=0;while(1){if((l|0)==3)break;g[t+(k<<5)+(l<<3)>>3]=+f[b+(k<<4)+(l<<2)>>2];l=l+1|0}k=k+1|0}g[t+24>>3]=+f[b+12>>2]+(r*+f[b>>2]+n*+f[b+4>>2]+m*+f[b+8>>2]);g[t+56>>3]=+f[b+28>>2]+(r*+f[b+16>>2]+n*+f[b+20>>2]+m*+f[b+24>>2]);g[t+88>>3]=+f[b+44>>2]+(r*+f[b+32>>2]+n*+f[b+36>>2]+m*+f[b+40>>2]);if(!j){if((He(a,s,t,v,u)|0)<0)g[u>>3]=1.0e8}else if((Je(a,s,t,v,u)|0)<0)g[u>>3]=1.0e8;GO(c[s>>2]|0);GO(c[q>>2]|0);k=0;while(1){if((k|0)==3)break;l=0;while(1){if((l|0)==3)break;f[i+(k<<4)+(l<<2)>>2]=+g[v+(k<<5)+(l<<3)>>3];l=l+1|0}k=k+1|0}x=n;y=m;f[i+12>>2]=+g[v+24>>3]-+g[v>>3]*r-+g[v+8>>3]*x-+g[v+16>>3]*y;f[i+28>>2]=+g[v+56>>3]-+g[v+32>>3]*r-+g[v+40>>3]*x-+g[v+48>>3]*y;f[i+44>>2]=+g[v+88>>3]-+g[v+64>>3]*r-+g[v+72>>3]*x-+g[v+80>>3]*y;zb=w;return +(+g[u>>3])}function Gt(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;if(!f)g=+Ht(a,b,c,d,e);else g=+It(a,b,c,d,e,g);return +g}function Ht(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0.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,r=0,s=0,t=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,G=0,H=0,I=0.0,J=0.0,K=0,L=0.0,M=0.0,N=0.0;H=zb;zb=zb+48|0;i=H+40|0;h=H+32|0;F=H;do if((d|0)>=4?(j=a+44|0,!(+f[j>>2]==0.0)):0){G=FO(d<<6)|0;if(!G){Ue(0,3,41875,h);g=-1.0;break}E=FO(d<<3)|0;if(!E){Ue(0,3,41875,i);GO(G);g=-1.0;break}h=0;while(1){if((h|0)==3)break;i=0;while(1){if((i|0)==4)break;f[e+(h<<4)+(i<<2)>>2]=+f[a+(h<<4)+(i<<2)>>2]/+f[j>>2];i=i+1|0}h=h+1|0}a=e+4|0;j=e+12|0;q=e+16|0;r=e+20|0;s=e+28|0;t=e+32|0;u=e+36|0;v=+(d|0);w=d<<1;x=F+4|0;y=F+8|0;z=F+12|0;A=F+16|0;B=F+20|0;C=F+24|0;D=F+28|0;p=0.0;i=0;a:while(1){g=0.0;h=0;while(1){if((h|0)>=(d|0))break;k=+f[c+(h*12|0)>>2];l=+f[c+(h*12|0)+4>>2];m=+f[j>>2]+(+f[e>>2]*k+ +f[a>>2]*l);n=+f[s>>2]+(k*+f[q>>2]+l*+f[r>>2]);o=k*+f[t>>2]+l*+f[u>>2]+1.0;if(o==0.0){h=17;break a}L=o*o;J=+f[b+(h<<3)>>2]-m/o;I=+f[b+(h<<3)+4>>2]-n/o;K=h<<1;f[E+(K<<2)>>2]=J;f[E+((K|1)<<2)>>2]=I;N=k/o;K=h<<4;f[G+(K<<2)>>2]=N;M=l/o;f[G+((K|1)<<2)>>2]=M;o=1.0/o;f[G+((K|2)<<2)>>2]=o;f[G+((K|3)<<2)>>2]=0.0;f[G+((K|4)<<2)>>2]=0.0;f[G+((K|5)<<2)>>2]=0.0;f[G+((K|6)<<2)>>2]=-(k*m)/L;f[G+((K|7)<<2)>>2]=-(l*m)/L;f[G+((K|8)<<2)>>2]=0.0;f[G+((K|9)<<2)>>2]=0.0;f[G+((K|10)<<2)>>2]=0.0;f[G+((K|11)<<2)>>2]=N;f[G+((K|12)<<2)>>2]=M;f[G+((K|13)<<2)>>2]=o;f[G+((K|14)<<2)>>2]=-(k*n)/L;f[G+((K|15)<<2)>>2]=-(l*n)/L;g=g+(J*J+I*I);h=h+1|0}g=g/v;if(g<.10000000149011612){h=26;break}if((i|0)!=0&g<4.0){if((i|0)==10|g/p>.9900000095367432){h=26;break}}else if((i|0)==10){h=26;break}if((Kt(F,E,G,w)|0)<0){h=24;break}f[e>>2]=+f[F>>2]+ +f[e>>2];f[a>>2]=+f[x>>2]+ +f[a>>2];f[j>>2]=+f[y>>2]+ +f[j>>2];f[q>>2]=+f[z>>2]+ +f[q>>2];f[r>>2]=+f[A>>2]+ +f[r>>2];f[s>>2]=+f[B>>2]+ +f[s>>2];f[t>>2]=+f[C>>2]+ +f[t>>2];f[u>>2]=+f[D>>2]+ +f[u>>2];p=g;i=i+1|0}if((h|0)==17){GO(G);GO(E);g=1.0e8;break}else if((h|0)==24){GO(G);GO(E);g=1.0e8;break}else if((h|0)==26){GO(G);GO(E);break}}else g=1.0e8;while(0);zb=H;return +g}function It(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=+g;var h=0,i=0,j=0,k=0,l=0,m=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,A=0,B=0,C=0,D=0,E=0,F=0,G=0.0,H=0,I=0,J=0,K=0.0,L=0.0,M=0.0,N=0,O=0;J=zb;zb=zb+64|0;k=J+56|0;j=J+48|0;i=J+40|0;h=J+32|0;I=J;do if((d|0)>=4?(l=a+44|0,!(+f[l>>2]==0.0)):0){G=+(d|0);m=~~(G*g)+-1|0;m=(m|0)>4?m:4;H=FO(d<<6)|0;if(!H){Ue(0,3,41875,h);g=-1.0;break}F=FO(d<<3)|0;if(!F){Ue(0,3,41875,i);GO(H);g=-1.0;break}h=d<<2;E=FO(h)|0;if(!E){Ue(0,3,41875,j);GO(H);GO(F);g=-1.0;break}D=FO(h)|0;if(!D){Ue(0,3,41875,k);GO(H);GO(F);GO(E);g=-1.0;break}h=0;while(1){if((h|0)==3)break;i=0;while(1){if((i|0)==4)break;f[e+(h<<4)+(i<<2)>>2]=+f[a+(h<<4)+(i<<2)>>2]/+f[l>>2];i=i+1|0}h=h+1|0}w=e+4|0;x=e+12|0;y=e+16|0;z=e+20|0;A=e+28|0;B=e+32|0;C=e+36|0;k=D+(m<<2)|0;a=I+4|0;l=I+8|0;m=I+12|0;s=I+16|0;t=I+20|0;u=I+24|0;v=I+28|0;r=0.0;j=0;a:while(1){h=0;while(1){if((h|0)>=(d|0))break;g=+f[c+(h*12|0)>>2];n=+f[c+(h*12|0)+4>>2];o=+f[x>>2]+(+f[e>>2]*g+ +f[w>>2]*n);p=+f[A>>2]+(g*+f[y>>2]+n*+f[z>>2]);q=g*+f[B>>2]+n*+f[C>>2]+1.0;if(q==0.0){h=21;break a}K=q*q;L=+f[b+(h<<3)>>2]-o/q;M=+f[b+(h<<3)+4>>2]-p/q;i=h<<1;f[F+(i<<2)>>2]=L;f[F+((i|1)<<2)>>2]=M;M=L*L+M*M;f[D+(h<<2)>>2]=M;f[E+(h<<2)>>2]=M;M=g/q;i=h<<4;f[H+(i<<2)>>2]=M;L=n/q;f[H+((i|1)<<2)>>2]=L;q=1.0/q;f[H+((i|2)<<2)>>2]=q;f[H+((i|3)<<2)>>2]=0.0;f[H+((i|4)<<2)>>2]=0.0;f[H+((i|5)<<2)>>2]=0.0;f[H+((i|6)<<2)>>2]=-(g*o)/K;f[H+((i|7)<<2)>>2]=-(n*o)/K;f[H+((i|8)<<2)>>2]=0.0;f[H+((i|9)<<2)>>2]=0.0;f[H+((i|10)<<2)>>2]=0.0;f[H+((i|11)<<2)>>2]=M;f[H+((i|12)<<2)>>2]=L;f[H+((i|13)<<2)>>2]=q;f[H+((i|14)<<2)>>2]=-(g*p)/K;f[H+((i|15)<<2)>>2]=-(n*p)/K;h=h+1|0}oy(D,d,4,32);p=+f[k>>2]*4.0;p=p<16.0?16.0:p;o=p/6.0;n=0.0;h=0;while(1){if((h|0)==(d|0))break;g=+f[D+(h<<2)>>2];if(g>p)g=o;else{g=1.0-g/p;g=o*(1.0-g*(g*g))}n=n+g;h=h+1|0}g=n/G;if(g<.10000000149011612){h=42;break}if((j|0)!=0&g<4.0){if((j|0)==10|g/r>.9900000095367432){h=42;break}}else if((j|0)==10){h=42;break}h=0;i=0;while(1){if((i|0)==(d|0))break;n=+f[E+(i<<2)>>2];if(n<=p){M=1.0-n/p;M=M*M;O=i<<4;N=h<<3;f[H+(N<<2)>>2]=M*+f[H+(O<<2)>>2];f[H+((N|1)<<2)>>2]=M*+f[H+((O|1)<<2)>>2];f[H+((N|2)<<2)>>2]=M*+f[H+((O|2)<<2)>>2];f[H+((N|3)<<2)>>2]=M*+f[H+((O|3)<<2)>>2];f[H+((N|4)<<2)>>2]=M*+f[H+((O|4)<<2)>>2];f[H+((N|5)<<2)>>2]=M*+f[H+((O|5)<<2)>>2];f[H+((N|6)<<2)>>2]=M*+f[H+((O|6)<<2)>>2];f[H+((N|7)<<2)>>2]=M*+f[H+((O|7)<<2)>>2];f[H+(N+8<<2)>>2]=M*+f[H+((O|8)<<2)>>2];f[H+(N+9<<2)>>2]=M*+f[H+((O|9)<<2)>>2];f[H+(N+10<<2)>>2]=M*+f[H+((O|10)<<2)>>2];f[H+(N+11<<2)>>2]=M*+f[H+((O|11)<<2)>>2];f[H+(N+12<<2)>>2]=M*+f[H+((O|12)<<2)>>2];f[H+(N+13<<2)>>2]=M*+f[H+((O|13)<<2)>>2];f[H+(N+14<<2)>>2]=M*+f[H+((O|14)<<2)>>2];f[H+(N+15<<2)>>2]=M*+f[H+((O|15)<<2)>>2];N=i<<1;f[F+(h<<2)>>2]=M*+f[F+(N<<2)>>2];f[F+(h+1<<2)>>2]=M*+f[F+((N|1)<<2)>>2];h=h+2|0}i=i+1|0}if((h|0)<6){h=38;break}if((Kt(I,F,H,h)|0)<0){h=40;break}f[e>>2]=+f[I>>2]+ +f[e>>2];f[w>>2]=+f[a>>2]+ +f[w>>2];f[x>>2]=+f[l>>2]+ +f[x>>2];f[y>>2]=+f[m>>2]+ +f[y>>2];f[z>>2]=+f[s>>2]+ +f[z>>2];f[A>>2]=+f[t>>2]+ +f[A>>2];f[B>>2]=+f[u>>2]+ +f[B>>2];f[C>>2]=+f[v>>2]+ +f[C>>2];r=g;j=j+1|0}if((h|0)==21){GO(H);GO(F);GO(E);GO(D);g=1.0e8;break}else if((h|0)==38){GO(H);GO(F);GO(E);GO(D);g=-1.0;break}else if((h|0)==40){GO(H);GO(F);GO(E);GO(D);g=1.0e8;break}else if((h|0)==42){GO(H);GO(F);GO(E);GO(D);break}}else g=1.0e8;while(0);zb=J;return +g}function Jt(a,b){a=a|0;b=b|0;var c=0.0;c=+f[a>>2]-+f[b>>2];return (c<0.0?-1:c>0.0&1)|0}function Kt(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;i=zb;zb=zb+48|0;h=i+24|0;g=i+12|0;f=i;c[h+4>>2]=8;c[h+8>>2]=1;c[h>>2]=a;c[g+4>>2]=e;c[g+8>>2]=1;c[g>>2]=b;c[f+4>>2]=e;c[f+8>>2]=8;c[f>>2]=d;e=Jd(f)|0;if(!e)a=-1;else{d=Hd(e,f)|0;if(!d)a=-1;else{b=Hd(e,g)|0;if(!b)a=-1;else{if((Zd(d)|0)<0)a=-1;else{Od(h,d,b)|0;a=0}Md(b)|0}Md(d)|0}Md(e)|0}zb=i;return a|0}function Lt(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0.0;s=zb;zb=zb+32|0;j=s;q=s+28|0;r=s+24|0;o=c[d>>2]|0;p=c[d+4>>2]|0;n=c[d+8>>2]|0;d=c[h>>2]|0;if(!d){d=Af(c[a+28>>2]|0,c[a+32>>2]|0)|0;c[h>>2]=d}k=a+12|0;m=a+48+(o*48|0)|0;l=c[b>>2]|0;if((Bf(c[k>>2]|0,m,c[l+(o*112|0)>>2]|0,(c[c[l+(o*112|0)+4>>2]>>2]|0)+(p*20|0)|0,n,d)|0)>=0?(l=c[h>>2]|0,d=c[l+28>>2]|0,t=+(B(d,d)|0),!(+(B((c[l+16>>2]|0)+1+(c[l+20>>2]|0)|0,(c[l+8>>2]|0)+1+(c[l+12>>2]|0)|0)|0)*5.0*5.0>t)):0){l=c[b+152>>2]|0;do if((l|0)!=1){d=c[k>>2]|0;k=a+528+(o*48|0)|0;if((l|0)==2){Cf(d,m,k,0,(c[(c[c[(c[b>>2]|0)+(o*112|0)+4>>2]>>2]|0)+(p*20|0)>>2]|0)+(n*20|0)|0,j);break}else{Cf(d,m,k,a+1008+(o*48|0)|0,(c[(c[c[(c[b>>2]|0)+(o*112|0)+4>>2]>>2]|0)+(p*20|0)>>2]|0)+(n*20|0)|0,j);break}}else Cf(c[k>>2]|0,m,0,0,(c[(c[c[(c[b>>2]|0)+(o*112|0)+4>>2]>>2]|0)+(p*20|0)>>2]|0)+(n*20|0)|0,j);while(0);m=c[a+24>>2]|0;if((wf(e,g,c[a+4>>2]|0,c[a+8>>2]|0,c[a+20>>2]|0,c[h>>2]|0,m,m,j,q,r,i)|0)>=0){f[i+4>>2]=+(c[q>>2]|0);f[i+8>>2]=+(c[r>>2]|0);r=c[b>>2]|0;j=c[(c[c[r+(o*112|0)+4>>2]>>2]|0)+(p*20|0)>>2]|0;q=j+(n*20|0)+8|0;j=j+(n*20|0)+12|0;f[i+12>>2]=+f[r+(o*112|0)+24>>2]+(+f[r+(o*112|0)+12>>2]*+f[q>>2]+ +f[r+(o*112|0)+16>>2]*+f[j>>2]);f[i+16>>2]=+f[r+(o*112|0)+40>>2]+(+f[r+(o*112|0)+28>>2]*+f[q>>2]+ +f[r+(o*112|0)+32>>2]*+f[j>>2]);f[i+20>>2]=+f[r+(o*112|0)+56>>2]+(+f[r+(o*112|0)+44>>2]*+f[q>>2]+ +f[r+(o*112|0)+48>>2]*+f[j>>2]);j=0}else j=-1}else j=-1;zb=s;return j|0}function Mt(a){a=a|0;a=Jb[c[c[a+4>>2]>>2]&63](a,0,132)|0;c[a+128>>2]=0;return a|0}function Nt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=a+24|0;d=c[e>>2]|0;if(!d){f=a+4|0;d=Jb[c[c[f>>2]>>2]&63](a,0,40)|0;c[e>>2]=d;a=Jb[c[c[f>>2]>>2]&63](a,0,4096)|0;c[d+32>>2]=a;d=c[e>>2]|0}c[d+8>>2]=115;c[d+12>>2]=83;c[d+16>>2]=47;c[d+20>>2]=33;c[d+24>>2]=116;c[d+28>>2]=b;c[d+4>>2]=0;c[d>>2]=0;return}function Ot(a){a=a|0;c[(c[a+24>>2]|0)+36>>2]=1;return}function Pt(b){b=b|0;var d=0,e=0,f=0,g=0;e=c[b+24>>2]|0;f=e+32|0;d=gA(c[f>>2]|0,1,4096,c[e+28>>2]|0)|0;g=e+36|0;if(d|0){b=d;f=c[f>>2]|0;c[e>>2]=f;f=e+4|0;c[f>>2]=b;c[g>>2]=0;return 1}if(!(c[g>>2]|0))d=b;else{d=c[b>>2]|0;c[d+20>>2]=43;Sb[c[d>>2]&255](b);d=b}b=c[b>>2]|0;c[b+20>>2]=123;Ub[c[b+4>>2]&63](d,-1);a[c[f>>2]>>0]=-1;a[(c[f>>2]|0)+1>>0]=-39;b=2;f=c[f>>2]|0;c[e>>2]=f;f=e+4|0;c[f>>2]=b;c[g>>2]=0;return 1}function Qt(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+24>>2]|0;if((b|0)<=0)return;g=f+4|0;d=c[g>>2]|0;if((d|0)<(b|0)){e=f+12|0;do{b=b-d|0;Gb[c[e>>2]&127](a)|0;d=c[g>>2]|0}while((b|0)>(d|0))}c[f>>2]=(c[f>>2]|0)+b;c[g>>2]=d-b;return}function Rt(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;k=a+440|0;g=c[k>>2]|0;h=c[a>>2]|0;c[h+20>>2]=124;c[h+24>>2]=g;c[(c[a>>2]|0)+28>>2]=b;Ub[c[(c[a>>2]|0)+4>>2]&63](a,-1);h=b+1&7|208;i=b+2&7|208;j=b+7&7|208;d=b+6&7|208;b=g;a:while(1){e=(b|0)<192;f=(b&-8|0)!=208|(b|0)==(h|0)|(b|0)==(i|0);g=(b|0)==(j|0)|(b|0)==(d|0)?2:1;b:while(1){l=e?2:f?3:g;m=c[a>>2]|0;c[m+20>>2]=99;c[m+24>>2]=b;c[(c[a>>2]|0)+28>>2]=l;Ub[c[(c[a>>2]|0)+4>>2]&63](a,4);switch(l&3){case 1:{d=4;break a}case 3:{b=1;d=7;break a}case 2:break b;default:{}}}if(!(Tt(a)|0)){b=0;d=7;break}b=c[k>>2]|0}if((d|0)==4){c[k>>2]=0;m=1;return m|0}else if((d|0)==7)return b|0;return 0}function St(a){a=a|0;return}function Tt(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;j=c[b+24>>2]|0;k=j+4|0;i=j+12|0;l=b+464|0;d=c[k>>2]|0;e=c[j>>2]|0;a:while(1){if(!d){if(!(Gb[c[i>>2]&127](b)|0)){d=0;f=21;break}d=c[k>>2]|0;e=c[j>>2]|0}d=d+-1|0;f=e+1|0;if((a[e>>0]|0)==-1)e=f;else{e=f;do{h=(c[l>>2]|0)+24|0;c[h>>2]=(c[h>>2]|0)+1;c[j>>2]=e;c[k>>2]=d;if(!d){if(!(Gb[c[i>>2]&127](b)|0)){d=0;f=21;break a}d=c[k>>2]|0;f=c[j>>2]|0}else f=e;d=d+-1|0;e=f+1|0}while((a[f>>0]|0)!=-1)}do{if(!d){if(!(Gb[c[i>>2]&127](b)|0)){d=0;f=21;break a}d=c[k>>2]|0;f=c[j>>2]|0}else f=e;d=d+-1|0;e=f+1|0;g=a[f>>0]|0}while(g<<24>>24==-1);f=(c[l>>2]|0)+24|0;h=c[f>>2]|0;if(g<<24>>24){f=18;break}c[f>>2]=h+2;c[j>>2]=e;c[k>>2]=d}if((f|0)==18){f=g&255;if(h|0){i=c[b>>2]|0;c[i+20>>2]=119;c[i+24>>2]=h;c[(c[b>>2]|0)+28>>2]=f;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1);c[(c[l>>2]|0)+24>>2]=0}c[b+440>>2]=f;c[j>>2]=e;c[k>>2]=d;l=1;return l|0}else if((f|0)==21)return d|0;return 0}function Ut(a){a=a|0;var b=0,d=0;d=Jb[c[c[a+4>>2]>>2]&63](a,0,172)|0;b=a+464|0;c[b>>2]=d;c[d>>2]=117;c[d+4>>2]=84;c[d+8>>2]=85;c[d+28>>2]=86;c[d+96>>2]=0;c[d+100>>2]=0;c[d+36>>2]=86;c[d+104>>2]=0;c[d+40>>2]=86;c[d+108>>2]=0;c[d+44>>2]=86;c[d+112>>2]=0;c[d+48>>2]=86;c[d+116>>2]=0;c[d+52>>2]=86;c[d+120>>2]=0;c[d+56>>2]=86;c[d+124>>2]=0;c[d+60>>2]=86;c[d+128>>2]=0;c[d+64>>2]=86;c[d+132>>2]=0;c[d+68>>2]=86;c[d+136>>2]=0;c[d+72>>2]=86;c[d+140>>2]=0;c[d+76>>2]=86;c[d+144>>2]=0;c[d+80>>2]=86;c[d+148>>2]=0;c[d+84>>2]=86;c[d+152>>2]=0;c[d+156>>2]=0;c[d+92>>2]=86;c[d+160>>2]=0;c[d+32>>2]=87;c[d+88>>2]=87;b=c[b>>2]|0;c[a+216>>2]=0;c[a+144>>2]=0;c[a+440>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+24>>2]=0;c[b+164>>2]=0;return}function Vt(a){a=a|0;var b=0;b=c[a+464>>2]|0;c[a+216>>2]=0;c[a+144>>2]=0;c[a+440>>2]=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+24>>2]=0;c[b+164>>2]=0;return}function Wt(f){f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0;Pa=zb;zb=zb+256|0;ga=Pa;Na=f+440|0;Oa=f+464|0;oa=f+24|0;ua=f+232|0;va=f+248|0;wa=f+264|0;pa=f+280|0;qa=f+40|0;ra=f+304|0;sa=f+308|0;ta=f+284|0;ha=f+288|0;ia=f+289|0;ja=f+290|0;ka=f+292|0;la=f+294|0;ma=f+296|0;na=f+300|0;Ja=f+36|0;Ka=f+216|0;g=c[Na>>2]|0;a:while(1){do if(!g){if(c[(c[Oa>>2]|0)+12>>2]|0){if(!(Tt(f)|0)){xa=0;Aa=350;break a}g=c[Na>>2]|0;break}m=c[oa>>2]|0;n=m+4|0;g=c[n>>2]|0;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0}k=c[m>>2]|0;g=g+-1|0;h=k+1|0;k=a[k>>0]|0;l=k&255;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}j=c[n>>2]|0;h=c[m>>2]|0}else j=g;V=a[h>>0]|0;g=V&255;if(k<<24>>24!=-1|V<<24>>24!=-40){V=c[f>>2]|0;c[V+20>>2]=55;c[V+24>>2]=l;c[(c[f>>2]|0)+28>>2]=g;Sb[c[c[f>>2]>>2]&255](f)}c[Na>>2]=g;c[m>>2]=h+1;c[n>>2]=j+-1}while(0);do switch(g|0){case 218:{Aa=25;break a}case 217:{Aa=75;break a}case 216:{g=c[f>>2]|0;c[g+20>>2]=104;Ub[c[g+4>>2]&63](f,1);g=(c[Oa>>2]|0)+12|0;if(c[g>>2]|0){g=c[f>>2]|0;c[g+20>>2]=64;Sb[c[g>>2]&255](f);g=(c[Oa>>2]|0)+12|0}h=ua;j=h+16|0;do{a[h>>0]=0;h=h+1|0}while((h|0)<(j|0));h=va;j=h+16|0;do{a[h>>0]=1;h=h+1|0}while((h|0)<(j|0));h=wa;j=h+16|0;do{a[h>>0]=5;h=h+1|0}while((h|0)<(j|0));c[pa>>2]=0;c[qa>>2]=0;c[ra>>2]=0;c[sa>>2]=0;c[ta>>2]=0;a[ha>>0]=1;a[ia>>0]=1;a[ja>>0]=0;b[ka>>1]=1;b[la>>1]=1;c[ma>>2]=0;a[na>>0]=0;c[g>>2]=1;break}case 192:{if(!($t(f,1,0,0)|0)){xa=0;Aa=350;break a}break}case 193:{if(!($t(f,0,0,0)|0)){xa=0;Aa=350;break a}break}case 194:{if(!($t(f,0,1,0)|0)){xa=0;Aa=350;break a}break}case 201:{if(!($t(f,0,0,1)|0)){xa=0;Aa=350;break a}break}case 202:{if(!($t(f,0,1,1)|0)){xa=0;Aa=350;break a}break}case 207:case 206:case 205:case 203:case 200:case 199:case 198:case 197:case 195:{V=c[f>>2]|0;c[V+20>>2]=63;c[V+24>>2]=g;Sb[c[c[f>>2]>>2]&255](f);break}case 204:{p=c[oa>>2]|0;q=p+4|0;g=c[q>>2]|0;if(!g){if(!(Gb[c[p+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[q>>2]|0}j=c[p>>2]|0;g=g+-1|0;h=j+1|0;j=d[j>>0]<<8;if(!g){if(!(Gb[c[p+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[q>>2]|0;h=c[p>>2]|0}V=j|d[h>>0];j=V+-2|0;k=g+-1|0;g=h+1|0;if(V>>>0>2){o=p+12|0;n=j;h=k;while(1){if(!h){if(!(Gb[c[o>>2]&127](f)|0)){xa=0;Aa=350;break a}h=c[q>>2]|0;g=c[p>>2]|0}h=h+-1|0;j=g+1|0;l=a[g>>0]|0;m=l&255;if(!h){if(!(Gb[c[o>>2]&127](f)|0)){xa=0;Aa=350;break a}h=c[q>>2]|0;k=c[p>>2]|0}else k=j;g=a[k>>0]|0;j=g&255;V=c[f>>2]|0;c[V+20>>2]=81;c[V+24>>2]=m;c[(c[f>>2]|0)+28>>2]=j;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);if((l&255)<=31)if((l&255)<=15){U=j&15;a[f+232+m>>0]=U;V=(g&255)>>>4;a[f+248+m>>0]=V;if(U>>>0>(V&255)>>>0){V=c[f>>2]|0;c[V+20>>2]=30;c[V+24>>2]=j;Sb[c[c[f>>2]>>2]&255](f)}}else Aa=93;else{Aa=c[f>>2]|0;c[Aa+20>>2]=29;c[Aa+24>>2]=m;Sb[c[c[f>>2]>>2]&255](f);Aa=93}if((Aa|0)==93){Aa=0;a[m+-16+(f+264)>>0]=g}j=n+-2|0;h=h+-1|0;g=k+1|0;if((n|0)>2)n=j;else break}}else h=k;if(j|0){V=c[f>>2]|0;c[V+20>>2]=12;Sb[c[V>>2]&255](f)}c[p>>2]=g;c[q>>2]=h;break}case 196:{U=c[oa>>2]|0;V=U+4|0;g=c[V>>2]|0;if(!g){if(!(Gb[c[U+12>>2]&127](f)|0)){Aa=174;break a}g=c[V>>2]|0}k=c[U>>2]|0;g=g+-1|0;h=k+1|0;k=d[k>>0]<<8;if(!g){if(!(Gb[c[U+12>>2]&127](f)|0)){Aa=174;break a}g=c[V>>2]|0;j=c[U>>2]|0}else j=h;h=g+-1|0;g=j+1|0;T=k|d[j>>0];j=T+-2|0;if(T>>>0>18){T=U+12|0;do{if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}S=d[g>>0]|0;R=c[f>>2]|0;c[R+20>>2]=82;c[R+24>>2]=S;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}R=a[g>>0]|0;N=R&255;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}Q=a[g>>0]|0;L=Q&255;k=L+N|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}P=a[g>>0]|0;K=P&255;k=k+K|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}O=a[g>>0]|0;I=O&255;k=k+I|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}M=a[g>>0]|0;G=M&255;k=k+G|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}J=a[g>>0]|0;E=J&255;k=k+E|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}H=a[g>>0]|0;C=H&255;k=k+C|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}F=a[g>>0]|0;A=F&255;k=k+A|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}D=a[g>>0]|0;y=D&255;k=k+y|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}B=a[g>>0]|0;w=B&255;k=k+w|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}z=a[g>>0]|0;u=z&255;k=k+u|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}x=a[g>>0]|0;s=x&255;k=k+s|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}v=a[g>>0]|0;q=v&255;k=k+q|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}t=a[g>>0]|0;o=t&255;k=k+o|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}r=a[g>>0]|0;l=r&255;k=k+l|0;h=h+-1|0;g=g+1|0;if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}p=a[g>>0]|0;Qa=p&255;n=k+Qa|0;h=h+-1|0;g=g+1|0;m=j+-17|0;k=c[f>>2]|0;c[k+24>>2]=N;c[k+28>>2]=L;c[k+32>>2]=K;c[k+36>>2]=I;c[k+40>>2]=G;c[k+44>>2]=E;c[k+48>>2]=C;c[k+52>>2]=A;c[k+20>>2]=88;Ub[c[k+4>>2]&63](f,2);N=c[f>>2]|0;c[N+24>>2]=y;c[N+28>>2]=w;c[N+32>>2]=u;c[N+36>>2]=s;c[N+40>>2]=q;c[N+44>>2]=o;c[N+48>>2]=l;c[N+52>>2]=Qa;c[N+20>>2]=88;Ub[c[N+4>>2]&63](f,2);if(n>>>0>256|(m|0)<(n|0)){Qa=c[f>>2]|0;c[Qa+20>>2]=9;Sb[c[Qa>>2]&255](f)}aP(ga|0,0,256)|0;if(!n)j=0;else{k=0;while(1){if(!h){if(!(Gb[c[T>>2]&127](f)|0)){Aa=174;break a}h=c[V>>2]|0;g=c[U>>2]|0}h=h+-1|0;j=g+1|0;a[ga+k>>0]=a[g>>0]|0;k=k+1|0;if(k>>>0>=n>>>0){g=j;j=n;break}else g=j}}j=m-j|0;Qa=(S&16|0)==0;l=S+-16|0;k=Qa?S:l;l=Qa?f+180+(S<<2)|0:f+196+(l<<2)|0;if(k>>>0>3){Qa=c[f>>2]|0;c[Qa+20>>2]=31;c[Qa+24>>2]=k;Sb[c[c[f>>2]>>2]&255](f)}k=c[l>>2]|0;if(!k){k=au(f)|0;c[l>>2]=k}a[k>>0]=0;a[k+1>>0]=R;a[k+2>>0]=Q;a[k+3>>0]=P;a[k+4>>0]=O;a[k+5>>0]=M;a[k+6>>0]=J;a[k+7>>0]=H;a[k+8>>0]=F;a[k+9>>0]=D;a[k+10>>0]=B;a[k+11>>0]=z;a[k+12>>0]=x;a[k+13>>0]=v;a[k+14>>0]=t;a[k+15>>0]=r;a[k+16>>0]=p;_O((c[l>>2]|0)+17|0,ga|0,256)|0}while((j|0)>16)}if(j|0){Qa=c[f>>2]|0;c[Qa+20>>2]=12;Sb[c[Qa>>2]&255](f)}c[U>>2]=g;c[V>>2]=h;break}case 219:{q=c[oa>>2]|0;r=q+4|0;g=c[r>>2]|0;if(!g){if(!(Gb[c[q+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0}l=c[q>>2]|0;g=g+-1|0;h=l+1|0;l=d[l>>0]<<8;if(!g){if(!(Gb[c[q+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0;k=c[q>>2]|0}else k=h;j=g+-1|0;h=k+1|0;Qa=l|d[k>>0];g=Qa+-2|0;if(Qa>>>0>2){p=q+12|0;while(1){o=g+-1|0;if(!j){if(!(Gb[c[p>>2]&127](f)|0)){xa=0;Aa=350;break a}j=c[r>>2]|0;h=c[q>>2]|0}k=d[h>>0]|0;m=k>>>4;k=k&15;Qa=c[f>>2]|0;c[Qa+20>>2]=83;c[Qa+24>>2]=k;c[(c[f>>2]|0)+28>>2]=m;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);if(k>>>0>3){Qa=c[f>>2]|0;c[Qa+20>>2]=32;c[Qa+24>>2]=k;Sb[c[c[f>>2]>>2]&255](f)}k=f+164+(k<<2)|0;l=c[k>>2]|0;if(!l){l=Mt(f)|0;c[k>>2]=l}n=(m|0)!=0;if(n)if((g|0)<129){b[l>>1]=1;b[l+2>>1]=1;b[l+4>>1]=1;b[l+6>>1]=1;b[l+8>>1]=1;b[l+10>>1]=1;b[l+12>>1]=1;b[l+14>>1]=1;b[l+16>>1]=1;b[l+18>>1]=1;b[l+20>>1]=1;b[l+22>>1]=1;b[l+24>>1]=1;b[l+26>>1]=1;b[l+28>>1]=1;b[l+30>>1]=1;b[l+32>>1]=1;b[l+34>>1]=1;b[l+36>>1]=1;b[l+38>>1]=1;b[l+40>>1]=1;b[l+42>>1]=1;b[l+44>>1]=1;b[l+46>>1]=1;b[l+48>>1]=1;b[l+50>>1]=1;b[l+52>>1]=1;b[l+54>>1]=1;b[l+56>>1]=1;b[l+58>>1]=1;b[l+60>>1]=1;b[l+62>>1]=1;b[l+64>>1]=1;b[l+66>>1]=1;b[l+68>>1]=1;b[l+70>>1]=1;b[l+72>>1]=1;b[l+74>>1]=1;b[l+76>>1]=1;b[l+78>>1]=1;b[l+80>>1]=1;b[l+82>>1]=1;b[l+84>>1]=1;b[l+86>>1]=1;b[l+88>>1]=1;b[l+90>>1]=1;b[l+92>>1]=1;b[l+94>>1]=1;b[l+96>>1]=1;b[l+98>>1]=1;b[l+100>>1]=1;b[l+102>>1]=1;b[l+104>>1]=1;b[l+106>>1]=1;b[l+108>>1]=1;b[l+110>>1]=1;b[l+112>>1]=1;b[l+114>>1]=1;b[l+116>>1]=1;b[l+118>>1]=1;b[l+120>>1]=1;b[l+122>>1]=1;b[l+124>>1]=1;b[l+126>>1]=1;ba=o>>1;Aa=196}else Aa=203;else if((g|0)<65){b[l>>1]=1;b[l+2>>1]=1;b[l+4>>1]=1;b[l+6>>1]=1;b[l+8>>1]=1;b[l+10>>1]=1;b[l+12>>1]=1;b[l+14>>1]=1;b[l+16>>1]=1;b[l+18>>1]=1;b[l+20>>1]=1;b[l+22>>1]=1;b[l+24>>1]=1;b[l+26>>1]=1;b[l+28>>1]=1;b[l+30>>1]=1;b[l+32>>1]=1;b[l+34>>1]=1;b[l+36>>1]=1;b[l+38>>1]=1;b[l+40>>1]=1;b[l+42>>1]=1;b[l+44>>1]=1;b[l+46>>1]=1;b[l+48>>1]=1;b[l+50>>1]=1;b[l+52>>1]=1;b[l+54>>1]=1;b[l+56>>1]=1;b[l+58>>1]=1;b[l+60>>1]=1;b[l+62>>1]=1;b[l+64>>1]=1;b[l+66>>1]=1;b[l+68>>1]=1;b[l+70>>1]=1;b[l+72>>1]=1;b[l+74>>1]=1;b[l+76>>1]=1;b[l+78>>1]=1;b[l+80>>1]=1;b[l+82>>1]=1;b[l+84>>1]=1;b[l+86>>1]=1;b[l+88>>1]=1;b[l+90>>1]=1;b[l+92>>1]=1;b[l+94>>1]=1;b[l+96>>1]=1;b[l+98>>1]=1;b[l+100>>1]=1;b[l+102>>1]=1;b[l+104>>1]=1;b[l+106>>1]=1;b[l+108>>1]=1;b[l+110>>1]=1;b[l+112>>1]=1;b[l+114>>1]=1;b[l+116>>1]=1;b[l+118>>1]=1;b[l+120>>1]=1;b[l+122>>1]=1;b[l+124>>1]=1;b[l+126>>1]=1;ba=o;Aa=196}else Aa=203;b:do if((Aa|0)==196){Aa=0;switch(ba|0){case 4:{g=3280;break}case 9:{g=3168;break}case 16:{g=3040;break}case 25:{g=2864;break}case 36:{g=2656;break}case 49:{g=2384;break}default:{j=j+-1|0;g=h+1|0;if((ba|0)>0){Z=2064;_=ba;$=g;aa=j;Aa=205;break b}else{Y=ba;X=j;W=g;break b}}}Z=g;_=ba;$=h+1|0;aa=j+-1|0;Aa=205}else if((Aa|0)==203){Z=2064;_=64;$=h+1|0;aa=j+-1|0;Aa=205}while(0);c:do if((Aa|0)==205){Aa=0;if(!n){j=0;h=$;g=aa;while(1){if(!g){if(!(Gb[c[p>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0;h=c[q>>2]|0}b[l+(c[Z+(j<<2)>>2]<<1)>>1]=d[h>>0]|0;j=j+1|0;g=g+-1|0;h=h+1|0;if((j|0)>=(_|0)){Y=_;X=g;W=h;break c}}}m=0;h=$;g=aa;while(1){if(!g){if(!(Gb[c[p>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0;h=c[q>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[p>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[r>>2]|0;h=c[q>>2]|0}else h=j;b[l+(c[Z+(m<<2)>>2]<<1)>>1]=k|d[h>>0];m=m+1|0;g=g+-1|0;h=h+1|0;if((m|0)>=(_|0)){Y=_;X=g;W=h;break}}}while(0);h=c[f>>2]|0;d:do if((c[h+104>>2]|0)>1){g=0;while(1){c[h+24>>2]=e[l+(g<<1)>>1];c[h+28>>2]=e[l+((g|1)<<1)>>1];c[h+32>>2]=e[l+((g|2)<<1)>>1];c[h+36>>2]=e[l+((g|3)<<1)>>1];c[h+40>>2]=e[l+((g|4)<<1)>>1];c[h+44>>2]=e[l+((g|5)<<1)>>1];c[h+48>>2]=e[l+((g|6)<<1)>>1];c[h+52>>2]=e[l+((g|7)<<1)>>1];c[h+20>>2]=95;Ub[c[h+4>>2]&63](f,2);g=g+8|0;if(g>>>0>=64)break d;h=c[f>>2]|0}}while(0);g=o-Y+(n?0-Y|0:0)|0;if((g|0)>0){h=W;j=X}else{j=X;h=W;break}}}if(g|0){Qa=c[f>>2]|0;c[Qa+20>>2]=12;Sb[c[Qa>>2]&255](f)}c[q>>2]=h;c[r>>2]=j;break}case 221:{l=c[oa>>2]|0;m=l+4|0;g=c[m>>2]|0;if(!g){if(!(Gb[c[l+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[m>>2]|0}k=c[l>>2]|0;g=g+-1|0;h=k+1|0;k=d[k>>0]<<8;if(!g){if(!(Gb[c[l+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[m>>2]|0;j=c[l>>2]|0}else j=h;g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)!=4){Qa=c[f>>2]|0;c[Qa+20>>2]=12;Sb[c[Qa>>2]&255](f)}if(!g){if(!(Gb[c[l+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[m>>2]|0;h=c[l>>2]|0}j=g+-1|0;g=h+1|0;k=d[h>>0]<<8;if(!j){if(!(Gb[c[l+12>>2]&127](f)|0)){xa=0;Aa=350;break a}h=c[m>>2]|0;g=c[l>>2]|0}else h=j;Qa=k|d[g>>0];V=c[f>>2]|0;c[V+20>>2]=84;c[V+24>>2]=Qa;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);c[pa>>2]=Qa;c[l>>2]=g+1;c[m>>2]=h+-1;break}case 248:{m=c[oa>>2]|0;h=c[m>>2]|0;n=m+4|0;g=c[n>>2]|0;if(!(c[(c[Oa>>2]|0)+16>>2]|0)){Qa=c[f>>2]|0;c[Qa+20>>2]=60;Wz(Qa+24|0,46637,80)|0;Sb[c[c[f>>2]>>2]&255](f)}do if((c[Ja>>2]|0)>=3){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)!=24){Qa=c[f>>2]|0;c[Qa+20>>2]=12;Sb[c[Qa>>2]&255](f)}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;if((a[h>>0]|0)!=13){Qa=c[f>>2]|0;c[Qa+20>>2]=70;c[Qa+24>>2]=c[Na>>2];Sb[c[c[f>>2]>>2]&255](f)}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}else h=j;g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)==255){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;if((a[h>>0]|0)==3){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;k=c[Ka>>2]|0;if((c[k+88>>2]|0)==(d[j>>0]|0)){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0;l=c[Ka>>2]|0}else l=k;g=g+-1|0;j=h+1|0;if((c[l>>2]|0)==(d[h>>0]|0)){if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;k=c[m>>2]|0;h=c[Ka>>2]|0}else{k=j;h=l}g=g+-1|0;j=k+1|0;if((c[h+176>>2]|0)!=(d[k>>0]|0)){ca=g;da=j;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((a[j>>0]|0)!=-128){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if(k|d[j>>0]|0){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if(k|d[j>>0]|0){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;if(a[h>>0]|0){ca=g;da=j;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}else h=j;g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)!=1){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if(k|d[j>>0]|0){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;if(a[h>>0]|0){ca=g;da=j;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}else h=j;g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if((k|d[j>>0]|0)!=1){ca=g;da=h;Aa=335;break}if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;h=c[m>>2]|0}g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;if(!g){if(!(Gb[c[m+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[n>>2]|0;j=c[m>>2]|0}g=g+-1|0;h=j+1|0;if(!(k|d[j>>0])){ea=g;fa=h}else{ca=g;da=h;Aa=335}}else{ca=g;da=j;Aa=335}}else{ca=g;da=h;Aa=335}}else{ca=g;da=j;Aa=335}}else{ca=g;da=h;Aa=335}}else{ca=g;da=h;Aa=335}while(0);if((Aa|0)==335){Aa=0;ea=c[f>>2]|0;c[ea+20>>2]=28;Sb[c[ea>>2]&255](f);ea=ca;fa=da}c[ra>>2]=1;c[m>>2]=fa;c[n>>2]=ea;break}case 239:case 238:case 237:case 236:case 235:case 234:case 233:case 232:case 231:case 230:case 229:case 228:case 227:case 226:case 225:case 224:{if(!(Gb[c[(c[Oa>>2]|0)+32+(g+-224<<2)>>2]&127](f)|0)){xa=0;Aa=350;break a}break}case 254:{if(!(Gb[c[(c[Oa>>2]|0)+28>>2]&127](f)|0)){xa=0;Aa=350;break a}break}case 1:case 215:case 214:case 213:case 212:case 211:case 210:case 209:case 208:{Qa=c[f>>2]|0;c[Qa+20>>2]=94;c[Qa+24>>2]=g;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);break}case 220:{k=c[oa>>2]|0;l=k+4|0;g=c[l>>2]|0;if(!g){if(!(Gb[c[k+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[l>>2]|0}h=c[k>>2]|0;g=g+-1|0;j=h+1|0;h=d[h>>0]<<8;if(!g){if(!(Gb[c[k+12>>2]&127](f)|0)){xa=0;Aa=350;break a}g=c[l>>2]|0;j=c[k>>2]|0}Qa=h|d[j>>0];h=Qa+-2|0;V=c[f>>2]|0;c[V+20>>2]=93;c[V+24>>2]=c[Na>>2];c[(c[f>>2]|0)+28>>2]=h;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);c[k>>2]=j+1;c[l>>2]=g+-1;if(Qa>>>0>2)Ub[c[(c[oa>>2]|0)+16>>2]&63](f,h);break}default:{Qa=c[f>>2]|0;c[Qa+20>>2]=70;c[Qa+24>>2]=g;Sb[c[c[f>>2]>>2]&255](f)}}while(0);c[Na>>2]=0;g=0}if((Aa|0)==25){q=c[oa>>2]|0;h=c[q>>2]|0;r=q+4|0;g=c[r>>2]|0;if(!(c[(c[Oa>>2]|0)+16>>2]|0)){Qa=c[f>>2]|0;c[Qa+20>>2]=60;Wz(Qa+24|0,46633,80)|0;Sb[c[c[f>>2]>>2]&255](f)}do if(!g)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{g=c[r>>2]|0;h=c[q>>2]|0;break}while(0);g=g+-1|0;j=h+1|0;k=d[h>>0]<<8;do if(!g)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{g=c[r>>2]|0;h=c[q>>2]|0;break}else h=j;while(0);g=g+-1|0;j=h+1|0;l=k|d[h>>0];do if(!g)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{h=c[r>>2]|0;k=c[q>>2]|0;break}else{h=g;k=j}while(0);m=a[k>>0]|0;p=m&255;Qa=c[f>>2]|0;c[Qa+20>>2]=105;c[Qa+24>>2]=p;Ub[c[(c[f>>2]|0)+4>>2]&63](f,1);do if(!((m&255)>4|(l|0)!=((p<<1)+6|0))){if(m<<24>>24){c[f+340>>2]=p;i=h+-1|0;ya=k+1|0;za=i;i=(i|0)==0;Aa=42;break}if(c[f+224>>2]|0){c[f+340>>2]=p;g=h+-1|0;if(!g){Ha=1;Aa=64}else{Fa=g;La=k+1|0;Ma=1}}else Aa=41}else Aa=41;while(0);if((Aa|0)==41){j=c[f>>2]|0;c[j+20>>2]=12;Sb[c[j>>2]&255](f);c[f+340>>2]=p;j=h+-1|0;g=k+1|0;h=(j|0)==0;if(!(m<<24>>24)){Da=j;Ea=g;Ga=h;Ia=1;Aa=63}else{ya=g;za=j;i=h;Aa=42}}e:do if((Aa|0)==42){n=q+12|0;o=f+344|0;m=0;g=ya;h=za;while(1){if(i){if(!(Gb[c[n>>2]&127](f)|0)){xa=0;Aa=350;break}h=c[r>>2]|0;g=c[q>>2]|0}l=h+-1|0;i=g+1|0;h=d[g>>0]|0;f:do if(m){g=0;while(1){if((c[c[f+344+(g<<2)>>2]>>2]|0)==(h|0))break;g=g+1|0;if(g>>>0>=m>>>0)break f}g=c[c[o>>2]>>2]|0;if(m>>>0>1){h=1;do{Qa=c[c[f+344+(h<<2)>>2]>>2]|0;g=(Qa|0)>(g|0)?Qa:g;h=h+1|0}while((h|0)!=(m|0))}h=g+1|0}while(0);g=c[Ka>>2]|0;k=c[Ja>>2]|0;g:do if((k|0)>0){j=0;while(1){if((h|0)==(c[g>>2]|0)){Ca=g;break g}j=j+1|0;g=g+88|0;if((j|0)>=(k|0)){Ba=g;Aa=58;break}}}else{Ba=g;Aa=58}while(0);if((Aa|0)==58){Aa=0;Ca=c[f>>2]|0;c[Ca+20>>2]=4;c[Ca+24>>2]=h;Sb[c[c[f>>2]>>2]&255](f);Ca=Ba}c[f+344+(m<<2)>>2]=Ca;if(!l){if(!(Gb[c[n>>2]&127](f)|0)){xa=0;Aa=350;break}g=c[r>>2]|0;i=c[q>>2]|0}else g=l;h=d[i>>0]|0;za=Ca+20|0;c[za>>2]=h>>>4;Qa=Ca+24|0;c[Qa>>2]=h&15;h=c[f>>2]|0;c[h+24>>2]=c[Ca>>2];c[h+28>>2]=c[za>>2];c[h+32>>2]=c[Qa>>2];c[h+20>>2]=106;Ub[c[h+4>>2]&63](f,1);m=m+1|0;h=g+-1|0;g=i+1|0;i=(h|0)==0;if(m>>>0>=p>>>0){Da=h;Ea=g;Ga=i;Ia=0;Aa=63;break e}}if((Aa|0)==350){zb=Pa;return xa|0}}while(0);if((Aa|0)==63)if(Ga){Ha=Ia;Aa=64}else{Fa=Da;La=Ea;Ma=Ia}do if((Aa|0)==64)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{Fa=c[r>>2]|0;La=c[q>>2]|0;Ma=Ha;break}while(0);g=Fa+-1|0;h=La+1|0;k=f+412|0;c[k>>2]=d[La>>0];do if(!g)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{g=c[r>>2]|0;i=c[q>>2]|0;break}else i=h;while(0);h=g+-1|0;g=i+1|0;j=f+416|0;c[j>>2]=d[i>>0];do if(!h)if(!(Gb[c[q+12>>2]&127](f)|0)){Qa=0;zb=Pa;return Qa|0}else{h=c[r>>2]|0;g=c[q>>2]|0;break}while(0);Qa=d[g>>0]|0;Ka=f+420|0;c[Ka>>2]=Qa>>>4;La=f+424|0;c[La>>2]=Qa&15;Qa=c[f>>2]|0;c[Qa+24>>2]=c[k>>2];c[Qa+28>>2]=c[j>>2];c[Qa+32>>2]=c[Ka>>2];c[Qa+36>>2]=c[La>>2];c[Qa+20>>2]=107;Ub[c[Qa+4>>2]&63](f,1);c[(c[Oa>>2]|0)+20>>2]=0;if(!Ma){Qa=f+144|0;c[Qa>>2]=(c[Qa>>2]|0)+1}c[q>>2]=g+1;c[r>>2]=h+-1;c[Na>>2]=0;Qa=1;zb=Pa;return Qa|0}else if((Aa|0)==75){Qa=c[f>>2]|0;c[Qa+20>>2]=87;Ub[c[Qa+4>>2]&63](f,1);c[Na>>2]=0;Qa=2;zb=Pa;return Qa|0}else if((Aa|0)==174){Qa=0;zb=Pa;return Qa|0}else if((Aa|0)==350){zb=Pa;return xa|0}return 0}function Xt(a){a=a|0;var b=0,d=0,e=0,f=0;f=a+440|0;b=c[f>>2]|0;do if(!b)if(!(Tt(a)|0)){f=0;return f|0}else{b=c[f>>2]|0;break}while(0);d=a+464|0;e=c[(c[d>>2]|0)+20>>2]|0;if((b|0)!=(e+208|0)){if(!(Ib[c[(c[a+24>>2]|0)+20>>2]&63](a,e)|0)){f=0;return f|0}}else{b=c[a>>2]|0;c[b+20>>2]=100;c[b+24>>2]=e;Ub[c[(c[a>>2]|0)+4>>2]&63](a,3);c[f>>2]=0}f=(c[d>>2]|0)+20|0;c[f>>2]=(c[f>>2]|0)+1&7;f=1;return f|0}function Yt(a){a=a|0;var b=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;g=a+24|0;h=c[g>>2]|0;i=h+4|0;b=c[i>>2]|0;do if(!b)if(!(Gb[c[h+12>>2]&127](a)|0)){i=0;return i|0}else{b=c[i>>2]|0;break}while(0);e=c[h>>2]|0;b=b+-1|0;f=e+1|0;e=(d[e>>0]|0)<<8;do if(!b)if(!(Gb[c[h+12>>2]&127](a)|0)){i=0;return i|0}else{b=c[i>>2]|0;f=c[h>>2]|0;break}while(0);j=e|(d[f>>0]|0);e=j+-2|0;k=c[a>>2]|0;c[k+20>>2]=93;c[k+24>>2]=c[a+440>>2];c[(c[a>>2]|0)+28>>2]=e;Ub[c[(c[a>>2]|0)+4>>2]&63](a,1);c[h>>2]=f+1;c[i>>2]=b+-1;if(j>>>0<=2){k=1;return k|0}Ub[c[(c[g>>2]|0)+16>>2]&63](a,e);k=1;return k|0}function Zt(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;p=zb;zb=zb+16|0;l=p;m=b+24|0;n=c[m>>2]|0;o=n+4|0;e=c[o>>2]|0;do if(!e)if(!(Gb[c[n+12>>2]&127](b)|0)){o=0;zb=p;return o|0}else{e=c[o>>2]|0;break}while(0);g=c[n>>2]|0;e=e+-1|0;f=g+1|0;g=d[g>>0]<<8;do if(!e)if(!(Gb[c[n+12>>2]&127](b)|0)){o=0;zb=p;return o|0}else{e=c[o>>2]|0;f=c[n>>2]|0;break}while(0);j=g|d[f>>0];k=j+-2|0;j=j>>>0>15?14:j>>>0>2?k:0;g=e+-1|0;e=f+1|0;a:do if(!j)f=g;else{i=n+12|0;h=0;f=g;while(1){if(!f){if(!(Gb[c[i>>2]&127](b)|0)){e=0;break}f=c[o>>2]|0;e=c[n>>2]|0}a[l+h>>0]=a[e>>0]|0;h=h+1|0;f=f+-1|0;e=e+1|0;if(h>>>0>=j>>>0)break a}zb=p;return e|0}while(0);g=k-j|0;h=c[b+440>>2]|0;b:do switch(h|0){case 224:{_t(b,l,j,g);break}case 238:{if((((j>>>0>11&(a[l>>0]|0)==65?(a[l+1>>0]|0)==100:0)?(a[l+2>>0]|0)==111:0)?(a[l+3>>0]|0)==98:0)?(a[l+4>>0]|0)==101:0){h=d[l+7>>0]<<8|d[l+8>>0];i=d[l+9>>0]<<8|d[l+10>>0];k=a[l+11>>0]|0;j=c[b>>2]|0;c[j+24>>2]=d[l+5>>0]<<8|d[l+6>>0];c[j+28>>2]=h;c[j+32>>2]=i;c[j+36>>2]=k&255;c[j+20>>2]=78;Ub[c[j+4>>2]&63](b,1);c[b+296>>2]=1;a[b+300>>0]=k;break b}l=c[b>>2]|0;c[l+20>>2]=80;c[l+24>>2]=k;Ub[c[(c[b>>2]|0)+4>>2]&63](b,1);break}default:{l=c[b>>2]|0;c[l+20>>2]=70;c[l+24>>2]=h;Sb[c[c[b>>2]>>2]&255](b)}}while(0);c[n>>2]=e;c[o>>2]=f;if((g|0)<=0){o=1;zb=p;return o|0}Ub[c[(c[m>>2]|0)+16>>2]&63](b,g);o=1;zb=p;return o|0}function _t(e,f,g,h){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;r=h+g|0;if(g>>>0>13){if((a[f>>0]|0)==74)if((((a[f+1>>0]|0)==70?(a[f+2>>0]|0)==73:0)?(a[f+3>>0]|0)==70:0)?(a[f+4>>0]|0)==0:0){c[e+284>>2]=1;j=a[f+5>>0]|0;k=e+288|0;a[k>>0]=j;l=a[f+6>>0]|0;m=e+289|0;a[m>>0]=l;h=a[f+7>>0]|0;p=e+290|0;a[p>>0]=h;i=(d[f+8>>0]<<8|d[f+9>>0])&65535;n=e+292|0;b[n>>1]=i;g=(d[f+10>>0]<<8|d[f+11>>0])&65535;o=e+294|0;b[o>>1]=g;if((j+-1&255)<2)q=e;else{q=c[e>>2]|0;c[q+20>>2]=122;c[q+24>>2]=j&255;c[(c[e>>2]|0)+28>>2]=d[m>>0];Ub[c[(c[e>>2]|0)+4>>2]&63](e,-1);q=e;j=a[k>>0]|0;l=a[m>>0]|0;i=b[n>>1]|0;g=b[o>>1]|0;h=a[p>>0]|0}p=c[e>>2]|0;c[p+24>>2]=j&255;c[p+28>>2]=l&255;c[p+32>>2]=i&65535;c[p+36>>2]=g&65535;c[p+40>>2]=h&255;c[p+20>>2]=89;Ub[c[p+4>>2]&63](q,1);h=f+12|0;i=a[h>>0]|0;j=f+13|0;g=a[j>>0]|0;if((g|i)<<24>>24){i=c[e>>2]|0;c[i+20>>2]=92;c[i+24>>2]=d[h>>0];c[(c[e>>2]|0)+28>>2]=d[j>>0];Ub[c[(c[e>>2]|0)+4>>2]&63](q,1);i=a[h>>0]|0;g=a[j>>0]|0}h=r+-14|0;if((h|0)==(B((i&255)*3|0,g&255)|0))return;r=c[e>>2]|0;c[r+20>>2]=90;c[r+24>>2]=h;Ub[c[(c[e>>2]|0)+4>>2]&63](q,1);return}else i=16}else if(g>>>0>5?(a[f>>0]|0)==74:0)i=16;if(((((i|0)==16?(a[f+1>>0]|0)==70:0)?(a[f+2>>0]|0)==88:0)?(a[f+3>>0]|0)==88:0)?(a[f+4>>0]|0)==0:0){h=f+5|0;switch(a[h>>0]|0){case 16:{q=c[e>>2]|0;c[q+20>>2]=110;c[q+24>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}case 17:{q=c[e>>2]|0;c[q+20>>2]=111;c[q+24>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}case 19:{q=c[e>>2]|0;c[q+20>>2]=112;c[q+24>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}default:{q=c[e>>2]|0;c[q+20>>2]=91;c[q+24>>2]=d[h>>0];c[(c[e>>2]|0)+28>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}}}q=c[e>>2]|0;c[q+20>>2]=79;c[q+24>>2]=r;Ub[c[(c[e>>2]|0)+4>>2]&63](e,1);return}function $t(a,b,e,f){a=a|0;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;o=c[a+24>>2]|0;h=c[o>>2]|0;p=o+4|0;g=c[p>>2]|0;c[a+220>>2]=b;c[a+224>>2]=e;c[a+228>>2]=f;do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}while(0);g=g+-1|0;b=h+1|0;e=(d[h>>0]|0)<<8;do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}else h=b;while(0);g=g+-1|0;b=h+1|0;j=e|(d[h>>0]|0);do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}else h=b;while(0);g=g+-1|0;b=h+1|0;c[a+212>>2]=d[h>>0];do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}else h=b;while(0);g=g+-1|0;b=h+1|0;h=(d[h>>0]|0)<<8;i=a+32|0;c[i>>2]=h;do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;b=c[o>>2]|0;e=c[i>>2]|0;break}else e=h;while(0);g=g+-1|0;h=b+1|0;c[i>>2]=e+(d[b>>0]|0);do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;h=c[o>>2]|0;break}while(0);g=g+-1|0;b=h+1|0;h=(d[h>>0]|0)<<8;f=a+28|0;c[f>>2]=h;do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{g=c[p>>2]|0;b=c[o>>2]|0;h=c[f>>2]|0;break}while(0);g=g+-1|0;e=b+1|0;c[f>>2]=h+(d[b>>0]|0);do if(!g)if(!(Gb[c[o+12>>2]&127](a)|0)){p=0;return p|0}else{b=c[p>>2]|0;e=c[o>>2]|0;break}else b=g;while(0);m=a+36|0;c[m>>2]=d[e>>0];h=j+-8|0;n=c[a>>2]|0;c[n+24>>2]=c[a+440>>2];c[n+28>>2]=c[f>>2];c[n+32>>2]=c[i>>2];c[n+36>>2]=c[m>>2];c[n+20>>2]=102;Ub[c[n+4>>2]&63](a,1);n=a+464|0;if(c[(c[n>>2]|0)+16>>2]|0){l=c[a>>2]|0;c[l+20>>2]=61;Sb[c[l>>2]&255](a)}if(((c[i>>2]|0)!=0?(c[f>>2]|0)!=0:0)?(k=c[m>>2]|0,(k|0)>=1):0)g=k;else{g=c[a>>2]|0;c[g+20>>2]=33;Sb[c[g>>2]&255](a);g=c[m>>2]|0}if((h|0)!=(g*3|0)){l=c[a>>2]|0;c[l+20>>2]=12;Sb[c[l>>2]&255](a)}l=a+216|0;if(!(c[l>>2]|0)){k=Jb[c[c[a+4>>2]>>2]&63](a,1,(c[m>>2]|0)*88|0)|0;c[l>>2]=k}b=b+-1|0;g=e+1|0;a:do if((c[m>>2]|0)>0){k=o+12|0;j=0;while(1){if(!b){if(!(Gb[c[k>>2]&127](a)|0)){g=0;h=57;break}b=c[p>>2]|0;g=c[o>>2]|0}f=b+-1|0;h=g+1|0;e=d[g>>0]|0;i=c[l>>2]|0;b:do if(!j)b=e;else{g=i;b=0;while(1){if((c[g>>2]|0)==(e|0))break;b=b+1|0;g=g+88|0;if(b>>>0>=j>>>0){b=e;i=g;break b}}b=c[i>>2]|0;g=i+88|0;if(j>>>0>1){e=1;while(1){q=c[g>>2]|0;b=(q|0)>(b|0)?q:b;e=e+1|0;if((e|0)==(j|0))break;else g=g+88|0}g=i+(j*88|0)|0}b=b+1|0;i=g}while(0);c[i>>2]=b;c[i+4>>2]=j;if(!f){if(!(Gb[c[k>>2]&127](a)|0)){g=0;h=57;break}g=c[p>>2]|0;h=c[o>>2]|0}else g=f;g=g+-1|0;b=h+1|0;q=d[h>>0]|0;e=i+8|0;c[e>>2]=q>>>4;f=i+12|0;c[f>>2]=q&15;if(!g){if(!(Gb[c[k>>2]&127](a)|0)){g=0;h=57;break}g=c[p>>2]|0;h=c[o>>2]|0}else h=b;q=i+16|0;c[q>>2]=d[h>>0];b=c[a>>2]|0;c[b+24>>2]=c[i>>2];c[b+28>>2]=c[e>>2];c[b+32>>2]=c[f>>2];c[b+36>>2]=c[q>>2];c[b+20>>2]=103;Ub[c[b+4>>2]&63](a,1);j=j+1|0;b=g+-1|0;g=h+1|0;if((j|0)>=(c[m>>2]|0))break a}if((h|0)==57)return g|0}while(0);c[(c[n>>2]|0)+16>>2]=1;c[o>>2]=g;c[p>>2]=b;q=1;return q|0}function au(a){a=a|0;a=Jb[c[c[a+4>>2]>>2]&63](a,0,280)|0;c[a+276>>2]=0;return a|0}function bu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=a+20|0;b=c[k>>2]|0;a:do switch(b|0){case 202:{cu(a);if(!(c[a+64>>2]|0)){c[k>>2]=203;d=6;break a}c[k>>2]=207;k=1;return k|0}case 203:{d=6;break}case 204:{b=a+444|0;break}default:{d=c[a>>2]|0;c[d+20>>2]=21;c[d+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a);d=17}}while(0);if((d|0)==6){g=a+460|0;b:do if(c[(c[g>>2]|0)+16>>2]|0){e=a+8|0;f=a+332|0;b=c[e>>2]|0;c:while(1){if(b|0)Sb[c[b>>2]&255](a);b=Gb[c[c[g>>2]>>2]&127](a)|0;switch(b|0){case 2:break b;case 0:break c;default:{}}d=c[e>>2]|0;if((b|2|0)==3&(d|0)!=0?(h=d+4|0,j=(c[h>>2]|0)+1|0,c[h>>2]=j,h=d+8|0,i=c[h>>2]|0,(j|0)>=(i|0)):0)c[h>>2]=(c[f>>2]|0)+i;b=d}return b|0}while(0);c[a+152>>2]=c[a+144>>2];d=17}if((d|0)==17){b=a+444|0;if((c[k>>2]|0)!=204){Sb[c[c[b>>2]>>2]&255](a);c[a+140>>2]=0;c[k>>2]=204}}d=c[b>>2]|0;d:do if(c[d+8>>2]|0){g=a+140|0;h=a+116|0;i=a+8|0;j=a+448|0;f=c[g>>2]|0;e:while(1){e=c[h>>2]|0;if(f>>>0>>0){do{d=c[i>>2]|0;if(!d)d=f;else{c[d+4>>2]=f;c[d+8>>2]=e;Sb[c[d>>2]&255](a);d=c[g>>2]|0}Xb[c[(c[j>>2]|0)+4>>2]&31](a,0,g,0);f=c[g>>2]|0;if((f|0)==(d|0)){b=0;break e}e=c[h>>2]|0}while(f>>>0>>0);d=c[b>>2]|0}Sb[c[d+4>>2]&255](a);Sb[c[c[b>>2]>>2]&255](a);c[g>>2]=0;d=c[b>>2]|0;if(!(c[d+8>>2]|0))break d;else f=0}return b|0}while(0);c[k>>2]=(c[a+68>>2]|0)==0?205:206;k=1;return k|0}function cu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=b+4|0;i=Jb[c[c[k>>2]>>2]&63](b,1,28)|0;c[b+444>>2]=i;c[i>>2]=118;c[i+4>>2]=119;c[i+8>>2]=0;d=c[b+212>>2]|0;if((d|0)!=8){j=c[b>>2]|0;c[j+20>>2]=16;c[j+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b)}fu(b);e=Jb[c[c[k>>2]>>2]&63](b,1,1280)|0;aP(e|0,0,512)|0;f=e+512|0;c[b+336>>2]=f;d=0;do{a[f+d>>0]=d;d=d+1|0}while((d|0)!=256);aP(e+768|0,-1,512)|0;if(!(((c[b+116>>2]|0)!=0?(c[b+112>>2]|0)!=0:0)?(g=b+120|0,(c[g>>2]|0)>=1):0)){g=c[b>>2]|0;c[g+20>>2]=33;Sb[c[g>>2]&255](b);g=b+120|0}j=i+12|0;c[j>>2]=0;f=gu(b)|0;h=i+16|0;c[h>>2]=f;f=i+20|0;c[f>>2]=0;d=i+24|0;c[d>>2]=0;do if(!(c[b+84>>2]|0)){c[b+100>>2]=0;c[b+104>>2]=0;c[b+108>>2]=0;e=b+68|0}else{if(!(c[b+64>>2]|0)){c[b+100>>2]=0;c[b+104>>2]=0;c[b+108>>2]=0}e=b+68|0;if(c[e>>2]|0){i=c[b>>2]|0;c[i+20>>2]=48;Sb[c[i>>2]&255](b)}do if((c[g>>2]|0)==3){if(c[b+136>>2]|0){c[b+104>>2]=1;break}if(!(c[b+92>>2]|0)){c[b+100>>2]=1;break}else{c[b+108>>2]=1;break}}else{c[b+100>>2]=1;c[b+104>>2]=0;c[b+108>>2]=0;c[b+136>>2]=0}while(0);if(c[b+100>>2]|0){hu(b);c[f>>2]=c[b+484>>2]}if((c[b+108>>2]|0)==0?(c[b+104>>2]|0)==0:0)break;iu(b);c[d>>2]=c[b+484>>2]}while(0);if(!(c[e>>2]|0)){if(!(c[h>>2]|0)){ku(b);lu(b)}else ju(b);mu(b,c[b+108>>2]|0)}nu(b);if(!(c[b+228>>2]|0))pu(b);else ou(b);f=b+460|0;if(!(c[(c[f>>2]|0)+16>>2]|0))d=(c[b+64>>2]|0)!=0&1;else d=1;qu(b,d);if(!(c[e>>2]|0))ru(b,0);Sb[c[(c[k>>2]|0)+24>>2]&255](b);Sb[c[(c[f>>2]|0)+8>>2]&255](b);d=c[b+8>>2]|0;if(!d)return;if(c[b+64>>2]|0)return;if(!(c[(c[f>>2]|0)+16>>2]|0))return;k=c[b+36>>2]|0;k=(c[b+224>>2]|0)==0?k:(k*3|0)+2|0;c[d+4>>2]=0;k=B(k,c[b+332>>2]|0)|0;c[d+8>>2]=k;c[d+12>>2]=0;c[d+16>>2]=(c[b+108>>2]|0)==0?2:3;c[j>>2]=(c[j>>2]|0)+1;return}function du(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a+444>>2]|0;e=d+8|0;if(!(c[e>>2]|0)){b=a+84|0;do if(c[b>>2]|0?(c[a+136>>2]|0)==0:0){if(c[a+92>>2]|0?c[a+108>>2]|0:0){c[a+484>>2]=c[d+24>>2];c[e>>2]=1;break}if(!(c[a+100>>2]|0)){f=c[a>>2]|0;c[f+20>>2]=47;Sb[c[f>>2]&255](a);break}else{c[a+484>>2]=c[d+20>>2];break}}while(0);Sb[c[c[a+472>>2]>>2]&255](a);Sb[c[(c[a+452>>2]|0)+8>>2]&255](a);if(!(c[a+68>>2]|0)){if(!(c[d+16>>2]|0))Sb[c[c[a+480>>2]>>2]&255](a);Sb[c[c[a+476>>2]>>2]&255](a);if(c[b>>2]|0)Ub[c[c[a+484>>2]>>2]&63](a,c[e>>2]|0);Ub[c[c[a+456>>2]>>2]&63](a,(c[e>>2]|0)==0?0:3);Ub[c[c[a+448>>2]>>2]&63](a,0)}}else{c[e>>2]=0;Ub[c[c[a+484>>2]>>2]&63](a,0);Ub[c[c[a+456>>2]>>2]&63](a,2);Ub[c[c[a+448>>2]>>2]&63](a,2)}b=c[a+8>>2]|0;if(!b)return;d=c[d+12>>2]|0;c[b+12>>2]=d;d=((c[e>>2]|0)==0?1:2)+d|0;b=b+16|0;c[b>>2]=d;if(!(c[a+64>>2]|0))return;if(c[(c[a+460>>2]|0)+20>>2]|0)return;c[b>>2]=((c[a+108>>2]|0)==0?1:2)+d;return}function eu(a){a=a|0;var b=0;b=c[a+444>>2]|0;if(c[a+84>>2]|0)Sb[c[(c[a+484>>2]|0)+8>>2]&255](a);b=b+12|0;c[b>>2]=(c[b>>2]|0)+1;return}function fu(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;b=c[a+20>>2]|0;if((b|0)!=202){t=c[a>>2]|0;c[t+20>>2]=21;c[t+24>>2]=b;Sb[c[c[a>>2]>>2]&255](a)}xw(a);d=c[a+216>>2]|0;t=a+36|0;b=c[t>>2]|0;o=(b|0)>0;if(o){p=c[a+324>>2]|0;q=(c[a+76>>2]|0)==0?4:8;r=a+320|0;s=c[a+328>>2]|0;if((p|0)>(q|0)){k=(s|0)>(q|0);l=p<<1;i=d;j=0;while(1){m=i+36|0;c[m>>2]=p;a:do if(k)e=s;else{h=c[r>>2]|0;g=c[i+12>>2]|0;f=1;e=s;do{f=f<<1;if((h|0)%(B(f,g)|0)|0|0)break a;e=B(s,f)|0}while((e|0)<=(q|0))}while(0);f=i+40|0;c[f>>2]=e;g=e<<1;if((p|0)<=(g|0)){if((e|0)>(l|0))c[f>>2]=l}else c[m>>2]=g;j=j+1|0;if((j|0)>=(b|0))break;else i=i+88|0}}else{m=c[a+316>>2]|0;n=(s|0)>(q|0);k=d;l=0;while(1){g=c[k+8>>2]|0;f=1;e=p;do{f=f<<1;if((m|0)%(B(f,g)|0)|0|0)break;e=B(p,f)|0}while((e|0)<=(q|0));j=k+36|0;c[j>>2]=e;b:do if(n)g=s;else{h=c[r>>2]|0;i=c[k+12>>2]|0;f=1;g=s;do{f=f<<1;if((h|0)%(B(f,i)|0)|0|0)break b;g=B(s,f)|0}while((g|0)<=(q|0))}while(0);h=k+40|0;c[h>>2]=g;f=g<<1;if((e|0)<=(f|0)){e=e<<1;if((g|0)>(e|0))c[h>>2]=e}else c[j>>2]=f;l=l+1|0;if((l|0)>=(b|0))break;else k=k+88|0}}if(o){f=a+28|0;g=a+316|0;h=a+428|0;i=a+32|0;j=a+320|0;e=0;while(1){b=B(B(c[d+8>>2]|0,c[f>>2]|0)|0,c[d+36>>2]|0)|0;b=yw(b,B(c[h>>2]|0,c[g>>2]|0)|0)|0;c[d+44>>2]=b;b=B(B(c[d+12>>2]|0,c[i>>2]|0)|0,c[d+40>>2]|0)|0;b=yw(b,B(c[h>>2]|0,c[j>>2]|0)|0)|0;c[d+48>>2]=b;e=e+1|0;b=c[t>>2]|0;if((e|0)>=(b|0))break;else d=d+88|0}}}d=c[a+44>>2]|0;switch(d|0){case 1:{b=d;break}case 6:case 2:{b=3;break}case 7:case 3:{b=3;break}case 5:case 4:{b=4;break}default:{}}c[a+120>>2]=b;c[a+124>>2]=(c[a+84>>2]|0)==0?b:1;if(!(gu(a)|0)){t=1;a=a+128|0;c[a>>2]=t;return}t=c[a+320>>2]|0;a=a+128|0;c[a>>2]=t;return}function gu(a){a=a|0;var b=0,d=0;if(c[a+308>>2]|0)return 0;switch(c[a+40>>2]|0){case 7:case 3:break;default:return 0}if((c[a+36>>2]|0)!=3)return 0;if((c[a+44>>2]|0)!=2)return 0;if((c[a+120>>2]|0)!=3)return 0;if(c[a+304>>2]|0)return 0;d=c[a+216>>2]|0;if((c[d+8>>2]|0)!=2)return 0;if((c[d+96>>2]|0)!=1)return 0;if((c[d+184>>2]|0)!=1)return 0;if((c[d+12>>2]|0)>2)return 0;if((c[d+100>>2]|0)!=1)return 0;if((c[d+188>>2]|0)!=1)return 0;b=c[d+36>>2]|0;if((b|0)!=(c[a+324>>2]|0))return 0;if((c[d+124>>2]|0)!=(b|0))return 0;if((c[d+212>>2]|0)!=(b|0))return 0;b=c[d+40>>2]|0;if((b|0)!=(c[a+328>>2]|0))return 0;if((c[d+128>>2]|0)==(b|0))return (c[d+216>>2]|0)==(b|0)|0;else return 0;return 0}function hu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;s=b+4|0;t=Jb[c[c[s>>2]>>2]&63](b,1,88)|0;r=b+484|0;c[r>>2]=t;c[t>>2]=48;c[t+8>>2]=120;c[t+12>>2]=121;c[t+68>>2]=0;c[t+52>>2]=0;t=b+120|0;if((c[t>>2]|0)>4){n=c[b>>2]|0;c[n+20>>2]=57;c[n+24>>2]=4;Sb[c[c[b>>2]>>2]&255](b)}d=b+96|0;e=c[d>>2]|0;if((e|0)>256){e=c[b>>2]|0;c[e+20>>2]=59;c[e+24>>2]=256;Sb[c[c[b>>2]>>2]&255](b);e=c[d>>2]|0}n=c[r>>2]|0;l=n+32|0;k=c[t>>2]|0;if((k|0)>1){h=1;while(1){g=h+1|0;f=1;d=g;do{d=B(d,g)|0;f=f+1|0}while((f|0)!=(k|0));if((d|0)>(e|0)){f=h;break}else h=g}}else{f=(e|0)>1?e:1;d=f+1|0}if(f>>>0<2){j=c[b>>2]|0;c[j+20>>2]=58;c[j+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b)}a:do if((k|0)>0){h=1;d=0;do{c[n+32+(d<<2)>>2]=f;h=B(h,f)|0;d=d+1|0}while((d|0)!=(k|0));if((c[b+44>>2]|0)==2){g=0;d=0;f=h;while(1){h=n+32+(c[15924+(d<<2)>>2]<<2)|0;j=c[h>>2]|0;i=j+1|0;j=B((f|0)/(j|0)|0,i)|0;if((j|0)<=(e|0)){c[h>>2]=i;d=d+1|0;if((d|0)<(k|0)){g=1;f=j}else{d=1;f=j;m=22}}else{d=g;m=22}if((m|0)==22){m=0;if(!d)break a;else{g=0;d=0}}}}else{g=0;d=0;f=h;while(1){h=n+32+(d<<2)|0;j=c[h>>2]|0;i=j+1|0;j=B((f|0)/(j|0)|0,i)|0;if((j|0)<=(e|0)){c[h>>2]=i;d=d+1|0;if((d|0)<(k|0)){g=1;f=j}else{d=1;f=j;m=26}}else{d=g;m=26}if((m|0)==26){m=0;if(!d)break a;else{g=0;d=0}}}}}else f=1;while(0);d=c[b>>2]|0;if((c[t>>2]|0)==3){c[d+24>>2]=f;c[d+28>>2]=c[l>>2];c[d+32>>2]=c[n+36>>2];c[d+36>>2]=c[n+40>>2];c[d+20>>2]=96;Ub[c[d+4>>2]&63](b,1)}else{c[d+20>>2]=97;c[d+24>>2]=f;Ub[c[(c[b>>2]|0)+4>>2]&63](b,1)}m=Kb[c[(c[s>>2]|0)+8>>2]&15](b,1,f,c[t>>2]|0)|0;d=c[t>>2]|0;if((d|0)>0){k=0;l=f;do{j=c[n+32+(k<<2)>>2]|0;i=l;l=(l|0)/(j|0)|0;if((j|0)>0?(o=j+-1|0,p=(o|0)/2|0,q=m+(k<<2)|0,(l|0)>0):0){g=0;do{d=B(g,l)|0;if((d|0)<(f|0)){h=(((g*255|0)+p|0)/(o|0)|0)&255;do{e=0;do{a[(c[q>>2]|0)+(e+d)>>0]=h;e=e+1|0}while((e|0)!=(l|0));d=d+i|0}while((d|0)<(f|0))}g=g+1|0}while((g|0)!=(j|0));d=c[t>>2]|0}k=k+1|0}while((k|0)<(d|0))}c[n+16>>2]=m;c[n+20>>2]=f;rw(b);if((c[b+88>>2]|0)!=2)return;e=c[r>>2]|0;f=(c[b+112>>2]<<1)+4|0;if((c[t>>2]|0)<=0)return;d=0;do{r=Jb[c[(c[s>>2]|0)+4>>2]&63](b,1,f)|0;c[e+68+(d<<2)>>2]=r;d=d+1|0}while((d|0)<(c[t>>2]|0));return}function iu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+4|0;e=Jb[c[c[f>>2]>>2]&63](a,1,44)|0;c[a+484>>2]=e;c[e>>2]=49;c[e+12>>2]=122;g=e+32|0;c[g>>2]=0;c[e+40>>2]=0;if((c[a+120>>2]|0)!=3){d=c[a>>2]|0;c[d+20>>2]=48;Sb[c[d>>2]&255](a)}b=Jb[c[c[f>>2]>>2]&63](a,1,128)|0;d=e+24|0;c[d>>2]=b;b=0;do{h=Jb[c[(c[f>>2]|0)+4>>2]&63](a,1,4096)|0;c[(c[d>>2]|0)+(b<<2)>>2]=h;b=b+1|0}while((b|0)!=32);c[e+28>>2]=1;if(!(c[a+108>>2]|0))c[e+16>>2]=0;else{b=c[a+96>>2]|0;if((b|0)>=8){if((b|0)>256){h=c[a>>2]|0;c[h+20>>2]=59;c[h+24>>2]=256;Sb[c[c[a>>2]>>2]&255](a)}}else{h=c[a>>2]|0;c[h+20>>2]=58;c[h+24>>2]=8;Sb[c[c[a>>2]>>2]&255](a)}h=Kb[c[(c[f>>2]|0)+8>>2]&15](a,1,b,3)|0;c[e+16>>2]=h;c[e+20>>2]=b}b=a+88|0;if(!(c[b>>2]|0))return;c[b>>2]=2;h=Jb[c[(c[f>>2]|0)+4>>2]&63](a,1,((c[a+112>>2]|0)*6|0)+12|0)|0;c[g>>2]=h;gw(a);return}function ju(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;g=a+4|0;b=Jb[c[c[g>>2]>>2]&63](a,1,48)|0;f=a+476|0;c[f>>2]=b;c[b>>2]=123;c[b+8>>2]=0;d=B(c[a+120>>2]|0,c[a+112>>2]|0)|0;c[b+40>>2]=d;e=b+4|0;if((c[a+320>>2]|0)==2){c[e>>2]=1;c[b+12>>2]=9;e=Jb[c[(c[g>>2]|0)+4>>2]&63](a,1,d)|0;c[b+32>>2]=e;b=c[f>>2]|0}else{c[e>>2]=2;c[b+12>>2]=10;c[b+32>>2]=0}d=(c[a+40>>2]|0)==7;i=Jb[c[c[g>>2]>>2]&63](a,1,1024)|0;e=b+16|0;c[e>>2]=i;i=Jb[c[c[g>>2]>>2]&63](a,1,1024)|0;f=b+20|0;c[f>>2]=i;i=Jb[c[c[g>>2]>>2]&63](a,1,1024)|0;h=b+24|0;c[h>>2]=i;g=Jb[c[c[g>>2]>>2]&63](a,1,1024)|0;c[b+28>>2]=g;e=c[e>>2]|0;f=c[f>>2]|0;a=c[h>>2]|0;if(d){b=0;d=-128;while(1){c[e+(b<<2)>>2]=(d*183763|0)+32768>>16;c[f+(b<<2)>>2]=(d*232260|0)+32768>>16;i=B(d,-93603)|0;c[a+(b<<2)>>2]=i;i=(B(d,-45107)|0)+32768|0;c[g+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}return}else{b=0;d=-128;while(1){c[e+(b<<2)>>2]=(d*91881|0)+32768>>16;c[f+(b<<2)>>2]=(d*116130|0)+32768>>16;i=B(d,-46802)|0;c[a+(b<<2)>>2]=i;i=(B(d,-22553)|0)+32768|0;c[g+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}return}}function ku(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0;b=a+4|0;e=Jb[c[c[b>>2]>>2]&63](a,1,28)|0;g=a+480|0;c[g>>2]=e;c[e>>2]=124;h=a+40|0;switch(c[h>>2]|0){case 1:{if((c[a+36>>2]|0)!=1){f=c[a>>2]|0;c[f+20>>2]=11;Sb[c[f>>2]&255](a)}break}case 7:case 6:case 3:case 2:{if((c[a+36>>2]|0)!=3){f=c[a>>2]|0;c[f+20>>2]=11;Sb[c[f>>2]&255](a)}break}case 5:case 4:{if((c[a+36>>2]|0)!=4){f=c[a>>2]|0;c[f+20>>2]=11;Sb[c[f>>2]&255](a)}break}default:if((c[a+36>>2]|0)<1){f=c[a>>2]|0;c[f+20>>2]=11;Sb[c[f>>2]&255](a)}}d=a+304|0;a:do if(c[d>>2]|0){switch(c[h>>2]|0){case 6:case 2:break a;default:{}}f=c[a>>2]|0;c[f+20>>2]=28;Sb[c[f>>2]&255](a)}while(0);f=c[a+44>>2]|0;b:do switch(f|0){case 1:{c[a+120>>2]=1;switch(c[h>>2]|0){case 7:case 3:case 1:{c[e+4>>2]=4;d=c[a+36>>2]|0;if((d|0)<=1)break b;e=c[a+216>>2]|0;b=1;do{c[e+(b*88|0)+52>>2]=0;b=b+1|0}while((b|0)<(d|0));break}case 2:{switch(c[d>>2]|0){case 0:{c[e+4>>2]=5;break}case 1:{c[e+4>>2]=6;break}default:{h=c[a>>2]|0;c[h+20>>2]=28;Sb[c[h>>2]&255](a)}}h=c[g>>2]|0;d=Jb[c[c[b>>2]>>2]&63](a,1,3072)|0;c[h+24>>2]=d;b=0;do{c[d+(b<<2)>>2]=b*19595;c[d+(b+256<<2)>>2]=b*38470;c[d+(b+512<<2)>>2]=(b*7471|0)+32768;b=b+1|0}while((b|0)!=256);break}default:{h=c[a>>2]|0;c[h+20>>2]=28;Sb[c[h>>2]&255](a);break b}}break}case 2:{c[a+120>>2]=3;switch(c[h>>2]|0){case 1:{c[e+4>>2]=7;break b}case 3:{c[e+4>>2]=8;d=c[g>>2]|0;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;f=d+8|0;c[f>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;g=d+12|0;c[g>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;h=d+16|0;c[h>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;c[d+20>>2]=e;f=c[f>>2]|0;g=c[g>>2]|0;h=c[h>>2]|0;b=0;d=-128;while(1){c[f+(b<<2)>>2]=(d*91881|0)+32768>>16;c[g+(b<<2)>>2]=(d*116130|0)+32768>>16;i=B(d,-46802)|0;c[h+(b<<2)>>2]=i;i=(B(d,-22553)|0)+32768|0;c[e+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}break}case 7:{c[e+4>>2]=8;d=c[g>>2]|0;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;f=d+8|0;c[f>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;g=d+12|0;c[g>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;h=d+16|0;c[h>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;c[d+20>>2]=e;f=c[f>>2]|0;g=c[g>>2]|0;h=c[h>>2]|0;b=0;d=-128;while(1){c[f+(b<<2)>>2]=(d*183763|0)+32768>>16;c[g+(b<<2)>>2]=(d*232260|0)+32768>>16;i=B(d,-93603)|0;c[h+(b<<2)>>2]=i;i=(B(d,-45107)|0)+32768|0;c[e+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}break}case 2:switch(c[d>>2]|0){case 0:{c[e+4>>2]=9;break b}case 1:{c[e+4>>2]=10;break b}default:{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}default:{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}break}case 6:{c[a+120>>2]=3;if((c[h>>2]|0)!=6){i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}switch(c[d>>2]|0){case 0:{c[e+4>>2]=9;break b}case 1:{c[e+4>>2]=10;break b}default:{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}}case 4:{c[a+120>>2]=4;switch(c[h>>2]|0){case 5:{c[e+4>>2]=11;d=c[g>>2]|0;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;f=d+8|0;c[f>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;g=d+12|0;c[g>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;h=d+16|0;c[h>>2]=e;e=Jb[c[c[b>>2]>>2]&63](a,1,1024)|0;c[d+20>>2]=e;f=c[f>>2]|0;g=c[g>>2]|0;h=c[h>>2]|0;b=0;d=-128;while(1){c[f+(b<<2)>>2]=(d*91881|0)+32768>>16;c[g+(b<<2)>>2]=(d*116130|0)+32768>>16;i=B(d,-46802)|0;c[h+(b<<2)>>2]=i;i=(B(d,-22553)|0)+32768|0;c[e+(b<<2)>>2]=i;b=b+1|0;if((b|0)==256)break;else d=d+1|0}break}case 4:{c[e+4>>2]=12;break b}default:{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}break}default:if((f|0)==(c[h>>2]|0)){c[a+120>>2]=c[a+36>>2];c[e+4>>2]=12;break b}else{i=c[a>>2]|0;c[i+20>>2]=28;Sb[c[i>>2]&255](a);break b}}while(0);if(c[a+84>>2]|0){h=1;i=a+124|0;c[i>>2]=h;return}h=c[a+120>>2]|0;i=a+124|0;c[i>>2]=h;return}function lu(b){b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=b+4|0;d=Jb[c[c[m>>2]>>2]&63](b,1,160)|0;c[b+476>>2]=d;c[d>>2]=125;c[d+4>>2]=3;c[d+8>>2]=0;if(c[b+308>>2]|0){w=c[b>>2]|0;c[w+20>>2]=26;Sb[c[w>>2]&255](b)}n=b+36|0;if((c[n>>2]|0)<=0)return;o=b+324|0;p=b+328|0;q=b+316|0;r=b+320|0;s=d+100|0;t=d+52|0;u=b+112|0;v=d+12|0;w=d+140|0;h=d+150|0;f=c[b+216>>2]|0;g=0;while(1){i=B(c[f+36>>2]|0,c[f+8>>2]|0)|0;i=(i|0)/(c[o>>2]|0)|0;j=B(c[f+40>>2]|0,c[f+12>>2]|0)|0;j=(j|0)/(c[p>>2]|0)|0;k=c[q>>2]|0;l=c[r>>2]|0;c[s+(g<<2)>>2]=j;do if(!(c[f+52>>2]|0))c[t+(g<<2)>>2]=11;else{d=(j|0)==(l|0);if((i|0)==(k|0)&d){c[t+(g<<2)>>2]=12;break}e=(i<<1|0)==(k|0);do if(e&d)c[t+(g<<2)>>2]=13;else{if(e&(j<<1|0)==(l|0)){c[t+(g<<2)>>2]=14;break}d=(k|0)/(i|0)|0;if((k-(B(d,i)|0)|0)==0?(x=(l|0)/(j|0)|0,(l-(B(x,j)|0)|0)==0):0){c[t+(g<<2)>>2]=15;a[w+g>>0]=d;a[h+g>>0]=x;break}l=c[b>>2]|0;c[l+20>>2]=39;Sb[c[l>>2]&255](b)}while(0);k=c[(c[m>>2]|0)+8>>2]|0;l=yu(c[u>>2]|0,c[q>>2]|0)|0;l=Kb[k&15](b,1,l,c[r>>2]|0)|0;c[v+(g<<2)>>2]=l}while(0);g=g+1|0;if((g|0)>=(c[n>>2]|0))break;else f=f+88|0}return}function mu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;f=a+4|0;d=Jb[c[c[f>>2]>>2]&63](a,1,28)|0;c[a+456>>2]=d;c[d>>2]=50;h=d+8|0;c[h>>2]=0;i=d+12|0;c[i>>2]=0;if(!(c[a+84>>2]|0))return;g=c[a+320>>2]|0;e=d+16|0;c[e>>2]=g;d=c[f>>2]|0;if(!b){h=B(c[a+120>>2]|0,c[a+112>>2]|0)|0;h=Kb[c[d+8>>2]&15](a,1,h,g)|0;c[i>>2]=h;return}else{f=c[d+16>>2]|0;b=B(c[a+120>>2]|0,c[a+112>>2]|0)|0;i=yu(c[a+116>>2]|0,g)|0;i=Ob[f&63](a,1,0,b,i,c[e>>2]|0)|0;c[h>>2]=i;return}}function nu(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;f=a+4|0;b=Jb[c[c[f>>2]>>2]&63](a,1,84)|0;c[a+472>>2]=b;c[b>>2]=126;g=a+36|0;if((c[g>>2]|0)<=0)return;e=b+44|0;b=0;d=c[a+216>>2]|0;while(1){h=Jb[c[c[f>>2]>>2]&63](a,1,256)|0;c[d+84>>2]=h;aP(h|0,0,256)|0;c[e+(b<<2)>>2]=-1;b=b+1|0;if((b|0)>=(c[g>>2]|0))break;else d=d+88|0}return}function ou(b){b=b|0;var d=0,e=0,f=0,g=0;g=b+4|0;e=Jb[c[c[g>>2]>>2]&63](b,1,192)|0;c[b+468>>2]=e;c[e>>2]=127;c[e+8>>2]=128;d=e+188|0;e=e+60|0;f=e+128|0;do{c[e>>2]=0;e=e+4|0}while((e|0)<(f|0));a[d>>0]=113;if(!(c[b+224>>2]|0))return;f=b+36|0;e=Jb[c[c[g>>2]>>2]&63](b,1,c[f>>2]<<8)|0;c[b+160>>2]=e;if((c[f>>2]|0)<=0)return;d=0;do{aP(e+(d<<8)|0,-1,256)|0;d=d+1|0}while((d|0)<(c[f>>2]|0));return}function pu(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+4|0;f=Jb[c[c[b>>2]>>2]&63](a,1,220)|0;c[a+468>>2]=f;c[f>>2]=129;c[f+8>>2]=130;if(!(c[a+224>>2]|0)){e=f+68|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;c[e+12>>2]=0;c[e+16>>2]=0;c[f+88>>2]=0;c[f+92>>2]=0;c[f+96>>2]=0;return}e=a+36|0;d=Jb[c[c[b>>2]>>2]&63](a,1,c[e>>2]<<8)|0;c[a+160>>2]=d;if((c[e>>2]|0)>0){b=0;do{aP(d+(b<<8)|0,-1,256)|0;b=b+1|0}while((b|0)<(c[e>>2]|0))}f=f+48|0;c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;return}function qu(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;h=a+4|0;i=Jb[c[c[h>>2]>>2]&63](a,1,116)|0;c[a+452>>2]=i;c[i>>2]=131;c[i+8>>2]=132;c[i+112>>2]=0;if(!b){b=Jb[c[(c[h>>2]|0)+4>>2]&63](a,1,1280)|0;c[i+32>>2]=b;c[i+36>>2]=b+128;c[i+40>>2]=b+256;c[i+44>>2]=b+384;c[i+48>>2]=b+512;c[i+52>>2]=b+640;c[i+56>>2]=b+768;c[i+60>>2]=b+896;c[i+64>>2]=b+1024;c[i+68>>2]=b+1152;if(!(c[a+436>>2]|0))aP(b|0,0,1280)|0;c[i+4>>2]=89;c[i+12>>2]=35;c[i+16>>2]=0;return}f=a+36|0;if((c[f>>2]|0)>0){g=a+224|0;b=i+72|0;d=0;e=c[a+216>>2]|0;while(1){k=e+12|0;j=c[k>>2]|0;j=(c[g>>2]|0)==0?j:j*3|0;m=c[(c[h>>2]|0)+20>>2]|0;l=yu(c[e+28>>2]|0,c[e+8>>2]|0)|0;k=yu(c[e+32>>2]|0,c[k>>2]|0)|0;j=Ob[m&63](a,1,1,l,k,j)|0;c[b+(d<<2)>>2]=j;d=d+1|0;if((d|0)>=(c[f>>2]|0))break;else e=e+88|0}}else b=i+72|0;c[i+4>>2]=88;c[i+12>>2]=34;c[i+16>>2]=b;return}function ru(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;l=a+4|0;j=Jb[c[c[l>>2]>>2]&63](a,1,80)|0;d=a+448|0;c[d>>2]=j;c[j>>2]=51;if(b|0){k=c[a>>2]|0;c[k+20>>2]=3;Sb[c[k>>2]&255](a)}k=a+328|0;e=c[k>>2]|0;if(!(c[(c[a+476>>2]|0)+8>>2]|0)){c[j+52>>2]=e;b=a+36|0;h=e;g=b;b=c[b>>2]|0;d=e}else{if((e|0)<2){e=c[a>>2]|0;c[e+20>>2]=48;Sb[c[e>>2]&255](a);e=c[k>>2]|0}h=c[d>>2]|0;i=a+36|0;f=Jb[c[c[l>>2]>>2]&63](a,1,c[i>>2]<<3)|0;g=h+60|0;c[g>>2]=f;b=c[i>>2]|0;h=h+64|0;c[h>>2]=f+(b<<2);if((b|0)>0){f=e+4|0;d=c[a+216>>2]|0;e=0;while(1){m=B(c[d+40>>2]|0,c[d+12>>2]|0)|0;m=(m|0)/(c[k>>2]|0)|0;b=B(m,f)|0;m=(Jb[c[c[l>>2]>>2]&63](a,1,b<<3)|0)+(m<<2)|0;c[(c[g>>2]|0)+(e<<2)>>2]=m;c[(c[h>>2]|0)+(e<<2)>>2]=m+(b<<2);e=e+1|0;b=c[i>>2]|0;if((e|0)>=(b|0))break;else d=d+88|0}}d=c[k>>2]|0;h=d+2|0;g=i}if((b|0)<=0)return;f=j+8|0;b=0;e=c[a+216>>2]|0;while(1){m=(B(c[e+40>>2]|0,c[e+12>>2]|0)|0)/(d|0)|0;j=B(c[e+36>>2]|0,c[e+28>>2]|0)|0;m=B(m,h)|0;m=Kb[c[(c[l>>2]|0)+8>>2]&15](a,1,j,m)|0;c[f+(b<<2)>>2]=m;b=b+1|0;if((b|0)>=(c[g>>2]|0))break;e=e+88|0;d=c[k>>2]|0}return}function su(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=c[a+448>>2]|0;switch(b|0){case 0:{b=r+4|0;if(!(c[(c[a+476>>2]|0)+8>>2]|0)){c[b>>2]=17;c[r+48>>2]=c[r+52>>2];return}c[b>>2]=16;l=c[a+328>>2]|0;m=c[a+36>>2]|0;if((m|0)>0){n=r+60|0;o=r+64|0;p=l+2|0;q=l+-2|0;h=c[a+216>>2]|0;i=0;while(1){j=(B(c[h+40>>2]|0,c[h+12>>2]|0)|0)/(l|0)|0;k=c[(c[n>>2]|0)+(i<<2)>>2]|0;f=c[(c[o>>2]|0)+(i<<2)>>2]|0;g=c[r+8+(i<<2)>>2]|0;a=B(j,p)|0;if((a|0)>0){b=0;do{e=c[g+(b<<2)>>2]|0;c[f+(b<<2)>>2]=e;c[k+(b<<2)>>2]=e;b=b+1|0}while((b|0)!=(a|0))}a=j<<1;if((j|0)>0){d=B(j,l)|0;e=B(j,q)|0;b=0;do{s=b+d|0;t=b+e|0;c[f+(t<<2)>>2]=c[g+(s<<2)>>2];c[f+(s<<2)>>2]=c[g+(t<<2)>>2];b=b+1|0}while((b|0)<(a|0));b=0;do{c[k+(b-j<<2)>>2]=c[k>>2];b=b+1|0}while((b|0)!=(j|0))}i=i+1|0;if((i|0)==(m|0))break;else h=h+88|0}}c[r+68>>2]=0;c[r+72>>2]=0;c[r+76>>2]=0;c[r+56>>2]=0;return}case 2:{c[r+4>>2]=18;return}default:{t=c[a>>2]|0;c[t+20>>2]=3;Sb[c[t>>2]&255](a);return}}}function tu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;v=a+448|0;w=c[v>>2]|0;y=w+56|0;do if(!(c[y>>2]|0))if(!(Ib[c[(c[a+452>>2]|0)+12>>2]&63](a,c[w+60+(c[w+68>>2]<<2)>>2]|0)|0))return;else{c[y>>2]=1;x=w+76|0;c[x>>2]=(c[x>>2]|0)+1;break}while(0);x=w+72|0;switch(c[x>>2]|0){case 2:{f=w+48|0;g=w+52|0;_b[c[(c[a+456>>2]|0)+4>>2]&7](a,c[w+60+(c[w+68>>2]<<2)>>2]|0,f,c[g>>2]|0,b,d,e);if((c[f>>2]|0)>>>0<(c[g>>2]|0)>>>0)return;c[x>>2]=0;if((c[d>>2]|0)>>>0>>0)h=9;else return;break}case 0:{f=w+48|0;g=w+52|0;h=9;break}case 1:{u=w+48|0;t=w+52|0;break}default:return}if((h|0)==9){c[f>>2]=0;p=c[a+328>>2]|0;c[g>>2]=p+-1;if((c[w+76>>2]|0)==(c[a+332>>2]|0)?(i=c[v>>2]|0,r=c[a+36>>2]|0,(r|0)>0):0){q=i+52|0;l=i+60+(c[i+68>>2]<<2)|0;j=c[a+216>>2]|0;k=0;while(1){u=B(c[j+40>>2]|0,c[j+12>>2]|0)|0;h=(u|0)/(p|0)|0;o=((c[j+48>>2]|0)>>>0)%(u>>>0)|0;o=(o|0)==0?u:o;if(!k)c[q>>2]=((o+-1|0)/(h|0)|0)+1;m=c[(c[l>>2]|0)+(k<<2)>>2]|0;n=h<<1;if((h|0)>0){i=m+(o+-1<<2)|0;h=0;do{c[m+(h+o<<2)>>2]=c[i>>2];h=h+1|0}while((h|0)<(n|0))}k=k+1|0;if((k|0)==(r|0))break;else j=j+88|0}}c[x>>2]=1;u=f;t=g}s=w+68|0;_b[c[(c[a+456>>2]|0)+4>>2]&7](a,c[w+60+(c[s>>2]<<2)>>2]|0,u,c[t>>2]|0,b,d,e);if((c[u>>2]|0)>>>0<(c[t>>2]|0)>>>0)return;if((c[w+76>>2]|0)==1){g=c[v>>2]|0;f=c[a+328>>2]|0;r=c[a+36>>2]|0;if((r|0)>0){b=g+60|0;o=g+64|0;p=f+1|0;q=f+2|0;h=c[a+216>>2]|0;i=0;while(1){j=(B(c[h+40>>2]|0,c[h+12>>2]|0)|0)/(f|0)|0;k=c[(c[b>>2]|0)+(i<<2)>>2]|0;l=c[(c[o>>2]|0)+(i<<2)>>2]|0;if((j|0)>0){m=B(j,p)|0;n=B(j,q)|0;g=0;do{w=g+m|0;a=g-j|0;c[k+(a<<2)>>2]=c[k+(w<<2)>>2];c[l+(a<<2)>>2]=c[l+(w<<2)>>2];a=g+n|0;c[k+(a<<2)>>2]=c[k+(g<<2)>>2];c[l+(a<<2)>>2]=c[l+(g<<2)>>2];g=g+1|0}while((g|0)!=(j|0))}i=i+1|0;if((i|0)==(r|0))break;else h=h+88|0}}}else f=c[a+328>>2]|0;c[s>>2]=c[s>>2]^1;c[y>>2]=0;c[u>>2]=f+1;c[t>>2]=f+2;c[x>>2]=2;return}function uu(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;f=c[a+448>>2]|0;i=f+48|0;h=f+52|0;g=c[h>>2]|0;do if((c[i>>2]|0)>>>0>=g>>>0){f=f+8|0;if(!(Ib[c[(c[a+452>>2]|0)+12>>2]&63](a,f)|0))return;else{c[i>>2]=0;g=c[h>>2]|0;break}}else f=f+8|0;while(0);_b[c[(c[a+456>>2]|0)+4>>2]&7](a,f,i,g,b,d,e);return}function vu(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;_b[c[(c[a+456>>2]|0)+4>>2]&7](a,0,0,0,b,d,e);return}function wu(a){a=a|0;var b=0,d=0;c[a+148>>2]=0;b=c[a+452>>2]|0;if((c[a+340>>2]|0)>1)a=1;else{d=c[a+344>>2]|0;a=c[((c[a+332>>2]|0)==1?d+76|0:d+12|0)>>2]|0}c[b+28>>2]=a;c[b+20>>2]=0;c[b+24>>2]=0;return}function xu(a){a=a|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;k=c[a+452>>2]|0;if(!(c[k+16>>2]|0)){l=a+156|0;c[l>>2]=0;return}a:do if(((c[a+80>>2]|0)!=0?(c[a+224>>2]|0)!=0:0)?(j=a+160|0,(c[j>>2]|0)!=0):0){d=k+112|0;e=c[d>>2]|0;if(!e){i=a+36|0;e=Jb[c[c[a+4>>2]>>2]&63](a,1,(c[i>>2]|0)*24|0)|0;c[d>>2]=e}else i=a+36|0;if((c[i>>2]|0)>0){f=0;g=c[a+216>>2]|0;h=0;while(1){d=c[g+80>>2]|0;if(!d){l=20;break a}if(!(b[d>>1]|0)){l=20;break a}if(!(b[d+2>>1]|0)){l=20;break a}if(!(b[d+16>>1]|0)){l=20;break a}if(!(b[d+32>>1]|0)){l=20;break a}if(!(b[d+18>>1]|0)){l=20;break a}if(!(b[d+4>>1]|0)){l=20;break a}d=c[j>>2]|0;if((c[d+(h<<8)>>2]|0)<0){l=20;break a}m=d+(h<<8)+4|0;c[e+4>>2]=c[m>>2];m=c[m>>2]|0;n=d+(h<<8)+8|0;c[e+8>>2]=c[n>>2];m=c[n>>2]|m;n=d+(h<<8)+12|0;c[e+12>>2]=c[n>>2];n=m|c[n>>2];m=d+(h<<8)+16|0;c[e+16>>2]=c[m>>2];m=n|c[m>>2];d=d+(h<<8)+20|0;c[e+20>>2]=c[d>>2];f=(m|c[d>>2]|0)==0?f:1;h=h+1|0;if((h|0)>=(c[i>>2]|0))break;else{g=g+88|0;e=e+24|0}}if(f)d=36;else l=20}else l=20}else l=20;while(0);if((l|0)==20)d=34;c[k+12>>2]=d;n=a+156|0;c[n>>2]=0;return}function yu(a,b){a=a|0;b=b|0;a=a+-1+b|0;return a-((a|0)%(b|0)|0)|0}function zu(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;z=zb;zb=zb+16|0;u=z;x=a+452|0;v=c[x>>2]|0;y=a+340|0;if((c[y>>2]|0)>0){d=a+4|0;e=a+148|0;b=0;do{r=c[a+344+(b<<2)>>2]|0;t=c[r+12>>2]|0;s=B(t,c[e>>2]|0)|0;t=Mb[c[(c[d>>2]|0)+32>>2]&31](a,c[v+72+(c[r+4>>2]<<2)>>2]|0,s,t,1)|0;c[u+(b<<2)>>2]=t;b=b+1|0}while((b|0)<(c[y>>2]|0))}o=v+24|0;b=c[o>>2]|0;p=v+28|0;f=c[p>>2]|0;a:do if((b|0)<(f|0)){q=v+20|0;r=a+360|0;s=a+468|0;t=v+32|0;d=c[q>>2]|0;e=c[r>>2]|0;b:while(1){if(d>>>0>>0){do{n=c[y>>2]|0;if((n|0)>0){e=0;m=0;do{l=c[a+344+(m<<2)>>2]|0;j=c[l+56>>2]|0;k=B(j,d)|0;l=c[l+60>>2]|0;if((l|0)>0?(w=c[u+(m<<2)>>2]|0,(j|0)>0):0){i=0;do{f=0;g=(c[w+(i+b<<2)>>2]|0)+(k<<7)|0;h=e;while(1){c[v+32+(h<<2)>>2]=g;f=f+1|0;if((f|0)==(j|0))break;else{g=g+128|0;h=h+1|0}}e=j+e|0;i=i+1|0}while((i|0)<(l|0))}m=m+1|0}while((m|0)<(n|0))}if(!(Ib[c[(c[s>>2]|0)+4>>2]&63](a,t)|0))break b;d=d+1|0;e=c[r>>2]|0}while(d>>>0>>0);f=c[p>>2]|0}c[q>>2]=0;b=b+1|0;if((b|0)<(f|0))d=0;else break a}c[o>>2]=b;c[q>>2]=d;y=0;zb=z;return y|0}while(0);d=a+148|0;b=(c[d>>2]|0)+1|0;c[d>>2]=b;d=c[a+332>>2]|0;if(b>>>0>=d>>>0){Sb[c[(c[a+460>>2]|0)+12>>2]&255](a);y=4;zb=z;return y|0}e=c[x>>2]|0;if((c[y>>2]|0)>1)b=1;else{y=c[a+344>>2]|0;b=c[(b>>>0<(d+-1|0)>>>0?y+12|0:y+76|0)>>2]|0}c[e+28>>2]=b;c[e+20>>2]=0;c[e+24>>2]=0;y=3;zb=z;return y|0}function Au(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;v=c[a+452>>2]|0;w=a+332|0;x=(c[w>>2]|0)+-1|0;g=a+144|0;h=a+152|0;i=a+460|0;d=a+148|0;u=a+156|0;while(1){e=c[g>>2]|0;f=c[h>>2]|0;if((e|0)>=(f|0)){if((e|0)!=(f|0))break;if((c[d>>2]|0)>>>0>(c[u>>2]|0)>>>0)break}if(!(Gb[c[c[i>>2]>>2]&127](a)|0)){d=0;j=20;break}}if((j|0)==20)return d|0;q=a+36|0;if((c[q>>2]|0)>0){r=a+4|0;s=a+472|0;o=c[a+216>>2]|0;p=0;while(1){if(c[o+52>>2]|0){d=o+12|0;t=c[d>>2]|0;n=B(t,c[u>>2]|0)|0;t=Mb[c[(c[r>>2]|0)+32>>2]&31](a,c[v+72+(p<<2)>>2]|0,n,t,0)|0;if((c[u>>2]|0)>>>0>>0)i=c[d>>2]|0;else{n=c[d>>2]|0;i=((c[o+32>>2]|0)>>>0)%(n>>>0)|0;i=(i|0)==0?n:i}k=c[(c[s>>2]|0)+4+(p<<2)>>2]|0;if((i|0)>0){l=o+28|0;m=o+40|0;n=o+36|0;h=c[b+(p<<2)>>2]|0;j=0;d=c[l>>2]|0;while(1){if(!d)d=0;else{e=0;f=c[t+(j<<2)>>2]|0;g=0;while(1){Yb[k&63](a,o,f,h,e);g=g+1|0;d=c[l>>2]|0;if(g>>>0>=d>>>0)break;else{e=(c[n>>2]|0)+e|0;f=f+128|0}}}j=j+1|0;if((j|0)==(i|0))break;else h=h+(c[m>>2]<<2)|0}}}p=p+1|0;if((p|0)>=(c[q>>2]|0))break;else o=o+88|0}}x=(c[u>>2]|0)+1|0;c[u>>2]=x;x=x>>>0<(c[w>>2]|0)>>>0?3:4;return x|0}function Bu(a){a=a|0;return 0}function Cu(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,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=a+452|0;I=c[N>>2]|0;J=(c[a+360>>2]|0)+-1|0;M=a+332|0;f=c[M>>2]|0;K=f+-1|0;G=I+24|0;d=c[G>>2]|0;H=I+28|0;g=c[H>>2]|0;do if((d|0)<(g|0)){y=I+20|0;z=a+436|0;A=a+468|0;C=I+32|0;D=a+368|0;E=a+340|0;F=a+472|0;e=a+148|0;x=d;f=g;d=c[y>>2]|0;a:while(1){if(d>>>0<=J>>>0){do{if(c[z>>2]|0)aP(c[C>>2]|0,0,c[D>>2]<<7|0)|0;if(!(Ib[c[(c[A>>2]|0)+4>>2]&63](a,C)|0))break a;f=c[E>>2]|0;if((f|0)>0){w=d>>>0>>0;g=0;v=0;do{m=c[a+344+(v<<2)>>2]|0;b:do if(c[m+52>>2]|0){h=c[m+4>>2]|0;n=c[(c[F>>2]|0)+4+(h<<2)>>2]|0;o=m+56|0;p=c[(w?o:m+72|0)>>2]|0;q=m+40|0;i=c[q>>2]|0;r=B(c[m+68>>2]|0,d)|0;s=m+60|0;l=c[s>>2]|0;if((l|0)>0){t=m+76|0;u=m+36|0;if((p|0)<=0){i=c[o>>2]|0;h=0;while(1){g=i+g|0;h=h+1|0;if((h|0)>=(l|0))break b}}j=(c[b+(h<<2)>>2]|0)+((B(i,x)|0)<<2)|0;k=0;h=l;f=i;while(1){if(!((c[e>>2]|0)>>>0>=K>>>0?(k+x|0)>=(c[t>>2]|0):0)){f=r;h=0;while(1){Yb[n&63](a,m,c[I+32+(h+g<<2)>>2]|0,j,f);h=h+1|0;if((h|0)==(p|0))break;else f=(c[u>>2]|0)+f|0}f=c[q>>2]|0;h=c[s>>2]|0}g=(c[o>>2]|0)+g|0;k=k+1|0;if((k|0)>=(h|0))break;else j=j+(f<<2)|0}f=c[E>>2]|0}}else g=(c[m+64>>2]|0)+g|0;while(0);v=v+1|0}while((v|0)<(f|0))}d=d+1|0}while(d>>>0<=J>>>0);f=c[H>>2]|0}c[y>>2]=0;d=x+1|0;if((d|0)<(f|0)){x=d;d=0}else{L=30;break}}if((L|0)==30){f=c[M>>2]|0;break}c[G>>2]=x;c[y>>2]=d;a=0;return a|0}else e=a+148|0;while(0);d=a+156|0;c[d>>2]=(c[d>>2]|0)+1;d=(c[e>>2]|0)+1|0;c[e>>2]=d;if(d>>>0>=f>>>0){Sb[c[(c[a+460>>2]|0)+12>>2]&255](a);a=4;return a|0}e=c[N>>2]|0;if((c[a+340>>2]|0)>1)d=1;else{a=c[a+344>>2]|0;d=c[(d>>>0<(f+-1|0)>>>0?a+12|0:a+76|0)>>2]|0}c[e+28>>2]=d;c[e+20>>2]=0;c[e+24>>2]=0;a=3;return a|0}function Du(a,d){a=a|0;d=d|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,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0;oa=zb;zb=zb+128|0;ka=oa;la=c[a+452>>2]|0;na=a+332|0;ma=(c[na>>2]|0)+-1|0;n=a+144|0;f=c[n>>2]|0;i=a+152|0;g=c[i>>2]|0;a:do if((f|0)<=(g|0)){j=a+460|0;k=a+412|0;l=a+148|0;m=a+156|0;while(1){h=c[j>>2]|0;if(c[h+20>>2]|0)break a;if((f|0)==(g|0)?(c[l>>2]|0)>>>0>((c[m>>2]|0)+((c[k>>2]|0)==0&1)|0)>>>0:0)break a;if(!(Gb[c[h>>2]&127](a)|0)){f=0;break}f=c[n>>2]|0;g=c[i>>2]|0;if((f|0)>(g|0))break a}zb=oa;return f|0}while(0);ba=a+36|0;if((c[ba>>2]|0)>0){f=a+156|0;ca=a+4|0;da=la+112|0;ea=a+472|0;fa=ka+2|0;ga=ka+16|0;ha=ka+32|0;ia=ka+18|0;ja=ka+4|0;_=0;$=c[a+216>>2]|0;while(1){if(c[$+52>>2]|0){h=c[f>>2]|0;if(h>>>0>>0){i=c[$+12>>2]|0;g=i<<1;j=0;aa=i}else{i=c[$+12>>2]|0;aa=((c[$+32>>2]|0)>>>0)%(i>>>0)|0;aa=(aa|0)==0?i:aa;g=aa;j=1}if(!h){Y=Mb[c[(c[ca>>2]|0)+32>>2]&31](a,c[la+72+(_<<2)>>2]|0,0,g,0)|0;g=1}else{Y=B(i,h+-1|0)|0;Y=Mb[c[(c[ca>>2]|0)+32>>2]&31](a,c[la+72+(_<<2)>>2]|0,Y,i+g|0,0)|0;Y=Y+(c[$+12>>2]<<2)|0;g=0}i=(c[da>>2]|0)+(_*6<<2)|0;o=c[$+80>>2]|0;l=e[o>>1]|0;h=e[o+2>>1]|0;k=e[o+16>>1]|0;m=e[o+32>>1]|0;n=e[o+18>>1]|0;o=e[o+4>>1]|0;Z=c[(c[ea>>2]|0)+4+(_<<2)>>2]|0;if((aa|0)>0){X=(g|0)!=0;N=(j|0)!=0;O=aa+-1|0;P=$+28|0;Q=i+4|0;R=i+8|0;S=i+12|0;T=l*36|0;U=h<<7;V=i+16|0;W=k<<7;M=h<<8;J=i+20|0;K=l*9|0;L=m<<7;H=k<<8;I=$+36|0;F=l*5|0;G=n<<7;D=m<<8;E=o<<7;C=n<<8;y=o<<8;z=$+40|0;w=0;x=c[d+(_<<2)>>2]|0;while(1){g=c[Y+(w<<2)>>2]|0;if(X&(w|0)==0)h=g;else h=c[Y+(w+-1<<2)>>2]|0;if(N&(w|0)==(O|0))i=g;else i=c[Y+(w+1<<2)>>2]|0;l=b[h>>1]|0;q=b[g>>1]|0;k=b[i>>1]|0;A=(c[P>>2]|0)+-1|0;s=k;t=q;u=l;v=0;r=0;p=i;while(1){Eu(g,ka,1);if(v>>>0>>0){m=b[p+128>>1]|0;n=b[g+128>>1]|0;o=b[h+128>>1]|0}else{m=s;n=t;o=u}i=c[Q>>2]|0;if((i|0)!=0&(b[fa>>1]|0)==0){j=B(T,q-n|0)|0;if((j|0)>-1){j=(j+U|0)/(M|0)|0;pa=1<0?((j|0)<(pa|0)?j:pa+-1|0):j}else{pa=(U-j|0)/(M|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa)|0}b[fa>>1]=i}i=c[R>>2]|0;if((i|0)!=0&(b[ga>>1]|0)==0){j=B(T,u-s|0)|0;if((j|0)>-1){pa=(j+W|0)/(H|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa}else{pa=(W-j|0)/(H|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa)|0}b[ga>>1]=i}i=c[S>>2]|0;if((i|0)!=0&(b[ha>>1]|0)==0){j=B(K,u-(t<<1)+s|0)|0;if((j|0)>-1){pa=(j+L|0)/(D|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa}else{pa=(L-j|0)/(D|0)|0;j=1<0?((pa|0)<(j|0)?pa:j+-1|0):pa)|0}b[ha>>1]=i}j=c[V>>2]|0;if((j|0)!=0&(b[ia>>1]|0)==0){i=B(F,l-k-o+m|0)|0;if((i|0)>-1){i=(i+G|0)/(C|0)|0;pa=1<0?((i|0)<(pa|0)?i:pa+-1|0):i}else{i=(G-i|0)/(C|0)|0;pa=1<0?((i|0)<(pa|0)?i:pa+-1|0):i)|0}b[ia>>1]=i}j=c[J>>2]|0;if((j|0)!=0&(b[ja>>1]|0)==0){i=B(K,q-(t<<1)+n|0)|0;if((i|0)>-1){i=(i+E|0)/(y|0)|0;pa=1<0?((i|0)<(pa|0)?i:pa+-1|0):i}else{i=(E-i|0)/(y|0)|0;pa=1<0?((i|0)<(pa|0)?i:pa+-1|0):i)|0}b[ja>>1]=i}Yb[Z&63](a,$,ka,x,r);v=v+1|0;if(v>>>0>A>>>0)break;else{l=u;q=t;k=s;s=m;t=n;u=o;g=g+128|0;r=(c[I>>2]|0)+r|0;h=h+128|0;p=p+128|0}}w=w+1|0;if((w|0)==(aa|0))break;else x=x+(c[z>>2]<<2)|0}}}_=_+1|0;if((_|0)>=(c[ba>>2]|0))break;else $=$+88|0}}else f=a+156|0;pa=(c[f>>2]|0)+1|0;c[f>>2]=pa;pa=pa>>>0<(c[na>>2]|0)>>>0?3:4;zb=oa;return pa|0}function Eu(a,b,c){a=a|0;b=b|0;c=c|0;_O(b|0,a|0,c<<7|0)|0;return}function Fu(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;n=c[a+468>>2]|0;m=a+412|0;f=c[m>>2]|0;d=(f|0)==0;if(!(c[a+224>>2]|0)){if((d?(c[a+420>>2]|0)==0:0)?(c[a+424>>2]|0)==0:0){m=c[a+416>>2]|0;if((c[a+220>>2]|0)!=0|(m|0)<64?(m|0)!=(c[a+436>>2]|0):0)e=38}else e=38;if((e|0)==38){m=c[a>>2]|0;c[m+20>>2]=125;Ub[c[m+4>>2]&63](a,-1)}g=a+436|0;c[n+4>>2]=(c[g>>2]|0)==63?41:42;d=a+340|0;if((c[d>>2]|0)>0){b=0;do{e=c[a+344+(b<<2)>>2]|0;m=c[e+20>>2]|0;Lu(a,1,m,n+68+(m<<2)|0);if(c[g>>2]|0){m=c[e+24>>2]|0;Lu(a,0,m,n+84+(m<<2)|0)}c[n+24+(b<<2)>>2]=0;b=b+1|0}while((b|0)<(c[d>>2]|0))}f=a+368|0;if((c[f>>2]|0)<=0){m=n+16|0;c[m>>2]=0;m=n+12|0;c[m>>2]=0;m=n+40|0;c[m>>2]=0;a=a+280|0;a=c[a>>2]|0;n=n+44|0;c[n>>2]=a;return}e=0;do{b=c[a+344+(c[a+372+(e<<2)>>2]<<2)>>2]|0;c[n+100+(e<<2)>>2]=c[n+68+(c[b+20>>2]<<2)>>2];c[n+140+(e<<2)>>2]=c[n+84+(c[b+24>>2]<<2)>>2];a:do if(!(c[b+52>>2]|0))b=0;else{d=c[b+40>>2]|0;b=c[b+36>>2]|0;switch(c[g>>2]|0){case 0:{b=1;break a}case 3:{b=(c[4336+(((d|0)!=1&1)<<3)+(((b|0)!=1&1)<<2)>>2]|0)+1|0;break a}case 8:{m=d+-1|0;b=b+-1|0;b=(c[4352+((m>>>0<2?m:2)*12|0)+((b>>>0<2?b:2)<<2)>>2]|0)+1|0;break a}case 15:{m=d+-1|0;b=b+-1|0;b=(c[4400+((m>>>0<3?m:3)<<4)+((b>>>0<3?b:3)<<2)>>2]|0)+1|0;break a}case 24:{m=d+-1|0;b=b+-1|0;b=(c[4464+((m>>>0<4?m:4)*20|0)+((b>>>0<4?b:4)<<2)>>2]|0)+1|0;break a}case 35:{m=d+-1|0;b=b+-1|0;b=(c[4576+((m>>>0<5?m:5)*24|0)+((b>>>0<5?b:5)<<2)>>2]|0)+1|0;break a}case 48:{m=d+-1|0;b=b+-1|0;b=(c[4720+((m>>>0<6?m:6)*28|0)+((b>>>0<6?b:6)<<2)>>2]|0)+1|0;break a}default:{m=d+-1|0;b=b+-1|0;b=(c[4928+((m>>>0<7?m:7)<<5)+((b>>>0<7?b:7)<<2)>>2]|0)+1|0;break a}}}while(0);c[n+180+(e<<2)>>2]=b;e=e+1|0}while((e|0)<(c[f>>2]|0));m=n+16|0;c[m>>2]=0;m=n+12|0;c[m>>2]=0;m=n+40|0;c[m>>2]=0;a=a+280|0;a=c[a>>2]|0;n=n+44|0;c[n>>2]=a;return}k=a+416|0;b=c[k>>2]|0;if(d)if(!b)e=7;else e=11;else if(((b|0)>=(f|0)?(b|0)<=(c[a+436>>2]|0):0)?(c[a+340>>2]|0)==1:0)e=7;else e=11;do if((e|0)==7){b=c[a+420>>2]|0;if(b){b=b+-1|0;if((b|0)!=(c[a+424>>2]|0)){e=11;break}}else b=c[a+424>>2]|0;if((b|0)>13)e=11}while(0);if((e|0)==11){l=c[a>>2]|0;c[l+20>>2]=17;c[l+24>>2]=f;c[(c[a>>2]|0)+28>>2]=c[k>>2];c[(c[a>>2]|0)+32>>2]=c[a+420>>2];c[(c[a>>2]|0)+36>>2]=c[a+424>>2];Sb[c[c[a>>2]>>2]&255](a)}l=a+340|0;b=c[l>>2]|0;if((b|0)>0){i=a+160|0;g=a+420|0;j=a+424|0;h=0;do{e=c[(c[a+344+(h<<2)>>2]|0)+4>>2]|0;f=c[i>>2]|0;b=c[m>>2]|0;if(b){if((c[f+(e<<8)>>2]|0)<0){b=c[a>>2]|0;c[b+20>>2]=118;c[b+24>>2]=e;c[(c[a>>2]|0)+28>>2]=0;Ub[c[(c[a>>2]|0)+4>>2]&63](a,-1);b=c[m>>2]|0}}else b=0;if((b|0)<=(c[k>>2]|0))while(1){d=f+(e<<8)+(b<<2)|0;o=c[d>>2]|0;if((c[g>>2]|0)!=(((o|0)>0?o:0)|0)){o=c[a>>2]|0;c[o+20>>2]=118;c[o+24>>2]=e;c[(c[a>>2]|0)+28>>2]=b;Ub[c[(c[a>>2]|0)+4>>2]&63](a,-1)}c[d>>2]=c[j>>2];if((b|0)<(c[k>>2]|0))b=b+1|0;else break}h=h+1|0;b=c[l>>2]|0}while((h|0)<(b|0))}else g=a+420|0;e=c[m>>2]|0;o=(e|0)==0;c[n+4>>2]=(c[g>>2]|0)==0?(o?37:38):o?39:40;b:do if((b|0)>0){f=n+64|0;b=0;while(1){d=c[a+344+(b<<2)>>2]|0;if(!e){if(!(c[g>>2]|0)){o=c[d+20>>2]|0;Lu(a,1,o,n+48+(o<<2)|0)}}else{k=c[d+24>>2]|0;o=n+48+(k<<2)|0;Lu(a,0,k,o);c[f>>2]=c[o>>2]}c[n+24+(b<<2)>>2]=0;b=b+1|0;if((b|0)>=(c[l>>2]|0))break b;e=c[m>>2]|0}}while(0);c[n+20>>2]=0;o=n+16|0;c[o>>2]=0;o=n+12|0;c[o>>2]=0;o=n+40|0;c[o>>2]=0;a=a+280|0;a=c[a>>2]|0;o=n+44|0;c[o>>2]=a;return}function Gu(a){a=a|0;var b=0;b=(c[a+468>>2]|0)+16|0;a=(c[a+464>>2]|0)+24|0;c[a>>2]=(c[a>>2]|0)+((c[b>>2]|0)/8|0);c[b>>2]=0;return}function Hu(a,e){a=a|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;A=zb;zb=zb+48|0;x=A+20|0;y=A;z=c[a+468>>2]|0;t=c[a+424>>2]|0;i=a+280|0;if(c[i>>2]|0?(g=z+44|0,(c[g>>2]|0)==0):0){v=z+16|0;w=c[a+464>>2]|0;u=w+24|0;c[u>>2]=(c[u>>2]|0)+((c[v>>2]|0)/8|0);c[v>>2]=0;if(!(Gb[c[w+8>>2]&127](a)|0)){z=0;zb=A;return z|0}h=a+340|0;if((c[h>>2]|0)>0){f=0;do{c[z+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[h>>2]|0))}c[z+20>>2]=0;c[g>>2]=c[i>>2];if(!(c[a+440>>2]|0))c[z+40>>2]=0}if(!(c[z+40>>2]|0)){c[x+16>>2]=a;r=a+24|0;h=c[r>>2]|0;g=c[h>>2]|0;c[x>>2]=g;f=c[h+4>>2]|0;s=x+4|0;c[s>>2]=f;u=z+12|0;i=c[u>>2]|0;v=z+16|0;j=c[v>>2]|0;w=z+20|0;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];c[y+16>>2]=c[w+16>>2];q=a+368|0;do if((c[q>>2]|0)>0){o=x+8|0;p=x+12|0;l=0;while(1){m=c[e+(l<<2)>>2]|0;n=c[a+372+(l<<2)>>2]|0;h=c[z+48+(c[(c[a+344+(n<<2)>>2]|0)+20>>2]<<2)>>2]|0;if((j|0)<8){if(!(Ou(x,i,j,0)|0)){f=0;k=28;break}i=c[o>>2]|0;j=c[p>>2]|0;if((j|0)<8){f=1;k=17}else k=15}else k=15;if((k|0)==15){k=0;f=i>>j+-8&255;g=c[h+144+(f<<2)>>2]|0;if(!g){f=9;k=17}else{f=d[h+1168+f>>0]|0;j=j-g|0}}if((k|0)==17){f=Pu(x,i,j,h,f)|0;if((f|0)<0){f=0;k=28;break}j=c[p>>2]|0;i=c[o>>2]|0}if(!f)f=0;else{if((j|0)<(f|0)){if(!(Ou(x,i,j,f)|0)){f=0;k=28;break}j=c[p>>2]|0;i=c[o>>2]|0}j=j-f|0;k=c[5184+(f<<2)>>2]|0;h=i>>j&k;f=h-((h|0)>(c[5184+(f+-1<<2)>>2]|0)?0:k)|0}k=y+4+(n<<2)|0;n=(c[k>>2]|0)+f|0;c[k>>2]=n;b[m>>1]=n<=(c[q>>2]|0)){k=25;break}}if((k|0)==25){h=c[r>>2]|0;g=c[x>>2]|0;f=c[s>>2]|0;break}else if((k|0)==28){zb=A;return f|0}}while(0);c[h>>2]=g;c[h+4>>2]=f;c[u>>2]=i;c[v>>2]=j;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[w+16>>2]=c[y+16>>2]}z=z+44|0;c[z>>2]=(c[z>>2]|0)+-1;z=1;zb=A;return z|0}function Iu(a,e){a=a|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;y=zb;zb=zb+32|0;w=y;x=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=x+44|0,(c[i>>2]|0)==0):0){u=x+16|0;v=c[a+464>>2]|0;t=v+24|0;c[t>>2]=(c[t>>2]|0)+((c[u>>2]|0)/8|0);c[u>>2]=0;if(!(Gb[c[v+8>>2]&127](a)|0)){x=0;zb=y;return x|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[x+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[x+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[x+40>>2]=0}if(!(c[x+40>>2]|0)){v=x+20|0;f=c[v>>2]|0;if(!f){c[w+16>>2]=a;r=a+24|0;t=c[r>>2]|0;c[w>>2]=c[t>>2];s=w+4|0;c[s>>2]=c[t+4>>2];t=x+12|0;g=c[t>>2]|0;u=x+16|0;h=c[u>>2]|0;n=c[a+416>>2]|0;o=c[a+424>>2]|0;p=c[a+432>>2]|0;k=c[e>>2]|0;l=c[x+64>>2]|0;f=c[a+412>>2]|0;a:do if((f|0)<=(n|0)){q=w+8|0;m=w+12|0;j=f;b:while(1){if((h|0)<8){if(!(Ou(w,g,h,0)|0)){f=0;a=36;break}g=c[q>>2]|0;h=c[m>>2]|0;if((h|0)<8){f=1;a=19}else a=17}else a=17;if((a|0)==17){a=0;f=g>>h+-8&255;i=c[l+144+(f<<2)>>2]|0;if(!i){f=9;a=19}else{f=d[l+1168+f>>0]|0;h=h-i|0}}if((a|0)==19){f=Pu(w,g,h,l,f)|0;if((f|0)<0){f=0;a=36;break}h=c[m>>2]|0;g=c[q>>2]|0}e=f>>>4;i=f&15;if(!i){switch(e&268435455|0){case 0:{f=0;break a}case 15:break;default:{a=27;break b}}f=j+15|0}else{f=e+j|0;if((h|0)<(i|0)){if(!(Ou(w,g,h,i)|0)){f=0;a=36;break}h=c[m>>2]|0;g=c[q>>2]|0}h=h-i|0;j=c[5184+(i<<2)>>2]|0;a=g>>h&j;b[k+(c[p+(f<<2)>>2]<<1)>>1]=a-((a|0)>(c[5184+(i+-1<<2)>>2]|0)?0:j)<>2]|0;g=c[q>>2]|0;break}else f=h;while(0);h=f-e|0;f=i+-1+(g>>h&c[5184+(e<<2)>>2])|0;break}else if((a|0)==36){zb=y;return f|0}}else f=0;while(0);r=c[r>>2]|0;c[r>>2]=c[w>>2];c[r+4>>2]=c[s>>2];c[t>>2]=g;c[u>>2]=h}else f=f+-1|0;c[v>>2]=f}x=x+44|0;c[x>>2]=(c[x>>2]|0)+-1;x=1;zb=y;return x|0}function Ju(a,d){a=a|0;d=d|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;s=zb;zb=zb+32|0;q=s;r=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=r+44|0,(c[i>>2]|0)==0):0){o=r+16|0;p=c[a+464>>2]|0;n=p+24|0;c[n>>2]=(c[n>>2]|0)+((c[o>>2]|0)/8|0);c[o>>2]=0;if(!(Gb[c[p+8>>2]&127](a)|0)){r=0;zb=s;return r|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[r+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[r+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[r+40>>2]=0}c[q+16>>2]=a;m=a+24|0;h=c[m>>2]|0;g=c[h>>2]|0;c[q>>2]=g;f=c[h+4>>2]|0;n=q+4|0;c[n>>2]=f;o=r+12|0;i=c[o>>2]|0;p=r+16|0;j=c[p>>2]|0;l=1<>2];k=a+368|0;do if((c[k>>2]|0)>0){h=q+8|0;a=q+12|0;g=0;f=j;while(1){if((f|0)<1){if(!(Ou(q,i,f,1)|0)){f=0;a=19;break}f=c[a>>2]|0;i=c[h>>2]|0}f=f+-1|0;if(1<>2]|0;b[j>>1]=l|(e[j>>1]|0)}g=g+1|0;if((g|0)>=(c[k>>2]|0)){a=17;break}}if((a|0)==17){j=f;h=c[m>>2]|0;g=c[q>>2]|0;f=c[n>>2]|0;break}else if((a|0)==19){zb=s;return f|0}}while(0);c[h>>2]=g;c[h+4>>2]=f;c[o>>2]=i;c[p>>2]=j;r=r+44|0;c[r>>2]=(c[r>>2]|0)+-1;r=1;zb=s;return r|0}function Ku(a,e){a=a|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=zb;zb=zb+288|0;E=G+256|0;D=G;F=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=F+44|0,(c[i>>2]|0)==0):0){z=F+16|0;A=c[a+464>>2]|0;y=A+24|0;c[y>>2]=(c[y>>2]|0)+((c[z>>2]|0)/8|0);c[z>>2]=0;if(!(Gb[c[A+8>>2]&127](a)|0)){F=0;zb=G;return F|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[F+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[F+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[F+40>>2]=0}do if(!(c[F+40>>2]|0)){q=c[a+416>>2]|0;s=c[a+424>>2]|0;r=1<>2]|0;c[E+16>>2]=a;w=a+24|0;y=c[w>>2]|0;c[E>>2]=c[y>>2];x=E+4|0;c[x>>2]=c[y+4>>2];y=F+12|0;j=c[y>>2]|0;z=F+16|0;g=c[z>>2]|0;A=F+20|0;h=c[A>>2]|0;u=c[e>>2]|0;l=c[F+64>>2]|0;i=c[a+412>>2]|0;o=E+8|0;p=E+12|0;a:do if(!h){f=0;b:while(1){if((g|0)<8){if(!(Ou(E,j,g,0)|0))break a;j=c[o>>2]|0;g=c[p>>2]|0;if((g|0)<8){h=1;v=17}else v=15}else v=15;if((v|0)==15){v=0;h=j>>g+-8&255;e=c[l+144+(h<<2)>>2]|0;if(!e){h=9;v=17}else{h=d[l+1168+h>>0]|0;g=g-e|0}}if((v|0)==17){v=0;g=Pu(E,j,g,l,h)|0;if((g|0)<0)break a;h=g;g=c[p>>2]|0;j=c[o>>2]|0}e=h>>>4;switch(h&15){case 0:{if((e|0)==15)k=0;else break b;break}case 1:{v=21;break}default:{v=c[a>>2]|0;c[v+20>>2]=121;Ub[c[v+4>>2]&63](a,-1);v=21}}if((v|0)==21){v=0;if((g|0)<1){if(!(Ou(E,j,g,1)|0))break a;g=c[p>>2]|0;j=c[o>>2]|0}g=g+-1|0;k=(1<>2]<<1)|0;do if(!(b[e>>1]|0))if((h|0)<1)break c;else h=h+-1|0;else{if((g|0)<1){if(!(Ou(E,j,g,1)|0))break a;g=c[p>>2]|0;j=c[o>>2]|0}g=g+-1|0;if((1<>1]|0,n=m<<16>>16,(r&n|0)==0):0)if(m<<16>>16>-1){b[e>>1]=r+n;break}else{b[e>>1]=s+n;break}}while(0);e=i+1|0;if((i|0)<(q|0))i=e;else{i=e;break}}if(k){e=c[t+(i<<2)>>2]|0;b[u+(e<<1)>>1]=k;c[D+(f<<2)>>2]=e;f=f+1|0}if((i|0)<(q|0))i=i+1|0;else{h=0;f=j;v=58;break a}}h=1<>2]|0;j=c[o>>2]|0}g=g-e|0;h=(j>>g&c[5184+(e<<2)>>2])+h|0;if(!h){h=0;f=j;v=58}else v=46}else{h=1;v=46}}else{f=0;v=46}while(0);d:do if((v|0)==46){while(1){e=u+(c[t+(i<<2)>>2]<<1)|0;do if(b[e>>1]|0){if((g|0)<1){if(!(Ou(E,j,g,1)|0))break d;g=c[p>>2]|0;j=c[o>>2]|0}g=g+-1|0;if((1<>1]|0,C=B<<16>>16,(r&C|0)==0):0)if(B<<16>>16>-1){b[e>>1]=r+C;break}else{b[e>>1]=s+C;break}}while(0);if((i|0)<(q|0))i=i+1|0;else break}h=h+-1|0;f=j;v=58}while(0);if((v|0)==58){D=c[w>>2]|0;c[D>>2]=c[E>>2];c[D+4>>2]=c[x>>2];c[y>>2]=f;c[z>>2]=g;c[A>>2]=h;break}if(!f){F=0;zb=G;return F|0}do{f=f+-1|0;b[u+(c[D+(f<<2)>>2]<<1)>>1]=0}while((f|0)!=0);f=0;zb=G;return f|0}while(0);F=F+44|0;c[F>>2]=(c[F>>2]|0)+-1;F=1;zb=G;return F|0}function Lu(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;q=zb;zb=zb+1312|0;k=q+1040|0;p=q;if(f>>>0>3){o=c[b>>2]|0;c[o+20>>2]=52;c[o+24>>2]=f;Sb[c[c[b>>2]>>2]&255](b)}n=(e|0)!=0;o=c[(n?b+180+(f<<2)|0:b+196+(f<<2)|0)>>2]|0;if(!o){m=c[b>>2]|0;c[m+20>>2]=52;c[m+24>>2]=f;Sb[c[c[b>>2]>>2]&255](b)}e=c[g>>2]|0;if(!e){l=Jb[c[c[b+4>>2]>>2]&63](b,1,1424)|0;c[g>>2]=l;m=b}else{m=b;l=e}c[l+140>>2]=o;j=a[o+1>>0]|0;e=j&255;if(!(j<<24>>24))e=0;else aP(k|0,1,e|0)|0;f=a[o+2>>0]|0;g=f&255;h=e+g|0;if(h>>>0>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,2,g|0)|0;e=h}f=a[o+3>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,3,g|0)|0;e=h}f=a[o+4>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,4,g|0)|0;e=h}f=a[o+5>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,5,g|0)|0;e=h}f=a[o+6>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,6,g|0)|0;e=h}f=a[o+7>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,7,g|0)|0;e=h}f=a[o+8>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,8,g|0)|0;e=h}f=a[o+9>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,9,g|0)|0;e=h}f=a[o+10>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,10,g|0)|0;e=h}f=a[o+11>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,11,g|0)|0;e=h}f=a[o+12>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,12,g|0)|0;e=h}f=a[o+13>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,13,g|0)|0;e=h}f=a[o+14>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,14,g|0)|0;e=h}f=a[o+15>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(f<<24>>24){aP(k+e|0,15,g|0)|0;e=h}f=a[o+16>>0]|0;g=f&255;h=e+g|0;if((h|0)>256){j=c[b>>2]|0;c[j+20>>2]=9;Sb[c[j>>2]&255](m)}if(!(f<<24>>24))h=e;else aP(k+e|0,16,g|0)|0;a[k+h>>0]=0;f=a[k>>0]|0;if(f<<24>>24){g=0;j=f<<24>>24;e=0;while(1){if((j|0)==(f<<24>>24|0)){f=g;while(1){i=e+1|0;c[p+(e<<2)>>2]=f;e=f+1|0;f=a[k+i>>0]|0;if((j|0)==(f<<24>>24|0)){f=e;e=i}else{g=e;e=i;break}}}if((g|0)>=(1<>2]|0;c[i+20>>2]=9;Sb[c[i>>2]&255](m)}if(!(f<<24>>24))break;else{g=g<<1;j=j+1|0}}}e=o+1|0;if(!(a[e>>0]|0)){f=0;e=-1}else{c[l+76>>2]=0-(c[p>>2]|0);e=d[e>>0]|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+4>>2]=e;e=o+2|0;if(!(a[e>>0]|0))e=-1;else{c[l+80>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+8>>2]=e;e=o+3|0;if(!(a[e>>0]|0))e=-1;else{c[l+84>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+12>>2]=e;e=o+4|0;if(!(a[e>>0]|0))e=-1;else{c[l+88>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+16>>2]=e;e=o+5|0;if(!(a[e>>0]|0))e=-1;else{c[l+92>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+20>>2]=e;e=o+6|0;if(!(a[e>>0]|0))e=-1;else{c[l+96>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+24>>2]=e;e=o+7|0;if(!(a[e>>0]|0))e=-1;else{c[l+100>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+28>>2]=e;e=o+8|0;if(!(a[e>>0]|0))e=-1;else{c[l+104>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+32>>2]=e;e=o+9|0;if(!(a[e>>0]|0))e=-1;else{c[l+108>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+36>>2]=e;e=o+10|0;if(!(a[e>>0]|0))e=-1;else{c[l+112>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+40>>2]=e;e=o+11|0;if(!(a[e>>0]|0))e=-1;else{c[l+116>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+44>>2]=e;e=o+12|0;if(!(a[e>>0]|0))e=-1;else{c[l+120>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+48>>2]=e;e=o+13|0;if(!(a[e>>0]|0))e=-1;else{c[l+124>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+52>>2]=e;e=o+14|0;if(!(a[e>>0]|0))e=-1;else{c[l+128>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+56>>2]=e;e=o+15|0;if(!(a[e>>0]|0))e=-1;else{c[l+132>>2]=f-(c[p+(f<<2)>>2]|0);e=f+(d[e>>0]|0)|0;f=e;e=c[p+(e+-1<<2)>>2]|0}c[l+60>>2]=e;e=o+16|0;if(!(a[e>>0]|0))e=-1;else{c[l+136>>2]=f-(c[p+(f<<2)>>2]|0);e=c[p+(f+(d[e>>0]|0)+-1<<2)>>2]|0}c[l+64>>2]=e;c[l+68>>2]=1048575;aP(l+144|0,0,1024)|0;k=o+1|0;if(!(a[k>>0]|0))e=0;else{j=1;e=0;while(1){i=o+17+e|0;f=128;g=c[p+(e<<2)>>2]<<7;while(1){c[l+144+(g<<2)>>2]=1;a[l+1168+g>>0]=a[i>>0]|0;if((f|0)>1){f=f+-1|0;g=g+1|0}else break}e=e+1|0;if(j>>>0<(d[k>>0]|0)>>>0)j=j+1|0;else break}}k=o+2|0;if(a[k>>0]|0){j=1;while(1){i=o+17+e|0;f=64;g=c[p+(e<<2)>>2]<<6;while(1){c[l+144+(g<<2)>>2]=2;a[l+1168+g>>0]=a[i>>0]|0;if((f|0)>1){f=f+-1|0;g=g+1|0}else break}e=e+1|0;if(j>>>0<(d[k>>0]|0)>>>0)j=j+1|0;else break}}g=o+3|0;if(a[g>>0]|0){f=1;while(1){k=c[p+(e<<2)>>2]<<5;j=o+17+e|0;c[l+144+(k<<2)>>2]=3;a[l+1168+k>>0]=a[j>>0]|0;i=k|1;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;i=i+1|0;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;i=k|3;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;r=i+1|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+2|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;i=i+3|0;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;i=k|7;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;r=i+1|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+2|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+3|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+4|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+5|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+6|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;i=i+7|0;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;i=k|15;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;r=i+1|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+2|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+3|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+4|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+5|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+6|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+7|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+8|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+9|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+10|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+11|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+12|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+13|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;r=i+14|0;c[l+144+(r<<2)>>2]=3;a[l+1168+r>>0]=a[j>>0]|0;i=i+15|0;c[l+144+(i<<2)>>2]=3;a[l+1168+i>>0]=a[j>>0]|0;k=k|31;c[l+144+(k<<2)>>2]=3;a[l+1168+k>>0]=a[j>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+4|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]<<4;k=o+17+e|0;c[l+144+(r<<2)>>2]=4;a[l+1168+r>>0]=a[k>>0]|0;j=r|1;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;j=j+1|0;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;j=r|3;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;i=j+1|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+2|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;j=j+3|0;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;j=r|7;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;i=j+1|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+2|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+3|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+4|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+5|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;i=j+6|0;c[l+144+(i<<2)>>2]=4;a[l+1168+i>>0]=a[k>>0]|0;j=j+7|0;c[l+144+(j<<2)>>2]=4;a[l+1168+j>>0]=a[k>>0]|0;r=r|15;c[l+144+(r<<2)>>2]=4;a[l+1168+r>>0]=a[k>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+5|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]<<3;k=o+17+e|0;c[l+144+(r<<2)>>2]=5;a[l+1168+r>>0]=a[k>>0]|0;j=r|1;c[l+144+(j<<2)>>2]=5;a[l+1168+j>>0]=a[k>>0]|0;j=j+1|0;c[l+144+(j<<2)>>2]=5;a[l+1168+j>>0]=a[k>>0]|0;j=r|3;c[l+144+(j<<2)>>2]=5;a[l+1168+j>>0]=a[k>>0]|0;i=j+1|0;c[l+144+(i<<2)>>2]=5;a[l+1168+i>>0]=a[k>>0]|0;i=j+2|0;c[l+144+(i<<2)>>2]=5;a[l+1168+i>>0]=a[k>>0]|0;j=j+3|0;c[l+144+(j<<2)>>2]=5;a[l+1168+j>>0]=a[k>>0]|0;r=r|7;c[l+144+(r<<2)>>2]=5;a[l+1168+r>>0]=a[k>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+6|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]<<2;k=o+17+e|0;c[l+144+(r<<2)>>2]=6;a[l+1168+r>>0]=a[k>>0]|0;j=r|1;c[l+144+(j<<2)>>2]=6;a[l+1168+j>>0]=a[k>>0]|0;j=j+1|0;c[l+144+(j<<2)>>2]=6;a[l+1168+j>>0]=a[k>>0]|0;r=r|3;c[l+144+(r<<2)>>2]=6;a[l+1168+r>>0]=a[k>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+7|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]<<1;k=o+17+e|0;c[l+144+(r<<2)>>2]=7;a[l+1168+r>>0]=a[k>>0]|0;r=r|1;c[l+144+(r<<2)>>2]=7;a[l+1168+r>>0]=a[k>>0]|0;e=e+1|0;if(f>>>0<(d[g>>0]|0)>>>0)f=f+1|0;else break}}g=o+8|0;if(a[g>>0]|0){f=1;while(1){r=c[p+(e<<2)>>2]|0;c[l+144+(r<<2)>>2]=8;a[l+1168+r>>0]=a[o+17+e>>0]|0;if(f>>>0<(d[g>>0]|0)>>>0){f=f+1|0;e=e+1|0}else break}}if(!(n&(h|0)>0)){zb=q;return}e=0;do{if((d[o+17+e>>0]|0)>15){r=c[b>>2]|0;c[r+20>>2]=9;Sb[c[r>>2]&255](m)}e=e+1|0}while((e|0)!=(h|0));zb=q;return}function Mu(a,e){a=a|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;A=zb;zb=zb+48|0;x=A+20|0;y=A;z=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=z+44|0,(c[i>>2]|0)==0):0){v=z+16|0;w=c[a+464>>2]|0;u=w+24|0;c[u>>2]=(c[u>>2]|0)+((c[v>>2]|0)/8|0);c[v>>2]=0;if(!(Gb[c[w+8>>2]&127](a)|0)){z=0;zb=A;return z|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[z+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[z+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[z+40>>2]=0}if(!(c[z+40>>2]|0)){c[x+16>>2]=a;s=a+24|0;h=c[s>>2]|0;g=c[h>>2]|0;c[x>>2]=g;f=c[h+4>>2]|0;t=x+4|0;c[t>>2]=f;u=z+12|0;j=c[u>>2]|0;v=z+16|0;i=c[v>>2]|0;w=z+20|0;c[y>>2]=c[w>>2];c[y+4>>2]=c[w+4>>2];c[y+8>>2]=c[w+8>>2];c[y+12>>2]=c[w+12>>2];c[y+16>>2]=c[w+16>>2];r=a+368|0;do if((c[r>>2]|0)>0){p=x+8|0;q=x+12|0;o=0;a:while(1){l=c[e+(o<<2)>>2]|0;h=c[z+100+(o<<2)>>2]|0;if((i|0)<8){if(!(Ou(x,j,i,0)|0)){f=0;m=67;break}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){f=1;m=17}else m=15}else m=15;if((m|0)==15){m=0;f=j>>i+-8&255;g=c[h+144+(f<<2)>>2]|0;if(!g){f=9;m=17}else{f=d[h+1168+f>>0]|0;i=i-g|0}}if((m|0)==17){f=Pu(x,j,i,h,f)|0;if((f|0)<0){f=0;m=67;break}j=c[p>>2]|0;i=c[q>>2]|0}n=c[z+140+(o<<2)>>2]|0;k=c[z+180+(o<<2)>>2]|0;g=(f|0)!=0;b:do if(!k)if(g){if((i|0)<(f|0)){if(!(Ou(x,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;f=1;m=48}else{f=1;m=48}else{if(g){if((i|0)<(f|0)){if(!(Ou(x,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;m=c[5184+(f<<2)>>2]|0;h=j>>i&m;f=h-((h|0)>(c[5184+(f+-1<<2)>>2]|0)?0:m)|0}else f=0;h=y+4+(c[a+372+(o<<2)>>2]<<2)|0;m=(c[h>>2]|0)+f|0;c[h>>2]=m;b[l>>1]=m;if((k|0)>1){f=1;do{if((i|0)<8){if(!(Ou(x,j,i,0)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){g=1;m=32}else m=30}else m=30;if((m|0)==30){m=0;h=j>>i+-8&255;g=c[n+144+(h<<2)>>2]|0;if(!g){g=9;m=32}else{i=i-g|0;g=d[n+1168+h>>0]|0}}if((m|0)==32){m=0;g=Pu(x,j,i,n,g)|0;if((g|0)<0){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}h=g>>>4;g=g&15;if(!g){if((h|0)!=15)break b;g=f+15|0}else{f=h+f|0;if((i|0)<(g|0)){if(!(Ou(x,j,i,g)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-g|0;h=c[5184+(g<<2)>>2]|0;B=j>>i&h;b[l+(c[2064+(f<<2)>>2]<<1)>>1]=B-((B|0)>(c[5184+(g+-1<<2)>>2]|0)?0:h);g=f}f=g+1|0}while((f|0)<(k|0));if((g|0)<63)m=48}else{f=1;m=48}}while(0);c:do if((m|0)==48){h=f;do{if((i|0)<8){if(!(Ou(x,j,i,0)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){f=1;m=54}else m=52}else m=52;if((m|0)==52){m=0;f=j>>i+-8&255;g=c[n+144+(f<<2)>>2]|0;if(!g){f=9;m=54}else{f=d[n+1168+f>>0]|0;i=i-g|0}}if((m|0)==54){f=Pu(x,j,i,n,f)|0;if((f|0)<0){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}g=f>>>4;f=f&15;if(!f)if((g|0)==15)f=15;else break c;else{if((i|0)<(f|0)){if(!(Ou(x,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;f=g}h=h+1+f|0}while((h|0)<64)}while(0);o=o+1|0;if((o|0)>=(c[r>>2]|0)){m=64;break}}if((m|0)==64){h=c[s>>2]|0;g=c[x>>2]|0;f=c[t>>2]|0;break}else if((m|0)==67){zb=A;return f|0}}while(0);c[h>>2]=g;c[h+4>>2]=f;c[u>>2]=j;c[v>>2]=i;c[w>>2]=c[y>>2];c[w+4>>2]=c[y+4>>2];c[w+8>>2]=c[y+8>>2];c[w+12>>2]=c[y+12>>2];c[w+16>>2]=c[y+16>>2]}B=z+44|0;c[B>>2]=(c[B>>2]|0)+-1;B=1;zb=A;return B|0}function Nu(a,e){a=a|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;C=zb;zb=zb+48|0;z=C+20|0;A=C;B=c[a+468>>2]|0;h=a+280|0;if(c[h>>2]|0?(i=B+44|0,(c[i>>2]|0)==0):0){x=B+16|0;y=c[a+464>>2]|0;w=y+24|0;c[w>>2]=(c[w>>2]|0)+((c[x>>2]|0)/8|0);c[x>>2]=0;if(!(Gb[c[y+8>>2]&127](a)|0)){B=0;zb=C;return B|0}g=a+340|0;if((c[g>>2]|0)>0){f=0;do{c[B+24+(f<<2)>>2]=0;f=f+1|0}while((f|0)<(c[g>>2]|0))}c[B+20>>2]=0;c[i>>2]=c[h>>2];if(!(c[a+440>>2]|0))c[B+40>>2]=0}if(!(c[B+40>>2]|0)){r=c[a+432>>2]|0;s=c[a+436>>2]|0;c[z+16>>2]=a;u=a+24|0;h=c[u>>2]|0;g=c[h>>2]|0;c[z>>2]=g;f=c[h+4>>2]|0;v=z+4|0;c[v>>2]=f;w=B+12|0;j=c[w>>2]|0;x=B+16|0;i=c[x>>2]|0;y=B+20|0;c[A>>2]=c[y>>2];c[A+4>>2]=c[y+4>>2];c[A+8>>2]=c[y+8>>2];c[A+12>>2]=c[y+12>>2];c[A+16>>2]=c[y+16>>2];t=a+368|0;do if((c[t>>2]|0)>0){p=z+8|0;q=z+12|0;o=0;a:while(1){l=c[e+(o<<2)>>2]|0;h=c[B+100+(o<<2)>>2]|0;if((i|0)<8){if(!(Ou(z,j,i,0)|0)){f=0;m=67;break}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){f=1;m=17}else m=15}else m=15;if((m|0)==15){m=0;f=j>>i+-8&255;g=c[h+144+(f<<2)>>2]|0;if(!g){f=9;m=17}else{f=d[h+1168+f>>0]|0;i=i-g|0}}if((m|0)==17){f=Pu(z,j,i,h,f)|0;if((f|0)<0){f=0;m=67;break}j=c[p>>2]|0;i=c[q>>2]|0}n=c[B+140+(o<<2)>>2]|0;k=c[B+180+(o<<2)>>2]|0;g=(f|0)!=0;b:do if(!k)if(g){if((i|0)<(f|0)){if(!(Ou(z,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;f=1;m=47}else{f=1;m=47}else{if(g){if((i|0)<(f|0)){if(!(Ou(z,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;m=c[5184+(f<<2)>>2]|0;h=j>>i&m;f=h-((h|0)>(c[5184+(f+-1<<2)>>2]|0)?0:m)|0}else f=0;h=A+4+(c[a+372+(o<<2)>>2]<<2)|0;m=(c[h>>2]|0)+f|0;c[h>>2]=m;b[l>>1]=m;if((k|0)>1){f=1;while(1){if((i|0)<8){if(!(Ou(z,j,i,0)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){g=1;m=32}else m=30}else m=30;if((m|0)==30){m=0;h=j>>i+-8&255;g=c[n+144+(h<<2)>>2]|0;if(!g){g=9;m=32}else{i=i-g|0;g=d[n+1168+h>>0]|0}}if((m|0)==32){m=0;g=Pu(z,j,i,n,g)|0;if((g|0)<0){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}h=g>>>4;g=g&15;if(!g){if((h|0)!=15)break b;f=f+15|0}else{f=h+f|0;if((i|0)<(g|0)){if(!(Ou(z,j,i,g)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-g|0;m=c[5184+(g<<2)>>2]|0;h=j>>i&m;b[l+(c[r+(f<<2)>>2]<<1)>>1]=h-((h|0)>(c[5184+(g+-1<<2)>>2]|0)?0:m)}f=f+1|0;if((f|0)>=(k|0)){m=47;break}}}else{f=1;m=47}}while(0);c:do if((m|0)==47)if((f|0)<=(s|0)){h=f;do{if((i|0)<8){if(!(Ou(z,j,i,0)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0;if((i|0)<8){f=1;m=54}else m=52}else m=52;if((m|0)==52){m=0;f=j>>i+-8&255;g=c[n+144+(f<<2)>>2]|0;if(!g){f=9;m=54}else{f=d[n+1168+f>>0]|0;i=i-g|0}}if((m|0)==54){f=Pu(z,j,i,n,f)|0;if((f|0)<0){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}g=f>>>4;f=f&15;if(!f)if((g|0)==15)f=15;else break c;else{if((i|0)<(f|0)){if(!(Ou(z,j,i,f)|0)){f=0;m=67;break a}j=c[p>>2]|0;i=c[q>>2]|0}i=i-f|0;f=g}h=h+1+f|0}while((h|0)<=(s|0))}while(0);o=o+1|0;if((o|0)>=(c[t>>2]|0)){m=64;break}}if((m|0)==64){h=c[u>>2]|0;g=c[z>>2]|0;f=c[v>>2]|0;break}else if((m|0)==67){zb=C;return f|0}}while(0);c[h>>2]=g;c[h+4>>2]=f;c[w>>2]=j;c[x>>2]=i;c[y>>2]=c[A>>2];c[y+4>>2]=c[A+4>>2];c[y+8>>2]=c[A+8>>2];c[y+12>>2]=c[A+12>>2];c[y+16>>2]=c[A+16>>2]}B=B+44|0;c[B>>2]=(c[B>>2]|0)+-1;B=1;zb=C;return B|0}function Ou(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;g=c[b>>2]|0;n=b+4|0;h=c[n>>2]|0;m=c[b+16>>2]|0;l=m+440|0;a:do if(!(c[l>>2]|0)){if((e|0)<25){k=m+24|0;j=e;b:while(1){if(!h){if(!(Gb[c[(c[k>>2]|0)+12>>2]&127](m)|0)){g=0;o=20;break}g=c[k>>2]|0;h=c[g+4>>2]|0;g=c[g>>2]|0}h=h+-1|0;i=g+1|0;e=a[g>>0]|0;g=e&255;c:do if(e<<24>>24==-1){g=i;while(1){if(!h){if(!(Gb[c[(c[k>>2]|0)+12>>2]&127](m)|0)){g=0;o=20;break b}e=c[k>>2]|0;h=c[e+4>>2]|0;e=c[e>>2]|0}else e=g;h=h+-1|0;g=e+1|0;e=a[e>>0]|0;switch(e<<24>>24){case 0:{e=255;break c}case -1:break;default:{o=13;break b}}}}else{e=g;g=i}while(0);d=e|d<<8;e=j+8|0;if((j|0)<17)j=e;else break a}if((o|0)==13){c[l>>2]=e&255;e=j;i=h;o=15;break}else if((o|0)==20)return g|0}}else{i=h;o=15}while(0);if((o|0)==15)if((e|0)<(f|0)){h=m+468|0;if(!(c[(c[h>>2]|0)+40>>2]|0)){o=c[m>>2]|0;c[o+20>>2]=120;Ub[c[o+4>>2]&63](m,-1);c[(c[h>>2]|0)+40>>2]=1}d=d<<25-e;e=25;h=i}else h=i;c[b>>2]=g;c[n>>2]=h;c[b+8>>2]=d;c[b+12>>2]=e;o=1;return o|0}function Pu(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;do if((e|0)<(g|0))if(!(Ou(a,b,e,g)|0)){f=-1;return f|0}else{b=c[a+8>>2]|0;e=c[a+12>>2]|0;break}while(0);e=e-g|0;h=b>>e&c[5184+(g<<2)>>2];i=a+8|0;j=a+12|0;a:do if((h|0)>(c[f+(g<<2)>>2]|0)){while(1){h=h<<1;if((e|0)<1){if(!(Ou(a,b,e,1)|0)){e=-1;break}b=c[i>>2]|0;e=c[j>>2]|0}e=e+-1|0;h=b>>>e&1|h;g=g+1|0;if((h|0)<=(c[f+(g<<2)>>2]|0))break a}return e|0}while(0);c[i>>2]=b;c[j>>2]=e;if((g|0)>16){f=c[a+16>>2]|0;a=c[f>>2]|0;c[a+20>>2]=121;Ub[c[a+4>>2]&63](f,-1);f=0;return f|0}else{f=d[(c[f+72+(g<<2)>>2]|0)+h+((c[f+140>>2]|0)+17)>>0]|0;return f|0}return 0}function Qu(b){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=c[b+468>>2]|0;p=b+224|0;q=b+412|0;f=c[q>>2]|0;e=(f|0)==0;do if(c[p>>2]|0){m=b+416|0;d=c[m>>2]|0;if(e)if(!d)n=7;else n=11;else if(((d|0)>=(f|0)?(d|0)<=(c[b+436>>2]|0):0)?(c[b+340>>2]|0)==1:0)n=7;else n=11;do if((n|0)==7){d=c[b+420>>2]|0;if(d){d=d+-1|0;if((d|0)!=(c[b+424>>2]|0)){n=11;break}}else d=c[b+424>>2]|0;if((d|0)>13)n=11}while(0);if((n|0)==11){l=c[b>>2]|0;c[l+20>>2]=17;c[l+24>>2]=f;c[(c[b>>2]|0)+28>>2]=c[m>>2];c[(c[b>>2]|0)+32>>2]=c[b+420>>2];c[(c[b>>2]|0)+36>>2]=c[b+424>>2];Sb[c[c[b>>2]>>2]&255](b)}l=b+340|0;d=c[l>>2]|0;if((d|0)>0){j=b+160|0;g=b+420|0;k=b+424|0;i=0;do{f=c[(c[b+344+(i<<2)>>2]|0)+4>>2]|0;h=c[j>>2]|0;d=c[q>>2]|0;if(d){if((c[h+(f<<8)>>2]|0)<0){d=c[b>>2]|0;c[d+20>>2]=118;c[d+24>>2]=f;c[(c[b>>2]|0)+28>>2]=0;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1);d=c[q>>2]|0}}else d=0;if((d|0)<=(c[m>>2]|0))while(1){e=h+(f<<8)+(d<<2)|0;r=c[e>>2]|0;if((c[g>>2]|0)!=(((r|0)>0?r:0)|0)){r=c[b>>2]|0;c[r+20>>2]=118;c[r+24>>2]=f;c[(c[b>>2]|0)+28>>2]=d;Ub[c[(c[b>>2]|0)+4>>2]&63](b,-1)}c[e>>2]=c[k>>2];if((d|0)<(c[m>>2]|0))d=d+1|0;else break}i=i+1|0;d=c[l>>2]|0}while((i|0)<(d|0))}else g=b+420|0;e=(c[q>>2]|0)==0;f=o+4|0;if(!(c[g>>2]|0))if(e){c[f>>2]=43;k=l;break}else{c[f>>2]=44;k=l;break}else if(e){c[f>>2]=45;k=l;break}else{c[f>>2]=46;k=l;break}}else{if((e?(c[b+420>>2]|0)==0:0)?(c[b+424>>2]|0)==0:0){r=c[b+416>>2]|0;if((r|0)<64?(r|0)!=(c[b+436>>2]|0):0)n=36}else n=36;if((n|0)==36){r=c[b>>2]|0;c[r+20>>2]=125;Ub[c[r+4>>2]&63](b,-1)}c[o+4>>2]=47;d=b+340|0;k=d;d=c[d>>2]|0}while(0);if((d|0)<=0){q=o+12|0;c[q>>2]=0;q=o+16|0;c[q>>2]=0;q=o+20|0;c[q>>2]=-16;q=b+280|0;q=c[q>>2]|0;r=o+56|0;c[r>>2]=q;return}h=b+436|0;i=b+420|0;j=b+4|0;g=0;do{f=c[b+344+(g<<2)>>2]|0;if(c[p>>2]|0)if(!(c[q>>2]|0)){if(!(c[i>>2]|0))n=43}else n=50;else n=43;do if((n|0)==43){n=0;d=c[f+20>>2]|0;if(d>>>0>15){r=c[b>>2]|0;c[r+20>>2]=50;c[r+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b)}e=o+60+(d<<2)|0;d=c[e>>2]|0;if(!d){d=Jb[c[c[j>>2]>>2]&63](b,1,64)|0;c[e>>2]=d}e=d+64|0;do{a[d>>0]=0;d=d+1|0}while((d|0)<(e|0));c[o+24+(g<<2)>>2]=0;c[o+40+(g<<2)>>2]=0;if(!(c[p>>2]|0))if(!(c[h>>2]|0))break;else{n=50;break}else if(!(c[q>>2]|0))break;else{n=50;break}}while(0);if((n|0)==50){n=0;d=c[f+24>>2]|0;if(d>>>0>15){r=c[b>>2]|0;c[r+20>>2]=50;c[r+24>>2]=d;Sb[c[c[b>>2]>>2]&255](b)}e=o+124+(d<<2)|0;d=c[e>>2]|0;if(!d){d=Jb[c[c[j>>2]>>2]&63](b,1,256)|0;c[e>>2]=d}aP(d|0,0,256)|0}g=g+1|0}while((g|0)<(c[k>>2]|0));q=o+12|0;c[q>>2]=0;q=o+16|0;c[q>>2]=0;q=o+20|0;c[q>>2]=-16;q=b+280|0;q=c[q>>2]|0;r=o+56|0;c[r>>2]=q;return}function Ru(a){a=a|0;return}function Su(e,f){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;s=c[e+468>>2]|0;p=e+280|0;if(c[p>>2]|0){q=s+56|0;g=c[q>>2]|0;if(!g){if(!(Gb[c[(c[e+464>>2]|0)+8>>2]&127](e)|0)){r=c[e>>2]|0;c[r+20>>2]=25;Sb[c[r>>2]&255](e)}h=e+340|0;if((c[h>>2]|0)>0){i=e+224|0;j=e+412|0;k=e+436|0;l=e+420|0;g=0;do{m=c[e+344+(g<<2)>>2]|0;if(c[i>>2]|0)if(!(c[j>>2]|0)){if(!(c[l>>2]|0))t=10}else t=13;else t=10;do if((t|0)==10){t=0;n=c[s+60+(c[m+20>>2]<<2)>>2]|0;o=n+64|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));c[s+24+(g<<2)>>2]=0;c[s+40+(g<<2)>>2]=0;if(!(c[i>>2]|0))if(!(c[k>>2]|0))break;else{t=13;break}else if(!(c[j>>2]|0))break;else{t=13;break}}while(0);if((t|0)==13){t=0;aP(c[s+124+(c[m+24>>2]<<2)>>2]|0,0,256)|0}g=g+1|0}while((g|0)<(c[h>>2]|0))}c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=-16;g=c[p>>2]|0;c[q>>2]=g}c[q>>2]=g+-1}o=s+20|0;if((c[o>>2]|0)==-1)return 1;p=e+368|0;if((c[p>>2]|0)<=0)return 1;q=e+424|0;n=0;a:while(1){r=c[f+(n<<2)>>2]|0;l=c[e+372+(n<<2)>>2]|0;j=c[(c[e+344+(l<<2)>>2]|0)+20>>2]|0;h=s+60+(j<<2)|0;k=s+40+(l<<2)|0;g=(c[h>>2]|0)+(c[k>>2]|0)|0;if(!(Xu(e,g)|0)){c[k>>2]=0;g=c[s+24+(l<<2)>>2]|0}else{m=Xu(e,g+1|0)|0;i=g+2+m|0;g=Xu(e,i)|0;if(g){h=(c[h>>2]|0)+20|0;if(!(Xu(e,h)|0))i=h;else while(1){g=g<<1;if((g|0)==32768)break a;h=h+1|0;if(!(Xu(e,h)|0)){i=h;break}}}else g=0;do if((g|0)>=(1<<(d[e+232+j>>0]|0)>>1|0)){h=m<<2;if((g|0)>(1<<(d[e+248+j>>0]|0)>>1|0)){h=h+12|0;break}else{h=h+4|0;break}}else h=0;while(0);c[k>>2]=h;i=i+14|0;h=g>>1;if(h)do{k=(Xu(e,i)|0)==0;g=(k?0:h)|g;h=h>>1}while((h|0)!=0);l=s+24+(l<<2)|0;g=(c[l>>2]|0)+((m|0)==0?g+1|0:~g)|0;c[l>>2]=g}b[r>>1]=g<>2];n=n+1|0;if((n|0)>=(c[p>>2]|0)){t=37;break}}if((t|0)==37)return 1;t=c[e>>2]|0;c[t+20>>2]=117;Ub[c[t+4>>2]&63](e,-1);c[o>>2]=-1;return 1}function Tu(e,f){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;s=c[e+468>>2]|0;p=e+280|0;if(c[p>>2]|0){q=s+56|0;g=c[q>>2]|0;if(!g){if(!(Gb[c[(c[e+464>>2]|0)+8>>2]&127](e)|0)){t=c[e>>2]|0;c[t+20>>2]=25;Sb[c[t>>2]&255](e)}h=e+340|0;if((c[h>>2]|0)>0){i=e+224|0;j=e+412|0;k=e+436|0;l=e+420|0;g=0;do{m=c[e+344+(g<<2)>>2]|0;if(c[i>>2]|0)if(!(c[j>>2]|0)){if(!(c[l>>2]|0))r=10}else r=13;else r=10;do if((r|0)==10){r=0;n=c[s+60+(c[m+20>>2]<<2)>>2]|0;o=n+64|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));c[s+24+(g<<2)>>2]=0;c[s+40+(g<<2)>>2]=0;if(!(c[i>>2]|0))if(!(c[k>>2]|0))break;else{r=13;break}else if(!(c[j>>2]|0))break;else{r=13;break}}while(0);if((r|0)==13){r=0;aP(c[s+124+(c[m+24>>2]<<2)>>2]|0,0,256)|0}g=g+1|0}while((g|0)<(c[h>>2]|0))}c[s+12>>2]=0;c[s+16>>2]=0;c[s+20>>2]=-16;g=c[p>>2]|0;c[q>>2]=g}c[q>>2]=g+-1}t=s+20|0;if((c[t>>2]|0)==-1)return 1;r=c[e+432>>2]|0;p=c[f>>2]|0;o=c[(c[e+344>>2]|0)+24>>2]|0;q=s+124+(o<<2)|0;l=s+188|0;m=e+416|0;n=e+424|0;o=e+264+o|0;h=(c[e+412>>2]|0)+-1|0;a:while(1){g=(c[q>>2]|0)+(h*3|0)|0;if(Xu(e,g)|0){r=36;break}j=h+1|0;if(!(Xu(e,g+1|0)|0)){i=g;h=j;while(1){if((h|0)>=(c[m>>2]|0)){r=23;break a}g=i+3|0;j=h+1|0;if(!(Xu(e,i+4|0)|0)){i=g;h=j}else break}}k=Xu(e,l)|0;i=g+2|0;g=Xu(e,i)|0;if(g){if(Xu(e,i)|0){g=g<<1;h=(c[q>>2]|0)+((h|0)<(d[o>>0]|0|0)?189:217)|0;if(Xu(e,h)|0)do{g=g<<1;if((g|0)==32768){r=30;break a}h=h+1|0}while((Xu(e,h)|0)!=0)}else h=i;i=h+14|0;h=g>>1;if(h)do{s=(Xu(e,i)|0)==0;g=(s?0:h)|g;h=h>>1}while((h|0)!=0)}else g=0;b[p+(c[r+(j<<2)>>2]<<1)>>1]=((k|0)==0?g+1|0:~g)<>2];if((j|0)<(c[m>>2]|0))h=j;else{r=36;break}}if((r|0)==23){s=c[e>>2]|0;c[s+20>>2]=117;Ub[c[s+4>>2]&63](e,-1);c[t>>2]=-1;return 1}else if((r|0)==30){s=c[e>>2]|0;c[s+20>>2]=117;Ub[c[s+4>>2]&63](e,-1);c[t>>2]=-1;return 1}else if((r|0)==36)return 1;return 0}function Uu(d,f){d=d|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;r=c[d+468>>2]|0;p=d+280|0;if(c[p>>2]|0){s=r+56|0;g=c[s>>2]|0;if(!g){if(!(Gb[c[(c[d+464>>2]|0)+8>>2]&127](d)|0)){o=c[d>>2]|0;c[o+20>>2]=25;Sb[c[o>>2]&255](d)}h=d+340|0;if((c[h>>2]|0)>0){i=d+224|0;j=d+412|0;k=d+436|0;l=d+420|0;g=0;do{m=c[d+344+(g<<2)>>2]|0;if(c[i>>2]|0)if(!(c[j>>2]|0)){if(!(c[l>>2]|0))q=10}else q=13;else q=10;do if((q|0)==10){q=0;n=c[r+60+(c[m+20>>2]<<2)>>2]|0;o=n+64|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));c[r+24+(g<<2)>>2]=0;c[r+40+(g<<2)>>2]=0;if(!(c[i>>2]|0))if(!(c[k>>2]|0))break;else{q=13;break}else if(!(c[j>>2]|0))break;else{q=13;break}}while(0);if((q|0)==13){q=0;aP(c[r+124+(c[m+24>>2]<<2)>>2]|0,0,256)|0}g=g+1|0}while((g|0)<(c[h>>2]|0))}c[r+12>>2]=0;c[r+16>>2]=0;c[r+20>>2]=-16;g=c[p>>2]|0;c[s>>2]=g}c[s>>2]=g+-1}h=r+188|0;i=1<>2];j=d+368|0;if((c[j>>2]|0)<=0)return 1;g=0;do{if(Xu(d,h)|0){s=c[f+(g<<2)>>2]|0;b[s>>1]=i|(e[s>>1]|0)}g=g+1|0}while((g|0)<(c[j>>2]|0));return 1}function Vu(d,e){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;q=c[d+468>>2]|0;o=d+280|0;if(c[o>>2]|0){p=q+56|0;f=c[p>>2]|0;if(!f){if(!(Gb[c[(c[d+464>>2]|0)+8>>2]&127](d)|0)){s=c[d>>2]|0;c[s+20>>2]=25;Sb[c[s>>2]&255](d)}g=d+340|0;if((c[g>>2]|0)>0){h=d+224|0;i=d+412|0;j=d+436|0;k=d+420|0;f=0;do{l=c[d+344+(f<<2)>>2]|0;if(c[h>>2]|0)if(!(c[i>>2]|0)){if(!(c[k>>2]|0))t=10}else t=13;else t=10;do if((t|0)==10){t=0;m=c[q+60+(c[l+20>>2]<<2)>>2]|0;n=m+64|0;do{a[m>>0]=0;m=m+1|0}while((m|0)<(n|0));c[q+24+(f<<2)>>2]=0;c[q+40+(f<<2)>>2]=0;if(!(c[h>>2]|0))if(!(c[j>>2]|0))break;else{t=13;break}else if(!(c[i>>2]|0))break;else{t=13;break}}while(0);if((t|0)==13){t=0;aP(c[q+124+(c[l+24>>2]<<2)>>2]|0,0,256)|0}f=f+1|0}while((f|0)<(c[g>>2]|0))}c[q+12>>2]=0;c[q+16>>2]=0;c[q+20>>2]=-16;f=c[o>>2]|0;c[p>>2]=f}c[p>>2]=f+-1}r=q+20|0;if((c[r>>2]|0)==-1)return 1;s=c[d+432>>2]|0;n=c[e>>2]|0;g=c[(c[d+344>>2]|0)+24>>2]|0;p=c[d+424>>2]|0;o=1<>2]|0;while(1){if(b[n+(c[s+(f<<2)>>2]<<1)>>1]|0)break;f=f+-1|0;if(!f){f=0;break}}m=q+124+(g<<2)|0;j=q+188|0;k=o&65535;l=p&65535;g=(c[d+412>>2]|0)+-1|0;a:while(1){h=(c[m>>2]|0)+(g*3|0)|0;if((g|0)>=(f|0)?Xu(d,h)|0:0){t=38;break}g=g+1|0;i=n+(c[s+(g<<2)>>2]<<1)|0;b:do if(!(b[i>>1]|0)){while(1){if(Xu(d,h+1|0)|0)break;if((g|0)>=(c[e>>2]|0)){t=35;break a}h=h+3|0;g=g+1|0;i=n+(c[s+(g<<2)>>2]<<1)|0;if(b[i>>1]|0){t=26;break b}}if(!(Xu(d,j)|0)){b[i>>1]=k;break}else{b[i>>1]=l;break}}else t=26;while(0);do if((t|0)==26){t=0;if(Xu(d,h+2|0)|0){q=b[i>>1]|0;h=q<<16>>16;if(q<<16>>16<0){b[i>>1]=p+h;break}else{b[i>>1]=o+h;break}}}while(0);if((g|0)>=(c[e>>2]|0)){t=38;break}}if((t|0)==35){t=c[d>>2]|0;c[t+20>>2]=117;Ub[c[t+4>>2]&63](d,-1);c[r>>2]=-1;return 1}else if((t|0)==38)return 1;return 0} function zh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;Jg(a+32|0,b);d=Ah(b)|0;d=Ng(c[d>>2]|0)|0;f=Ah(b)|0;f=Og(c[f>>2]|0)|0;e=Pg(b)|0;uj(a+92|0,d,f,e,Qg(b)|0,36,3.0,1.5,5,.800000011920929);e=Ah(b)|0;e=Ng(c[e>>2]|0)|0;c[a>>2]=e;e=Ah(b)|0;e=Og(c[e>>2]|0)|0;c[a+4>>2]=e;e=a+16|0;Bh(e,c[a+8>>2]|0);f=a+20|0;a=a+12|0;b=0;while(1){d=c[e>>2]|0;if(b>>>0>=(((c[f>>2]|0)-d|0)/12|0)>>>0)break;Ch(d+(b*12|0)|0,c[a>>2]|0);b=b+1|0}return}function Ah(a){a=a|0;return a+4|0}function Bh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c[a>>2]|0;e=(d-f|0)/12|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0){a=f+(b*12|0)|0;while(1){if((d|0)==(a|0))break;f=d+-12|0;kh(f);d=f}c[g>>2]=a}}else Kh(a,b-e|0);return}function Ch(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c[a>>2]|0;e=(d-f|0)/12|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0){a=f+(b*12|0)|0;while(1){if((d|0)==(a|0))break;f=d+-12|0;lh(f);d=f}c[g>>2]=a}}else Dh(a,b-e|0);return}function Dh(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((((c[g>>2]|0)-d|0)/12|0)>>>0>>0){d=((d-(c[a>>2]|0)|0)/12|0)+b|0;e=Fh(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=((c[g>>2]|0)-j|0)/12|0;g=k<<1;Gh(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,((c[h>>2]|0)-j|0)/12|0,a+8|0);Hh(f,b);Ih(a,f);Jh(f);break}}else Eh(a,b);while(0);zb=i;return}function Eh(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b*12|0)|0;c[a>>2]=d+(b*12|0);return}function Fh(a){a=a|0;return 357913941}function Gh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>357913941){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*12|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*12|0);return}function Hh(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b*12|0)|0;c[a>>2]=d+(b*12|0);return}function Ih(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;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-12|0;h=d+-12|0;c[i>>2]=0;j=k+-8|0;c[j>>2]=0;k=k+-4|0;c[k>>2]=0;c[i>>2]=c[h>>2];i=d+-8|0;c[j>>2]=c[i>>2];j=d+-4|0;c[k>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-12;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;k=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=k;i=a+8|0;k=b+12|0;j=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=j;c[b>>2]=c[g>>2];return}function Jh(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-12|0;c[d>>2]=e;lh(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function Kh(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((((c[g>>2]|0)-d|0)/12|0)>>>0>>0){d=((d-(c[a>>2]|0)|0)/12|0)+b|0;e=Mh(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=((c[g>>2]|0)-j|0)/12|0;g=k<<1;Nh(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,((c[h>>2]|0)-j|0)/12|0,a+8|0);Oh(f,b);Ph(a,f);Qh(f);break}}else Lh(a,b);while(0);zb=i;return}function Lh(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b*12|0)|0;c[a>>2]=d+(b*12|0);return}function Mh(a){a=a|0;return 357913941}function Nh(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>357913941){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b*12|0)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d*12|0)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b*12|0);return}function Oh(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b*12|0)|0;c[a>>2]=d+(b*12|0);return}function Ph(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;e=c[a>>2]|0;f=a+4|0;g=b+4|0;d=c[f>>2]|0;while(1){if((d|0)==(e|0))break;k=c[g>>2]|0;i=k+-12|0;h=d+-12|0;c[i>>2]=0;j=k+-8|0;c[j>>2]=0;k=k+-4|0;c[k>>2]=0;c[i>>2]=c[h>>2];i=d+-8|0;c[j>>2]=c[i>>2];j=d+-4|0;c[k>>2]=c[j>>2];c[j>>2]=0;c[i>>2]=0;c[h>>2]=0;c[g>>2]=(c[g>>2]|0)+-12;d=h}i=c[a>>2]|0;c[a>>2]=c[g>>2];c[g>>2]=i;i=b+8|0;k=c[f>>2]|0;c[f>>2]=c[i>>2];c[i>>2]=k;i=a+8|0;k=b+12|0;j=c[i>>2]|0;c[i>>2]=c[k>>2];c[k>>2]=j;c[b>>2]=c[g>>2];return}function Qh(a){a=a|0;var b=0,d=0,e=0;b=c[a+4>>2]|0;d=a+8|0;while(1){e=c[d>>2]|0;if((e|0)==(b|0))break;e=e+-12|0;c[d>>2]=e;kh(e)}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function Rh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;e=zb;zb=zb+32|0;d=e;if((Pg(b)|0)<=0){f=Xf(Xf(PE(Xf(Xf(Xf(56032,22918)|0,22676)|0,35e3)|0,147)|0,35007)|0,22967)|0;IE(d,f+(c[(c[f>>2]|0)+-12>>2]|0)|0);g=XF(d,56736)|0;g=Ib[c[(c[g>>2]|0)+28>>2]&63](g,10)|0;YF(d);QE(f,g)|0;ME(f)|0;ua()}Bq(d,23866);if(Sh(d)|0)Zg(a+32|0,b);Cq(d);Bq(d,23878);if(Sh(d)|0)Th(a,b,a+32|0);Cq(d);Bq(d,23898);if(Sh(d)|0)Uh(a,b);Cq(d);Bq(d,23907);if(Sh(d)|0)Vh(a);Cq(d);Bq(d,23921);if(Sh(d)|0)Wh(a,b);Cq(d);zb=e;return}function Sh(a){a=a|0;return 1}function Th(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0,j=0.0,k=0,l=0,m=0.0,n=0,o=0,p=0,q=0,r=0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0,C=0.0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0.0,ga=0,ha=0,ia=0.0;ha=zb;zb=zb+48|0;aa=ha;ca=a+60|0;da=a+64|0;c[da>>2]=c[ca>>2];fa=+ji(+f[a+52>>2]);V=a+32|0;W=aa+12|0;Y=aa+16|0;Z=aa+24|0;_=aa+28|0;$=aa+4|0;F=a+68|0;G=aa+12|0;H=aa+16|0;I=aa+24|0;J=aa+28|0;K=aa+4|0;L=aa+12|0;M=aa+16|0;N=aa+24|0;O=aa+28|0;P=aa+4|0;a=1;a:while(1){if(a>>>0>=((Ki(V)|0)+-1|0)>>>0){ga=3;break}Q=Li(d,a+-1|0)|0;R=Li(d,a)|0;S=a+1|0;T=Li(d,S)|0;U=Mi(d,a)|0;E=Ni(d,a)|0;D=Ng(Q)|0;b:do if((D|0)==(Ng(R)|0)?(D=Ng(Q)|0,(D|0)==(Ng(T)|0)):0){D=Og(Q)|0;if((D|0)!=(Og(R)|0)){ga=7;break a}D=Og(Q)|0;if((D|0)!=(Og(T)|0)){ga=9;break a}k=(Ng(R)|0)+-1|0;l=(Og(R)|0)+-1|0;m=+(E|0);a=1;while(1){if(a>>>0>=l>>>0)break b;v=a+-1|0;n=ch(Q,v)|0;o=ch(Q,a)|0;p=a+1|0;q=ch(Q,p)|0;r=ch(R,v)|0;t=ch(R,a)|0;u=ch(R,p)|0;v=ch(T,v)|0;w=ch(T,a)|0;x=ch(T,p)|0;j=+(a>>>0);i=1;while(1){if(i>>>0>=k>>>0)break;a=t+(i<<2)|0;do if(!(+ji(+f[a>>2])>2];h=i+-1|0;e=+f[n+(h<<2)>>2];do if(((((g>e?g>+f[n+(i<<2)>>2]:0)?(X=i+1|0,g>+f[n+(X<<2)>>2]):0)?g>+f[o+(h<<2)>>2]:0)?g>+f[o+(i<<2)>>2]:0)?g>+f[o+(X<<2)>>2]:0){if(!(g>+f[q+(h<<2)>>2])){ga=42;break}if(!(g>+f[q+(i<<2)>>2])){ga=42;break}if(!(g>+f[q+(X<<2)>>2])){ga=42;break}if(!(g>+f[r+(h<<2)>>2])){ga=42;break}if(!(g>+f[r+(i<<2)>>2])){ga=42;break}if(!(g>+f[r+(X<<2)>>2])){ga=42;break}if(!(g>+f[t+(h<<2)>>2])){ga=42;break}if(!(g>+f[t+(X<<2)>>2])){ga=42;break}if(!(g>+f[u+(h<<2)>>2])){ga=42;break}if(!(g>+f[u+(i<<2)>>2])){ga=42;break}if(!(g>+f[u+(X<<2)>>2])){ga=42;break}if(!(g>+f[v+(h<<2)>>2])){ga=42;break}if(!(g>+f[v+(i<<2)>>2])){ga=42;break}if(!(g>+f[v+(X<<2)>>2])){ga=42;break}if(!(g>+f[w+(h<<2)>>2])){ga=42;break}if(!(g>+f[w+(i<<2)>>2])){ga=42;break}if(!(g>+f[w+(X<<2)>>2])){ga=42;break}if(!(g>+f[x+(h<<2)>>2])){ga=42;break}if(!(g>+f[x+(i<<2)>>2])){ga=42;break}if(!(g>+f[x+(X<<2)>>2]))ga=42}else ga=42;while(0);if((ga|0)==42){ga=0;if(!(g>2]))break;a=i+1|0;if(!(g<+f[n+(a<<2)>>2]))break;if(!(g<+f[o+(h<<2)>>2]))break;if(!(g<+f[o+(i<<2)>>2]))break;if(!(g<+f[o+(a<<2)>>2]))break;if(!(g<+f[q+(h<<2)>>2]))break;if(!(g<+f[q+(i<<2)>>2]))break;if(!(g<+f[q+(a<<2)>>2]))break;if(!(g<+f[r+(h<<2)>>2]))break;if(!(g<+f[r+(i<<2)>>2]))break;if(!(g<+f[r+(a<<2)>>2]))break;if(!(g<+f[t+(h<<2)>>2]))break;if(!(g<+f[t+(a<<2)>>2]))break;if(!(g<+f[u+(h<<2)>>2]))break;if(!(g<+f[u+(i<<2)>>2]))break;if(!(g<+f[u+(a<<2)>>2]))break;if(!(g<+f[v+(h<<2)>>2]))break;if(!(g<+f[v+(i<<2)>>2]))break;if(!(g<+f[v+(a<<2)>>2]))break;if(!(g<+f[w+(h<<2)>>2]))break;if(!(g<+f[w+(i<<2)>>2]))break;if(!(g<+f[w+(a<<2)>>2]))break;if(!(g<+f[x+(h<<2)>>2]))break;if(!(g<+f[x+(i<<2)>>2]))break;if(!(g<+f[x+(a<<2)>>2]))break}c[W>>2]=U;c[Y>>2]=E;f[Z>>2]=g;C=+si(b,U,m);f[_>>2]=C;ri(aa,$,+(i>>>0),j,U);a=c[da>>2]|0;if((a|0)==(c[F>>2]|0)){_h(ca,aa);break}else{h=aa;D=a+36|0;do{c[a>>2]=c[h>>2];a=a+4|0;h=h+4|0}while((a|0)<(D|0));c[da>>2]=(c[da>>2]|0)+36;break}}while(0);i=i+1|0}a=p}}else ga=72;while(0);c:do if((ga|0)==72){ga=0;D=Ng(Q)|0;if((D|0)==(Ng(R)|0)?(D=(Ng(R)|0)>>>1,(D|0)==(Ng(T)|0)):0){D=Og(Q)|0;if((D|0)!=(Og(R)|0)){ga=75;break a}D=(Og(R)|0)>>>1;if((D|0)!=(Og(T)|0)){ga=77;break a}l=~~+s(+((+(((Ng(T)|0)+-1|0)>>>0)+-.5)*2.0+.5))>>>0;n=~~+s(+((+(((Og(T)|0)+-1|0)>>>0)+-.5)*2.0+.5))>>>0;C=+(E|0);a=2;while(1){if(a>>>0>=n>>>0)break c;t=a+-1|0;o=ch(Q,t)|0;p=ch(Q,a)|0;q=a+1|0;r=ch(Q,q)|0;t=ch(R,t)|0;u=ch(R,a)|0;v=ch(R,q)|0;y=+(a>>>0);z=y*.5+-.25;A=z+-.5;B=z+.5;k=2;while(1){if(k>>>0>=l>>>0)break;i=u+(k<<2)|0;do if(!(+ji(+f[i>>2])>>0);m=j*.5+-.25;e=+f[i>>2];h=k+-1|0;a=o+(h<<2)|0;do if(((e>+f[a>>2]?e>+f[o+(k<<2)>>2]:0)?(ba=k+1|0,e>+f[o+(ba<<2)>>2]):0)?e>+f[p+(h<<2)>>2]:0){if(!(e>+f[p+(k<<2)>>2])){ga=110;break}if(!(e>+f[p+(ba<<2)>>2])){ga=110;break}if(!(e>+f[r+(h<<2)>>2])){ga=110;break}if(!(e>+f[r+(k<<2)>>2])){ga=110;break}if(!(e>+f[r+(ba<<2)>>2])){ga=110;break}if(!(e>+f[t+(h<<2)>>2])){ga=110;break}if(!(e>+f[t+(k<<2)>>2])){ga=110;break}if(!(e>+f[t+(ba<<2)>>2])){ga=110;break}if(!(e>+f[u+(h<<2)>>2])){ga=110;break}if(!(e>+f[u+(ba<<2)>>2])){ga=110;break}if(!(e>+f[v+(h<<2)>>2])){ga=110;break}if(!(e>+f[v+(k<<2)>>2])){ga=110;break}if(!(e>+f[v+(ba<<2)>>2])){ga=110;break}g=m+-.5;if(!(e>+Ci(T,g,A))){ga=110;break}e=+f[i>>2];if(!(e>+Ci(T,m,A))){ga=110;break}ia=+f[i>>2];e=m+.5;if(!(ia>+Ci(T,e,A))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,g,z))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,m,z))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,e,z))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,g,B))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,m,B))){ga=110;break}ia=+f[i>>2];if(!(ia>+Ci(T,e,B)))ga=110}else ga=110;while(0);if((ga|0)==110){ga=0;e=+f[i>>2];if(!(e<+f[a>>2]))break;if(!(e<+f[o+(k<<2)>>2]))break;a=k+1|0;if(!(e<+f[o+(a<<2)>>2]))break;if(!(e<+f[p+(h<<2)>>2]))break;if(!(e<+f[p+(k<<2)>>2]))break;if(!(e<+f[p+(a<<2)>>2]))break;if(!(e<+f[r+(h<<2)>>2]))break;if(!(e<+f[r+(k<<2)>>2]))break;if(!(e<+f[r+(a<<2)>>2]))break;if(!(e<+f[t+(h<<2)>>2]))break;if(!(e<+f[t+(k<<2)>>2]))break;if(!(e<+f[t+(a<<2)>>2]))break;if(!(e<+f[u+(h<<2)>>2]))break;if(!(e<+f[u+(a<<2)>>2]))break;if(!(e<+f[v+(h<<2)>>2]))break;if(!(e<+f[v+(k<<2)>>2]))break;if(!(e<+f[v+(a<<2)>>2]))break;g=m+-.5;if(!(e<+Ci(T,g,A)))break;ia=+f[i>>2];if(!(ia<+Ci(T,m,A)))break;ia=+f[i>>2];e=m+.5;if(!(ia<+Ci(T,e,A)))break;ia=+f[i>>2];if(!(ia<+Ci(T,g,z)))break;ia=+f[i>>2];if(!(ia<+Ci(T,m,z)))break;ia=+f[i>>2];if(!(ia<+Ci(T,e,z)))break;ia=+f[i>>2];if(!(ia<+Ci(T,g,B)))break;ia=+f[i>>2];if(!(ia<+Ci(T,m,B)))break;ia=+f[i>>2];if(!(ia<+Ci(T,e,B)))break}c[G>>2]=U;c[H>>2]=E;c[I>>2]=c[i>>2];ia=+si(b,U,C);f[J>>2]=ia;ri(aa,K,j,y,U);a=c[da>>2]|0;if((a|0)==(c[F>>2]|0)){_h(ca,aa);break}else{h=aa;D=a+36|0;do{c[a>>2]=c[h>>2];a=a+4|0;h=h+4|0}while((a|0)<(D|0));c[da>>2]=(c[da>>2]|0)+36;break}}while(0);k=k+1|0}a=q}}D=(Ng(Q)|0)>>>1;if((D|0)==(Ng(R)|0)?(D=(Ng(Q)|0)>>>1,(D|0)==(Ng(T)|0)):0){D=(Og(Q)|0)>>>1;if((D|0)!=(Og(R)|0)){ga=144;break a}D=(Og(Q)|0)>>>1;if((D|0)!=(Og(T)|0)){ga=146;break a}l=(Ng(R)|0)+-1|0;n=(Og(R)|0)+-1|0;A=+(E|0);a=1;while(1){if(a>>>0>=n>>>0)break c;t=a+-1|0;o=ch(R,t)|0;p=ch(R,a)|0;q=a+1|0;r=ch(R,q)|0;t=ch(T,t)|0;u=ch(T,a)|0;v=ch(T,q)|0;B=+(a<<1>>>0)+.5;m=+(a>>>0);y=B+-2.0;z=B+2.0;k=1;while(1){if(k>>>0>=l>>>0)break;i=p+(k<<2)|0;do if(!(+ji(+f[i>>2])>>0)+.5;e=+f[i>>2];h=k+-1|0;a=o+(h<<2)|0;do if(((e>+f[a>>2]?e>+f[o+(k<<2)>>2]:0)?(ea=k+1|0,e>+f[o+(ea<<2)>>2]):0)?e>+f[p+(h<<2)>>2]:0){if(!(e>+f[p+(ea<<2)>>2])){ga=179;break}if(!(e>+f[r+(h<<2)>>2])){ga=179;break}if(!(e>+f[r+(k<<2)>>2])){ga=179;break}if(!(e>+f[r+(ea<<2)>>2])){ga=179;break}if(!(e>+f[t+(h<<2)>>2])){ga=179;break}if(!(e>+f[t+(k<<2)>>2])){ga=179;break}if(!(e>+f[t+(ea<<2)>>2])){ga=179;break}if(!(e>+f[u+(h<<2)>>2])){ga=179;break}if(!(e>+f[u+(k<<2)>>2])){ga=179;break}if(!(e>+f[u+(ea<<2)>>2])){ga=179;break}if(!(e>+f[v+(h<<2)>>2])){ga=179;break}if(!(e>+f[v+(k<<2)>>2])){ga=179;break}if(!(e>+f[v+(ea<<2)>>2])){ga=179;break}g=j+-2.0;if(!(e>+Ci(Q,g,y))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,j,y))){ga=179;break}ia=+f[i>>2];e=j+2.0;if(!(ia>+Ci(Q,e,y))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,g,B))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,j,B))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,e,B))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,g,z))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,j,z))){ga=179;break}ia=+f[i>>2];if(!(ia>+Ci(Q,e,z)))ga=179}else ga=179;while(0);if((ga|0)==179){ga=0;e=+f[i>>2];if(!(e<+f[a>>2]))break;if(!(e<+f[o+(k<<2)>>2]))break;a=k+1|0;if(!(e<+f[o+(a<<2)>>2]))break;if(!(e<+f[p+(h<<2)>>2]))break;if(!(e<+f[p+(a<<2)>>2]))break;if(!(e<+f[r+(h<<2)>>2]))break;if(!(e<+f[r+(k<<2)>>2]))break;if(!(e<+f[r+(a<<2)>>2]))break;if(!(e<+f[t+(h<<2)>>2]))break;if(!(e<+f[t+(k<<2)>>2]))break;if(!(e<+f[t+(a<<2)>>2]))break;if(!(e<+f[u+(h<<2)>>2]))break;if(!(e<+f[u+(k<<2)>>2]))break;if(!(e<+f[u+(a<<2)>>2]))break;if(!(e<+f[v+(h<<2)>>2]))break;if(!(e<+f[v+(k<<2)>>2]))break;if(!(e<+f[v+(a<<2)>>2]))break;g=j+-2.0;if(!(e<+Ci(Q,g,y)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,j,y)))break;ia=+f[i>>2];e=j+2.0;if(!(ia<+Ci(Q,e,y)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,g,B)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,j,B)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,e,B)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,g,z)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,j,z)))break;ia=+f[i>>2];if(!(ia<+Ci(Q,e,z)))break}c[L>>2]=U;c[M>>2]=E;c[N>>2]=c[i>>2];ia=+si(b,U,A);f[O>>2]=ia;ri(aa,P,+(k>>>0),m,U);a=c[da>>2]|0;if((a|0)==(c[F>>2]|0)){_h(ca,aa);break}else{h=aa;D=a+36|0;do{c[a>>2]=c[h>>2];a=a+4|0;h=h+4|0}while((a|0)<(D|0));c[da>>2]=(c[da>>2]|0)+36;break}}while(0);k=k+1|0}a=q}}}while(0);a=S}if((ga|0)==3){zb=ha;return}else if((ga|0)==7){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26651)|0,22676)|0,35e3)|0,192)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==9){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26726)|0,22676)|0,35e3)|0,193)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==75){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26651)|0,22676)|0,35e3)|0,277)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==77){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26778)|0,22676)|0,35e3)|0,278)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==144){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26835)|0,22676)|0,35e3)|0,362)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}else if((ga|0)==146){ha=Xf(Xf(PE(Xf(Xf(Xf(56032,26892)|0,22676)|0,35e3)|0,363)|0,35007)|0,26703)|0;IE(aa,ha+(c[(c[ha>>2]|0)+-12>>2]|0)|0);ga=XF(aa,56736)|0;ga=Ib[c[(c[ga>>2]|0)+28>>2]&63](ga,10)|0;YF(aa);QE(ha,ga)|0;ME(ha)|0;ua()}}function Uh(a,b){a=a|0;b=b|0;var d=0,e=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.0,u=0.0,v=0.0,w=0.0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0.0,N=0.0;J=zb;zb=zb+80|0;I=J+68|0;A=J;C=J+56|0;D=J+44|0;E=J+40|0;F=J+36|0;s=+ji(+f[a+52>>2]);H=a+56|0;w=+ji(+f[H>>2]+1.0);w=w/+f[H>>2];H=a+60|0;x=a+64|0;y=a+32|0;z=D+4|0;o=a+88|0;p=C+4|0;q=C+8|0;r=D+8|0;m=0;n=0;while(1){l=c[H>>2]|0;i=l;if(n>>>0>=(((c[x>>2]|0)-l|0)/36|0)>>>0){a=3;break}d=i+(n*36|0)|0;a=i+(n*36|0)+16|0;l=c[a>>2]|0;if((l|0)>=(li(y)|0)){a=5;break}j=i+(n*36|0)+12|0;l=c[j>>2]|0;l=B(li(y)|0,l)|0;l=l+(c[a>>2]|0)|0;k=i+(n*36|0)+4|0;mi(E,F,+f[d>>2],+f[k>>2],c[j>>2]|0);e=~~(+f[E>>2]+.5);g=~~(+f[F>>2]+.5);L=ni(y)|0;L=(c[L>>2]|0)+(l+-1<<5)|0;h=ni(y)|0;h=(c[h>>2]|0)+(l<<5)|0;K=ni(y)|0;if(((oi(A,C,L,h,(c[K>>2]|0)+(l+1<<5)|0,e,g)|0?pi(D,A,C)|0:0)?(M=+ji(+f[D>>2]),M=M+ +ji(+f[z>>2]),!(M>+f[o>>2])):0)?(G=i+(n*36|0)+32|0,qi(G,A)|0):0){l=i+(n*36|0)+24|0;M=+f[l>>2];L=(ch(h,g)|0)+(e<<2)|0;if(!(M==+f[L>>2])){a=11;break}L=(ch(h,g)|0)+(e<<2)|0;N=+f[D>>2];M=+f[z>>2];f[l>>2]=+f[L>>2]-(+f[C>>2]*N+ +f[p>>2]*M+ +f[q>>2]*+f[r>>2]);ri(d,k,N+ +f[E>>2],M+ +f[F>>2],c[j>>2]|0);M=+f[r>>2]+ +(c[a>>2]|0);a=i+(n*36|0)+20|0;f[a>>2]=M;M=+Zh(M,0.0,+(li(y)|0));f[a>>2]=M;if(((((+t(+(+f[G>>2]))>2])>=s:0)?(u=+f[d>>2],u>=0.0):0)?(L=ni(y)|0,u<+((Ng(c[L>>2]|0)|0)>>>0)):0)?(v=+f[k>>2],v>=0.0):0)?(L=ni(y)|0,v<+((Og(c[L>>2]|0)|0)>>>0)):0){N=+si(b,c[j>>2]|0,+f[a>>2]);f[i+(n*36|0)+28>>2]=N;a=m+1|0;g=(c[H>>2]|0)+(m*36|0)|0;e=g+36|0;do{c[g>>2]=c[d>>2];g=g+4|0;d=d+4|0}while((g|0)<(e|0))}else a=m}else a=m;m=a;n=n+1|0}if((a|0)==3){ki(H,m);zb=J;return}else if((a|0)==5){L=Xf(Xf(PE(Xf(Xf(Xf(56032,24248)|0,22676)|0,35e3)|0,489)|0,35007)|0,24320)|0;IE(I,L+(c[(c[L>>2]|0)+-12>>2]|0)|0);K=XF(I,56736)|0;K=Ib[c[(c[K>>2]|0)+28>>2]&63](K,10)|0;YF(I);QE(L,K)|0;ME(L)|0;ua()}else if((a|0)==11){L=Xf(Xf(PE(Xf(Xf(Xf(56032,24357)|0,22676)|0,35e3)|0,526)|0,35007)|0,24414)|0;IE(I,L+(c[(c[L>>2]|0)+-12>>2]|0)|0);K=XF(I,56736)|0;K=Ib[c[(c[K>>2]|0)+28>>2]&63](K,10)|0;YF(I);QE(L,K)|0;ME(L)|0;ua()}}function Vh(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;l=zb;zb=zb+16|0;d=l+12|0;h=l;i=a+60|0;j=a+64|0;k=a+84|0;e=c[k>>2]|0;do if((((c[j>>2]|0)-(c[i>>2]|0)|0)/36|0)>>>0>e>>>0){f=a+16|0;b=c[f>>2]|0;g=((c[a+20>>2]|0)-b|0)/12|0;if((g|0)!=(c[a+8>>2]|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,23939)|0,22676)|0,35e3)|0,454)|0,35007)|0,23994)|0;IE(d,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);n=XF(d,56736)|0;n=Ib[c[(c[n>>2]|0)+28>>2]&63](n,10)|0;YF(d);QE(m,n)|0;ME(m)|0;ua()}b=((c[b+4>>2]|0)-(c[b>>2]|0)|0)/12|0;if((b|0)!=(c[a+12>>2]|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,24020)|0,22676)|0,35e3)|0,455)|0,35007)|0,23994)|0;IE(d,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(d,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(d);QE(n,m)|0;ME(n)|0;ua()}c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;ai(f,h,i,g,b,c[a>>2]|0,c[a+4>>2]|0,e);Xh(i,h);if((((c[j>>2]|0)-(c[i>>2]|0)|0)/36|0)>>>0>(c[k>>2]|0)>>>0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,24078)|0,22676)|0,35e3)|0,469)|0,35007)|0,24147)|0;IE(d,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(d,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(d);QE(n,m)|0;ME(n)|0;ua()}else{hh(h);break}}while(0);zb=l;return}function Wh(b,d){b=b|0;d=d|0;var e=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.0;w=zb;zb=zb+64|0;l=w+48|0;s=w+44|0;t=w+40|0;u=w+36|0;v=w;a:do if(!(a[b+28>>0]|0)){g=c[b+60>>2]|0;e=((c[b+64>>2]|0)-g|0)/36|0;b=0;while(1){if((b|0)==(e|0))break a;f[g+(b*36|0)+8>>2]=0.0;b=b+1|0}}else{k=b+72|0;m=b+76|0;c[m>>2]=c[k>>2];n=b+60|0;o=b+64|0;uh(k,(c[o>>2]|0)-(c[n>>2]|0)|0);p=b+92|0;vj(p,d);q=b+144|0;r=v+8|0;j=b+80|0;i=0;while(1){h=c[n>>2]|0;b=h;if(i>>>0>=(((c[o>>2]|0)-h|0)/36|0)>>>0)break;Yh(s,t,u,+f[b+(i*36|0)>>2],+f[b+(i*36|0)+4>>2],+f[b+(i*36|0)+28>>2],c[b+(i*36|0)+12>>2]|0);x=+f[s>>2];x=+Zh(x,0.0,+(((Ng(Lg(d,c[(c[n>>2]|0)+(i*36|0)+12>>2]|0,0)|0)|0)+-1|0)>>>0));f[s>>2]=x;x=+f[t>>2];x=+Zh(x,0.0,+(((Og(Lg(d,c[(c[n>>2]|0)+(i*36|0)+12>>2]|0,0)|0)|0)+-1|0)>>>0));f[t>>2]=x;h=c[n>>2]|0;yj(p,c[q>>2]|0,l,c[h+(i*36|0)+12>>2]|0,c[h+(i*36|0)+16>>2]|0,+f[s>>2],x,+f[u>>2]);h=0;while(1){if((h|0)>=(c[l>>2]|0))break;b=v;e=(c[n>>2]|0)+(i*36|0)|0;g=b+36|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(g|0));c[r>>2]=c[(c[q>>2]|0)+(h<<2)>>2];b=c[m>>2]|0;if((b|0)==(c[j>>2]|0))_h(k,v);else{e=v;g=b+36|0;do{c[b>>2]=c[e>>2];b=b+4|0;e=e+4|0}while((b|0)<(g|0));c[m>>2]=(c[m>>2]|0)+36}h=h+1|0}i=i+1|0}Xh(n,k)}while(0);zb=w;return}function Xh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;b=b+8|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function Yh(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=+d;e=+e;g=+g;h=h|0;var i=0.0,j=0.0;i=1.0/+(1<>2]=i*d+j;f[b>>2]=i*e+j;f[c>>2]=i*g;return}function Zh(a,b,c){a=+a;b=+b;c=+c;if(!(ac)a=c}else a=b;return +a}function _h(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;j=zb;zb=zb+32|0;i=j;d=a+4|0;e=(((c[d>>2]|0)-(c[a>>2]|0)|0)/36|0)+1|0;f=$h(a)|0;if(f>>>0>>0)EO(a);else{g=c[a>>2]|0;k=((c[a+8>>2]|0)-g|0)/36|0;h=k<<1;vh(i,k>>>0>>1>>>0?(h>>>0>>0?e:h):f,((c[d>>2]|0)-g|0)/36|0,a+8|0);f=i+8|0;g=c[f>>2]|0;h=g;d=b;e=h+36|0;do{c[h>>2]=c[d>>2];h=h+4|0;d=d+4|0}while((h|0)<(e|0));c[f>>2]=g+36;wh(a,i);xh(i);zb=j;return}}function $h(a){a=a|0;return 119304647}function ai(a,b,d,e,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,u=0,v=0,w=0,x=0,y=0,z=0,C=0,D=0,E=0.0;D=zb;zb=zb+48|0;C=D+8|0;v=D+32|0;u=D+28|0;y=D+24|0;z=D+20|0;w=D+16|0;x=D;o=B(g,e)|0;n=+A(+(+(h|0)/+(e|0)));m=+A(+(+(i|0)/+(g|0)));r=b+4|0;c[r>>2]=c[b>>2];uh(b,j);s=a+4|0;g=c[a>>2]|0;i=((c[s>>2]|0)-g|0)/12|0;e=0;while(1){if((e|0)==(i|0))break;l=c[g+(e*12|0)>>2]|0;k=((c[g+(e*12|0)+4>>2]|0)-l|0)/12|0;h=0;while(1){if((h|0)==(k|0))break;c[l+(h*12|0)+4>>2]=c[l+(h*12|0)>>2];h=h+1|0}e=e+1|0}q=(j|0)/(o|0)|0;o=d+4|0;n=+(~~n|0);m=+(~~m|0);g=C+4|0;l=0;while(1){p=c[d>>2]|0;e=p;if(l>>>0>=(((c[o>>2]|0)-p|0)/36|0)>>>0)break;i=~~(+f[e+(l*36|0)+4>>2]/m);k=c[(c[a>>2]|0)+(~~(+f[e+(l*36|0)>>2]/n)*12|0)>>2]|0;E=+t(+(+f[e+(l*36|0)+24>>2]));f[C>>2]=E;c[g>>2]=l;e=k+(i*12|0)+4|0;h=c[e>>2]|0;if(h>>>0<(c[k+(i*12|0)+8>>2]|0)>>>0){k=C;j=c[k+4>>2]|0;p=h;c[p>>2]=c[k>>2];c[p+4>>2]=j;c[e>>2]=(c[e>>2]|0)+8}else bi(k+(i*12|0)|0,C);l=l+1|0}p=b+8|0;e=c[a>>2]|0;g=e;j=0;h=g;a:while(1){if(j>>>0>=(((c[s>>2]|0)-e|0)/12|0)>>>0){e=16;break}o=0;i=g;while(1){l=c[i+(j*12|0)>>2]|0;e=l;if(o>>>0>=(((c[i+(j*12|0)+4>>2]|0)-l|0)/12|0)>>>0)break;l=e+(o*12|0)|0;e=e+(o*12|0)+4|0;g=c[e>>2]|0;i=c[l>>2]|0;k=g-i>>3;k=q>>>0>>0?q:k;if(!k)e=h;else{c[y>>2]=i;c[z>>2]=i+(k<<3);c[w>>2]=g;c[u>>2]=c[y>>2];c[v>>2]=c[z>>2];c[C>>2]=c[w>>2];ci(u,v,C,x);g=c[l>>2]|0;i=g;if(k>>>0>(c[e>>2]|0)-g>>3>>>0?!(+f[i>>2]>=+f[i+(k<<3)>>2]):0){e=23;break a}i=0;while(1){if(i>>>0>=k>>>0)break;h=(c[d>>2]|0)+((c[(c[l>>2]|0)+(i<<3)+4>>2]|0)*36|0)|0;e=c[r>>2]|0;if((e|0)==(c[p>>2]|0))_h(b,h);else{g=e+36|0;do{c[e>>2]=c[h>>2];e=e+4|0;h=h+4|0}while((e|0)<(g|0));c[r>>2]=(c[r>>2]|0)+36}i=i+1|0}e=c[a>>2]|0}o=o+1|0;h=e;i=e}j=j+1|0;g=i;e=i}if((e|0)==16){zb=D;return}else if((e|0)==23){D=Xf(Xf(PE(Xf(Xf(Xf(56032,24171)|0,22676)|0,35e3)|0,661)|0,35007)|0,24229)|0;IE(C,D+(c[(c[D>>2]|0)+-12>>2]|0)|0);z=XF(C,56736)|0;z=Ib[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;YF(C);QE(D,z)|0;ME(D)|0;ua()}}function bi(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>3)+1|0;g=fi(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>2;gi(d,k>>3>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>3,a+8|0);g=d+8|0;e=c[b+4>>2]|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[f+4>>2]=e;c[g>>2]=(c[g>>2]|0)+8;hi(a,d);ii(d);zb=h;return}}function ci(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0,h=0,i=0.0,j=0.0,k=0,l=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,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;K=zb;zb=zb+48|0;y=K+40|0;x=K+36|0;w=K+32|0;C=K+28|0;D=K+24|0;E=K+20|0;G=K+16|0;H=K+12|0;I=K+8|0;z=K+4|0;A=K;v=c[b>>2]|0;a:while(1){u=c[d>>2]|0;n=u;t=u+-8|0;q=t;s=u+-4|0;if((v|0)==(u|0))break;r=c[a>>2]|0;k=r;b:while(1){b=n-k|0;g=b>>3;switch(g|0){case 1:case 0:break a;case 2:{J=5;break a}case 3:{J=10;break a}default:{}}if((b|0)<64){J=12;break a}g=g>>>1;p=r+(g<<3)|0;c[I>>2]=k;c[z>>2]=p;c[A>>2]=q;c[w>>2]=c[I>>2];c[x>>2]=c[z>>2];c[y>>2]=c[A>>2];b=di(w,x,y,e)|0;l=k;j=+f[p>>2];i=+f[l>>2];if(j>2]|0)>>>0<(c[l+4>>2]|0)>>>0:0){J=53;break}g=t;while(1){m=g+-8|0;if((m|0)==(l|0))break;i=+f[m>>2];if(j>2]|0,(c[h>>2]|0)>>>0>>0):0){J=51;break b}g=m}h=l+8|0;b=h;o=+f[t>>2];j=+f[r>>2];do if(!(o>2]|0)>>>0<(c[g>>2]|0)>>>0)break}else g=r+4|0;while(1){if((h|0)==(t|0))break a;i=+f[h>>2];if(i>2]|0,F>>>0<(c[g>>2]|0)>>>0):0){J=28;break}h=h+8|0}if((J|0)==25){J=0;g=h+4|0;b=g;g=c[g>>2]|0}else if((J|0)==28){J=0;b=h+4|0;g=F}f[h>>2]=o;f[t>>2]=i;c[b>>2]=c[s>>2];c[s>>2]=g;b=h+8|0}while(0);if((t|0)==(b|0))break a;l=r+4|0;g=q;while(1){j=+f[r>>2];k=b;while(1){b=k;i=+f[b>>2];if(i>2]|0)>>>0<(c[l>>2]|0)>>>0:0)break;k=b+8|0}h=k;while(1){b=g+-8|0;i=+f[b>>2];if(!(i>2]|0)>>>0>=(c[l>>2]|0)>>>0)break}g=b}if(b>>>0<=h>>>0)break;m=c[k>>2]|0;f[k>>2]=i;c[b>>2]=m;m=h+4|0;g=g+-4|0;p=c[m>>2]|0;c[m>>2]=c[g>>2];c[g>>2]=p;g=b;b=h+8|0}b=k;if(v>>>0>>0)break a;c[a>>2]=k;r=b}if((J|0)==47){h=g+-4|0;g=h;h=c[h>>2]|0;J=52}else if((J|0)==51){g=g+-4|0;h=B;J=52}else if((J|0)==53){J=0;h=t;s=k}if((J|0)==52){J=0;s=k;r=c[k>>2]|0;f[k>>2]=i;c[m>>2]=r;r=s+4|0;t=c[r>>2]|0;c[r>>2]=h;c[g>>2]=t;b=b+1|0;h=m}g=s+8|0;k=g;if(g>>>0>>0){q=p;g=k;while(1){p=q;n=p+4|0;j=+f[p>>2];while(1){k=g;i=+f[k>>2];if(!(j>2]|0)>>>0>=(c[k+4>>2]|0)>>>0)break}g=k+8|0}m=g;while(1){l=h+-8|0;i=+f[l>>2];if(j>2]|0)>>>0<(c[h+-4>>2]|0)>>>0:0)break;h=l}k=l;if(l>>>0<=m>>>0)break;t=c[g>>2]|0;f[g>>2]=i;c[l>>2]=t;t=m+4|0;h=h+-4|0;g=c[t>>2]|0;c[t>>2]=c[h>>2];c[h>>2]=g;b=b+1|0;h=k;q=(p|0)==(m|0)?k:q;g=m+8|0}r=g;p=q;k=g}else r=g;n=k;do if((p|0)!=(r|0)){i=+f[r>>2];j=+f[p>>2];if(!(i>2]|0;g=p+4|0;m=c[g>>2]|0;if(h>>>0>=m>>>0)break}else{h=r+4|0;m=p+4|0;g=m;l=h;m=c[m>>2]|0;h=c[h>>2]|0}t=c[k>>2]|0;f[k>>2]=j;c[p>>2]=t;c[l>>2]=m;c[g>>2]=h;b=b+1|0}while(0);if((v|0)==(r|0))break;c:do if(!b)if(v>>>0>>0){b=s;while(1){g=b+8|0;if((g|0)==(r|0))break a;i=+f[b>>2];j=+f[g>>2];if(i>2]|0)>>>0<(c[b+12>>2]|0)>>>0:0)break c;b=g}}else{b=n;while(1){g=b+8|0;if((g|0)==(u|0))break a;i=+f[b>>2];j=+f[g>>2];if(i>2]|0)>>>0<(c[b+12>>2]|0)>>>0:0)break c;b=g}}while(0);if(v>>>0>>0)c[d>>2]=k;else c[a>>2]=r+8}do if((J|0)==5){c[d>>2]=t;i=+f[r>>2];j=+f[t>>2];if(!(i>2]|0;h=c[s>>2]|0;if(g>>>0>=h>>>0)break}else{g=r+4|0;b=g;h=c[s>>2]|0;g=c[g>>2]|0}f[r>>2]=j;f[t>>2]=i;c[b>>2]=h;c[s>>2]=g}else if((J|0)==10){c[C>>2]=k;c[D>>2]=k+8;c[d>>2]=t;c[E>>2]=t;c[w>>2]=c[C>>2];c[x>>2]=c[D>>2];c[y>>2]=c[E>>2];di(w,x,y,e)|0}else if((J|0)==12){c[G>>2]=k;c[H>>2]=u;c[x>>2]=c[G>>2];c[y>>2]=c[H>>2];ei(x,y,e)}while(0);zb=K;return}function di(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var g=0.0,h=0.0,i=0,j=0.0,k=0,l=0;l=c[b>>2]|0;k=c[a>>2]|0;j=+f[k>>2];h=+f[l>>2];if(!(j>2]|0)>>>0<(c[l+4>>2]|0)>>>0;else e=1;i=c[d>>2]|0;g=+f[i>>2];if(!(h>2]|0)>>>0<(c[i+4>>2]|0)>>>0;else b=1;do if(!e)if(b){f[l>>2]=g;f[i>>2]=h;d=l+4|0;i=i+4|0;a=c[d>>2]|0;c[d>>2]=c[i>>2];c[i>>2]=a;g=+f[k>>2];h=+f[l>>2];if(!(g>2]|0;a=c[d>>2]|0;if(e>>>0>=a>>>0){b=1;break}}else{e=k+4|0;b=e;a=c[d>>2]|0;e=c[e>>2]|0}f[k>>2]=h;f[l>>2]=g;c[b>>2]=a;c[d>>2]=e;b=2}else b=0;else{if(b){f[k>>2]=g;f[i>>2]=j;k=k+4|0;b=i+4|0;l=c[k>>2]|0;c[k>>2]=c[b>>2];c[b>>2]=l;b=1;break}f[k>>2]=h;f[l>>2]=j;k=k+4|0;a=l+4|0;d=c[k>>2]|0;c[k>>2]=c[a>>2];c[a>>2]=d;g=+f[i>>2];if(!(j>2]|0;if(d>>>0>=e>>>0){b=1;break}}else{e=i+4|0;b=e;e=c[e>>2]|0}f[l>>2]=g;f[i>>2]=j;c[a>>2]=e;c[b>>2]=d;b=2}while(0);return b|0}function ei(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0,g=0.0,h=0,i=0,j=0,k=0,l=0;j=c[b>>2]|0;k=j+-8|0;l=c[a>>2]|0;while(1){if((l|0)==(k|0))break;a:do if((l|0)==(j|0))b=j;else{b=l;while(1){h=b+4|0;d=b;while(1){i=d+8|0;if((i|0)==(j|0))break a;e=+f[b>>2];g=+f[i>>2];if(e>2]|0)>>>0<(c[d+12>>2]|0)>>>0:0)break;d=i}b=i}}while(0);if((b|0)!=(l|0)){d=c[l>>2]|0;c[l>>2]=c[b>>2];c[b>>2]=d;d=l+4|0;i=b+4|0;h=c[d>>2]|0;c[d>>2]=c[i>>2];c[i>>2]=h}i=l+8|0;c[a>>2]=i;l=i}return}function fi(a){a=a|0;return 536870911}function gi(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function hi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function ii(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-8|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function ji(a){a=+a;return +(a*a)}function ki(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=((c[d>>2]|0)-f|0)/36|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b*36|0)}else Hi(a,b-e|0);return}function li(a){a=a|0;return c[a+16>>2]|0}function mi(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;var g=0.0,h=0.0;h=1.0/+(1<>2]=h*c+g;f[b>>2]=h*d+g;return}function ni(a){a=a|0;return a|0}function oi(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;j=zb;zb=zb+16|0;i=j;k=Ng(d)|0;k=(k|0)==(Ng(e)|0)&1;do if((Ng(f)|0)==(k|0)){k=Og(d)|0;k=(k|0)==(Og(e)|0)&1;if((Og(f)|0)==(k|0)){yi(a,b,d,e,f,g,h);break}else{k=Xf(Xf(PE(Xf(Xf(Xf(56032,24457)|0,24528)|0,35e3)|0,466)|0,35007)|0,24621)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(k,h)|0;ME(k)|0;ua()}}else{k=Ng(d)|0;if((k|0)==(Ng(e)|0)?(k=(Ng(e)|0)>>>1,(k|0)==(Ng(f)|0)):0){k=Og(d)|0;if((k|0)==(Og(e)|0)?(k=(Og(e)|0)>>>1,(k|0)==(Og(f)|0)):0){zi(a,b,d,e,f,g,h);break}k=Xf(Xf(PE(Xf(Xf(Xf(56032,24653)|0,24528)|0,35e3)|0,469)|0,35007)|0,24621)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);l=XF(i,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(i);QE(k,l)|0;ME(k)|0;ua()}l=(Ng(d)|0)>>>1;if((l|0)==(Ng(e)|0)?(l=Ng(e)|0,(l|0)==(Ng(f)|0)):0){l=(Ng(d)|0)>>>1;if((l|0)==(Ng(e)|0)?(l=Ng(e)|0,(l|0)==(Ng(f)|0)):0){Ai(a,b,d,e,f,g,h);break}l=Xf(Xf(PE(Xf(Xf(Xf(56032,24750)|0,24528)|0,35e3)|0,472)|0,35007)|0,24621)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}l=Xf(Xf(PE(Xf(Xf(Xf(56032,31132)|0,24528)|0,35e3)|0,475)|0,35007)|0,24843)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}while(0);zb=j;return 1}function pi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=zb;zb=zb+48|0;d=e;if(ti(d,b,1.1920928955078125e-07)|0){ui(a,d,c);a=1}else a=0;zb=e;return a|0}function qi(a,b){a=a|0;b=b|0;var c=0,d=0.0;c=b+16|0;d=+f[b>>2]*+f[c>>2];d=d-+ji(+f[b+4>>2]);if(d==0.0)a=0;else{d=+ji(+f[b>>2]+ +f[c>>2])/d;f[a>>2]=d;a=1}return a|0}function ri(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=+d;e=e|0;var g=0.0,h=0.0;g=+hz(1.0,e+-1|0)+-.5;h=+(1<>2]=h*c+g;f[b>>2]=h*d+g;return}function si(a,b,d){a=a|0;b=b|0;d=+d;var e=0,g=0,h=0,i=0;g=zb;zb=zb+16|0;e=g;if(!(d>=0.0)){h=Xf(Xf(PE(Xf(Xf(Xf(56032,34104)|0,33900)|0,35e3)|0,232)|0,35007)|0,34138)|0;IE(e,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);i=XF(e,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(e);QE(h,i)|0;ME(h)|0;ua()}if(+(c[a+20>>2]|0)>d){d=+v(+(+f[a+24>>2]),+d)*+(1<>2]|0)+-12>>2]|0)|0);h=XF(e,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(e);QE(i,h)|0;ME(i)|0;ua()}return +(0.0)}function ti(a,b,d){a=a|0;b=b|0;d=+d;var e=0.0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=+vi(b);if(!(+t(+e)<=d)){e=1.0/e;j=b+16|0;g=b+20|0;m=b+32|0;d=e*+wi(+f[j>>2],+f[g>>2],+f[m>>2]);f[a>>2]=d;l=b+8|0;k=b+4|0;d=e*+xi(+f[l>>2],+f[k>>2],+f[m>>2],+f[b+28>>2]);i=a+4|0;f[i>>2]=d;d=e*+xi(+f[k>>2],+f[l>>2],+f[j>>2],+f[g>>2]);h=a+8|0;f[h>>2]=d;d=e*+wi(+f[b>>2],+f[l>>2],+f[m>>2]);f[a+16>>2]=d;d=e*+xi(+f[l>>2],+f[b>>2],+f[g>>2],+f[b+12>>2]);g=a+20|0;f[g>>2]=d;e=e*+wi(+f[b>>2],+f[k>>2],+f[j>>2]);f[a+32>>2]=e;c[a+12>>2]=c[i>>2];c[a+24>>2]=c[h>>2];c[a+28>>2]=c[g>>2];a=1}else a=0;return a|0}function ui(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;e=c+4|0;d=c+8|0;f[a>>2]=+f[b>>2]*+f[c>>2]+ +f[b+4>>2]*+f[e>>2]+ +f[b+8>>2]*+f[d>>2];f[a+4>>2]=+f[b+12>>2]*+f[c>>2]+ +f[b+16>>2]*+f[e>>2]+ +f[b+20>>2]*+f[d>>2];f[a+8>>2]=+f[b+24>>2]*+f[c>>2]+ +f[b+28>>2]*+f[e>>2]+ +f[b+32>>2]*+f[d>>2];return}function vi(a){a=a|0;var b=0,c=0,d=0.0,e=0.0,g=0.0,h=0.0,i=0;b=a+32|0;g=+f[b>>2];c=a+4|0;g=g*+ji(+f[c>>2]);e=+f[a+8>>2];i=a+20|0;h=+f[c>>2]*2.0*e*+f[i>>2];c=a+16|0;d=+f[c>>2];e=d*+ji(e);d=+f[a>>2];d=d*+ji(+f[i>>2]);return +(h-g-e-d+ +f[a>>2]*+f[c>>2]*+f[b>>2])}function wi(a,b,c){a=+a;b=+b;c=+c;return +(a*c-b*b)}function xi(a,b,c,d){a=+a;b=+b;c=+c;d=+d;return +(a*d-b*c)}function yi(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0,A=0;r=zb;zb=zb+32|0;o=r+20|0;p=r+16|0;q=r+12|0;j=r+8|0;k=r+4|0;l=r;if((h|0)>0?(h+1|0)>>>0<(Ng(e)|0)>>>0:0){m=i+-1|0;if((i|0)>0?(n=i+1|0,n>>>0<(Og(e)|0)>>>0):0){s=Ng(d)|0;if((s|0)!=(Ng(e)|0)){s=Xf(Xf(PE(Xf(Xf(Xf(56032,26146)|0,24528)|0,35e3)|0,311)|0,35007)|0,25078)|0;IE(o,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);t=XF(o,56736)|0;t=Ib[c[(c[t>>2]|0)+28>>2]&63](t,10)|0;YF(o);QE(s,t)|0;ME(s)|0;ua()}t=Ng(d)|0;if((t|0)!=(Ng(g)|0)){t=Xf(Xf(PE(Xf(Xf(Xf(56032,26545)|0,24528)|0,35e3)|0,312)|0,35007)|0,25078)|0;IE(o,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);s=XF(o,56736)|0;s=Ib[c[(c[s>>2]|0)+28>>2]&63](s,10)|0;YF(o);QE(t,s)|0;ME(t)|0;ua()}t=Og(d)|0;if((t|0)!=(Og(e)|0)){t=Xf(Xf(PE(Xf(Xf(Xf(56032,26198)|0,24528)|0,35e3)|0,313)|0,35007)|0,25078)|0;IE(o,t+(c[(c[t>>2]|0)+-12>>2]|0)|0);s=XF(o,56736)|0;s=Ib[c[(c[s>>2]|0)+28>>2]&63](s,10)|0;YF(o);QE(t,s)|0;ME(t)|0;ua()}t=Og(d)|0;if((t|0)==(Og(g)|0)){z=(ch(d,m)|0)+(h<<2)|0;A=(ch(d,i)|0)+(h<<2)|0;o=(ch(d,n)|0)+(h<<2)|0;d=(ch(e,i)|0)+(h<<2)|0;t=(ch(g,m)|0)+(h<<2)|0;m=(ch(g,i)|0)+(h<<2)|0;s=(ch(g,n)|0)+(h<<2)|0;Bi(p,q,j,k,l,e,h,i);v=+f[m>>2];u=+f[A>>2];w=v+(u-+f[d>>2]*2.0);y=(+f[A+-4>>2]-+f[A+4>>2]+(+f[m+4>>2]-+f[m+-4>>2]))*.25;x=(+f[z>>2]-+f[o>>2]+(+f[s>>2]-+f[t>>2]))*.25;c[a>>2]=c[j>>2];t=c[l>>2]|0;c[a+4>>2]=t;f[a+8>>2]=y;c[a+12>>2]=t;c[a+16>>2]=c[k>>2];f[a+20>>2]=x;f[a+24>>2]=y;f[a+28>>2]=x;f[a+32>>2]=w;f[b>>2]=-+f[p>>2];f[b+4>>2]=-+f[q>>2];f[b+8>>2]=-((v-u)*.5);zb=r;return}else{A=Xf(Xf(PE(Xf(Xf(Xf(56032,26597)|0,24528)|0,35e3)|0,314)|0,35007)|0,25078)|0;IE(o,A+(c[(c[A>>2]|0)+-12>>2]|0)|0);z=XF(o,56736)|0;z=Ib[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;YF(o);QE(A,z)|0;ME(A)|0;ua()}}A=Xf(Xf(PE(Xf(Xf(Xf(56032,24946)|0,24528)|0,35e3)|0,310)|0,35007)|0,25005)|0;IE(o,A+(c[(c[A>>2]|0)+-12>>2]|0)|0);z=XF(o,56736)|0;z=Ib[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;YF(o);QE(A,z)|0;ME(A)|0;ua()}A=Xf(Xf(PE(Xf(Xf(Xf(56032,24872)|0,24528)|0,35e3)|0,309)|0,35007)|0,24930)|0;IE(o,A+(c[(c[A>>2]|0)+-12>>2]|0)|0);z=XF(o,56736)|0;z=Ib[c[(c[z>>2]|0)+28>>2]&63](z,10)|0;YF(o);QE(A,z)|0;ME(A)|0;ua()}function zi(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=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.0,z=0.0,A=0.0,B=0.0,C=0.0;w=zb;zb=zb+32|0;t=w+28|0;u=w+24|0;v=w+20|0;o=w+16|0;p=w+12|0;q=w+8|0;r=w+4|0;s=w;if((h|0)>0?(h+1|0)>>>0<(Ng(e)|0)>>>0:0){j=i+-1|0;if((i|0)>0?(l=i+1|0,l>>>0<(Og(e)|0)>>>0):0){n=Ng(d)|0;if((n|0)!=(Ng(e)|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,26146)|0,24528)|0,35e3)|0,415)|0,35007)|0,25078)|0;IE(t,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(t,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(t);QE(n,m)|0;ME(n)|0;ua()}n=(Ng(d)|0)>>>1;if((n|0)!=(Ng(g)|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,25108)|0,24528)|0,35e3)|0,416)|0,35007)|0,25078)|0;IE(t,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(t,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(t);QE(n,m)|0;ME(n)|0;ua()}n=Og(d)|0;if((n|0)!=(Og(e)|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,26198)|0,24528)|0,35e3)|0,417)|0,35007)|0,25078)|0;IE(t,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(t,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(t);QE(n,m)|0;ME(n)|0;ua()}n=(Og(d)|0)>>>1;if((n|0)!=(Og(g)|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,25224)|0,24528)|0,35e3)|0,418)|0,35007)|0,25078)|0;IE(t,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(t,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(t);QE(n,m)|0;ME(n)|0;ua()}m=(ch(d,j)|0)+(h<<2)|0;n=(ch(d,i)|0)+(h<<2)|0;j=(ch(d,l)|0)+(h<<2)|0;d=(ch(e,i)|0)+(h<<2)|0;mi(u,v,+(h|0),+(i|0),1);k=+f[u>>2];if(!(k+-.5>=0.0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,26252)|0,24528)|0,35e3)|0,428)|0,35007)|0,26293)|0;IE(t,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);x=XF(t,56736)|0;x=Ib[c[(c[x>>2]|0)+28>>2]&63](x,10)|0;YF(t);QE(l,x)|0;ME(l)|0;ua()}if(!(+f[v>>2]+-.5>=0.0)){x=Xf(Xf(PE(Xf(Xf(Xf(56032,26347)|0,24528)|0,35e3)|0,429)|0,35007)|0,26388)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);l=XF(t,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(t);QE(x,l)|0;ME(x)|0;ua()}if(!(k+.5<+((Ng(g)|0)>>>0))){x=Xf(Xf(PE(Xf(Xf(Xf(56032,26442)|0,24528)|0,35e3)|0,430)|0,35007)|0,26293)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);l=XF(t,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(t);QE(x,l)|0;ME(x)|0;ua()}k=+f[v>>2]+.5;if(k<+((Og(g)|0)>>>0)){Bi(o,p,q,r,s,e,h,i);y=+Ci(g,+f[u>>2],+f[v>>2]);k=+f[n>>2];z=y+(k-+f[d>>2]*2.0);C=+f[n+-4>>2];C=C+ +Ci(g,+f[u>>2]+.5,+f[v>>2]);B=+f[n+4>>2];B=(C-(B+ +Ci(g,+f[u>>2]+-.5,+f[v>>2])))*.25;C=+f[m>>2];C=C+ +Ci(g,+f[u>>2],+f[v>>2]+.5);A=+f[j>>2];A=(C-(A+ +Ci(g,+f[u>>2],+f[v>>2]+-.5)))*.25;c[a>>2]=c[q>>2];x=c[s>>2]|0;c[a+4>>2]=x;f[a+8>>2]=B;c[a+12>>2]=x;c[a+16>>2]=c[r>>2];f[a+20>>2]=A;f[a+24>>2]=B;f[a+28>>2]=A;f[a+32>>2]=z;f[b>>2]=-+f[o>>2];f[b+4>>2]=-+f[p>>2];f[b+8>>2]=-((y-k)*.5);zb=w;return}else{x=Xf(Xf(PE(Xf(Xf(Xf(56032,26493)|0,24528)|0,35e3)|0,431)|0,35007)|0,26388)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);w=XF(t,56736)|0;w=Ib[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;YF(t);QE(x,w)|0;ME(x)|0;ua()}}x=Xf(Xf(PE(Xf(Xf(Xf(56032,24946)|0,24528)|0,35e3)|0,414)|0,35007)|0,25005)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);w=XF(t,56736)|0;w=Ib[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;YF(t);QE(x,w)|0;ME(x)|0;ua()}x=Xf(Xf(PE(Xf(Xf(Xf(56032,24872)|0,24528)|0,35e3)|0,413)|0,35007)|0,24930)|0;IE(t,x+(c[(c[x>>2]|0)+-12>>2]|0)|0);w=XF(t,56736)|0;w=Ib[c[(c[w>>2]|0)+28>>2]&63](w,10)|0;YF(t);QE(x,w)|0;ME(x)|0;ua()}function Ai(a,b,d,e,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0;t=zb;zb=zb+32|0;q=t+28|0;r=t+24|0;s=t+20|0;j=t+16|0;k=t+12|0;l=t+8|0;m=t+4|0;n=t;if((h|0)>0?(h+1|0)>>>0<(Ng(e)|0)>>>0:0){o=i+-1|0;if((i|0)>0?(p=i+1|0,p>>>0<(Og(e)|0)>>>0):0){u=(Ng(d)|0)>>>1;if((u|0)!=(Ng(e)|0)){u=Xf(Xf(PE(Xf(Xf(Xf(56032,25021)|0,24528)|0,35e3)|0,361)|0,35007)|0,25078)|0;IE(q,u+(c[(c[u>>2]|0)+-12>>2]|0)|0);v=XF(q,56736)|0;v=Ib[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;YF(q);QE(u,v)|0;ME(u)|0;ua()}v=(Ng(d)|0)>>>1;if((v|0)!=(Ng(g)|0)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,25108)|0,24528)|0,35e3)|0,362)|0,35007)|0,25078)|0;IE(q,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(q,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(q);QE(v,u)|0;ME(v)|0;ua()}v=(Og(d)|0)>>>1;if((v|0)!=(Og(e)|0)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,25165)|0,24528)|0,35e3)|0,363)|0,35007)|0,25078)|0;IE(q,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(q,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(q);QE(v,u)|0;ME(v)|0;ua()}v=(Og(d)|0)>>>1;if((v|0)==(Og(g)|0)){C=(ch(e,i)|0)+(h<<2)|0;v=(ch(g,o)|0)+(h<<2)|0;q=(ch(g,i)|0)+(h<<2)|0;u=(ch(g,p)|0)+(h<<2)|0;ri(r,s,+(h|0),+(i|0),1);Bi(j,k,l,m,n,e,h,i);w=+Ci(d,+f[r>>2],+f[s>>2]);x=+f[q>>2];y=x+(w-+f[C>>2]*2.0);B=+Ci(d,+f[r>>2]+-2.0,+f[s>>2]);B=B+ +f[q+4>>2];A=+Ci(d,+f[r>>2]+2.0,+f[s>>2]);A=(B-(A+ +f[q+-4>>2]))*.25;B=+Ci(d,+f[r>>2],+f[s>>2]+-2.0);B=B+ +f[u>>2];z=+Ci(d,+f[r>>2],+f[s>>2]+2.0);z=(B-(z+ +f[v>>2]))*.25;c[a>>2]=c[l>>2];v=c[n>>2]|0;c[a+4>>2]=v;f[a+8>>2]=A;c[a+12>>2]=v;c[a+16>>2]=c[m>>2];f[a+20>>2]=z;f[a+24>>2]=A;f[a+28>>2]=z;f[a+32>>2]=y;f[b>>2]=-+f[j>>2];f[b+4>>2]=-+f[k>>2];f[b+8>>2]=-((x-w)*.5);zb=t;return}else{C=Xf(Xf(PE(Xf(Xf(Xf(56032,25224)|0,24528)|0,35e3)|0,364)|0,35007)|0,25078)|0;IE(q,C+(c[(c[C>>2]|0)+-12>>2]|0)|0);v=XF(q,56736)|0;v=Ib[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;YF(q);QE(C,v)|0;ME(C)|0;ua()}}C=Xf(Xf(PE(Xf(Xf(Xf(56032,24946)|0,24528)|0,35e3)|0,360)|0,35007)|0,25005)|0;IE(q,C+(c[(c[C>>2]|0)+-12>>2]|0)|0);v=XF(q,56736)|0;v=Ib[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;YF(q);QE(C,v)|0;ME(C)|0;ua()}C=Xf(Xf(PE(Xf(Xf(Xf(56032,24872)|0,24528)|0,35e3)|0,359)|0,35007)|0,24930)|0;IE(q,C+(c[(c[C>>2]|0)+-12>>2]|0)|0);v=XF(q,56736)|0;v=Ib[c[(c[v>>2]|0)+28>>2]&63](v,10)|0;YF(q);QE(C,v)|0;ME(C)|0;ua()}function Bi(a,b,d,e,g,h,i,j){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0;n=zb;zb=zb+16|0;m=n;if((i|0)>0?(i+1|0)>>>0<(Ng(h)|0)>>>0:0){k=j+-1|0;if((j|0)>0?(l=j+1|0,l>>>0<(Og(h)|0)>>>0):0){k=(ch(h,k)|0)+(i<<2)|0;j=(ch(h,j)|0)+(i<<2)|0;m=(ch(h,l)|0)+(i<<2)|0;h=j+4|0;i=j+-4|0;f[a>>2]=(+f[h>>2]-+f[i>>2])*.5;f[b>>2]=(+f[m>>2]-+f[k>>2])*.5;f[d>>2]=+f[h>>2]+(+f[i>>2]-+f[j>>2]*2.0);f[e>>2]=+f[m>>2]+(+f[k>>2]-+f[j>>2]*2.0);f[g>>2]=(+f[k+-4>>2]+ +f[m+4>>2]-(+f[k+4>>2]+ +f[m+-4>>2]))*.25;zb=n;return}n=Xf(Xf(PE(Xf(Xf(Xf(56032,26089)|0,24528)|0,35e3)|0,285)|0,35007)|0,25005)|0;IE(m,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);j=XF(m,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(m);QE(n,j)|0;ME(n)|0;ua()}n=Xf(Xf(PE(Xf(Xf(Xf(56032,26033)|0,24528)|0,35e3)|0,284)|0,35007)|0,24930)|0;IE(m,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);j=XF(m,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(m);QE(n,j)|0;ME(n)|0;ua()}function Ci(a,b,c){a=a|0;b=+b;c=+c;var d=0,e=0,f=0;f=Di(a)|0;e=Ng(a)|0;d=Og(a)|0;return +(+Fi(f,e,d,Ei(a)|0,b,c))}function Di(a){a=a|0;return c[a+24>>2]|0}function Ei(a){a=a|0;return c[a+12>>2]|0}function Fi(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;return +(+Gi(a,b,c,d,e,f))}function Gi(a,b,d,e,g,h){a=a|0;b=b|0;d=d|0;e=e|0;g=+g;h=+h;var i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,t=0.0,u=0.0;p=zb;zb=zb+16|0;n=p;o=~~+s(+g);if((o|0)!=(~~g|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,25283)|0,25335)|0,35e3)|0,69)|0,35007)|0,25411)|0;IE(n,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);l=XF(n,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(n);QE(m,l)|0;ME(m)|0;ua()}l=~~+s(+h);if((l|0)!=(~~h|0)){m=Xf(Xf(PE(Xf(Xf(Xf(56032,25441)|0,25335)|0,35e3)|0,70)|0,35007)|0,25411)|0;IE(n,m+(c[(c[m>>2]|0)+-12>>2]|0)|0);k=XF(n,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(n);QE(m,k)|0;ME(m)|0;ua()}m=o+1|0;k=l+1|0;if(!((l|0)>-1&l>>>0>>0)){q=Xf(Xf(PE(Xf(Xf(Xf(56032,25493)|0,25335)|0,35e3)|0,79)|0,35007)|0,25539)|0;IE(n,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);r=XF(n,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(n);QE(q,r)|0;ME(q)|0;ua()}if(k>>>0>=d>>>0){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25556)|0,25335)|0,35e3)|0,80)|0,35007)|0,25616)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!((o|0)>-1&o>>>0>>0)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25640)|0,25335)|0,35e3)|0,81)|0,35007)|0,25685)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(m>>>0>=b>>>0){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25702)|0,25335)|0,35e3)|0,82)|0,35007)|0,25761)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}b=a+(B(l,e)|0)|0;a=b+e|0;u=+(m|0)-g;i=+(k|0)-h;j=u*i;t=g-+(o|0);i=t*i;h=h-+(l|0);g=u*h;h=t*h;if(!(j>=0.0)|!(j<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25785)|0,25335)|0,35e3)|0,94)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!(i>=0.0)|!(i<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25845)|0,25335)|0,35e3)|0,95)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!(g>=0.0)|!(g<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25892)|0,25335)|0,35e3)|0,96)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!(h>=0.0)|!(h<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25939)|0,25335)|0,35e3)|0,97)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}if(!(h+(g+(j+i))<=1.0001)){r=Xf(Xf(PE(Xf(Xf(Xf(56032,25986)|0,25335)|0,35e3)|0,98)|0,35007)|0,25832)|0;IE(n,r+(c[(c[r>>2]|0)+-12>>2]|0)|0);q=XF(n,56736)|0;q=Ib[c[(c[q>>2]|0)+28>>2]&63](q,10)|0;YF(n);QE(r,q)|0;ME(r)|0;ua()}else{zb=p;return +(j*+f[b+(o<<2)>>2]+i*+f[b+(m<<2)>>2]+g*+f[a+(o<<2)>>2]+h*+f[a+(m<<2)>>2])}return +(0.0)}function Hi(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((((c[g>>2]|0)-d|0)/36|0)>>>0>>0){d=((d-(c[a>>2]|0)|0)/36|0)+b|0;e=$h(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=((c[g>>2]|0)-j|0)/36|0;g=k<<1;vh(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,((c[h>>2]|0)-j|0)/36|0,a+8|0);Ji(f,b);wh(a,f);xh(f);break}}else Ii(a,b);while(0);zb=i;return}function Ii(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+4|0;a=c[e>>2]|0;do{d=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(d|0));a=(c[e>>2]|0)+36|0;c[e>>2]=a;b=b+-1|0}while((b|0)!=0);return}function Ji(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+8|0;a=c[e>>2]|0;do{d=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(d|0));a=(c[e>>2]|0)+36|0;c[e>>2]=a;b=b+-1|0}while((b|0)!=0);return}function Ki(a){a=a|0;return (c[a+4>>2]|0)-(c[a>>2]|0)>>5|0}function Li(a,b){a=a|0;b=b|0;return (c[a>>2]|0)+(b<<5)|0}function Mi(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+16|0;d=f;e=c[a>>2]|0;if((c[a+4>>2]|0)-e>>5>>>0>b>>>0){e=Ng(e)|0;e=~~+Pi(+Oi(+(((e>>>0)/((Ng((c[a>>2]|0)+(b<<5)|0)|0)>>>0)|0)>>>0)));zb=f;return e|0}else{f=Xf(Xf(PE(Xf(Xf(Xf(56032,26949)|0,24528)|0,35e3)|0,94)|0,35007)|0,26995)|0;IE(d,f+(c[(c[f>>2]|0)+-12>>2]|0)|0);e=XF(d,56736)|0;e=Ib[c[(c[e>>2]|0)+28>>2]&63](e,10)|0;YF(d);QE(f,e)|0;ME(f)|0;ua()}return 0}function Ni(a,b){a=a|0;b=b|0;return (b|0)%(c[a+16>>2]|0)|0|0}function Oi(a){a=+a;return +(+z(+a)/.6931471824645996)}function Pi(a){a=+a;return +(+s(+(a+.5)))}function Qi(a){a=a|0;c[a>>2]=15676;gh(a+56|0);gh(a+44|0);Si(a+32|0);Ti(a);return}function Ri(a){a=a|0;Qi(a);SA(a);return}function Si(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Ti(a){a=a|0;c[a>>2]=15692;mh(a+4|0);return}function Ui(a){a=a|0;Ti(a);SA(a);return}function Vi(a,g,h,i,j){a=a|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;t=zb;zb=zb+16|0;k=t;if(i>>>0<=4){s=Xf(Xf(PE(Xf(Xf(Xf(56032,27047)|0,27081)|0,35e3)|0,55)|0,35007)|0,27176)|0;IE(k,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);r=XF(k,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(k);QE(s,r)|0;ME(s)|0;ua()}if(j>>>0<=4){s=Xf(Xf(PE(Xf(Xf(Xf(56032,27195)|0,27081)|0,35e3)|0,56)|0,35007)|0,27176)|0;IE(k,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);r=XF(k,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(k);QE(s,r)|0;ME(s)|0;ua()}o=i+-1|0;p=i+-2|0;q=i+-3|0;r=i+-4|0;l=g;m=0;while(1){if((m|0)==(j|0))break;s=h+(B(m,i)|0)|0;k=d[s>>0]|0;u=s+1|0;n=s+2|0;b[l>>1]=(k*7|0)+(d[n>>0]|0)+((d[u>>0]|0)+k<<2);k=d[s>>0]|0;b[l+2>>1]=((d[u>>0]|0)*6|0)+k+(d[s+3>>0]|0)+((d[n>>0]|0)+k<<2);k=2;n=l+4|0;while(1){if((k|0)==(p|0))break;u=k+1|0;b[n>>1]=((d[s+k>>0]|0)*6|0)+(d[s+(k+-2)>>0]|0)+((d[s+u>>0]|0)+(d[s+(k+-1)>>0]|0)<<2)+(d[s+(k+2)>>0]|0);k=u;n=n+2|0}u=l+(p<<1)|0;n=s+p|0;k=s+q|0;v=s+o|0;w=d[v>>0]|0;b[u>>1]=((d[n>>0]|0)*6|0)+w+(d[s+r>>0]|0)+(w+(d[k>>0]|0)<<2);s=d[v>>0]|0;b[u+2>>1]=(s*7|0)+(d[k>>0]|0)+((d[n>>0]|0)+s<<2);l=l+(i<<1)|0;m=m+1|0}s=j+-2|0;k=g+(i<<1)|0;q=k+(i<<1)|0;l=0;m=q;n=k;o=g;p=a;while(1){if((l|0)==(i|0))break;w=e[o>>1]|0;f[p>>2]=+((w*7|0)+((e[n>>1]|0)+w<<2)+(e[m>>1]|0)|0)*.00390625;l=l+1|0;m=m+2|0;n=n+2|0;o=o+2|0;p=p+4|0}o=0;p=q+(i<<1)|0;n=q;l=g;m=a+(i<<2)|0;while(1){if((o|0)==(i|0))break;w=e[l>>1]|0;f[m>>2]=+(((e[k>>1]|0)*6|0)+w+((e[n>>1]|0)+w<<2)+(e[p>>1]|0)|0)*.00390625;o=o+1|0;p=p+2|0;n=n+2|0;k=k+2|0;l=l+2|0;m=m+4|0}l=2;while(1){if((l|0)==(s|0))break;q=g+((B(l+-2|0,i)|0)<<1)|0;p=q+(i<<1)|0;o=p+(i<<1)|0;n=o+(i<<1)|0;k=0;m=n+(i<<1)|0;r=a+((B(l,i)|0)<<2)|0;while(1){if((k|0)==(i|0))break;f[r>>2]=+(((e[o>>1]|0)*6|0)+(e[q>>1]|0)+((e[n>>1]|0)+(e[p>>1]|0)<<2)+(e[m>>1]|0)|0)*.00390625;k=k+1|0;m=m+2|0;n=n+2|0;o=o+2|0;p=p+2|0;q=q+2|0;r=r+4|0}l=l+1|0}p=g+((B(j+-4|0,i)|0)<<1)|0;o=p+(i<<1)|0;n=o+(i<<1)|0;l=0;m=n+(i<<1)|0;k=a+((B(s,i)|0)<<2)|0;while(1){if((l|0)==(i|0))break;w=e[m>>1]|0;f[k>>2]=+(((e[n>>1]|0)*6|0)+(e[p>>1]|0)+(w+(e[o>>1]|0)<<2)+w|0)*.00390625;l=l+1|0;m=m+2|0;n=n+2|0;o=o+2|0;p=p+2|0;k=k+4|0}o=g+((B(j+-3|0,i)|0)<<1)|0;n=o+(i<<1)|0;l=0;m=n+(i<<1)|0;k=a+((B(j+-1|0,i)|0)<<2)|0;while(1){if((l|0)==(i|0))break;w=e[m>>1]|0;f[k>>2]=+((w*6|0)+(e[o>>1]|0)+(w+(e[n>>1]|0)<<2)+w|0)*.00390625;l=l+1|0;m=m+2|0;n=n+2|0;o=o+2|0;k=k+4|0}zb=t;return}function Wi(a,b,d,e,g){a=a|0;b=b|0;d=d|0;e=e|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.0,s=0,t=0;q=zb;zb=zb+16|0;h=q;if(e>>>0<=4){p=Xf(Xf(PE(Xf(Xf(Xf(56032,27047)|0,27081)|0,35e3)|0,168)|0,35007)|0,27176)|0;IE(h,p+(c[(c[p>>2]|0)+-12>>2]|0)|0);o=XF(h,56736)|0;o=Ib[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;YF(h);QE(p,o)|0;ME(p)|0;ua()}if(g>>>0<=4){p=Xf(Xf(PE(Xf(Xf(Xf(56032,27195)|0,27081)|0,35e3)|0,169)|0,35007)|0,27176)|0;IE(h,p+(c[(c[p>>2]|0)+-12>>2]|0)|0);o=XF(h,56736)|0;o=Ib[c[(c[o>>2]|0)+28>>2]&63](o,10)|0;YF(h);QE(p,o)|0;ME(p)|0;ua()}l=e+-1|0;m=e+-2|0;n=e+-3|0;o=e+-4|0;i=b;j=0;while(1){if((j|0)==(g|0))break;p=d+((B(j,e)|0)<<2)|0;r=+f[p>>2];k=p+4|0;h=p+8|0;f[i>>2]=+f[h>>2]+(r+(r*6.0+(r+ +f[k>>2])*4.0));r=+f[p>>2];f[i+4>>2]=+f[p+12>>2]+(r+(+f[k>>2]*6.0+(r+ +f[h>>2])*4.0));h=2;k=i+8|0;while(1){if((h|0)==(m|0))break;s=h+1|0;f[k>>2]=+f[p+(h+2<<2)>>2]+(+f[p+(h+-2<<2)>>2]+(+f[p+(h<<2)>>2]*6.0+(+f[p+(h+-1<<2)>>2]+ +f[p+(s<<2)>>2])*4.0));h=s;k=k+4|0}s=i+(m<<2)|0;k=p+(m<<2)|0;h=p+(n<<2)|0;t=p+(l<<2)|0;r=+f[t>>2];f[s>>2]=r+(+f[p+(o<<2)>>2]+(+f[k>>2]*6.0+(+f[h>>2]+r)*4.0));r=+f[t>>2];f[s+4>>2]=r+(+f[h>>2]+(r*6.0+(r+ +f[k>>2])*4.0));i=i+(e<<2)|0;j=j+1|0}p=g+-2|0;h=b+(e<<2)|0;n=h+(e<<2)|0;i=0;j=n;k=h;l=b;m=a;while(1){if((i|0)==(e|0))break;r=+f[l>>2];f[m>>2]=(+f[j>>2]+(r+(r*6.0+(r+ +f[k>>2])*4.0)))*.00390625;i=i+1|0;j=j+4|0;k=k+4|0;l=l+4|0;m=m+4|0}l=0;m=n+(e<<2)|0;k=n;i=b;j=a+(e<<2)|0;while(1){if((l|0)==(e|0))break;r=+f[i>>2];f[j>>2]=(+f[m>>2]+(r+(+f[h>>2]*6.0+(r+ +f[k>>2])*4.0)))*.00390625;l=l+1|0;m=m+4|0;k=k+4|0;h=h+4|0;i=i+4|0;j=j+4|0}i=2;while(1){if((i|0)==(p|0))break;n=b+((B(i+-2|0,e)|0)<<2)|0;m=n+(e<<2)|0;l=m+(e<<2)|0;k=l+(e<<2)|0;h=0;j=k+(e<<2)|0;o=a+((B(i,e)|0)<<2)|0;while(1){if((h|0)==(e|0))break;f[o>>2]=(+f[j>>2]+(+f[n>>2]+(+f[l>>2]*6.0+(+f[m>>2]+ +f[k>>2])*4.0)))*.00390625;h=h+1|0;j=j+4|0;k=k+4|0;l=l+4|0;m=m+4|0;n=n+4|0;o=o+4|0}i=i+1|0}m=b+((B(g+-4|0,e)|0)<<2)|0;l=m+(e<<2)|0;k=l+(e<<2)|0;i=0;j=k+(e<<2)|0;h=a+((B(p,e)|0)<<2)|0;while(1){if((i|0)==(e|0))break;r=+f[j>>2];f[h>>2]=(r+(+f[m>>2]+(+f[k>>2]*6.0+(+f[l>>2]+r)*4.0)))*.00390625;i=i+1|0;j=j+4|0;k=k+4|0;l=l+4|0;m=m+4|0;h=h+4|0}l=b+((B(g+-3|0,e)|0)<<2)|0;k=l+(e<<2)|0;i=0;j=k+(e<<2)|0;h=a+((B(g+-1|0,e)|0)<<2)|0;while(1){if((i|0)==(e|0))break;r=+f[j>>2];f[h>>2]=(r+(+f[l>>2]+(r*6.0+(+f[k>>2]+r)*4.0)))*.00390625;i=i+1|0;j=j+4|0;k=k+4|0;l=l+4|0;h=h+4|0}zb=q;return}function Xi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;l=c>>>1;j=d>>>1;k=c<<1;i=0;while(1){if((i|0)==(j|0))break;g=b+((B(k,i)|0)<<2)|0;d=0;e=g+(c<<2)|0;h=a;while(1){if((d|0)==(l|0))break;f[h>>2]=(+f[g>>2]+ +f[g+4>>2]+ +f[e>>2]+ +f[e+4>>2])*.25;d=d+1|0;e=e+8|0;g=g+8|0;h=h+4|0}i=i+1|0;a=a+(l<<2)|0}return}function Yi(a){a=a|0;c[a>>2]=15692;a=a+4|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function Zi(a,b,d){a=a|0;b=b|0;d=d|0;var e=0.0;c[a+16>>2]=b;c[a+20>>2]=d;e=+La(+(1.0/+(d+-1|0)));f[a+24>>2]=e;e=1.0/+z(+e);f[a+28>>2]=e;return}function _i(a){a=a|0;var b=0;Yi(a);c[a>>2]=15676;a=a+32|0;b=a+36|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function $i(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;Zi(a,e,3);k=a+4|0;l=a+20|0;Rg(k,B(c[l>>2]|0,e)|0);g=0;while(1){if((g|0)>=(e|0))break;h=b>>>g;i=d>>>g;f=0;while(1){j=c[l>>2]|0;if(f>>>0>=j>>>0)break;j=(B(j,g)|0)+f|0;cq((c[k>>2]|0)+(j<<5)|0,2,h,i,-1,1);f=f+1|0}g=g+1|0}l=B(d,b)|0;aj(a+32|0,l);fh(a+44|0,l);fh(a+56|0,l);return}function aj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>1;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<1)}else bj(a,b-e|0);return}function bj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>1>>>0>>0){d=(d-(c[a>>2]|0)>>1)+b|0;e=dj(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;g=(c[g>>2]|0)-j|0;ej(f,g>>1>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>1,a+8|0);fj(f,b);gj(a,f);hj(f);break}}else cj(a,b);while(0);zb=i;return}function cj(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b<<1|0)|0;c[a>>2]=d+(b<<1);return}function dj(a){a=a|0;return 2147483647}function ej(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if((b|0)<0){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<1)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<1)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<1);return}function fj(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b<<1|0)|0;c[a>>2]=d+(b<<1);return}function gj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>1)<<1)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function hj(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-2|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function ij(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;h=zb;zb=zb+16|0;d=h;if((Mg(b)|0)!=1){g=Xf(Xf(PE(Xf(Xf(Xf(56032,27230)|0,27081)|0,35e3)|0,330)|0,35007)|0,27281)|0;IE(d,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);f=XF(d,56736)|0;f=Ib[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;YF(d);QE(g,f)|0;ME(g)|0;ua()}if((ah(b)|0)!=1){g=Xf(Xf(PE(Xf(Xf(Xf(56032,27305)|0,27081)|0,35e3)|0,331)|0,35007)|0,27350)|0;IE(d,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);f=XF(d,56736)|0;f=Ib[c[(c[f>>2]|0)+28>>2]&63](f,10)|0;YF(d);QE(g,f)|0;ME(g)|0;ua()}e=a+4|0;f=a+16|0;g=a+20|0;if(((c[a+8>>2]|0)-(c[e>>2]|0)>>5|0)!=(B(c[g>>2]|0,c[f>>2]|0)|0)){i=Xf(Xf(PE(Xf(Xf(Xf(56032,27376)|0,27081)|0,35e3)|0,333)|0,35007)|0,27450)|0;IE(d,i+(c[(c[i>>2]|0)+-12>>2]|0)|0);j=XF(d,56736)|0;j=Ib[c[(c[j>>2]|0)+28>>2]&63](j,10)|0;YF(d);QE(i,j)|0;ME(i)|0;ua()}j=Ng(b)|0;if((j|0)!=(Ng(c[e>>2]|0)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,27485)|0,27081)|0,35e3)|0,334)|0,35007)|0,27545)|0;IE(d,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(d,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(d);QE(j,i)|0;ME(j)|0;ua()}j=Og(b)|0;if((j|0)!=(Og(c[e>>2]|0)|0)){j=Xf(Xf(PE(Xf(Xf(Xf(56032,27577)|0,27081)|0,35e3)|0,335)|0,35007)|0,27545)|0;IE(d,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(d,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(d);QE(j,i)|0;ME(j)|0;ua()}jj(a,c[e>>2]|0,b);b=c[e>>2]|0;jj(a,b+32|0,b);b=c[e>>2]|0;kj(a,b+64|0,b+32|0);b=1;while(1){if(b>>>0>=(c[f>>2]|0)>>>0)break;k=B(c[g>>2]|0,b)|0;k=lj((c[e>>2]|0)+(k<<5)|0)|0;d=(B(c[g>>2]|0,b)|0)+-1|0;d=lj((c[e>>2]|0)+(d<<5)|0)|0;i=(B(c[g>>2]|0,b)|0)+-1|0;i=Ng((c[e>>2]|0)+(i<<5)|0)|0;j=(B(c[g>>2]|0,b)|0)+-1|0;Xi(k,d,i,Og((c[e>>2]|0)+(j<<5)|0)|0);j=B(c[g>>2]|0,b)|0;i=c[e>>2]|0;jj(a,i+(j+1<<5)|0,i+(j<<5)|0);j=B(c[g>>2]|0,b)|0;i=c[e>>2]|0;kj(a,i+(j+2<<5)|0,i+(j+1<<5)|0);b=b+1|0}zb=h;return}function jj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;f=zb;zb=zb+16|0;e=f;if((Mg(b)|0)!=2){g=Xf(Xf(PE(Xf(Xf(Xf(56032,27639)|0,27081)|0,35e3)|0,357)|0,35007)|0,27686)|0;IE(e,g+(c[(c[g>>2]|0)+-12>>2]|0)|0);h=XF(e,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(e);QE(g,h)|0;ME(g)|0;ua()}switch(Mg(d)|0){case 1:{e=lj(b)|0;g=c[a+32>>2]|0;h=Di(d)|0;Vi(e,g,h,Ng(d)|0,Og(d)|0);break}case 2:{e=lj(b)|0;g=c[a+44>>2]|0;h=Di(d)|0;Wi(e,g,h,Ng(d)|0,Og(d)|0);break}case 0:{h=O(16)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;gO(e,27722,Yf(27722)|0);mj(h,e);Q(h|0,13208,5)}default:{h=O(16)|0;c[e>>2]=0;c[e+4>>2]=0;c[e+8>>2]=0;gO(e,27741,Yf(27741)|0);mj(h,e);Q(h|0,13208,5)}}zb=f;return}function kj(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=zb;zb=zb+32|0;f=e;j=c[a+56>>2]|0;i=Mg(d)|0;h=Ng(d)|0;g=Og(d)|0;kq(f,j,i,h,g,Ei(d)|0,1);jj(a,f,d);jj(a,b,f);rq(f);zb=e;return}function lj(a){a=a|0;return c[a+24>>2]|0}function mj(a,b){a=a|0;b=b|0;c[a>>2]=15708;fO(a+4|0,b);return}function nj(a){a=a|0;c[a>>2]=15708;jO(a+4|0);return}function oj(a){a=a|0;nj(a);SA(a);return}function pj(b){b=b|0;b=b+4|0;if((a[b+11>>0]|0)<0)b=c[b>>2]|0;return b|0}function qj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0;m=c+-1|0;j=b+(c<<2)|0;h=b+4|0;n=+f[b>>2];o=+f[h>>2]-n;n=+f[j>>2]-n;p=+y(+n,+o)+3.141592653589793;f[a>>2]=p;n=+u(+(o*o+n*n));f[a+4>>2]=n;g=1;e=j;while(1){i=a+8|0;e=e+4|0;if(g>>>0>=m>>>0)break;l=h+4|0;o=+f[l>>2]-+f[h+-4>>2];p=+f[e>>2]-+f[h>>2];n=+y(+p,+o)+3.141592653589793;f[i>>2]=n;p=+u(+(o*o+p*p));f[a+12>>2]=p;g=g+1|0;h=l;a=i}l=d+-1|0;p=+f[h>>2];o=p-+f[h+-4>>2];p=+f[e>>2]-p;n=+y(+p,+o)+3.141592653589793;f[i>>2]=n;p=+u(+(o*o+p*p));f[a+12>>2]=p;k=1;g=i;d=j+(c<<2)|0;h=b;a=j;while(1){e=g+8|0;if(k>>>0>=l>>>0)break;j=a+4|0;o=+f[j>>2]-+f[a>>2];p=+f[d>>2]-+f[h>>2];n=+y(+p,+o)+3.141592653589793;f[e>>2]=n;p=+u(+(o*o+p*p));f[g+12>>2]=p;i=1;g=g+16|0;while(1){a=d+4|0;e=h+4|0;if(i>>>0>=m>>>0)break;q=j+4|0;o=+f[q>>2]-+f[j+-4>>2];p=+f[a>>2]-+f[e>>2];n=+y(+p,+o)+3.141592653589793;f[g>>2]=n;p=+u(+(o*o+p*p));f[g+4>>2]=p;i=i+1|0;d=a;h=e;j=q;g=g+8|0}o=+f[j>>2]-+f[j+-4>>2];p=+f[a>>2]-+f[e>>2];n=+y(+p,+o)+3.141592653589793;f[g>>2]=n;p=+u(+(o*o+p*p));f[g+4>>2]=p;k=k+1|0;d=d+8|0;h=h+8|0;a=j+4|0}h=b+((B(l,c)|0)<<2)|0;a=h+(0-c<<2)|0;q=h+4|0;p=+f[h>>2];o=+f[q>>2]-p;p=p-+f[a>>2];n=+y(+p,+o)+3.141592653589793;f[e>>2]=n;p=+u(+(o*o+p*p));f[g+12>>2]=p;h=1;g=q;while(1){d=e+8|0;a=a+4|0;if(h>>>0>=m>>>0)break;q=g+4|0;o=+f[q>>2]-+f[g+-4>>2];p=+f[g>>2]-+f[a>>2];n=+y(+p,+o)+3.141592653589793;f[d>>2]=n;p=+u(+(o*o+p*p));f[e+12>>2]=p;h=h+1|0;e=d;g=q}p=+f[g>>2];o=p-+f[g+-4>>2];p=p-+f[a>>2];n=+y(+p,+o)+3.141592653589793;f[d>>2]=n;p=+u(+(o*o+p*p));f[e+12>>2]=p;return}function rj(a){a=a|0;return 536870911}function sj(a){a=a|0;var b=0;c[a>>2]=0;c[a+4>>2]=0;a=a+12|0;b=a+40|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function tj(a){a=a|0;mh(a+40|0);gh(a+28|0);return}function uj(a,b,d,e,g,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;h=h|0;i=+i;j=+j;k=k|0;l=+l;var m=0,n=0,o=0;c[a>>2]=e;n=a+4|0;c[n>>2]=g;c[a+8>>2]=h;f[a+12>>2]=i;f[a+16>>2]=j;c[a+20>>2]=k;f[a+24>>2]=l;fh(a+28|0,h);o=a+40|0;Rg(o,B(c[n>>2]|0,c[a>>2]|0)|0);k=0;while(1){if((k|0)==(e|0))break;a=B(k,g)|0;m=b>>>k;n=d>>>k;h=0;while(1){if((h|0)==(g|0))break;cq((c[o>>2]|0)+(h+a<<5)|0,2,m,n,-1,2);h=h+1|0}k=k+1|0}return}function vj(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;g=zb;zb=zb+16|0;f=g;e=a+40|0;a=0;while(1){d=Ah(b)|0;if(a>>>0>=(c[d+4>>2]|0)-(c[d>>2]|0)>>5>>>0){a=3;break}d=Ah(b)|0;d=(c[d>>2]|0)+(a<<5)|0;h=Ng(d)|0;if((h|0)!=((Ei(d)|0)>>>2|0)){a=5;break}j=wj((c[e>>2]|0)+(a<<5)|0)|0;i=xj(d)|0;h=Ng(d)|0;qj(j,i,h,Og(d)|0);a=a+1|0}if((a|0)==3){zb=g;return}else if((a|0)==5){j=Xf(Xf(PE(Xf(Xf(Xf(56032,27784)|0,27845)|0,35e3)|0,96)|0,35007)|0,27934)|0;IE(f,j+(c[(c[j>>2]|0)+-12>>2]|0)|0);i=XF(f,56736)|0;i=Ib[c[(c[i>>2]|0)+28>>2]&63](i,10)|0;YF(f);QE(j,i)|0;ME(j)|0;ua()}}function wj(a){a=a|0;return c[a+24>>2]|0}function xj(a){a=a|0;return c[a+24>>2]|0}function yj(a,b,d,e,g,i,j,k){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;i=+i;j=+j;k=+k;var l=0,m=0,n=0.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,C=0,D=0,E=0,F=0,G=0;F=zb;zb=zb+48|0;D=F+32|0;E=F+24|0;w=F+16|0;x=F+12|0;y=F+8|0;z=F+4|0;C=F;if(!(i>=0.0)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,27975)|0,27845)|0,35e3)|0,119)|0,35007)|0,28005)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}l=a+4|0;v=(B(c[l>>2]|0,e)|0)+g|0;m=a+40|0;if(!(+((Ng((c[m>>2]|0)+(v<<5)|0)|0)>>>0)>i)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,28024)|0,27845)|0,35e3)|0,120)|0,35007)|0,28104)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}if(!(j>=0.0)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,28140)|0,27845)|0,35e3)|0,121)|0,35007)|0,28170)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}v=(B(c[l>>2]|0,e)|0)+g|0;if(!(+((Og((c[m>>2]|0)+(v<<5)|0)|0)>>>0)>j)){v=Xf(Xf(PE(Xf(Xf(Xf(56032,28189)|0,27845)|0,35e3)|0,122)|0,35007)|0,28270)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}q=(B(c[l>>2]|0,e)|0)+g|0;q=(c[m>>2]|0)+(q<<5)|0;if((ah(q)|0)!=2){v=Xf(Xf(PE(Xf(Xf(Xf(56032,28307)|0,27845)|0,35e3)|0,126)|0,35007)|0,28348)|0;IE(D,v+(c[(c[v>>2]|0)+-12>>2]|0)|0);u=XF(D,56736)|0;u=Ib[c[(c[u>>2]|0)+28>>2]&63](u,10)|0;YF(D);QE(v,u)|0;ME(v)|0;ua()}c[d>>2]=0;e=~~(i+.5);l=~~(j+.5);a:do if(((e|0)>=0?!((l|0)<0|(Ng(q)|0)>>>0<=e>>>0):0)?(Og(q)|0)>>>0>l>>>0:0){n=+zj(1.0,+f[a+12>>2]*k);s=-1.0/(+ji(n)*2.0);n=n*+f[a+16>>2];t=+A(+(+ji(n)));m=~~(n+.5);p=Aj(0,e-m|0)|0;o=Bj(m+e|0,(Ng(q)|0)+-1|0)|0;e=Aj(0,l-m|0)|0;m=Bj(m+l|0,(Og(q)|0)+-1|0)|0;u=a+28|0;v=c[u>>2]|0;Cj(v,(c[a+32>>2]|0)-v>>2);v=a+8|0;while(1){if((e|0)>(m|0))break;k=+ji(+(e|0)-j);g=ch(q,e)|0;l=p;while(1){if((l|0)>(o|0))break;n=k+ +ji(+(l|0)-i);if(!(n>t)){G=g+(l<<1<<2)|0;n=+Dj(s*n);r=c[v>>2]|0;Ej(c[u>>2]|0,+f[G>>2]*+(r|0)*.159154943091895,n*+f[G+4>>2],r)}l=l+1|0}e=e+1|0}l=a+20|0;e=0;while(1){if((e|0)>=(c[l>>2]|0))break;G=c[u>>2]|0;Fj(G,G,c[v>>2]|0,15720);e=e+1|0}l=c[v>>2]|0;e=0;s=0.0;while(1){if((e|0)>=(l|0))break;j=+f[(c[u>>2]|0)+(e<<2)>>2];e=e+1|0;s=j>s?j:s}if(!(s==0.0)){if(!(s>0.0)){G=Xf(Xf(PE(Xf(Xf(Xf(56032,28379)|0,27845)|0,35e3)|0,218)|0,35007)|0,28417)|0;IE(D,G+(c[(c[G>>2]|0)+-12>>2]|0)|0);r=XF(D,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(D);QE(G,r)|0;ME(G)|0;ua()}p=D+4|0;q=E+4|0;r=w+4|0;o=a+24|0;m=0;e=l;while(1){if((m|0)>=(e|0))break a;n=+(m|0);f[D>>2]=n;l=c[u>>2]|0;G=l+(m<<2)|0;a=c[G>>2]|0;c[p>>2]=a;g=m+-1|0;f[E>>2]=+(g|0);g=c[l+(((g+e|0)%(e|0)|0)<<2)>>2]|0;c[q>>2]=g;m=m+1|0;f[w>>2]=+(m|0);l=c[l+(((m+e|0)%(e|0)|0)<<2)>>2]|0;c[r>>2]=l;k=(c[h>>2]=a,+f[h>>2]);if(+f[G>>2]>s*+f[o>>2]?(j=(c[h>>2]=l,+f[h>>2]),k>(c[h>>2]=g,+f[h>>2])&k>j):0){f[C>>2]=n;if(Gj(x,y,z,E,D,w)|0)Hj(C,+f[x>>2],+f[y>>2],+f[z>>2])|0;j=+(c[v>>2]|0);e=c[d>>2]|0;f[b+(e<<2)>>2]=(+f[C>>2]+.5+j)/j*6.283185307179586%6.283185307179586;c[d>>2]=e+1;e=c[v>>2]|0}}}}while(0);zb=F;return}function zj(a,b){a=+a;b=+b;return +(a>b?a:b)}function Aj(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function Bj(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}function Cj(a,b){a=a|0;b=b|0;aP(a|0,0,b<<2|0)|0;return}function Dj(a){a=+a;return +(((((((a+6.0)*a+30.0)*a+120.0)*a+360.0)*a+720.0)*a+720.0)*.0013888888)}function Ej(a,b,d,e){a=a|0;b=+b;d=+d;e=e|0;var g=0.0,h=0,i=0,j=0,k=0,l=0;j=zb;zb=zb+16|0;i=j;if(!a){h=Xf(Xf(PE(Xf(Xf(Xf(56032,28448)|0,28484)|0,35e3)|0,139)|0,35007)|0,28571)|0;IE(i,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(h,k)|0;ME(h)|0;ua()}if(b+.5>0.0?(g=b+-.5,g<+(e|0)):0){if(!(d>=0.0)){k=Xf(Xf(PE(Xf(Xf(Xf(56032,28702)|0,28484)|0,35e3)|0,141)|0,35007)|0,28740)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(k,h)|0;ME(k)|0;ua()}if((e|0)<=-1){k=Xf(Xf(PE(Xf(Xf(Xf(56032,28769)|0,28484)|0,35e3)|0,142)|0,35007)|0,28806)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(k,h)|0;ME(k)|0;ua()}k=~~+s(+g);b=b-+(k|0)+-.5;g=1.0-b;h=(k+e|0)%(e|0)|0;e=(k+1|0)%(e|0)|0;if(!(g>=0.0)){k=Xf(Xf(PE(Xf(Xf(Xf(56032,28835)|0,28484)|0,35e3)|0,150)|0,35007)|0,28866)|0;IE(i,k+(c[(c[k>>2]|0)+-12>>2]|0)|0);l=XF(i,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(i);QE(k,l)|0;ME(k)|0;ua()}if(!(b>=0.0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,28886)|0,28484)|0,35e3)|0,151)|0,35007)|0,28917)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}if((h|0)<=-1){l=Xf(Xf(PE(Xf(Xf(Xf(56032,28937)|0,28484)|0,35e3)|0,152)|0,35007)|0,28985)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}if((e|0)>-1){l=a+(h<<2)|0;f[l>>2]=g*d+ +f[l>>2];l=a+(e<<2)|0;f[l>>2]=b*d+ +f[l>>2];zb=j;return}else{l=Xf(Xf(PE(Xf(Xf(Xf(56032,29011)|0,28484)|0,35e3)|0,153)|0,35007)|0,29059)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}}l=Xf(Xf(PE(Xf(Xf(Xf(56032,28597)|0,28484)|0,35e3)|0,140)|0,35007)|0,28662)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(i,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(i);QE(l,k)|0;ME(l)|0;ua()}function Fj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,g=0,h=0,i=0,j=0,k=0.0,l=0,m=0.0;k=+f[b>>2];g=c+-1|0;h=b+(g<<2)|0;i=d+4|0;j=d+8|0;e=+f[h>>2];c=0;while(1){if((c|0)==(g|0))break;m=+f[b+(c<<2)>>2];l=c+1|0;f[a+(c<<2)>>2]=e*+f[d>>2]+m*+f[i>>2]+ +f[j>>2]*+f[b+(l<<2)>>2];e=m;c=l}f[a+(g<<2)>>2]=e*+f[d>>2]+ +f[i>>2]*+f[h>>2]+k*+f[j>>2];return}function Gj(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0.0;h=+f[g>>2];k=+f[e>>2];l=+f[d>>2];j=h-l;h=(h-k)*j;i=l-k;j=i*j;if(i==0.0|(h==0.0|j==0.0)){f[a>>2]=0.0;f[b>>2]=0.0;b=0;h=0.0}else{l=l*l;m=e+4|0;n=+f[m>>2];e=d+4|0;h=(+f[g+4>>2]-n)/h-(+f[e>>2]-n)/j;f[a>>2]=h;h=(+f[e>>2]-+f[m>>2]+(k*k-l)*h)/i;f[b>>2]=h;b=1;h=+f[e>>2]-l*+f[a>>2]-h*+f[d>>2]}f[c>>2]=h;return b|0}function Hj(a,b,c,d){a=a|0;b=+b;c=+c;d=+d;if(b==0.0)a=0;else{f[a>>2]=-c/(b*2.0);a=1}return a|0}function Ij(a){a=a|0;var b=0,d=0;c[a>>2]=0;d=tB(24)|0;Jj(d);b=c[a>>2]|0;c[a>>2]=d;if(b|0){Kj(b);SA(b)}return}function Jj(a){a=a|0;var b=0,d=0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=1065353216;d=tB(840)|0;$j(d);b=c[a>>2]|0;c[a>>2]=d;if(b|0){Mj(b);SA(b)}return}function Kj(a){a=a|0;var b=0;Lj(a+4|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0){Mj(b);SA(b)}return}function Lj(a){a=a|0;Yj(a);return}function Mj(a){a=a|0;Nj(a+788|0);kp(a+652|0);Oj(a+636|0);Pj(a+316|0);yh(a+160|0);Qi(a+92|0);Qj(a+72|0);Rj(a+64|0);Sj(a+12|0);return}function Nj(a){a=a|0;Wj(a+24|0);Xj(a+12|0);gh(a);return}function Oj(a){a=a|0;Sj(a);return}function Pj(a){a=a|0;return}function Qj(a){a=a|0;Tj(a);return}function Rj(a){a=a|0;var b=0,d=0;a=c[a+4>>2]|0;if(a|0?(d=a+4|0,b=c[d>>2]|0,c[d>>2]=b+-1,(b|0)==0):0){Sb[c[(c[a>>2]|0)+8>>2]&255](a);_N(a)}return}function Sj(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Tj(a){a=a|0;var b=0;Uj(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function Uj(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;Vj(b+8|0);Pf(b,20);b=a}return}function Vj(a){a=a|0;Rj(a+4|0);return}function Wj(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Xj(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Yj(a){a=a|0;var b=0;Zj(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function Zj(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;_j(b+8|0);Pf(b,24);b=a}return}function _j(a){a=a|0;lg(a+4|0);return}function $j(b){b=b|0;var d=0;c[b+12>>2]=0;c[b+16>>2]=0;c[b+20>>2]=0;d=b+64|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[d+20>>2]=0;c[b+88>>2]=1065353216;_i(b+92|0);d=b+160|0;dh(d);Gp(b+316|0);ak(b+636|0);jp(b+652|0);bk(b+788|0,.009999999776482582,1024,1064,50);ck(d,3.0);dk(d,4.0);eh(d,500);f[b+4>>2]=3.0;c[b>>2]=8;a[b+8>>0]=1;return}function ak(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;f[a+12>>2]=.699999988079071;return}function bk(a,b,d,e,f){a=a|0;b=+b;d=d|0;e=e|0;f=f|0;var g=0,h=0;g=a;h=g+36|0;do{c[g>>2]=0;g=g+4|0}while((g|0)<(h|0));ek(a,b,d,e,f);return}function ck(a,b){a=a|0;b=+b;f[a+52>>2]=b;return}function dk(a,b){a=a|0;b=+b;f[a+56>>2]=b;return}function ek(a,b,d,e,g){a=a|0;b=+b;d=d|0;e=e|0;g=g|0;fh(a,d*9|0);fk(a+24|0,d);f[a+36>>2]=b;c[a+40>>2]=d;c[a+44>>2]=e;c[a+48>>2]=g;return}function fk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>3;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<3)}else gk(a,b-e|0);return}function gk(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>3>>>0>>0){d=(d-(c[a>>2]|0)>>3)+b|0;e=ik(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>2;jk(f,k>>3>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>3,a+8|0);kk(f,b);lk(a,f);mk(f);break}}else hk(a,b);while(0);zb=i;return}function hk(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b<<3|0)|0;c[a>>2]=d+(b<<3);return}function ik(a){a=a|0;return 536870911}function jk(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>536870911){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<3)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<3)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<3);return}function kk(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b<<3|0)|0;c[a>>2]=d+(b<<3);return}function lk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>3)<<3)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function mk(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-8|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function nk(a){a=a|0;var b=0;b=c[a>>2]|0;c[a>>2]=0;if(b|0){Kj(b);SA(b)}return}function ok(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[b>>2]|0;f=c[a+4>>2]|0;a:do if(f){g=f+-1|0;h=(g&f|0)==0;if(!h)if(e>>>0>>0)d=e;else d=(e>>>0)%(f>>>0)|0;else d=g&e;b=c[(c[a>>2]|0)+(d<<2)>>2]|0;if(b)while(1){b=c[b>>2]|0;if(!b){b=0;break a}a=c[b+4>>2]|0;if((a|0)==(e|0)){if((c[b+8>>2]|0)==(e|0))break a}else{if(!h){if(a>>>0>=f>>>0)a=(a>>>0)%(f>>>0)|0}else a=a&g;if((a|0)!=(d|0)){b=0;break a}}}else b=0}else b=0;while(0);return b|0}function pk(a){a=a|0;return a+4|0}function qk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=0;while(1){if((b|0)<(c|0)|(a|0)<(c|0))break;d=d+1|0;b=b>>1;a=a>>1}return d|0}function rk(a){a=a|0;return c[a>>2]|0}function sk(a){a=a|0;return c[a+4>>2]|0}function tk(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;bm(a+8|0);cm(a+36|0);return}function uk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;d=zb;zb=zb+16|0;e=d;c[a>>2]=b;f=tB(16)|0;c[f+4>>2]=0;c[f+8>>2]=0;c[f>>2]=15740;c[f+12>>2]=b;c[a+4>>2]=f;c[e>>2]=b;c[e+4>>2]=b;Rl(a,e);zb=d;return}function vk(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function wk(a,b){a=a|0;b=b|0;c[a+4>>2]=b;return}function xk(b,d,e,g){b=b|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;k=zb;zb=zb+32|0;i=k+20|0;j=k;if(!d){h=Xf(Xf(PE(Xf(Xf(Xf(56032,33588)|0,30067)|0,35e3)|0,212)|0,35007)|0,33688)|0;IE(i,h+(c[(c[h>>2]|0)+-12>>2]|0)|0);l=XF(i,56736)|0;l=Ib[c[(c[l>>2]|0)+28>>2]&63](l,10)|0;YF(i);QE(h,l)|0;ME(h)|0;ua()}if(!e){l=Xf(Xf(PE(Xf(Xf(Xf(56032,30146)|0,30067)|0,35e3)|0,213)|0,35007)|0,30178)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(l,h)|0;ME(l)|0;ua()}l=Ah(d)|0;if((c[l+4>>2]|0)==(c[l>>2]|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,30195)|0,30067)|0,35e3)|0,214)|0,35007)|0,30247)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(l,h)|0;ME(l)|0;ua()}l=Ah(d)|0;l=Ng(c[l>>2]|0)|0;if((l|0)!=(rk(e)|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,30264)|0,30067)|0,35e3)|0,215)|0,35007)|0,30337)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(l,h)|0;ME(l)|0;ua()}l=Ah(d)|0;l=Og(c[l>>2]|0)|0;if((l|0)!=(sk(e)|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,30372)|0,30067)|0,35e3)|0,216)|0,35007)|0,30337)|0;IE(i,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);h=XF(i,56736)|0;h=Ib[c[(c[h>>2]|0)+28>>2]&63](h,10)|0;YF(i);QE(l,h)|0;ME(l)|0;ua()}Rh(e,d);h=Ml(e)|0;Nl(i,((c[h+4>>2]|0)-(c[h>>2]|0)|0)/36|0);h=0;while(1){l=Ml(e)|0;if(h>>>0>=(((c[l+4>>2]|0)-(c[l>>2]|0)|0)/36|0)>>>0)break;l=Ml(e)|0;l=c[l>>2]|0;gg(j,+f[l+(h*36|0)>>2],+f[l+(h*36|0)+4>>2],+f[l+(h*36|0)+8>>2],+f[l+(h*36|0)+28>>2],+f[l+(h*36|0)+24>>2]>0.0);l=(c[i>>2]|0)+(h*20|0)|0;c[l>>2]=c[j>>2];c[l+4>>2]=c[j+4>>2];c[l+8>>2]=c[j+8>>2];c[l+12>>2]=c[j+12>>2];a[l+16>>0]=a[j+16>>0]|0;Of(j);h=h+1|0}Hp(g,zk(b)|0,d,i);Nf(i);zb=k;return}function yk(){if((a[54528]|0)==0?nB(54528)|0:0){sq(55464);pB(54528)}return 55464}function zk(a){a=a|0;return a+8|0}function Ak(a){a=a|0;return ((c[a+20>>2]|0)-(c[a+16>>2]|0)|0)/20|0|0}function Bk(a){a=a|0;var b=0,d=0;d=a+36|0;Gk(d,128);Hk(d,8);Ik(d,8);Jk(d,16);a=a+8|0;b=Kk(a)|0;b=c[b>>2]|0;Lk(d,b,Ak(a)|0);return}function Ck(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){Dk(r,a,q,57660,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;Ek(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+12|0}function Dk(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(20)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];c[h+12>>2]=0;c[h+16>>2]=0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function Ek(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)Fk(a,b)}}else Fk(a,b);return}function Fk(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function Gk(a,b){a=a|0;b=b|0;Ll(a+12|0,b);return}function Hk(a,b){a=a|0;b=b|0;Kl(a+12|0,b);return}function Ik(a,b){a=a|0;b=b|0;c[a+104>>2]=b;return}function Jk(a,b){a=a|0;b=b|0;c[a+108>>2]=b;return}function Kk(a){a=a|0;return a+4|0}function Lk(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;g=i;Mk(g,d);f=c[g>>2]|0;h=(c[g+4>>2]|0)-f>>2;e=0;while(1){if((e|0)==(h|0))break;c[f+(e<<2)>>2]=e;e=e+1|0}Nk(a,b,d,f,h);Xj(g);zb=i;return}function Mk(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){Jl(a,b);Fl(a,b)}return}function Nk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;g=tB(128)|0;Pk(g,Ok(a)|0);i=a+8|0;h=c[i>>2]|0;c[i>>2]=g;if(h){Qk(h);SA(h);g=c[i>>2]|0}Rk(g,0);Sk(a,c[i>>2]|0,b,d,e,f);return}function Ok(a){a=a|0;var b=0;b=a+4|0;a=c[b>>2]|0;c[b>>2]=a+1;return a|0}function Pk(b,d){b=b|0;d=d|0;c[b>>2]=d;a[b+100>>0]=1;d=b+104|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[d+20>>2]=0;Il(b+4|0,96);return}function Qk(a){a=a|0;var b=0,d=0,e=0,f=0;e=a+104|0;f=a+108|0;d=0;while(1){b=c[e>>2]|0;if(d>>>0>=(c[f>>2]|0)-b>>2>>>0)break;b=c[b+(d<<2)>>2]|0;if(b|0){Qk(b);SA(b)}d=d+1|0}Xj(a+116|0);Hl(e);return}function Rk(b,c){b=b|0;c=c|0;a[b+100>>0]=c&1;return}function Sk(a,b,d,e,f,g){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;q=zb;zb=zb+32|0;o=q+20|0;p=q;h=a+12|0;n=Tk(h)|0;if((Aj(n,c[a+108>>2]|0)|0)>=(g|0)){Rk(b,1);Vk(Uk(b)|0,g);h=0;while(1){if((h|0)>=(g|0))break;o=c[f+(h<<2)>>2]|0;p=Uk(b)|0;c[(c[p>>2]|0)+(h<<2)>>2]=o;h=h+1|0}zb=q;return}c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=1065353216;Wk(h,d,e,f,g);m=Xk(h)|0;n=m+4|0;i=c[n>>2]|0;h=c[m>>2]|0;if((i-h>>2|0)!=(g|0)){l=Xf(Xf(PE(Xf(Xf(Xf(56032,29134)|0,29190)|0,35e3)|0,363)|0,35007)|0,29284)|0;IE(o,l+(c[(c[l>>2]|0)+-12>>2]|0)|0);k=XF(o,56736)|0;k=Ib[c[(c[k>>2]|0)+28>>2]&63](k,10)|0;YF(o);QE(l,k)|0;ME(l)|0;ua()}l=0;while(1){if(l>>>0>=i-h>>2>>>0){h=10;break}h=c[h+(l<<2)>>2]|0;if((h|0)==-1){h=12;break}if((h|0)>=(g|0)){h=14;break}h=f+(h<<2)|0;if((c[h>>2]|0)>=(e|0)){h=16;break}h=Yk(p,h)|0;i=f+(l<<2)|0;j=h+4|0;k=c[j>>2]|0;if((k|0)==(c[h+8>>2]|0))Zk(h,i);else{c[k>>2]=c[i>>2];c[j>>2]=k+4}l=l+1|0;h=c[m>>2]|0;i=c[n>>2]|0}if((h|0)==10){h=p+12|0;a:do if((c[h>>2]|0)==1){Rk(b,1);Vk(Uk(b)|0,g);h=0;while(1){if((h|0)>=(g|0))break a;e=c[f+(h<<2)>>2]|0;o=Uk(b)|0;c[(c[o>>2]|0)+(h<<2)>>2]=e;h=h+1|0}}else{g=_k(b)|0;$k(g,c[h>>2]|0);h=p+8|0;while(1){h=c[h>>2]|0;if(!h)break a;i=h;l=i+12|0;m=i+16|0;if((c[m>>2]|0)==(c[l>>2]|0))break;j=tB(128)|0;k=Ok(a)|0;al(j,k,d+((c[i+8>>2]|0)*96|0)|0);c[o>>2]=j;Rk(j,0);i=_k(b)|0;j=i+4|0;k=c[j>>2]|0;if((k|0)==(c[i+8>>2]|0))bl(i,o);else{c[k>>2]=c[o>>2];c[j>>2]=(c[j>>2]|0)+4}g=c[l>>2]|0;Sk(a,c[o>>2]|0,d,e,g,(c[m>>2]|0)-g>>2)}b=Xf(Xf(PE(Xf(Xf(Xf(56032,29507)|0,29190)|0,35e3)|0,387)|0,35007)|0,29553)|0;IE(o,b+(c[(c[b>>2]|0)+-12>>2]|0)|0);e=XF(o,56736)|0;e=Ib[c[(c[e>>2]|0)+28>>2]&63](e,10)|0;YF(o);QE(b,e)|0;ME(b)|0;ua()}while(0);cl(p);zb=q;return}else if((h|0)==12){q=Xf(Xf(PE(Xf(Xf(Xf(56032,29306)|0,29190)|0,35e3)|0,365)|0,35007)|0,29349)|0;IE(o,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);b=XF(o,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(o);QE(q,b)|0;ME(q)|0;ua()}else if((h|0)==14){q=Xf(Xf(PE(Xf(Xf(Xf(56032,29371)|0,29190)|0,35e3)|0,366)|0,35007)|0,29422)|0;IE(o,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);b=XF(o,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(o);QE(q,b)|0;ME(q)|0;ua()}else if((h|0)==16){q=Xf(Xf(PE(Xf(Xf(Xf(56032,29446)|0,29190)|0,35e3)|0,367)|0,35007)|0,29422)|0;IE(o,q+(c[(c[q>>2]|0)+-12>>2]|0)|0);b=XF(o,56736)|0;b=Ib[c[(c[b>>2]|0)+28>>2]&63](b,10)|0;YF(o);QE(q,b)|0;ME(q)|0;ua()}}function Tk(a){a=a|0;return c[a+4>>2]|0}function Uk(a){a=a|0;return a+116|0}function Vk(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f>>2;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+(b<<2)}else El(a,b-e|0);return}function Wk(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=zb;zb=zb+16|0;o=s;p=a+4|0;g=c[p>>2]|0;q=a+12|0;r=a+16|0;if((g|0)!=((c[r>>2]|0)-(c[q>>2]|0)>>2|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29590)|0,29635)|0,35e3)|0,154)|0,35007)|0,29707)|0;IE(o,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(o,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(o);QE(n,m)|0;ME(n)|0;ua()}if((d|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29752)|0,29635)|0,35e3)|0,155)|0,35007)|0,29792)|0;IE(o,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(o,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(o);QE(n,m)|0;ME(n)|0;ua()}if((f|0)>(d|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29828)|0,29635)|0,35e3)|0,156)|0,35007)|0,29879)|0;IE(o,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(o,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(o);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>(f|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29906)|0,29635)|0,35e3)|0,157)|0,35007)|0,29947)|0;IE(o,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(o,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(o);QE(n,m)|0;ME(n)|0;ua()}j=a+24|0;c[o>>2]=-1;sl(j,f,o);k=a+36|0;c[o>>2]=-1;sl(k,f,o);l=a+48|0;Vk(l,f);n=c[l>>2]|0;m=a+52|0;tl(n,(c[m>>2]|0)-n>>2,0);n=a+8|0;g=-1;i=0;while(1){if((i|0)>=(c[n>>2]|0))break;h=c[l>>2]|0;ul(h,(c[m>>2]|0)-h>>2,c[p>>2]|0,c[a>>2]|0);h=vl(a,k,b,d,e,f,c[l>>2]|0,c[p>>2]|0)|0;if(h>>>0>>0){wl(j,k);xl(c[q>>2]|0,c[l>>2]|0,c[p>>2]|0);g=h}i=i+1|0}if((c[p>>2]|0)==((c[r>>2]|0)-(c[q>>2]|0)>>2|0)){zb=s;return}else{s=Xf(Xf(PE(Xf(Xf(Xf(56032,29590)|0,29635)|0,35e3)|0,187)|0,35007)|0,29707)|0;IE(o,s+(c[(c[s>>2]|0)+-12>>2]|0)|0);r=XF(o,56736)|0;r=Ib[c[(c[r>>2]|0)+28>>2]&63](r,10)|0;YF(o);QE(s,r)|0;ME(s)|0;ua()}}function Xk(a){a=a|0;return a+24|0}function Yk(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){pl(r,a,q,57660,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;ql(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+12|0}function Zk(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>2)+1|0;g=ll(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>1;ml(d,k>>2>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>2,a+8|0);g=d+8|0;f=c[g>>2]|0;c[f>>2]=c[b>>2];c[g>>2]=f+4;nl(a,d);ol(d);zb=h;return}}function _k(a){a=a|0;return a+104|0}function $k(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=zb;zb=zb+32|0;d=f;e=c[a>>2]|0;if((c[a+8>>2]|0)-e>>2>>>0>>0){hl(d,b,(c[a+4>>2]|0)-e>>2,a+8|0);il(a,d);jl(d)}zb=f;return}function al(b,d,e){b=b|0;d=d|0;e=e|0;c[b>>2]=d;a[b+100>>0]=1;d=b+104|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[d+20>>2]=0;kl(b+4|0,e,96);return}function bl(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;h=zb;zb=zb+32|0;d=h;e=a+4|0;f=((c[e>>2]|0)-(c[a>>2]|0)>>2)+1|0;g=gl(a)|0;if(g>>>0>>0)EO(a);else{i=c[a>>2]|0;k=(c[a+8>>2]|0)-i|0;j=k>>1;hl(d,k>>2>>>0>>1>>>0?(j>>>0>>0?f:j):g,(c[e>>2]|0)-i>>2,a+8|0);g=d+8|0;c[c[g>>2]>>2]=c[b>>2];c[g>>2]=(c[g>>2]|0)+4;il(a,d);jl(d);zb=h;return}}function cl(a){a=a|0;dl(a);return}function dl(a){a=a|0;var b=0;el(a,c[a+8>>2]|0);b=c[a>>2]|0;c[a>>2]=0;if(b|0)Pf(b,c[a+4>>2]<<2);return}function el(a,b){a=a|0;b=b|0;while(1){if(!b)break;a=c[b>>2]|0;fl(b+8|0);Pf(b,24);b=a}return}function fl(a){a=a|0;Xj(a+4|0);return}function gl(a){a=a|0;return 1073741823}function hl(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>1073741823){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<2)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function il(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function jl(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-4|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function kl(a,b,c){a=a|0;b=b|0;c=c|0;_O(a|0,b|0,c|0)|0;return}function ll(a){a=a|0;return 1073741823}function ml(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=a+12|0;c[f>>2]=0;c[a+16>>2]=e;do if(b)if(b>>>0>1073741823){f=O(8)|0;dO(f,37409);c[f>>2]=16392;Q(f|0,13960,22)}else{e=tB(b<<2)|0;break}else e=0;while(0);c[a>>2]=e;d=e+(d<<2)|0;c[a+8>>2]=d;c[a+4>>2]=d;c[f>>2]=e+(b<<2);return}function nl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;e=c[a>>2]|0;h=a+4|0;g=b+4|0;f=(c[h>>2]|0)-e|0;d=(c[g>>2]|0)+(0-(f>>2)<<2)|0;c[g>>2]=d;if((f|0)>0){_O(d|0,e|0,f|0)|0;e=g;d=c[g>>2]|0}else e=g;g=c[a>>2]|0;c[a>>2]=d;c[e>>2]=g;g=b+8|0;f=c[h>>2]|0;c[h>>2]=c[g>>2];c[g>>2]=f;g=a+8|0;h=b+12|0;a=c[g>>2]|0;c[g>>2]=c[h>>2];c[h>>2]=a;c[b>>2]=c[e>>2];return}function ol(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a+4>>2]|0;d=a+8|0;e=c[d>>2]|0;while(1){if((e|0)==(b|0))break;f=e+-4|0;c[d>>2]=f;e=f}b=c[a>>2]|0;if(b|0)Pf(b,(c[a+12>>2]|0)-b|0);return}function pl(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(24)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function ql(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)rl(a,b)}}else rl(a,b);return}function rl(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function sl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=a+4|0;g=c[a>>2]|0;f=(c[e>>2]|0)-g>>2;if(f>>>0>=b>>>0){if(f>>>0>b>>>0)c[e>>2]=g+(b<<2)}else Cl(a,b-f|0,d);return}function tl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;a:do if((b|0)>=1){c[a>>2]=d;e=1;while(1){if((e|0)==(b|0))break a;f=d+1|0;c[a+(e<<2)>>2]=f;e=e+1|0;d=f}}while(0);return}function ul(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;f=0;while(1){if((f|0)>=(d|0))break;i=a+(f<<2)|0;g=a+(((Bl(e)|0)%(b|0)|0)<<2)|0;h=c[i>>2]|0;c[i>>2]=c[g>>2];c[g>>2]=h;f=f+1|0}return}function vl(a,b,d,e,f,g,h,i){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0;o=zb;zb=zb+16|0;a=o;if(((c[b+4>>2]|0)-(c[b>>2]|0)>>2|0)!=(g|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29134)|0,29635)|0,35e3)|0,198)|0,35007)|0,29967)|0;IE(a,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(a,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(a);QE(n,m)|0;ME(n)|0;ua()}if((e|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29752)|0,29635)|0,35e3)|0,199)|0,35007)|0,29792)|0;IE(a,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(a,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(a);QE(n,m)|0;ME(n)|0;ua()}if((g|0)>(e|0)){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29828)|0,29635)|0,35e3)|0,200)|0,35007)|0,29879)|0;IE(a,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(a,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(a);QE(n,m)|0;ME(n)|0;ua()}if((i|0)<=0){n=Xf(Xf(PE(Xf(Xf(Xf(56032,29996)|0,29635)|0,35e3)|0,201)|0,35007)|0,30035)|0;IE(a,n+(c[(c[n>>2]|0)+-12>>2]|0)|0);m=XF(a,56736)|0;m=Ib[c[(c[m>>2]|0)+28>>2]&63](m,10)|0;YF(a);QE(n,m)|0;ME(n)|0;ua()}k=0;m=0;while(1){if((m|0)>=(g|0))break;n=f+(m<<2)|0;l=0;a=-1;while(1){if((l|0)==(i|0))break;e=h+(l<<2)|0;j=yl(d+((c[n>>2]|0)*96|0)|0,d+((c[f+(c[e>>2]<<2)>>2]|0)*96|0)|0)|0;if(j>>>0>>0){c[(c[b>>2]|0)+(m<<2)>>2]=c[e>>2];a=j}l=l+1|0}k=a+k|0;m=m+1|0}zb=o;return k|0}function wl(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;f=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=f;f=a+4|0;d=b+4|0;e=c[f>>2]|0;c[f>>2]=c[d>>2];c[d>>2]=e;d=a+8|0;b=b+8|0;a=c[d>>2]|0;c[d>>2]=c[b>>2];c[b>>2]=a;return}function xl(a,b,c){a=a|0;b=b|0;c=c|0;_O(a|0,b|0,c<<2|0)|0;return}function yl(a,b){a=a|0;b=b|0;return zl(a,b)|0}function zl(a,b){a=a|0;b=b|0;var d=0;d=Al(c[a>>2]|0,c[b>>2]|0)|0;d=(Al(c[a+4>>2]|0,c[b+4>>2]|0)|0)+d|0;d=d+(Al(c[a+8>>2]|0,c[b+8>>2]|0)|0)|0;d=d+(Al(c[a+12>>2]|0,c[b+12>>2]|0)|0)|0;d=d+(Al(c[a+16>>2]|0,c[b+16>>2]|0)|0)|0;d=d+(Al(c[a+20>>2]|0,c[b+20>>2]|0)|0)|0;d=d+(Al(c[a+24>>2]|0,c[b+24>>2]|0)|0)|0;d=d+(Al(c[a+28>>2]|0,c[b+28>>2]|0)|0)|0;d=d+(Al(c[a+32>>2]|0,c[b+32>>2]|0)|0)|0;d=d+(Al(c[a+36>>2]|0,c[b+36>>2]|0)|0)|0;d=d+(Al(c[a+40>>2]|0,c[b+40>>2]|0)|0)|0;d=d+(Al(c[a+44>>2]|0,c[b+44>>2]|0)|0)|0;d=d+(Al(c[a+48>>2]|0,c[b+48>>2]|0)|0)|0;d=d+(Al(c[a+52>>2]|0,c[b+52>>2]|0)|0)|0;d=d+(Al(c[a+56>>2]|0,c[b+56>>2]|0)|0)|0;d=d+(Al(c[a+60>>2]|0,c[b+60>>2]|0)|0)|0;d=d+(Al(c[a+64>>2]|0,c[b+64>>2]|0)|0)|0;d=d+(Al(c[a+68>>2]|0,c[b+68>>2]|0)|0)|0;d=d+(Al(c[a+72>>2]|0,c[b+72>>2]|0)|0)|0;d=d+(Al(c[a+76>>2]|0,c[b+76>>2]|0)|0)|0;d=d+(Al(c[a+80>>2]|0,c[b+80>>2]|0)|0)|0;d=d+(Al(c[a+84>>2]|0,c[b+84>>2]|0)|0)|0;d=d+(Al(c[a+88>>2]|0,c[b+88>>2]|0)|0)|0;return d+(Al(c[a+92>>2]|0,c[b+92>>2]|0)|0)|0}function Al(a,b){a=a|0;b=b|0;b=b^a;b=b-(b>>>1&1431655765)|0;b=(b>>>2&858993459)+(b&858993459)|0;return (B((b>>>4)+b&252645135,16843009)|0)>>>24|0}function Bl(a){a=a|0;var b=0;b=((c[a>>2]|0)*214013|0)+2531011|0;c[a>>2]=b;return b>>>16&32767|0}function Cl(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;k=zb;zb=zb+32|0;h=k;i=a+8|0;j=a+4|0;e=c[j>>2]|0;g=e;do if((c[i>>2]|0)-e>>2>>>0>>0){e=(e-(c[a>>2]|0)>>2)+b|0;f=ll(a)|0;if(f>>>0>>0)EO(a);else{g=c[a>>2]|0;l=(c[i>>2]|0)-g|0;i=l>>1;ml(h,l>>2>>>0>>1>>>0?(i>>>0>>0?e:i):f,(c[j>>2]|0)-g>>2,a+8|0);Dl(h,b,d);nl(a,h);ol(h);break}}else{e=b;f=g;while(1){c[f>>2]=c[d>>2];e=e+-1|0;if(!e)break;else f=f+4|0}c[j>>2]=g+(b<<2)}while(0);zb=k;return}function Dl(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=a+8|0;e=c[f>>2]|0;a=b;g=e;while(1){c[g>>2]=c[d>>2];a=a+-1|0;if(!a)break;else g=g+4|0}c[f>>2]=e+(b<<2);return}function El(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((c[g>>2]|0)-d>>2>>>0>>0){d=(d-(c[a>>2]|0)>>2)+b|0;e=ll(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k>>1;ml(f,k>>2>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j>>2,a+8|0);Gl(f,b);nl(a,f);ol(f);break}}else Fl(a,b);while(0);zb=i;return}function Fl(a,b){a=a|0;b=b|0;var d=0;a=a+4|0;d=c[a>>2]|0;aP(d|0,0,b<<2|0)|0;c[a>>2]=d+(b<<2);return}function Gl(a,b){a=a|0;b=b|0;var d=0;a=a+8|0;d=c[a>>2]|0;aP(d|0,0,b<<2|0)|0;c[a>>2]=d+(b<<2);return}function Hl(a){a=a|0;var b=0,d=0;b=c[a>>2]|0;d=b;if(b|0){c[a+4>>2]=d;Pf(b,(c[a+8>>2]|0)-d|0)}return}function Il(a,b){a=a|0;b=b|0;aP(a|0,0,b|0)|0;return}function Jl(a,b){a=a|0;b=b|0;var d=0;if((ll(a)|0)>>>0>>0)EO(a);if(b>>>0>1073741823){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b<<2)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b<<2);return}}function Kl(a,b){a=a|0;b=b|0;c[a+4>>2]=b;Vk(a+12|0,b);return}function Ll(a,b){a=a|0;b=b|0;c[a+8>>2]=b;return}function Ml(a){a=a|0;return a+60|0}function Nl(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;if(b|0){Ol(a,b);Pl(a,b)}return}function Ol(a,b){a=a|0;b=b|0;var d=0;if((ug(a)|0)>>>0>>0)EO(a);if(b>>>0>214748364){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b*20|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*20|0);return}}function Pl(a,b){a=a|0;b=b|0;var d=0;d=a+4|0;a=b;b=c[d>>2]|0;do{Ql(b);b=(c[d>>2]|0)+20|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Ql(b){b=b|0;c[b>>2]=0;c[b+4>>2]=0;c[b+8>>2]=0;c[b+12>>2]=0;a[b+16>>0]=1;return}function Rl(a,b){a=a|0;b=b|0;return}function Sl(a){a=a|0;Tl(a+36|0);Ul(a+8|0);return}function Tl(a){a=a|0;var b=0;Vl(a+84|0);Xj(a+72|0);Wl(a+12|0);b=a+8|0;a=c[b>>2]|0;c[b>>2]=0;if(a|0){Qk(a);SA(a)}return}function Ul(a){a=a|0;Nf(a+16|0);Mf(a+4|0);return}function Vl(a){a=a|0;Xl(a);return}function Wl(a){a=a|0;Xj(a+48|0);Xj(a+36|0);Xj(a+24|0);Xj(a+12|0);return}function Xl(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-8|0;Yl(f);b=f}c[e>>2]=d;f=c[a>>2]|0;Pf(f,(c[a+8>>2]|0)-f|0)}return}function Yl(a){a=a|0;return}function Zl(a){a=a|0;ZN(a);SA(a);return}function _l(a){a=a|0;a=c[a+12>>2]|0;if(a|0){Sl(a);SA(a)}return}function $l(a,b){a=a|0;b=b|0;return ((c[b+4>>2]|0)==30447?a+12|0:0)|0}function am(a){a=a|0;Pf(a,16);return}function bm(a){a=a|0;c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=0;c[a+24>>2]=0;return}function cm(a){a=a|0;var b=0,d=0;c[a>>2]=1234;c[a+4>>2]=0;c[a+8>>2]=0;b=a+12|0;dm(b,a);d=a+72|0;c[a+100>>2]=0;c[a+104>>2]=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[d+20>>2]=0;c[a+108>>2]=16;Kl(b,8);Ll(b,1);return}function dm(a,b){a=a|0;b=b|0;c[a>>2]=b;a=a+4|0;b=a+56|0;do{c[a>>2]=0;a=a+4|0}while((a|0)<(b|0));return}function em(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;l=zb;zb=zb+32|0;m=l+24|0;j=l+12|0;k=l+16|0;n=l+8|0;i=l;c[j>>2]=h;h=tB(148)|0;tk(h);c[n>>2]=0;c[m>>2]=c[n>>2];uk(k,h,m);vk(c[k>>2]|0,f);wk(c[k>>2]|0,g);fm(zk(c[k>>2]|0)|0,96);g=gm(zk(c[k>>2]|0)|0)|0;f=b+4|0;hm(g,((c[f>>2]|0)-(c[b>>2]|0)|0)/20|0);g=gm(zk(c[k>>2]|0)|0)|0;if((g|0)!=(b|0))im(g,c[b>>2]|0,c[f>>2]|0);g=Kk(zk(c[k>>2]|0)|0)|0;f=d+4|0;jm(g,(c[f>>2]|0)-(c[d>>2]|0)|0);g=Kk(zk(c[k>>2]|0)|0)|0;if((g|0)!=(d|0))km(g,c[d>>2]|0,c[f>>2]|0);Bk(c[k>>2]|0);f=c[c[a>>2]>>2]|0;c[i>>2]=c[k>>2];g=c[k+4>>2]|0;c[i+4>>2]=g;if(g|0){n=g+4|0;c[n>>2]=(c[n>>2]|0)+1}lm(f,i,c[j>>2]|0);Rj(i);f=mm((c[a>>2]|0)+4|0,j)|0;if((f|0)!=(e|0))nm(f,c[e>>2]|0,c[e+4>>2]|0);Rj(k);zb=l;return}function fm(a,b){a=a|0;b=b|0;c[a>>2]=b;return}function gm(a){a=a|0;return a+16|0}function hm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;g=a+4|0;d=c[g>>2]|0;f=c[a>>2]|0;e=(d-f|0)/20|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0){a=f+(b*20|0)|0;while(1){if((d|0)==(a|0))break;f=d+-20|0;Of(f);d=f}c[g>>2]=a}}else Cm(a,b-e|0);return}function im(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;e=b;l=(d-e|0)/20|0;f=a+8|0;i=c[a>>2]|0;g=i;do if(l>>>0>(((c[f>>2]|0)-i|0)/20|0)>>>0){Bm(a);e=ug(a)|0;if(e>>>0>>0)EO(a);else{j=((c[f>>2]|0)-(c[a>>2]|0)|0)/20|0;k=j<<1;Ol(a,j>>>0>>1>>>0?(k>>>0>>0?l:k):e);Am(a,b,d,l);break}}else{k=a+4|0;j=((c[k>>2]|0)-i|0)/20|0;h=l>>>0>j>>>0;j=h?b+(j*20|0)|0:d;e=j-e|0;if(e|0)$O(i|0,b|0,e|0)|0;f=g+(((e|0)/20|0)*20|0)|0;if(h){Am(a,j,d,l-(((c[k>>2]|0)-(c[a>>2]|0)|0)/20|0)|0);break}e=c[k>>2]|0;while(1){if((e|0)==(f|0))break;l=e+-20|0;Of(l);e=l}c[k>>2]=f}while(0);return}function jm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;d=a+4|0;f=c[a>>2]|0;e=(c[d>>2]|0)-f|0;if(e>>>0>=b>>>0){if(e>>>0>b>>>0)c[d>>2]=f+b}else xm(a,b-e|0);return}function km(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;i=b;k=d-i|0;f=a+8|0;e=c[a>>2]|0;j=e;do if(k>>>0>((c[f>>2]|0)-e|0)>>>0){vm(a);e=mg(a)|0;if(e>>>0>>0)EO(a);else{i=(c[f>>2]|0)-(c[a>>2]|0)|0;j=i<<1;wm(a,i>>>0>>1>>>0?(j>>>0>>0?k:j):e);um(a,b,d,k);break}}else{h=a+4|0;g=(c[h>>2]|0)-e|0;f=k>>>0>g>>>0;g=f?b+g|0:d;e=g-i|0;if(e|0)$O(j|0,b|0,e|0)|0;if(f){um(a,g,d,k-(c[h>>2]|0)+(c[a>>2]|0)|0);break}else{c[h>>2]=j+e;break}}while(0);return}function lm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i+4|0;e=i;c[e>>2]=d;a=a+72|0;if(ok(a,e)|0){i=O(16)|0;c[h>>2]=0;c[h+4>>2]=0;c[h+8>>2]=0;gO(h,29085,Yf(29085)|0);mj(i,h);Q(i|0,13208,5)}f=Ck(a,e)|0;g=c[b>>2]|0;c[h>>2]=g;e=h+4|0;a=c[b+4>>2]|0;c[e>>2]=a;if(!a){d=e;a=0}else{d=a+4|0;c[d>>2]=(c[d>>2]|0)+1;d=e;a=c[e>>2]|0}c[h>>2]=c[f>>2];c[f>>2]=g;b=f+4|0;c[d>>2]=c[b>>2];c[b>>2]=a;Rj(h);zb=i;return}function mm(a,b){a=a|0;b=b|0;var d=0,e=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;s=zb;zb=zb+32|0;r=s+4|0;l=s;m=s+16|0;c[l>>2]=b;q=c[b>>2]|0;o=a+4|0;i=c[o>>2]|0;p=(i|0)==0;a:do if(!p){k=i+-1|0;e=(k&i|0)==0;if(!e)if(q>>>0>>0)j=q;else j=(q>>>0)%(i>>>0)|0;else j=k&q;b=c[(c[a>>2]|0)+(j<<2)>>2]|0;if(!b){b=j;n=16}else do{b=c[b>>2]|0;if(!b){b=j;n=16;break a}d=c[b+4>>2]|0;if((d|0)!=(q|0)){if(!e){if(d>>>0>=i>>>0)d=(d>>>0)%(i>>>0)|0}else d=d&k;if((d|0)!=(j|0)){b=j;n=16;break a}}}while((c[b+8>>2]|0)!=(q|0))}else{b=0;n=16}while(0);if((n|0)==16){rm(r,a,q,57660,l,m);j=a+12|0;g=+(((c[j>>2]|0)+1|0)>>>0);h=+f[a+16>>2];do if(p|h*+(i>>>0)>>0<3|(i+-1&i|0)!=0)&1;d=~~+A(+(g/h))>>>0;sm(a,b>>>0>>0?d:b);b=c[o>>2]|0;d=b+-1|0;if(!(d&b)){i=b;b=d&q;break}if(q>>>0>>0){i=b;b=q}else{i=b;b=(q>>>0)%(b>>>0)|0}}while(0);d=c[(c[a>>2]|0)+(b<<2)>>2]|0;if(!d){e=a+8|0;c[c[r>>2]>>2]=c[e>>2];c[e>>2]=c[r>>2];c[(c[a>>2]|0)+(b<<2)>>2]=e;e=c[r>>2]|0;b=c[e>>2]|0;if(!b)b=r;else{b=c[b+4>>2]|0;d=i+-1|0;if(d&i){if(b>>>0>=i>>>0)b=(b>>>0)%(i>>>0)|0}else b=b&d;c[(c[a>>2]|0)+(b<<2)>>2]=e;b=r}}else{c[c[r>>2]>>2]=c[d>>2];c[d>>2]=c[r>>2];b=r}r=c[b>>2]|0;c[j>>2]=(c[j>>2]|0)+1;c[b>>2]=0;b=r}zb=s;return b+12|0}function nm(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=b;k=(d-e|0)/12|0;f=a+8|0;j=c[a>>2]|0;i=j;do if(k>>>0>(((c[f>>2]|0)-j|0)/12|0)>>>0){pm(a);e=qg(a)|0;if(e>>>0>>0)EO(a);else{i=((c[f>>2]|0)-(c[a>>2]|0)|0)/12|0;j=i<<1;qm(a,i>>>0>>1>>>0?(j>>>0>>0?k:j):e);om(a,b,d,k);break}}else{f=a+4|0;h=((c[f>>2]|0)-j|0)/12|0;g=k>>>0>h>>>0;h=g?b+(h*12|0)|0:d;e=h-e|0;if(e|0)$O(j|0,b|0,e|0)|0;if(g){om(a,h,d,k-(((c[f>>2]|0)-(c[a>>2]|0)|0)/12|0)|0);break}else{c[f>>2]=i+(((e|0)/12|0)*12|0);break}}while(0);return}function om(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a+4|0;a=d-b|0;if((a|0)>0){_O(c[e>>2]|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+(((a>>>0)/12|0)*12|0)}return}function pm(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;d=b;if(b|0){e=a+4|0;c[e>>2]=d;f=a+8|0;Pf(b,(c[f>>2]|0)-d|0);c[f>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function qm(a,b){a=a|0;b=b|0;var d=0;if((qg(a)|0)>>>0>>0)EO(a);if(b>>>0>357913941){b=O(8)|0;dO(b,37409);c[b>>2]=16392;Q(b|0,13960,22)}else{d=tB(b*12|0)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+(b*12|0);return}}function rm(b,d,e,f,g,h){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;h=tB(24)|0;c[b>>2]=h;c[b+4>>2]=d+8;c[h+8>>2]=c[c[g>>2]>>2];c[h+12>>2]=0;c[h+16>>2]=0;c[h+20>>2]=0;a[b+8>>0]=1;c[h+4>>2]=e;c[h>>2]=0;return}function sm(a,b){a=a|0;b=b|0;var d=0,e=0,g=0;if((b|0)!=1){if(b+-1&b)b=AD(b)|0}else b=2;e=c[a+4>>2]|0;if(b>>>0<=e>>>0){if(b>>>0>>0){d=~~+A(+(+((c[a+12>>2]|0)>>>0)/+f[a+16>>2]))>>>0;if(e>>>0>2&(e+-1&e|0)==0){g=1<<32-(C(d+-1|0)|0);d=d>>>0<2?d:g}else d=AD(d)|0;b=b>>>0>>0?d:b;if(b>>>0>>0)tm(a,b)}}else tm(a,b);return}function tm(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;e=a+4|0;a:do if(b){if(b>>>0>1073741823){a=O(8)|0;dO(a,37409);c[a>>2]=16392;Q(a|0,13960,22)}l=tB(b<<2)|0;d=c[a>>2]|0;c[a>>2]=l;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=b;d=0;while(1){if((d|0)==(b|0))break;c[(c[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}f=a+8|0;d=c[f>>2]|0;if(d|0){e=c[d+4>>2]|0;k=b+-1|0;l=(k&b|0)==0;if(!l){if(e>>>0>=b>>>0)e=(e>>>0)%(b>>>0)|0}else e=e&k;c[(c[a>>2]|0)+(e<<2)>>2]=f;while(1){j=d;b:while(1){while(1){d=c[j>>2]|0;if(!d)break a;f=c[d+4>>2]|0;if(!l){if(f>>>0>=b>>>0)f=(f>>>0)%(b>>>0)|0}else f=f&k;if((f|0)==(e|0))break;g=(c[a>>2]|0)+(f<<2)|0;if(!(c[g>>2]|0))break b;h=d+8|0;g=d;while(1){i=c[g>>2]|0;if(!i)break;if((c[h>>2]|0)==(c[i+8>>2]|0))g=i;else break}c[j>>2]=i;c[g>>2]=c[c[(c[a>>2]|0)+(f<<2)>>2]>>2];c[c[(c[a>>2]|0)+(f<<2)>>2]>>2]=d}j=d}c[g>>2]=j;e=f}}}else{d=c[a>>2]|0;c[a>>2]=0;if(d|0)Pf(d,c[a+4>>2]<<2);c[e>>2]=0}while(0);return}function um(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;e=a+4|0;a=d-b|0;if((a|0)>0){_O(c[e>>2]|0,b|0,a|0)|0;c[e>>2]=(c[e>>2]|0)+a}return}function vm(a){a=a|0;var b=0,d=0,e=0,f=0;b=c[a>>2]|0;d=b;if(b|0){e=a+4|0;c[e>>2]=d;f=a+8|0;Pf(b,(c[f>>2]|0)-d|0);c[f>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function wm(a,b){a=a|0;b=b|0;var d=0;if((mg(a)|0)>>>0>>0)EO(a);else{d=tB(b)|0;c[a+4>>2]=d;c[a>>2]=d;c[a+8>>2]=d+b;return}}function xm(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if(((c[g>>2]|0)-d|0)>>>0>>0){d=d-(c[a>>2]|0)+b|0;e=mg(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=(c[g>>2]|0)-j|0;g=k<<1;ng(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,(c[h>>2]|0)-j|0,a+8|0);zm(f,b);og(a,f);pg(f);break}}else ym(a,b);while(0);zb=i;return}function ym(b,d){b=b|0;d=d|0;var e=0;e=b+4|0;b=d;d=c[e>>2]|0;do{a[d>>0]=0;d=(c[e>>2]|0)+1|0;c[e>>2]=d;b=b+-1|0}while((b|0)!=0);return}function zm(b,d){b=b|0;d=d|0;var e=0;e=b+8|0;b=d;d=c[e>>2]|0;do{a[d>>0]=0;d=(c[e>>2]|0)+1|0;c[e>>2]=d;b=b+-1|0}while((b|0)!=0);return}function Am(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;a=a+4|0;while(1){if((b|0)==(d|0))break;e=c[a>>2]|0;c[e>>2]=c[b>>2];c[e+4>>2]=c[b+4>>2];c[e+8>>2]=c[b+8>>2];c[e+12>>2]=c[b+12>>2];c[e+16>>2]=c[b+16>>2];c[a>>2]=(c[a>>2]|0)+20;b=b+20|0}return}function Bm(a){a=a|0;var b=0,d=0,e=0,f=0;d=c[a>>2]|0;if(d|0){e=a+4|0;b=c[e>>2]|0;while(1){if((b|0)==(d|0))break;f=b+-20|0;Of(f);b=f}c[e>>2]=d;d=c[a>>2]|0;f=a+8|0;Pf(d,(c[f>>2]|0)-d|0);c[f>>2]=0;c[e>>2]=0;c[a>>2]=0}return}function Cm(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;i=zb;zb=zb+32|0;f=i;g=a+8|0;h=a+4|0;d=c[h>>2]|0;do if((((c[g>>2]|0)-d|0)/20|0)>>>0>>0){d=((d-(c[a>>2]|0)|0)/20|0)+b|0;e=ug(a)|0;if(e>>>0>>0)EO(a);else{j=c[a>>2]|0;k=((c[g>>2]|0)-j|0)/20|0;g=k<<1;vg(f,k>>>0>>1>>>0?(g>>>0>>0?d:g):e,((c[h>>2]|0)-j|0)/20|0,a+8|0);Dm(f,b);wg(a,f);xg(f);break}}else Pl(a,b);while(0);zb=i;return}function Dm(a,b){a=a|0;b=b|0;var d=0;d=a+8|0;a=b;b=c[d>>2]|0;do{Ql(b);b=(c[d>>2]|0)+20|0;c[d>>2]=b;a=a+-1|0}while((a|0)!=0);return}function Em(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=zb;zb=zb+32|0;g=f;kq(g,b,1,d,e,d,1);e=Fm(c[c[a>>2]>>2]|0,g)|0;rq(g);zb=f;return e|0}function Fm(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;f=zb;zb=zb+32|0;d=f;e=a+92|0;g=pk(e)|0;if(!(((c[g+4>>2]|0)!=(c[g>>2]|0)?(g=pk(e)|0,g=Ng(c[g>>2]|0)|0,(g|0)==(Ng(b)|0)):0)?(g=pk(e)|0,g=Og(c[g>>2]|0)|0,(g|0)==(Og(b)|0)):0)){g=Ng(b)|0;g=qk(g,Og(b)|0,8)|0;h=Ng(b)|0;$i(e,h,Og(b)|0,g)}Bq(d,29103);if(Sh(d)|0)ij(e,b);Cq(d);h=Gm(a,e)|0;zb=f;return h|0}function Gm(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;k=zb;zb=zb+64|0;e=k+16|0;j=k;g=k+56|0;h=k+48|0;i=b+160|0;l=rk(i)|0;f=Ah(d)|0;if(!((l|0)==(Ng(c[f>>2]|0)|0)?(f=sk(i)|0,l=Ah(d)|0,(f|0)==(Og(c[l>>2]|0)|0)):0))zh(i,d);f=b+64|0;m=tB(148)|0;tk(m);c[h>>2]=0;c[e>>2]=c[h>>2];uk(g,m,e);m=c[g>>2]|0;c[g>>2]=c[f>>2];c[f>>2]=m;m=g+4|0;l=b+68|0;h=c[m>>2]|0;c[m>>2]=c[l>>2];c[l>>2]=h;Rj(g);l=c[f>>2]|0;h=Ah(d)|0;vk(l,Ng(c[h>>2]|0)|0);h=c[f>>2]|0;l=Ah(d)|0;wk(h,Og(c[l>>2]|0)|0);Bq(e,29117);if(Sh(e)|0)xk(c[f>>2]|0,d,i,b+316|0);Cq(e);m=yk()|0;Zp(e);i=(a[e+11>>0]|0)<0?c[e>>2]|0:e;l=Ak(zk(c[f>>2]|0)|0)|0;c[j>>2]=35129;c[j+4>>2]=i;c[j+8>>2]=30646;c[j+12>>2]=l;uq(m,8,30602,j);jO(e);m=Hm(b,c[f>>2]|0)|0;zb=k;return m|0}function Hm(b,d){b=b|0;d=d|0;var e=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;D=zb;zb=zb+144|0;s=D+104|0;w=D;x=D+72|0;y=D+40|0;z=b+12|0;A=b+16|0;c[A>>2]=c[z>>2];B=b+24|0;c[B>>2]=-1;k=Jm(Im(d)|0)|0;l=b+8|0;m=b+636|0;n=b+652|0;o=s+4|0;p=s+8|0;q=b+788|0;r=x+4|0;t=x+8|0;u=b+4|0;v=b+28|0;e=b+80|0;while(1){e=c[e>>2]|0;if(!e)break;Bq(s,30936);do if(Sh(s)|0){E=(a[l>>0]|0)==0;g=Im(d)|0;j=e;h=j+12|0;i=zk(c[h>>2]|0)|0;if(E){E=Mm(m,g,i)|0;if(E>>>0>=(c[b>>2]|0)>>>0){C=9;break}}else{E=Lm(m,g,i,Km(c[h>>2]|0)|0)|0;if(E>>>0>=(c[b>>2]|0)>>>0){C=9;break}}Cq(s)}else{j=e;h=j+12|0;C=9}while(0);do if((C|0)==9){C=0;Cq(s);i=gm(zk(c[h>>2]|0)|0)|0;Bq(s,30953);if(Sh(s)|0){G=Nm(m)|0;F=Om(d)|0;E=Pm(d)|0;g=Om(c[h>>2]|0)|0;g=Qm(n,k,i,G,F,E,g,Pm(c[h>>2]|0)|0)|0;if((g|0)<0){Cq(s);break}}else g=-1;Cq(s);c[s>>2]=0;c[o>>2]=0;c[p>>2]=0;Bq(w,30970);if(Sh(w)|0)Rm(s,n,Nm(m)|0,g,1.0);Cq(w);Bq(x,30993);if(Sh(x)|0?(G=Om(c[h>>2]|0)|0,!(Sm(w,k,i,s,q,G,Pm(c[h>>2]|0)|0)|0)):0)Cq(x);else{Cq(x);c[x>>2]=0;c[r>>2]=0;c[t>>2]=0;Bq(y,31017);if(Sh(y)|0?(Tm(x,w,k,i,s,+f[u>>2]),(c[r>>2]|0)-(c[x>>2]|0)>>3>>>0<(c[b>>2]|0)>>>0):0)Cq(y);else C=20;do if((C|0)==20){C=0;Cq(y);Bq(y,31034);if(Sh(y)|0?(G=Im(d)|0,G=Um(m,G,zk(c[h>>2]|0)|0,w,10.0)|0,G>>>0<(c[b>>2]|0)>>>0):0){Cq(y);break}Cq(y);Bq(y,31051);if(Sh(y)|0){E=Nm(m)|0;F=Om(d)|0;G=Pm(d)|0;g=Om(c[h>>2]|0)|0;g=Qm(n,k,i,E,F,G,g,Pm(c[h>>2]|0)|0)|0;if((g|0)<0){Cq(y);break}}Cq(y);Bq(y,31068);if(Sh(y)|0)Rm(s,n,Nm(m)|0,g,1.0);Cq(y);Bq(y,31091);if(Sh(y)|0?(G=Om(c[h>>2]|0)|0,!(Sm(w,k,i,s,q,G,Pm(c[h>>2]|0)|0)|0)):0){Cq(y);break}Cq(y);c[r>>2]=c[x>>2];Bq(y,31115);if(Sh(y)|0)Tm(x,w,k,i,s,+f[u>>2]);Cq(y);G=(c[r>>2]|0)-(c[x>>2]|0)>>3;if(G>>>0>=(c[b>>2]|0)>>>0?G>>>0>(c[A>>2]|0)-(c[z>>2]|0)>>3>>>0:0){Vm(v,w);Wm(z,x);c[B>>2]=c[j+8>>2]}}while(0);Sj(x)}Sj(s)}while(0)}zb=D;return (c[B>>2]|0)>-1|0}function Im(a){a=a|0;return a+8|0}function Jm(a){a=a|0;return a+16|0}function Km(a){a=a|0;return a+36|0} function Wu(e,f){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;v=c[e+468>>2]|0;p=e+280|0;if(c[p>>2]|0){q=v+56|0;g=c[q>>2]|0;if(!g){if(!(Gb[c[(c[e+464>>2]|0)+8>>2]&127](e)|0)){u=c[e>>2]|0;c[u+20>>2]=25;Sb[c[u>>2]&255](e)}h=e+340|0;if((c[h>>2]|0)>0){i=e+224|0;j=e+412|0;k=e+436|0;l=e+420|0;g=0;do{m=c[e+344+(g<<2)>>2]|0;if(c[i>>2]|0)if(!(c[j>>2]|0)){if(!(c[l>>2]|0))r=10}else r=13;else r=10;do if((r|0)==10){r=0;n=c[v+60+(c[m+20>>2]<<2)>>2]|0;o=n+64|0;do{a[n>>0]=0;n=n+1|0}while((n|0)<(o|0));c[v+24+(g<<2)>>2]=0;c[v+40+(g<<2)>>2]=0;if(!(c[i>>2]|0))if(!(c[k>>2]|0))break;else{r=13;break}else if(!(c[j>>2]|0))break;else{r=13;break}}while(0);if((r|0)==13){r=0;aP(c[v+124+(c[m+24>>2]<<2)>>2]|0,0,256)|0}g=g+1|0}while((g|0)<(c[h>>2]|0))}c[v+12>>2]=0;c[v+16>>2]=0;c[v+20>>2]=-16;g=c[p>>2]|0;c[q>>2]=g}c[q>>2]=g+-1}u=v+20|0;if((c[u>>2]|0)==-1)return 1;p=c[e+432>>2]|0;q=e+368|0;if((c[q>>2]|0)<=0)return 1;r=e+436|0;s=v+188|0;o=0;a:while(1){t=c[f+(o<<2)>>2]|0;l=c[e+372+(o<<2)>>2]|0;n=c[e+344+(l<<2)>>2]|0;j=c[n+20>>2]|0;h=v+60+(j<<2)|0;k=v+40+(l<<2)|0;g=(c[h>>2]|0)+(c[k>>2]|0)|0;if(!(Xu(e,g)|0)){c[k>>2]=0;g=c[v+24+(l<<2)>>2]|0}else{m=Xu(e,g+1|0)|0;i=g+2+m|0;g=Xu(e,i)|0;if(g){h=(c[h>>2]|0)+20|0;if(!(Xu(e,h)|0))i=h;else while(1){g=g<<1;if((g|0)==32768){r=26;break a}h=h+1|0;if(!(Xu(e,h)|0)){i=h;break}}}else g=0;do if((g|0)>=(1<<(d[e+232+j>>0]|0)>>1|0)){h=m<<2;if((g|0)>(1<<(d[e+248+j>>0]|0)>>1|0)){h=h+12|0;break}else{h=h+4|0;break}}else h=0;while(0);c[k>>2]=h;i=i+14|0;h=g>>1;if(h)do{k=(Xu(e,i)|0)==0;g=(k?0:h)|g;h=h>>1}while((h|0)!=0);l=v+24+(l<<2)|0;g=(c[l>>2]|0)+((m|0)==0?g+1|0:~g)|0;c[l>>2]=g}b[t>>1]=g;b:do if(c[r>>2]|0){m=c[n+24>>2]|0;l=v+124+(m<<2)|0;m=e+264+m|0;g=0;while(1){h=(c[l>>2]|0)+(g*3|0)|0;if(Xu(e,h)|0)break b;j=g+1|0;if(!(Xu(e,h+1|0)|0)){i=h;g=j;while(1){if((g|0)>=(c[r>>2]|0)){r=42;break a}h=i+3|0;j=g+1|0;if(!(Xu(e,i+4|0)|0)){i=h;g=j}else break}}k=Xu(e,s)|0;h=h+2|0;i=Xu(e,h)|0;if(i){if(Xu(e,h)|0){i=i<<1;h=(c[l>>2]|0)+((g|0)<(d[m>>0]|0|0)?189:217)|0;if(!(Xu(e,h)|0))g=i;else{g=i;do{g=g<<1;if((g|0)==32768){r=49;break a}h=h+1|0}while((Xu(e,h)|0)!=0)}}else g=i;i=h+14|0;h=g>>1;if(h)do{n=(Xu(e,i)|0)==0;g=(n?0:h)|g;h=h>>1}while((h|0)!=0)}else g=0;b[t+(c[p+(j<<2)>>2]<<1)>>1]=(k|0)==0?g+1|0:g^65535;if((j|0)<(c[r>>2]|0))g=j;else break}}while(0);o=o+1|0;if((o|0)>=(c[q>>2]|0)){r=56;break}}if((r|0)==26){v=c[e>>2]|0;c[v+20>>2]=117;Ub[c[v+4>>2]&63](e,-1);c[u>>2]=-1;return 1}else if((r|0)==42){v=c[e>>2]|0;c[v+20>>2]=117;Ub[c[v+4>>2]&63](e,-1);c[u>>2]=-1;return 1}else if((r|0)==49){v=c[e>>2]|0;c[v+20>>2]=117;Ub[c[v+4>>2]&63](e,-1);c[u>>2]=-1;return 1}else if((r|0)==56)return 1;return 0}function Xu(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;g=c[b+468>>2]|0;m=g+16|0;f=c[m>>2]|0;k=g+20|0;if((f|0)<32768){h=b+440|0;j=b+24|0;i=g+12|0;f=c[k>>2]|0;while(1){g=f+-1|0;c[k>>2]=g;if((f|0)<1){if(!(c[h>>2]|0)){f=c[j>>2]|0;g=f+4|0;if((c[g>>2]|0)==0?(Gb[c[f+12>>2]&127](b)|0)==0:0){l=c[b>>2]|0;c[l+20>>2]=25;Sb[c[l>>2]&255](b)}c[g>>2]=(c[g>>2]|0)+-1;l=c[f>>2]|0;c[f>>2]=l+1;l=a[l>>0]|0;f=l&255;a:do if(l<<24>>24==-1){b:while(1){f=c[j>>2]|0;g=f+4|0;if((c[g>>2]|0)==0?(Gb[c[f+12>>2]&127](b)|0)==0:0){l=c[b>>2]|0;c[l+20>>2]=25;Sb[c[l>>2]&255](b)}c[g>>2]=(c[g>>2]|0)+-1;l=c[f>>2]|0;c[f>>2]=l+1;f=a[l>>0]|0;switch(f<<24>>24){case 0:{f=255;break a}case -1:break;default:break b}}c[h>>2]=f&255;f=0}while(0);g=c[k>>2]|0}else f=0;c[i>>2]=c[i>>2]<<8|f;f=g+8|0;c[k>>2]=f;if((g|0)<-8){f=g+9|0;c[k>>2]=f;if(!f){c[m>>2]=32768;g=0}else g=f}else g=f}f=c[m>>2]<<1;c[m>>2]=f;if((f|0)<32768)f=g;else break}}else{i=g+12|0;g=c[k>>2]|0}j=d[e>>0]|0;b=c[3360+((j&127)<<2)>>2]|0;k=b>>8;l=b>>16;h=f-l|0;c[m>>2]=h;f=h<>2]|0;if((g|0)>=(f|0)){c[i>>2]=g-f;c[m>>2]=l;f=j&128;if((h|0)<(l|0)){a[e>>0]=f^k;e=j;e=e>>7;return e|0}else{a[e>>0]=f^b;e=j^128;e=e>>7;return e|0}}if((h|0)>=32768){e=j;e=e>>7;return e|0}f=j&128;if((h|0)<(l|0)){a[e>>0]=f^b;e=j^128;e=e>>7;return e|0}else{a[e>>0]=f^k;e=j;e=e>>7;return e|0}return 0}function Yu(a){a=a|0;var d=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.0,u=0;n=c[a+472>>2]|0;o=a+36|0;if((c[o>>2]|0)<=0)return;r=a+72|0;l=0;m=c[a+216>>2]|0;i=0;j=0;while(1){d=c[m+36>>2]|0;h=m+40|0;a:do switch((d<<8)+(c[h>>2]|0)|0){case 257:{d=0;k=13;break}case 514:{d=0;k=14;break}case 771:{d=0;k=15;break}case 1028:{d=0;k=16;break}case 1285:{d=0;k=17;break}case 1542:{d=0;k=18;break}case 1799:{d=0;k=19;break}case 2313:{d=0;k=20;break}case 2570:{d=0;k=21;break}case 2827:{d=0;k=22;break}case 3084:{d=0;k=23;break}case 3341:{d=0;k=24;break}case 3598:{d=0;k=25;break}case 3855:{d=0;k=26;break}case 4112:{d=0;k=27;break}case 4104:{d=0;k=28;break}case 3591:{d=0;k=29;break}case 3078:{d=0;k=30;break}case 2565:{d=0;k=31;break}case 2052:{d=0;k=32;break}case 1539:{d=0;k=33;break}case 1026:{d=0;k=34;break}case 513:{d=0;k=35;break}case 2064:{d=0;k=36;break}case 1806:{d=0;k=37;break}case 1548:{d=0;k=38;break}case 1290:{d=0;k=39;break}case 1032:{d=0;k=40;break}case 774:{d=0;k=41;break}case 516:{d=0;k=42;break}case 258:{d=0;k=43;break}case 2056:{d=c[r>>2]|0;switch(d|0){case 0:{k=44;break a}case 1:{k=45;break a}case 2:{k=46;break a}default:{d=c[a>>2]|0;c[d+20>>2]=49;Sb[c[d>>2]&255](a);d=i;k=j;break a}}}default:{k=c[a>>2]|0;c[k+20>>2]=7;c[k+24>>2]=d;c[(c[a>>2]|0)+28>>2]=c[h>>2];Sb[c[c[a>>2]>>2]&255](a);d=i;k=j}}while(0);c[n+4+(l<<2)>>2]=k;b:do if((c[m+52>>2]|0?(p=n+44+(l<<2)|0,(c[p>>2]|0)!=(d|0)):0)?(q=c[m+80>>2]|0,q|0):0){c[p>>2]=d;switch(d|0){case 0:{i=c[m+84>>2]|0;h=0;do{c[i+(h<<2)>>2]=e[q+(h<<1)>>1];h=h+1|0}while((h|0)!=64);break}case 1:{i=c[m+84>>2]|0;h=0;do{j=(B(b[5248+(h<<1)>>1]|0,e[q+(h<<1)>>1]|0)|0)+2048>>12;c[i+(h<<2)>>2]=j;h=h+1|0}while((h|0)!=64);break}case 2:{j=c[m+84>>2]|0;h=0;i=0;while(1){t=+g[5376+(h<<3)>>3];f[j+(i<<2)>>2]=t*+(e[q+(i<<1)>>1]|0)*.125;s=i|1;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*1.387039845*.125;s=s+1|0;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*1.306562965*.125;s=i|3;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*1.175875602*.125;u=s+1|0;f[j+(u<<2)>>2]=t*+(e[q+(u<<1)>>1]|0)*.125;u=s+2|0;f[j+(u<<2)>>2]=t*+(e[q+(u<<1)>>1]|0)*.785694958*.125;s=s+3|0;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*.5411961*.125;s=i|7;f[j+(s<<2)>>2]=t*+(e[q+(s<<1)>>1]|0)*.275899379*.125;h=h+1|0;if((h|0)==8)break;else i=i+8|0}break}default:{u=c[a>>2]|0;c[u+20>>2]=49;Sb[c[u>>2]&255](a);break b}}}while(0);l=l+1|0;if((l|0)>=(c[o>>2]|0))break;else{m=m+88|0;i=d;j=k}}return}function Zu(d,e,g,h,i){d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0.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.0,w=0.0,x=0.0,y=0.0,z=0.0;q=zb;zb=zb+256|0;j=q;o=c[d+336>>2]|0;n=j;m=c[e+84>>2]|0;l=8;while(1){e=b[g+16>>1]|0;d=b[g+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[g+48>>1]|0)==0?(b[g+64>>1]|0)==0:0)?(b[g+80>>1]|0)==0:0)?(b[g+96>>1]|0)==0:0)?(b[g+112>>1]|0)==0:0){k=+f[m>>2]*+(b[g>>1]|0);f[n>>2]=k;f[n+32>>2]=k;f[n+64>>2]=k;f[n+96>>2]=k;f[n+128>>2]=k;f[n+160>>2]=k;f[n+192>>2]=k;d=56}else{d=0;p=9}else p=9;if((p|0)==9){p=0;r=+f[m>>2]*+(b[g>>1]|0);x=+f[m+64>>2]*+(d<<16>>16);w=+f[m+128>>2]*+(b[g+64>>1]|0);t=+f[m+192>>2]*+(b[g+96>>1]|0);v=r+w;w=r-w;r=x+t;t=(x-t)*1.4142135381698608-r;x=v+r;r=v-r;v=w+t;t=w-t;w=+f[m+32>>2]*+(e<<16>>16);u=+f[m+96>>2]*+(b[g+48>>1]|0);z=+f[m+160>>2]*+(b[g+80>>1]|0);k=+f[m+224>>2]*+(b[g+112>>1]|0);s=u+z;u=z-u;z=w+k;k=w-k;w=s+z;y=(u+k)*1.8477590084075928;u=y-u*2.613126039505005-w;s=(z-s)*1.4142135381698608-u;k=y-k*1.0823922157287598-s;f[n>>2]=x+w;f[n+224>>2]=x-w;f[n+32>>2]=v+u;f[n+192>>2]=v-u;f[n+64>>2]=t+s;f[n+160>>2]=t-s;f[n+96>>2]=r+k;k=r-k;d=32}f[n+(d<<2)>>2]=k;if(l>>>0>1){n=n+4|0;m=m+4|0;g=g+2|0;l=l+-1|0}else break}e=o+-384|0;d=0;while(1){p=(c[h+(d<<2)>>2]|0)+i|0;s=+f[j>>2]+512.5;t=+f[j+16>>2];u=s+t;t=s-t;s=+f[j+8>>2];w=+f[j+24>>2];y=s+w;w=(s-w)*1.4142135381698608-y;s=u+y;y=u-y;u=t+w;w=t-w;t=+f[j+20>>2];v=+f[j+12>>2];x=t+v;v=t-v;t=+f[j+4>>2];z=+f[j+28>>2];k=t+z;z=t-z;t=x+k;r=(v+z)*1.8477590084075928;v=r-v*2.613126039505005-t;x=(k-x)*1.4142135381698608-v;z=r-z*1.0823922157287598-x;a[p>>0]=a[e+(~~(s+t)&1023)>>0]|0;a[p+7>>0]=a[e+(~~(s-t)&1023)>>0]|0;a[p+1>>0]=a[e+(~~(u+v)&1023)>>0]|0;a[p+6>>0]=a[e+(~~(u-v)&1023)>>0]|0;a[p+2>>0]=a[e+(~~(w+x)&1023)>>0]|0;a[p+5>>0]=a[e+(~~(w-x)&1023)>>0]|0;a[p+3>>0]=a[e+(~~(y+z)&1023)>>0]|0;a[p+4>>0]=a[e+(~~(y-z)&1023)>>0]|0;d=d+1|0;if((d|0)==8)break;else j=j+32|0}zb=q;return}function _u(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;o=zb;zb=zb+256|0;m=o;l=c[d+336>>2]|0;k=m;j=c[e+84>>2]|0;i=8;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){d=B(c[j>>2]|0,b[f>>1]|0)|0;c[k>>2]=d;c[k+32>>2]=d;c[k+64>>2]=d;c[k+96>>2]=d;c[k+128>>2]=d;c[k+160>>2]=d;c[k+192>>2]=d;e=56}else{d=0;n=9}else n=9;if((n|0)==9){n=0;p=B(c[j>>2]|0,b[f>>1]|0)|0;u=B(c[j+64>>2]|0,d<<16>>16)|0;t=B(c[j+128>>2]|0,b[f+64>>1]|0)|0;q=B(c[j+192>>2]|0,b[f+96>>1]|0)|0;s=t+p|0;t=p-t|0;p=q+u|0;q=((u-q|0)*362>>8)-p|0;u=p+s|0;p=s-p|0;s=q+t|0;q=t-q|0;t=B(c[j+32>>2]|0,e<<16>>16)|0;r=B(c[j+96>>2]|0,b[f+48>>1]|0)|0;w=B(c[j+160>>2]|0,b[f+80>>1]|0)|0;d=B(c[j+224>>2]|0,b[f+112>>1]|0)|0;e=w+r|0;r=w-r|0;w=d+t|0;d=t-d|0;t=w+e|0;v=(d+r|0)*473>>8;r=v-(r*669>>8)-t|0;e=((w-e|0)*362>>8)-r|0;d=v-(d*277>>8)-e|0;c[k>>2]=t+u;c[k+224>>2]=u-t;c[k+32>>2]=r+s;c[k+192>>2]=s-r;c[k+64>>2]=e+q;c[k+160>>2]=q-e;c[k+96>>2]=d+p;d=p-d|0;e=32}c[k+(e<<2)>>2]=d;if(i>>>0>1){k=k+4|0;j=j+4|0;f=f+2|0;i=i+-1|0}else break}l=l+-384|0;k=0;e=m;while(1){f=(c[g+(k<<2)>>2]|0)+h|0;i=(c[e>>2]|0)+16400|0;j=c[e+4>>2]|0;d=c[e+8>>2]|0;if(!(j|d))if(((((c[e+12>>2]|0)==0?(c[e+16>>2]|0)==0:0)?(c[e+20>>2]|0)==0:0)?(c[e+24>>2]|0)==0:0)?(c[e+28>>2]|0)==0:0){w=a[l+(i>>>5&1023)>>0]|0;a[f>>0]=w;aP(f+1|0,w|0,7)|0}else{d=0;n=19}else n=19;if((n|0)==19){n=0;w=c[e+16>>2]|0;r=w+i|0;w=i-w|0;t=c[e+24>>2]|0;v=t+d|0;t=((d-t|0)*362>>8)-v|0;p=v+r|0;v=r-v|0;r=t+w|0;t=w-t|0;w=c[e+20>>2]|0;s=c[e+12>>2]|0;u=s+w|0;s=w-s|0;w=c[e+28>>2]|0;i=w+j|0;w=j-w|0;q=i+u|0;m=(w+s|0)*473>>8;s=m-(s*669>>8)-q|0;u=((i-u|0)*362>>8)-s|0;w=m-(w*277>>8)-u|0;a[f>>0]=a[l+((q+p|0)>>>5&1023)>>0]|0;a[f+7>>0]=a[l+((p-q|0)>>>5&1023)>>0]|0;a[f+1>>0]=a[l+((s+r|0)>>>5&1023)>>0]|0;a[f+6>>0]=a[l+((r-s|0)>>>5&1023)>>0]|0;a[f+2>>0]=a[l+((u+t|0)>>>5&1023)>>0]|0;a[f+5>>0]=a[l+((t-u|0)>>>5&1023)>>0]|0;a[f+3>>0]=a[l+((w+v|0)>>>5&1023)>>0]|0;a[f+4>>0]=a[l+((v-w|0)>>>5&1023)>>0]|0}k=k+1|0;if((k|0)==8)break;else e=e+32|0}zb=o;return}function $u(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;d=(c[d+336>>2]|0)+-384|0;i=c[e+84>>2]|0;e=(B(c[i>>2]|0,b[f>>1]|0)|0)+4100|0;f=B(c[i+32>>2]|0,b[f+16>>1]|0)|0;a[(c[g>>2]|0)+h>>0]=a[d+((f+e|0)>>>3&1023)>>0]|0;a[(c[g+4>>2]|0)+h>>0]=a[d+((e-f|0)>>>3&1023)>>0]|0;return}function av(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=zb;zb=zb+32|0;j=i;d=c[d+336>>2]|0;k=c[e+84>>2]|0;n=B(c[k>>2]|0,b[f>>1]|0)|0;q=B(c[k+64>>2]|0,b[f+32>>1]|0)|0;e=q+n<<13;q=n-q<<13;n=B(c[k+32>>2]|0,b[f+16>>1]|0)|0;l=B(c[k+96>>2]|0,b[f+48>>1]|0)|0;p=(l+n|0)*4433|0;n=p+(n*6270|0)|0;l=p+(B(l,-15137)|0)|0;p=n+e|0;c[j>>2]=p;c[j+24>>2]=e-n;n=l+q|0;c[j+8>>2]=n;l=q-l|0;c[j+16>>2]=l;q=B(c[k+4>>2]|0,b[f+2>>1]|0)|0;e=B(c[k+68>>2]|0,b[f+34>>1]|0)|0;m=e+q<<13;e=q-e<<13;q=B(c[k+36>>2]|0,b[f+18>>1]|0)|0;k=B(c[k+100>>2]|0,b[f+50>>1]|0)|0;o=(k+q|0)*4433|0;f=o+(q*6270|0)|0;k=o+(B(k,-15137)|0)|0;o=f+m|0;c[j+4>>2]=o;f=m-f|0;c[j+28>>2]=f;m=k+e|0;c[j+12>>2]=m;k=e-k|0;c[j+20>>2]=k;e=d+-384|0;d=(c[g>>2]|0)+h|0;p=p+33587200|0;a[d>>0]=a[e+((p+o|0)>>>16&1023)>>0]|0;a[d+1>>0]=a[e+((p-o|0)>>>16&1023)>>0]|0;d=(c[g+4>>2]|0)+h|0;n=n+33587200|0;a[d>>0]=a[e+((n+m|0)>>>16&1023)>>0]|0;a[d+1>>0]=a[e+((n-m|0)>>>16&1023)>>0]|0;d=(c[g+8>>2]|0)+h|0;l=l+33587200|0;a[d>>0]=a[e+((l+k|0)>>>16&1023)>>0]|0;a[d+1>>0]=a[e+((l-k|0)>>>16&1023)>>0]|0;h=(c[g+12>>2]|0)+h|0;g=(c[j+24>>2]|0)+33587200|0;a[h>>0]=a[e+((g+f|0)>>>16&1023)>>0]|0;a[h+1>>0]=a[e+((g-f|0)>>>16&1023)>>0]|0;zb=i;return}function bv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;i=zb;zb=zb+80|0;j=i;m=c[d+336>>2]|0;k=c[e+84>>2]|0;t=B(b[f>>1]<<13,c[k>>2]|0)|0|1024;q=B((b[f+64>>1]|0)*5793|0,c[k+128>>2]|0)|0;r=q+t|0;t=(B(q,-2)|0)+t>>11;q=B((b[f+32>>1]|0)*10033|0,c[k+64>>2]|0)|0;l=q+r|0;q=r-q|0;r=B(c[k+32>>2]|0,b[f+16>>1]|0)|0;s=B(c[k+96>>2]|0,b[f+48>>1]|0)|0;e=B(c[k+160>>2]|0,b[f+80>>1]|0)|0;n=(e+r|0)*2998|0;d=n+(s+r<<13)|0;n=n+(e-s<<13)|0;e=r-s-e<<2;c[j>>2]=d+l>>11;c[j+60>>2]=l-d>>11;d=j+12|0;c[d>>2]=e+t;c[j+48>>2]=t-e;c[j+24>>2]=n+q>>11;c[j+36>>2]=q-n>>11;n=j+4|0;q=B(b[f+2>>1]<<13,c[k+4>>2]|0)|0|1024;e=B((b[f+66>>1]|0)*5793|0,c[k+132>>2]|0)|0;t=e+q|0;q=(B(e,-2)|0)+q>>11;e=B((b[f+34>>1]|0)*10033|0,c[k+68>>2]|0)|0;l=e+t|0;e=t-e|0;t=B(c[k+36>>2]|0,b[f+18>>1]|0)|0;s=B(c[k+100>>2]|0,b[f+50>>1]|0)|0;r=B(c[k+164>>2]|0,b[f+82>>1]|0)|0;o=(r+t|0)*2998|0;p=o+(s+t<<13)|0;o=o+(r-s<<13)|0;r=t-s-r<<2;c[n>>2]=p+l>>11;c[j+64>>2]=l-p>>11;c[j+16>>2]=r+q;c[j+52>>2]=q-r;c[j+28>>2]=o+e>>11;c[j+40>>2]=e-o>>11;o=B(b[f+4>>1]<<13,c[k+8>>2]|0)|0|1024;e=B((b[f+68>>1]|0)*5793|0,c[k+136>>2]|0)|0;r=e+o|0;o=(B(e,-2)|0)+o>>11;e=B((b[f+36>>1]|0)*10033|0,c[k+72>>2]|0)|0;q=e+r|0;e=r-e|0;r=B(c[k+40>>2]|0,b[f+20>>1]|0)|0;p=B(c[k+104>>2]|0,b[f+52>>1]|0)|0;k=B(c[k+168>>2]|0,b[f+84>>1]|0)|0;f=(k+r|0)*2998|0;l=f+(p+r<<13)|0;f=f+(k-p<<13)|0;k=r-p-k<<2;p=l+q>>11;c[j+8>>2]=p;c[j+68>>2]=q-l>>11;l=k+o|0;c[j+20>>2]=l;c[j+56>>2]=o-k;k=f+e>>11;c[j+32>>2]=k;c[j+44>>2]=e-f>>11;f=m+-384|0;e=(c[g>>2]|0)+h|0;m=(c[j>>2]<<13)+134348800|0;o=m+(p*5793|0)|0;m=(B(p,-11586)|0)+m|0;n=(c[n>>2]|0)*10033|0;a[e>>0]=a[f+((o+n|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((o-n|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(m>>>18&1023)>>0]|0;e=(c[g+4>>2]|0)+h|0;d=(c[d>>2]<<13)+134348800|0;m=d+(l*5793|0)|0;d=(B(l,-11586)|0)+d|0;l=(c[j+16>>2]|0)*10033|0;a[e>>0]=a[f+((m+l|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((m-l|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(d>>>18&1023)>>0]|0;e=(c[g+8>>2]|0)+h|0;d=(c[j+24>>2]<<13)+134348800|0;l=d+(k*5793|0)|0;d=(B(k,-11586)|0)+d|0;k=(c[j+28>>2]|0)*10033|0;a[e>>0]=a[f+((l+k|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((l-k|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(d>>>18&1023)>>0]|0;e=(c[g+12>>2]|0)+h|0;d=(c[j+36>>2]<<13)+134348800|0;k=c[j+44>>2]|0;l=d+(k*5793|0)|0;d=(B(k,-11586)|0)+d|0;k=(c[j+40>>2]|0)*10033|0;a[e>>0]=a[f+((l+k|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((l-k|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(d>>>18&1023)>>0]|0;e=(c[g+16>>2]|0)+h|0;d=(c[j+48>>2]<<13)+134348800|0;k=c[j+56>>2]|0;l=d+(k*5793|0)|0;d=(B(k,-11586)|0)+d|0;k=(c[j+52>>2]|0)*10033|0;a[e>>0]=a[f+((l+k|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+((l-k|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+(d>>>18&1023)>>0]|0;h=(c[g+20>>2]|0)+h|0;g=(c[j+60>>2]<<13)+134348800|0;e=c[j+68>>2]|0;d=g+(e*5793|0)|0;g=(B(e,-11586)|0)+g|0;e=(c[j+64>>2]|0)*10033|0;a[h>>0]=a[f+((d+e|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[f+((d-e|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[f+(g>>>18&1023)>>0]|0;zb=i;return}function cv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;o=zb;zb=zb+128|0;m=o;l=c[d+336>>2]|0;k=m;j=c[e+84>>2]|0;i=4;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){d=B(b[f>>1]<<2,c[j>>2]|0)|0;c[k>>2]=d;c[k+16>>2]=d;c[k+32>>2]=d;c[k+48>>2]=d;c[k+64>>2]=d;c[k+80>>2]=d;c[k+96>>2]=d;e=28}else{d=0;n=9}else n=9;if((n|0)==9){n=0;x=B(b[f+64>>1]<<13,c[j+128>>2]|0)|0;p=B(b[f>>1]<<13,c[j>>2]|0)|0|1024;s=x+p|0;x=p-x|0;p=B(c[j+64>>2]|0,d<<16>>16)|0;q=B(c[j+192>>2]|0,b[f+96>>1]|0)|0;u=(q+p|0)*4433|0;p=u+(p*6270|0)|0;q=u+(B(q,-15137)|0)|0;u=p+s|0;p=s-p|0;s=q+x|0;q=x-q|0;d=B(c[j+224>>2]|0,b[f+112>>1]|0)|0;x=B(c[j+160>>2]|0,b[f+80>>1]|0)|0;v=B(c[j+96>>2]|0,b[f+48>>1]|0)|0;t=B(c[j+32>>2]|0,e<<16>>16)|0;r=v+d|0;e=t+x|0;w=(e+r|0)*9633|0;r=w+(B(r,-16069)|0)|0;e=w+(B(e,-3196)|0)|0;w=B(t+d|0,-7373)|0;d=w+(d*2446|0)+r|0;t=w+(t*12299|0)+e|0;w=B(v+x|0,-20995)|0;e=w+(x*16819|0)+e|0;r=w+(v*25172|0)+r|0;c[k>>2]=t+u>>11;c[k+112>>2]=u-t>>11;c[k+16>>2]=r+s>>11;c[k+96>>2]=s-r>>11;c[k+32>>2]=e+q>>11;c[k+80>>2]=q-e>>11;c[k+48>>2]=d+p>>11;d=p-d>>11;e=16}c[k+(e<<2)>>2]=d;if(i>>>0>1){k=k+4|0;j=j+4|0;f=f+2|0;i=i+-1|0}else break}u=l+-384|0;x=(c[g>>2]|0)+h|0;s=(c[m>>2]|0)+16400|0;v=c[m+8>>2]|0;w=s+v<<13;v=s-v<<13;s=c[m+4>>2]|0;t=c[m+12>>2]|0;r=(t+s|0)*4433|0;s=r+(s*6270|0)|0;t=r+(B(t,-15137)|0)|0;a[x>>0]=a[u+((s+w|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((w-s|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((t+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-t|0)>>>18&1023)>>0]|0;x=(c[g+4>>2]|0)+h|0;t=(c[m+16>>2]|0)+16400|0;v=c[m+24>>2]|0;s=t+v<<13;v=t-v<<13;t=c[m+20>>2]|0;w=c[m+28>>2]|0;r=(w+t|0)*4433|0;t=r+(t*6270|0)|0;w=r+(B(w,-15137)|0)|0;a[x>>0]=a[u+((t+s|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((s-t|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((w+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-w|0)>>>18&1023)>>0]|0;x=(c[g+8>>2]|0)+h|0;w=(c[m+32>>2]|0)+16400|0;v=c[m+40>>2]|0;t=w+v<<13;v=w-v<<13;w=c[m+36>>2]|0;s=c[m+44>>2]|0;r=(s+w|0)*4433|0;w=r+(w*6270|0)|0;s=r+(B(s,-15137)|0)|0;a[x>>0]=a[u+((w+t|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((t-w|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((s+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-s|0)>>>18&1023)>>0]|0;x=(c[g+12>>2]|0)+h|0;s=(c[m+48>>2]|0)+16400|0;v=c[m+56>>2]|0;w=s+v<<13;v=s-v<<13;s=c[m+52>>2]|0;t=c[m+60>>2]|0;r=(t+s|0)*4433|0;s=r+(s*6270|0)|0;t=r+(B(t,-15137)|0)|0;a[x>>0]=a[u+((s+w|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((w-s|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((t+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-t|0)>>>18&1023)>>0]|0;x=(c[g+16>>2]|0)+h|0;t=(c[m+64>>2]|0)+16400|0;v=c[m+72>>2]|0;s=t+v<<13;v=t-v<<13;t=c[m+68>>2]|0;w=c[m+76>>2]|0;r=(w+t|0)*4433|0;t=r+(t*6270|0)|0;w=r+(B(w,-15137)|0)|0;a[x>>0]=a[u+((t+s|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((s-t|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((w+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-w|0)>>>18&1023)>>0]|0;x=(c[g+20>>2]|0)+h|0;w=(c[m+80>>2]|0)+16400|0;v=c[m+88>>2]|0;t=w+v<<13;v=w-v<<13;w=c[m+84>>2]|0;s=c[m+92>>2]|0;r=(s+w|0)*4433|0;w=r+(w*6270|0)|0;s=r+(B(s,-15137)|0)|0;a[x>>0]=a[u+((w+t|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((t-w|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((s+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-s|0)>>>18&1023)>>0]|0;x=(c[g+24>>2]|0)+h|0;s=(c[m+96>>2]|0)+16400|0;v=c[m+104>>2]|0;w=s+v<<13;v=s-v<<13;s=c[m+100>>2]|0;t=c[m+108>>2]|0;r=(t+s|0)*4433|0;s=r+(s*6270|0)|0;t=r+(B(t,-15137)|0)|0;a[x>>0]=a[u+((s+w|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((w-s|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((t+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-t|0)>>>18&1023)>>0]|0;x=(c[g+28>>2]|0)+h|0;t=(c[m+112>>2]|0)+16400|0;v=c[m+120>>2]|0;s=t+v<<13;v=t-v<<13;t=c[m+116>>2]|0;w=c[m+124>>2]|0;r=(w+t|0)*4433|0;t=r+(t*6270|0)|0;w=r+(B(w,-15137)|0)|0;a[x>>0]=a[u+((t+s|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[u+((s-t|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[u+((w+v|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[u+((v-w|0)>>>18&1023)>>0]|0;zb=o;return}function dv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=zb;zb=zb+208|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){r=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;t=(n*9373|0)+r|0;w=(B(n,-3580)|0)+r|0;r=(B(n,-11586)|0)+r>>11;n=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;p=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;v=(p+n|0)*6810|0;n=v+(n*4209|0)|0;p=v+(B(p,-17828)|0)|0;v=n+t|0;n=t-n|0;t=p+w|0;p=w-p|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;x=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;s=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;q=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;o=q+x|0;q=x-q|0;x=q*2531|0;y=s<<13;z=o*7791|0;f=x+y|0;u=z+(w*11443|0)+f|0;f=(w*1812|0)-z+f|0;o=o*4815|0;x=y-x-(q<<12)|0;q=w-s-q<<2;s=(w*10323|0)-o-x|0;o=x+((w*5260|0)-o)|0;c[k>>2]=u+v>>11;c[k+180>>2]=v-u>>11;c[k+20>>2]=s+t>>11;c[k+160>>2]=t-s>>11;c[k+40>>2]=q+r;c[k+140>>2]=r-q;c[k+60>>2]=o+p>>11;c[k+120>>2]=p-o>>11;c[k+80>>2]=f+n>>11;c[k+100>>2]=n-f>>11;e=e+1|0;if((e|0)==5)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){z=(c[g+(d<<2)>>2]|0)+h|0;y=(c[i>>2]<<13)+134348800|0;x=c[i+8>>2]|0;v=c[i+16>>2]|0;w=(v+x|0)*6476|0;v=x-v|0;x=(v*2896|0)+y|0;u=x+w|0;w=x-w|0;y=(B(v,-11584)|0)+y|0;v=c[i+4>>2]|0;x=c[i+12>>2]|0;t=(x+v|0)*6810|0;v=t+(v*4209|0)|0;x=t+(B(x,-17828)|0)|0;a[z>>0]=a[e+((v+u|0)>>>18&1023)>>0]|0;a[z+4>>0]=a[e+((u-v|0)>>>18&1023)>>0]|0;a[z+1>>0]=a[e+((x+w|0)>>>18&1023)>>0]|0;a[z+3>>0]=a[e+((w-x|0)>>>18&1023)>>0]|0;a[z+2>>0]=a[e+(y>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==10)break;else i=i+20|0}zb=m;return}function ev(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;m=zb;zb=zb+288|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){n=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;z=B((b[d+64>>1]|0)*10033|0,c[j+128>>2]|0)|0;y=z+n|0;z=n-z|0;t=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;r=B(b[d+96>>1]<<13,c[j+192>>2]|0)|0;p=(t<<13)-r|0;v=p+n|0;p=n-p|0;n=r+(t*11190|0)|0;x=n+y|0;n=y-n|0;r=(t*2998|0)-r|0;t=r+z|0;r=z-r|0;z=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;y=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;o=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;u=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;C=y*10703|0;A=B(y,-4433)|0;s=o+z|0;f=(u+s|0)*7053|0;s=f+(s*2139|0)|0;w=C+(z*2295|0)+s|0;q=B(u+o|0,-8565)|0;s=(B(o,-12112)|0)+A+q+s|0;q=(u*12998|0)-C+f+q|0;f=A+(B(z,-5540)|0)+(B(u,-16244)|0)+f|0;u=z-u|0;o=y-o|0;y=(u+o|0)*4433|0;u=y+(u*6270|0)|0;o=y+(B(o,-15137)|0)|0;c[k>>2]=w+x>>11;c[k+264>>2]=x-w>>11;c[k+24>>2]=u+v>>11;c[k+240>>2]=v-u>>11;c[k+48>>2]=s+t>>11;c[k+216>>2]=t-s>>11;c[k+72>>2]=q+r>>11;c[k+192>>2]=r-q>>11;c[k+96>>2]=o+p>>11;c[k+168>>2]=p-o>>11;c[k+120>>2]=f+n>>11;c[k+144>>2]=n-f>>11;e=e+1|0;if((e|0)==6)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){C=(c[g+(d<<2)>>2]|0)+h|0;z=(c[i>>2]<<13)+134348800|0;x=(c[i+16>>2]|0)*5793|0;t=z+x|0;x=z-x-x|0;z=(c[i+8>>2]|0)*10033|0;v=t+z|0;z=t-z|0;t=c[i+4>>2]|0;u=c[i+12>>2]|0;y=c[i+20>>2]|0;A=(y+t|0)*2998|0;w=A+(u+t<<13)|0;A=A+(y-u<<13)|0;y=t-u-y<<13;a[C>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[C+5>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[C+1>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[C+4>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[C+2>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[C+3>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==12)break;else i=i+24|0}zb=m;return}function fv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0;m=zb;zb=zb+400|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){t=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;r=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;x=(r*10438|0)+t|0;v=(r*2578|0)+t|0;f=(B(r,-7223)|0)+t|0;t=(B(r,-11586)|0)+t>>11;r=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;z=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;p=(z+r|0)*9058|0;n=p+(r*2237|0)|0;p=p+(B(z,-14084)|0)|0;r=(B(z,-11295)|0)+(r*5027|0)|0;z=n+x|0;n=x-n|0;x=p+v|0;p=v-p|0;v=r+f|0;r=f-r|0;f=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;D=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;A=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;s=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;q=s<<13;F=A+f|0;w=(D+f|0)*10935|0;E=F*9810|0;y=w+(B(f,-9232)|0)+E+q|0;F=F*6164|0;C=f-D|0;o=(C*3826|0)-q|0;f=F+(B(f,-8693)|0)+o|0;u=(B(A+D|0,-1297)|0)-q|0;w=w+(B(D,-3474)|0)+u|0;u=E+(B(A,-19447)|0)+u|0;E=(A-D|0)*11512|0;q=E+(B(A,-13850)|0)+F+q|0;o=E+(D*5529|0)+o|0;s=C-A+s<<2;c[k>>2]=y+z>>11;c[k+364>>2]=z-y>>11;c[k+28>>2]=w+x>>11;c[k+336>>2]=x-w>>11;c[k+56>>2]=u+v>>11;c[k+308>>2]=v-u>>11;c[k+84>>2]=s+t;c[k+280>>2]=t-s;c[k+112>>2]=q+r>>11;c[k+252>>2]=r-q>>11;c[k+140>>2]=o+p>>11;c[k+224>>2]=p-o>>11;c[k+168>>2]=f+n>>11;c[k+196>>2]=n-f>>11;e=e+1|0;if((e|0)==7)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){F=(c[g+(d<<2)>>2]|0)+h|0;E=(c[i>>2]<<13)+134348800|0;t=c[i+8>>2]|0;C=c[i+16>>2]|0;v=c[i+24>>2]|0;u=(C-v|0)*7223|0;A=(t-C|0)*2578|0;x=(B(C,-15083)|0)+E+A+u|0;D=v+t|0;z=(D*10438|0)+E|0;v=u+(B(v,-637)|0)+z|0;z=A+(B(t,-20239)|0)+z|0;t=c[i+4>>2]|0;A=c[i+12>>2]|0;u=c[i+20>>2]|0;s=(A+t|0)*7663|0;w=(t-A|0)*1395|0;A=B(u+A|0,-11295)|0;y=s+w+A|0;t=(u+t|0)*5027|0;w=s-w+t|0;A=t+(u*15326|0)+A|0;a[F>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[F+6>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[F+1>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[F+5>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[F+2>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[F+4>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;a[F+3>>0]=a[e+((((C-D|0)*11585|0)+E|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==14)break;else i=i+28|0}zb=m;return}function gv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;m=zb;zb=zb+512|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){r=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;v=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;f=v*10703|0;v=v*4433|0;z=f+r|0;f=r-f|0;x=v+r|0;v=r-v|0;r=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;t=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;o=r-t|0;C=o*2260|0;o=o*11363|0;n=o+(t*20995|0)|0;p=C+(r*7373|0)|0;r=o+(B(r,-4926)|0)|0;t=C+(B(t,-4176)|0)|0;C=n+z|0;n=z-n|0;z=p+x|0;p=x-p|0;x=r+v|0;r=v-r|0;v=t+f|0;t=f-t|0;f=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;o=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;E=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;G=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;D=E+f|0;y=(o+f|0)*11086|0;w=D*10217|0;q=(G+f|0)*8956|0;s=(f-G|0)*7350|0;D=D*5461|0;u=(f-o|0)*3363|0;A=y+(B(f,-18730)|0)+w+q|0;f=u+(B(f,-15038)|0)+D+s|0;J=(E+o|0)*1136|0;F=(E-o|0)*11529|0;H=G+o|0;I=B(H,-5461)|0;y=y+(o*589|0)+J+I|0;H=B(H,-10217)|0;o=u+(o*16154|0)+F+H|0;u=B(G+E|0,-11086)|0;w=J+(B(E,-9222)|0)+w+u|0;u=I+(G*8728|0)+q+u|0;q=(G-E|0)*3363|0;s=H+(G*25733|0)+s+q|0;q=F+(B(E,-6278)|0)+D+q|0;c[k>>2]=A+C>>11;c[k+480>>2]=C-A>>11;c[k+32>>2]=y+z>>11;c[k+448>>2]=z-y>>11;c[k+64>>2]=w+x>>11;c[k+416>>2]=x-w>>11;c[k+96>>2]=u+v>>11;c[k+384>>2]=v-u>>11;c[k+128>>2]=s+t>>11;c[k+352>>2]=t-s>>11;c[k+160>>2]=q+r>>11;c[k+320>>2]=r-q>>11;c[k+192>>2]=o+p>>11;c[k+288>>2]=p-o>>11;c[k+224>>2]=f+n>>11;c[k+256>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){J=(c[g+(d<<2)>>2]|0)+h|0;H=(c[i>>2]|0)+16400|0;I=c[i+16>>2]|0;D=H+I<<13;I=H-I<<13;H=c[i+8>>2]|0;F=c[i+24>>2]|0;A=(F+H|0)*4433|0;H=A+(H*6270|0)|0;F=A+(B(F,-15137)|0)|0;A=H+D|0;H=D-H|0;D=F+I|0;F=I-F|0;I=c[i+28>>2]|0;x=c[i+20>>2]|0;z=c[i+12>>2]|0;C=c[i+4>>2]|0;E=z+I|0;G=C+x|0;y=(G+E|0)*9633|0;E=y+(B(E,-16069)|0)|0;G=y+(B(G,-3196)|0)|0;y=B(C+I|0,-7373)|0;I=y+(I*2446|0)+E|0;C=y+(C*12299|0)+G|0;y=B(z+x|0,-20995)|0;G=y+(x*16819|0)+G|0;E=y+(z*25172|0)+E|0;a[J>>0]=a[e+((C+A|0)>>>18&1023)>>0]|0;a[J+7>>0]=a[e+((A-C|0)>>>18&1023)>>0]|0;a[J+1>>0]=a[e+((E+D|0)>>>18&1023)>>0]|0;a[J+6>>0]=a[e+((D-E|0)>>>18&1023)>>0]|0;a[J+2>>0]=a[e+((G+F|0)>>>18&1023)>>0]|0;a[J+5>>0]=a[e+((F-G|0)>>>18&1023)>>0]|0;a[J+3>>0]=a[e+((I+H|0)>>>18&1023)>>0]|0;a[J+4>>0]=a[e+((H-I|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==16)break;else i=i+32|0}zb=m;return}function hv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;d=(c[d+336>>2]|0)+-384|0;i=c[e+84>>2]|0;h=(c[g>>2]|0)+h|0;e=(B(c[i>>2]|0,b[f>>1]|0)|0)+4100|0;g=B(c[i+4>>2]|0,b[f+2>>1]|0)|0;a[h>>0]=a[d+((g+e|0)>>>3&1023)>>0]|0;a[h+1>>0]=a[d+((e-g|0)>>>3&1023)>>0]|0;return}function iv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=zb;zb=zb+32|0;r=i;p=c[d+336>>2]|0;k=c[e+84>>2]|0;d=B(c[k>>2]|0,b[f>>1]|0)|0;e=B(c[k+32>>2]|0,b[f+16>>1]|0)|0;q=e+d|0;c[r>>2]=q;j=r+16|0;c[j>>2]=d-e;e=B(c[k+4>>2]|0,b[f+2>>1]|0)|0;d=B(c[k+36>>2]|0,b[f+18>>1]|0)|0;o=d+e|0;c[r+4>>2]=o;d=e-d|0;c[r+20>>2]=d;e=B(c[k+8>>2]|0,b[f+4>>1]|0)|0;l=B(c[k+40>>2]|0,b[f+20>>1]|0)|0;n=l+e|0;c[r+8>>2]=n;l=e-l|0;c[r+24>>2]=l;e=B(c[k+12>>2]|0,b[f+6>>1]|0)|0;k=B(c[k+44>>2]|0,b[f+22>>1]|0)|0;m=k+e|0;c[r+12>>2]=m;k=e-k|0;c[r+28>>2]=k;e=p+-384|0;f=(c[g>>2]|0)+h|0;q=q+4100|0;p=q+n<<13;n=q-n<<13;q=(m+o|0)*4433|0;o=q+(o*6270|0)|0;m=q+(B(m,-15137)|0)|0;a[f>>0]=a[e+((o+p|0)>>>16&1023)>>0]|0;a[f+3>>0]=a[e+((p-o|0)>>>16&1023)>>0]|0;a[f+1>>0]=a[e+((m+n|0)>>>16&1023)>>0]|0;a[f+2>>0]=a[e+((n-m|0)>>>16&1023)>>0]|0;h=(c[g+4>>2]|0)+h|0;f=(c[j>>2]|0)+4100|0;j=f+l<<13;f=f-l<<13;g=(k+d|0)*4433|0;d=g+(d*6270|0)|0;g=g+(B(k,-15137)|0)|0;a[h>>0]=a[e+((d+j|0)>>>16&1023)>>0]|0;a[h+3>>0]=a[e+((j-d|0)>>>16&1023)>>0]|0;a[h+1>>0]=a[e+((g+f|0)>>>16&1023)>>0]|0;a[h+2>>0]=a[e+((f-g|0)>>>16&1023)>>0]|0;zb=i;return}function jv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;i=zb;zb=zb+80|0;k=i;q=c[d+336>>2]|0;e=c[e+84>>2]|0;s=B(b[f>>1]<<13,c[e>>2]|0)|0|1024;n=B((b[f+32>>1]|0)*5793|0,c[e+64>>2]|0)|0;l=n+s|0;s=(B(n,-2)|0)+s|0;n=B((b[f+16>>1]|0)*10033|0,c[e+32>>2]|0)|0;c[k>>2]=n+l>>11;c[k+48>>2]=l-n>>11;n=k+24|0;c[n>>2]=s>>11;s=k+4|0;l=B(b[f+2>>1]<<13,c[e+4>>2]|0)|0|1024;r=B((b[f+34>>1]|0)*5793|0,c[e+68>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;r=B((b[f+18>>1]|0)*10033|0,c[e+36>>2]|0)|0;c[s>>2]=r+p>>11;c[k+52>>2]=p-r>>11;c[k+28>>2]=l>>11;l=B(b[f+4>>1]<<13,c[e+8>>2]|0)|0|1024;r=B((b[f+36>>1]|0)*5793|0,c[e+72>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;r=B((b[f+20>>1]|0)*10033|0,c[e+40>>2]|0)|0;c[k+8>>2]=r+p>>11;c[k+56>>2]=p-r>>11;c[k+32>>2]=l>>11;l=B(b[f+6>>1]<<13,c[e+12>>2]|0)|0|1024;r=B((b[f+38>>1]|0)*5793|0,c[e+76>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;r=B((b[f+22>>1]|0)*10033|0,c[e+44>>2]|0)|0;c[k+12>>2]=r+p>>11;c[k+60>>2]=p-r>>11;c[k+36>>2]=l>>11;l=B(b[f+8>>1]<<13,c[e+16>>2]|0)|0|1024;r=B((b[f+40>>1]|0)*5793|0,c[e+80>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;r=B((b[f+24>>1]|0)*10033|0,c[e+48>>2]|0)|0;c[k+16>>2]=r+p>>11;c[k+64>>2]=p-r>>11;c[k+40>>2]=l>>11;l=B(b[f+10>>1]<<13,c[e+20>>2]|0)|0|1024;r=B((b[f+42>>1]|0)*5793|0,c[e+84>>2]|0)|0;p=r+l|0;l=(B(r,-2)|0)+l|0;e=B((b[f+26>>1]|0)*10033|0,c[e+52>>2]|0)|0;c[k+20>>2]=e+p>>11;c[k+68>>2]=p-e>>11;l=l>>11;c[k+44>>2]=l;e=q+-384|0;f=(c[g>>2]|0)+h|0;q=(c[k>>2]<<13)+134348800|0;p=(c[k+16>>2]|0)*5793|0;r=q+p|0;p=q-p-p|0;q=(c[k+8>>2]|0)*10033|0;d=r+q|0;q=r-q|0;s=c[s>>2]|0;r=c[k+12>>2]|0;o=c[k+20>>2]|0;m=(o+s|0)*2998|0;j=m+(r+s<<13)|0;m=m+(o-r<<13)|0;o=s-r-o<<13;a[f>>0]=a[e+((j+d|0)>>>18&1023)>>0]|0;a[f+5>>0]=a[e+((d-j|0)>>>18&1023)>>0]|0;a[f+1>>0]=a[e+((o+p|0)>>>18&1023)>>0]|0;a[f+4>>0]=a[e+((p-o|0)>>>18&1023)>>0]|0;a[f+2>>0]=a[e+((m+q|0)>>>18&1023)>>0]|0;a[f+3>>0]=a[e+((q-m|0)>>>18&1023)>>0]|0;f=(c[g+4>>2]|0)+h|0;n=(c[n>>2]<<13)+134348800|0;m=(c[k+40>>2]|0)*5793|0;q=n+m|0;m=n-m-m|0;n=(c[k+32>>2]|0)*10033|0;o=q+n|0;n=q-n|0;q=c[k+28>>2]|0;p=c[k+36>>2]|0;j=(l+q|0)*2998|0;d=j+(p+q<<13)|0;j=j+(l-p<<13)|0;l=q-p-l<<13;a[f>>0]=a[e+((d+o|0)>>>18&1023)>>0]|0;a[f+5>>0]=a[e+((o-d|0)>>>18&1023)>>0]|0;a[f+1>>0]=a[e+((l+m|0)>>>18&1023)>>0]|0;a[f+4>>0]=a[e+((m-l|0)>>>18&1023)>>0]|0;a[f+2>>0]=a[e+((j+n|0)>>>18&1023)>>0]|0;a[f+3>>0]=a[e+((n-j|0)>>>18&1023)>>0]|0;h=(c[g+8>>2]|0)+h|0;f=(c[k+48>>2]<<13)+134348800|0;j=(c[k+64>>2]|0)*5793|0;n=f+j|0;j=f-j-j|0;f=(c[k+56>>2]|0)*10033|0;l=n+f|0;f=n-f|0;n=c[k+52>>2]|0;m=c[k+60>>2]|0;d=c[k+68>>2]|0;g=(d+n|0)*2998|0;k=g+(m+n<<13)|0;g=g+(d-m<<13)|0;d=n-m-d<<13;a[h>>0]=a[e+((k+l|0)>>>18&1023)>>0]|0;a[h+5>>0]=a[e+((l-k|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[e+((d+j|0)>>>18&1023)>>0]|0;a[h+4>>0]=a[e+((j-d|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[e+((g+f|0)>>>18&1023)>>0]|0;a[h+3>>0]=a[e+((f-g|0)>>>18&1023)>>0]|0;zb=i;return}function kv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;i=zb;zb=zb+128|0;j=i;d=c[d+336>>2]|0;m=c[e+84>>2]|0;l=B(c[m>>2]|0,b[f>>1]|0)|0;e=B(c[m+64>>2]|0,b[f+32>>1]|0)|0;n=e+l<<2;e=l-e<<2;l=B(c[m+32>>2]|0,b[f+16>>1]|0)|0;k=B(c[m+96>>2]|0,b[f+48>>1]|0)|0;o=((k+l|0)*4433|0)+1024|0;l=o+(l*6270|0)>>11;k=o+(B(k,-15137)|0)>>11;c[j>>2]=l+n;c[j+96>>2]=n-l;c[j+32>>2]=k+e;c[j+64>>2]=e-k;k=B(c[m+4>>2]|0,b[f+2>>1]|0)|0;e=B(c[m+68>>2]|0,b[f+34>>1]|0)|0;l=e+k<<2;e=k-e<<2;k=B(c[m+36>>2]|0,b[f+18>>1]|0)|0;n=B(c[m+100>>2]|0,b[f+50>>1]|0)|0;o=((n+k|0)*4433|0)+1024|0;k=o+(k*6270|0)>>11;n=o+(B(n,-15137)|0)>>11;c[j+4>>2]=k+l;c[j+100>>2]=l-k;c[j+36>>2]=n+e;c[j+68>>2]=e-n;n=B(c[m+8>>2]|0,b[f+4>>1]|0)|0;e=B(c[m+72>>2]|0,b[f+36>>1]|0)|0;k=e+n<<2;e=n-e<<2;n=B(c[m+40>>2]|0,b[f+20>>1]|0)|0;l=B(c[m+104>>2]|0,b[f+52>>1]|0)|0;o=((l+n|0)*4433|0)+1024|0;n=o+(n*6270|0)>>11;l=o+(B(l,-15137)|0)>>11;c[j+8>>2]=n+k;c[j+104>>2]=k-n;c[j+40>>2]=l+e;c[j+72>>2]=e-l;l=B(c[m+12>>2]|0,b[f+6>>1]|0)|0;e=B(c[m+76>>2]|0,b[f+38>>1]|0)|0;n=e+l<<2;e=l-e<<2;l=B(c[m+44>>2]|0,b[f+22>>1]|0)|0;k=B(c[m+108>>2]|0,b[f+54>>1]|0)|0;o=((k+l|0)*4433|0)+1024|0;l=o+(l*6270|0)>>11;k=o+(B(k,-15137)|0)>>11;c[j+12>>2]=l+n;c[j+108>>2]=n-l;c[j+44>>2]=k+e;c[j+76>>2]=e-k;k=B(c[m+16>>2]|0,b[f+8>>1]|0)|0;e=B(c[m+80>>2]|0,b[f+40>>1]|0)|0;l=e+k<<2;e=k-e<<2;k=B(c[m+48>>2]|0,b[f+24>>1]|0)|0;n=B(c[m+112>>2]|0,b[f+56>>1]|0)|0;o=((n+k|0)*4433|0)+1024|0;k=o+(k*6270|0)>>11;n=o+(B(n,-15137)|0)>>11;c[j+16>>2]=k+l;c[j+112>>2]=l-k;c[j+48>>2]=n+e;c[j+80>>2]=e-n;n=B(c[m+20>>2]|0,b[f+10>>1]|0)|0;e=B(c[m+84>>2]|0,b[f+42>>1]|0)|0;k=e+n<<2;e=n-e<<2;n=B(c[m+52>>2]|0,b[f+26>>1]|0)|0;l=B(c[m+116>>2]|0,b[f+58>>1]|0)|0;o=((l+n|0)*4433|0)+1024|0;n=o+(n*6270|0)>>11;l=o+(B(l,-15137)|0)>>11;c[j+20>>2]=n+k;c[j+116>>2]=k-n;c[j+52>>2]=l+e;c[j+84>>2]=e-l;l=B(c[m+24>>2]|0,b[f+12>>1]|0)|0;e=B(c[m+88>>2]|0,b[f+44>>1]|0)|0;n=e+l<<2;e=l-e<<2;l=B(c[m+56>>2]|0,b[f+28>>1]|0)|0;k=B(c[m+120>>2]|0,b[f+60>>1]|0)|0;o=((k+l|0)*4433|0)+1024|0;l=o+(l*6270|0)>>11;k=o+(B(k,-15137)|0)>>11;c[j+24>>2]=l+n;c[j+120>>2]=n-l;c[j+56>>2]=k+e;c[j+88>>2]=e-k;k=B(c[m+28>>2]|0,b[f+14>>1]|0)|0;e=B(c[m+92>>2]|0,b[f+46>>1]|0)|0;l=e+k<<2;e=k-e<<2;k=B(c[m+60>>2]|0,b[f+30>>1]|0)|0;f=B(c[m+124>>2]|0,b[f+62>>1]|0)|0;m=((f+k|0)*4433|0)+1024|0;k=m+(k*6270|0)>>11;f=m+(B(f,-15137)|0)>>11;c[j+28>>2]=k+l;c[j+124>>2]=l-k;c[j+60>>2]=f+e;c[j+92>>2]=e-f;f=d+-384|0;d=j;e=0;while(1){o=(c[g+(e<<2)>>2]|0)+h|0;m=(c[d>>2]|0)+16400|0;n=c[d+16>>2]|0;p=m+n<<13;n=m-n<<13;m=c[d+8>>2]|0;k=c[d+24>>2]|0;r=(k+m|0)*4433|0;m=r+(m*6270|0)|0;k=r+(B(k,-15137)|0)|0;r=m+p|0;m=p-m|0;p=k+n|0;k=n-k|0;n=c[d+28>>2]|0;u=c[d+20>>2]|0;s=c[d+12>>2]|0;q=c[d+4>>2]|0;j=s+n|0;l=q+u|0;t=(l+j|0)*9633|0;j=t+(B(j,-16069)|0)|0;l=t+(B(l,-3196)|0)|0;t=B(q+n|0,-7373)|0;n=t+(n*2446|0)+j|0;q=t+(q*12299|0)+l|0;t=B(s+u|0,-20995)|0;l=t+(u*16819|0)+l|0;j=t+(s*25172|0)+j|0;a[o>>0]=a[f+((q+r|0)>>>18&1023)>>0]|0;a[o+7>>0]=a[f+((r-q|0)>>>18&1023)>>0]|0;a[o+1>>0]=a[f+((j+p|0)>>>18&1023)>>0]|0;a[o+6>>0]=a[f+((p-j|0)>>>18&1023)>>0]|0;a[o+2>>0]=a[f+((l+k|0)>>>18&1023)>>0]|0;a[o+5>>0]=a[f+((k-l|0)>>>18&1023)>>0]|0;a[o+3>>0]=a[f+((n+m|0)>>>18&1023)>>0]|0;a[o+4>>0]=a[f+((m-n|0)>>>18&1023)>>0]|0;e=e+1|0;if((e|0)==4)break;else d=d+32|0}zb=i;return}function lv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;m=zb;zb=zb+160|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;p=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;o=(p+n|0)*6476|0;p=n-p|0;n=(p*2896|0)+f|0;q=n+o|0;o=n-o|0;f=(B(p,-11584)|0)+f|0;p=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;n=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;r=(n+p|0)*6810|0;p=r+(p*4209|0)|0;n=r+(B(n,-17828)|0)|0;c[k>>2]=p+q>>11;c[k+128>>2]=q-p>>11;c[k+32>>2]=n+o>>11;c[k+96>>2]=o-n>>11;c[k+64>>2]=f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){r=(c[g+(d<<2)>>2]|0)+h|0;p=(c[i>>2]<<13)+134348800|0;k=c[i+16>>2]|0;j=p+(k*9373|0)|0;u=p+(B(k,-3580)|0)|0;k=p+(B(k,-11586)|0)|0;p=c[i+8>>2]|0;n=c[i+24>>2]|0;t=(n+p|0)*6810|0;p=t+(p*4209|0)|0;n=t+(B(n,-17828)|0)|0;t=p+j|0;p=j-p|0;j=n+u|0;n=u-n|0;u=c[i+4>>2]|0;v=c[i+12>>2]|0;l=c[i+20>>2]<<13;f=c[i+28>>2]|0;o=f+v|0;f=v-f|0;v=f*2531|0;w=o*7791|0;q=v+l|0;s=w+(u*11443|0)+q|0;q=(u*1812|0)-w+q|0;o=o*4815|0;v=l-v-(f<<12)|0;l=(u-f<<13)-l|0;f=(u*10323|0)-o-v|0;o=v+((u*5260|0)-o)|0;a[r>>0]=a[e+((s+t|0)>>>18&1023)>>0]|0;a[r+9>>0]=a[e+((t-s|0)>>>18&1023)>>0]|0;a[r+1>>0]=a[e+((f+j|0)>>>18&1023)>>0]|0;a[r+8>>0]=a[e+((j-f|0)>>>18&1023)>>0]|0;a[r+2>>0]=a[e+((l+k|0)>>>18&1023)>>0]|0;a[r+7>>0]=a[e+((k-l|0)>>>18&1023)>>0]|0;a[r+3>>0]=a[e+((o+n|0)>>>18&1023)>>0]|0;a[r+6>>0]=a[e+((n-o|0)>>>18&1023)>>0]|0;a[r+4>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[r+5>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==5)break;else i=i+32|0}zb=m;return}function mv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=zb;zb=zb+192|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){p=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B((b[d+64>>1]|0)*5793|0,c[j+128>>2]|0)|0;t=n+p|0;p=(B(n,-2)|0)+p>>11;n=B((b[d+32>>1]|0)*10033|0,c[j+64>>2]|0)|0;r=n+t|0;n=t-n|0;t=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;s=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;o=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;f=(o+t|0)*2998|0;q=f+(s+t<<13)|0;f=f+(o-s<<13)|0;o=t-s-o<<2;c[k>>2]=q+r>>11;c[k+160>>2]=r-q>>11;c[k+32>>2]=o+p;c[k+128>>2]=p-o;c[k+64>>2]=f+n>>11;c[k+96>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){t=(c[g+(d<<2)>>2]|0)+h|0;r=(c[i>>2]<<13)+134348800|0;x=(c[i+16>>2]|0)*10033|0;w=r+x|0;x=r-x|0;k=c[i+8>>2]|0;n=c[i+24>>2]<<13;p=(k<<13)-n|0;j=p+r|0;p=r-p|0;r=n+(k*11190|0)|0;v=r+w|0;r=w-r|0;n=(k*2998|0)-n|0;k=n+x|0;n=x-n|0;x=c[i+4>>2]|0;w=c[i+12>>2]|0;q=c[i+20>>2]|0;f=c[i+28>>2]|0;z=w*10703|0;y=B(w,-4433)|0;l=q+x|0;s=(l+f|0)*7053|0;l=s+(l*2139|0)|0;u=z+(x*2295|0)+l|0;o=B(f+q|0,-8565)|0;l=(B(q,-12112)|0)+y+o+l|0;o=(f*12998|0)-z+s+o|0;s=y+(B(x,-5540)|0)+(B(f,-16244)|0)+s|0;f=x-f|0;q=w-q|0;w=(f+q|0)*4433|0;f=w+(f*6270|0)|0;q=w+(B(q,-15137)|0)|0;a[t>>0]=a[e+((u+v|0)>>>18&1023)>>0]|0;a[t+11>>0]=a[e+((v-u|0)>>>18&1023)>>0]|0;a[t+1>>0]=a[e+((f+j|0)>>>18&1023)>>0]|0;a[t+10>>0]=a[e+((j-f|0)>>>18&1023)>>0]|0;a[t+2>>0]=a[e+((l+k|0)>>>18&1023)>>0]|0;a[t+9>>0]=a[e+((k-l|0)>>>18&1023)>>0]|0;a[t+3>>0]=a[e+((o+n|0)>>>18&1023)>>0]|0;a[t+8>>0]=a[e+((n-o|0)>>>18&1023)>>0]|0;a[t+4>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[t+7>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[t+5>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[t+6>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==6)break;else i=i+32|0}zb=m;return}function nv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;m=zb;zb=zb+224|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;w=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;o=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;u=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;v=(o-u|0)*7223|0;p=(w-o|0)*2578|0;s=(B(o,-15083)|0)+f+p+v|0;n=u+w|0;q=(n*10438|0)+f|0;u=v+(B(u,-637)|0)+q|0;q=p+(B(w,-20239)|0)+q|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;p=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;v=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;x=(p+w|0)*7663|0;t=(w-p|0)*1395|0;p=B(v+p|0,-11295)|0;r=x+t+p|0;w=(v+w|0)*5027|0;t=w+(x-t)|0;p=w+(v*15326|0)+p|0;c[k>>2]=t+u>>11;c[k+192>>2]=u-t>>11;c[k+32>>2]=r+s>>11;c[k+160>>2]=s-r>>11;c[k+64>>2]=p+q>>11;c[k+128>>2]=q-p>>11;c[k+96>>2]=((o-n|0)*11585|0)+f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){x=(c[g+(d<<2)>>2]|0)+h|0;r=(c[i>>2]<<13)+134348800|0;p=c[i+16>>2]|0;k=r+(p*10438|0)|0;n=r+(p*2578|0)|0;w=r+(B(p,-7223)|0)|0;p=r+(B(p,-11586)|0)|0;r=c[i+8>>2]|0;j=c[i+24>>2]|0;t=(j+r|0)*9058|0;v=t+(r*2237|0)|0;t=t+(B(j,-14084)|0)|0;r=(B(j,-11295)|0)+(r*5027|0)|0;j=v+k|0;v=k-v|0;k=t+n|0;t=n-t|0;n=r+w|0;r=w-r|0;w=c[i+4>>2]|0;A=c[i+12>>2]|0;y=c[i+20>>2]|0;q=c[i+28>>2]<<13;s=y+w|0;l=(A+w|0)*10935|0;C=s*9810|0;f=l+(B(w,-9232)|0)+C+q|0;s=s*6164|0;z=w-A|0;u=(z*3826|0)-q|0;w=s+(B(w,-8693)|0)+u|0;o=(B(y+A|0,-1297)|0)-q|0;l=l+(B(A,-3474)|0)+o|0;o=C+(B(y,-19447)|0)+o|0;C=(y-A|0)*11512|0;s=q+(B(y,-13850)|0)+C+s|0;u=C+(A*5529|0)+u|0;q=(z-y<<13)+q|0;a[x>>0]=a[e+((f+j|0)>>>18&1023)>>0]|0;a[x+13>>0]=a[e+((j-f|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[e+((l+k|0)>>>18&1023)>>0]|0;a[x+12>>0]=a[e+((k-l|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[e+((o+n|0)>>>18&1023)>>0]|0;a[x+11>>0]=a[e+((n-o|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[x+10>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[x+4>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[x+9>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[x+5>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[x+8>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[x+6>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[x+7>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==7)break;else i=i+32|0}zb=m;return}function ov(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0;o=zb;zb=zb+256|0;i=o;m=c[d+336>>2]|0;l=i;k=c[e+84>>2]|0;j=8;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){d=B(b[f>>1]<<2,c[k>>2]|0)|0;c[l>>2]=d;c[l+32>>2]=d;c[l+64>>2]=d;c[l+96>>2]=d;c[l+128>>2]=d;c[l+160>>2]=d;c[l+192>>2]=d;e=56}else{d=0;n=9}else n=9;if((n|0)==9){n=0;x=B(b[f+64>>1]<<13,c[k+128>>2]|0)|0;p=B(b[f>>1]<<13,c[k>>2]|0)|0|1024;s=x+p|0;x=p-x|0;p=B(c[k+64>>2]|0,d<<16>>16)|0;q=B(c[k+192>>2]|0,b[f+96>>1]|0)|0;u=(q+p|0)*4433|0;p=u+(p*6270|0)|0;q=u+(B(q,-15137)|0)|0;u=p+s|0;p=s-p|0;s=q+x|0;q=x-q|0;d=B(c[k+224>>2]|0,b[f+112>>1]|0)|0;x=B(c[k+160>>2]|0,b[f+80>>1]|0)|0;v=B(c[k+96>>2]|0,b[f+48>>1]|0)|0;t=B(c[k+32>>2]|0,e<<16>>16)|0;r=v+d|0;e=t+x|0;w=(e+r|0)*9633|0;r=w+(B(r,-16069)|0)|0;e=w+(B(e,-3196)|0)|0;w=B(t+d|0,-7373)|0;d=w+(d*2446|0)+r|0;t=w+(t*12299|0)+e|0;w=B(v+x|0,-20995)|0;e=w+(x*16819|0)+e|0;r=w+(v*25172|0)+r|0;c[l>>2]=t+u>>11;c[l+224>>2]=u-t>>11;c[l+32>>2]=r+s>>11;c[l+192>>2]=s-r>>11;c[l+64>>2]=e+q>>11;c[l+160>>2]=q-e>>11;c[l+96>>2]=d+p>>11;d=p-d>>11;e=32}c[l+(e<<2)>>2]=d;if(j>>>0>1){l=l+4|0;k=k+4|0;f=f+2|0;j=j+-1|0}else break}e=m+-384|0;d=0;while(1){x=(c[g+(d<<2)>>2]|0)+h|0;r=(c[i>>2]<<13)+134348800|0;m=c[i+16>>2]|0;w=m*10703|0;m=m*4433|0;f=r+w|0;w=r-w|0;k=r+m|0;m=r-m|0;r=c[i+8>>2]|0;p=c[i+24>>2]|0;u=r-p|0;z=u*2260|0;u=u*11363|0;v=u+(p*20995|0)|0;t=z+(r*7373|0)|0;r=u+(B(r,-4926)|0)|0;p=z+(B(p,-4176)|0)|0;z=v+f|0;v=f-v|0;f=t+k|0;t=k-t|0;k=r+m|0;r=m-r|0;m=p+w|0;p=w-p|0;w=c[i+4>>2]|0;u=c[i+12>>2]|0;C=c[i+20>>2]|0;E=c[i+28>>2]|0;A=C+w|0;j=(u+w|0)*11086|0;l=A*10217|0;s=(E+w|0)*8956|0;q=(w-E|0)*7350|0;A=A*5461|0;n=(w-u|0)*3363|0;y=j+(B(w,-18730)|0)+l+s|0;w=n+(B(w,-15038)|0)+A+q|0;H=(C+u|0)*1136|0;D=(C-u|0)*11529|0;F=E+u|0;G=B(F,-5461)|0;j=j+(u*589|0)+H+G|0;F=B(F,-10217)|0;u=n+(u*16154|0)+D+F|0;n=B(E+C|0,-11086)|0;l=H+(B(C,-9222)|0)+l+n|0;n=G+(E*8728|0)+s+n|0;s=(E-C|0)*3363|0;q=F+(E*25733|0)+q+s|0;s=D+(B(C,-6278)|0)+A+s|0;a[x>>0]=a[e+((y+z|0)>>>18&1023)>>0]|0;a[x+15>>0]=a[e+((z-y|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[e+((j+f|0)>>>18&1023)>>0]|0;a[x+14>>0]=a[e+((f-j|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[e+((l+k|0)>>>18&1023)>>0]|0;a[x+13>>0]=a[e+((k-l|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[e+((n+m|0)>>>18&1023)>>0]|0;a[x+12>>0]=a[e+((m-n|0)>>>18&1023)>>0]|0;a[x+4>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[x+11>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[x+5>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[x+10>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[x+6>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[x+9>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[x+7>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[x+8>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==8)break;else i=i+32|0}zb=o;return}function pv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;m=zb;zb=zb+512|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){r=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;v=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;f=v*10703|0;v=v*4433|0;z=f+r|0;f=r-f|0;x=v+r|0;v=r-v|0;r=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;t=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;o=r-t|0;C=o*2260|0;o=o*11363|0;n=o+(t*20995|0)|0;p=C+(r*7373|0)|0;r=o+(B(r,-4926)|0)|0;t=C+(B(t,-4176)|0)|0;C=n+z|0;n=z-n|0;z=p+x|0;p=x-p|0;x=r+v|0;r=v-r|0;v=t+f|0;t=f-t|0;f=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;o=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;E=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;G=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;D=E+f|0;y=(o+f|0)*11086|0;w=D*10217|0;q=(G+f|0)*8956|0;s=(f-G|0)*7350|0;D=D*5461|0;u=(f-o|0)*3363|0;A=y+(B(f,-18730)|0)+w+q|0;f=u+(B(f,-15038)|0)+D+s|0;J=(E+o|0)*1136|0;F=(E-o|0)*11529|0;H=G+o|0;I=B(H,-5461)|0;y=y+(o*589|0)+J+I|0;H=B(H,-10217)|0;o=u+(o*16154|0)+F+H|0;u=B(G+E|0,-11086)|0;w=J+(B(E,-9222)|0)+w+u|0;u=I+(G*8728|0)+q+u|0;q=(G-E|0)*3363|0;s=H+(G*25733|0)+s+q|0;q=F+(B(E,-6278)|0)+D+q|0;c[k>>2]=A+C>>11;c[k+480>>2]=C-A>>11;c[k+32>>2]=y+z>>11;c[k+448>>2]=z-y>>11;c[k+64>>2]=w+x>>11;c[k+416>>2]=x-w>>11;c[k+96>>2]=u+v>>11;c[k+384>>2]=v-u>>11;c[k+128>>2]=s+t>>11;c[k+352>>2]=t-s>>11;c[k+160>>2]=q+r>>11;c[k+320>>2]=r-q>>11;c[k+192>>2]=o+p>>11;c[k+288>>2]=p-o>>11;c[k+224>>2]=f+n>>11;c[k+256>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){J=(c[g+(d<<2)>>2]|0)+h|0;D=(c[i>>2]<<13)+134348800|0;y=c[i+16>>2]|0;I=y*10703|0;y=y*4433|0;u=D+I|0;I=D-I|0;w=D+y|0;y=D-y|0;D=c[i+8>>2]|0;A=c[i+24>>2]|0;G=D-A|0;s=G*2260|0;G=G*11363|0;H=G+(A*20995|0)|0;F=s+(D*7373|0)|0;D=G+(B(D,-4926)|0)|0;A=s+(B(A,-4176)|0)|0;s=H+u|0;H=u-H|0;u=F+w|0;F=w-F|0;w=D+y|0;D=y-D|0;y=A+I|0;A=I-A|0;I=c[i+4>>2]|0;G=c[i+12>>2]|0;q=c[i+20>>2]|0;o=c[i+28>>2]|0;r=q+I|0;v=(G+I|0)*11086|0;x=r*10217|0;E=(o+I|0)*8956|0;C=(I-o|0)*7350|0;r=r*5461|0;z=(I-G|0)*3363|0;t=v+(B(I,-18730)|0)+x+E|0;I=z+(B(I,-15038)|0)+r+C|0;k=(q+G|0)*1136|0;p=(q-G|0)*11529|0;n=o+G|0;l=B(n,-5461)|0;v=v+(G*589|0)+k+l|0;n=B(n,-10217)|0;G=z+(G*16154|0)+p+n|0;z=B(o+q|0,-11086)|0;x=k+(B(q,-9222)|0)+x+z|0;z=l+(o*8728|0)+E+z|0;E=(o-q|0)*3363|0;C=n+(o*25733|0)+C+E|0;E=p+(B(q,-6278)|0)+r+E|0;a[J>>0]=a[e+((t+s|0)>>>18&1023)>>0]|0;a[J+15>>0]=a[e+((s-t|0)>>>18&1023)>>0]|0;a[J+1>>0]=a[e+((v+u|0)>>>18&1023)>>0]|0;a[J+14>>0]=a[e+((u-v|0)>>>18&1023)>>0]|0;a[J+2>>0]=a[e+((x+w|0)>>>18&1023)>>0]|0;a[J+13>>0]=a[e+((w-x|0)>>>18&1023)>>0]|0;a[J+3>>0]=a[e+((z+y|0)>>>18&1023)>>0]|0;a[J+12>>0]=a[e+((y-z|0)>>>18&1023)>>0]|0;a[J+4>>0]=a[e+((C+A|0)>>>18&1023)>>0]|0;a[J+11>>0]=a[e+((A-C|0)>>>18&1023)>>0]|0;a[J+5>>0]=a[e+((E+D|0)>>>18&1023)>>0]|0;a[J+10>>0]=a[e+((D-E|0)>>>18&1023)>>0]|0;a[J+6>>0]=a[e+((G+F|0)>>>18&1023)>>0]|0;a[J+9>>0]=a[e+((F-G|0)>>>18&1023)>>0]|0;a[J+7>>0]=a[e+((I+H|0)>>>18&1023)>>0]|0;a[J+8>>0]=a[e+((H-I|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==16)break;else i=i+32|0}zb=m;return}function qv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0;m=zb;zb=zb+480|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;s=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;w=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;t=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;y=(B(t,-3580)|0)+f|0;D=(t*9373|0)+f|0;f=(B(t,-11586)|0)+f|0;t=s-w|0;w=w+s|0;E=w*10958|0;u=t*374|0;s=s*11795|0;A=u+E+D|0;u=s-E+u+y|0;E=w*4482|0;o=B(t,-3271)|0;q=D-E+o|0;o=E-s+o+y|0;w=w*6476|0;s=t*2896|0;y=s+w+y|0;s=D-w+s|0;w=f+(t*5792|0)|0;f=(B(t,-11584)|0)+f|0;t=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;D=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;E=B((b[d+80>>1]|0)*10033|0,c[j+160>>2]|0)|0;C=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;r=D-C|0;F=(r+t|0)*6810|0;x=F+(t*4209|0)|0;r=F+(B(r,-17828)|0)|0;F=B(D,-6810)|0;D=B(D,-11018)|0;v=t-C|0;n=(v*11522|0)+E|0;z=(C*20131|0)-D+n|0;n=F+(B(t,-9113)|0)+n|0;v=(v*10033|0)-E|0;p=(C+t|0)*4712|0;t=F+(t*3897|0)-E+p|0;p=E+D+(B(C,-7121)|0)+p|0;c[k>>2]=z+A>>11;c[k+448>>2]=A-z>>11;c[k+32>>2]=x+y>>11;c[k+416>>2]=y-x>>11;c[k+64>>2]=v+w>>11;c[k+384>>2]=w-v>>11;c[k+96>>2]=t+u>>11;c[k+352>>2]=u-t>>11;c[k+128>>2]=r+s>>11;c[k+320>>2]=s-r>>11;c[k+160>>2]=p+q>>11;c[k+288>>2]=q-p>>11;c[k+192>>2]=n+o>>11;c[k+256>>2]=o-n>>11;c[k+224>>2]=f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){F=(c[g+(d<<2)>>2]|0)+h|0;E=(c[i>>2]<<13)+134348800|0;x=c[i+8>>2]|0;t=c[i+16>>2]|0;w=c[i+24>>2]|0;r=(B(w,-3580)|0)+E|0;n=(w*9373|0)+E|0;E=(B(w,-11586)|0)+E|0;w=x-t|0;t=t+x|0;l=t*10958|0;v=w*374|0;x=x*11795|0;p=v+l+n|0;v=x-l+v+r|0;l=t*4482|0;C=B(w,-3271)|0;z=n-l+C|0;C=l-x+C+r|0;t=t*6476|0;x=w*2896|0;r=x+t+r|0;x=n-t+x|0;t=E+(w*5792|0)|0;E=(B(w,-11584)|0)+E|0;w=c[i+4>>2]|0;n=c[i+12>>2]|0;l=(c[i+20>>2]|0)*10033|0;o=c[i+28>>2]|0;y=n-o|0;k=(y+w|0)*6810|0;s=k+(w*4209|0)|0;y=k+(B(y,-17828)|0)|0;k=B(n,-6810)|0;n=B(n,-11018)|0;u=w-o|0;D=(u*11522|0)+l|0;q=(o*20131|0)-n+D|0;D=k+(B(w,-9113)|0)+D|0;u=(u*10033|0)-l|0;A=(o+w|0)*4712|0;w=k+(w*3897|0)-l+A|0;A=l+n+(B(o,-7121)|0)+A|0;a[F>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[F+14>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[F+1>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[F+13>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[F+2>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[F+12>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[F+3>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[F+11>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[F+4>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[F+10>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[F+5>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[F+9>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;a[F+6>>0]=a[e+((D+C|0)>>>18&1023)>>0]|0;a[F+8>>0]=a[e+((C-D|0)>>>18&1023)>>0]|0;a[F+7>>0]=a[e+(E>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==15)break;else i=i+32|0}zb=m;return}function rv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0;m=zb;zb=zb+448|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){t=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;r=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;x=(r*10438|0)+t|0;v=(r*2578|0)+t|0;f=(B(r,-7223)|0)+t|0;t=(B(r,-11586)|0)+t>>11;r=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;z=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;p=(z+r|0)*9058|0;n=p+(r*2237|0)|0;p=p+(B(z,-14084)|0)|0;r=(B(z,-11295)|0)+(r*5027|0)|0;z=n+x|0;n=x-n|0;x=p+v|0;p=v-p|0;v=r+f|0;r=f-r|0;f=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;D=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;A=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;s=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;q=s<<13;F=A+f|0;w=(D+f|0)*10935|0;E=F*9810|0;y=w+(B(f,-9232)|0)+E+q|0;F=F*6164|0;C=f-D|0;o=(C*3826|0)-q|0;f=F+(B(f,-8693)|0)+o|0;u=(B(A+D|0,-1297)|0)-q|0;w=w+(B(D,-3474)|0)+u|0;u=E+(B(A,-19447)|0)+u|0;E=(A-D|0)*11512|0;q=E+(B(A,-13850)|0)+F+q|0;o=E+(D*5529|0)+o|0;s=C-A+s<<2;c[k>>2]=y+z>>11;c[k+416>>2]=z-y>>11;c[k+32>>2]=w+x>>11;c[k+384>>2]=x-w>>11;c[k+64>>2]=u+v>>11;c[k+352>>2]=v-u>>11;c[k+96>>2]=s+t;c[k+320>>2]=t-s;c[k+128>>2]=q+r>>11;c[k+288>>2]=r-q>>11;c[k+160>>2]=o+p>>11;c[k+256>>2]=p-o>>11;c[k+192>>2]=f+n>>11;c[k+224>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){F=(c[g+(d<<2)>>2]|0)+h|0;y=(c[i>>2]<<13)+134348800|0;w=c[i+16>>2]|0;s=y+(w*10438|0)|0;u=y+(w*2578|0)|0;E=y+(B(w,-7223)|0)|0;w=y+(B(w,-11586)|0)|0;y=c[i+8>>2]|0;q=c[i+24>>2]|0;A=(q+y|0)*9058|0;D=A+(y*2237|0)|0;A=A+(B(q,-14084)|0)|0;y=(B(q,-11295)|0)+(y*5027|0)|0;q=D+s|0;D=s-D|0;s=A+u|0;A=u-A|0;u=y+E|0;y=E-y|0;E=c[i+4>>2]|0;n=c[i+12>>2]|0;p=c[i+20>>2]|0;x=c[i+28>>2]<<13;z=p+E|0;t=(n+E|0)*10935|0;l=z*9810|0;r=t+(B(E,-9232)|0)+l+x|0;z=z*6164|0;o=E-n|0;C=(o*3826|0)-x|0;E=z+(B(E,-8693)|0)+C|0;v=(B(p+n|0,-1297)|0)-x|0;t=t+(B(n,-3474)|0)+v|0;v=l+(B(p,-19447)|0)+v|0;l=(p-n|0)*11512|0;z=x+(B(p,-13850)|0)+l+z|0;C=l+(n*5529|0)+C|0;x=(o-p<<13)+x|0;a[F>>0]=a[e+((r+q|0)>>>18&1023)>>0]|0;a[F+13>>0]=a[e+((q-r|0)>>>18&1023)>>0]|0;a[F+1>>0]=a[e+((t+s|0)>>>18&1023)>>0]|0;a[F+12>>0]=a[e+((s-t|0)>>>18&1023)>>0]|0;a[F+2>>0]=a[e+((v+u|0)>>>18&1023)>>0]|0;a[F+11>>0]=a[e+((u-v|0)>>>18&1023)>>0]|0;a[F+3>>0]=a[e+((x+w|0)>>>18&1023)>>0]|0;a[F+10>>0]=a[e+((w-x|0)>>>18&1023)>>0]|0;a[F+4>>0]=a[e+((z+y|0)>>>18&1023)>>0]|0;a[F+9>>0]=a[e+((y-z|0)>>>18&1023)>>0]|0;a[F+5>>0]=a[e+((C+A|0)>>>18&1023)>>0]|0;a[F+8>>0]=a[e+((A-C|0)>>>18&1023)>>0]|0;a[F+6>>0]=a[e+((E+D|0)>>>18&1023)>>0]|0;a[F+7>>0]=a[e+((D-E|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==14)break;else i=i+32|0}zb=m;return}function sv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0;m=zb;zb=zb+416|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;s=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;o=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;E=o+s|0;o=s-o|0;s=E*9465|0;w=(o*793|0)+f|0;A=s+(n*11249|0)+w|0;w=(n*4108|0)-s+w|0;s=E*2592|0;q=(o*3989|0)+f|0;y=(n*8672|0)-s+q|0;q=s+(B(n,-10258)|0)+q|0;E=E*3570|0;s=f+(B(o,-7678)|0)|0;u=(B(n,-1396)|0)-E+s|0;s=E+(B(n,-6581)|0)+s|0;E=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;r=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;C=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;p=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;x=(r+E|0)*10832|0;v=(C+E|0)*9534|0;D=p+E|0;F=D*7682|0;z=x+(B(E,-16549)|0)+v+F|0;H=B(C+r|0,-2773)|0;G=B(p+r|0,-9534)|0;x=x+(r*6859|0)+H+G|0;t=B(p+C|0,-5384)|0;v=H+(B(C,-12879)|0)+v+t|0;t=G+(p*18068|0)+F+t|0;D=(D*2773|0)+((C-r|0)*7682|0)|0;r=D+(E*2611|0)+(B(r,-3818)|0)|0;p=D+(C*3150|0)+(B(p,-14273)|0)|0;c[k>>2]=z+A>>11;c[k+384>>2]=A-z>>11;c[k+32>>2]=x+y>>11;c[k+352>>2]=y-x>>11;c[k+64>>2]=v+w>>11;c[k+320>>2]=w-v>>11;c[k+96>>2]=t+u>>11;c[k+288>>2]=u-t>>11;c[k+128>>2]=r+s>>11;c[k+256>>2]=s-r>>11;c[k+160>>2]=p+q>>11;c[k+224>>2]=q-p>>11;c[k+192>>2]=((o-n|0)*11585|0)+f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){H=(c[g+(d<<2)>>2]|0)+h|0;G=(c[i>>2]<<13)+134348800|0;F=c[i+8>>2]|0;z=c[i+16>>2]|0;E=c[i+24>>2]|0;o=E+z|0;E=z-E|0;z=o*9465|0;v=(E*793|0)+G|0;r=z+(F*11249|0)+v|0;v=(F*4108|0)-z+v|0;z=o*2592|0;C=(E*3989|0)+G|0;t=(F*8672|0)-z+C|0;C=z+(B(F,-10258)|0)+C|0;o=o*3570|0;z=G+(B(E,-7678)|0)|0;x=(B(F,-1396)|0)-o+z|0;z=o+(B(F,-6581)|0)+z|0;o=c[i+4>>2]|0;A=c[i+12>>2]|0;q=c[i+20>>2]|0;D=c[i+28>>2]|0;u=(A+o|0)*10832|0;w=(q+o|0)*9534|0;p=D+o|0;n=p*7682|0;s=u+(B(o,-16549)|0)+w+n|0;k=B(q+A|0,-2773)|0;l=B(D+A|0,-9534)|0;u=u+(A*6859|0)+k+l|0;y=B(D+q|0,-5384)|0;w=k+(B(q,-12879)|0)+w+y|0;y=l+(D*18068|0)+n+y|0;p=(p*2773|0)+((q-A|0)*7682|0)|0;A=p+(o*2611|0)+(B(A,-3818)|0)|0;D=p+(q*3150|0)+(B(D,-14273)|0)|0;a[H>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[H+12>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[H+1>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[H+11>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[H+2>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[H+10>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[H+3>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[H+9>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[H+4>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[H+8>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;a[H+5>>0]=a[e+((D+C|0)>>>18&1023)>>0]|0;a[H+7>>0]=a[e+((C-D|0)>>>18&1023)>>0]|0;a[H+6>>0]=a[e+((((E-F|0)*11585|0)+G|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==13)break;else i=i+32|0}zb=m;return}function tv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;m=zb;zb=zb+384|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){n=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;z=B((b[d+64>>1]|0)*10033|0,c[j+128>>2]|0)|0;y=z+n|0;z=n-z|0;t=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;r=B(b[d+96>>1]<<13,c[j+192>>2]|0)|0;p=(t<<13)-r|0;v=p+n|0;p=n-p|0;n=r+(t*11190|0)|0;x=n+y|0;n=y-n|0;r=(t*2998|0)-r|0;t=r+z|0;r=z-r|0;z=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;y=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;o=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;u=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;C=y*10703|0;A=B(y,-4433)|0;s=o+z|0;f=(u+s|0)*7053|0;s=f+(s*2139|0)|0;w=C+(z*2295|0)+s|0;q=B(u+o|0,-8565)|0;s=(B(o,-12112)|0)+A+q+s|0;q=(u*12998|0)-C+f+q|0;f=A+(B(z,-5540)|0)+(B(u,-16244)|0)+f|0;u=z-u|0;o=y-o|0;y=(u+o|0)*4433|0;u=y+(u*6270|0)|0;o=y+(B(o,-15137)|0)|0;c[k>>2]=w+x>>11;c[k+352>>2]=x-w>>11;c[k+32>>2]=u+v>>11;c[k+320>>2]=v-u>>11;c[k+64>>2]=s+t>>11;c[k+288>>2]=t-s>>11;c[k+96>>2]=q+r>>11;c[k+256>>2]=r-q>>11;c[k+128>>2]=o+p>>11;c[k+224>>2]=p-o>>11;c[k+160>>2]=f+n>>11;c[k+192>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){C=(c[g+(d<<2)>>2]|0)+h|0;z=(c[i>>2]<<13)+134348800|0;n=(c[i+16>>2]|0)*10033|0;o=z+n|0;n=z-n|0;t=c[i+8>>2]|0;v=c[i+24>>2]<<13;x=(t<<13)-v|0;r=x+z|0;x=z-x|0;z=v+(t*11190|0)|0;p=z+o|0;z=o-z|0;v=(t*2998|0)-v|0;t=v+n|0;v=n-v|0;n=c[i+4>>2]|0;o=c[i+12>>2]|0;y=c[i+20>>2]|0;s=c[i+28>>2]|0;k=o*10703|0;l=B(o,-4433)|0;u=y+n|0;A=(u+s|0)*7053|0;u=A+(u*2139|0)|0;q=k+(n*2295|0)+u|0;w=B(s+y|0,-8565)|0;u=(B(y,-12112)|0)+l+w+u|0;w=(s*12998|0)-k+A+w|0;A=l+(B(n,-5540)|0)+(B(s,-16244)|0)+A|0;s=n-s|0;y=o-y|0;o=(s+y|0)*4433|0;s=o+(s*6270|0)|0;y=o+(B(y,-15137)|0)|0;a[C>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[C+11>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[C+1>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[C+10>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[C+2>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[C+9>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[C+3>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[C+8>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[C+4>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[C+7>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;a[C+5>>0]=a[e+((A+z|0)>>>18&1023)>>0]|0;a[C+6>>0]=a[e+((z-A|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==12)break;else i=i+32|0}zb=m;return}function uv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0;m=zb;zb=zb+352|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;y=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;z=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;s=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;q=(z-y|0)*3529|0;o=s+y|0;v=o-z|0;x=(v*11116|0)+f|0;w=x+((z-s|0)*20862|0)|0;u=w+(B(z,-14924)|0)+q|0;w=w+(s*17333|0)|0;q=x+q+(B(y,-12399)|0)|0;o=x+(B(o,-9467)|0)|0;s=o+(B(s,-6461)|0)|0;o=(z*15929|0)+(B(y,-11395)|0)+o|0;f=(B(v,-11585)|0)+f|0;v=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;y=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;z=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;x=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;C=y+v|0;n=(z+C+x|0)*3264|0;C=C*7274|0;r=(z+v|0)*5492|0;p=n+((x+v|0)*3e3|0)|0;v=C+(B(v,-7562)|0)+r+p|0;t=n+(B(z+y|0,-9527)|0)|0;r=r+(B(z,-9766)|0)+t|0;A=B(x+y|0,-14731)|0;t=C+(y*16984|0)+A+t|0;p=A+(x*17223|0)+p|0;n=(z*8203|0)+(B(y,-12019)|0)+(B(x,-13802)|0)+n|0;c[k>>2]=v+w>>11;c[k+320>>2]=w-v>>11;c[k+32>>2]=t+u>>11;c[k+288>>2]=u-t>>11;c[k+64>>2]=r+s>>11;c[k+256>>2]=s-r>>11;c[k+96>>2]=p+q>>11;c[k+224>>2]=q-p>>11;c[k+128>>2]=n+o>>11;c[k+192>>2]=o-n>>11;c[k+160>>2]=f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){C=(c[g+(d<<2)>>2]|0)+h|0;A=(c[i>>2]<<13)+134348800|0;o=c[i+8>>2]|0;n=c[i+16>>2]|0;u=c[i+24>>2]|0;w=(n-o|0)*3529|0;y=u+o|0;r=y-n|0;p=(r*11116|0)+A|0;q=p+((n-u|0)*20862|0)|0;s=q+(B(n,-14924)|0)+w|0;q=q+(u*17333|0)|0;w=p+w+(B(o,-12399)|0)|0;y=p+(B(y,-9467)|0)|0;u=y+(B(u,-6461)|0)|0;y=(n*15929|0)+(B(o,-11395)|0)+y|0;A=(B(r,-11585)|0)+A|0;r=c[i+4>>2]|0;o=c[i+12>>2]|0;n=c[i+20>>2]|0;p=c[i+28>>2]|0;k=o+r|0;z=(k+n+p|0)*3264|0;k=k*7274|0;v=(n+r|0)*5492|0;x=z+((p+r|0)*3e3|0)|0;r=k+(B(r,-7562)|0)+v+x|0;t=z+(B(n+o|0,-9527)|0)|0;v=v+(B(n,-9766)|0)+t|0;l=B(p+o|0,-14731)|0;t=k+(o*16984|0)+l+t|0;x=l+(p*17223|0)+x|0;z=(n*8203|0)+(B(o,-12019)|0)+(B(p,-13802)|0)+z|0;a[C>>0]=a[e+((r+q|0)>>>18&1023)>>0]|0;a[C+10>>0]=a[e+((q-r|0)>>>18&1023)>>0]|0;a[C+1>>0]=a[e+((t+s|0)>>>18&1023)>>0]|0;a[C+9>>0]=a[e+((s-t|0)>>>18&1023)>>0]|0;a[C+2>>0]=a[e+((v+u|0)>>>18&1023)>>0]|0;a[C+8>>0]=a[e+((u-v|0)>>>18&1023)>>0]|0;a[C+3>>0]=a[e+((x+w|0)>>>18&1023)>>0]|0;a[C+7>>0]=a[e+((w-x|0)>>>18&1023)>>0]|0;a[C+4>>0]=a[e+((z+y|0)>>>18&1023)>>0]|0;a[C+6>>0]=a[e+((y-z|0)>>>18&1023)>>0]|0;a[C+5>>0]=a[e+(A>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==11)break;else i=i+32|0}zb=m;return}function vv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;m=zb;zb=zb+320|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){r=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;t=(n*9373|0)+r|0;w=(B(n,-3580)|0)+r|0;r=(B(n,-11586)|0)+r>>11;n=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;p=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;v=(p+n|0)*6810|0;n=v+(n*4209|0)|0;p=v+(B(p,-17828)|0)|0;v=n+t|0;n=t-n|0;t=p+w|0;p=w-p|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;x=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;s=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;q=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;o=q+x|0;q=x-q|0;x=q*2531|0;y=s<<13;z=o*7791|0;f=x+y|0;u=z+(w*11443|0)+f|0;f=(w*1812|0)-z+f|0;o=o*4815|0;x=y-x-(q<<12)|0;q=w-s-q<<2;s=(w*10323|0)-o-x|0;o=x+((w*5260|0)-o)|0;c[k>>2]=u+v>>11;c[k+288>>2]=v-u>>11;c[k+32>>2]=s+t>>11;c[k+256>>2]=t-s>>11;c[k+64>>2]=q+r;c[k+224>>2]=r-q;c[k+96>>2]=o+p>>11;c[k+192>>2]=p-o>>11;c[k+128>>2]=f+n>>11;c[k+160>>2]=n-f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){z=(c[g+(d<<2)>>2]|0)+h|0;x=(c[i>>2]<<13)+134348800|0;t=c[i+16>>2]|0;r=x+(t*9373|0)|0;o=x+(B(t,-3580)|0)|0;t=x+(B(t,-11586)|0)|0;x=c[i+8>>2]|0;v=c[i+24>>2]|0;p=(v+x|0)*6810|0;x=p+(x*4209|0)|0;v=p+(B(v,-17828)|0)|0;p=x+r|0;x=r-x|0;r=v+o|0;v=o-v|0;o=c[i+4>>2]|0;n=c[i+12>>2]|0;u=c[i+20>>2]<<13;s=c[i+28>>2]|0;w=s+n|0;s=n-s|0;n=s*2531|0;l=w*7791|0;y=n+u|0;q=l+(o*11443|0)+y|0;y=(o*1812|0)-l+y|0;w=w*4815|0;n=u-n-(s<<12)|0;u=(o-s<<13)-u|0;s=(o*10323|0)-w-n|0;w=n+((o*5260|0)-w)|0;a[z>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[z+9>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[z+1>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[z+8>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[z+2>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[z+7>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[z+3>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[z+6>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[z+4>>0]=a[e+((y+x|0)>>>18&1023)>>0]|0;a[z+5>>0]=a[e+((x-y|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==10)break;else i=i+32|0}zb=m;return}function wv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;m=zb;zb=zb+288|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){q=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;w=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;o=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;f=B((b[d+96>>1]|0)*5793|0,c[j+192>>2]|0)|0;v=f+q|0;f=q-f-f|0;q=w-o|0;s=f+(q*5793|0)|0;f=(B(q,-11586)|0)+f|0;q=(o+w|0)*10887|0;w=w*8875|0;o=o*2012|0;u=q-o+v|0;q=v-q+w|0;o=v-w+o|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;v=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;r=B(c[j+224>>2]|0,b[d+112>>1]|0)|0;x=B(B(b[d+48>>1]|0,-10033)|0,c[j+96>>2]|0)|0;p=(v+w|0)*7447|0;n=(r+w|0)*3962|0;t=p-x+n|0;y=(v-r|0)*11409|0;p=x-y+p|0;n=y+x+n|0;r=(w-v-r|0)*10033|0;c[k>>2]=t+u>>11;c[k+256>>2]=u-t>>11;c[k+32>>2]=r+s>>11;c[k+224>>2]=s-r>>11;c[k+64>>2]=p+q>>11;c[k+192>>2]=q-p>>11;c[k+96>>2]=n+o>>11;c[k+160>>2]=o-n>>11;c[k+128>>2]=f>>11;e=e+1|0;if((e|0)==8)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){y=(c[g+(d<<2)>>2]|0)+h|0;t=(c[i>>2]<<13)+134348800|0;n=c[i+8>>2]|0;v=c[i+16>>2]|0;x=(c[i+24>>2]|0)*5793|0;o=x+t|0;x=t-x-x|0;t=n-v|0;r=x+(t*5793|0)|0;x=(B(t,-11586)|0)+x|0;t=(v+n|0)*10887|0;n=n*8875|0;v=v*2012|0;p=t-v+o|0;t=o-t+n|0;v=o-n+v|0;n=c[i+4>>2]|0;o=c[i+20>>2]|0;s=c[i+28>>2]|0;l=B(c[i+12>>2]|0,-10033)|0;u=(o+n|0)*7447|0;w=(s+n|0)*3962|0;q=u-l+w|0;k=(o-s|0)*11409|0;u=l-k+u|0;w=k+l+w|0;s=(n-o-s|0)*10033|0;a[y>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[y+8>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[y+1>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[y+7>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;a[y+2>>0]=a[e+((u+t|0)>>>18&1023)>>0]|0;a[y+6>>0]=a[e+((t-u|0)>>>18&1023)>>0]|0;a[y+3>>0]=a[e+((w+v|0)>>>18&1023)>>0]|0;a[y+5>>0]=a[e+((v-w|0)>>>18&1023)>>0]|0;a[y+4>>0]=a[e+(x>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==9)break;else i=i+32|0}zb=m;return}function xv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;m=zb;zb=zb+208|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){f=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;w=B(c[j+64>>2]|0,b[d+32>>1]|0)|0;o=B(c[j+128>>2]|0,b[d+64>>1]|0)|0;u=B(c[j+192>>2]|0,b[d+96>>1]|0)|0;v=(o-u|0)*7223|0;p=(w-o|0)*2578|0;s=(B(o,-15083)|0)+f+p+v|0;n=u+w|0;q=(n*10438|0)+f|0;u=v+(B(u,-637)|0)+q|0;q=p+(B(w,-20239)|0)+q|0;w=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;p=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;v=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;x=(p+w|0)*7663|0;t=(w-p|0)*1395|0;p=B(v+p|0,-11295)|0;r=x+t+p|0;w=(v+w|0)*5027|0;t=w+(x-t)|0;p=w+(v*15326|0)+p|0;c[k>>2]=t+u>>11;c[k+168>>2]=u-t>>11;c[k+28>>2]=r+s>>11;c[k+140>>2]=s-r>>11;c[k+56>>2]=p+q>>11;c[k+112>>2]=q-p>>11;c[k+84>>2]=((o-n|0)*11585|0)+f>>11;e=e+1|0;if((e|0)==7)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){x=(c[g+(d<<2)>>2]|0)+h|0;w=(c[i>>2]<<13)+134348800|0;l=c[i+8>>2]|0;u=c[i+16>>2]|0;o=c[i+24>>2]|0;n=(u-o|0)*7223|0;t=(l-u|0)*2578|0;q=(B(u,-15083)|0)+w+t+n|0;v=o+l|0;s=(v*10438|0)+w|0;o=n+(B(o,-637)|0)+s|0;s=t+(B(l,-20239)|0)+s|0;l=c[i+4>>2]|0;t=c[i+12>>2]|0;n=c[i+20>>2]|0;k=(t+l|0)*7663|0;p=(l-t|0)*1395|0;t=B(n+t|0,-11295)|0;r=k+p+t|0;l=(n+l|0)*5027|0;p=k-p+l|0;t=l+(n*15326|0)+t|0;a[x>>0]=a[e+((p+o|0)>>>18&1023)>>0]|0;a[x+6>>0]=a[e+((o-p|0)>>>18&1023)>>0]|0;a[x+1>>0]=a[e+((r+q|0)>>>18&1023)>>0]|0;a[x+5>>0]=a[e+((q-r|0)>>>18&1023)>>0]|0;a[x+2>>0]=a[e+((t+s|0)>>>18&1023)>>0]|0;a[x+4>>0]=a[e+((s-t|0)>>>18&1023)>>0]|0;a[x+3>>0]=a[e+((((u-v|0)*11585|0)+w|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==7)break;else i=i+28|0}zb=m;return}function yv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;m=zb;zb=zb+144|0;i=m;l=c[d+336>>2]|0;k=i;j=c[e+84>>2]|0;d=f;e=0;while(1){p=B(b[d>>1]<<13,c[j>>2]|0)|0|1024;n=B((b[d+64>>1]|0)*5793|0,c[j+128>>2]|0)|0;t=n+p|0;p=(B(n,-2)|0)+p>>11;n=B((b[d+32>>1]|0)*10033|0,c[j+64>>2]|0)|0;r=n+t|0;n=t-n|0;t=B(c[j+32>>2]|0,b[d+16>>1]|0)|0;s=B(c[j+96>>2]|0,b[d+48>>1]|0)|0;o=B(c[j+160>>2]|0,b[d+80>>1]|0)|0;f=(o+t|0)*2998|0;q=f+(s+t<<13)|0;f=f+(o-s<<13)|0;o=t-s-o<<2;c[k>>2]=q+r>>11;c[k+120>>2]=r-q>>11;c[k+24>>2]=o+p;c[k+96>>2]=p-o;c[k+48>>2]=f+n>>11;c[k+72>>2]=n-f>>11;e=e+1|0;if((e|0)==6)break;else{k=k+4|0;j=j+4|0;d=d+2|0}}e=l+-384|0;d=0;while(1){t=(c[g+(d<<2)>>2]|0)+h|0;r=(c[i>>2]<<13)+134348800|0;p=(c[i+16>>2]|0)*5793|0;k=r+p|0;p=r-p-p|0;r=(c[i+8>>2]|0)*10033|0;n=k+r|0;r=k-r|0;k=c[i+4>>2]|0;l=c[i+12>>2]|0;q=c[i+20>>2]|0;s=(q+k|0)*2998|0;o=s+(l+k<<13)|0;s=s+(q-l<<13)|0;q=k-l-q<<13;a[t>>0]=a[e+((o+n|0)>>>18&1023)>>0]|0;a[t+5>>0]=a[e+((n-o|0)>>>18&1023)>>0]|0;a[t+1>>0]=a[e+((q+p|0)>>>18&1023)>>0]|0;a[t+4>>0]=a[e+((p-q|0)>>>18&1023)>>0]|0;a[t+2>>0]=a[e+((s+r|0)>>>18&1023)>>0]|0;a[t+3>>0]=a[e+((r-s|0)>>>18&1023)>>0]|0;d=d+1|0;if((d|0)==6)break;else i=i+24|0}zb=m;return}function zv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=zb;zb=zb+112|0;l=i;d=c[d+336>>2]|0;o=c[e+84>>2]|0;n=B(b[f>>1]<<13,c[o>>2]|0)|0|1024;e=B(c[o+64>>2]|0,b[f+32>>1]|0)|0;j=B(c[o+128>>2]|0,b[f+64>>1]|0)|0;q=(j+e|0)*6476|0;j=e-j|0;e=(j*2896|0)+n|0;p=e+q|0;q=e-q|0;n=(B(j,-11584)|0)+n|0;j=B(c[o+32>>2]|0,b[f+16>>1]|0)|0;e=B(c[o+96>>2]|0,b[f+48>>1]|0)|0;m=(e+j|0)*6810|0;j=m+(j*4209|0)|0;e=m+(B(e,-17828)|0)|0;c[l>>2]=j+p>>11;c[l+80>>2]=p-j>>11;j=l+20|0;c[j>>2]=e+q>>11;c[l+60>>2]=q-e>>11;c[l+40>>2]=n>>11;n=l+4|0;e=B(b[f+2>>1]<<13,c[o+4>>2]|0)|0|1024;q=B(c[o+68>>2]|0,b[f+34>>1]|0)|0;p=B(c[o+132>>2]|0,b[f+66>>1]|0)|0;m=(p+q|0)*6476|0;p=q-p|0;q=(p*2896|0)+e|0;k=q+m|0;m=q-m|0;e=(B(p,-11584)|0)+e|0;p=B(c[o+36>>2]|0,b[f+18>>1]|0)|0;q=B(c[o+100>>2]|0,b[f+50>>1]|0)|0;r=(q+p|0)*6810|0;p=r+(p*4209|0)|0;q=r+(B(q,-17828)|0)|0;c[n>>2]=p+k>>11;c[l+84>>2]=k-p>>11;c[l+24>>2]=q+m>>11;c[l+64>>2]=m-q>>11;c[l+44>>2]=e>>11;e=B(b[f+4>>1]<<13,c[o+8>>2]|0)|0|1024;q=B(c[o+72>>2]|0,b[f+36>>1]|0)|0;m=B(c[o+136>>2]|0,b[f+68>>1]|0)|0;p=(m+q|0)*6476|0;m=q-m|0;q=(m*2896|0)+e|0;k=q+p|0;p=q-p|0;e=(B(m,-11584)|0)+e|0;m=B(c[o+40>>2]|0,b[f+20>>1]|0)|0;q=B(c[o+104>>2]|0,b[f+52>>1]|0)|0;r=(q+m|0)*6810|0;m=r+(m*4209|0)|0;q=r+(B(q,-17828)|0)|0;c[l+8>>2]=m+k>>11;c[l+88>>2]=k-m>>11;c[l+28>>2]=q+p>>11;c[l+68>>2]=p-q>>11;c[l+48>>2]=e>>11;e=B(b[f+6>>1]<<13,c[o+12>>2]|0)|0|1024;q=B(c[o+76>>2]|0,b[f+38>>1]|0)|0;p=B(c[o+140>>2]|0,b[f+70>>1]|0)|0;m=(p+q|0)*6476|0;p=q-p|0;q=(p*2896|0)+e|0;k=q+m|0;m=q-m|0;e=(B(p,-11584)|0)+e|0;p=B(c[o+44>>2]|0,b[f+22>>1]|0)|0;q=B(c[o+108>>2]|0,b[f+54>>1]|0)|0;r=(q+p|0)*6810|0;p=r+(p*4209|0)|0;q=r+(B(q,-17828)|0)|0;c[l+12>>2]=p+k>>11;c[l+92>>2]=k-p>>11;c[l+32>>2]=q+m>>11;c[l+72>>2]=m-q>>11;c[l+52>>2]=e>>11;e=B(b[f+8>>1]<<13,c[o+16>>2]|0)|0|1024;q=B(c[o+80>>2]|0,b[f+40>>1]|0)|0;m=B(c[o+144>>2]|0,b[f+72>>1]|0)|0;p=(m+q|0)*6476|0;m=q-m|0;q=(m*2896|0)+e|0;k=q+p|0;p=q-p|0;e=(B(m,-11584)|0)+e|0;m=B(c[o+48>>2]|0,b[f+24>>1]|0)|0;f=B(c[o+112>>2]|0,b[f+56>>1]|0)|0;o=(f+m|0)*6810|0;m=o+(m*4209|0)|0;f=o+(B(f,-17828)|0)|0;c[l+16>>2]=m+k>>11;c[l+96>>2]=k-m>>11;c[l+36>>2]=f+p>>11;c[l+76>>2]=p-f>>11;c[l+56>>2]=e>>11;f=d+-384|0;e=(c[g>>2]|0)+h|0;d=(c[l>>2]<<13)+134348800|0;p=c[l+8>>2]|0;m=c[l+16>>2]|0;k=(m+p|0)*6476|0;m=p-m|0;p=(m*2896|0)+d|0;o=p+k|0;k=p-k|0;d=(B(m,-11584)|0)+d|0;n=c[n>>2]|0;m=c[l+12>>2]|0;p=(m+n|0)*6810|0;n=p+(n*4209|0)|0;m=p+(B(m,-17828)|0)|0;a[e>>0]=a[f+((n+o|0)>>>18&1023)>>0]|0;a[e+4>>0]=a[f+((o-n|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+((m+k|0)>>>18&1023)>>0]|0;a[e+3>>0]=a[f+((k-m|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+(d>>>18&1023)>>0]|0;e=(c[g+4>>2]|0)+h|0;j=(c[j>>2]<<13)+134348800|0;d=c[l+28>>2]|0;m=c[l+36>>2]|0;k=(m+d|0)*6476|0;m=d-m|0;d=(m*2896|0)+j|0;n=d+k|0;k=d-k|0;j=(B(m,-11584)|0)+j|0;m=c[l+24>>2]|0;d=c[l+32>>2]|0;o=(d+m|0)*6810|0;m=o+(m*4209|0)|0;d=o+(B(d,-17828)|0)|0;a[e>>0]=a[f+((m+n|0)>>>18&1023)>>0]|0;a[e+4>>0]=a[f+((n-m|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+((d+k|0)>>>18&1023)>>0]|0;a[e+3>>0]=a[f+((k-d|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+(j>>>18&1023)>>0]|0;e=(c[g+8>>2]|0)+h|0;j=(c[l+40>>2]<<13)+134348800|0;d=c[l+48>>2]|0;k=c[l+56>>2]|0;m=(k+d|0)*6476|0;k=d-k|0;d=(k*2896|0)+j|0;n=d+m|0;m=d-m|0;j=(B(k,-11584)|0)+j|0;k=c[l+44>>2]|0;d=c[l+52>>2]|0;o=(d+k|0)*6810|0;k=o+(k*4209|0)|0;d=o+(B(d,-17828)|0)|0;a[e>>0]=a[f+((k+n|0)>>>18&1023)>>0]|0;a[e+4>>0]=a[f+((n-k|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+((d+m|0)>>>18&1023)>>0]|0;a[e+3>>0]=a[f+((m-d|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+(j>>>18&1023)>>0]|0;e=(c[g+12>>2]|0)+h|0;j=(c[l+60>>2]<<13)+134348800|0;d=c[l+68>>2]|0;m=c[l+76>>2]|0;k=(m+d|0)*6476|0;m=d-m|0;d=(m*2896|0)+j|0;n=d+k|0;k=d-k|0;j=(B(m,-11584)|0)+j|0;m=c[l+64>>2]|0;d=c[l+72>>2]|0;o=(d+m|0)*6810|0;m=o+(m*4209|0)|0;d=o+(B(d,-17828)|0)|0;a[e>>0]=a[f+((m+n|0)>>>18&1023)>>0]|0;a[e+4>>0]=a[f+((n-m|0)>>>18&1023)>>0]|0;a[e+1>>0]=a[f+((d+k|0)>>>18&1023)>>0]|0;a[e+3>>0]=a[f+((k-d|0)>>>18&1023)>>0]|0;a[e+2>>0]=a[f+(j>>>18&1023)>>0]|0;h=(c[g+16>>2]|0)+h|0;g=(c[l+80>>2]<<13)+134348800|0;e=c[l+88>>2]|0;j=c[l+96>>2]|0;d=(j+e|0)*6476|0;j=e-j|0;e=(j*2896|0)+g|0;k=e+d|0;d=e-d|0;g=(B(j,-11584)|0)+g|0;j=c[l+84>>2]|0;e=c[l+92>>2]|0;l=(e+j|0)*6810|0;j=l+(j*4209|0)|0;e=l+(B(e,-17828)|0)|0;a[h>>0]=a[f+((j+k|0)>>>18&1023)>>0]|0;a[h+4>>0]=a[f+((k-j|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[f+((e+d|0)>>>18&1023)>>0]|0;a[h+3>>0]=a[f+((d-e|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[f+(g>>>18&1023)>>0]|0;zb=i;return}function Av(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=zb;zb=zb+64|0;k=i;d=c[d+336>>2]|0;e=c[e+84>>2]|0;m=B(c[e>>2]|0,b[f>>1]|0)|0;j=B(c[e+64>>2]|0,b[f+32>>1]|0)|0;o=j+m<<2;j=m-j<<2;m=B(c[e+32>>2]|0,b[f+16>>1]|0)|0;n=B(c[e+96>>2]|0,b[f+48>>1]|0)|0;l=((n+m|0)*4433|0)+1024|0;m=l+(m*6270|0)>>11;n=l+(B(n,-15137)|0)>>11;c[k>>2]=m+o;c[k+48>>2]=o-m;m=k+16|0;c[m>>2]=n+j;c[k+32>>2]=j-n;n=k+4|0;j=B(c[e+4>>2]|0,b[f+2>>1]|0)|0;o=B(c[e+68>>2]|0,b[f+34>>1]|0)|0;l=o+j<<2;o=j-o<<2;j=B(c[e+36>>2]|0,b[f+18>>1]|0)|0;q=B(c[e+100>>2]|0,b[f+50>>1]|0)|0;p=((q+j|0)*4433|0)+1024|0;j=p+(j*6270|0)>>11;q=p+(B(q,-15137)|0)>>11;c[n>>2]=j+l;c[k+52>>2]=l-j;c[k+20>>2]=q+o;c[k+36>>2]=o-q;q=B(c[e+8>>2]|0,b[f+4>>1]|0)|0;o=B(c[e+72>>2]|0,b[f+36>>1]|0)|0;j=o+q<<2;o=q-o<<2;q=B(c[e+40>>2]|0,b[f+20>>1]|0)|0;l=B(c[e+104>>2]|0,b[f+52>>1]|0)|0;p=((l+q|0)*4433|0)+1024|0;q=p+(q*6270|0)>>11;l=p+(B(l,-15137)|0)>>11;p=q+j|0;c[k+8>>2]=p;c[k+56>>2]=j-q;c[k+24>>2]=l+o;c[k+40>>2]=o-l;l=B(c[e+12>>2]|0,b[f+6>>1]|0)|0;o=B(c[e+76>>2]|0,b[f+38>>1]|0)|0;q=o+l<<2;o=l-o<<2;l=B(c[e+44>>2]|0,b[f+22>>1]|0)|0;e=B(c[e+108>>2]|0,b[f+54>>1]|0)|0;j=((e+l|0)*4433|0)+1024|0;l=j+(l*6270|0)>>11;e=j+(B(e,-15137)|0)>>11;j=l+q|0;c[k+12>>2]=j;c[k+60>>2]=q-l;l=e+o|0;c[k+28>>2]=l;c[k+44>>2]=o-e;e=d+-384|0;d=(c[g>>2]|0)+h|0;f=(c[k>>2]|0)+16400|0;o=f+p<<13;f=f-p<<13;n=c[n>>2]|0;p=(j+n|0)*4433|0;n=p+(n*6270|0)|0;j=p+(B(j,-15137)|0)|0;a[d>>0]=a[e+((n+o|0)>>>18&1023)>>0]|0;a[d+3>>0]=a[e+((o-n|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[e+((j+f|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[e+((f-j|0)>>>18&1023)>>0]|0;d=(c[g+4>>2]|0)+h|0;m=(c[m>>2]|0)+16400|0;j=c[k+24>>2]|0;f=m+j<<13;j=m-j<<13;m=c[k+20>>2]|0;n=(l+m|0)*4433|0;m=n+(m*6270|0)|0;l=n+(B(l,-15137)|0)|0;a[d>>0]=a[e+((m+f|0)>>>18&1023)>>0]|0;a[d+3>>0]=a[e+((f-m|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[e+((l+j|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[e+((j-l|0)>>>18&1023)>>0]|0;d=(c[g+8>>2]|0)+h|0;l=(c[k+32>>2]|0)+16400|0;j=c[k+40>>2]|0;m=l+j<<13;j=l-j<<13;l=c[k+36>>2]|0;f=c[k+44>>2]|0;n=(f+l|0)*4433|0;l=n+(l*6270|0)|0;f=n+(B(f,-15137)|0)|0;a[d>>0]=a[e+((l+m|0)>>>18&1023)>>0]|0;a[d+3>>0]=a[e+((m-l|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[e+((f+j|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[e+((j-f|0)>>>18&1023)>>0]|0;h=(c[g+12>>2]|0)+h|0;d=(c[k+48>>2]|0)+16400|0;f=c[k+56>>2]|0;j=d+f<<13;f=d-f<<13;d=c[k+52>>2]|0;g=c[k+60>>2]|0;k=(g+d|0)*4433|0;d=k+(d*6270|0)|0;g=k+(B(g,-15137)|0)|0;a[h>>0]=a[e+((d+j|0)>>>18&1023)>>0]|0;a[h+3>>0]=a[e+((j-d|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[e+((g+f|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[e+((f-g|0)>>>18&1023)>>0]|0;zb=i;return}function Bv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;i=zb;zb=zb+48|0;j=i;d=c[d+336>>2]|0;e=c[e+84>>2]|0;l=B(b[f>>1]<<13,c[e>>2]|0)|0|1024;k=B((b[f+32>>1]|0)*5793|0,c[e+64>>2]|0)|0;n=k+l|0;l=(B(k,-2)|0)+l|0;k=B((b[f+16>>1]|0)*10033|0,c[e+32>>2]|0)|0;m=k+n>>11;c[j>>2]=m;c[j+24>>2]=n-k>>11;k=j+12|0;c[k>>2]=l>>11;l=B(b[f+2>>1]<<13,c[e+4>>2]|0)|0|1024;n=B((b[f+34>>1]|0)*5793|0,c[e+68>>2]|0)|0;q=n+l|0;l=(B(n,-2)|0)+l|0;n=B((b[f+18>>1]|0)*10033|0,c[e+36>>2]|0)|0;o=n+q>>11;c[j+4>>2]=o;c[j+28>>2]=q-n>>11;l=l>>11;c[j+16>>2]=l;n=B(b[f+4>>1]<<13,c[e+8>>2]|0)|0|1024;q=B((b[f+36>>1]|0)*5793|0,c[e+72>>2]|0)|0;p=q+n|0;n=(B(q,-2)|0)+n|0;e=B((b[f+20>>1]|0)*10033|0,c[e+40>>2]|0)|0;q=e+p>>11;c[j+8>>2]=q;e=p-e>>11;c[j+32>>2]=e;n=n>>11;c[j+20>>2]=n;f=d+-384|0;d=(c[g>>2]|0)+h|0;m=(m<<13)+134348800|0;p=m+(q*5793|0)|0;m=(B(q,-11586)|0)+m|0;o=o*10033|0;a[d>>0]=a[f+((p+o|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[f+((p-o|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[f+(m>>>18&1023)>>0]|0;d=(c[g+4>>2]|0)+h|0;k=(c[k>>2]<<13)+134348800|0;m=k+(n*5793|0)|0;k=(B(n,-11586)|0)+k|0;l=l*10033|0;a[d>>0]=a[f+((m+l|0)>>>18&1023)>>0]|0;a[d+2>>0]=a[f+((m-l|0)>>>18&1023)>>0]|0;a[d+1>>0]=a[f+(k>>>18&1023)>>0]|0;h=(c[g+8>>2]|0)+h|0;g=(c[j+24>>2]<<13)+134348800|0;d=g+(e*5793|0)|0;g=(B(e,-11586)|0)+g|0;e=(c[j+28>>2]|0)*10033|0;a[h>>0]=a[f+((d+e|0)>>>18&1023)>>0]|0;a[h+2>>0]=a[f+((d-e|0)>>>18&1023)>>0]|0;a[h+1>>0]=a[f+(g>>>18&1023)>>0]|0;zb=i;return}function Cv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;d=(c[d+336>>2]|0)+-384|0;j=c[e+84>>2]|0;i=B(c[j>>2]|0,b[f>>1]|0)|0;e=B(c[j+32>>2]|0,b[f+16>>1]|0)|0;i=i+4100|0;k=e+i|0;e=i-e|0;i=B(c[j+4>>2]|0,b[f+2>>1]|0)|0;f=B(c[j+36>>2]|0,b[f+18>>1]|0)|0;j=f+i|0;f=i-f|0;i=(c[g>>2]|0)+h|0;a[i>>0]=a[d+((j+k|0)>>>3&1023)>>0]|0;a[i+1>>0]=a[d+((k-j|0)>>>3&1023)>>0]|0;h=(c[g+4>>2]|0)+h|0;a[h>>0]=a[d+((f+e|0)>>>3&1023)>>0]|0;a[h+1>>0]=a[d+((e-f|0)>>>3&1023)>>0]|0;return}function Dv(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;f=(c[d+336>>2]|0)+-384+(((B(c[c[e+84>>2]>>2]|0,b[f>>1]|0)|0)+4100|0)>>>3&1023)|0;a[(c[g>>2]|0)+h>>0]=a[f>>0]|0;return}function Ev(d,e,f,g,h){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;o=zb;zb=zb+256|0;m=o;l=c[d+336>>2]|0;k=m;j=c[e+84>>2]|0;i=8;while(1){e=b[f+16>>1]|0;d=b[f+32>>1]|0;if(!((e|d)<<16>>16))if(((((b[f+48>>1]|0)==0?(b[f+64>>1]|0)==0:0)?(b[f+80>>1]|0)==0:0)?(b[f+96>>1]|0)==0:0)?(b[f+112>>1]|0)==0:0){d=B(b[f>>1]<<2,c[j>>2]|0)|0;c[k>>2]=d;c[k+32>>2]=d;c[k+64>>2]=d;c[k+96>>2]=d;c[k+128>>2]=d;c[k+160>>2]=d;c[k+192>>2]=d;e=56}else{d=0;n=9}else n=9;if((n|0)==9){n=0;x=B(b[f+64>>1]<<13,c[j+128>>2]|0)|0;p=B(b[f>>1]<<13,c[j>>2]|0)|0|1024;s=x+p|0;x=p-x|0;p=B(c[j+64>>2]|0,d<<16>>16)|0;q=B(c[j+192>>2]|0,b[f+96>>1]|0)|0;u=(q+p|0)*4433|0;p=u+(p*6270|0)|0;q=u+(B(q,-15137)|0)|0;u=p+s|0;p=s-p|0;s=q+x|0;q=x-q|0;d=B(c[j+224>>2]|0,b[f+112>>1]|0)|0;x=B(c[j+160>>2]|0,b[f+80>>1]|0)|0;v=B(c[j+96>>2]|0,b[f+48>>1]|0)|0;t=B(c[j+32>>2]|0,e<<16>>16)|0;r=v+d|0;e=t+x|0;w=(e+r|0)*9633|0;r=w+(B(r,-16069)|0)|0;e=w+(B(e,-3196)|0)|0;w=B(t+d|0,-7373)|0;d=w+(d*2446|0)+r|0;t=w+(t*12299|0)+e|0;w=B(v+x|0,-20995)|0;e=w+(x*16819|0)+e|0;r=w+(v*25172|0)+r|0;c[k>>2]=t+u>>11;c[k+224>>2]=u-t>>11;c[k+32>>2]=r+s>>11;c[k+192>>2]=s-r>>11;c[k+64>>2]=e+q>>11;c[k+160>>2]=q-e>>11;c[k+96>>2]=d+p>>11;d=p-d>>11;e=32}c[k+(e<<2)>>2]=d;if(i>>>0>1){k=k+4|0;j=j+4|0;f=f+2|0;i=i+-1|0}else break}l=l+-384|0;k=0;e=m;while(1){f=(c[g+(k<<2)>>2]|0)+h|0;i=(c[e>>2]|0)+16400|0;j=c[e+4>>2]|0;d=c[e+8>>2]|0;if(!(j|d))if(((((c[e+12>>2]|0)==0?(c[e+16>>2]|0)==0:0)?(c[e+20>>2]|0)==0:0)?(c[e+24>>2]|0)==0:0)?(c[e+28>>2]|0)==0:0){x=a[l+(i>>>5&1023)>>0]|0;a[f>>0]=x;aP(f+1|0,x|0,7)|0}else{d=0;n=19}else n=19;if((n|0)==19){n=0;x=c[e+16>>2]|0;s=x+i<<13;x=i-x<<13;u=c[e+24>>2]|0;q=(u+d|0)*4433|0;w=q+(d*6270|0)|0;u=q+(B(u,-15137)|0)|0;q=w+s|0;w=s-w|0;s=u+x|0;u=x-u|0;x=c[e+28>>2]|0;i=c[e+20>>2]|0;p=c[e+12>>2]|0;t=p+x|0;v=i+j|0;r=(t+v|0)*9633|0;t=r+(B(t,-16069)|0)|0;v=r+(B(v,-3196)|0)|0;r=B(x+j|0,-7373)|0;x=r+(x*2446|0)+t|0;r=r+(j*12299|0)+v|0;m=B(p+i|0,-20995)|0;v=m+(i*16819|0)+v|0;t=m+(p*25172|0)+t|0;a[f>>0]=a[l+((r+q|0)>>>18&1023)>>0]|0;a[f+7>>0]=a[l+((q-r|0)>>>18&1023)>>0]|0;a[f+1>>0]=a[l+((t+s|0)>>>18&1023)>>0]|0;a[f+6>>0]=a[l+((s-t|0)>>>18&1023)>>0]|0;a[f+2>>0]=a[l+((v+u|0)>>>18&1023)>>0]|0;a[f+5>>0]=a[l+((u-v|0)>>>18&1023)>>0]|0;a[f+3>>0]=a[l+((x+w|0)>>>18&1023)>>0]|0;a[f+4>>0]=a[l+((w-x|0)>>>18&1023)>>0]|0}k=k+1|0;if((k|0)==8)break;else e=e+32|0}zb=o;return}function Fv(a,b){a=a|0;b=b|0;var d=0;d=c[a+456>>2]|0;a:do switch(b|0){case 0:{if(!(c[a+84>>2]|0)){c[d+4>>2]=c[(c[a+476>>2]|0)+4>>2];break a}c[d+4>>2]=4;b=d+12|0;if(!(c[b>>2]|0)){a=Mb[c[(c[a+4>>2]|0)+28>>2]&31](a,c[d+8>>2]|0,0,c[d+16>>2]|0,1)|0;c[b>>2]=a}break}case 3:{if(!(c[d+8>>2]|0)){b=c[a>>2]|0;c[b+20>>2]=3;Sb[c[b>>2]&255](a)}c[d+4>>2]=5;break}case 2:{if(!(c[d+8>>2]|0)){b=c[a>>2]|0;c[b+20>>2]=3;Sb[c[b>>2]&255](a)}c[d+4>>2]=6;break}default:{b=c[a>>2]|0;c[b+20>>2]=3;Sb[c[b>>2]&255](a)}}while(0);c[d+24>>2]=0;c[d+20>>2]=0;return}function Gv(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0;i=zb;zb=zb+16|0;j=i;m=c[a+456>>2]|0;k=h-(c[g>>2]|0)|0;l=c[m+16>>2]|0;c[j>>2]=0;h=m+12|0;_b[c[(c[a+476>>2]|0)+4>>2]&7](a,b,d,e,c[h>>2]|0,j,k>>>0>l>>>0?l:k);Xb[c[(c[a+484>>2]|0)+4>>2]&31](a,c[h>>2]|0,f+(c[g>>2]<<2)|0,c[j>>2]|0);c[g>>2]=(c[g>>2]|0)+(c[j>>2]|0);zb=i;return}function Hv(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;k=c[a+456>>2]|0;l=k+24|0;f=c[l>>2]|0;if(!f){j=k+16|0;h=Mb[c[(c[a+4>>2]|0)+28>>2]&31](a,c[k+8>>2]|0,c[k+20>>2]|0,c[j>>2]|0,1)|0;i=k+12|0;c[i>>2]=h;f=c[l>>2]|0}else{h=k+12|0;j=k+16|0;i=h;h=c[h>>2]|0}_b[c[(c[a+476>>2]|0)+4>>2]&7](a,b,d,e,h,l,c[j>>2]|0);h=c[l>>2]|0;if(h>>>0>f>>>0){h=h-f|0;Xb[c[(c[a+484>>2]|0)+4>>2]&31](a,(c[i>>2]|0)+(f<<2)|0,0,h);c[g>>2]=(c[g>>2]|0)+h;h=c[l>>2]|0}f=c[j>>2]|0;if(h>>>0>>0)return;k=k+20|0;c[k>>2]=(c[k>>2]|0)+f;c[l>>2]=0;return}function Iv(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0;d=c[a+456>>2]|0;j=d+24|0;b=c[j>>2]|0;if(!b){i=d+20|0;e=d+16|0;k=Mb[c[(c[a+4>>2]|0)+28>>2]&31](a,c[d+8>>2]|0,c[i>>2]|0,c[e>>2]|0,0)|0;c[d+12>>2]=k;b=c[j>>2]|0;d=k}else{i=d+20|0;e=d+16|0;d=c[d+12>>2]|0}k=(c[e>>2]|0)-b|0;l=c[g>>2]|0;h=h-l|0;k=k>>>0>h>>>0?h:k;h=(c[a+116>>2]|0)-(c[i>>2]|0)|0;k=k>>>0>h>>>0?h:k;Xb[c[(c[a+484>>2]|0)+4>>2]&31](a,d+(b<<2)|0,f+(l<<2)|0,k);c[g>>2]=(c[g>>2]|0)+k;k=(c[j>>2]|0)+k|0;c[j>>2]=k;b=c[e>>2]|0;if(k>>>0>>0)return;c[i>>2]=(c[i>>2]|0)+b;c[j>>2]=0;return}function Jv(a){a=a|0;var b=0;b=c[a+476>>2]|0;c[b+92>>2]=c[a+320>>2];c[b+96>>2]=c[a+116>>2];return}function Kv(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;l=c[a+476>>2]|0;m=l+92|0;i=c[m>>2]|0;k=a+320|0;e=c[k>>2]|0;if((i|0)>=(e|0)){j=a+36|0;if((c[j>>2]|0)>0){e=c[a+216>>2]|0;i=0;while(1){n=(c[b+(i<<2)>>2]|0)+((B(c[l+100+(i<<2)>>2]|0,c[d>>2]|0)|0)<<2)|0;Xb[c[l+52+(i<<2)>>2]&31](a,e,n,l+12+(i<<2)|0);i=i+1|0;if((i|0)>=(c[j>>2]|0))break;else e=e+88|0}e=c[k>>2]|0}c[m>>2]=0;i=0}n=e-i|0;b=l+96|0;j=c[b>>2]|0;n=n>>>0>j>>>0?j:n;j=c[g>>2]|0;h=h-j|0;n=n>>>0>h>>>0?h:n;Yb[c[(c[a+480>>2]|0)+4>>2]&63](a,l+12|0,i,f+(j<<2)|0,n);c[g>>2]=(c[g>>2]|0)+n;c[b>>2]=(c[b>>2]|0)-n;n=(c[m>>2]|0)+n|0;c[m>>2]=n;if((n|0)<(c[k>>2]|0))return;c[d>>2]=(c[d>>2]|0)+1;return}function Lv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[e>>2]=0;return}function Mv(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;c[e>>2]=d;return}function Nv(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;j=c[f>>2]|0;k=b+320|0;d=c[k>>2]|0;if((d|0)<=0)return;i=b+112|0;h=0;do{b=c[j+(h<<2)>>2]|0;f=c[i>>2]|0;g=b+f|0;if((f|0)>0){f=c[e+(h<<2)>>2]|0;d=b;while(1){b=a[f>>0]|0;a[d>>0]=b;a[d+1>>0]=b;d=d+2|0;if(d>>>0>=g>>>0)break;else f=f+1|0}d=c[k>>2]|0}h=h+1|0}while((h|0)<(d|0));return}function Ov(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;k=c[f>>2]|0;l=b+320|0;if((c[l>>2]|0)<=0)return;j=b+112|0;h=0;i=0;while(1){b=c[k+(i<<2)>>2]|0;d=c[j>>2]|0;g=b+d|0;if((d|0)>0){f=c[e+(h<<2)>>2]|0;d=b;while(1){b=a[f>>0]|0;a[d>>0]=b;a[d+1>>0]=b;d=d+2|0;if(d>>>0>=g>>>0)break;else f=f+1|0}d=c[j>>2]|0}Qv(k,i,k,i|1,1,d);i=i+2|0;if((i|0)>=(c[l>>2]|0))break;else h=h+1|0}return}function Pv(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;r=c[b+476>>2]|0;q=c[f>>2]|0;d=c[d+4>>2]|0;f=a[r+140+d>>0]|0;o=f&255;d=a[r+150+d>>0]|0;r=d&255;p=b+320|0;g=c[p>>2]|0;if((g|0)<=0)return;n=b+112|0;k=f<<24>>24!=0;l=r+-1|0;if((d&255)>1){j=(f<<24>>24==0?~o:-2)+o+2|0;h=0;i=0;while(1){d=c[q+(i<<2)>>2]|0;f=c[n>>2]|0;g=d+f|0;if((f|0)>0){if(!k)break;b=c[e+(h<<2)>>2]|0;f=d;while(1){aP(f|0,a[b>>0]|0,j|0)|0;d=o;while(1){f=f+1|0;if((d|0)<=1)break;else d=d+-1|0}if(f>>>0>>0)b=b+1|0;else break}f=c[n>>2]|0}Qv(q,i,q,i+1|0,l,f);i=i+r|0;if((i|0)>=(c[p>>2]|0)){m=27;break}else h=h+1|0}if((m|0)==27)return;while(1){}}if(!k){d=(c[n>>2]|0)>0;f=0;while(1){if(d)break;f=f+r|0;if((f|0)>=(g|0)){m=27;break}}if((m|0)==27)return;while(1){}}b=0;h=0;while(1){f=c[q+(h<<2)>>2]|0;m=c[n>>2]|0;i=f+m|0;if((m|0)>0){g=c[e+(b<<2)>>2]|0;while(1){aP(f|0,a[g>>0]|0,o|0)|0;d=o;while(1){f=f+1|0;if((d|0)<=1)break;else d=d+-1|0}if(f>>>0>>0)g=g+1|0;else break}}h=h+r|0;if((h|0)>=(c[p>>2]|0))break;else b=b+1|0}return}function Qv(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((f|0)<=0)return;b=a+(b<<2)|0;a=d+(e<<2)|0;while(1){_O(c[a>>2]|0,c[b>>2]|0,g|0)|0;if((f|0)>1){b=b+4|0;a=a+4|0;f=f+-1|0}else break}return}function Rv(a){a=a|0;return}function Sv(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;Qv(c[b>>2]|0,d,e,0,f,c[a+112>>2]|0);return}function Tv(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;q=c[(c[b+480>>2]|0)+24>>2]|0;n=c[b+112>>2]|0;if((h|0)<=0)return;o=e+4|0;p=e+8|0;if(!n)return;while(1){i=h;h=h+-1|0;j=c[(c[e>>2]|0)+(f<<2)>>2]|0;k=c[(c[o>>2]|0)+(f<<2)>>2]|0;l=c[(c[p>>2]|0)+(f<<2)>>2]|0;f=f+1|0;m=c[g>>2]|0;b=0;do{a[m+b>>0]=((c[q+((d[k+b>>0]|0|256)<<2)>>2]|0)+(c[q+((d[j+b>>0]|0)<<2)>>2]|0)+(c[q+((d[l+b>>0]|0|512)<<2)>>2]|0)|0)>>>16;b=b+1|0}while((b|0)!=(n|0));if((i|0)<=1)break;else g=g+4|0}return}function Uv(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,s=0;q=c[(c[b+480>>2]|0)+24>>2]|0;n=c[b+112>>2]|0;if((h|0)<=0)return;o=e+4|0;p=e+8|0;if(!n)return;while(1){i=h;h=h+-1|0;j=c[(c[e>>2]|0)+(f<<2)>>2]|0;k=c[(c[o>>2]|0)+(f<<2)>>2]|0;l=c[(c[p>>2]|0)+(f<<2)>>2]|0;f=f+1|0;m=c[g>>2]|0;b=0;do{s=d[k+b>>0]|0;r=s+128|0;a[m+b>>0]=((c[q+((s|256)<<2)>>2]|0)+(c[q+((r+(d[j+b>>0]|0)&255)<<2)>>2]|0)+(c[q+((r+(d[l+b>>0]|0)&255|512)<<2)>>2]|0)|0)>>>16;b=b+1|0}while((b|0)!=(n|0));if((i|0)<=1)break;else g=g+4|0}return}function Vv(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0;k=c[b+112>>2]|0;if((g|0)<1|(k|0)==0)return;while(1){i=g;g=g+-1|0;j=c[(c[d>>2]|0)+(e<<2)>>2]|0;b=0;h=c[f>>2]|0;while(1){l=a[j+b>>0]|0;a[h+2>>0]=l;a[h+1>>0]=l;a[h>>0]=l;b=b+1|0;if((b|0)==(k|0))break;else h=h+3|0}if((i|0)<=1)break;else{f=f+4|0;e=e+1|0}}return}function Wv(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,s=0,t=0,u=0,v=0,w=0,x=0;r=c[b+480>>2]|0;u=c[b+112>>2]|0;n=c[b+336>>2]|0;o=c[r+8>>2]|0;p=c[r+12>>2]|0;q=c[r+16>>2]|0;r=c[r+20>>2]|0;if((h|0)<=0)return;s=e+4|0;t=e+8|0;if(!u)return;while(1){j=h;h=h+-1|0;k=c[(c[e>>2]|0)+(f<<2)>>2]|0;l=c[(c[s>>2]|0)+(f<<2)>>2]|0;m=c[(c[t>>2]|0)+(f<<2)>>2]|0;f=f+1|0;b=c[g>>2]|0;i=0;while(1){v=d[k+i>>0]|0;w=d[l+i>>0]|0;x=d[m+i>>0]|0;a[b>>0]=a[n+((c[o+(x<<2)>>2]|0)+v)>>0]|0;a[b+1>>0]=a[n+(((c[q+(x<<2)>>2]|0)+(c[r+(w<<2)>>2]|0)>>16)+v)>>0]|0;a[b+2>>0]=a[n+((c[p+(w<<2)>>2]|0)+v)>>0]|0;i=i+1|0;if((i|0)==(u|0))break;else b=b+3|0}if((j|0)<=1)break;else g=g+4|0}return}function Xv(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;m=c[b+112>>2]|0;if((g|0)<=0)return;n=d+4|0;o=d+8|0;if(!m)return;while(1){i=g;g=g+-1|0;j=c[(c[d>>2]|0)+(e<<2)>>2]|0;k=c[(c[n>>2]|0)+(e<<2)>>2]|0;l=c[(c[o>>2]|0)+(e<<2)>>2]|0;e=e+1|0;b=0;h=c[f>>2]|0;while(1){a[h>>0]=a[j+b>>0]|0;a[h+1>>0]=a[k+b>>0]|0;a[h+2>>0]=a[l+b>>0]|0;b=b+1|0;if((b|0)==(m|0))break;else h=h+3|0}if((i|0)<=1)break;else f=f+4|0}return}function Yv(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,s=0;n=c[b+112>>2]|0;if((h|0)<=0)return;o=e+4|0;p=e+8|0;if(!n)return;while(1){j=h;h=h+-1|0;k=c[(c[e>>2]|0)+(f<<2)>>2]|0;l=c[(c[o>>2]|0)+(f<<2)>>2]|0;m=c[(c[p>>2]|0)+(f<<2)>>2]|0;f=f+1|0;b=0;i=c[g>>2]|0;while(1){s=a[l+b>>0]|0;q=d[m+b>>0]|0;r=(s&255)+128|0;a[i>>0]=r+(d[k+b>>0]|0);a[i+1>>0]=s;a[i+2>>0]=r+q;b=b+1|0;if((b|0)==(n|0))break;else i=i+3|0}if((j|0)<=1)break;else g=g+4|0}return}function Zv(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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;s=c[b+480>>2]|0;w=c[b+112>>2]|0;o=c[b+336>>2]|0;p=c[s+8>>2]|0;q=c[s+12>>2]|0;r=c[s+16>>2]|0;s=c[s+20>>2]|0;if((h|0)<=0)return;t=e+4|0;u=e+8|0;v=e+12|0;if(!w)return;while(1){j=h;h=h+-1|0;k=c[(c[e>>2]|0)+(f<<2)>>2]|0;l=c[(c[t>>2]|0)+(f<<2)>>2]|0;m=c[(c[u>>2]|0)+(f<<2)>>2]|0;n=c[(c[v>>2]|0)+(f<<2)>>2]|0;f=f+1|0;b=c[g>>2]|0;i=0;while(1){x=d[l+i>>0]|0;z=d[m+i>>0]|0;y=~a[k+i>>0]&255;a[b>>0]=a[o+(y-(c[p+(z<<2)>>2]|0))>>0]|0;a[b+1>>0]=a[o+(y-((c[r+(z<<2)>>2]|0)+(c[s+(x<<2)>>2]|0)>>16))>>0]|0;a[b+2>>0]=a[o+(y-(c[q+(x<<2)>>2]|0))>>0]|0;a[b+3>>0]=a[n+i>>0]|0;i=i+1|0;if((i|0)==(w|0))break;else b=b+4|0}if((j|0)<=1)break;else g=g+4|0}return}function _v(b,d,e,f,g){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;n=c[b+36>>2]|0;m=c[b+112>>2]|0;if((g|0)<=0)return;l=(m|0)==0;if((n|0)<=0)return;while(1){k=g;g=g+-1|0;if(!l){j=0;do{b=0;h=c[(c[d+(j<<2)>>2]|0)+(e<<2)>>2]|0;i=(c[f>>2]|0)+j|0;while(1){a[i>>0]=a[h>>0]|0;b=b+1|0;if((b|0)==(m|0))break;else{h=h+1|0;i=i+n|0}}j=j+1|0}while((j|0)!=(n|0))}if((k|0)<=1)break;else{f=f+4|0;e=e+1|0}}return}function $v(a){a=a|0;var b=0;b=c[a+476>>2]|0;c[b+36>>2]=0;c[b+44>>2]=c[a+116>>2];return}function aw(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0;n=zb;zb=zb+16|0;l=n;m=c[a+476>>2]|0;i=m+36|0;if(!(c[i>>2]|0)){j=m+44|0;e=c[j>>2]|0;e=e>>>0<2?e:2;k=c[g>>2]|0;h=h-k|0;e=e>>>0>h>>>0?h:e;c[l>>2]=c[f+(k<<2)>>2];if(e>>>0>1)c[l+4>>2]=c[f+(k+1<<2)>>2];else{c[l+4>>2]=c[m+32>>2];c[i>>2]=1}Xb[c[m+12>>2]&31](a,b,c[d>>2]|0,l);f=(c[i>>2]|0)==0;c[g>>2]=(c[g>>2]|0)+e;c[j>>2]=(c[j>>2]|0)-e;if(!f){zb=n;return}}else{Qv(m+32|0,0,f+(c[g>>2]<<2)|0,0,1,c[m+40>>2]|0);c[i>>2]=0;f=m+44|0;c[g>>2]=(c[g>>2]|0)+1;c[f>>2]=(c[f>>2]|0)+-1}c[d>>2]=(c[d>>2]|0)+1;zb=n;return}function bw(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,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;w=c[b+476>>2]|0;x=c[b+336>>2]|0;y=c[w+16>>2]|0;u=c[w+20>>2]|0;v=c[w+24>>2]|0;w=c[w+28>>2]|0;i=c[e>>2]|0;h=f<<1;t=c[i+(h<<2)>>2]|0;h=c[i+((h|1)<<2)>>2]|0;i=c[(c[e+4>>2]|0)+(f<<2)>>2]|0;p=c[(c[e+8>>2]|0)+(f<<2)>>2]|0;f=c[g>>2]|0;g=c[g+4>>2]|0;s=b+112|0;e=c[s>>2]|0;m=e>>>1;if(!m){j=p;b=t}else{n=i+m|0;q=e&-2;r=m*6|0;o=h+q|0;l=p;e=t;b=g;j=f;k=m;while(1){A=d[i>>0]|0;B=d[l>>0]|0;C=c[y+(B<<2)>>2]|0;B=(c[v+(B<<2)>>2]|0)+(c[w+(A<<2)>>2]|0)>>16;A=c[u+(A<<2)>>2]|0;z=d[e>>0]|0;a[j>>0]=a[x+(C+z)>>0]|0;a[j+1>>0]=a[x+(B+z)>>0]|0;a[j+2>>0]=a[x+(A+z)>>0]|0;z=d[e+1>>0]|0;a[j+3>>0]=a[x+(C+z)>>0]|0;a[j+4>>0]=a[x+(B+z)>>0]|0;a[j+5>>0]=a[x+(A+z)>>0]|0;z=d[h>>0]|0;a[b>>0]=a[x+(C+z)>>0]|0;a[b+1>>0]=a[x+(B+z)>>0]|0;a[b+2>>0]=a[x+(A+z)>>0]|0;z=d[h+1>>0]|0;a[b+3>>0]=a[x+(C+z)>>0]|0;a[b+4>>0]=a[x+(B+z)>>0]|0;a[b+5>>0]=a[x+(A+z)>>0]|0;k=k+-1|0;if(!k)break;else{l=l+1|0;i=i+1|0;h=h+2|0;e=e+2|0;b=b+6|0;j=j+6|0}}j=p+m|0;i=n;h=o;b=t+q|0;g=g+r|0;f=f+r|0;e=c[s>>2]|0}if(!(e&1))return;B=d[i>>0]|0;A=d[j>>0]|0;z=c[y+(A<<2)>>2]|0;A=(c[v+(A<<2)>>2]|0)+(c[w+(B<<2)>>2]|0)>>16;B=c[u+(B<<2)>>2]|0;C=d[b>>0]|0;a[f>>0]=a[x+(z+C)>>0]|0;a[f+1>>0]=a[x+(A+C)>>0]|0;a[f+2>>0]=a[x+(B+C)>>0]|0;C=d[h>>0]|0;a[g>>0]=a[x+(z+C)>>0]|0;a[g+1>>0]=a[x+(A+C)>>0]|0;a[g+2>>0]=a[x+(B+C)>>0]|0;return}function cw(a,b,d,e,f,g,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;Xb[c[(c[a+476>>2]|0)+12>>2]&31](a,b,c[d>>2]|0,f+(c[g>>2]<<2)|0);c[g>>2]=(c[g>>2]|0)+1;c[d>>2]=(c[d>>2]|0)+1;return}function dw(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,v=0,w=0,x=0,y=0;s=c[b+476>>2]|0;t=c[b+336>>2]|0;u=c[s+16>>2]|0;q=c[s+20>>2]|0;r=c[s+24>>2]|0;s=c[s+28>>2]|0;p=c[(c[e>>2]|0)+(f<<2)>>2]|0;i=c[(c[e+4>>2]|0)+(f<<2)>>2]|0;h=c[(c[e+8>>2]|0)+(f<<2)>>2]|0;f=c[g>>2]|0;o=b+112|0;e=c[o>>2]|0;l=e>>>1;if(!l){b=i;g=p}else{b=i+l|0;m=e&-2;n=l*6|0;k=h;e=i;g=p;i=f;j=l;while(1){w=d[e>>0]|0;x=d[k>>0]|0;y=c[u+(x<<2)>>2]|0;x=(c[r+(x<<2)>>2]|0)+(c[s+(w<<2)>>2]|0)>>16;w=c[q+(w<<2)>>2]|0;v=d[g>>0]|0;a[i>>0]=a[t+(y+v)>>0]|0;a[i+1>>0]=a[t+(x+v)>>0]|0;a[i+2>>0]=a[t+(w+v)>>0]|0;v=d[g+1>>0]|0;a[i+3>>0]=a[t+(y+v)>>0]|0;a[i+4>>0]=a[t+(x+v)>>0]|0;a[i+5>>0]=a[t+(w+v)>>0]|0;j=j+-1|0;if(!j)break;else{k=k+1|0;e=e+1|0;g=g+2|0;i=i+6|0}}h=h+l|0;g=p+m|0;f=f+n|0;e=c[o>>2]|0}if(!(e&1))return;x=d[b>>0]|0;v=d[h>>0]|0;w=(c[r+(v<<2)>>2]|0)+(c[s+(x<<2)>>2]|0)>>16;x=c[q+(x<<2)>>2]|0;y=d[g>>0]|0;a[f>>0]=a[t+((c[u+(v<<2)>>2]|0)+y)>>0]|0;a[f+1>>0]=a[t+(w+y)>>0]|0;a[f+2>>0]=a[t+(x+y)>>0]|0;return}function ew(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0;f=c[a+484>>2]|0;g=c[f+24>>2]|0;e=a+88|0;if(!(c[e>>2]|0))d=0;else{c[e>>2]=2;d=2}if(!b){c[f+4>>2]=(d|0)==2?20:21;c[f+8>>2]=134;b=c[a+132>>2]|0;if((b|0)>=1){if((b|0)>256){d=c[a>>2]|0;c[d+20>>2]=59;c[d+24>>2]=256;Sb[c[c[a>>2]>>2]&255](a)}}else{d=c[a>>2]|0;c[d+20>>2]=58;c[d+24>>2]=1;Sb[c[c[a>>2]>>2]&255](a)}if((c[e>>2]|0)==2){e=((c[a+112>>2]|0)*6|0)+12|0;d=f+32|0;b=c[d>>2]|0;if(!b){b=Jb[c[(c[a+4>>2]|0)+4>>2]&63](a,1,e)|0;c[d>>2]=b}aP(b|0,0,e|0)|0;if(!(c[f+40>>2]|0))gw(a);c[f+36>>2]=0}}else{c[f+4>>2]=19;c[f+8>>2]=133;c[f+28>>2]=1}b=f+28|0;if(!(c[b>>2]|0))return;aP(c[g>>2]|0,0,4096)|0;aP(c[g+4>>2]|0,0,4096)|0;aP(c[g+8>>2]|0,0,4096)|0;aP(c[g+12>>2]|0,0,4096)|0;aP(c[g+16>>2]|0,0,4096)|0;aP(c[g+20>>2]|0,0,4096)|0;aP(c[g+24>>2]|0,0,4096)|0;aP(c[g+28>>2]|0,0,4096)|0;aP(c[g+32>>2]|0,0,4096)|0;aP(c[g+36>>2]|0,0,4096)|0;aP(c[g+40>>2]|0,0,4096)|0;aP(c[g+44>>2]|0,0,4096)|0;aP(c[g+48>>2]|0,0,4096)|0;aP(c[g+52>>2]|0,0,4096)|0;aP(c[g+56>>2]|0,0,4096)|0;aP(c[g+60>>2]|0,0,4096)|0;aP(c[g+64>>2]|0,0,4096)|0;aP(c[g+68>>2]|0,0,4096)|0;aP(c[g+72>>2]|0,0,4096)|0;aP(c[g+76>>2]|0,0,4096)|0;aP(c[g+80>>2]|0,0,4096)|0;aP(c[g+84>>2]|0,0,4096)|0;aP(c[g+88>>2]|0,0,4096)|0;aP(c[g+92>>2]|0,0,4096)|0;aP(c[g+96>>2]|0,0,4096)|0;aP(c[g+100>>2]|0,0,4096)|0;aP(c[g+104>>2]|0,0,4096)|0;aP(c[g+108>>2]|0,0,4096)|0;aP(c[g+112>>2]|0,0,4096)|0;aP(c[g+116>>2]|0,0,4096)|0;aP(c[g+120>>2]|0,0,4096)|0;aP(c[g+124>>2]|0,0,4096)|0;c[b>>2]=0;return}function fw(a){a=a|0;c[(c[a+484>>2]|0)+28>>2]=1;return}function gw(a){a=a|0;var b=0,d=0,e=0;d=c[a+484>>2]|0;a=Jb[c[c[a+4>>2]>>2]&63](a,1,2044)|0;e=a+1020|0;c[d+40>>2]=e;c[e>>2]=0;c[a+1024>>2]=1;c[a+1016>>2]=-1;c[a+1028>>2]=2;c[a+1012>>2]=-2;c[a+1032>>2]=3;c[a+1008>>2]=-3;c[a+1036>>2]=4;c[a+1004>>2]=-4;c[a+1040>>2]=5;c[a+1e3>>2]=-5;c[a+1044>>2]=6;c[a+996>>2]=-6;c[a+1048>>2]=7;c[a+992>>2]=-7;c[a+1052>>2]=8;c[a+988>>2]=-8;c[a+1056>>2]=9;c[a+984>>2]=-9;c[a+1060>>2]=10;c[a+980>>2]=-10;c[a+1064>>2]=11;c[a+976>>2]=-11;c[a+1068>>2]=12;c[a+972>>2]=-12;c[a+1072>>2]=13;c[a+968>>2]=-13;c[a+1076>>2]=14;c[a+964>>2]=-14;c[a+1080>>2]=15;c[a+960>>2]=-15;a=16;d=16;do{c[e+(a<<2)>>2]=d;c[e+(0-a<<2)>>2]=0-d;a=a+1|0;d=(a&1^1)+d|0}while((a|0)!=48);b=0-d|0;a=48;do{c[e+(a<<2)>>2]=d;c[e+(0-a<<2)>>2]=b;a=a+1|0}while((a|0)!=256);return}function hw(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;j=c[(c[a+484>>2]|0)+24>>2]|0;i=c[a+112>>2]|0;if((g|0)<1|(i|0)==0)return;a=0;do{f=i;h=c[e+(a<<2)>>2]|0;while(1){k=(c[j+((d[h>>0]|0)>>>3<<2)>>2]|0)+((d[h+1>>0]|0)>>>2<<6)+((d[h+2>>0]|0)>>>3<<1)|0;m=b[k>>1]|0;l=m+1<<16>>16;b[k>>1]=l<<16>>16==0?m:l;f=f+-1|0;if(!f)break;else h=h+3|0}a=a+1|0}while((a|0)!=(g|0));return}function iw(d){d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0;y=d+484|0;A=c[y>>2]|0;C=d+136|0;c[C>>2]=c[A+16>>2];s=c[A+20>>2]|0;z=Jb[c[c[d+4>>2]>>2]&63](d,1,s<<5)|0;c[z>>2]=0;c[z+4>>2]=31;c[z+8>>2]=0;c[z+12>>2]=63;c[z+16>>2]=0;c[z+20>>2]=31;nw(d,z);a:do if((s|0)>1){e=1;while(1){if((e<<1|0)>(s|0)){g=0;h=0;i=z;f=0;while(1){j=c[i+24>>2]|0;k=(j|0)>(g|0);f=k?i:f;h=h+1|0;if((h|0)==(e|0)){q=f;break}else{g=k?j:g;i=i+32|0}}}else{f=0;i=0;j=z;g=0;while(1){h=c[j+28>>2]|0;if((h|0)>(f|0)){x=(c[j+24>>2]|0)>0;g=x?j:g;f=x?h:f}i=i+1|0;if((i|0)==(e|0)){q=g;break}else j=j+32|0}}if(!q)break a;r=z+(e<<5)|0;g=q+4|0;c[z+(e<<5)+4>>2]=c[g>>2];h=q+12|0;c[z+(e<<5)+12>>2]=c[h>>2];i=q+20|0;c[z+(e<<5)+20>>2]=c[i>>2];c[r>>2]=c[q>>2];n=q+8|0;f=z+(e<<5)+8|0;c[f>>2]=c[n>>2];p=q+16|0;j=z+(e<<5)+16|0;c[j>>2]=c[p>>2];k=c[g>>2]|0;l=c[q>>2]|0;v=k-l<<4;m=c[h>>2]|0;n=c[n>>2]|0;w=(m-n|0)*12|0;o=c[i>>2]|0;p=c[p>>2]|0;x=(v|0)>(w|0);switch(((o-p<<3|0)>((x?v:w)|0)?2:(x^1)&1)&3){case 0:{t=(l+k|0)/2|0;c[g>>2]=t;f=r;g=t;t=15;break}case 1:{g=(n+m|0)/2|0;c[h>>2]=g;t=15;break}case 2:{g=(p+o|0)/2|0;c[i>>2]=g;f=j;t=15;break}default:{}}if((t|0)==15){t=0;c[f>>2]=g+1}nw(d,q);nw(d,r);e=e+1|0;if((e|0)>=(s|0))break a}}else e=1;while(0);x=0;do{r=c[(c[y>>2]|0)+24>>2]|0;j=c[z+(x<<5)>>2]|0;s=c[z+(x<<5)+4>>2]|0;t=c[z+(x<<5)+8>>2]|0;u=c[z+(x<<5)+12>>2]|0;v=c[z+(x<<5)+16>>2]|0;w=c[z+(x<<5)+20>>2]|0;if((j|0)>(s|0)|(t|0)>(u|0)|(v|0)>(w|0)){i=0;h=0;g=0;f=0}else{i=0;h=0;g=0;f=0;while(1){p=c[r+(j<<2)>>2]|0;q=j<<3|4;o=t;while(1){n=o<<2|2;l=p+(o<<6)+(v<<1)|0;m=v;while(1){D=b[l>>1]|0;k=D&65535;if(D<<16>>16){i=(B(m<<3|4,k)|0)+i|0;h=(B(n,k)|0)+h|0;g=(B(q,k)|0)+g|0;f=f+k|0}if((m|0)<(w|0)){l=l+2|0;m=m+1|0}else break}if((o|0)<(u|0))o=o+1|0;else break}if((j|0)<(s|0))j=j+1|0;else break}}D=f>>1;a[(c[c[C>>2]>>2]|0)+x>>0]=(g+D|0)/(f|0)|0;a[(c[(c[C>>2]|0)+4>>2]|0)+x>>0]=(h+D|0)/(f|0)|0;a[(c[(c[C>>2]|0)+8>>2]|0)+x>>0]=(i+D|0)/(f|0)|0;x=x+1|0}while((x|0)<(e|0));c[d+132>>2]=e;D=c[d>>2]|0;c[D+20>>2]=98;c[D+24>>2]=e;Ub[c[(c[d>>2]|0)+4>>2]&63](d,1);c[A+28>>2]=1;return}function jw(e,f,g,h){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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;i=c[e+484>>2]|0;U=c[i+24>>2]|0;V=c[e+112>>2]|0;O=c[e+336>>2]|0;P=c[i+40>>2]|0;S=c[e+136>>2]|0;Q=c[S>>2]|0;R=c[S+4>>2]|0;S=c[S+8>>2]|0;if((h|0)<=0)return;T=i+36|0;J=i+32|0;K=(V|0)==0;L=V+-1|0;M=L*3|0;N=(V*3|0)+3|0;I=0;do{k=c[f+(I<<2)>>2]|0;j=c[g+(I<<2)>>2]|0;if(!(c[T>>2]|0)){F=3;G=1;i=c[J>>2]|0;l=1}else{F=-3;G=-1;i=(c[J>>2]|0)+(N<<1)|0;j=j+L|0;k=k+M|0;l=0}c[T>>2]=l;if(K){l=0;k=0;j=0}else{A=F+1|0;C=F+2|0;H=B(V,F)|0;p=0;q=0;w=0;x=0;y=0;l=0;D=0;E=0;z=V;m=0;u=i;while(1){v=u;u=u+(F<<1)|0;r=d[O+((c[P+(m+8+(b[u>>1]|0)>>4<<2)>>2]|0)+(d[k>>0]|0))>>0]|0;s=d[O+((c[P+(p+8+(b[v+(A<<1)>>1]|0)>>4<<2)>>2]|0)+(d[k+1>>0]|0))>>0]|0;t=d[O+((c[P+(q+8+(b[v+(C<<1)>>1]|0)>>4<<2)>>2]|0)+(d[k+2>>0]|0))>>0]|0;n=r>>>3;o=s>>>2;p=t>>>3;q=(c[U+(n<<2)>>2]|0)+(o<<6)+(p<<1)|0;m=b[q>>1]|0;if(!(m<<16>>16)){mw(e,n,o,p);m=b[q>>1]|0}m=(m&65535)+-1|0;a[j>>0]=m;o=r-(d[Q+m>>0]|0)|0;n=s-(d[R+m>>0]|0)|0;m=t-(d[S+m>>0]|0)|0;b[v>>1]=(o*3|0)+l;l=(o*5|0)+w|0;b[v+2>>1]=(n*3|0)+D;D=(n*5|0)+x|0;b[v+4>>1]=(m*3|0)+E;E=(m*5|0)+y|0;z=z+-1|0;if(!z)break;else{p=n*7|0;q=m*7|0;w=o;x=n;y=m;m=o*7|0;j=j+G|0;k=k+F|0}}k=D;j=E;i=i+(H<<1)|0}b[i>>1]=l;b[i+2>>1]=k;b[i+4>>1]=j;I=I+1|0}while((I|0)!=(h|0));return}function kw(e,f,g,h){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,s=0;r=c[(c[e+484>>2]|0)+24>>2]|0;s=c[e+112>>2]|0;if((h|0)<1|(s|0)==0)return;o=0;do{n=s;p=c[g+(o<<2)>>2]|0;q=c[f+(o<<2)>>2]|0;while(1){j=(d[q>>0]|0)>>>3;k=(d[q+1>>0]|0)>>>2;l=(d[q+2>>0]|0)>>>3;m=(c[r+(j<<2)>>2]|0)+(k<<6)+(l<<1)|0;i=b[m>>1]|0;if(!(i<<16>>16)){mw(e,j,k,l);i=b[m>>1]|0}a[p>>0]=(i&65535)+255;n=n+-1|0;if(!n)break;else{p=p+1|0;q=q+3|0}}o=o+1|0}while((o|0)!=(h|0));return}function lw(a){a=a|0;return}function mw(e,f,g,h){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,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;N=zb;zb=zb+1408|0;K=N+384|0;L=N+128|0;i=N;M=c[(c[e+484>>2]|0)+24>>2]|0;n=f>>>2<<5;H=n|4;p=g>>>3<<5;I=p|2;r=h>>>2<<5;J=r|4;x=c[e+132>>2]|0;n=n|28;o=n+H>>1;p=p|30;q=p+I>>1;r=r|28;s=r+J>>1;if((x|0)>0){v=c[e+136>>2]|0;t=c[v>>2]|0;u=c[v+4>>2]|0;v=c[v+8>>2]|0;w=2147483647;m=0;do{j=d[t+m>>0]|0;do if((H|0)<=(j|0)){if((n|0)<(j|0)){G=j-n<<1;l=j-H<<1;l=B(l,l)|0;j=B(G,G)|0;break}if((o|0)<(j|0)){l=j-H<<1;l=B(l,l)|0;j=0;break}else{l=j-n<<1;l=B(l,l)|0;j=0;break}}else{G=j-H<<1;l=j-n<<1;l=B(l,l)|0;j=B(G,G)|0}while(0);k=d[u+m>>0]|0;do if((I|0)<=(k|0)){if((p|0)<(k|0)){G=(k-p|0)*3|0;k=(k-I|0)*3|0;j=(B(G,G)|0)+j|0;k=B(k,k)|0;break}if((q|0)<(k|0)){k=(k-I|0)*3|0;k=B(k,k)|0;break}else{k=(k-p|0)*3|0;k=B(k,k)|0;break}}else{G=(k-I|0)*3|0;k=(k-p|0)*3|0;j=(B(G,G)|0)+j|0;k=B(k,k)|0}while(0);l=k+l|0;k=d[v+m>>0]|0;do if((J|0)<=(k|0)){if((r|0)<(k|0)){G=k-r|0;k=k-J|0;j=(B(G,G)|0)+j|0;k=B(k,k)|0;break}if((s|0)<(k|0)){k=k-J|0;k=B(k,k)|0;break}else{k=k-r|0;k=B(k,k)|0;break}}else{G=k-J|0;k=k-r|0;j=(B(G,G)|0)+j|0;k=B(k,k)|0}while(0);G=l+k|0;c[K+(m<<2)>>2]=j;w=(G|0)<(w|0)?G:w;m=m+1|0}while((m|0)!=(x|0));j=0;k=0;do{if((c[K+(k<<2)>>2]|0)<=(w|0)){a[L+j>>0]=k;j=j+1|0}k=k+1|0}while((k|0)!=(x|0))}else j=0;c[K>>2]=2147483647;c[K+4>>2]=2147483647;c[K+8>>2]=2147483647;c[K+12>>2]=2147483647;c[K+16>>2]=2147483647;c[K+20>>2]=2147483647;c[K+24>>2]=2147483647;c[K+28>>2]=2147483647;c[K+32>>2]=2147483647;c[K+36>>2]=2147483647;c[K+40>>2]=2147483647;c[K+44>>2]=2147483647;c[K+48>>2]=2147483647;c[K+52>>2]=2147483647;c[K+56>>2]=2147483647;c[K+60>>2]=2147483647;c[K+64>>2]=2147483647;c[K+68>>2]=2147483647;c[K+72>>2]=2147483647;c[K+76>>2]=2147483647;c[K+80>>2]=2147483647;c[K+84>>2]=2147483647;c[K+88>>2]=2147483647;c[K+92>>2]=2147483647;c[K+96>>2]=2147483647;c[K+100>>2]=2147483647;c[K+104>>2]=2147483647;c[K+108>>2]=2147483647;c[K+112>>2]=2147483647;c[K+116>>2]=2147483647;c[K+120>>2]=2147483647;c[K+124>>2]=2147483647;c[K+128>>2]=2147483647;c[K+132>>2]=2147483647;c[K+136>>2]=2147483647;c[K+140>>2]=2147483647;c[K+144>>2]=2147483647;c[K+148>>2]=2147483647;c[K+152>>2]=2147483647;c[K+156>>2]=2147483647;c[K+160>>2]=2147483647;c[K+164>>2]=2147483647;c[K+168>>2]=2147483647;c[K+172>>2]=2147483647;c[K+176>>2]=2147483647;c[K+180>>2]=2147483647;c[K+184>>2]=2147483647;c[K+188>>2]=2147483647;c[K+192>>2]=2147483647;c[K+196>>2]=2147483647;c[K+200>>2]=2147483647;c[K+204>>2]=2147483647;c[K+208>>2]=2147483647;c[K+212>>2]=2147483647;c[K+216>>2]=2147483647;c[K+220>>2]=2147483647;c[K+224>>2]=2147483647;c[K+228>>2]=2147483647;c[K+232>>2]=2147483647;c[K+236>>2]=2147483647;c[K+240>>2]=2147483647;c[K+244>>2]=2147483647;c[K+248>>2]=2147483647;c[K+252>>2]=2147483647;c[K+256>>2]=2147483647;c[K+260>>2]=2147483647;c[K+264>>2]=2147483647;c[K+268>>2]=2147483647;c[K+272>>2]=2147483647;c[K+276>>2]=2147483647;c[K+280>>2]=2147483647;c[K+284>>2]=2147483647;c[K+288>>2]=2147483647;c[K+292>>2]=2147483647;c[K+296>>2]=2147483647;c[K+300>>2]=2147483647;c[K+304>>2]=2147483647;c[K+308>>2]=2147483647;c[K+312>>2]=2147483647;c[K+316>>2]=2147483647;c[K+320>>2]=2147483647;c[K+324>>2]=2147483647;c[K+328>>2]=2147483647;c[K+332>>2]=2147483647;c[K+336>>2]=2147483647;c[K+340>>2]=2147483647;c[K+344>>2]=2147483647;c[K+348>>2]=2147483647;c[K+352>>2]=2147483647;c[K+356>>2]=2147483647;c[K+360>>2]=2147483647;c[K+364>>2]=2147483647;c[K+368>>2]=2147483647;c[K+372>>2]=2147483647;c[K+376>>2]=2147483647;c[K+380>>2]=2147483647;c[K+384>>2]=2147483647;c[K+388>>2]=2147483647;c[K+392>>2]=2147483647;c[K+396>>2]=2147483647;c[K+400>>2]=2147483647;c[K+404>>2]=2147483647;c[K+408>>2]=2147483647;c[K+412>>2]=2147483647;c[K+416>>2]=2147483647;c[K+420>>2]=2147483647;c[K+424>>2]=2147483647;c[K+428>>2]=2147483647;c[K+432>>2]=2147483647;c[K+436>>2]=2147483647;c[K+440>>2]=2147483647;c[K+444>>2]=2147483647;c[K+448>>2]=2147483647;c[K+452>>2]=2147483647;c[K+456>>2]=2147483647;c[K+460>>2]=2147483647;c[K+464>>2]=2147483647;c[K+468>>2]=2147483647;c[K+472>>2]=2147483647;c[K+476>>2]=2147483647;c[K+480>>2]=2147483647;c[K+484>>2]=2147483647;c[K+488>>2]=2147483647;c[K+492>>2]=2147483647;c[K+496>>2]=2147483647;c[K+500>>2]=2147483647;c[K+504>>2]=2147483647;c[K+508>>2]=2147483647;if((j|0)>0){v=e+136|0;u=0;do{w=a[L+u>>0]|0;r=w&255;x=c[v>>2]|0;q=H-(d[(c[x>>2]|0)+r>>0]|0)|0;s=q<<1;s=B(s,s)|0;G=I-(d[(c[x+4>>2]|0)+r>>0]|0)|0;z=G*3|0;s=(B(z,z)|0)+s|0;r=J-(d[(c[x+8>>2]|0)+r>>0]|0)|0;G=G*72|0;x=G+144|0;z=r<<4;e=z+64|0;y=z+192|0;z=z+320|0;A=G+432|0;C=G+720|0;D=G+1008|0;E=G+1296|0;F=G+1584|0;G=G+1872|0;p=3;q=(q<<6)+256|0;r=s+(B(r,r)|0)|0;s=i;t=K;while(1){n=t+16|0;if((r|0)<(c[t>>2]|0)){c[t>>2]=r;a[s>>0]=w}k=r+e|0;l=t+4|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+1>>0]=w}k=k+y|0;l=t+8|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+2>>0]=w}k=k+z|0;l=t+12|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+3>>0]=w}m=x+r|0;o=t+32|0;if((m|0)<(c[n>>2]|0)){c[n>>2]=m;a[s+4>>0]=w}k=m+e|0;l=t+20|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+5>>0]=w}k=k+y|0;l=t+24|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+6>>0]=w}k=k+z|0;l=t+28|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+7>>0]=w}m=A+m|0;n=t+48|0;if((m|0)<(c[o>>2]|0)){c[o>>2]=m;a[s+8>>0]=w}k=m+e|0;l=t+36|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+9>>0]=w}k=k+y|0;l=t+40|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+10>>0]=w}k=k+z|0;l=t+44|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+11>>0]=w}m=C+m|0;o=t+64|0;if((m|0)<(c[n>>2]|0)){c[n>>2]=m;a[s+12>>0]=w}k=m+e|0;l=t+52|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+13>>0]=w}k=k+y|0;l=t+56|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+14>>0]=w}k=k+z|0;l=t+60|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+15>>0]=w}m=D+m|0;n=t+80|0;if((m|0)<(c[o>>2]|0)){c[o>>2]=m;a[s+16>>0]=w}k=m+e|0;l=t+68|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+17>>0]=w}k=k+y|0;l=t+72|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+18>>0]=w}k=k+z|0;l=t+76|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+19>>0]=w}m=E+m|0;o=t+96|0;if((m|0)<(c[n>>2]|0)){c[n>>2]=m;a[s+20>>0]=w}k=m+e|0;l=t+84|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+21>>0]=w}k=k+y|0;l=t+88|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+22>>0]=w}k=k+z|0;l=t+92|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+23>>0]=w}m=F+m|0;n=t+112|0;if((m|0)<(c[o>>2]|0)){c[o>>2]=m;a[s+24>>0]=w}k=m+e|0;l=t+100|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+25>>0]=w}k=k+y|0;l=t+104|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+26>>0]=w}k=k+z|0;l=t+108|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+27>>0]=w}k=G+m|0;if((k|0)<(c[n>>2]|0)){c[n>>2]=k;a[s+28>>0]=w}k=k+e|0;l=t+116|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+29>>0]=w}k=k+y|0;l=t+120|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+30>>0]=w}k=k+z|0;l=t+124|0;if((k|0)<(c[l>>2]|0)){c[l>>2]=k;a[s+31>>0]=w}r=r+q|0;if(!p)break;else{p=p+-1|0;q=q+512|0;s=s+32|0;t=t+128|0}}u=u+1|0}while((u|0)!=(j|0))}s=f&-4;t=g&-8;l=h&-4;m=t|1;n=t|2;o=t|3;p=t|4;q=t|5;r=t|6;k=g|7;j=0;while(1){g=M+(j+s<<2)|0;h=c[g>>2]|0;L=h+(t<<6)+(l<<1)|0;b[L>>1]=(d[i>>0]|0)+1;b[L+2>>1]=(d[i+1>>0]|0)+1;b[L+4>>1]=(d[i+2>>0]|0)+1;b[L+6>>1]=(d[i+3>>0]|0)+1;L=h+(m<<6)+(l<<1)|0;b[L>>1]=(d[i+4>>0]|0)+1;b[L+2>>1]=(d[i+5>>0]|0)+1;b[L+4>>1]=(d[i+6>>0]|0)+1;b[L+6>>1]=(d[i+7>>0]|0)+1;L=h+(n<<6)+(l<<1)|0;b[L>>1]=(d[i+8>>0]|0)+1;b[L+2>>1]=(d[i+9>>0]|0)+1;b[L+4>>1]=(d[i+10>>0]|0)+1;b[L+6>>1]=(d[i+11>>0]|0)+1;h=h+(o<<6)+(l<<1)|0;b[h>>1]=(d[i+12>>0]|0)+1;b[h+2>>1]=(d[i+13>>0]|0)+1;b[h+4>>1]=(d[i+14>>0]|0)+1;b[h+6>>1]=(d[i+15>>0]|0)+1;g=c[g>>2]|0;h=g+(p<<6)+(l<<1)|0;b[h>>1]=(d[i+16>>0]|0)+1;b[h+2>>1]=(d[i+17>>0]|0)+1;b[h+4>>1]=(d[i+18>>0]|0)+1;b[h+6>>1]=(d[i+19>>0]|0)+1;h=g+(q<<6)+(l<<1)|0;b[h>>1]=(d[i+20>>0]|0)+1;b[h+2>>1]=(d[i+21>>0]|0)+1;b[h+4>>1]=(d[i+22>>0]|0)+1;b[h+6>>1]=(d[i+23>>0]|0)+1;h=g+(r<<6)+(l<<1)|0;b[h>>1]=(d[i+24>>0]|0)+1;b[h+2>>1]=(d[i+25>>0]|0)+1;b[h+4>>1]=(d[i+26>>0]|0)+1;b[h+6>>1]=(d[i+27>>0]|0)+1;g=g+(k<<6)+(l<<1)|0;b[g>>1]=(d[i+28>>0]|0)+1;b[g+2>>1]=(d[i+29>>0]|0)+1;b[g+4>>1]=(d[i+30>>0]|0)+1;b[g+6>>1]=(d[i+31>>0]|0)+1;j=j+1|0;if((j|0)==4)break;else i=i+32|0}zb=N;return} function mO(b,d,e,f,g,h,i,j){b=b|0;d=d|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;o=zb;zb=zb+16|0;n=o;if((-18-d|0)>>>0>>0)eO(b);if((a[b+11>>0]|0)<0)m=c[b>>2]|0;else m=b;if(d>>>0<2147483623){k=e+d|0;l=d<<1;k=k>>>0>>0?l:k;k=k>>>0<11?11:k+16&-16}else k=-17;l=tB(k)|0;if(g|0)VD(l,m,g)|0;if(i|0)VD(l+g|0,j,i)|0;f=f-h|0;e=f-g|0;if(e|0)VD(l+g+i|0,m+g+h|0,e)|0;e=d+1|0;if((e|0)!=11)Pf(m,e);c[b>>2]=l;c[b+8>>2]=k|-2147483648;i=f+i|0;c[b+4>>2]=i;a[n>>0]=0;bg(l+i|0,n);zb=o;return}function nO(a,b){a=a|0;b=b|0;return kO(a,b,Yf(b)|0)|0}function oO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;g=j;h=b+11|0;f=a[h>>0]|0;i=f<<24>>24<0;if(i)f=c[b+4>>2]|0;else f=f&255;do if(f>>>0>=d>>>0)if(i){i=(c[b>>2]|0)+d|0;a[g>>0]=0;bg(i,g);c[b+4>>2]=d;break}else{a[g>>0]=0;bg(b+d|0,g);a[h>>0]=d;break}else pO(b,d-f|0,e)|0;while(0);zb=j;return}function pO(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;k=zb;zb=zb+16|0;i=k;if(d|0){j=b+11|0;f=a[j>>0]|0;if(f<<24>>24<0){h=c[b+4>>2]|0;g=(c[b+8>>2]&2147483647)+-1|0}else{h=f&255;g=10}if((g-h|0)>>>0>>0){qO(b,g,h+d-g|0,h,h,0,0);f=a[j>>0]|0}if(f<<24>>24<0)g=c[b>>2]|0;else g=b;iO(g+h|0,d,e)|0;f=h+d|0;if((a[j>>0]|0)<0)c[b+4>>2]=f;else a[j>>0]=f;a[i>>0]=0;bg(g+f|0,i)}zb=k;return b|0}function qO(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0;if((-17-d|0)>>>0>>0)eO(b);if((a[b+11>>0]|0)<0)l=c[b>>2]|0;else l=b;if(d>>>0<2147483623){j=e+d|0;k=d<<1;j=j>>>0>>0?k:j;j=j>>>0<11?11:j+16&-16}else j=-17;k=tB(j)|0;if(g|0)VD(k,l,g)|0;e=f-h-g|0;if(e|0)VD(k+g+i|0,l+g+h|0,e)|0;e=d+1|0;if((e|0)!=11)Pf(l,e);c[b>>2]=k;c[b+8>>2]=j|-2147483648;return}function rO(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;k=zb;zb=zb+16|0;i=k;j=b+11|0;f=a[j>>0]|0;g=f<<24>>24<0;if(g){h=c[b+4>>2]|0;f=(c[b+8>>2]&2147483647)+-1|0}else{h=f&255;f=10}if((f-h|0)>>>0>=e>>>0){if(e|0){if(g)g=c[b>>2]|0;else g=b;VD(g+h|0,d,e)|0;f=h+e|0;if((a[j>>0]|0)<0)c[b+4>>2]=f;else a[j>>0]=f;a[i>>0]=0;bg(g+f|0,i)}}else mO(b,f,h+e-f|0,h,h,0,e,d);zb=k;return b|0}function sO(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;j=zb;zb=zb+16|0;h=j;i=j+1|0;a[h>>0]=d;g=b+11|0;d=a[g>>0]|0;e=d<<24>>24<0;if(e){f=c[b+4>>2]|0;d=(c[b+8>>2]&2147483647)+-1|0}else{f=d&255;d=10}if((f|0)==(d|0)){qO(b,d,1,d,d,0,0);if((a[g>>0]|0)<0)e=8;else e=7}else if(e)e=8;else e=7;if((e|0)==7){a[g>>0]=f+1;d=b}else if((e|0)==8){d=c[b>>2]|0;c[b+4>>2]=f+1}b=d+f|0;bg(b,h);a[i>>0]=0;bg(b+1|0,i);zb=j;return}function tO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i;if(e>>>0>1073741807)eO(b);do if(e>>>0>=2){g=e+4&-4;if(g>>>0>1073741823)ua();else{f=tB(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=e;break}}else{a[b+8+3>>0]=e;f=b}while(0);kE(f,d,e)|0;c[h>>2]=0;JF(f+(e<<2)|0,h);zb=i;return}function uO(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0;i=zb;zb=zb+16|0;h=i;if(d>>>0>1073741807)eO(b);do if(d>>>0>=2){g=d+4&-4;if(g>>>0>1073741823)ua();else{f=tB(g<<2)|0;c[b>>2]=f;c[b+8>>2]=g|-2147483648;c[b+4>>2]=d;break}}else{a[b+8+3>>0]=d;f=b}while(0);vO(f,d,e)|0;c[h>>2]=0;JF(f+(d<<2)|0,h);zb=i;return}function vO(a,b,c){a=a|0;b=b|0;c=c|0;if(b)uA(a,c,b)|0;return a|0}function wO(b){b=b|0;var d=0;d=b+8|0;if((a[d+3>>0]|0)<0)Pf(c[b>>2]|0,c[d>>2]<<2);return}function xO(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;l=zb;zb=zb+16|0;j=l;f=b+8|0;k=f+3|0;h=a[k>>0]|0;i=h<<24>>24<0;if(i)g=(c[f>>2]&2147483647)+-1|0;else g=1;do if(g>>>0>=e>>>0){if(i)f=c[b>>2]|0;else f=b;yO(f,d,e)|0;c[j>>2]=0;JF(f+(e<<2)|0,j);if((a[k>>0]|0)<0){c[b+4>>2]=e;break}else{a[k>>0]=e;break}}else{if(i)f=c[b+4>>2]|0;else f=h&255;zO(b,g,e-g|0,f,0,f,e,d)}while(0);zb=l;return b|0}function yO(a,b,c){a=a|0;b=b|0;c=c|0;if(c)vA(a,b,c)|0;return a|0}function zO(b,d,e,f,g,h,i,j){b=b|0;d=d|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,p=0;p=zb;zb=zb+16|0;o=p;if((1073741806-d|0)>>>0>>0)eO(b);l=b+8|0;if((a[l+3>>0]|0)<0)n=c[b>>2]|0;else n=b;if(d>>>0<536870887){e=e+d|0;k=d<<1;e=e>>>0>>0?k:e;e=e>>>0<2?2:e+4&-4;if(e>>>0>1073741823)ua();else m=e}else m=1073741807;k=tB(m<<2)|0;if(g|0)kE(k,n,g)|0;if(i|0)kE(k+(g<<2)|0,j,i)|0;f=f-h|0;e=f-g|0;if(e|0)kE(k+(g<<2)+(i<<2)|0,n+(g<<2)+(h<<2)|0,e)|0;e=d+1|0;if((e|0)!=2)Pf(n,e<<2);c[b>>2]=k;c[l>>2]=m|-2147483648;i=f+i|0;c[b+4>>2]=i;c[o>>2]=0;JF(k+(i<<2)|0,o);zb=p;return}function AO(a,b){a=a|0;b=b|0;return xO(a,b,JI(b)|0)|0}function BO(b,d,e,f,g,h,i){b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if((1073741807-d|0)>>>0>>0)eO(b);m=b+8|0;if((a[m+3>>0]|0)<0)l=c[b>>2]|0;else l=b;if(d>>>0<536870887){e=e+d|0;j=d<<1;e=e>>>0>>0?j:e;e=e>>>0<2?2:e+4&-4;if(e>>>0>1073741823)ua();else k=e}else k=1073741807;j=tB(k<<2)|0;if(g|0)kE(j,l,g)|0;e=f-h-g|0;if(e|0)kE(j+(g<<2)+(i<<2)|0,l+(g<<2)+(h<<2)|0,e)|0;e=d+1|0;if((e|0)!=2)Pf(l,e<<2);c[b>>2]=j;c[m>>2]=k|-2147483648;return}function CO(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;l=zb;zb=zb+16|0;j=l;g=b+8|0;k=g+3|0;f=a[k>>0]|0;i=f<<24>>24<0;if(i){h=c[b+4>>2]|0;f=(c[g>>2]&2147483647)+-1|0}else{h=f&255;f=1}if((f-h|0)>>>0>=e>>>0){if(e|0){if(i)g=c[b>>2]|0;else g=b;kE(g+(h<<2)|0,d,e)|0;f=h+e|0;if((a[k>>0]|0)<0)c[b+4>>2]=f;else a[k>>0]=f;c[j>>2]=0;JF(g+(f<<2)|0,j)}}else zO(b,f,h+e-f|0,h,h,0,e,d);zb=l;return b|0}function DO(b,d){b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0;k=zb;zb=zb+16|0;i=k;j=k+4|0;c[i>>2]=d;e=b+8|0;h=e+3|0;d=a[h>>0]|0;f=d<<24>>24<0;if(f){g=c[b+4>>2]|0;d=(c[e>>2]&2147483647)+-1|0}else{g=d&255;d=1}if((g|0)==(d|0)){BO(b,d,1,d,d,0,0);if((a[h>>0]|0)<0)e=8;else e=7}else if(f)e=8;else e=7;if((e|0)==7){a[h>>0]=g+1;d=b}else if((e|0)==8){d=c[b>>2]|0;c[b+4>>2]=g+1}b=d+(g<<2)|0;JF(b,i);c[j>>2]=0;JF(b+4|0,j);zb=k;return}function EO(a){a=a|0;ua()}function FO(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;w=zb;zb=zb+16|0;n=w;do if(a>>>0<245){k=a>>>0<11?16:a+11&-8;a=k>>>3;m=c[14291]|0;d=m>>>a;if(d&3|0){b=(d&1^1)+a|0;a=57204+(b<<1<<2)|0;d=a+8|0;e=c[d>>2]|0;f=e+8|0;g=c[f>>2]|0;if((g|0)==(a|0))c[14291]=m&~(1<>2]=a;c[d>>2]=g}v=b<<3;c[e+4>>2]=v|3;v=e+v+4|0;c[v>>2]=c[v>>2]|1;v=f;zb=w;return v|0}l=c[14293]|0;if(k>>>0>l>>>0){if(d|0){b=2<>>12&16;b=b>>>i;d=b>>>5&8;b=b>>>d;g=b>>>2&4;b=b>>>g;a=b>>>1&2;b=b>>>a;e=b>>>1&1;e=(d|i|g|a|e)+(b>>>e)|0;b=57204+(e<<1<<2)|0;a=b+8|0;g=c[a>>2]|0;i=g+8|0;d=c[i>>2]|0;if((d|0)==(b|0)){a=m&~(1<>2]=b;c[a>>2]=d;a=m}v=e<<3;h=v-k|0;c[g+4>>2]=k|3;f=g+k|0;c[f+4>>2]=h|1;c[g+v>>2]=h;if(l|0){e=c[14296]|0;b=l>>>3;d=57204+(b<<1<<2)|0;b=1<>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[14293]=h;c[14296]=f;v=i;zb=w;return v|0}g=c[14292]|0;if(g){d=(g&0-g)+-1|0;f=d>>>12&16;d=d>>>f;e=d>>>5&8;d=d>>>e;h=d>>>2&4;d=d>>>h;i=d>>>1&2;d=d>>>i;j=d>>>1&1;j=c[57468+((e|f|h|i|j)+(d>>>j)<<2)>>2]|0;d=j;i=j;j=(c[j+4>>2]&-8)-k|0;while(1){a=c[d+16>>2]|0;if(!a){a=c[d+20>>2]|0;if(!a)break}h=(c[a+4>>2]&-8)-k|0;f=h>>>0>>0;d=a;i=f?a:i;j=f?h:j}h=i+k|0;if(h>>>0>i>>>0){f=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){d=0;break}}while(1){e=b+20|0;d=c[e>>2]|0;if(!d){e=b+16|0;d=c[e>>2]|0;if(!d)break;else{b=d;a=e}}else{b=d;a=e}}c[a>>2]=0;d=b}else{d=c[i+8>>2]|0;c[d+12>>2]=b;c[b+8>>2]=d;d=b}while(0);do if(f|0){b=c[i+28>>2]|0;a=57468+(b<<2)|0;if((i|0)==(c[a>>2]|0)){c[a>>2]=d;if(!d){c[14292]=g&~(1<>2]|0)==(i|0)?v:f+20|0)>>2]=d;if(!d)break}c[d+24>>2]=f;b=c[i+16>>2]|0;if(b|0){c[d+16>>2]=b;c[b+24>>2]=d}b=c[i+20>>2]|0;if(b|0){c[d+20>>2]=b;c[b+24>>2]=d}}while(0);if(j>>>0<16){v=j+k|0;c[i+4>>2]=v|3;v=i+v+4|0;c[v>>2]=c[v>>2]|1}else{c[i+4>>2]=k|3;c[h+4>>2]=j|1;c[h+j>>2]=j;if(l|0){e=c[14296]|0;b=l>>>3;d=57204+(b<<1<<2)|0;b=1<>2]|0}c[a>>2]=e;c[b+12>>2]=e;c[e+8>>2]=b;c[e+12>>2]=d}c[14293]=j;c[14296]=h}v=i+8|0;zb=w;return v|0}else m=k}else m=k}else m=k}else if(a>>>0<=4294967231){a=a+11|0;k=a&-8;e=c[14292]|0;if(e){f=0-k|0;a=a>>>8;if(a)if(k>>>0>16777215)j=31;else{m=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;j=14-(i|m|j)+(q<>>15)|0;j=k>>>(j+7|0)&1|j<<1}else j=0;d=c[57468+(j<<2)>>2]|0;a:do if(!d){d=0;a=0;q=61}else{a=0;i=k<<((j|0)==31?0:25-(j>>>1)|0);g=0;while(1){h=(c[d+4>>2]&-8)-k|0;if(h>>>0>>0)if(!h){a=d;f=0;q=65;break a}else{a=d;f=h}q=c[d+20>>2]|0;d=c[d+16+(i>>>31<<2)>>2]|0;g=(q|0)==0|(q|0)==(d|0)?g:q;if(!d){d=g;q=61;break}else i=i<<1}}while(0);if((q|0)==61){if((d|0)==0&(a|0)==0){a=2<>>12&16;m=m>>>h;g=m>>>5&8;m=m>>>g;i=m>>>2&4;m=m>>>i;j=m>>>1&2;m=m>>>j;d=m>>>1&1;a=0;d=c[57468+((g|h|i|j|d)+(m>>>d)<<2)>>2]|0}if(!d){i=a;h=f}else q=65}if((q|0)==65){g=d;while(1){m=(c[g+4>>2]&-8)-k|0;d=m>>>0>>0;f=d?m:f;a=d?g:a;d=c[g+16>>2]|0;if(!d)d=c[g+20>>2]|0;if(!d){i=a;h=f;break}else g=d}}if(((i|0)!=0?h>>>0<((c[14293]|0)-k|0)>>>0:0)?(l=i+k|0,l>>>0>i>>>0):0){g=c[i+24>>2]|0;b=c[i+12>>2]|0;do if((b|0)==(i|0)){a=i+20|0;b=c[a>>2]|0;if(!b){a=i+16|0;b=c[a>>2]|0;if(!b){b=0;break}}while(1){f=b+20|0;d=c[f>>2]|0;if(!d){f=b+16|0;d=c[f>>2]|0;if(!d)break;else{b=d;a=f}}else{b=d;a=f}}c[a>>2]=0}else{v=c[i+8>>2]|0;c[v+12>>2]=b;c[b+8>>2]=v}while(0);do if(g){a=c[i+28>>2]|0;d=57468+(a<<2)|0;if((i|0)==(c[d>>2]|0)){c[d>>2]=b;if(!b){e=e&~(1<>2]|0)==(i|0)?v:g+20|0)>>2]=b;if(!b)break}c[b+24>>2]=g;a=c[i+16>>2]|0;if(a|0){c[b+16>>2]=a;c[a+24>>2]=b}a=c[i+20>>2]|0;if(a){c[b+20>>2]=a;c[a+24>>2]=b}}while(0);b:do if(h>>>0<16){v=h+k|0;c[i+4>>2]=v|3;v=i+v+4|0;c[v>>2]=c[v>>2]|1}else{c[i+4>>2]=k|3;c[l+4>>2]=h|1;c[l+h>>2]=h;b=h>>>3;if(h>>>0<256){d=57204+(b<<1<<2)|0;a=c[14291]|0;b=1<>2]|0}c[a>>2]=l;c[b+12>>2]=l;c[l+8>>2]=b;c[l+12>>2]=d;break}b=h>>>8;if(b)if(h>>>0>16777215)d=31;else{u=(b+1048320|0)>>>16&8;v=b<>>16&4;v=v<>>16&2;d=14-(t|u|d)+(v<>>15)|0;d=h>>>(d+7|0)&1|d<<1}else d=0;b=57468+(d<<2)|0;c[l+28>>2]=d;a=l+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break}b=c[b>>2]|0;c:do if((c[b+4>>2]&-8|0)!=(h|0)){e=h<<((d|0)==31?0:25-(d>>>1)|0);while(1){d=b+16+(e>>>31<<2)|0;a=c[d>>2]|0;if(!a)break;if((c[a+4>>2]&-8|0)==(h|0)){b=a;break c}else{e=e<<1;b=a}}c[d>>2]=l;c[l+24>>2]=b;c[l+12>>2]=l;c[l+8>>2]=l;break b}while(0);u=b+8|0;v=c[u>>2]|0;c[v+12>>2]=l;c[u>>2]=l;c[l+8>>2]=v;c[l+12>>2]=b;c[l+24>>2]=0}while(0);v=i+8|0;zb=w;return v|0}else m=k}else m=k}else m=-1;while(0);d=c[14293]|0;if(d>>>0>=m>>>0){b=d-m|0;a=c[14296]|0;if(b>>>0>15){v=a+m|0;c[14296]=v;c[14293]=b;c[v+4>>2]=b|1;c[a+d>>2]=b;c[a+4>>2]=m|3}else{c[14293]=0;c[14296]=0;c[a+4>>2]=d|3;v=a+d+4|0;c[v>>2]=c[v>>2]|1}v=a+8|0;zb=w;return v|0}h=c[14294]|0;if(h>>>0>m>>>0){t=h-m|0;c[14294]=t;v=c[14297]|0;u=v+m|0;c[14297]=u;c[u+4>>2]=t|1;c[v+4>>2]=m|3;v=v+8|0;zb=w;return v|0}if(!(c[14409]|0)){c[14411]=4096;c[14410]=4096;c[14412]=-1;c[14413]=-1;c[14414]=0;c[14402]=0;c[14409]=n&-16^1431655768;a=4096}else a=c[14411]|0;i=m+48|0;j=m+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=m>>>0){v=0;zb=w;return v|0}a=c[14401]|0;if(a|0?(l=c[14399]|0,n=l+k|0,n>>>0<=l>>>0|n>>>0>a>>>0):0){v=0;zb=w;return v|0}d:do if(!(c[14402]&4)){d=c[14297]|0;e:do if(d){e=57612;while(1){n=c[e>>2]|0;if(n>>>0<=d>>>0?(n+(c[e+4>>2]|0)|0)>>>0>d>>>0:0)break;a=c[e+8>>2]|0;if(!a){q=128;break e}else e=a}b=g-h&f;if(b>>>0<2147483647){a=LO(b)|0;if((a|0)==((c[e>>2]|0)+(c[e+4>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;q=145;break d}}else{e=a;q=136}}else b=0}else q=128;while(0);do if((q|0)==128){d=LO(0)|0;if((d|0)!=(-1|0)?(b=d,o=c[14410]|0,p=o+-1|0,b=((p&b|0)==0?0:(p+b&0-o)-b|0)+k|0,o=c[14399]|0,p=b+o|0,b>>>0>m>>>0&b>>>0<2147483647):0){n=c[14401]|0;if(n|0?p>>>0<=o>>>0|p>>>0>n>>>0:0){b=0;break}a=LO(b)|0;if((a|0)==(d|0)){h=b;g=d;q=145;break d}else{e=a;q=136}}else b=0}while(0);do if((q|0)==136){d=0-b|0;if(!(i>>>0>b>>>0&(b>>>0<2147483647&(e|0)!=(-1|0))))if((e|0)==(-1|0)){b=0;break}else{h=b;g=e;q=145;break d}a=c[14411]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=e;q=145;break d}if((LO(a)|0)==(-1|0)){LO(d)|0;b=0;break}else{h=a+b|0;g=e;q=145;break d}}while(0);c[14402]=c[14402]|4;q=143}else{b=0;q=143}while(0);if(((q|0)==143?k>>>0<2147483647:0)?(t=LO(k)|0,p=LO(0)|0,r=p-t|0,s=r>>>0>(m+40|0)>>>0,!((t|0)==(-1|0)|s^1|t>>>0