From 0a2b5fbdfe9c0e2f7762456153768dd7090159a5 Mon Sep 17 00:00:00 2001 From: Igor Zhukov Date: Fri, 4 Aug 2017 23:09:19 +0200 Subject: [PATCH] Make it work with recordjs File is now encoded to Opus, like in other apps --- app/index.html | 2 + app/js/controllers.js | 2 - app/js/directives.js | 134 +++++++------ app/less/mobile.less | 31 +-- app/partials/mobile/im.html | 2 +- app/vendor/recorderjs/encoder_worker.js | 18 ++ app/vendor/recorderjs/recorder.js | 242 ++++++++++++++++++++++++ app/vendor/recorderjs/recorder.min.js | 1 + app/webogram.appcache | 2 +- 9 files changed, 345 insertions(+), 89 deletions(-) create mode 100755 app/vendor/recorderjs/encoder_worker.js create mode 100755 app/vendor/recorderjs/recorder.js create mode 100755 app/vendor/recorderjs/recorder.min.js diff --git a/app/index.html b/app/index.html index d3a49705..5c800795 100644 --- a/app/index.html +++ b/app/index.html @@ -78,6 +78,8 @@ + + diff --git a/app/js/controllers.js b/app/js/controllers.js index 8431400b..ff175065 100644 --- a/app/js/controllers.js +++ b/app/js/controllers.js @@ -518,8 +518,6 @@ angular.module('myApp.controllers', ['myApp.i18n']) skipped: false } - $scope.voiceRecorder = { time : '', recording : null, processing : false }; - $scope.openSettings = function () { $modal.open({ templateUrl: templateUrl('settings_modal'), diff --git a/app/js/directives.js b/app/js/directives.js index 69369de6..c5c4a11e 100755 --- a/app/js/directives.js +++ b/app/js/directives.js @@ -1547,7 +1547,7 @@ angular.module('myApp.directives', ['myApp.filters']) } }) - .directive('mySendForm', function (_, $q, $timeout, $compile, $modalStack, $http, $interpolate, Storage, AppStickersManager, AppDocsManager, ErrorService, AppInlineBotsManager, FileManager, shouldFocusOnInteraction) { + .directive('mySendForm', function (_, $q, $timeout, $interval, $window, $compile, $modalStack, $http, $interpolate, Storage, AppStickersManager, AppDocsManager, ErrorService, AppInlineBotsManager, FileManager, shouldFocusOnInteraction) { return { link: link, scope: { @@ -1564,17 +1564,25 @@ angular.module('myApp.directives', ['myApp.filters']) var fileSelects = $('input', element) var dropbox = $('.im_send_dropbox_wrap', element)[0] var messageFieldWrap = $('.im_send_field_wrap', element)[0] + var sendFieldPanel = $('.im_send_field_panel', element)[0] var dragStarted var dragTimeout var submitBtn = $('.im_submit', element)[0] - var voiceRecord = $('.im_record', element); + var voiceRecordBtn = $('.im_record', element)[0] var stickerImageCompiled = $compile('') var cachedStickerImages = {} - var audioRecorder = null; - var audioPromise = null; - var audioStream = null; + var voiceRecorder = null + var voiceRecordSuccess = false + var voiceRecordSupported = Recorder.isRecordingSupported() + var voiceRecordDurationInterval = null + var voiceRecorderPromise = null + if (voiceRecordSupported) { + $(sendFieldPanel).addClass('im_record_supported') + } + + $scope.voiceRecorder = {duration: 0, recording: false, processing: false} var emojiTooltip = new EmojiTooltip(emojiButton, { getStickers: function (callback) { @@ -1688,82 +1696,82 @@ angular.module('myApp.directives', ['myApp.filters']) }) }) - navigator.getUserMedia = ( navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia); - - voiceRecord.on('touchstart', function(e) { - if ($scope.$parent.$parent.voiceRecorder.processing) { return; } + $(voiceRecordBtn).on('contextmenu', cancelEvent) - navigator.getUserMedia({audio : true}, function(stream){ - var start = Date.now(); - var touch = null; - - audioPromise = null; - audioStream = stream; - audioRecorder = new MediaRecorder(stream); - - var interval = setInterval(function(){ - var time = (new Date()); + $(voiceRecordBtn).on('touchstart', function(e) { + if ($scope.voiceRecorder.processing) { + return + } - time.setTime(Date.now() - start); + voiceRecorderPromise = null - $scope.$apply(function(){ - $scope.$parent.$parent.voiceRecorder.time = (time.getMinutes() < 10 ? '0' : '') + time.getMinutes() + ':' + (time.getSeconds() < 10 ? '0' : '') + time.getSeconds(); - }); - }, 1000); + voiceRecorder = new Recorder({ + monitorGain: 0, + numberOfChannels: 1, + bitRate: 64000, + encoderSampleRate: 48000, + encoderPath: 'vendor/recorderjs/encoder_worker.js' + }) - $scope.$apply(function(){ - $scope.$parent.$parent.voiceRecorder.time = '00:00'; - $scope.$parent.$parent.voiceRecorder.recording = interval; - }); + voiceRecorder.addEventListener('start', function(e) { + var startTime = tsNow(true) - audioRecorder.start(); + voiceRecordSuccess = false - console.log('recording now!'); + voiceRecordDurationInterval = $interval(function() { + $scope.voiceRecorder.duration = tsNow(true) - startTime + }, 1000) - }, function(e){ - console.error(e); - }); - }); + $scope.$apply(function() { + $scope.voiceRecorder.recording = true + }) - voiceRecord.on('click', function(){ - if (audioPromise) { - $scope.$parent.$parent.voiceRecorder.processing = true; + console.warn(dT(), 'recording now!') + }) - audioPromise.then(function(e) { - var blob = e.data; + voiceRecorder.addEventListener('streamReady', function(e) { + voiceRecorder.start() + }) - console.log(blob); - $scope.draftMessage.files = [blob]; - $scope.draftMessage.isMedia = true; + voiceRecorder.initStream() - $scope.$parent.$parent.voiceRecorder.processing = false; + $($window).one('touchend', function() { + var deferred = $q.defer() + voiceRecorder.addEventListener('dataAvailable', function(e) { + var blob = blobConstruct([e.detail], 'audio/ogg') + deferred.resolve(blob) + }) + voiceRecorderPromise = deferred.promise + voiceRecorder.stop() - audioPromise = null; - }); - } - }); + $interval.cancel(voiceRecordDurationInterval) - $($window).on('touchend', function(){ - if (audioStream && audioRecorder) { - audioPromise = new Promise(function(resolve) { - audioRecorder.ondataavailable = resolve; - }); + $scope.$apply(function() { + $scope.voiceRecorder.recording = false + }) + }) + }) - audioRecorder.stop(); - audioStream.stop(); + $(voiceRecordBtn).on('touchend', function(e) { + voiceRecordSuccess = true + $timeout(function () { + if (voiceRecorderPromise) { + $scope.voiceRecorder.processing = true - audioRecorder = null; - audioStream = null; + voiceRecorderPromise.then(function(blob) { + console.warn(dT(), 'got audio', blob) + $scope.draftMessage.files = [blob] + $scope.draftMessage.isMedia = true - clearInterval($scope.$parent.$parent.voiceRecorder.recording); + $scope.voiceRecorder.processing = false - $scope.$apply(function(){ - $scope.$parent.$parent.voiceRecorder.recording = null; - }); - } - }); + voiceRecorderPromise = null + }) + } + }, 100) + }) - var sendOnEnter = true; + var sendOnEnter = true function updateSendSettings () { Storage.get('send_ctrlenter').then(function (sendOnCtrl) { sendOnEnter = !sendOnCtrl diff --git a/app/less/mobile.less b/app/less/mobile.less index eace37c3..53d3b5a5 100644 --- a/app/less/mobile.less +++ b/app/less/mobile.less @@ -1431,7 +1431,7 @@ a.im_message_fwd_author { background-position: -12px -285px; } -.im_attach, .im_record { +.im_attach { cursor: pointer; display: none; overflow: hidden; @@ -1442,6 +1442,7 @@ a.im_message_fwd_author { width: 50px; height: 32px; padding: 3px 13px 4px 16px; + right: 0; &:active { .icon-paperclip { @@ -1451,29 +1452,15 @@ a.im_message_fwd_author { } } -.non_ffos { - .im_attach { - right: 0; - } -} - .im_record { - right: 0; - user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; -} - -.ffos { - .im_send_form_empty { - .im_send_field_wrap { - margin-right: 85px; - } + right: 0; + user-select: none; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; - .im_record { - display: block; - } + .im_record_supported .im_send_form_empty & { + display: block; } } diff --git a/app/partials/mobile/im.html b/app/partials/mobile/im.html index 778a2eb1..3d7e3732 100644 --- a/app/partials/mobile/im.html +++ b/app/partials/mobile/im.html @@ -163,7 +163,7 @@
-
{{voiceRecorder.time}}
+
diff --git a/app/vendor/recorderjs/encoder_worker.js b/app/vendor/recorderjs/encoder_worker.js new file mode 100755 index 00000000..3b9072c2 --- /dev/null +++ b/app/vendor/recorderjs/encoder_worker.js @@ -0,0 +1,18 @@ +var Module;if(!Module)Module=(typeof Module!=="undefined"?Module:null)||{};var moduleOverrides={};for(var key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){if(!Module["print"])Module["print"]=console.log;if(!Module["printErr"])Module["printErr"]=console.warn;var nodeFS;var nodePath;Module["read"]=function read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);var ret=nodeFS["readFileSync"](filename);return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};Module["load"]=function load(f){globalEval(read(f))};if(!Module["thisProgram"]){if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}else{Module["thisProgram"]="unknown-program"}}Module["arguments"]=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(!Module["print"])Module["print"]=print;if(typeof printErr!="undefined")Module["printErr"]=printErr;if(typeof read!="undefined"){Module["read"]=read}else{Module["read"]=function read(){throw"no read() available"}}Module["readBinary"]=function readBinary(f){if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}var data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return xhr.response}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response)}else{onerror()}};xhr.onerror=onerror;xhr.send(null)};if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof console!=="undefined"){if(!Module["print"])Module["print"]=function print(x){console.log(x)};if(!Module["printErr"])Module["printErr"]=function printErr(x){console.warn(x)}}else{var TRY_USE_DUMP=false;if(!Module["print"])Module["print"]=TRY_USE_DUMP&&typeof dump!=="undefined"?(function(x){dump(x)}):(function(x){})}if(ENVIRONMENT_IS_WORKER){Module["load"]=importScripts}if(typeof Module["setWindowTitle"]==="undefined"){Module["setWindowTitle"]=(function(title){document.title=title})}}else{throw"Unknown runtime environment. Where are we?"}function globalEval(x){abort("NO_DYNAMIC_EXECUTION=1 was set, cannot eval")}if(!Module["load"]&&Module["read"]){Module["load"]=function load(f){globalEval(Module["read"](f))}}if(!Module["print"]){Module["print"]=(function(){})}if(!Module["printErr"]){Module["printErr"]=Module["print"]}if(!Module["arguments"]){Module["arguments"]=[]}if(!Module["thisProgram"]){Module["thisProgram"]="./this.program"}if(!Module["quit"]){Module["quit"]=(function(status,toThrow){throw toThrow})}Module.print=Module["print"];Module.printErr=Module["printErr"];Module["preRun"]=[];Module["postRun"]=[];for(var key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var Runtime={setTempRet0:(function(value){tempRet0=value;return value}),getTempRet0:(function(){return tempRet0}),stackSave:(function(){return STACKTOP}),stackRestore:(function(stackTop){STACKTOP=stackTop}),getNativeTypeSize:(function(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return Runtime.QUANTUM_SIZE}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}),getNativeFieldSize:(function(type){return Math.max(Runtime.getNativeTypeSize(type),Runtime.QUANTUM_SIZE)}),STACK_ALIGN:16,prepVararg:(function(ptr,type){if(type==="double"||type==="i64"){if(ptr&7){assert((ptr&7)===4);ptr+=4}}else{assert((ptr&3)===0)}return ptr}),getAlignSize:(function(type,size,vararg){if(!vararg&&(type=="i64"||type=="double"))return 8;if(!type)return Math.min(size,8);return Math.min(size||(type?Runtime.getNativeFieldSize(type):0),Runtime.QUANTUM_SIZE)}),dynCall:(function(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}),functionPointers:[],addFunction:(function(func){for(var i=0;i>2];var end=(ret+size+15|0)&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}),alignMemory:(function(size,quantum){var ret=size=Math.ceil(size/(quantum?quantum:16))*(quantum?quantum:16);return ret}),makeBigInt:(function(low,high,unsigned){var ret=unsigned?+(low>>>0)+ +(high>>>0)*+4294967296:+(low>>>0)+ +(high|0)*+4294967296;return ret}),GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module["Runtime"]=Runtime;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];if(!func){abort("NO_DYNAMIC_EXECUTION=1 was set, cannot eval")}assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)");return func}var cwrap,ccall;((function(){var JSfuncs={"stackSave":(function(){Runtime.stackSave()}),"stackRestore":(function(){Runtime.stackRestore()}),"arrayToC":(function(arr){var ret=Runtime.stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=Runtime.stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};ccall=function ccallFunc(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}Module["setValue"]=setValue;function getValue(ptr,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":return HEAP8[ptr>>0];case"i8":return HEAP8[ptr>>0];case"i16":return HEAP16[ptr>>1];case"i32":return HEAP32[ptr>>2];case"i64":return HEAP32[ptr>>2];case"float":return HEAPF32[ptr>>2];case"double":return HEAPF64[ptr>>3];default:abort("invalid type for setValue: "+type)}return null}Module["getValue"]=getValue;var ALLOC_NORMAL=0;var ALLOC_STACK=1;var ALLOC_STATIC=2;var ALLOC_DYNAMIC=3;var ALLOC_NONE=4;Module["ALLOC_NORMAL"]=ALLOC_NORMAL;Module["ALLOC_STACK"]=ALLOC_STACK;Module["ALLOC_STATIC"]=ALLOC_STATIC;Module["ALLOC_DYNAMIC"]=ALLOC_DYNAMIC;Module["ALLOC_NONE"]=ALLOC_NONE;function allocate(slab,types,allocator,ptr){var zeroinit,size;if(typeof slab==="number"){zeroinit=true;size=slab}else{zeroinit=false;size=slab.length}var singleType=typeof types==="string"?types:null;var ret;if(allocator==ALLOC_NONE){ret=ptr}else{ret=[typeof _malloc==="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][allocator===undefined?ALLOC_STATIC:allocator](Math.max(size,singleType?1:types.length))}if(zeroinit){var ptr=ret,stop;assert((ret&3)==0);stop=ret+(size&~3);for(;ptr>2]=0}stop=ret+size;while(ptr>0]=0}return ret}if(singleType==="i8"){if(slab.subarray||slab.slice){HEAPU8.set(slab,ret)}else{HEAPU8.set(new Uint8Array(slab),ret)}return ret}var i=0,type,typeSize,previousType;while(i>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return Module["UTF8ToString"](ptr)}Module["Pointer_stringify"]=Pointer_stringify;function AsciiToString(ptr){var str="";while(1){var ch=HEAP8[ptr++>>0];if(!ch)return str;str+=String.fromCharCode(ch)}}Module["AsciiToString"]=AsciiToString;function stringToAscii(str,outPtr){return writeAsciiToMemory(str,outPtr,false)}Module["stringToAscii"]=stringToAscii;var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}Module["UTF8ArrayToString"]=UTF8ArrayToString;function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}Module["UTF8ToString"]=UTF8ToString;function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}Module["stringToUTF8Array"]=stringToUTF8Array;function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}Module["stringToUTF8"]=stringToUTF8;function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}Module["lengthBytesUTF8"]=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){var __cxa_demangle_func=Module["___cxa_demangle"]||Module["__cxa_demangle"];if(__cxa_demangle_func){try{var s=func.substr(1);var len=lengthBytesUTF8(s)+1;var buf=_malloc(len);stringToUTF8(s,buf,len);var status=_malloc(4);var ret=__cxa_demangle_func(buf,0,0,status);if(getValue(status,"i32")===0&&ret){return Pointer_stringify(ret)}}catch(e){}finally{if(buf)_free(buf);if(status)_free(status);if(ret)_free(ret)}return func}Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling");return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}Module["stackTrace"]=stackTrace;var HEAP;var buffer;var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which adjusts the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}Module["addOnPreRun"]=addOnPreRun;function addOnInit(cb){__ATINIT__.unshift(cb)}Module["addOnInit"]=addOnInit;function addOnPreMain(cb){__ATMAIN__.unshift(cb)}Module["addOnPreMain"]=addOnPreMain;function addOnExit(cb){__ATEXIT__.unshift(cb)}Module["addOnExit"]=addOnExit;function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}Module["addOnPostRun"]=addOnPostRun;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}Module["intArrayFromString"]=intArrayFromString;function intArrayToString(array){var ret=[];for(var i=0;i255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}Module["intArrayToString"]=intArrayToString;function writeStringToMemory(string,buffer,dontAddNull){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var lastChar,end;if(dontAddNull){end=buffer+lengthBytesUTF8(string);lastChar=HEAP8[end]}stringToUTF8(string,buffer,Infinity);if(dontAddNull)HEAP8[end]=lastChar}Module["writeStringToMemory"]=writeStringToMemory;function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}Module["writeArrayToMemory"]=writeArrayToMemory;function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}Module["writeAsciiToMemory"]=writeAsciiToMemory;if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}Module["addRunDependency"]=addRunDependency;function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["removeRunDependency"]=removeRunDependency;Module["preloadedImages"]={};Module["preloadedAudios"]={};var ASM_CONSTS=[];STATIC_BASE=8;STATICTOP=STATIC_BASE+34512;__ATINIT__.push();allocate([200,81,12,210,132,244,239,63,0,0,0,0,0,0,240,63,200,81,12,210,132,244,239,63,246,149,7,233,41,210,239,63,218,211,196,241,50,153,239,63,212,253,16,217,15,74,239,63,126,159,187,110,91,229,238,63,97,193,63,157,217,107,238,63,29,215,241,37,117,222,237,63,106,127,111,236,60,62,237,63,201,234,53,193,96,140,236,63,119,36,69,1,46,202,235,63,30,188,126,218,11,249,234,63,58,208,191,52,119,26,234,63,245,37,35,128,254,47,233,63,242,64,67,131,61,59,232,63,14,7,83,222,216,61,231,63,247,242,175,163,121,57,230,63,76,200,197,32,201,47,229,63,206,184,120,145,108,34,228,63,255,153,90,25,1,19,227,63,47,156,49,237,23,3,226,63,99,217,6,205,50,244,224,63,77,90,134,114,129,207,223,63,205,143,100,251,53,190,221,63,21,198,55,144,5,183,219,63,224,7,173,168,61,188,217,63,96,51,10,147,243,207,215,63,243,29,252,196,1,244,213,63,74,133,103,248,5,42,212,63,231,205,60,20,96,115,210,63,141,202,52,55,50,209,208,63,216,209,122,240,193,136,206,63,175,39,120,18,42,155,203,63,200,72,147,222,121,218,200,63,181,207,91,35,31,71,198,63,61,87,66,20,31,225,195,63,181,205,1,64,29,168,193,63,77,186,144,187,198,54,191,63,46,12,38,56,212,115,187,63,102,146,5,10,196,4,184,63,128,84,22,199,121,230,180,63,98,72,78,38,110,21,178,63,164,21,132,151,133,27,175,63,236,178,235,32,167,150,170,63,151,168,65,69,147,147,166,63,62,120,47,239,88,9,163,63,213,231,172,71,200,221,159,63,108,207,77,23,57,118,154,63,244,241,216,232,255,201,149,63,15,11,181,166,121,199,145,63,85,23,108,250,30,187,140,63,254,164,177,40,178,247,134,63,60,183,150,234,126,37,130,63,165,251,181,204,84,78,124,63,103,31,84,119,159,194,117,63,5,196,127,21,59,117,112,63,116,127,179,156,157,111,104,63,211,240,243,0,146,192,97,63,247,82,219,250,167,35,89,63,63,193,172,237,121,64,81,63,241,66,0,145,250,194,70,63,123,178,205,83,62,128,60,63,38,81,146,34,240,143,48,63,199,84,110,96,122,20,33,63,125,137,127,55,32,171,11,63,241,104,227,136,181,248,228,62,0,0,0,0,0,0,0,0,185,166,163,144,34,218,239,63,0,0,0,0,0,0,240,63,185,166,163,144,34,218,239,63,133,11,22,218,123,105,239,63,68,70,205,120,215,176,238,63,38,83,195,134,192,180,237,63,51,218,46,93,86,123,236,63,169,206,23,57,19,12,235,63,169,234,113,33,135,111,233,63,114,230,145,30,10,175,231,63,214,209,105,196,105,212,229,63,192,167,164,20,149,233,227,63,57,160,0,229,74,248,225,63,234,131,27,223,205,9,224,63,85,106,213,50,66,77,220,63,67,93,222,251,159,172,216,63,15,90,246,193,133,62,213,63,31,5,219,202,67,13,210,63,160,103,55,35,24,65,206,63,140,139,122,243,225,250,200,63,240,174,72,134,251,76,196,63,116,227,39,31,204,55,192,63,238,97,138,205,34,111,185,63,59,78,85,202,0,138,179,63,232,97,46,202,232,87,173,63,36,51,205,42,34,121,165,63,187,105,109,249,204,130,158,63,34,44,116,111,143,239,148,63,62,17,221,22,217,140,139,63,93,194,95,155,166,50,129,63,80,8,178,216,5,7,116,63,129,200,42,190,4,27,101,63,220,238,171,147,175,219,82,63,27,202,154,162,109,70,55,63,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,193,83,76,206,30,226,239,63,0,0,0,0,0,0,240,63,193,83,76,206,30,226,239,63,207,66,200,154,13,137,239,63,12,109,231,152,127,246,238,63,136,18,45,121,60,45,238,63,154,77,244,183,12,49,237,63,181,176,192,186,158,6,236,63,204,153,14,25,102,179,234,63,220,121,44,199,117,61,233,63,81,171,34,187,86,171,231,63,149,54,201,77,220,3,230,63,117,171,231,164,247,77,228,63,119,0,155,222,139,144,226,63,19,129,234,31,68,210,224,63,198,0,195,209,217,50,222,63,83,62,4,85,163,215,218,63,217,8,97,193,63,157,215,63,168,106,6,225,159,140,212,63,110,36,125,24,41,173,209,63,90,239,121,246,67,9,206,63,27,0,96,43,87,46,201,63,81,150,107,27,144,206,196,63,139,236,90,173,217,235,192,63,233,214,41,94,126,10,187,63,223,23,250,212,111,46,181,63,6,13,129,76,0,56,176,63,202,189,68,229,244,47,168,63,166,21,248,237,152,120,161,63,75,245,83,210,121,67,152,63,148,207,159,244,141,1,144,63,0,110,55,61,255,168,131,63,222,105,25,70,205,153,117,63,224,133,140,203,225,40,99,63,252,169,241,210,77,98,64,63,0,0,0,0,0,0,0,0,37,145,224,186,32,234,239,63,0,0,0,0,0,0,240,63,37,145,224,186,32,234,239,63,222,75,43,207,205,168,239,63,90,31,255,154,230,60,239,63,85,207,23,181,218,167,238,63,190,160,100,246,162,235,237,63,215,144,110,58,184,10,237,63,139,232,207,101,7,8,236,63,181,222,111,180,227,230,234,63,88,0,116,20,247,170,233,63,34,114,85,52,49,88,232,63,80,197,174,105,181,242,230,63,88,228,182,1,200,126,229,63,148,69,39,108,187,0,228,63,71,43,74,75,221,124,226,63,169,163,227,106,100,247,224,63,170,169,151,165,190,232,222,63,22,196,122,130,72,239,219,63,75,102,204,143,133,9,217,63,63,233,225,87,238,61,214,63,194,106,110,125,63,146,211,63,160,190,167,106,105,11,209,63,43,114,95,57,8,91,205,63,39,153,98,47,144,247,200,63,161,7,202,175,23,241,196,63,202,98,172,128,140,74,193,63,34,197,190,108,84,10,188,63,97,133,0,133,31,65,182,63,143,222,112,31,185,53,177,63,67,132,201,158,78,195,169,63,33,123,123,223,17,120,162,63,243,71,40,232,188,231,152,63,89,237,14,231,233,117,142,63,33,2,14,161,74,205,126,63,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,1,0,0,0,7,0,0,0,0,0,0,0,4,0,0,0,3,0,0,0,6,0,0,0,1,0,0,0,5,0,0,0,2,0,0,0,15,0,0,0,0,0,0,0,8,0,0,0,7,0,0,0,12,0,0,0,3,0,0,0,11,0,0,0,4,0,0,0,14,0,0,0,1,0,0,0,9,0,0,0,6,0,0,0,13,0,0,0,2,0,0,0,10,0,0,0,5,0,0,0,0,0,157,62,0,64,94,62,0,192,4,62,0,128,237,62,0,64,137,62,0,0,0,0,0,192,76,63,0,0,205,61,0,0,0,0,0,0,128,63,0,0,0,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,224,64,0,0,0,65,0,0,128,65,0,0,192,65,0,0,16,66,0,0,48,66,0,0,72,66,0,0,96,66,0,0,120,66,0,0,134,66,0,0,144,66,0,0,158,66,0,0,176,66,0,0,212,66,0,0,6,67,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,0,64,0,0,64,64,0,0,64,64,0,0,128,64,0,0,160,64,0,0,192,64,0,0,0,65,0,0,0,65,8,7,0,0,200,9,0,0,132,12,0,0,60,15,0,0,240,17,0,0,160,20,0,0,76,23,0,0,180,24,0,0,112,25,0,0,228,25,0,0,48,26,0,0,104,26,0,0,136,26,0,0,160,26,0,0,172,26,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,3,0,0,0,5,0,0,0,7,0,0,0,9,0,0,0,11,0,0,0,13,0,0,0,15,0,0,0,17,0,0,0,19,0,0,0,21,0,0,0,23,0,0,0,25,0,0,0,27,0,0,0,29,0,0,0,31,0,0,0,33,0,0,0,35,0,0,0,37,0,0,0,39,0,0,0,41,0,0,0,43,0,0,0,45,0,0,0,47,0,0,0,49,0,0,0,51,0,0,0,53,0,0,0,55,0,0,0,57,0,0,0,59,0,0,0,61,0,0,0,63,0,0,0,65,0,0,0,67,0,0,0,69,0,0,0,71,0,0,0,73,0,0,0,75,0,0,0,77,0,0,0,79,0,0,0,81,0,0,0,83,0,0,0,85,0,0,0,87,0,0,0,89,0,0,0,91,0,0,0,93,0,0,0,95,0,0,0,97,0,0,0,99,0,0,0,101,0,0,0,103,0,0,0,105,0,0,0,107,0,0,0,109,0,0,0,111,0,0,0,113,0,0,0,115,0,0,0,117,0,0,0,119,0,0,0,121,0,0,0,123,0,0,0,125,0,0,0,127,0,0,0,129,0,0,0,131,0,0,0,133,0,0,0,135,0,0,0,137,0,0,0,139,0,0,0,141,0,0,0,143,0,0,0,145,0,0,0,147,0,0,0,149,0,0,0,151,0,0,0,153,0,0,0,155,0,0,0,157,0,0,0,159,0,0,0,161,0,0,0,163,0,0,0,165,0,0,0,167,0,0,0,169,0,0,0,171,0,0,0,173,0,0,0,175,0,0,0,177,0,0,0,179,0,0,0,181,0,0,0,183,0,0,0,185,0,0,0,187,0,0,0,189,0,0,0,191,0,0,0,193,0,0,0,195,0,0,0,197,0,0,0,199,0,0,0,201,0,0,0,203,0,0,0,205,0,0,0,207,0,0,0,209,0,0,0,211,0,0,0,213,0,0,0,215,0,0,0,217,0,0,0,219,0,0,0,221,0,0,0,223,0,0,0,225,0,0,0,227,0,0,0,229,0,0,0,231,0,0,0,233,0,0,0,235,0,0,0,237,0,0,0,239,0,0,0,241,0,0,0,243,0,0,0,245,0,0,0,247,0,0,0,249,0,0,0,251,0,0,0,253,0,0,0,255,0,0,0,1,1,0,0,3,1,0,0,5,1,0,0,7,1,0,0,9,1,0,0,11,1,0,0,13,1,0,0,15,1,0,0,17,1,0,0,19,1,0,0,21,1,0,0,23,1,0,0,25,1,0,0,27,1,0,0,29,1,0,0,31,1,0,0,33,1,0,0,35,1,0,0,37,1,0,0,39,1,0,0,41,1,0,0,43,1,0,0,45,1,0,0,47,1,0,0,49,1,0,0,51,1,0,0,53,1,0,0,55,1,0,0,57,1,0,0,59,1,0,0,61,1,0,0,63,1,0,0,65,1,0,0,67,1,0,0,69,1,0,0,71,1,0,0,73,1,0,0,75,1,0,0,77,1,0,0,79,1,0,0,81,1,0,0,83,1,0,0,85,1,0,0,87,1,0,0,89,1,0,0,91,1,0,0,93,1,0,0,95,1,0,0,13,0,0,0,25,0,0,0,41,0,0,0,61,0,0,0,85,0,0,0,113,0,0,0,145,0,0,0,181,0,0,0,221,0,0,0,9,1,0,0,57,1,0,0,109,1,0,0,165,1,0,0,225,1,0,0,33,2,0,0,101,2,0,0,173,2,0,0,249,2,0,0,73,3,0,0,157,3,0,0,245,3,0,0,81,4,0,0,177,4,0,0,21,5,0,0,125,5,0,0,233,5,0,0,89,6,0,0,205,6,0,0,69,7,0,0,193,7,0,0,65,8,0,0,197,8,0,0,77,9,0,0,217,9,0,0,105,10,0,0,253,10,0,0,149,11,0,0,49,12,0,0,209,12,0,0,117,13,0,0,29,14,0,0,201,14,0,0,121,15,0,0,45,16,0,0,229,16,0,0,161,17,0,0,97,18,0,0,37,19,0,0,237,19,0,0,185,20,0,0,137,21,0,0,93,22,0,0,53,23,0,0,17,24,0,0,241,24,0,0,213,25,0,0,189,26,0,0,169,27,0,0,153,28,0,0,141,29,0,0,133,30,0,0,129,31,0,0,129,32,0,0,133,33,0,0,141,34,0,0,153,35,0,0,169,36,0,0,189,37,0,0,213,38,0,0,241,39,0,0,17,41,0,0,53,42,0,0,93,43,0,0,137,44,0,0,185,45,0,0,237,46,0,0,37,48,0,0,97,49,0,0,161,50,0,0,229,51,0,0,45,53,0,0,121,54,0,0,201,55,0,0,29,57,0,0,117,58,0,0,209,59,0,0,49,61,0,0,149,62,0,0,253,63,0,0,105,65,0,0,217,66,0,0,77,68,0,0,197,69,0,0,65,71,0,0,193,72,0,0,69,74,0,0,205,75,0,0,89,77,0,0,233,78,0,0,125,80,0,0,21,82,0,0,177,83,0,0,81,85,0,0,245,86,0,0,157,88,0,0,73,90,0,0,249,91,0,0,173,93,0,0,101,95,0,0,33,97,0,0,225,98,0,0,165,100,0,0,109,102,0,0,57,104,0,0,9,106,0,0,221,107,0,0,181,109,0,0,145,111,0,0,113,113,0,0,85,115,0,0,61,117,0,0,41,119,0,0,25,121,0,0,13,123,0,0,5,125,0,0,1,127,0,0,1,129,0,0,5,131,0,0,13,133,0,0,25,135,0,0,41,137,0,0,61,139,0,0,85,141,0,0,113,143,0,0,145,145,0,0,181,147,0,0,221,149,0,0,9,152,0,0,57,154,0,0,109,156,0,0,165,158,0,0,225,160,0,0,33,163,0,0,101,165,0,0,173,167,0,0,249,169,0,0,73,172,0,0,157,174,0,0,245,176,0,0,81,179,0,0,177,181,0,0,21,184,0,0,125,186,0,0,233,188,0,0,89,191,0,0,205,193,0,0,69,196,0,0,193,198,0,0,65,201,0,0,197,203,0,0,77,206,0,0,217,208,0,0,105,211,0,0,253,213,0,0,149,216,0,0,49,219,0,0,209,221,0,0,117,224,0,0,29,227,0,0,201,229,0,0,121,232,0,0,45,235,0,0,229,237,0,0,161,240,0,0,63,0,0,0,129,0,0,0,231,0,0,0,121,1,0,0,63,2,0,0,65,3,0,0,135,4,0,0,25,6,0,0,255,7,0,0,65,10,0,0,231,12,0,0,249,15,0,0,127,19,0,0,129,23,0,0,7,28,0,0,25,33,0,0,191,38,0,0,1,45,0,0,231,51,0,0,121,59,0,0,191,67,0,0,193,76,0,0,135,86,0,0,25,97,0,0,127,108,0,0,193,120,0,0,231,133,0,0,249,147,0,0,255,162,0,0,1,179,0,0,7,196,0,0,25,214,0,0,63,233,0,0,129,253,0,0,231,18,1,0,121,41,1,0,63,65,1,0,65,90,1,0,135,116,1,0,25,144,1,0,255,172,1,0,65,203,1,0,231,234,1,0,249,11,2,0,127,46,2,0,129,82,2,0,7,120,2,0,25,159,2,0,191,199,2,0,1,242,2,0,231,29,3,0,121,75,3,0,191,122,3,0,193,171,3,0,135,222,3,0,25,19,4,0,127,73,4,0,193,129,4,0,231,187,4,0,249,247,4,0,255,53,5,0,1,118,5,0,7,184,5,0,25,252,5,0,63,66,6,0,129,138,6,0,231,212,6,0,121,33,7,0,63,112,7,0,65,193,7,0,135,20,8,0,25,106,8,0,255,193,8,0,65,28,9,0,231,120,9,0,249,215,9,0,127,57,10,0,129,157,10,0,7,4,11,0,25,109,11,0,191,216,11,0,1,71,12,0,231,183,12,0,121,43,13,0,191,161,13,0,193,26,14,0,135,150,14,0,25,21,15,0,127,150,15,0,193,26,16,0,231,161,16,0,249,43,17,0,255,184,17,0,1,73,18,0,7,220,18,0,25,114,19,0,63,11,20,0,129,167,20,0,231,70,21,0,121,233,21,0,63,143,22,0,65,56,23,0,135,228,23,0,25,148,24,0,255,70,25,0,65,253,25,0,231,182,26,0,249,115,27,0,127,52,28,0,129,248,28,0,7,192,29,0,25,139,30,0,191,89,31,0,1,44,32,0,231,1,33,0,121,219,33,0,191,184,34,0,193,153,35,0,135,126,36,0,25,103,37,0,127,83,38,0,193,67,39,0,231,55,40,0,249,47,41,0,255,43,42,0,1,44,43,0,7,48,44,0,25,56,45,0,63,68,46,0,129,84,47,0,231,104,48,0,121,129,49,0,63,158,50,0,65,191,51,0,135,228,52,0,25,14,54,0,255,59,55,0,65,110,56,0,231,164,57,0,249,223,58,0,127,31,60,0,129,99,61,0,7,172,62,0,25,249,63,0,191,74,65,0,1,161,66,0,231,251,67,0,121,91,69,0,191,191,70,0,193,40,72,0,135,150,73,0,25,9,75,0,127,128,76,0,193,252,77,0,231,125,79,0,249,3,81,0,255,142,82,0,1,31,84,0,7,180,85,0,25,78,87,0,63,237,88,0,129,145,90,0,231,58,92,0,121,233,93,0,63,157,95,0,65,86,97,0,135,20,99,0,25,216,100,0,255,160,102,0,65,111,104,0,231,66,106,0,249,27,108,0,127,250,109,0,65,1,0,0,169,2,0,0,9,5,0,0,193,8,0,0,65,14,0,0,9,22,0,0,169,32,0,0,193,46,0,0,1,65,0,0,41,88,0,0,9,117,0,0,129,152,0,0,129,195,0,0,9,247,0,0,41,52,1,0,1,124,1,0,193,207,1,0,169,48,2,0,9,160,2,0,65,31,3,0,193,175,3,0,9,83,4,0,169,10,5,0,65,216,5,0,129,189,6,0,41,188,7,0,9,214,8,0,1,13,10,0,1,99,11,0,9,218,12,0,41,116,14,0,129,51,16,0,65,26,18,0,169,42,20,0,9,103,22,0,193,209,24,0,65,109,27,0,9,60,30,0,169,64,33,0,193,125,36,0,1,246,39,0,41,172,43,0,9,163,47,0,129,221,51,0,129,94,56,0,9,41,61,0,41,64,66,0,1,167,71,0,193,96,77,0,169,112,83,0,9,218,89,0,65,160,96,0,193,198,103,0,9,81,111,0,169,66,119,0,65,159,127,0,129,106,136,0,41,168,145,0,9,92,155,0,1,138,165,0,1,54,176,0,9,100,187,0,41,24,199,0,129,86,211,0,65,35,224,0,169,130,237,0,9,121,251,0,193,10,10,1,65,60,25,1,9,18,41,1,169,144,57,1,193,188,74,1,1,155,92,1,41,48,111,1,9,129,130,1,129,146,150,1,129,105,171,1,9,11,193,1,41,124,215,1,1,194,238,1,193,225,6,2,169,224,31,2,9,196,57,2,65,145,84,2,193,77,112,2,9,255,140,2,169,170,170,2,65,86,201,2,129,7,233,2,41,196,9,3,9,146,43,3,1,119,78,3,1,121,114,3,9,158,151,3,41,236,189,3,129,105,229,3,65,28,14,4,169,10,56,4,9,59,99,4,193,179,143,4,65,123,189,4,9,152,236,4,169,16,29,5,193,235,78,5,1,48,130,5,41,228,182,5,9,15,237,5,129,183,36,6,129,228,93,6,9,157,152,6,41,232,212,6,1,205,18,7,193,82,82,7,169,128,147,7,9,94,214,7,65,242,26,8,193,68,97,8,9,93,169,8,169,66,243,8,65,253,62,9,129,148,140,9,41,16,220,9,9,120,45,10,1,212,128,10,1,44,214,10,9,136,45,11,41,240,134,11,129,108,226,11,65,5,64,12,169,194,159,12,9,173,1,13,193,204,101,13,65,42,204,13,9,206,52,14,169,192,159,14,193,10,13,15,1,181,124,15,41,200,238,15,9,77,99,16,129,76,218,16,129,207,83,17,9,223,207,17,41,132,78,18,1,200,207,18,193,179,83,19,169,80,218,19,9,168,99,20,65,195,239,20,193,171,126,21,9,107,16,22,169,10,165,22,65,148,60,23,129,17,215,23,41,140,116,24,9,14,21,25,1,161,184,25,1,79,95,26,9,34,9,27,41,36,182,27,129,95,102,28,65,222,25,29,169,170,208,29,9,207,138,30,193,85,72,31,65,73,9,32,9,180,205,32,169,160,149,33,193,25,97,34,1,42,48,35,41,220,2,36,9,59,217,36,129,81,179,37,147,6,0,0,69,14,0,0,15,28,0,0,17,51,0,0,91,87,0,0,13,142,0,0,119,221,0,0,57,77,1,0,99,230,1,0,149,179,2,0,31,193,3,0,33,29,5,0,171,215,6,0,221,2,9,0,7,179,11,0,201,254,14,0,51,255,18,0,229,207,23,0,47,143,29,0,49,94,36,0,251,96,44,0,173,190,53,0,151,161,64,0,89,55,77,0,3,177,91,0,53,67,108,0,63,38,127,0,65,150,148,0,75,211,172,0,125,33,200,0,39,201,230,0,233,22,9,1,211,91,47,1,133,237,89,1,79,38,137,1,81,101,189,1,155,14,247,1,77,139,54,2,183,73,124,2,121,189,200,2,163,95,28,3,213,174,119,3,95,47,219,3,97,107,71,4,235,242,188,4,29,92,60,5,71,67,198,5,9,75,91,6,115,28,252,6,37,103,169,7,111,225,99,8,113,72,44,9,59,96,3,10,237,243,233,10,215,213,224,11,153,223,232,12,67,242,2,14,117,246,47,15,127,220,112,16,129,156,198,17,139,54,50,19,189,178,180,20,103,33,79,22,41,155,2,24,19,65,208,25,197,60,185,27,143,192,190,29,145,7,226,31,219,85,36,34,141,248,134,36,247,69,11,39,185,157,178,41,227,104,126,44,21,26,112,47,159,45,137,50,161,41,203,53,43,158,55,57,93,37,208,60,135,99,150,64,73,7,140,68,179,201,178,72,101,110,12,77,175,195,154,81,177,162,95,86,123,239,92,91,45,153,148,96,23,154,8,102,217,247,186,107,131,195,173,113,181,25,227,119,191,34,93,126,29,35,0,0,113,77,0,0,145,156,0,0,253,38,1,0,101,12,2,0,233,119,3,0,153,162,5,0,53,214,8,0,45,112,13,0,225,228,19,0,33,195,28,0,237,183,40,0,117,146,56,0,89,72,77,0,41,250,103,0,37,248,137,0,61,199,180,0,81,38,234,0,177,19,44,1,221,210,124,1,133,242,222,1,201,82,85,2,185,43,227,2,21,20,140,3,77,8,84,4,193,113,63,5,65,46,83,6,205,151,148,7,149,140,9,9,57,119,184,10,73,87,168,12,5,202,224,14,93,19,106,17,49,39,77,20,209,178,147,23,189,38,72,27,165,192,117,31,169,149,40,36,217,156,109,41,245,185,82,47,109,200,230,53,161,166,57,61,97,65,92,69,173,159,96,78,181,238,89,88,25,142,92,99,105,28,126,111,229,131,213,124,255,189,0,0,1,168,1,0,143,107,3,0,241,158,6,0,63,35,12,0,193,61,21,0,143,182,35,0,241,252,57,0,255,81,91,0,1,250,139,0,15,117,209,0,113,191,50,1,63,154,184,1,193,220,109,2,15,207,95,3,113,142,158,4,255,123,61,6,1,182,83,8,143,156,252,10,241,97,88,14,63,167,140,18,193,37,197,23,143,101,52,30,241,129,20,38,255,251,167,47,1,156,58,59,15,98,34,73,113,134,192,89,63,138,130,109,193,88,227,132,1,14,4,0,145,33,9,0,17,44,19,0,65,238,37,0,65,79,71,0,145,67,128,0,17,247,221,0,1,70,115,1,1,146,90,2,17,1,184,3,145,53,188,5,65,143,167,8,65,6,206,12,17,178,155,18,145,15,154,26,1,26,118,37,1,76,7,52,145,158,87,71,17,157,172,96,65,166,145,129,35,81,22,0,197,158,50,0,23,185,107,0,153,246,216,0,107,137,160,1,13,196,254,2,31,1,80,5,33,217,29,9,51,108,48,15,213,162,164,24,167,103,8,39,41,253,125,60,123,181,231,91,29,119,29,137,175,160,45,201,173,142,123,0,137,230,25,1,57,150,94,2,61,22,216,4,181,99,119,9,225,40,198,17,33,3,52,32,117,72,130,56,125,87,87,96,191,91,175,2,129,216,39,6,247,132,94,13,233,254,173,27,127,139,235,54,129,183,229,104,23,3,156,193,193,12,255,14,57,106,133,34,25,238,145,75,129,120,43,158,51,225,9,84,149,139,0,0,55,152,0,0,255,165,0,0,4,181,0,0,103,197,0,0,69,215,0,0,193,234,0,0,255,255,0,0,128,187,0,0,120,0,0,0,21,0,0,0,21,0,0,0,0,154,89,63,0,0,0,0,0,0,128,63,0,0,128,63,248,94,0,0,3,0,0,0,8,0,0,0,120,0,0,0,11,0,0,0,84,113,0,0,36,95,0,0,116,27,0,0,128,7,0,0,3,0,0,0,84,29,0,0,140,29,0,0,196,29,0,0,252,29,0,0,52,30,0,0,136,1,0,0,78,95,0,0,59,114,0,0,195,115,0,0,106,28,141,56,82,187,30,58,8,105,220,58,130,237,87,59,137,99,178,59,3,42,5,60,48,220,57,60,180,62,119,60,28,163,158,60,209,242,197,60,254,134,241,60,155,171,16,61,5,173,42,61,132,194,70,61,83,230,100,61,17,137,130,61,135,159,147,61,203,178,165,61,209,190,184,61,58,191,204,61,84,175,225,61,20,138,247,61,14,37,7,62,217,244,18,62,95,49,31,62,104,215,43,62,138,227,56,62,48,82,70,62,148,31,84,62,191,71,98,62,142,198,112,62,176,151,127,62,82,91,135,62,96,15,143,62,152,229,150,62,121,219,158,62,112,238,166,62,216,27,175,62,251,96,183,62,17,187,191,62,70,39,200,62,183,162,208,62,120,42,217,62,148,187,225,62,12,83,234,62,222,237,242,62,6,137,251,62,190,16,2,63,31,90,6,63,36,159,10,63,80,222,14,63,43,22,19,63,65,69,23,63,37,106,27,63,115,131,31,63,206,143,35,63,230,141,39,63,116,124,43,63,63,90,47,63,25,38,51,63,231,222,54,63,153,131,58,63,51,19,62,63,197,140,65,63,119,239,68,63,127,58,72,63,39,109,75,63,206,134,78,63,229,134,81,63,241,108,84,63,142,56,87,63,105,233,89,63,69,127,92,63,250,249,94,63,115,89,97,63,175,157,99,63,193,198,101,63,207,212,103,63,17,200,105,63,210,160,107,63,110,95,109,63,80,4,111,63,244,143,112,63,230,2,114,63,189,93,115,63,31,161,116,63,191,205,117,63,87,228,118,63,176,229,119,63,151,210,120,63,227,171,121,63,115,114,122,63,39,39,123,63,231,202,123,63,157,94,124,63,53,227,124,63,156,89,125,63,189,194,125,63,134,31,126,63,222,112,126,63,171,183,126,63,207,244,126,63,38,41,127,63,134,85,127,63,190,122,127,63,150,153,127,63,204,178,127,63,20,199,127,63,28,215,127,63,130,227,127,63,221,236,127,63,182,243,127,63,138,248,127,63,200,251,127,63,214,253,127,63,7,255,127,63,165,255,127,63,232,255,127,63,253,255,127,63,0,0,128,63,224,1,0,0,135,136,8,59,255,255,255,255,5,0,96,0,3,0,32,0,4,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,104,99,0,0,84,58,0,0,0,0,0,0,240,0,0,0,137,136,136,59,1,0,0,0,5,0,48,0,3,0,16,0,4,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,136,97,0,0,84,58,0,0,0,0,0,0,120,0,0,0,136,136,8,60,2,0,0,0,5,0,24,0,3,0,8,0,2,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,152,96,0,0,84,58,0,0,0,0,0,0,60,0,0,0,137,136,136,60,3,0,0,0,5,0,12,0,3,0,4,0,4,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,96,0,0,84,58,0,0,0,0,0,0,255,255,127,63,142,255,127,63,106,254,127,63,147,252,127,63,7,250,127,63,200,246,127,63,214,242,127,63,48,238,127,63,214,232,127,63,200,226,127,63,7,220,127,63,147,212,127,63,107,204,127,63,143,195,127,63,0,186,127,63,189,175,127,63,199,164,127,63,29,153,127,63,192,140,127,63,176,127,127,63,236,113,127,63,118,99,127,63,75,84,127,63,110,68,127,63,222,51,127,63,154,34,127,63,163,16,127,63,250,253,126,63,157,234,126,63,141,214,126,63,203,193,126,63,86,172,126,63,46,150,126,63,83,127,126,63,198,103,126,63,134,79,126,63,148,54,126,63,239,28,126,63,152,2,126,63,143,231,125,63,211,203,125,63,102,175,125,63,70,146,125,63,116,116,125,63,241,85,125,63,188,54,125,63,213,22,125,63,60,246,124,63,242,212,124,63,246,178,124,63,73,144,124,63,235,108,124,63,219,72,124,63,27,36,124,63,169,254,123,63,135,216,123,63,180,177,123,63,48,138,123,63,252,97,123,63,23,57,123,63,130,15,123,63,61,229,122,63,72,186,122,63,162,142,122,63,77,98,122,63,72,53,122,63,148,7,122,63,48,217,121,63,29,170,121,63,90,122,121,63,233,73,121,63,200,24,121,63,249,230,120,63,123,180,120,63,78,129,120,63,115,77,120,63,234,24,120,63,178,227,119,63,205,173,119,63,58,119,119,63,249,63,119,63,10,8,119,63,110,207,118,63,37,150,118,63,47,92,118,63,140,33,118,63,60,230,117,63,64,170,117,63,151,109,117,63,66,48,117,63,65,242,116,63,148,179,116,63,59,116,116,63,55,52,116,63,135,243,115,63,44,178,115,63,38,112,115,63,118,45,115,63,26,234,114,63,20,166,114,63,100,97,114,63,10,28,114,63,5,214,113,63,87,143,113,63,0,72,113,63,255,255,112,63,85,183,112,63,2,110,112,63,6,36,112,63,98,217,111,63,21,142,111,63,32,66,111,63,132,245,110,63,63,168,110,63,83,90,110,63,192,11,110,63,134,188,109,63,165,108,109,63,29,28,109,63,239,202,108,63,27,121,108,63,161,38,108,63,128,211,107,63,187,127,107,63,80,43,107,63,64,214,106,63,140,128,106,63,50,42,106,63,53,211,105,63,147,123,105,63,77,35,105,63,100,202,104,63,216,112,104,63,168,22,104,63,213,187,103,63,96,96,103,63,72,4,103,63,143,167,102,63,51,74,102,63,54,236,101,63,151,141,101,63,87,46,101,63,119,206,100,63,245,109,100,63,212,12,100,63,18,171,99,63,177,72,99,63,176,229,98,63,16,130,98,63,209,29,98,63,243,184,97,63,119,83,97,63,92,237,96,63,164,134,96,63,78,31,96,63,91,183,95,63,203,78,95,63,158,229,94,63,213,123,94,63,112,17,94,63,110,166,93,63,210,58,93,63,154,206,92,63,198,97,92,63,89,244,91,63,81,134,91,63,174,23,91,63,114,168,90,63,157,56,90,63,46,200,89,63,39,87,89,63,135,229,88,63,79,115,88,63,127,0,88,63,23,141,87,63,24,25,87,63,130,164,86,63,86,47,86,63,147,185,85,63,58,67,85,63,75,204,84,63,199,84,84,63,174,220,83,63,1,100,83,63,191,234,82,63,233,112,82,63,127,246,81,63,130,123,81,63,242,255,80,63,207,131,80,63,26,7,80,63,210,137,79,63,250,11,79,63,144,141,78,63,148,14,78,63,9,143,77,63,237,14,77,63,65,142,76,63,5,13,76,63,59,139,75,63,225,8,75,63,249,133,74,63,131,2,74,63,127,126,73,63,238,249,72,63,207,116,72,63,36,239,71,63,237,104,71,63,41,226,70,63,218,90,70,63,0,211,69,63,155,74,69,63,172,193,68,63,50,56,68,63,47,174,67,63,162,35,67,63,141,152,66,63,239,12,66,63,200,128,65,63,26,244,64,63,229,102,64,63,40,217,63,63,229,74,63,63,27,188,62,63,204,44,62,63,247,156,61,63,157,12,61,63,190,123,60,63,92,234,59,63,117,88,59,63,10,198,58,63,29,51,58,63,173,159,57,63,187,11,57,63,71,119,56,63,81,226,55,63,218,76,55,63,227,182,54,63,107,32,54,63,116,137,53,63,253,241,52,63,7,90,52,63,147,193,51,63,160,40,51,63,48,143,50,63,66,245,49,63,216,90,49,63,241,191,48,63,142,36,48,63,175,136,47,63,85,236,46,63,129,79,46,63,50,178,45,63,105,20,45,63,39,118,44,63,107,215,43,63,55,56,43,63,139,152,42,63,103,248,41,63,204,87,41,63,186,182,40,63,50,21,40,63,51,115,39,63,191,208,38,63,214,45,38,63,121,138,37,63,167,230,36,63,97,66,36,63,169,157,35,63,125,248,34,63,223,82,34,63,207,172,33,63,77,6,33,63,91,95,32,63,248,183,31,63,37,16,31,63,226,103,30,63,48,191,29,63,16,22,29,63,129,108,28,63,132,194,27,63,26,24,27,63,67,109,26,63,0,194,25,63,81,22,25,63,54,106,24,63,177,189,23,63,193,16,23,63,103,99,22,63,163,181,21,63,118,7,21,63,225,88,20,63,228,169,19,63,127,250,18,63,179,74,18,63,128,154,17,63,231,233,16,63,232,56,16,63,132,135,15,63,187,213,14,63,142,35,14,63,254,112,13,63,10,190,12,63,179,10,12,63,250,86,11,63,223,162,10,63,99,238,9,63,134,57,9,63,73,132,8,63,172,206,7,63,175,24,7,63,84,98,6,63,155,171,5,63,131,244,4,63,15,61,4,63,61,133,3,63,15,205,2,63,134,20,2,63,161,91,1,63,97,162,0,63,143,209,255,62,167,93,254,62,14,233,252,62,194,115,251,62,198,253,249,62,27,135,248,62,193,15,247,62,186,151,245,62,6,31,244,62,168,165,242,62,158,43,241,62,236,176,239,62,145,53,238,62,144,185,236,62,232,60,235,62,154,191,233,62,169,65,232,62,21,195,230,62,223,67,229,62,8,196,227,62,145,67,226,62,124,194,224,62,200,64,223,62,120,190,221,62,140,59,220,62,6,184,218,62,230,51,217,62,46,175,215,62,223,41,214,62,249,163,212,62,125,29,211,62,110,150,209,62,204,14,208,62,151,134,206,62,210,253,204,62,125,116,203,62,153,234,201,62,39,96,200,62,40,213,198,62,159,73,197,62,138,189,195,62,236,48,194,62,198,163,192,62,25,22,191,62,230,135,189,62,45,249,187,62,241,105,186,62,50,218,184,62,241,73,183,62,47,185,181,62,238,39,180,62,47,150,178,62,242,3,177,62,57,113,175,62,4,222,173,62,86,74,172,62,47,182,170,62,144,33,169,62,122,140,167,62,239,246,165,62,239,96,164,62,124,202,162,62,151,51,161,62,64,156,159,62,122,4,158,62,68,108,156,62,161,211,154,62,145,58,153,62,22,161,151,62,48,7,150,62,225,108,148,62,41,210,146,62,11,55,145,62,135,155,143,62,158,255,141,62,81,99,140,62,162,198,138,62,145,41,137,62,32,140,135,62,80,238,133,62,34,80,132,62,151,177,130,62,176,18,129,62,222,230,126,62,169,167,123,62,195,103,120,62,47,39,117,62,238,229,113,62,4,164,110,62,115,97,107,62,60,30,104,62,98,218,100,62,232,149,97,62,207,80,94,62,26,11,91,62,204,196,87,62,230,125,84,62,107,54,81,62,93,238,77,62,191,165,74,62,146,92,71,62,218,18,68,62,151,200,64,62,206,125,61,62,128,50,58,62,174,230,54,62,93,154,51,62,141,77,48,62,66,0,45,62,125,178,41,62,66,100,38,62,145,21,35,62,110,198,31,62,219,118,28,62,218,38,25,62,109,214,21,62,152,133,18,62,91,52,15,62,186,226,11,62,183,144,8,62,84,62,5,62,148,235,1,62,240,48,253,61,6,138,246,61,113,226,239,61,51,58,233,61,79,145,226,61,207,231,219,61,181,61,213,61,3,147,206,61,192,231,199,61,242,59,193,61,156,143,186,61,195,226,179,61,108,53,173,61,155,135,166,61,85,217,159,61,159,42,153,61,126,123,146,61,246,203,139,61,11,28,133,61,135,215,124,61,70,118,111,61,93,20,98,61,214,177,84,61,185,78,71,61,16,235,57,61,229,134,44,61,64,34,31,61,44,189,17,61,178,87,4,61,181,227,237,60,96,23,211,60,118,74,184,60,11,125,157,60,50,175,130,60,250,193,79,60,254,36,26,60,42,15,201,59,153,167,59,59,46,125,214,185,210,70,113,187,171,222,227,187,166,140,39,188,129,41,93,188,225,98,137,188,160,48,164,188,236,253,190,188,179,202,217,188,224,150,244,188,49,177,7,189,147,22,21,189,140,123,34,189,19,224,47,189,30,68,61,189,165,167,74,189,157,10,88,189,254,108,101,189,190,206,114,189,234,23,128,189,27,200,134,189,237,119,141,189,92,39,148,189,99,214,154,189,253,132,161,189,38,51,168,189,217,224,174,189,17,142,181,189,202,58,188,189,254,230,194,189,170,146,201,189,200,61,208,189,84,232,214,189,74,146,221,189,164,59,228,189,93,228,234,189,114,140,241,189,221,51,248,189,154,218,254,189,82,192,2,190,252,18,6,190,71,101,9,190,50,183,12,190,186,8,16,190,221,89,19,190,152,170,22,190,234,250,25,190,208,74,29,190,71,154,32,190,78,233,35,190,225,55,39,190,0,134,42,190,166,211,45,190,211,32,49,190,131,109,52,190,181,185,55,190,101,5,59,190,147,80,62,190,58,155,65,190,90,229,68,190,240,46,72,190,249,119,75,190,116,192,78,190,93,8,82,190,179,79,85,190,115,150,88,190,156,220,91,190,42,34,95,190,27,103,98,190,109,171,101,190,31,239,104,190,44,50,108,190,148,116,111,190,84,182,114,190,106,247,117,190,211,55,121,190,141,119,124,190,150,182,127,190,117,122,129,190,69,25,131,190,185,183,132,190,208,85,134,190,136,243,135,190,225,144,137,190,218,45,139,190,112,202,140,190,164,102,142,190,116,2,144,190,223,157,145,190,228,56,147,190,129,211,148,190,182,109,150,190,129,7,152,190,226,160,153,190,215,57,155,190,95,210,156,190,121,106,158,190,35,2,160,190,94,153,161,190,38,48,163,190,125,198,164,190,96,92,166,190,206,241,167,190,198,134,169,190,71,27,171,190,80,175,172,190,224,66,174,190,245,213,175,190,143,104,177,190,173,250,178,190,77,140,180,190,110,29,182,190,16,174,183,190,48,62,185,190,207,205,186,190,234,92,188,190,130,235,189,190,148,121,191,190,31,7,193,190,35,148,194,190,159,32,196,190,145,172,197,190,248,55,199,190,211,194,200,190,34,77,202,190,226,214,203,190,19,96,205,190,181,232,206,190,197,112,208,190,66,248,209,190,45,127,211,190,131,5,213,190,67,139,214,190,109,16,216,190,255,148,217,190,249,24,219,190,89,156,220,190,29,31,222,190,70,161,223,190,211,34,225,190,193,163,226,190,16,36,228,190,190,163,229,190,204,34,231,190,56,161,232,190,0,31,234,190,36,156,235,190,162,24,237,190,122,148,238,190],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);allocate([171,15,240,190,51,138,241,190,18,4,243,190,70,125,244,190,207,245,245,190,170,109,247,190,217,228,248,190,88,91,250,190,40,209,251,190,71,70,253,190,181,186,254,190,56,23,0,191,187,208,0,191,228,137,1,191,178,66,2,191,37,251,2,191,59,179,3,191,246,106,4,191,83,34,5,191,83,217,5,191,245,143,6,191,56,70,7,191,29,252,7,191,162,177,8,191,199,102,9,191,140,27,10,191,240,207,10,191,243,131,11,191,147,55,12,191,209,234,12,191,172,157,13,191,36,80,14,191,56,2,15,191,232,179,15,191,50,101,16,191,24,22,17,191,151,198,17,191,176,118,18,191,99,38,19,191,174,213,19,191,145,132,20,191,13,51,21,191,31,225,21,191,200,142,22,191,8,60,23,191,221,232,23,191,72,149,24,191,72,65,25,191,220,236,25,191,4,152,26,191,192,66,27,191,15,237,27,191,240,150,28,191,99,64,29,191,104,233,29,191,254,145,30,191,37,58,31,191,220,225,31,191,35,137,32,191,250,47,33,191,95,214,33,191,82,124,34,191,212,33,35,191,227,198,35,191,127,107,36,191,167,15,37,191,92,179,37,191,157,86,38,191,104,249,38,191,191,155,39,191,160,61,40,191,11,223,40,191,255,127,41,191,125,32,42,191,131,192,42,191,17,96,43,191,39,255,43,191,196,157,44,191,232,59,45,191,146,217,45,191,195,118,46,191,121,19,47,191,180,175,47,191,115,75,48,191,183,230,48,191,127,129,49,191,203,27,50,191,153,181,50,191,234,78,51,191,189,231,51,191,18,128,52,191,232,23,53,191,63,175,53,191,22,70,54,191,110,220,54,191,69,114,55,191,156,7,56,191,113,156,56,191,197,48,57,191,150,196,57,191,230,87,58,191,178,234,58,191,252,124,59,191,194,14,60,191,3,160,60,191,193,48,61,191,250,192,61,191,173,80,62,191,219,223,62,191,131,110,63,191,165,252,63,191,64,138,64,191,83,23,65,191,224,163,65,191,228,47,66,191,96,187,66,191,83,70,67,191,190,208,67,191,158,90,68,191,246,227,68,191,194,108,69,191,5,245,69,191,188,124,70,191,232,3,71,191,137,138,71,191,157,16,72,191,37,150,72,191,32,27,73,191,142,159,73,191,111,35,74,191,193,166,74,191,134,41,75,191,188,171,75,191,99,45,76,191,122,174,76,191,2,47,77,191,250,174,77,191,98,46,78,191,57,173,78,191,126,43,79,191,51,169,79,191,85,38,80,191,230,162,80,191,228,30,81,191,80,154,81,191,40,21,82,191,109,143,82,191,30,9,83,191,59,130,83,191,195,250,83,191,183,114,84,191,22,234,84,191,223,96,85,191,18,215,85,191,176,76,86,191,183,193,86,191,39,54,87,191,0,170,87,191,66,29,88,191,236,143,88,191,254,1,89,191,120,115,89,191,89,228,89,191,162,84,90,191,81,196,90,191,102,51,91,191,226,161,91,191,195,15,92,191,10,125,92,191,183,233,92,191,200,85,93,191,62,193,93,191,24,44,94,191,87,150,94,191,249,255,94,191,255,104,95,191,104,209,95,191,51,57,96,191,98,160,96,191,243,6,97,191,229,108,97,191,58,210,97,191,240,54,98,191,8,155,98,191,128,254,98,191,89,97,99,191,146,195,99,191,44,37,100,191,37,134,100,191,126,230,100,191,55,70,101,191,78,165,101,191,197,3,102,191,154,97,102,191,205,190,102,191,94,27,103,191,77,119,103,191,154,210,103,191,68,45,104,191,75,135,104,191,174,224,104,191,111,57,105,191,139,145,105,191,4,233,105,191,217,63,106,191,9,150,106,191,148,235,106,191,123,64,107,191,188,148,107,191,89,232,107,191,79,59,108,191,160,141,108,191,75,223,108,191,79,48,109,191,173,128,109,191,101,208,109,191,117,31,110,191,223,109,110,191,161,187,110,191,187,8,111,191,46,85,111,191,248,160,111,191,27,236,111,191,149,54,112,191,103,128,112,191,144,201,112,191,15,18,113,191,230,89,113,191,19,161,113,191,151,231,113,191,113,45,114,191,160,114,114,191,38,183,114,191,1,251,114,191,50,62,115,191,184,128,115,191,148,194,115,191,196,3,116,191,73,68,116,191,34,132,116,191,80,195,116,191,210,1,117,191,168,63,117,191,210,124,117,191,80,185,117,191,33,245,117,191,69,48,118,191,189,106,118,191,136,164,118,191,166,221,118,191,22,22,119,191,217,77,119,191,239,132,119,191,87,187,119,191,17,241,119,191,29,38,120,191,122,90,120,191,42,142,120,191,43,193,120,191,125,243,120,191,33,37,121,191,22,86,121,191,92,134,121,191,242,181,121,191,218,228,121,191,18,19,122,191,154,64,122,191,115,109,122,191,157,153,122,191,22,197,122,191,223,239,122,191,248,25,123,191,97,67,123,191,26,108,123,191,34,148,123,191,122,187,123,191,32,226,123,191,23,8,124,191,92,45,124,191,240,81,124,191,211,117,124,191,5,153,124,191,134,187,124,191,85,221,124,191,115,254,124,191,223,30,125,191,154,62,125,191,163,93,125,191,250,123,125,191,159,153,125,191,146,182,125,191,211,210,125,191,98,238,125,191,63,9,126,191,105,35,126,191,225,60,126,191,167,85,126,191,186,109,126,191,27,133,126,191,201,155,126,191,196,177,126,191,13,199,126,191,162,219,126,191,133,239,126,191,181,2,127,191,50,21,127,191,252,38,127,191,19,56,127,191,118,72,127,191,39,88,127,191,36,103,127,191,110,117,127,191,5,131,127,191,232,143,127,191,25,156,127,191,149,167,127,191,95,178,127,191,116,188,127,191,215,197,127,191,133,206,127,191,129,214,127,191,200,221,127,191,93,228,127,191,61,234,127,191,106,239,127,191,227,243,127,191,169,247,127,191,187,250,127,191,25,253,127,191,196,254,127,191,187,255,127,191,250,255,127,63,57,254,127,63,169,249,127,63,75,242,127,63,30,232,127,63,35,219,127,63,89,203,127,63,193,184,127,63,91,163,127,63,40,139,127,63,39,112,127,63,90,82,127,63,191,49,127,63,88,14,127,63,37,232,126,63,38,191,126,63,92,147,126,63,200,100,126,63,105,51,126,63,65,255,125,63,79,200,125,63,150,142,125,63,20,82,125,63,203,18,125,63,188,208,124,63,231,139,124,63,77,68,124,63,239,249,123,63,205,172,123,63,233,92,123,63,67,10,123,63,221,180,122,63,182,92,122,63,209,1,122,63,46,164,121,63,206,67,121,63,178,224,120,63,220,122,120,63,76,18,120,63,4,167,119,63,4,57,119,63,79,200,118,63,228,84,118,63,198,222,117,63,246,101,117,63,117,234,116,63,68,108,116,63,101,235,115,63,218,103,115,63,163,225,114,63,194,88,114,63,57,205,113,63,9,63,113,63,52,174,112,63,187,26,112,63,160,132,111,63,228,235,110,63,138,80,110,63,147,178,109,63,1,18,109,63,213,110,108,63,17,201,107,63,183,32,107,63,201,117,106,63,73,200,105,63,57,24,105,63,155,101,104,63,111,176,103,63,186,248,102,63,124,62,102,63,184,129,101,63,111,194,100,63,164,0,100,63,90,60,99,63,145,117,98,63,76,172,97,63,142,224,96,63,89,18,96,63,174,65,95,63,145,110,94,63,3,153,93,63,8,193,92,63,160,230,91,63,207,9,91,63,152,42,90,63,251,72,89,63,253,100,88,63,159,126,87,63,229,149,86,63,208,170,85,63,99,189,84,63,161,205,83,63,140,219,82,63,39,231,81,63,117,240,80,63,121,247,79,63,52,252,78,63,171,254,77,63,223,254,76,63,212,252,75,63,140,248,74,63,10,242,73,63,82,233,72,63,101,222,71,63,71,209,70,63,251,193,69,63,132,176,68,63,229,156,67,63,32,135,66,63,58,111,65,63,52,85,64,63,19,57,63,63,216,26,62,63,136,250,60,63,38,216,59,63,180,179,58,63,54,141,57,63,175,100,56,63,34,58,55,63,147,13,54,63,5,223,52,63,124,174,51,63,249,123,50,63,130,71,49,63,25,17,48,63,194,216,46,63,127,158,45,63,86,98,44,63,72,36,43,63,90,228,41,63,144,162,40,63,235,94,39,63,113,25,38,63,37,210,36,63,9,137,35,63,35,62,34,63,117,241,32,63,4,163,31,63,210,82,30,63,228,0,29,63,61,173,27,63,225,87,26,63,211,0,25,63,25,168,23,63,180,77,22,63,170,241,20,63,253,147,19,63,178,52,18,63,204,211,16,63,80,113,15,63,66,13,14,63,164,167,12,63,124,64,11,63,205,215,9,63,154,109,8,63,233,1,7,63,189,148,5,63,25,38,4,63,3,182,2,63,126,68,1,63,28,163,255,62,110,186,252,62,250,206,249,62,202,224,246,62,228,239,243,62,81,252,240,62,26,6,238,62,71,13,235,62,224,17,232,62,237,19,229,62,119,19,226,62,135,16,223,62,36,11,220,62,88,3,217,62,42,249,213,62,164,236,210,62,205,221,207,62,175,204,204,62,82,185,201,62,191,163,198,62,254,139,195,62,24,114,192,62,22,86,189,62,0,56,186,62,224,23,183,62,189,245,179,62,161,209,176,62,149,171,173,62,162,131,170,62,207,89,167,62,39,46,164,62,178,0,161,62,121,209,157,62,133,160,154,62,223,109,151,62,143,57,148,62,160,3,145,62,26,204,141,62,5,147,138,62,107,88,135,62,86,28,132,62,205,222,128,62,182,63,123,62,16,191,116,62,187,59,110,62,201,181,103,62,77,45,97,62,89,162,90,62,255,20,84,62,81,133,77,62,99,243,70,62,70,95,64,62,13,201,57,62,202,48,51,62,144,150,44,62,114,250,37,62,130,92,31,62,210,188,24,62,118,27,18,62,127,120,11,62,1,212,4,62,29,92,252,61,114,13,239,61,41,188,225,61,102,104,212,61,78,18,199,61,8,186,185,61,184,95,172,61,132,3,159,61,146,165,145,61,7,70,132,61,18,202,109,61,122,5,83,61,145,62,56,61,164,117,29,61,252,170,2,61,202,189,207,60,86,35,154,60,97,14,73,60,197,167,187,59,61,122,86,186,9,70,241,187,18,221,99,188,80,138,167,188,65,36,221,188,227,93,9,189,35,40,36,189,150,240,62,189,242,182,89,189,234,122,116,189,26,158,135,189,66,253,148,189,200,90,162,189,134,182,175,189,87,16,189,189,22,104,202,189,155,189,215,189,195,16,229,189,105,97,242,189,101,175,255,189,74,125,6,190,104,33,13,190,250,195,19,190,237,100,26,190,46,4,33,190,172,161,39,190,83,61,46,190,16,215,52,190,210,110,59,190,134,4,66,190,25,152,72,190,121,41,79,190,148,184,85,190,86,69,92,190,174,207,98,190,137,87,105,190,214,220,111,190,128,95,118,190,120,223,124,190,84,174,129,190,129,235,132,190,56,39,136,190,114,97,139,190,36,154,142,190,69,209,145,190,205,6,149,190,179,58,152,190,238,108,155,190,116,157,158,190,61,204,161,190,64,249,164,190,115,36,168,190,207,77,171,190,73,117,174,190,218,154,177,190,120,190,180,190,27,224,183,190,186,255,186,190,75,29,190,190,199,56,193,190,37,82,196,190,91,105,199,190,97,126,202,190,48,145,205,190,188,161,208,190,0,176,211,190,241,187,214,190,135,197,217,190,186,204,220,190,129,209,223,190,211,211,226,190,169,211,229,190,250,208,232,190,189,203,235,190,234,195,238,190,120,185,241,190,96,172,244,190,154,156,247,190,28,138,250,190,223,116,253,190,109,46,0,191,3,161,1,191,45,18,3,191,230,129,4,191,44,240,5,191,250,92,7,191,76,200,8,191,30,50,10,191,108,154,11,191,50,1,13,191,108,102,14,191,23,202,15,191,45,44,17,191,172,140,18,191,144,235,19,191,213,72,21,191,118,164,22,191,113,254,23,191,192,86,25,191,98,173,26,191,81,2,28,191,138,85,29,191,9,167,30,191,203,246,31,191,204,68,33,191,9,145,34,191,124,219,35,191,36,36,37,191,253,106,38,191,2,176,39,191,48,243,40,191,132,52,42,191,250,115,43,191,143,177,44,191,63,237,45,191,7,39,47,191,227,94,48,191,208,148,49,191,202,200,50,191,206,250,51,191,218,42,53,191,232,88,54,191,247,132,55,191,2,175,56,191,7,215,57,191,3,253,58,191,241,32,60,191,207,66,61,191,154,98,62,191,79,128,63,191,233,155,64,191,104,181,65,191,198,204,66,191,1,226,67,191,23,245,68,191,3,6,70,191,196,20,71,191,86,33,72,191,182,43,73,191,225,51,74,191,212,57,75,191,141,61,76,191,9,63,77,191,68,62,78,191,61,59,79,191,240,53,80,191,90,46,81,191,121,36,82,191,74,24,83,191,202,9,84,191,247,248,84,191,206,229,85,191,77,208,86,191,112,184,87,191,55,158,88,191,156,129,89,191,160,98,90,191,62,65,91,191,117,29,92,191,65,247,92,191,162,206,93,191,148,163,94,191,20,118,95,191,34,70,96,191,186,19,97,191,217,222,97,191,127,167,98,191,169,109,99,191,84,49,100,191,126,242,100,191,38,177,101,191,73,109,102,191,229,38,103,191,248,221,103,191,128,146,104,191,123,68,105,191,232,243,105,191,195,160,106,191,12,75,107,191,192,242,107,191,222,151,108,191,100,58,109,191,80,218,109,191,160,119,110,191,83,18,111,191,102,170,111,191,217,63,112,191,169,210,112,191,213,98,113,191,91,240,113,191,58,123,114,191,113,3,115,191,253,136,115,191,222,11,116,191,17,140,116,191,150,9,117,191,107,132,117,191,143,252,117,191,0,114,118,191,189,228,118,191,198,84,119,191,24,194,119,191,178,44,120,191,147,148,120,191,187,249,120,191,40,92,121,191,217,187,121,191,205,24,122,191,2,115,122,191,121,202,122,191,47,31,123,191,36,113,123,191,88,192,123,191,201,12,124,191,118,86,124,191,95,157,124,191,130,225,124,191,224,34,125,191,119,97,125,191,71,157,125,191,79,214,125,191,142,12,126,191,4,64,126,191,176,112,126,191,146,158,126,191,169,201,126,191,245,241,126,191,117,23,127,191,41,58,127,191,16,90,127,191,43,119,127,191,120,145,127,191,248,168,127,191,170,189,127,191,143,207,127,191,165,222,127,191,237,234,127,191,102,244,127,191,17,251,127,191,237,254,127,191,234,255,127,63,229,248,127,63,166,230,127,63,45,201,127,63,124,160,127,63,149,108,127,63,121,45,127,63,44,227,126,63,177,141,126,63,11,45,126,63,63,193,125,63,82,74,125,63,72,200,124,63,40,59,124,63,247,162,123,63,189,255,122,63,128,81,122,63,72,152,121,63,30,212,120,63,9,5,120,63,19,43,119,63,70,70,118,63,172,86,117,63,78,92,116,63,56,87,115,63,118,71,114,63,19,45,113,63,28,8,112,63,158,216,110,63,165,158,109,63,64,90,108,63,126,11,107,63,107,178,105,63,25,79,104,63,150,225,102,63,242,105,101,63,62,232,99,63,139,92,98,63,234,198,96,63,109,39,95,63,38,126,93,63,40,203,91,63,133,14,90,63,83,72,88,63,163,120,86,63,139,159,84,63,32,189,82,63,118,209,80,63,163,220,78,63,189,222,76,63,219,215,74,63,19,200,72,63,124,175,70,63,46,142,68,63,65,100,66,63,206,49,64,63,236,246,61,63,180,179,59,63,66,104,57,63,173,20,55,63,16,185,52,63,134,85,50,63,41,234,47,63,21,119,45,63,101,252,42,63,53,122,40,63,161,240,37,63,198,95,35,63,192,199,32,63,172,40,30,63,169,130,27,63,212,213,24,63,74,34,22,63,42,104,19,63,147,167,16,63,164,224,13,63,123,19,11,63,57,64,8,63,253,102,5,63,231,135,2,63,45,70,255,62,91,113,249,62,151,145,243,62,36,167,237,62,69,178,231,62,60,179,225,62,76,170,219,62,186,151,213,62,201,123,207,62,190,86,201,62,223,40,195,62,112,242,188,62,183,179,182,62,251,108,176,62,129,30,170,62,146,200,163,62,115,107,157,62,108,7,151,62,197,156,144,62,199,43,138,62,185,180,131,62,199,111,122,62,33,107,109,62,17,92,96,62,41,67,83,62,253,32,70,62,32,246,56,62,38,195,43,62,164,136,30,62,45,71,17,62,87,255,3,62,110,99,237,61,194,189,210,61,218,14,184,61,222,87,157,61,251,153,130,61,188,172,79,61,101,28,26,61,153,10,201,60,42,167,59,60,193,120,214,186,45,68,113,188,87,215,227,188,76,129,39,189,148,15,93,189,21,74,137,189,90,6,164,189,109,187,190,189,34,104,217,189,78,11,244,189,227,81,7,190,47,152,20,190,247,215,33,190,165,16,47,190,166,65,60,190,100,106,73,190,77,138,86,190,205,160,99,190,80,173,112,190,69,175,125,190,13,83,133,190,158,200,139,190,13,56,146,190,18,161,152,190,102,3,159,190,191,94,165,190,216,178,171,190,105,255,177,190,43,68,184,190,216,128,190,190,42,181,196,190,219,224,202,190,165,3,209,190,69,29,215,190,117,45,221,190,241,51,227,190,118,48,233,190,192,34,239,190,141,10,245,190,155,231,250,190,211,92,0,191,56,64,3,191,219,29,6,191,155,245,8,191,90,199,11,191,247,146,14,191,84,88,17,191,80,23,20,191,205,207,22,191,172,129,25,191,208,44,28,191,26,209,30,191,109,110,33,191,171,4,36,191,183,147,38,191,116,27,41,191,199,155,43,191,147,20,46,191,187,133,48,191,38,239,50,191,183,80,53,191,85,170,55,191,227,251,57,191,74,69,60,191,110,134,62,191,55,191,64,191,139,239,66,191,83,23,69,191,117,54,71,191,218,76,73,191,107,90,75,191,16,95,77,191,179,90,79,191,62,77,81,191,154,54,83,191,179,22,85,191,114,237,86,191,197,186,88,191,149,126,90,191,208,56,92,191,98,233,93,191,56,144,95,191,64,45,97,191,103,192,98,191,156,73,100,191,206,200,101,191,235,61,103,191,227,168,104,191,167,9,106,191,39,96,107,191,84,172,108,191,31,238,109,191,122,37,111,191,88,82,112,191,171,116,113,191,103,140,114,191,127,153,115,191,231,155,116,191,149,147,117,191,126,128,118,191,150,98,119,191,212,57,120,191,47,6,121,191,158,199,121,191,23,126,122,191,148,41,123,191,13,202,123,191,122,95,124,191,213,233,124,191,24,105,125,191,62,221,125,191,64,70,126,191,28,164,126,191,204,246,126,191,77,62,127,191,156,122,127,191,182,171,127,191,153,209,127,191,67,236,127,191,180,251,127,191,166,255,127,63,148,227,127,63,156,154,127,63,204,36,127,63,56,130,126,63,253,178,125,63,63,183,124,63,42,143,123,63,243,58,122,63,212,186,120,63,17,15,119,63,246,55,117,63,213,53,115,63,8,9,113,63,241,177,110,63,249,48,108,63,144,134,105,63,47,179,102,63,83,183,99,63,132,147,96,63,78,72,93,63,69,214,89,63,3,62,86,63,43,128,82,63,101,157,78,63,94,150,74,63,204,107,70,63,106,30,66,63,249,174,61,63,64,30,57,63,13,109,52,63,50,156,47,63,135,172,42,63,235,158,37,63,63,116,32,63,109,45,27,63,97,203,21,63,13,79,16,63,104,185,10,63,107,11,5,63,46,140,254,62,221,212,242,62,241,242,230,62,127,232,218,62,166,183,206,62,136,98,194,62,78,235,181,62,42,84,169,62,81,159,156,62,253,206,143,62,109,229,130,62,206,201,107,62,98,159,81,62,48,80,55,62,211,224,28,62,241,85,2,62,98,104,207,61,124,0,154,61,36,251,72,61,27,164,187,60,243,119,86,187,100,61,241,188,187,192,99,189,103,93,167,189,20,189,220,189,3,251,8,190,115,127,35,190,52,231,61,190,164,45,88,190,38,78,114,190,18,34,134,190,137,5,147,190,52,207,159,190,213,124,172,190,51,12,185,190,26,123,197,190,91,199,209,190,205,238,221,190,80,239,233,190,199,198,245,190,144,185,0,191,38,121,6,191,36,33,12,191,141,176,17,191,102,38,23,191,186,129,28,191,152,193,33,191,21,229,38,191,74,235,43,191,86,211,48,191,91,156,53,191,131,69,58,191,253,205,62,191,252,52,67,191,188,121,71,191,125,155,75,191,132,153,79,191,31,115,83,191,161,39,87,191,99,182,90,191,198,30,94,191,48,96,97,191,15,122,100,191,216,107,103,191,7,53,106,191,31,213,108,191,169,75,111,191,55,152,113,191,98,186,115,191,201,177,117,191,22,126,119,191,246,30,121,191,33,148,122,191,85,221,123,191,89,250,124,191,250,234,125,191,14,175,126,191,116,70,127,191,15,177,127,191,206,238,127,191,0,0,128,63,0,0,0,128,99,250,127,63,191,117,86,188,139,233,127,63,10,113,214,188,121,205,127,63,231,206,32,189,47,166,127,63,58,94,86,189,175,115,127,63,19,242,133,189,249,53,127,63,42,175,160,189,18,237,126,63,51,101,187,189,253,152,126,63,4,19,214,189,188,57,126,63,115,183,240,189,85,207,125,63,168,168,5,190,203,89,125,63,187,239,18,190,37,217,124,63,92,48,32,190,103,77,124,63,245,105,45,190,152,182,123,63,243,155,58,190,190,20,123,63,194,197,71,190,226,103,122,63,205,230,84,190,9,176,121,63,130,254,97,190,60,237,120,63,77,12,111,190,132,31,120,63,156,15,124,190,234,70,119,63,238,131,132,190,119,99,118,63,62,250,138,190,54,117,117,63,117,106,145,190,48,124,116,63,76,212,151,190,113,120,115,63,122,55,158,190,3,106,114,63,183,147,164,190,244,80,113,63,188,232,170,190,79,45,112,63,65,54,177,190,33,255,110,63,1,124,183,190,118,198,109,63,180,185,189,190,94,131,108,63,21,239,195,190,231,53,107,63,222,27,202,190,30,222,105,63,201,63,208,190,18,124,104,63,146,90,214,190,212,15,103,63,243,107,220,190,116,153,101,63,170,115,226,190,1,25,100,63,113,113,232,190,141,142,98,63,7,101,238,190,40,250,96,63,39,78,244,190,230,91,95,63,144,44,250,190,215,179,93,63,0,0,0,191,15,2,92,63,27,228,2,191,160,70,90,63,119,194,5,191,158,129,88,63,246,154,8,191,29,179,86,63,119,109,11,191,49,219,84,63,218,57,14,191,239,249,82,63,0,0,17,191,108,15,81,63,202,191,19,191,189,27,79,63,24,121,22,191,248,30,77,63,205,43,25,191,52,25,75,63,202,215,27,191,136,10,73,63,241,124,30,191,10,243,70,63,36,27,33,191,209,210,68,63,70,178,35,191,247,169,66,63,58,66,38,191,147,120,64,63,227,202,40,191,189,62,62,63,37,76,43,191,143,252,59,63,227,197,45,191,34,178,57,63,1,56,48,191,144,95,55,63,101,162,50,191,243,4,53,63,243,4,53,191,101,162,50,63,144,95,55,191,1,56,48,63,34,178,57,191,227,197,45,63,143,252,59,191,37,76,43,63,189,62,62,191,227,202,40,63,147,120,64,191,58,66,38,63,247,169,66,191,70,178,35,63,209,210,68,191,36,27,33,63,10,243,70,191,241,124,30,63,136,10,73,191,202,215,27,63,52,25,75,191,205,43,25,63,248,30,77,191,24,121,22,63,189,27,79,191,202,191,19,63,108,15,81,191,0,0,17,63,239,249,82,191,218,57,14,63,49,219,84,191,119,109,11,63,29,179,86,191,246,154,8,63,158,129,88,191,119,194,5,63,160,70,90,191,27,228,2,63,15,2,92,191,0,0,0,63,215,179,93,191,144,44,250,62,230,91,95,191,39,78,244,62,40,250,96,191,7,101,238,62,141,142,98,191,113,113,232,62,1,25,100,191,170,115,226,62,116,153,101,191,243,107,220,62,212,15,103,191,146,90,214,62,18,124,104,191,201,63,208,62,30,222,105,191,222,27,202,62,231,53,107,191,21,239,195,62,94,131,108,191,180,185,189,62,118,198,109,191,1,124,183,62,33,255,110,191,65,54,177,62,79,45,112,191,188,232,170,62,244,80,113,191,183,147,164,62,3,106,114,191,122,55,158,62,113,120,115,191,76,212,151,62,48,124,116,191,117,106,145,62,54,117,117,191,62,250,138,62,119,99,118,191,238,131,132,62,234,70,119,191,156,15,124,62,132,31,120,191,77,12,111,62,60,237,120,191,130,254,97,62,9,176,121,191,205,230,84,62,226,103,122,191,194,197,71,62,190,20,123,191,243,155,58,62,152,182,123,191,245,105,45,62,103,77,124,191,92,48,32,62,37,217,124,191,187,239,18,62,203,89,125,191,168,168,5,62,85,207,125,191,115,183,240,61,188,57,126,191,4,19,214,61,253,152,126,191,51,101,187,61,18,237,126,191,42,175,160,61,249,53,127,191,19,242,133,61,175,115,127,191,58,94,86,61,47,166,127,191,231,206,32,61,121,205,127,191,10,113,214,60,139,233,127,191,191,117,86,60,99,250,127,191,0,48,141,36,0,0,128,191,191,117,86,188,99,250,127,191,10,113,214,188,139,233,127,191,231,206,32,189,121,205,127,191,58,94,86,189,47,166,127,191,19,242,133,189,175,115,127,191,42,175,160,189,249,53,127,191,51,101,187,189,18,237,126,191,4,19,214,189,253,152,126,191,115,183,240,189,188,57,126,191,168,168,5,190,85,207,125,191,187,239,18,190,203,89,125,191,92,48,32,190,37,217,124,191,245,105,45,190,103,77,124,191,243,155,58,190,152,182,123,191,194,197,71,190,190,20,123,191,205,230,84,190,226,103,122,191,130,254,97,190,9,176,121,191,77,12,111,190,60,237,120,191,156,15,124,190,132,31,120,191,238,131,132,190,234,70,119,191,62,250,138,190,119,99,118,191,117,106,145,190,54,117,117,191,76,212,151,190,48,124,116,191,122,55,158,190,113,120,115,191,183,147,164,190,3,106,114,191,188,232,170,190,244,80,113,191,65,54,177,190,79,45,112,191,1,124,183,190,33,255,110,191,180,185,189,190,118,198,109,191,21,239,195,190,94,131,108,191,222,27,202,190,231,53,107,191,201,63,208,190,30,222,105,191,146,90,214,190,18,124,104,191,243,107,220,190,212,15,103,191,170,115,226,190,116,153,101,191,113,113,232,190,1,25,100,191,7,101,238,190,141,142,98,191,39,78,244,190,40,250,96,191,144,44,250,190,230,91,95,191,0,0,0,191,215,179,93,191,27,228,2,191,15,2,92,191,119,194,5,191,160,70,90,191,246,154,8,191,158,129,88,191,119,109,11,191,29,179,86,191,218,57,14,191,49,219,84,191,0,0,17,191,239,249,82,191,202,191,19,191,108,15,81,191,24,121,22,191,189,27,79,191,205,43,25,191,248,30,77,191,202,215,27,191,52,25,75,191,241,124,30,191,136,10,73,191,36,27,33,191,10,243,70,191,70,178,35,191,209,210,68,191,58,66,38,191,247,169,66,191,227,202,40,191,147,120,64,191,37,76,43,191,189,62,62,191,227,197,45,191,143,252,59,191,1,56,48,191,34,178,57,191,101,162,50,191,144,95,55,191,243,4,53,191,243,4,53,191,144,95,55,191,101,162,50,191,34,178,57,191,1,56,48,191,143,252,59,191,227,197,45,191,189,62,62,191,37,76,43,191,147,120,64,191,227,202,40,191,247,169,66,191,58,66,38,191,209,210,68,191,70,178,35,191,10,243,70,191,36,27,33,191,136,10,73,191,241,124,30,191,52,25,75,191,202,215,27,191,248,30,77,191,205,43,25,191,189,27,79,191,24,121,22,191,108,15,81,191,202,191,19,191,239,249,82,191,0,0,17,191,49,219,84,191,218,57,14,191,29,179,86,191,119,109,11,191,158,129,88,191,246,154,8,191,160,70,90,191,119,194,5,191,15,2,92,191,27,228,2,191,215,179,93,191,0,0,0,191,230,91,95,191,144,44,250,190,40,250,96,191,39,78,244,190,141,142,98,191,7,101,238,190,1,25,100,191,113,113,232,190,116,153,101,191,170,115,226,190,212,15,103,191,243,107,220,190,18,124,104,191,146,90,214,190,30,222,105,191,201,63,208,190,231,53,107,191,222,27,202,190,94,131,108,191,21,239,195,190,118,198,109,191,180,185,189,190,33,255,110,191,1,124,183,190,79,45,112,191,65,54,177,190,244,80,113,191,188,232,170,190,3,106,114,191,183,147,164,190,113,120,115,191,122,55,158,190,48,124,116,191,76,212,151,190,54,117,117,191,117,106,145,190,119,99,118,191,62,250,138,190,234,70,119,191,238,131,132,190,132,31,120,191,156,15,124,190,60,237,120,191,77,12,111,190,9,176,121,191,130,254,97,190,226,103,122,191,205,230,84,190,190,20,123,191,194,197,71,190,152,182,123,191,243,155,58,190,103,77,124,191,245,105,45,190,37,217,124,191,92,48,32,190,203,89,125,191,187,239,18,190,85,207,125,191,168,168,5,190,188,57,126,191,115,183,240,189,253,152,126,191,4,19,214,189,18,237,126,191,51,101,187,189,249,53,127,191,42,175,160,189,175,115,127,191,19,242,133,189,47,166,127,191,58,94,86,189,121,205,127,191,231,206,32,189,139,233,127,191,10,113,214,188,99,250,127,191,191,117,86,188,0,0,128,191,0,48,13,165,99,250,127,191,191,117,86,60,139,233,127,191,10,113,214,60,121,205,127,191,231,206,32,61,47,166,127,191,58,94,86,61,175,115,127,191,19,242,133,61,249,53,127,191,42,175,160,61,18,237,126,191,51,101,187,61,253,152,126,191,4,19,214,61,188,57,126,191,115,183,240,61,85,207,125,191,168,168,5,62,203,89,125,191,187,239,18,62,37,217,124,191,92,48,32,62,103,77,124,191,245,105,45,62,152,182,123,191,243,155,58,62,190,20,123,191,194,197,71,62,226,103,122,191,205,230,84,62,9,176,121,191,130,254,97,62,60,237,120,191,77,12,111,62,132,31,120,191,156,15,124,62,234,70,119,191,238,131,132,62,119,99,118,191,62,250,138,62,54,117,117,191,117,106,145,62,48,124,116,191,76,212,151,62,113,120,115,191,122,55,158,62,3,106,114,191,183,147,164,62,244,80,113,191,188,232,170,62,79,45,112,191,65,54,177,62,33,255,110,191,1,124,183,62,118,198,109,191,180,185,189,62,94,131,108,191,21,239,195,62,231,53,107,191,222,27,202,62,30,222,105,191,201,63,208,62,18,124,104,191,146,90,214,62,212,15,103,191,243,107,220,62,116,153,101,191,170,115,226,62,1,25,100,191,113,113,232,62,141,142,98,191,7,101,238,62,40,250,96,191,39,78,244,62,230,91,95,191,144,44,250,62,215,179,93,191,0,0,0,63,15,2,92,191,27,228,2,63,160,70,90,191,119,194,5,63,158,129,88,191,246,154,8,63,29,179,86,191,119,109,11,63,49,219,84,191,218,57,14,63,239,249,82,191,0,0,17,63,108,15,81,191,202,191,19,63,189,27,79,191,24,121,22,63,248,30,77,191,205,43,25,63,52,25,75,191,202,215,27,63,136,10,73,191,241,124,30,63,10,243,70,191,36,27,33,63,209,210,68,191,70,178,35,63,247,169,66,191,58,66,38,63,147,120,64,191,227,202,40,63,189,62,62,191,37,76,43,63,143,252,59,191,227,197,45,63,34,178,57,191,1,56,48,63,144,95,55,191,101,162,50,63,243,4,53,191,243,4,53,63,101,162,50,191,144,95,55,63,1,56,48,191,34,178,57,63,227,197,45,191,143,252,59,63,37,76,43,191,189,62,62,63,227,202,40,191,147,120,64,63,58,66,38,191,247,169,66,63,70,178,35,191,209,210,68,63,36,27,33,191,10,243,70,63,241,124,30,191,136,10,73,63,202,215,27,191,52,25,75,63,205,43,25,191,248,30,77,63,24,121,22,191,189,27,79,63,202,191,19,191,108,15,81,63,0,0,17,191,239,249,82,63,218,57,14,191,49,219,84,63,119,109,11,191,29,179,86,63,246,154,8,191,158,129,88,63,119,194,5,191,160,70,90,63,27,228,2,191,15,2,92,63,0,0,0,191,215,179,93,63,144,44,250,190,230,91,95,63,39,78,244,190,40,250,96,63,7,101,238,190,141,142,98,63,113,113,232,190,1,25,100,63,170,115,226,190,116,153,101,63,243,107,220,190,212,15,103,63,146,90,214,190,18,124,104,63,201,63,208,190,30,222,105,63,222,27,202,190,231,53,107,63,21,239,195,190,94,131,108,63,180,185,189,190,118,198,109,63,1,124,183,190,33,255,110,63,65,54,177,190,79,45,112,63,188,232,170,190,244,80,113,63,183,147,164,190,3,106,114,63,122,55,158,190,113,120,115,63,76,212,151,190,48,124,116,63,117,106,145,190,54,117,117,63,62,250,138,190,119,99,118,63,238,131,132,190,234,70,119,63,156,15,124,190,132,31,120,63,77,12,111,190,60,237,120,63,130,254,97,190,9,176,121,63,205,230,84,190,226,103,122,63,194,197,71,190,190,20,123,63,243,155,58,190,152,182,123,63,245,105,45,190,103,77,124,63,92,48,32,190,37,217,124,63,187,239,18,190,203,89,125,63,168,168,5,190,85,207,125,63,115,183,240,189,188,57,126,63,4,19,214,189,253,152,126,63,51,101,187,189,18,237,126,63,42,175,160,189,249,53,127,63,19,242,133,189,175,115,127,63,58,94,86,189,47,166,127,63,231,206,32,189,121,205,127,63,10,113,214,188,139,233,127,63,191,117,86,188,99,250,127,63,0,200,83,165,0,0,128,63,191,117,86,60,99,250,127,63,10,113,214,60,139,233,127,63,231,206,32,61,121,205,127,63,58,94,86,61,47,166,127,63,19,242,133,61,175,115,127,63,42,175,160,61,249,53,127,63,51,101,187,61,18,237,126,63,4,19,214,61,253,152,126,63,115,183,240,61,188,57,126,63,168,168,5,62,85,207,125,63,187,239,18,62,203,89,125,63,92,48,32,62,37,217,124,63,245,105,45,62,103,77,124,63,243,155,58,62,152,182,123,63,194,197,71,62,190,20,123,63,205,230,84,62,226,103,122,63,130,254,97,62,9,176,121,63,77,12,111,62,60,237,120,63,156,15,124,62,132,31,120,63,238,131,132,62,234,70,119,63,62,250,138,62,119,99,118,63,117,106,145,62,54,117,117,63,76,212,151,62,48,124,116,63,122,55,158,62,113,120,115,63,183,147,164,62,3,106,114,63,188,232,170,62,244,80,113,63,65,54,177,62,79,45,112,63,1,124,183,62,33,255,110,63,180,185,189,62,118,198,109,63,21,239,195,62,94,131,108,63,222,27,202,62,231,53,107,63,201,63,208,62,30,222,105,63,146,90,214,62,18,124,104,63,243,107,220,62,212,15,103,63,170,115,226,62,116,153,101,63,113,113,232,62,1,25,100,63,7,101,238,62,141,142,98,63,39,78,244,62,40,250,96,63,144,44,250,62,230,91,95,63,0,0,0,63,215,179,93,63,27,228,2,63,15,2,92,63,119,194,5,63,160,70,90,63,246,154,8,63,158,129,88,63,119,109,11,63,29,179,86,63,218,57,14,63,49,219,84,63,0,0,17,63,239,249,82,63,202,191,19,63,108,15,81,63,24,121,22,63,189,27,79,63,205,43,25,63,248,30,77,63,202,215,27,63,52,25,75,63,241,124,30,63,136,10,73,63,36,27,33,63,10,243,70,63,70,178,35,63,209,210,68,63,58,66,38,63,247,169,66,63,227,202,40,63,147,120,64,63,37,76,43,63,189,62,62,63,227,197,45,63,143,252,59,63,1,56,48,63,34,178,57,63,101,162,50,63,144,95,55,63,243,4,53,63,243,4,53,63,144,95,55,63,101,162,50,63,34,178,57,63,1,56,48,63,143,252,59,63,227,197,45,63,189,62,62,63,37,76,43,63,147,120,64,63,227,202,40,63,247,169,66,63,58,66,38,63,209,210,68,63,70,178,35,63,10,243,70,63,36,27,33,63,136,10,73,63,241,124,30,63,52,25,75,63,202,215,27,63,248,30,77,63,205,43,25,63,189,27,79,63,24,121,22,63,108,15,81,63,202,191,19,63,239,249,82,63,0,0,17,63,49,219,84,63,218,57,14,63,29,179,86,63,119,109,11,63,158,129,88,63,246,154,8,63,160,70,90,63,119,194,5,63,15,2,92,63,27,228,2,63,215,179,93,63,0,0,0,63,230,91,95,63,144,44,250,62,40,250,96,63,39,78,244,62,141,142,98,63,7,101,238,62,1,25,100,63,113,113,232,62,116,153,101,63,170,115,226,62,212,15,103,63,243,107,220,62,18,124,104,63,146,90,214,62,30,222,105,63,201,63,208,62,231,53,107,63,222,27,202,62,94,131,108,63,21,239,195,62,118,198,109,63,180,185,189,62,33,255,110,63,1,124,183,62,79,45,112,63,65,54,177,62,244,80,113,63,188,232,170,62,3,106,114,63,183,147,164,62,113,120,115,63,122,55,158,62,48,124,116,63,76,212,151,62,54,117,117,63,117,106,145,62,119,99,118,63,62,250,138,62,234,70,119,63,238,131,132,62,132,31,120,63,156,15,124,62,60,237,120,63,77,12,111,62,9,176,121,63,130,254,97,62,226,103,122,63,205,230,84,62,190,20,123,63,194,197,71,62,152,182,123,63,243,155,58,62,103,77,124,63,245,105,45,62,37,217,124,63,92,48,32,62,203,89,125,63,187,239,18,62,85,207,125,63,168,168,5,62,188,57,126,63,115,183,240,61,253,152,126,63,4,19,214,61,18,237,126,63,51,101,187,61,249,53,127,63,42,175,160,61,175,115,127,63,19,242,133,61,47,166,127,63,58,94,86,61,121,205,127,63,231,206,32,61,139,233,127,63,10,113,214,60,99,250,127,63,191,117,86,60,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,5,0,0,0,2,0,0,0,3,0,0,0,2,0,0,0,0,0,206,64,0,0,200,64,0,0,184,64,0,0,170,64,0,0,162,64,0,0,154,64,0,0,144,64,0,0,140,64,0,0,156,64,0,0,150,64,0,0,146,64,0,0,142,64,0,0,156,64,0,0,148,64,0,0,138,64,0,0,144,64,0,0,140,64,0,0,148,64,0,0,152,64,0,0,142,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,112,64,0,0,102,63,0,0,76,63,0,0,38,63,0,0,0,63,0,134,107,63,0,20,46,63,0,112,189,62,0,208,76,62,15,0,0,0,10,0,0,0,5,0,0,0,26,118,0,0,34,118,0,0,50,118,0,0,82,118,0,0,90,118,0,0,106,118,0,0,138,118,0,0,178,118,0,0,2,119,0,0,162,119,0,0,170,119,0,0,186,119,0,0,32,0,10,0,20,46,100,1,221,119,0,0,40,103,0,0,29,121,0,0,93,121,0,0,111,121,0,0,15,122,0,0,87,122,0,0,168,105,0,0,32,0,16,0,102,38,171,1,159,122,0,0,190,105,0,0,159,124,0,0,223,124,0,0,253,124,0,0,253,125,0,0,69,126,0,0,190,109,0,0,0,0,0,0,64,31,0,0,184,36,0,0,236,44,0,0,188,52,0,0,92,68,0,0,168,97,0,0,128,56,1,0,0,0,0,0,40,35,0,0,224,46,0,0,164,56,0,0,68,72,0,0,180,95,0,0,172,138,0,0,128,56,1,0,0,0,0,0,4,41,0,0,176,54,0,0,104,66,0,0,252,83,0,0,84,111,0,0,16,164,0,0,128,56,1,0,168,126,0,0,171,126,0,0,10,103,242,14,86,205,228,29,10,103,242,14,117,82,130,12,89,154,4,25,117,82,130,12,70,17,49,10,237,3,98,20,70,17,49,10,218,2,215,7,249,198,173,15,218,2,215,7,34,182,82,5,218,250,164,10,34,182,82,5,70,243,46,30,43,227,75,14,31,102,128,24,28,44,29,10,218,97,72,18,237,156,244,6,236,48,19,11,227,144,165,4,237,164,29,2,10,223,107,3,48,117,0,0,112,23,0,0,32,209,255,255,32,209,255,255,0,64,0,0,108,34,0,0,66,15,0,0,18,6,0,0,77,2,0,0,219,0,0,0,237,0,0,0,153,0,0,0,73,0,0,0,30,0,0,0,12,0,0,0,7,0,0,0,0,64,0,0,147,93,0,0,189,112,0,0,237,121,0,0,178,125,0,0,36,127,0,0,16,39,0,0,232,3,0,0,248,42,0,0,232,3,0,0,188,52,0,0,232,3,0,0,176,54,0,0,208,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,46,0,0,16,39,0,0,16,39,0,0,248,42,0,0,248,42,0,0,128,62,0,0,188,52,0,0,188,52,0,0,152,58,0,0,152,58,0,0,32,78,0,0,128,62,0,0,128,62,0,0,80,70,0,0,80,70,0,0,192,93,0,0,80,70,0,0,80,70,0,0,8,82,0,0,8,82,0,0,0,125,0,0,240,85,0,0,240,85,0,0,96,109,0,0,96,109,0,0,0,250,0,0,112,148,0,0,112,148,0,0,80,195,0,0,80,195,0,0,224,46,0,0,232,3,0,0,176,54,0,0,232,3,0,0,128,62,0,0,232,3,0,0,32,78,0,0,232,3,0,0,240,85,0,0,232,3,0,0,230,90,52,56,119,78,51,57,211,217,201,57,146,145,51,58,204,96,140,58,97,251,201,58,153,126,9,59,203,128,51,59,213,37,99,59,119,46,140,59,168,138,169,59,69,184,201,59,135,166,236,59,232,46,9,60,174,102,29,60,247,2,51,60,147,255,73,60,79,88,98,60,94,17,124,60,46,145,139,60,189,199,153,60,92,172,168,60,243,60,184,60,129,121,200,60,238,95,217,60,57,240,234,60,99,42,253,60,53,7,8,61,16,204,17,61,205,228,27,61,97,80,38,61,203,14,49,61,0,31,60,61,254,128,71,61,198,52,83,61,63,56,95,61,105,139,107,61,69,46,120,61,105,144,130,61,123,48,137,61,224,247,143,61,138,229,150,61,123,249,157,61,177,51,165,61,33,147,172,61,80,24,180,61,51,194,187,61,79,145,195,61,18,132,203,61,2,155,211,61,31,214,219,61,215,51,228,61,175,180,236,61,33,88,245,61,168,29,254,61,161,130,3,62,242,6,8,62,199,155,12,62,221,64,17,62,52,246,21,62,69,187,26,62,17,144,31,62,84,116,36,62,203,103,41,62,51,106,46,62,141,123,51,62,82,155,56,62,197,201,61,62,28,6,67,62,89,80,72,62,122,168,77,62,183,13,83,62,82,128,88,62,8,0,94,62,84,140,99,62,242,36,105,62,37,202,110,62,36,123,116,62,172,55,122,62,0,0,128,62,171,233,130,62,249,216,133,62,133,205,136,62,80,199,139,62,55,198,142,62,247,201,145,62,179,210,148,62,38,224,151,62,15,242,154,62,108,8,158,62,28,35,161,62,255,65,164,62,208,100,167,62,177,139,170,62,28,182,173,62,84,228,176,62,211,21,180,62,186,74,183,62,232,130,186,62,249,189,189,62,13,252,192,62,226,60,196,62,86,128,199,62,71,198,202,62,149,14,206,62,251,88,209,62,122,165,212,62,241,243,215,62,28,68,219,62,217,149,222,62,8,233,225,62,167,61,229,62,83,147,232,62,12,234,235,62,175,65,239,62,28,154,242,62,14,243,245,62,136,76,249,62,34,166,252,62,0,0,0,63,239,172,1,63,188,89,3,63,121,6,5,63,242,178,6,63,41,95,8,63,250,10,10,63,86,182,11,63,44,97,13,63,124,11,15,63,19,181,16,63,242,93,18,63,8,6,20,63,67,173,21,63,130,83,23,63,182,248,24,63,220,156,26,63,213,63,28,63,143,225,29,63,249,129,31,63,4,33,33,63,140,190,34,63,163,90,36,63,23,245,37,63,214,141,39,63,242,36,41,63,40,186,42,63,152,77,44,63,1,223,45,63,114,110,47,63,202,251,48,63,249,134,50,63,237,15,52,63,167,150,53,63,4,27,55,63,229,156,56,63,88,28,58,63,61,153,59,63,131,19,61,63,42,139,62,63,0,0,64,63,21,114,65,63,55,225,66,63,119,77,68,63,195,182,69,63,235,28,71,63,254,127,72,63,236,223,73,63,146,60,75,63,225,149,76,63,234,235,77,63,121,62,79,63,143,141,80,63,43,217,81,63,29,33,83,63,115,101,84,63,13,166,85,63,235,226,86,63,252,27,88,63,47,81,89,63,115,130,90,63,201,175,91,63,14,217,92,63,67,254,93,63,88,31,95,63,75,60,96,63,252,84,97,63,106,105,98,63,133,121,99,63,60,133,100,63,160,140,101,63,126,143,102,63,214,141,103,63,186,135,104,63,246,124,105,63,156,109,106,63,138,89,107,63,209,64,108,63,79,35,109,63,4,1,110,63,241,217,110,63,243,173,111,63,28,125,112,63,73,71,113,63,124,12,114,63,180,204,114,63,240,135,115,63,16,62,116,63,19,239,116,63,250,154,117,63,179,65,118,63,63,227,118,63,141,127,119,63,173,22,120,63,126,168,120,63,1,53,121,63,52,188,121,63,24,62,122,63,157,186,122,63,194,49,123,63],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+10240);allocate([119,163,123,63,187,15,124,63,159,118,124,63,2,216,124,63,244,51,125,63,101,138,125,63,68,219,125,63,179,38,126,63,143,108,126,63,235,172,126,63,163,231,126,63,218,28,127,63,127,76,127,63,129,118,127,63,2,155,127,63,208,185,127,63,28,211,127,63,197,230,127,63,203,244,127,63,47,253,127,63,0,0,128,63,4,0,0,0,8,0,0,0,12,0,0,0,16,0,0,0,20,0,0,0,24,0,0,0,28,0,0,0,32,0,0,0,40,0,0,0,48,0,0,0,56,0,0,0,64,0,0,0,80,0,0,0,96,0,0,0,112,0,0,0,136,0,0,0,160,0,0,0,192,0,0,0,240,0,0,0,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,0,0,128,62,208,37,180,62,151,57,173,62,9,165,159,62,250,237,139,62,205,172,101,62,248,169,42,62,52,48,210,61,90,241,13,61,90,241,13,189,52,48,210,189,248,169,42,190,205,172,101,190,250,237,139,190,9,165,159,190,151,57,173,190,208,37,180,190,135,138,177,62,27,131,150,62,96,35,73,62,196,66,141,61,196,66,141,189,96,35,73,190,27,131,150,190,135,138,177,190,135,138,177,190,27,131,150,190,96,35,73,190,196,66,141,189,196,66,141,61,96,35,73,62,27,131,150,62,135,138,177,62,151,57,173,62,205,172,101,62,90,241,13,61,248,169,42,190,9,165,159,190,208,37,180,190,250,237,139,190,52,48,210,189,52,48,210,61,250,237,139,62,208,37,180,62,9,165,159,62,248,169,42,62,90,241,13,189,205,172,101,190,151,57,173,190,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,125,61,167,62,210,139,10,62,210,139,10,190,125,61,167,190,125,61,167,190,210,139,10,190,210,139,10,62,125,61,167,62,9,165,159,62,90,241,13,61,250,237,139,190,151,57,173,190,52,48,210,189,205,172,101,62,208,37,180,62,248,169,42,62,248,169,42,190,208,37,180,190,205,172,101,190,52,48,210,61,151,57,173,62,250,237,139,62,90,241,13,189,9,165,159,190,27,131,150,62,196,66,141,189,135,138,177,190,96,35,73,190,96,35,73,62,135,138,177,62,196,66,141,61,27,131,150,190,27,131,150,190,196,66,141,61,135,138,177,62,96,35,73,62,96,35,73,190,135,138,177,190,196,66,141,189,27,131,150,62,250,237,139,62,248,169,42,190,151,57,173,190,90,241,13,61,208,37,180,62,52,48,210,61,9,165,159,190,205,172,101,190,205,172,101,62,9,165,159,62,52,48,210,189,208,37,180,190,90,241,13,189,151,57,173,62,248,169,42,62,250,237,139,190,22,235,181,64,30,107,94,64,35,164,226,63,185,197,204,63,91,124,113,64,184,115,10,64,116,96,161,63,136,245,142,63,19,155,245,63,0,0,0,0,5,193,35,61,233,125,163,61,37,150,244,61,226,116,34,62,172,28,74,62,221,37,113,62,52,186,139,62,180,119,158,62,228,191,176,62,173,136,194,62,37,201,211,62,24,122,228,62,24,149,244,62,200,10,2,63,28,124,9,63,73,157,16,63,202,109,23,63,192,237,29,63,159,29,36,63,84,254,41,63,46,145,47,63,224,215,52,63,99,212,57,63,240,136,62,63,211,247,66,63,171,35,71,63,23,15,75,63,216,188,78,63,173,47,82,63,106,106,85,63,206,111,88,63,154,66,91,63,142,229,93,63,75,91,96,63,110,166,98,63,100,201,100,63,155,198,102,63,111,160,104,63,247,88,106,63,128,242,107,63,223,110,109,63,11,208,110,63,202,23,112,63,224,71,113,63,225,97,114,63,77,103,115,63,150,89,116,63,12,58,117,63,255,9,118,63,138,202,118,63,187,124,119,63,192,33,120,63,98,186,120,63,157,71,121,63,75,202,121,63,36,67,122,63,242,178,122,63,59,26,123,63,200,121,123,63,32,210,123,63,200,35,124,63,55,111,124,63,242,180,124,63,94,245,124,63,224,48,125,63,236,103,125,63,183,154,125,63,180,201,125,63,6,245,125,63,17,29,126,63,24,66,126,63,78,100,126,63,211,131,126,63,253,160,126,63,237,187,126,63,195,212,126,63,179,235,126,63,239,0,127,63,135,20,127,63,141,38,127,63,67,55,127,63,170,70,127,63,227,84,127,63,15,98,127,63,47,110,127,63,100,121,127,63,190,131,127,63,63,141,127,63,24,150,127,63,56,158,127,63,194,165,127,63,163,172,127,63,16,179,127,63,245,184,127,63,119,190,127,63,114,195,127,63,25,200,127,63,108,204,127,63,91,208,127,63,6,212,127,63,111,215,127,63,131,218,127,63,102,221,127,63,21,224,127,63,130,226,127,63,205,228,127,63,230,230,127,63,205,232,127,63,146,234,127,63,70,236,127,63,200,237,127,63,40,239,127,63,120,240,127,63,166,241,127,63,195,242,127,63,191,243,127,63,186,244,127,63,148,245,127,63,94,246,127,63,39,247,127,63,207,247,127,63,119,248,127,63,253,248,127,63,148,249,127,63,9,250,127,63,127,250,127,63,244,250,127,63,89,251,127,63,173,251,127,63,1,252,127,63,84,252,127,63,152,252,127,63,219,252,127,63,30,253,127,63,80,253,127,63,130,253,127,63,181,253,127,63,231,253,127,63,9,254,127,63,59,254,127,63,93,254,127,63,126,254,127,63,143,254,127,63,176,254,127,63,210,254,127,63,227,254,127,63,244,254,127,63,21,255,127,63,38,255,127,63,55,255,127,63,71,255,127,63,88,255,127,63,88,255,127,63,105,255,127,63,122,255,127,63,122,255,127,63,139,255,127,63,155,255,127,63,155,255,127,63,155,255,127,63,172,255,127,63,172,255,127,63,189,255,127,63,189,255,127,63,189,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,206,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,222,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,239,255,127,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,0,0,128,63,102,190,3,191,246,224,191,60,157,186,18,190,208,219,179,189,72,48,246,186,182,229,210,188,213,65,222,61,240,207,90,59,200,178,191,59,159,161,201,188,250,37,18,62,197,7,143,187,243,14,38,60,204,209,227,189,36,194,165,189,19,194,153,189,224,23,242,60,183,254,6,60,92,0,26,62,74,110,3,61,5,134,145,189,72,22,184,191,116,238,38,63,186,69,133,61,191,43,198,191,247,0,45,62,205,175,246,191,184,41,84,61,240,93,137,189,55,86,141,189,79,56,34,59,47,210,85,189,222,77,129,61,157,57,90,61,141,150,67,61,69,240,63,188,125,202,17,62,2,75,238,188,143,251,142,190,149,243,221,190,5,218,162,189,100,203,194,190,39,249,81,189,42,200,95,62,214,27,165,190,164,136,136,63,50,60,214,189,63,111,150,192,80,195,159,62,251,6,142,62,97,253,45,192,185,165,217,63,209,63,17,190,180,109,61,60,3,0,129,61,242,108,37,61,88,112,100,60,129,36,141,187,229,187,47,189,84,203,113,189,208,108,77,189,79,79,233,188,214,67,42,189,98,208,51,189,100,123,168,61,57,237,73,62,37,204,20,61,8,85,111,189,139,21,154,61,88,204,163,189,29,201,21,190,118,138,37,62,218,3,61,190,199,15,21,62,178,185,226,62,230,92,206,63,144,73,142,63,20,203,39,64,23,217,30,192,78,154,230,189,146,7,226,189,77,44,16,190,254,13,58,190,51,217,132,61,13,126,172,61,34,72,191,61,149,185,25,62,103,69,4,62,164,23,53,62,2,41,17,62,65,44,139,190,118,193,112,62,203,236,136,61,157,47,222,190,107,184,232,61,144,105,45,190,5,81,179,191,150,236,32,63,41,117,9,190,159,233,205,62,180,142,238,63,17,30,197,63,82,68,138,192,112,63,60,63,211,218,76,63,69,170,30,188,69,115,46,61,66,58,161,60,31,242,150,188,151,84,180,185,62,113,136,187,167,56,146,58,51,199,141,60,39,156,35,188,11,40,212,188,79,56,162,58,13,132,170,187,1,112,103,189,205,137,130,61,148,208,167,59,196,86,181,60,179,87,6,60,229,78,63,189,5,145,96,189,7,211,77,187,8,119,151,191,169,193,240,63,130,173,210,190,233,67,61,192,175,125,5,191,135,20,139,190,176,227,255,61,100,74,90,189,25,231,207,61,249,177,90,57,241,48,72,189,162,143,131,61,97,57,29,189,102,66,93,60,68,104,41,189,187,177,5,189,140,38,97,188,217,127,184,188,160,220,187,189,109,54,142,190,55,222,61,190,90,249,64,61,109,230,0,190,19,98,134,62,172,230,89,190,94,72,231,189,81,218,255,191,62,64,207,190,163,201,101,62,122,81,35,63,128,96,142,190,253,67,148,189,55,57,92,189,204,197,9,189,1,172,185,189,16,87,131,189,39,34,146,189,159,194,86,61,112,127,199,59,156,112,154,61,143,12,72,189,31,40,220,187,138,79,43,61,116,169,91,61,133,210,7,190,219,65,219,60,245,100,126,190,239,164,42,188,150,150,17,61,236,219,89,190,14,21,155,190,182,147,18,189,233,240,192,62,161,214,24,63,78,38,42,191,156,110,137,62,66,232,192,190,17,1,135,191,163,56,108,60,194,107,55,62,253,132,19,61,93,140,97,62,208,191,184,187,132,236,1,61,125,99,126,61,65,92,255,187,234,84,1,60,194,197,101,59,21,184,43,60,200,161,20,61,53,126,33,190,108,31,135,189,165,179,189,189,163,146,252,59,34,91,129,61,80,100,167,61,50,61,217,190,1,75,51,189,139,84,120,190,81,18,54,63,81,136,60,191,127,106,12,192,174,99,220,189,24,92,51,190,247,37,22,189,95,199,73,188,87,184,128,189,206,98,179,188,177,79,227,187,88,204,227,59,156,64,166,59,62,126,107,59,64,143,172,59,105,168,17,61,28,193,28,61,18,40,12,61,94,122,1,188,146,5,140,188,123,161,64,61,208,173,161,60,78,99,123,188,30,236,131,61,195,187,188,190,240,54,138,189,251,232,52,192,25,173,171,63,106,99,161,189,62,150,94,192,224,218,1,63,38,254,80,191,194,71,105,188,199,103,2,190,5,252,218,189,211,66,19,189,213,33,215,61,145,70,149,62,88,26,72,62,144,102,177,61,134,89,136,189,241,71,209,189,58,152,200,61,137,239,4,190,134,228,204,62,125,148,209,190,190,6,115,189,240,99,134,189,162,97,81,190,4,30,56,62,13,116,5,58,172,248,203,61,197,32,24,192,57,181,47,191,13,83,111,63,83,34,141,63,204,238,177,63,211,193,138,192,180,6,45,187,141,166,233,59,241,160,217,61,233,44,19,62,184,89,140,189,248,222,95,189,235,197,144,188,28,62,158,189,31,179,216,188,241,26,42,188,67,20,221,188,189,29,225,187,42,57,103,62,189,196,208,62,235,236,122,189,120,72,108,189,67,116,56,190,88,30,100,190,115,105,236,190,14,164,171,62,201,89,132,63,65,183,135,64,44,12,177,190,93,52,24,191,10,72,152,194,66,210,135,190,50,246,79,61,6,178,131,61,143,160,29,61,193,219,45,61,143,217,30,189,243,83,193,188,118,170,151,189,48,53,221,188,47,137,16,60,76,64,98,189,35,52,159,187,70,235,160,62,105,138,184,62,236,49,161,189,205,1,226,61,114,248,212,190,65,42,197,190,242,96,139,190,202,137,198,191,154,64,17,190,53,211,229,62,16,62,16,191,17,25,20,192,238,234,245,189,33,229,191,191,126,86,81,191,15,26,75,189,126,14,189,188,36,131,183,188,139,197,239,61,176,15,33,61,206,250,84,61,4,123,7,61,3,233,226,189,114,242,172,60,0,152,161,188,108,145,153,60,142,25,77,60,139,84,24,62,30,136,188,61,226,88,175,190,190,132,10,62,211,48,44,190,142,230,8,189,15,166,119,189,82,237,3,190,247,57,42,63,24,122,20,190,3,178,17,64,75,176,164,63,255,89,87,63,128,101,27,192,70,205,188,60,103,38,104,62,241,132,25,189,157,42,31,62,231,250,35,61,84,30,61,190,92,146,3,62,205,105,192,189,79,250,108,189,83,225,217,60,65,169,204,189,174,52,4,189,120,95,165,190,121,234,65,190,23,242,60,191,60,155,154,189,198,222,91,62,119,244,191,189,21,28,50,191,29,45,184,61,216,245,3,192,230,36,140,190,73,160,101,191,176,175,5,62,139,222,9,62,12,147,165,63,152,163,170,59,90,205,4,189,116,209,173,59,15,154,157,60,13,108,87,59,139,124,205,60,206,221,174,59,233,66,145,188,201,195,202,59,186,38,172,59,152,24,137,58,222,164,19,189,3,211,36,61,254,112,38,189,228,68,96,60,51,95,180,61,14,192,161,188,106,49,184,61,77,150,36,60,66,210,66,189,67,144,59,191,88,83,25,61,119,17,22,190,14,191,107,190,40,39,68,192,197,114,179,191,231,152,162,60,102,0,35,61,3,216,155,188,12,206,64,61,6,132,6,190,131,82,68,190,218,92,144,188,143,192,68,189,71,31,99,190,111,47,137,190,208,181,239,188,43,186,122,61,122,254,4,190,79,228,205,59,199,245,175,189,164,171,143,60,29,153,93,61,39,17,166,189,102,249,194,190,166,98,99,190,149,68,2,191,108,93,242,190,106,76,248,62,220,46,18,192,64,149,100,60,99,156,121,64,210,227,219,63,35,132,183,191,67,86,45,192,108,178,226,63,167,92,175,64,132,42,185,63,203,185,0,64,87,33,241,191,184,146,105,192,178,186,161,191,34,136,71,63,187,68,7,64,105,169,70,64,117,31,216,63,117,200,142,192,147,169,206,191,224,74,102,64,30,220,27,64,194,221,161,191,93,252,213,62,40,184,188,63,122,165,10,64,29,90,244,191,194,48,84,191,159,171,177,63,6,129,43,192,192,94,225,189,230,92,250,63,155,171,50,63,41,95,160,190,38,170,99,191,79,4,145,62,190,51,114,63,8,0,0,0,4,0,0,0,225,122,84,63,246,40,92,63,212,93,0,0,16,0,0,0,4,0,0,0,154,153,89,63,174,71,97,63,212,93,0,0,32,0,0,0,4,0,0,0,193,202,97,63,195,245,104,63,212,93,0,0,48,0,0,0,8,0,0,0,184,30,101,63,131,192,106,63,220,93,0,0,64,0,0,0,8,0,0,0,168,198,107,63,215,163,112,63,220,93,0,0,80,0,0,0,16,0,0,0,49,8,108,63,215,163,112,63,228,93,0,0,96,0,0,0,16,0,0,0,215,163,112,63,133,235,113,63,228,93,0,0,128,0,0,0,16,0,0,0,51,51,115,63,51,51,115,63,228,93,0,0,160,0,0,0,16,0,0,0,143,194,117,63,143,194,117,63,228,93,0,0,192,0,0,0,32,0,0,0,217,206,119,63,217,206,119,63,236,93,0,0,0,1,0,0,32,0,0,0,154,153,121,63,154,153,121,63,236,93,0,0,104,4,0,0,32,0,0,0,72,3,0,0,32,0,0,0,40,2,0,0,32,0,0,0,8,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,132,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,202,69,27,76,255,82,130,90,179,98,162,107,96,117,0,0,1,0,2,0,3,0,4,0,5,0,6,0,7,0,8,0,10,0,12,0,14,0,16,0,20,0,24,0,28,0,34,0,40,0,48,0,60,0,78,0,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,0,8,0,8,0,8,0,16,0,16,0,16,0,21,0,21,0,24,0,29,0,34,0,36,0,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,0,0,0,0,0,0,0,0,41,0,41,0,41,0,82,0,82,0,123,0,164,0,200,0,222,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,164,0,164,0,240,0,10,1,27,1,39,1,41,0,41,0,41,0,41,0,41,0,41,0,41,0,41,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,10,1,10,1,49,1,62,1,72,1,80,1,123,0,123,0,123,0,123,0,123,0,123,0,123,0,123,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,62,1,62,1,87,1,95,1,102,1,108,1,240,0,240,0,240,0,240,0,240,0,240,0,240,0,240,0,49,1,49,1,49,1,49,1,87,1,87,1,87,1,95,1,95,1,114,1,120,1,126,1,131,1,0,0,12,0,24,0,36,0,48,0,4,0,16,0,28,0,40,0,52,0,8,0,20,0,32,0,44,0,56,0,1,0,13,0,25,0,37,0,49,0,5,0,17,0,29,0,41,0,53,0,9,0,21,0,33,0,45,0,57,0,2,0,14,0,26,0,38,0,50,0,6,0,18,0,30,0,42,0,54,0,10,0,22,0,34,0,46,0,58,0,3,0,15,0,27,0,39,0,51,0,7,0,19,0,31,0,43,0,55,0,11,0,23,0,35,0,47,0,59,0,0,0,24,0,48,0,72,0,96,0,8,0,32,0,56,0,80,0,104,0,16,0,40,0,64,0,88,0,112,0,4,0,28,0,52,0,76,0,100,0,12,0,36,0,60,0,84,0,108,0,20,0,44,0,68,0,92,0,116,0,1,0,25,0,49,0,73,0,97,0,9,0,33,0,57,0,81,0,105,0,17,0,41,0,65,0,89,0,113,0,5,0,29,0,53,0,77,0,101,0,13,0,37,0,61,0,85,0,109,0,21,0,45,0,69,0,93,0,117,0,2,0,26,0,50,0,74,0,98,0,10,0,34,0,58,0,82,0,106,0,18,0,42,0,66,0,90,0,114,0,6,0,30,0,54,0,78,0,102,0,14,0,38,0,62,0,86,0,110,0,22,0,46,0,70,0,94,0,118,0,3,0,27,0,51,0,75,0,99,0,11,0,35,0,59,0,83,0,107,0,19,0,43,0,67,0,91,0,115,0,7,0,31,0,55,0,79,0,103,0,15,0,39,0,63,0,87,0,111,0,23,0,47,0,71,0,95,0,119,0,0,0,48,0,96,0,144,0,192,0,16,0,64,0,112,0,160,0,208,0,32,0,80,0,128,0,176,0,224,0,4,0,52,0,100,0,148,0,196,0,20,0,68,0,116,0,164,0,212,0,36,0,84,0,132,0,180,0,228,0,8,0,56,0,104,0,152,0,200,0,24,0,72,0,120,0,168,0,216,0,40,0,88,0,136,0,184,0,232,0,12,0,60,0,108,0,156,0,204,0,28,0,76,0,124,0,172,0,220,0,44,0,92,0,140,0,188,0,236,0,1,0,49,0,97,0,145,0,193,0,17,0,65,0,113,0,161,0,209,0,33,0,81,0,129,0,177,0,225,0,5,0,53,0,101,0,149,0,197,0,21,0,69,0,117,0,165,0,213,0,37,0,85,0,133,0,181,0,229,0,9,0,57,0,105,0,153,0,201,0,25,0,73,0,121,0,169,0,217,0,41,0,89,0,137,0,185,0,233,0,13,0,61,0,109,0,157,0,205,0,29,0,77,0,125,0,173,0,221,0,45,0,93,0,141,0,189,0,237,0,2,0,50,0,98,0,146,0,194,0,18,0,66,0,114,0,162,0,210,0,34,0,82,0,130,0,178,0,226,0,6,0,54,0,102,0,150,0,198,0,22,0,70,0,118,0,166,0,214,0,38,0,86,0,134,0,182,0,230,0,10,0,58,0,106,0,154,0,202,0,26,0,74,0,122,0,170,0,218,0,42,0,90,0,138,0,186,0,234,0,14,0,62,0,110,0,158,0,206,0,30,0,78,0,126,0,174,0,222,0,46,0,94,0,142,0,190,0,238,0,3,0,51,0,99,0,147,0,195,0,19,0,67,0,115,0,163,0,211,0,35,0,83,0,131,0,179,0,227,0,7,0,55,0,103,0,151,0,199,0,23,0,71,0,119,0,167,0,215,0,39,0,87,0,135,0,183,0,231,0,11,0,59,0,107,0,155,0,203,0,27,0,75,0,123,0,171,0,219,0,43,0,91,0,139,0,187,0,235,0,15,0,63,0,111,0,159,0,207,0,31,0,79,0,127,0,175,0,223,0,47,0,95,0,143,0,191,0,239,0,0,0,96,0,192,0,32,1,128,1,32,0,128,0,224,0,64,1,160,1,64,0,160,0,0,1,96,1,192,1,8,0,104,0,200,0,40,1,136,1,40,0,136,0,232,0,72,1,168,1,72,0,168,0,8,1,104,1,200,1,16,0,112,0,208,0,48,1,144,1,48,0,144,0,240,0,80,1,176,1,80,0,176,0,16,1,112,1,208,1,24,0,120,0,216,0,56,1,152,1,56,0,152,0,248,0,88,1,184,1,88,0,184,0,24,1,120,1,216,1,4,0,100,0,196,0,36,1,132,1,36,0,132,0,228,0,68,1,164,1,68,0,164,0,4,1,100,1,196,1,12,0,108,0,204,0,44,1,140,1,44,0,140,0,236,0,76,1,172,1,76,0,172,0,12,1,108,1,204,1,20,0,116,0,212,0,52,1,148,1,52,0,148,0,244,0,84,1,180,1,84,0,180,0,20,1,116,1,212,1,28,0,124,0,220,0,60,1,156,1,60,0,156,0,252,0,92,1,188,1,92,0,188,0,28,1,124,1,220,1,1,0,97,0,193,0,33,1,129,1,33,0,129,0,225,0,65,1,161,1,65,0,161,0,1,1,97,1,193,1,9,0,105,0,201,0,41,1,137,1,41,0,137,0,233,0,73,1,169,1,73,0,169,0,9,1,105,1,201,1,17,0,113,0,209,0,49,1,145,1,49,0,145,0,241,0,81,1,177,1,81,0,177,0,17,1,113,1,209,1,25,0,121,0,217,0,57,1,153,1,57,0,153,0,249,0,89,1,185,1,89,0,185,0,25,1,121,1,217,1,5,0,101,0,197,0,37,1,133,1,37,0,133,0,229,0,69,1,165,1,69,0,165,0,5,1,101,1,197,1,13,0,109,0,205,0,45,1,141,1,45,0,141,0,237,0,77,1,173,1,77,0,173,0,13,1,109,1,205,1,21,0,117,0,213,0,53,1,149,1,53,0,149,0,245,0,85,1,181,1,85,0,181,0,21,1,117,1,213,1,29,0,125,0,221,0,61,1,157,1,61,0,157,0,253,0,93,1,189,1,93,0,189,0,29,1,125,1,221,1,2,0,98,0,194,0,34,1,130,1,34,0,130,0,226,0,66,1,162,1,66,0,162,0,2,1,98,1,194,1,10,0,106,0,202,0,42,1,138,1,42,0,138,0,234,0,74,1,170,1,74,0,170,0,10,1,106,1,202,1,18,0,114,0,210,0,50,1,146,1,50,0,146,0,242,0,82,1,178,1,82,0,178,0,18,1,114,1,210,1,26,0,122,0,218,0,58,1,154,1,58,0,154,0,250,0,90,1,186,1,90,0,186,0,26,1,122,1,218,1,6,0,102,0,198,0,38,1,134,1,38,0,134,0,230,0,70,1,166,1,70,0,166,0,6,1,102,1,198,1,14,0,110,0,206,0,46,1,142,1,46,0,142,0,238,0,78,1,174,1,78,0,174,0,14,1,110,1,206,1,22,0,118,0,214,0,54,1,150,1,54,0,150,0,246,0,86,1,182,1,86,0,182,0,22,1,118,1,214,1,30,0,126,0,222,0,62,1,158,1,62,0,158,0,254,0,94,1,190,1,94,0,190,0,30,1,126,1,222,1,3,0,99,0,195,0,35,1,131,1,35,0,131,0,227,0,67,1,163,1,67,0,163,0,3,1,99,1,195,1,11,0,107,0,203,0,43,1,139,1,43,0,139,0,235,0,75,1,171,1,75,0,171,0,11,1,107,1,203,1,19,0,115,0,211,0,51,1,147,1,51,0,147,0,243,0,83,1,179,1,83,0,179,0,19,1,115,1,211,1,27,0,123,0,219,0,59,1,155,1,59,0,155,0,251,0,91,1,187,1,91,0,187,0,27,1,123,1,219,1,7,0,103,0,199,0,39,1,135,1,39,0,135,0,231,0,71,1,167,1,71,0,167,0,7,1,103,1,199,1,15,0,111,0,207,0,47,1,143,1,47,0,143,0,239,0,79,1,175,1,79,0,175,0,15,1,111,1,207,1,23,0,119,0,215,0,55,1,151,1,55,0,151,0,247,0,87,1,183,1,87,0,183,0,23,1,119,1,215,1,31,0,127,0,223,0,63,1,159,1,63,0,159,0,255,0,95,1,191,1,95,0,191,0,31,1,127,1,223,1,81,11,10,9,10,9,10,9,239,8,239,8,10,9,252,8,23,9,239,8,72,11,20,10,90,9,63,9,10,9,226,8,226,8,226,8,226,8,146,8,183,9,36,9,36,9,10,9,10,9,10,9,36,9,36,9,63,9,50,9,144,12,206,10,36,9,36,9,10,9,226,8,173,8,159,8,213,8,146,8,156,9,170,9,63,9,90,9,90,9,90,9,90,9,63,9,103,9,10,9,151,13,240,11,79,8,159,8,226,8,226,8,226,8,239,8,10,9,213,8,210,12,69,12,20,10,90,9,199,8,173,8,159,8,146,8,146,8,66,8,0,16,5,15,173,8,60,10,60,10,103,9,10,9,90,9,63,9,26,8,106,12,172,12,63,9,173,8,249,9,130,9,36,9,10,9,119,8,173,8,10,13,160,13,166,10,146,8,213,8,156,9,50,9,63,9,159,8,53,8,50,9,116,9,23,9,63,9,90,9,116,9,116,9,116,9,156,9,63,9,195,14,45,14,130,9,223,9,63,9,226,8,226,8,252,8,159,8,0,8,182,12,153,12,153,10,30,11,143,9,23,9,252,8,252,8,226,8,79,8,191,12,228,12,193,10,246,10,143,9,213,8,213,8,199,8,79,8,53,8,57,11,165,11,73,10,63,9,103,9,50,9,146,8,199,8,199,8,66,8,153,12,125,12,73,10,20,10,226,8,133,8,199,8,173,8,173,8,93,8,106,12,238,12,180,10,103,9,226,8,226,8,226,8,239,8,146,8,66,8,69,12,200,12,156,9,13,8,239,8,196,9,63,9,183,9,130,9,133,8,179,13,210,12,10,9,140,10,87,10,170,9,63,9,90,9,36,9,79,8,95,13,207,13,222,11,240,11,252,8,158,7,173,8,226,8,226,8,226,8,76,13,38,13,39,8,127,10,57,11,50,9,116,9,226,8,170,9,236,9,176,14,160,13,158,7,100,10,81,11,223,9,90,9,63,9,156,9,213,8,212,11,200,12,180,10,72,11,180,10,106,8,79,8,239,8,186,8,199,8,111,14,73,14,233,7,177,7,100,10,140,10,20,10,196,9,23,9,63,9,135,12,85,13,50,9,26,8,72,11,72,11,36,9,183,9,199,8,119,8,10,13,38,13,30,11,220,10,23,9,106,8,226,8,239,8,66,8,13,8,23,9,252,8,133,8,119,8,133,8,63,9,73,10,140,10,140,10,249,9,103,9,130,9,173,8,213,8,173,8,173,8,36,9,116,9,47,10,140,10,222,11,172,12,246,10,72,11,170,9,26,8,252,8,10,9,50,9,76,9,173,8,106,8,79,8,239,8,196,9,233,10,233,10,60,10,20,10,63,9,92,14,129,14,186,8,46,7,133,8,193,10,166,10,113,10,209,9,159,8,233,10,88,12,166,10,249,9,30,11,209,9,133,8,90,9,173,8,133,8,250,0,3,0,6,0,3,0,3,0,3,0,4,0,3,0,3,0,3,0,205,1,73,14,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,109,11,147,11,147,11,109,11,30,11,144,12,13,12,156,11,240,11,240,11,194,11,194,11,194,11,147,11,147,11,194,11,156,11,72,11,30,11,30,11,166,10,80,15,174,15,165,11,135,12,135,12,118,11,240,11,30,11,50,12,172,12,109,11,30,11,60,10,249,9,220,10,109,11,188,13,125,12,194,11,31,12,203,11,72,11,109,11,109,11,109,11,109,11,72,11,72,11,72,11,72,11,72,11,193,10,190,19,190,19,118,11,245,13,57,13,240,11,13,12,233,10,88,12,88,12,156,11,30,11,209,9,236,9,193,10,72,11,76,17,53,16,140,10,193,10,156,11,194,11,109,11,30,11,165,11,203,11,109,11,109,11,109,11,109,11,72,11,166,10,36,14,203,11,156,11,240,11,240,11,57,11,246,10,240,11,144,12,231,11,165,11,219,12,219,12,165,11,238,12,175,11,107,20,150,19,236,9,10,13,198,13,57,13,125,12,22,12,48,13,165,11,140,10,87,10,127,10,233,10,30,11,113,10,217,19,54,20,7,18,76,17,156,9,81,11,231,11,135,12,97,12,127,10,180,10,72,11,30,11,233,10,30,11,140,10,50,12,72,11,147,11,109,11,109,11,109,11,109,11,147,11,147,11,147,11,147,11,109,11,109,11,147,11,147,11,147,11,106,16,135,12,165,11,31,12,194,11,72,11,72,11,109,11,156,11,57,11,100,11,203,11,156,11,194,11,125,12,57,11,176,14,176,14,172,12,31,12,165,11,72,11,109,11,72,11,156,11,118,11,233,10,233,10,30,11,72,11,72,11,100,10,14,15,174,15,135,12,50,12,172,12,118,11,231,11,147,11,147,11,13,12,30,11,233,10,233,10,233,10,233,10,20,10,5,15,240,15,29,13,188,13,22,12,180,10,194,11,118,11,50,12,13,12,30,11,30,11,87,10,87,10,30,11,246,10,27,20,30,19,153,12,5,15,113,13,97,12,81,11,85,13,123,13,140,10,20,10,113,10,180,10,30,11,246,10,193,10,13,16,205,14,219,12,88,12,109,11,72,11,72,11,109,11,233,10,180,10,233,10,180,10,233,10,30,11,72,11,246,10,217,19,190,19,231,11,217,13,172,12,240,11,13,12,128,11,31,12,81,11,180,10,180,10,180,10,30,11,233,10,60,10,213,16,213,16,44,11,223,9,135,12,48,13,48,13,3,12,3,12,48,13,240,11,30,11,87,10,20,10,166,10,193,10,240,11,100,11,246,10,72,11,180,10,127,10,81,11,31,12,78,12,78,12,144,12,97,12,240,11,194,11,147,11,30,11,23,17,42,15,109,11,72,11,30,11,72,11,30,11,30,11,72,11,72,11,72,11,30,11,72,11,109,11,72,11,30,11,165,11,100,11,100,11,165,11,165,11,240,11,50,12,144,12,78,12,240,11,194,11,156,11,156,11,156,11,109,11,180,10,133,16,53,16,238,12,19,13,109,11,147,11,72,11,165,11,165,11,30,11,233,10,180,10,30,11,30,11,30,11,233,10,240,15,174,15,31,12,194,11,109,11,109,11,109,11,72,11,109,11,109,11,30,11,30,11,30,11,233,10,72,11,220,10,7,18,223,17,97,12,113,13,135,12,165,11,81,11,222,11,50,12,180,10,127,10,127,10,127,10,180,10,233,10,140,10,53,16,173,16,205,14,73,14,166,10,220,10,72,11,72,11,194,11,156,11,109,11,30,11,127,10,127,10,233,10,72,11,119,16,226,13,193,10,30,11,30,11,72,11,72,11,72,11,109,11,109,11,72,11,109,11,109,11,109,11,147,11,72,11,54,20,57,19,213,8,104,13,205,14,151,13,19,13,30,11,238,12,151,13,78,12,81,11,156,9,183,9,193,10,109,11,123,13,101,14,50,12,125,12,29,13,231,11,135,12,135,12,165,11,144,12,13,12,109,11,109,11,127,10,236,9,130,9,165,11,194,11,233,10,233,10,180,10,233,10,30,11,156,11,240,11,31,12,78,12,78,12,78,12,31,12,194,11,194,11,128,11,57,11,127,10,166,10,220,10,194,11,104,13,217,13,29,13,172,12,240,11,194,11,147,11,109,11,72,11,30,11,203,11,128,11,81,11,194,11,194,11,156,11,203,11,31,12,240,11,240,11,194,11,72,11,30,11,109,11,109,11,72,11,80,15,127,15,194,11,125,12,29,13,144,12,219,12,219,12,151,13,120,14,113,13,166,10,133,8,156,9,20,10,47,10,100,0,3,0,40,0,3,0,3,0,3,0,5,0,14,0,14,0,10,0,11,0,3,0,8,0,9,0,7,0,3,0,91,1,18,0,29,0,38,0,40,0,46,0,52,0,62,0,84,0,92,202,190,216,182,223,154,226,156,230,120,236,122,244,204,252,52,3,134,11,136,19,100,25,102,29,74,32,66,39,164,53,100,0,240,0,32,0,100,0,205,60,0,48,0,32,0,32,254,31,246,31,234,31,216,31,194,31,168,31,136,31,98,31,58,31,10,31,216,30,160,30,98,30,34,30,220,29,144,29,66,29,238,28,150,28,58,28,216,27,114,27,10,27,156,26,42,26,180,25,58,25,188,24,60,24,182,23,46,23,160,22,16,22,126,21,232,20,78,20,176,19,16,19,110,18,200,17,30,17,116,16,198,15,22,15,100,14,174,13,248,12,64,12,132,11,200,10,10,10,74,9,138,8,198,7,2,7,62,6,120,5,178,4,234,3,34,3,90,2,146,1,202,0,0,0,54,255,110,254,166,253,222,252,22,252,78,251,136,250,194,249,254,248,58,248,118,247,182,246,246,245,56,245,124,244,192,243,8,243,82,242,156,241,234,240,58,240,140,239,226,238,56,238,146,237,240,236,80,236,178,235,24,235,130,234,240,233,96,233,210,232,74,232,196,231,68,231,198,230,76,230,214,229,100,229,246,228,142,228,40,228,198,227,106,227,18,227,190,226,112,226,36,226,222,225,158,225,96,225,40,225,246,224,198,224,158,224,120,224,88,224,62,224,40,224,22,224,10,224,2,224,0,224,42,175,213,201,207,255,64,0,17,0,99,255,97,1,16,254,163,0,39,43,189,86,217,255,6,0,91,0,86,255,186,0,23,0,128,252,192,24,216,77,237,255,220,255,102,0,167,255,232,255,72,1,73,252,8,10,37,62,135,199,61,201,64,0,128,0,134,255,36,0,54,1,0,253,72,2,51,36,69,69,12,0,128,0,18,0,114,255,32,1,139,255,159,252,27,16,123,56,104,2,13,200,246,255,39,0,58,0,210,255,172,255,120,0,184,0,197,254,227,253,4,5,4,21,64,35,230,62,198,196,243,255,0,0,20,0,26,0,5,0,225,255,213,255,252,255,65,0,90,0,7,0,99,255,8,255,212,255,81,2,47,6,52,10,199,12,228,87,5,197,3,0,242,255,236,255,241,255,2,0,25,0,37,0,25,0,240,255,185,255,149,255,177,255,50,0,36,1,111,2,214,3,8,5,184,5,148,107,103,196,17,0,12,0,8,0,1,0,246,255,234,255,226,255,224,255,234,255,3,0,44,0,100,0,168,0,243,0,61,1,125,1,173,1,199,1,19,245,149,230,89,18,243,41,31,6,84,32,189,0,168,253,105,2,103,119,117,0,97,255,210,251,8,116,52,0,221,0,168,246,116,110,252,255,17,2,234,242,229,102,208,255,246,2,140,240,165,93,176,255,137,3,117,239,6,83,157,255,204,3,130,239,102,71,149,255,199,3,139,240,39,59,153,255,128,3,97,242,174,46,165,255,5,3,207,244,94,34,185,255,99,2,161,247,152,22,210,255,169,1,161,250,180,11,0,1,1,1,2,3,3,3,2,3,3,3,2,3,3,3,0,3,12,15,48,51,60,63,192,195,204,207,240,243,252,255,0,255,0,255,0,255,0,255,0,255,0,254,1,0,1,255,0,254,0,253,2,0,1,255,0,254,0,253,3,0,1,255,2,1,0,25,23,2,0,126,124,119,109,87,41,19,9,4,2,0,255,255,156,110,86,70,59,51,45,40,37,33,31,28,26,25,23,22,21,20,19,18,17,16,16,15,15,14,13,13,12,12,12,12,11,11,11,10,10,10,9,9,9,9,9,9,8,8,8,8,8,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,90,80,75,69,63,56,49,40,34,29,20,18,10,0,0,0,0,0,0,0,0,110,100,90,84,78,71,65,58,51,45,39,32,26,20,12,0,0,0,0,0,0,118,110,103,93,86,80,75,70,65,59,53,47,40,31,23,15,4,0,0,0,0,126,119,112,104,95,89,83,78,72,66,60,54,47,39,32,25,17,12,1,0,0,134,127,120,114,103,97,91,85,78,72,66,60,54,47,41,35,29,23,16,10,1,144,137,130,124,113,107,101,95,88,82,76,70,64,57,51,45,39,33,26,15,1,152,145,138,132,123,117,111,105,98,92,86,80,74,67,61,55,49,43,36,20,1,162,155,148,142,133,127,121,115,108,102,96,90,84,77,71,65,59,53,46,30,1,172,165,158,152,143,137,131,125,118,112,106,100,94,87,81,75,69,63,56,45,20,200,200,200,200,200,200,200,200,198,193,188,183,178,173,168,163,158,153,148,129,104,40,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,40,15,23,28,31,34,36,38,39,41,42,43,44,45,46,47,47,49,50,51,52,53,54,55,55,57,58,59,60,61,62,63,63,65,66,67,68,69,70,71,71,40,20,33,41,48,53,57,61,64,66,69,71,73,75,76,78,80,82,85,87,89,91,92,94,96,98,101,103,105,107,108,110,112,114,117,119,121,123,124,126,128,40,23,39,51,60,67,73,79,83,87,91,94,97,100,102,105,107,111,115,118,121,124,126,129,131,135,139,142,145,148,150,153,155,159,163,166,169,172,174,177,179,35,28,49,65,78,89,99,107,114,120,126,132,136,141,145,149,153,159,165,171,176,180,185,189,192,199,205,211,216,220,225,229,232,239,245,251,21,33,58,79,97,112,125,137,148,157,166,174,182,189,195,201,207,217,227,235,243,251,17,35,63,86,106,123,139,152,165,177,187,197,206,214,222,230,237,250,25,31,55,75,91,105,117,128,138,146,154,161,168,174,180,185,190,200,208,215,222,229,235,240,245,255,16,36,65,89,110,128,144,159,173,185,196,207,217,226,234,242,250,11,41,74,103,128,151,172,191,209,225,241,255,9,43,79,110,138,163,186,207,227,246,12,39,71,99,123,144,164,182,198,214,228,241,253,9,44,81,113,142,168,192,214,235,255,7,49,90,127,160,191,220,247,6,51,95,134,170,203,234,7,47,87,123,155,184,212,237,6,52,97,137,174,208,240,5,57,106,151,192,231,5,59,111,158,202,243,5,55,103,147,187,224,5,60,113,161,206,248,4,65,122,175,224,4,67,127,182,234,224,224,224,224,224,224,224,224,160,160,160,160,185,185,185,178,178,168,134,61,37,224,224,224,224,224,224,224,224,240,240,240,240,207,207,207,198,198,183,144,66,40,160,160,160,160,160,160,160,160,185,185,185,185,193,193,193,183,183,172,138,64,38,240,240,240,240,240,240,240,240,207,207,207,207,204,204,204,193,193,180,143,66,40,185,185,185,185,185,185,185,185,193,193,193,193,193,193,193,183,183,172,138,65,39,207,207,207,207,207,207,207,207,204,204,204,204,201,201,201,188,188,176,141,66,40,193,193,193,193,193,193,193,193,193,193,193,193,194,194,194,184,184,173,139,65,39,204,204,204,204,204,204,204,204,201,201,201,201,198,198,198,187,187,175,140,66,40,72,127,65,129,66,128,65,128,64,128,62,128,64,128,64,128,92,78,92,79,92,78,90,79,116,41,115,40,114,40,132,26,132,26,145,17,161,12,176,10,177,11,24,179,48,138,54,135,54,132,53,134,56,133,55,132,55,132,61,114,70,96,74,88,75,88,87,74,89,66,91,67,100,59,108,50,120,40,122,37,97,43,78,50,83,78,84,81,88,75,86,74,87,71,90,73,93,74,93,74,109,40,114,36,117,34,117,34,143,17,145,18,146,19,162,12,165,10,178,7,189,6,190,8,177,9,23,178,54,115,63,102,66,98,69,99,74,89,71,91,73,91,78,89,86,80,92,66,93,64,102,59,103,60,104,60,117,52,123,44,138,35,133,31,97,38,77,45,61,90,93,60,105,42,107,41,110,45,116,38,113,38,112,38,124,26,132,27,136,19,140,20,155,14,159,16,158,18,170,13,177,10,187,8,192,6,175,9,159,10,21,178,59,110,71,86,75,85,84,83,91,66,88,73,87,72,92,75,98,72,105,58,107,54,115,52,114,55,112,56,129,51,132,40,150,33,140,29,98,35,77,42,42,121,96,66,108,43,111,40,117,44,123,32,120,36,119,33,127,33,134,34,139,21,147,23,152,20,158,25,154,26,166,21,173,16,184,13,184,10,150,13,139,15,22,178,63,114,74,82,84,83,92,82,103,62,96,72,96,67,101,73,107,72,113,55,118,52,125,52,118,52,117,55,135,49,137,39,157,32,145,29,97,33,77,40,2,1,0,0,8,13,16,19,21,23,24,26,27,28,29,30,31,32,32,33,34,34,35,36,36,37,37,224,112,44,15,3,2,1,0,254,237,192,132,70,23,4,0,255,252,226,155,61,11,2,0,250,245,234,203,71,50,42,38,35,33,31,29,28,27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1,0,179,99,0,71,56,43,30,21,12,6,0,199,165,144,124,109,96,84,71,61,51,42,32,23,15,8,0,241,225,211,199,187,175,164,153,142,132,123,114,105,96,88,80,72,64,57,50,44,38,33,29,24,20,16,12,9,5,2,0,15,131,138,138,155,155,173,173,69,93,115,118,131,138,141,138,150,150,155,150,155,160,166,160,131,128,134,141,141,141,145,145,145,150,155,155,155,155,160,160,160,160,166,166,173,173,182,192,182,192,192,192,205,192,205,224,4,6,24,7,5,0,0,2,0,0,12,28,41,13,252,247,15,42,25,14,1,254,62,41,247,246,37,65,252,3,250,4,66,7,248,16,14,38,253,33,13,22,39,23,12,255,36,64,27,250,249,10,55,43,17,1,1,8,1,1,6,245,74,53,247,244,55,76,244,8,253,3,93,27,252,26,39,59,3,248,2,0,77,11,9,248,22,44,250,7,40,9,26,3,9,249,20,101,249,4,3,248,42,26,0,241,33,68,2,23,254,55,46,254,15,3,255,21,16,41,250,27,61,39,5,245,42,88,4,1,254,60,65,6,252,255,251,73,56,1,247,19,94,29,247,0,12,99,6,4,8,237,102,46,243,3,2,13,3,2,9,235,84,72,238,245,46,104,234,8,18,38,48,23,0,240,70,83,235,11,5,245,117,22,248,250,23,117,244,3,3,248,95,28,4,246,15,77,60,241,255,4,124,2,252,3,38,84,24,231,2,13,42,13,31,21,252,56,46,255,255,35,79,243,19,249,65,88,247,242,20,4,81,49,227,20,0,75,3,239,5,247,44,92,248,1,253,22,69,31,250,95,41,244,5,39,67,16,252,1,0,250,120,55,220,243,44,122,4,232,81,5,11,3,7,2,0,9,10,88,46,2,90,87,93,91,82,98,109,120,118,12,113,115,117,119,99,59,87,111,63,111,112,80,126,124,125,124,129,121,126,23,132,127,127,127,126,127,122,133,130,134,101,118,119,145,126,86,124,120,123,119,170,173,107,109,8,16,32,12,35,60,83,108,132,157,180,206,228,15,32,55,77,101,125,151,175,201,225,19,42,66,89,114,137,162,184,209,230,12,25,50,72,97,120,147,172,200,223,26,44,69],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+20480);allocate([90,114,135,159,180,205,225,13,22,53,80,106,130,156,180,205,228,15,25,44,64,90,115,142,168,196,222,19,24,62,82,100,120,145,168,190,214,22,31,50,79,103,120,151,170,203,227,21,29,45,65,106,124,150,171,196,224,30,49,75,97,121,142,165,186,209,229,19,25,52,70,93,116,143,166,192,219,26,34,62,75,97,118,145,167,194,217,25,33,56,70,91,113,143,165,196,223,21,34,51,72,97,117,145,171,196,222,20,29,50,67,90,117,144,168,197,221,22,31,48,66,95,117,146,168,196,222,24,33,51,77,116,134,158,180,200,224,21,28,70,87,106,124,149,170,194,217,26,33,53,64,83,117,152,173,204,225,27,34,65,95,108,129,155,174,210,225,20,26,72,99,113,131,154,176,200,219,34,43,61,78,93,114,155,177,205,229,23,29,54,97,124,138,163,179,209,229,30,38,56,89,118,129,158,178,200,231,21,29,49,63,85,111,142,163,193,222,27,48,77,103,133,158,179,196,215,232,29,47,74,99,124,151,176,198,220,237,33,42,61,76,93,121,155,174,207,225,29,53,87,112,136,154,170,188,208,227,24,30,52,84,131,150,166,186,203,229,37,48,64,84,104,118,156,177,201,230,212,178,148,129,108,96,85,82,79,77,61,59,57,56,51,49,48,45,42,41,40,38,36,34,31,30,21,12,10,3,1,0,255,245,244,236,233,225,217,203,190,176,175,161,149,136,125,114,102,91,81,71,60,52,43,35,28,20,19,18,12,11,5,0,179,138,140,148,151,149,153,151,163,116,67,82,59,92,72,100,89,92,16,0,0,0,0,99,66,36,36,34,36,34,34,34,34,83,69,36,52,34,116,102,70,68,68,176,102,68,68,34,65,85,68,84,36,116,141,152,139,170,132,187,184,216,137,132,249,168,185,139,104,102,100,68,68,178,218,185,185,170,244,216,187,187,170,244,187,187,219,138,103,155,184,185,137,116,183,155,152,136,132,217,184,184,170,164,217,171,155,139,244,169,184,185,170,164,216,223,218,138,214,143,188,218,168,244,141,136,155,170,168,138,220,219,139,164,219,202,216,137,168,186,246,185,139,116,185,219,185,138,100,100,134,100,102,34,68,68,100,68,168,203,221,218,168,167,154,136,104,70,164,246,171,137,139,137,155,218,219,139,255,254,253,238,14,3,2,1,0,255,254,252,218,35,3,2,1,0,255,254,250,208,59,4,2,1,0,255,254,246,194,71,10,2,1,0,255,252,236,183,82,8,2,1,0,255,252,235,180,90,17,2,1,0,255,248,224,171,97,30,4,1,0,255,254,236,173,95,37,7,1,0,255,255,255,131,6,145,255,255,255,255,255,236,93,15,96,255,255,255,255,255,194,83,25,71,221,255,255,255,255,162,73,34,66,162,255,255,255,210,126,73,43,57,173,255,255,255,201,125,71,48,58,130,255,255,255,166,110,73,57,62,104,210,255,255,251,123,65,55,68,100,171,255,7,23,38,54,69,85,100,116,131,147,162,178,193,208,223,239,13,25,41,55,69,83,98,112,127,142,157,171,187,203,220,236,15,21,34,51,61,78,92,106,126,136,152,167,185,205,225,240,10,21,36,50,63,79,95,110,126,141,157,173,189,205,221,237,17,20,37,51,59,78,89,107,123,134,150,164,184,205,224,240,10,15,32,51,67,81,96,112,129,142,158,173,189,204,220,236,8,21,37,51,65,79,98,113,126,138,155,168,179,192,209,218,12,15,34,55,63,78,87,108,118,131,148,167,185,203,219,236,16,19,32,36,56,79,91,108,118,136,154,171,186,204,220,237,11,28,43,58,74,89,105,120,135,150,165,180,196,211,226,241,6,16,33,46,60,75,92,107,123,137,156,169,185,199,214,225,11,19,30,44,57,74,89,105,121,135,152,169,186,202,218,234,12,19,29,46,57,71,88,100,120,132,148,165,182,199,216,233,17,23,35,46,56,77,92,106,123,134,152,167,185,204,222,237,14,17,45,53,63,75,89,107,115,132,151,171,188,206,221,240,9,16,29,40,56,71,88,103,119,137,154,171,189,205,222,237,16,19,36,48,57,76,87,105,118,132,150,167,185,202,218,236,12,17,29,54,71,81,94,104,126,136,149,164,182,201,221,237,15,28,47,62,79,97,115,129,142,155,168,180,194,208,223,238,8,14,30,45,62,78,94,111,127,143,159,175,192,207,223,239,17,30,49,62,79,92,107,119,132,145,160,174,190,204,220,235,14,19,36,45,61,76,91,108,121,138,154,172,189,205,222,238,12,18,31,45,60,76,91,107,123,138,154,171,187,204,221,236,13,17,31,43,53,70,83,103,114,131,149,167,185,203,220,237,17,22,35,42,58,78,93,110,125,139,155,170,188,206,224,240,8,15,34,50,67,83,99,115,131,146,162,178,193,209,224,239,13,16,41,66,73,86,95,111,128,137,150,163,183,206,225,241,17,25,37,52,63,75,92,102,119,132,144,160,175,191,212,231,19,31,49,65,83,100,117,133,147,161,174,187,200,213,227,242,18,31,52,68,88,103,117,126,138,149,163,177,192,207,223,239,16,29,47,61,76,90,106,119,133,147,161,176,193,209,224,240,15,21,35,50,61,73,86,97,110,119,129,141,175,198,218,237,225,204,201,184,183,175,158,154,153,135,119,115,113,110,109,99,98,95,79,68,52,50,48,45,43,32,31,27,18,10,3,0,255,251,235,230,212,201,196,182,167,166,163,151,138,124,110,104,90,78,76,70,69,57,45,34,24,21,11,6,5,4,3,0,175,148,160,176,178,173,174,164,177,174,196,182,198,192,182,68,62,66,60,72,117,85,90,118,136,151,142,160,142,155,0,0,0,0,0,0,0,1,100,102,102,68,68,36,34,96,164,107,158,185,180,185,139,102,64,66,36,34,34,0,1,32,208,139,141,191,152,185,155,104,96,171,104,166,102,102,102,132,1,0,0,0,0,16,16,0,80,109,78,107,185,139,103,101,208,212,141,139,173,153,123,103,36,0,0,0,0,0,0,1,48,0,0,0,0,0,0,32,68,135,123,119,119,103,69,98,68,103,120,118,118,102,71,98,134,136,157,184,182,153,139,134,208,168,248,75,189,143,121,107,32,49,34,34,34,0,17,2,210,235,139,123,185,137,105,134,98,135,104,182,100,183,171,134,100,70,68,70,66,66,34,131,64,166,102,68,36,2,1,0,134,166,102,68,34,34,66,132,212,246,158,139,107,107,87,102,100,219,125,122,137,118,103,132,114,135,137,105,171,106,50,34,164,214,141,143,185,151,121,103,192,34,0,0,0,0,0,1,208,109,74,187,134,249,159,137,102,110,154,118,87,101,119,101,0,2,0,36,36,66,68,35,96,164,102,100,36,0,2,33,167,138,174,102,100,84,2,2,100,107,120,119,36,197,24,0,255,254,253,244,12,3,2,1,0,255,254,252,224,38,3,2,1,0,255,254,251,209,57,4,2,1,0,255,254,244,195,69,4,2,1,0,255,251,232,184,84,7,2,1,0,255,254,240,186,86,14,2,1,0,255,254,239,178,91,30,5,1,0,255,248,227,177,100,19,2,1,0,255,255,255,156,4,154,255,255,255,255,255,227,102,15,92,255,255,255,255,255,213,83,24,72,236,255,255,255,255,150,76,33,63,214,255,255,255,190,121,77,43,55,185,255,255,255,245,137,71,43,59,139,255,255,255,255,131,66,50,66,107,194,255,255,166,116,76,55,53,125,255,255,249,247,246,245,244,234,210,202,201,200,197,174,82,59,56,55,54,46,22,12,11,10,9,7,0,64,0,203,150,0,215,195,166,125,110,82,0,120,0,128,64,0,232,158,10,0,230,0,243,221,192,181,0,171,85,0,192,128,64,0,205,154,102,51,0,213,171,128,85,43,0,224,192,160,128,96,64,32,0,100,40,16,7,3,1,0,253,250,244,233,212,182,150,131,120,110,98,85,72,60,49,40,32,25,19,15,13,11,9,8,7,6,5,4,3,2,1,0,210,208,206,203,199,193,183,168,142,104,74,52,37,27,20,14,10,6,4,2,0,223,201,183,167,152,138,124,111,98,88,79,70,62,56,50,44,39,35,31,27,24,21,18,16,14,12,10,8,6,4,3,2,1,0,188,176,155,138,119,97,67,43,26,10,0,165,119,80,61,47,35,27,20,14,9,4,0,113,63,0,125,51,26,18,15,12,11,10,9,8,7,6,5,4,3,2,1,0,198,105,45,22,15,12,11,10,9,8,7,6,5,4,3,2,1,0,213,162,116,83,59,43,32,24,18,15,12,9,7,6,5,3,2,0,239,187,116,59,28,16,11,10,9,8,7,6,5,4,3,2,1,0,250,229,188,135,86,51,30,19,13,10,8,6,5,4,3,2,1,0,249,235,213,185,156,128,103,83,66,53,42,33,26,21,17,13,10,0,254,249,235,206,164,118,77,46,27,16,10,7,5,4,3,2,1,0,255,253,249,239,220,191,156,119,85,57,37,23,15,10,6,4,2,0,255,253,251,246,237,223,203,179,152,124,98,75,55,40,29,21,15,0,255,254,253,247,220,162,106,67,42,28,18,12,9,6,4,3,2,0,31,57,107,160,205,205,255,255,255,255,255,255,255,255,255,255,255,255,69,47,67,111,166,205,255,255,255,255,255,255,255,255,255,255,255,255,82,74,79,95,109,128,145,160,173,205,205,205,224,255,255,224,255,224,125,74,59,69,97,141,182,255,255,255,255,255,255,255,255,255,255,255,173,115,85,73,76,92,115,145,173,205,224,224,255,255,255,255,255,255,166,134,113,102,101,102,107,118,125,138,145,155,166,182,192,192,205,150,224,182,134,101,83,79,85,97,120,145,173,205,224,255,255,255,255,255,255,224,192,150,120,101,92,89,93,102,118,134,160,182,192,224,224,224,255,224,224,182,155,134,118,109,104,102,106,111,118,131,145,160,173,131,241,190,178,132,87,74,41,14,0,223,193,157,140,106,57,39,18,0,131,74,141,79,80,138,95,104,134,95,99,91,125,93,76,123,115,123,128,0,214,42,0,235,128,21,0,244,184,72,11,0,248,214,128,42,7,0,248,225,170,80,25,5,0,251,236,198,126,54,18,3,0,250,238,211,159,82,35,15,5,0,250,231,203,168,128,88,53,25,6,0,252,238,216,185,148,108,71,40,18,4,0,253,243,225,199,166,128,90,57,31,13,3,0,254,246,233,212,183,147,109,73,44,23,10,2,0,255,250,240,223,198,166,128,90,58,33,16,6,1,0,255,251,244,231,210,181,146,110,75,46,25,12,5,1,0,255,253,248,238,221,196,164,128,92,60,35,18,8,3,1,0,255,253,249,242,229,208,180,146,110,76,48,27,14,7,3,1,0,129,0,207,50,0,236,129,20,0,245,185,72,10,0,249,213,129,42,6,0,250,226,169,87,27,4,0,251,233,194,130,62,20,4,0,250,236,207,160,99,47,17,3,0,255,240,217,182,131,81,41,11,1,0,255,254,233,201,159,107,61,20,2,1,0,255,249,233,206,170,128,86,50,23,7,1,0,255,250,238,217,186,148,108,70,39,18,6,1,0,255,252,243,226,200,166,128,90,56,30,13,4,1,0,255,252,245,231,209,180,146,110,76,47,25,11,4,1,0,255,253,248,237,219,194,163,128,93,62,37,19,8,3,1,0,255,254,250,241,226,205,177,145,111,79,51,30,15,6,2,1,0,129,0,203,54,0,234,129,23,0,245,184,73,10,0,250,215,129,41,5,0,252,232,173,86,24,3,0,253,240,200,129,56,15,2,0,253,244,217,164,94,38,10,1,0,253,245,226,189,132,71,27,7,1,0,253,246,231,203,159,105,56,23,6,1,0,255,248,235,213,179,133,85,47,19,5,1,0,255,254,243,221,194,159,117,70,37,12,2,1,0,255,254,248,234,208,171,128,85,48,22,8,2,1,0,255,254,250,240,220,189,149,107,67,36,16,6,2,1,0,255,254,251,243,227,201,166,128,90,55,29,13,5,2,1,0,255,254,252,246,234,213,183,147,109,73,43,22,10,4,2,1,0,130,0,200,58,0,231,130,26,0,244,184,76,12,0,249,214,130,43,6,0,252,232,173,87,24,3,0,253,241,203,131,56,14,2,0,254,246,221,167,94,35,8,1,0,254,249,232,193,130,65,23,5,1,0,255,251,239,211,162,99,45,15,4,1,0,255,251,243,223,186,131,74,33,11,3,1,0,255,252,245,230,202,158,105,57,24,8,2,1,0,255,253,247,235,214,179,132,84,44,19,7,2,1,0,255,254,250,240,223,196,159,112,69,36,15,6,2,1,0,255,254,253,245,231,209,176,136,93,55,27,11,3,2,1,0,255,254,253,252,239,221,194,158,117,76,42,18,4,3,2,1,0,0,0,2,5,9,14,20,27,35,44,54,65,77,90,104,119,135,254,49,67,77,82,93,99,198,11,18,24,31,36,45,255,46,66,78,87,94,104,208,14,21,32,42,51,66,255,94,104,109,112,115,118,248,53,69,80,88,95,102,0,15,8,7,4,11,12,3,2,13,10,5,6,9,14,1,0,9,6,3,4,5,8,1,2,7,0,1,0,0,0,1,0,0,1,255,1,255,2,254,2,254,3,253,0,1,0,1,255,2,255,2,254,3,254,3,253,7,254,7,0,2,255,255,255,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,255,2,1,0,1,1,0,0,255,255,0,0,1,255,0,1,255,0,255,1,254,2,254,254,2,253,2,3,253,252,3,252,4,4,251,5,250,251,6,249,6,5,8,247,0,0,1,0,0,0,0,0,0,0,255,1,0,0,1,255,0,1,255,255,1,255,2,1,255,2,254,254,2,254,2,2,3,253,0,1,0,0,0,0,0,0,1,0,1,0,0,1,255,1,0,0,2,1,255,2,255,255,2,255,2,2,255,3,254,254,254,3,0,1,0,0,1,0,1,255,2,255,2,255,2,3,254,3,254,254,4,4,253,5,253,252,6,252,6,5,251,8,250,251,249,9,251,8,255,6,255,6,252,10,250,10,254,6,255,6,251,10,247,12,253,7,254,7,249,13,16,24,34,6,0,3,0,7,3,0,1,10,0,2,6,18,10,12,4,0,2,0,0,0,9,4,7,4,0,3,12,7,7],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE+30720);var tempDoublePtr=STATICTOP;STATICTOP+=16;Module["_bitshift64Ashr"]=_bitshift64Ashr;Module["_i64Add"]=_i64Add;function _llvm_exp2_f32(x){return Math.pow(2,x)}function _llvm_exp2_f64(){return _llvm_exp2_f32.apply(null,arguments)}Module["_memset"]=_memset;Module["_bitshift64Lshr"]=_bitshift64Lshr;function _abort(){Module["abort"]()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}Module["_memcpy"]=_memcpy;var _llvm_pow_f64=Math_pow;Module["___muldsi3"]=___muldsi3;Module["___muldi3"]=___muldi3;function _llvm_stackrestore(p){var self=_llvm_stacksave;var ret=self.LLVM_SAVEDSTACKS[p];self.LLVM_SAVEDSTACKS.splice(p,1);Runtime.stackRestore(ret)}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}Module["_sbrk"]=_sbrk;function _llvm_stacksave(){var self=_llvm_stacksave;if(!self.LLVM_SAVEDSTACKS){self.LLVM_SAVEDSTACKS=[]}self.LLVM_SAVEDSTACKS.push(Runtime.stackSave());return self.LLVM_SAVEDSTACKS.length-1}Module["_memmove"]=_memmove;DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC);STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiiii(index,a1,a2,a3,a4,a5,a6,a7){try{Module["dynCall_viiiiiii"](index,a1,a2,a3,a4,a5,a6,a7)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_iiiiiii":invoke_iiiiiii,"invoke_viiiiiii":invoke_viiiiiii,"_llvm_exp2_f64":_llvm_exp2_f64,"_llvm_pow_f64":_llvm_pow_f64,"_llvm_exp2_f32":_llvm_exp2_f32,"_abort":_abort,"___setErrNo":___setErrNo,"_llvm_stacksave":_llvm_stacksave,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_llvm_stackrestore":_llvm_stackrestore,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM +var asm=(function(global,env,buffer) { +"use asm";var a=new global.Int8Array(buffer);var b=new global.Int16Array(buffer);var c=new global.Int32Array(buffer);var d=new global.Uint8Array(buffer);var e=new global.Uint16Array(buffer);var f=new global.Uint32Array(buffer);var g=new global.Float32Array(buffer);var h=new global.Float64Array(buffer);var i=env.DYNAMICTOP_PTR|0;var j=env.tempDoublePtr|0;var k=env.ABORT|0;var l=env.STACKTOP|0;var m=env.STACK_MAX|0;var n=0;var o=0;var p=0;var q=0;var r=global.NaN,s=global.Infinity;var t=0,u=0,v=0,w=0,x=0.0,y=0,z=0,A=0,B=0.0;var C=0;var D=global.Math.floor;var E=global.Math.abs;var F=global.Math.sqrt;var G=global.Math.pow;var H=global.Math.cos;var I=global.Math.sin;var J=global.Math.tan;var K=global.Math.acos;var L=global.Math.asin;var M=global.Math.atan;var N=global.Math.atan2;var O=global.Math.exp;var P=global.Math.log;var Q=global.Math.ceil;var R=global.Math.imul;var S=global.Math.min;var T=global.Math.max;var U=global.Math.clz32;var V=env.abort;var W=env.assert;var X=env.enlargeMemory;var Y=env.getTotalMemory;var Z=env.abortOnCannotGrowMemory;var _=env.invoke_iiiiiii;var $=env.invoke_viiiiiii;var aa=env._llvm_exp2_f64;var ba=env._llvm_pow_f64;var ca=env._llvm_exp2_f32;var da=env._abort;var ea=env.___setErrNo;var fa=env._llvm_stacksave;var ga=env._emscripten_memcpy_big;var ha=env._llvm_stackrestore;var ia=0.0; +// EMSCRIPTEN_START_FUNCS +function la(a){a=a|0;var b=0;b=l;l=l+a|0;l=l+15&-16;return b|0}function ma(){return l|0}function na(a){a=a|0;l=a}function oa(a,b){a=a|0;b=b|0;l=a;m=b}function pa(a,b){a=a|0;b=b|0;if(!n){n=a;o=b}}function qa(a){a=a|0;C=a}function ra(){return C|0}function sa(a,b){a=+a;b=b|0;var c=0,d=0;c=0;while(1){if((c|0)>=21)break;if(+g[1572+(c<<2)>>2]>a)break;c=c+1|0}if((c|0)>(b|0)?+g[1572+(b<<2)>>2]+ +g[1656+(b<<2)>>2]>a:0)return b|0;if((c|0)>=(b|0)){b=c;return b|0}d=b+-1|0;if(!(+g[1572+(d<<2)>>2]-+g[1656+(d<<2)>>2]>16;b=((R(b,b)|0)+4096|0)>>>13;a=b<<16>>16;return 32767-b+(((R(a,(((R(a,(((R(a,-626)|0)+16384|0)>>>15<<16)+542441472>>16)|0)+16384|0)>>>15<<16)+-501415936>>16)|0)+16384|0)>>>15)+1&65535|0}function va(a,b){a=a|0;b=b|0;var c=0,d=0;c=32-(U(b|0)|0)|0;d=32-(U(a|0)|0)|0;a=a<<15-d<<16>>16;b=b<<15-c<<16>>16;return (d-c<<11)+((R(a,(((R(a,-2597)|0)+16384|0)>>>15<<16)+519831552>>16)|0)+16384>>15)-((R(b,(((R(b,-2597)|0)+16384|0)>>>15<<16)+519831552>>16)|0)+16384>>15)|0}function wa(a,d,e,f,h,i){a=a|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.0,q=0,r=0;n=c[a+32>>2]|0;m=c[a+44>>2]<=(f|0))break;q=b[n+(j<<1)>>1]|0;r=d+(l+(q<>1]|0)-q<>2]|0)|0)<<2)>>2]=p;j=o}a=a+1|0}while((a|0)<(h|0));return}function xa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;d=d+ +g[a+(e<<2)>>2]*+g[b+(e<<2)>>2];e=e+1|0}return +d}function ya(a,d,e,f,h,i,j){a=a|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,n=0,o=0,p=0.0,q=0,r=0,s=0;r=c[a+32>>2]|0;q=R(c[a+44>>2]|0,j)|0;n=a+8|0;m=0;while(1){o=R(m,q)|0;a=0;a:while(1){if((a|0)>=(h|0))break;p=1.0/(+g[f+(a+(R(m,c[n>>2]|0)|0)<<2)>>2]+1.0000000272452012e-27);k=R(b[r+(a<<1)>>1]|0,j)|0;a=a+1|0;l=R(b[r+(a<<1)>>1]|0,j)|0;while(1){if((k|0)>=(l|0))continue a;s=k+o|0;g[e+(s<<2)>>2]=+g[d+(s<<2)>>2]*p;k=k+1|0}}m=m+1|0;if((m|0)>=(i|0))break}return}function za(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function Aa(a,d,e,f,h,i,j,k,l,m){a=a|0;d=d|0;e=e|0;f=f|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.0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0.0;A=c[a+32>>2]|0;B=R(c[a+44>>2]|0,m)|0;if((R((b[A+(k<<1)>>1]|0)-(b[A+(k+-1<<1)>>1]|0)|0,m)|0)<9){i=0;return i|0}y=a+8|0;w=0;n=0;o=0;a=0;while(1){z=R(w,B)|0;x=0;C=a;while(1){if((x|0)>=(k|0))break;v=b[A+(x<<1)>>1]|0;p=d+((R(v,m)|0)<<2)+(z<<2)|0;u=x+1|0;v=R((b[A+(u<<1)>>1]|0)-v|0,m)|0;if((v|0)<9){x=u;continue}q=+(v|0);a=0;r=0;s=0;t=0;while(1){if((a|0)==(v|0))break;D=+g[p+(a<<2)>>2];D=D*D*q;a=a+1|0;r=r+(D<.25&1)|0;s=s+(D<.0625&1)|0;t=t+(D<.015625&1)|0}if((x|0)>((c[y>>2]|0)+-4|0))n=n+(za(s+r<<5,v)|0)|0;x=u;C=C+(((t<<1|0)>=(v|0)&1)+((s<<1|0)>=(v|0)&1)+((r<<1|0)>=(v|0)&1)<<8)|0;o=o+1|0}w=w+1|0;if((w|0)>=(l|0))break;else a=C}if(j|0){if(!n)a=0;else a=za(n,R(4-(c[y>>2]|0)+k|0,l)|0)|0;a=(c[h>>2]|0)+a>>1;c[h>>2]=a;switch(c[i>>2]|0){case 2:{a=a+4|0;break}case 0:{a=a+-4|0;break}default:{}}c[i>>2]=(a|0)>22?2:(a|0)>18&1}a=za(C,o)|0;a=a+(c[e>>2]|0)>>1;c[e>>2]=a;a=(a*3|0)+(3-f<<7|64)+2>>2;if((a|0)<80){i=3;return i|0}if((a|0)<256){i=2;return i|0}else return (a|0)<384|0;return 0}function Ba(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;e=b>>1;f=c<<1;d=0;while(1){if((d|0)<(c|0))b=0;else break;while(1){if((b|0)>=(e|0))break;k=a+((R(f,b)|0)+d<<2)|0;j=+g[k>>2]*.7071067690849304;h=a+((R(b<<1|1,c)|0)+d<<2)|0;i=+g[h>>2]*.7071067690849304;g[k>>2]=j+i;g[h>>2]=j-i;b=b+1|0}d=d+1|0}return}function Ca(e,f,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B){e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|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;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;B=B|0;var C=0,D=0,E=0,F=0,G=0.0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=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,ya=0,za=0,Aa=0,Ba=0,Ca=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.0,Wa=0.0;Ua=l;l=l+1552|0;Ka=Ua+216|0;Ba=Ua+24|0;Ca=Ua;La=Ua+168|0;Ma=Ua+108|0;Na=Ua+48|0;Oa=Ua+276|0;Pa=Ua+40|0;Qa=e+32|0;Ra=c[Qa>>2]|0;Sa=j|0?2:1;Ta=(j|0)==0;za=(q|0)==0&(Ta^1)&(z|0)>7;Aa=1<>1]<>2]|0;o=b[Ra+(z+-1<<1)>>1]|0;C=o<>1]|0)-o<>2]=m;c[Ka+28>>2]=v;c[Ka>>2]=1;c[Ka+16>>2]=r;c[Ka+8>>2]=e;ka=Ka+40|0;c[ka>>2]=c[y>>2];c[Ka+20>>2]=p;c[Ka+44>>2]=A;c[Ka+52>>2]=B;c[Ka+4>>2]=za&1;da=Ka+48|0;c[da>>2]=0;ea=(qa|0)>1;fa=Ka+56|0;c[fa>>2]=ea&1;ga=Ka+12|0;ha=h+-1|0;ba=v+20|0;ca=v+28|0;ia=Ka+32|0;ja=Ka+24|0;Z=e+12|0;_=(1<=(h|0))break;c[ga>>2]=V;N=(V|0)==(ha|0);O=Ra+(V<<1)|0;S=b[O>>1]<>1]<>2]|0,c[ca>>2]|0)|0;Q=z-((V|0)==(f|0)?0:T)|0;z=t-T|0;c[ia>>2]=z+-1;if((V|0)<(x|0)?(Ia=x-V|0,Ia=Da(Q,(Ia|0)<3?Ia:3)|0,Ia=(c[n+(V<<2)>>2]|0)+Ia|0,Ja=(z|0)<(Ia|0),!(((Ja?z:Ia)|0)<16384&((Ja?z:Ia)|0)<0)):0)P=((Ja?z:Ia)|0)>16383?16383:Ja?z:Ia;else P=0;if(za?((b[O>>1]<=(b[ra>>1]<>2]|0;c[ja>>2]=K;M=(V|0)<(c[Z>>2]|0);o=M?o:0;L=M?C:ua;M=M?A:Ta?0:ua;o=N?(za?o:0):o;if((B|0)!=0?(p|0)!=3|ea|(K|0)<0:0){u=(b[Ra+(B<<1)>>1]<>1]<(z|0));z=z+S|0;e=B+-1|0;while(1){C=e+1|0;if((b[Ra+(C<<1)>>1]<>0];C=C|d[k+(K+Sa+-1)>>0];if((A|0)<(e|0))A=A+1|0;else{D=C;A=z;break}}}else{u=-1;D=_;A=_}a:do if(q)if((V|0)==(r|0)){if(!za){ya=29;break}C=Ra+(r<<1)|0;z=0;while(1){if((z|0)>=((b[C>>1]<>2]=(+g[ya>>2]+ +g[wa+(z<<2)>>2])*.5;z=z+1|0}}else{e=(P|0)/2|0;C=(u|0)==-1;z=C?0:ua+(u<<2)|0;if(N){z=Ea(Ka,L,S,e,qa,z,w,0,1.0,o,A)|0;A=C?0:wa+(u<<2)|0;C=0}else{z=Ea(Ka,L,S,e,qa,z,w,ua+(b[O>>1]<>1]<>1]<>2]=0;if(N)z=0;else z=ua+(b[O>>1]<>2],+g[m+(V+(c[ta>>2]|0)<<2)>>2],Pa);E=A|D;e=c[v>>2]|0;q=c[W>>2]|0;c[Ba>>2]=c[X>>2];c[Ba+4>>2]=c[X+4>>2];c[Ba+8>>2]=c[X+8>>2];c[Ba+12>>2]=c[X+12>>2];D=c[Y>>2]|0;c[Ca>>2]=c[ca>>2];c[Ca+4>>2]=c[ca+4>>2];c[Ca+8>>2]=c[ca+8>>2];c[Ca+12>>2]=c[ca+12>>2];c[Ca+16>>2]=c[ca+16>>2];z=Ma;C=Ka;A=z+60|0;do{c[z>>2]=c[C>>2];z=z+4|0;C=C+4|0}while((z|0)<(A|0));J=S<<2;Sh(la|0,L|0,J|0)|0;Sh(ma|0,M|0,J|0)|0;c[da>>2]=-1;F=(u|0)==-1;if(N)z=0;else z=ua+(b[O>>1]<>2];Va=Va*+xa(la,L,S);G=+g[$>>2];G=Va+G*+xa(ma,M,S);z=La;C=v;A=z+48|0;do{c[z>>2]=c[C>>2];z=z+4|0;C=C+4|0}while((z|0)<(A|0));z=Na;C=Ka;A=z+60|0;do{c[z>>2]=c[C>>2];z=z+4|0;C=C+4|0}while((z|0)<(A|0));Sh(na|0,L|0,J|0)|0;Sh(oa|0,M|0,J|0)|0;if(!N)Sh(pa|0,ua+(b[O>>1]<>2]=e;c[W>>2]=q;c[X>>2]=c[Ba>>2];c[X+4>>2]=c[Ba+4>>2];c[X+8>>2]=c[Ba+8>>2];c[X+12>>2]=c[Ba+12>>2];c[Y>>2]=D;c[ca>>2]=c[Ca>>2];c[ca+4>>2]=c[Ca+4>>2];c[ca+8>>2]=c[Ca+8>>2];c[ca+12>>2]=c[Ca+12>>2];c[ca+16>>2]=c[Ca+16>>2];z=Ka;C=Ma;A=z+60|0;do{c[z>>2]=c[C>>2];z=z+4|0;C=C+4|0}while((z|0)<(A|0));Sh(L|0,la|0,J|0)|0;Sh(M|0,ma|0,J|0)|0;if((V|0)==(aa|0))Ha(c[Qa>>2]|0,ua,wa,f,Aa,0);c[da>>2]=1;if(N)z=0;else z=ua+(b[O>>1]<>2];Wa=Wa*+xa(la,L,S);Va=+g[$>>2];if(!(G>=Wa+Va*+xa(ma,M,S))){q=0;C=z}else{z=v;C=La;A=z+48|0;do{c[z>>2]=c[C>>2];z=z+4|0;C=C+4|0}while((z|0)<(A|0));z=Ka;C=Na;A=z+60|0;do{c[z>>2]=c[C>>2];z=z+4|0;C=C+4|0}while((z|0)<(A|0));Sh(L|0,na|0,J|0)|0;Sh(M|0,oa|0,J|0)|0;if(!N)Sh(ua+(b[O>>1]<>0]=z;a[k+(e+Sa+-1)>>0]=C;z=c[n+(V<<2)>>2]|0;c[fa>>2]=0;e=(P|0)>(S<<3|0)&1;z=Q+(z+T)|0;V=U}c[y>>2]=c[ka>>2];l=Ua;return}function Da(a,b){a=a|0;b=b|0;return (a|0)/(b|0)|0|0}function Ea(b,e,f,h,i,j,k,l,m,n,o){b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=+m;n=n|0;o=o|0;var p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;p=c[b>>2]|0;q=c[b+24>>2]|0;v=(i|0)==1&1;r=za(f,i)|0;if((f|0)==1){Ia(b,e,0,h,l);l=1;return l|0}w=(q|0)>0?q:0;do if(n)if(!j)n=0;else{if((q|0)<1?!((r&1|0)==0&(q|0)!=0|(i|0)>1):0){n=j;break}Sh(n|0,j|0,f<<2|0)|0}else n=j;while(0);s=(p|0)==0;t=(n|0)==0;p=o;j=0;while(1){if((j|0)>=(w|0))break;if(!s)Ba(e,f>>j,1<>j,1<>0]|0|(d[28802+(p>>4)>>0]|0)<<2;j=j+1|0}u=0;j=r<>w;while(1){if(!((j&1|0)==0&(q|0)<0))break;if(!s)Ba(e,j,o);if(!t)Ba(n,j,o);i=p|p<>1;q=q+1|0;o=o<<1;p=i}q=(o|0)>1;if(q){if(!s)Ja(e,j>>w,o<>w,o<>2]|0)){l=p;return l|0}if(q){La(e,j>>w,o<=(u|0)){j=0;break}v=o>>1;b=j<<1;Ba(e,b,v);p=p|p>>>v;n=n+1|0;j=b;o=v}while(1){if((j|0)>=(w|0))break;v=a[28818+p>>0]|0;Ba(e,f>>j,1<=(f|0))break a;g[l+(j<<2)>>2]=m*+g[e+(j<<2)>>2];j=j+1|0}}while(0);l=p&(1<>2]=d+a;g[c+4>>2]=d+b;return}function Ga(a,b,d,e,f,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;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.0,y=0,z=0.0,A=0,B=0,C=0.0;B=l;l=l+32|0;o=B+28|0;s=B+24|0;p=B;c[o>>2]=f;c[s>>2]=n;t=c[a>>2]|0;u=c[a+28>>2]|0;if((e|0)==1){Ia(a,b,d,f,k);e=1;l=B;return e|0}Ma(a,p,b,d,e,o,h,h,j,1,s);y=c[p>>2]|0;w=c[p+16>>2]|0;v=c[p+20>>2]|0;z=+(c[p+4>>2]|0)*.000030517578125;x=+(c[p+8>>2]|0)*.000030517578125;A=(e|0)==2;do if(A){f=c[o>>2]|0;if((w|0)<16384)switch(w|0){case 0:{r=0;break}default:q=5}else switch(w|0){case 16384:{r=0;break}default:q=5}if((q|0)==5)r=8;q=f-r|0;p=(w|0)>8192;o=a+32|0;c[o>>2]=(c[o>>2]|0)-(v+r);o=p?d:b;p=p?b:d;do if(r)if(!t){f=Hb(u,1)|0;break}else{f=+g[o>>2]*+g[p+4>>2]-+g[o+4>>2]*+g[p>>2]<0.0&1;Tb(u,f,1);break}else f=0;while(0);w=1-(f<<1)|0;f=Ea(a,o,2,q,h,i,j,k,1.0,m,n)|0;g[p>>2]=+(0-w|0)*+g[o+4>>2];g[p+4>>2]=+(w|0)*+g[o>>2];if(c[a+4>>2]|0){g[b>>2]=z*+g[b>>2];k=b+4|0;g[k>>2]=z*+g[k>>2];C=x*+g[d>>2];g[d>>2]=C;m=d+4|0;g[m>>2]=x*+g[m>>2];x=+g[b>>2];g[b>>2]=x-C;g[d>>2]=x+ +g[d>>2];x=+g[k>>2];g[k>>2]=x-+g[m>>2];g[m>>2]=x+ +g[m>>2]}}else{q=c[o>>2]|0;p=(q-(c[p+12>>2]|0)|0)/2|0;r=(q|0)<(p|0);p=((r?q:p)|0)<0?0:r?q:p;q=q-p|0;r=a+32|0;o=(c[r>>2]|0)-v|0;c[r>>2]=o;f=c[s>>2]|0;if((p|0)<(q|0)){v=Ea(a,d,e,q,h,0,j,0,x,0,f>>h)|0;n=q+((c[r>>2]|0)-o)|0;f=v|(Ea(a,b,e,p+((n|0)<25|(w|0)==16384?0:n+-24|0)|0,h,i,j,k,1.0,m,f)|0);break}else{k=Ea(a,b,e,p,h,i,j,k,1.0,m,f)|0;m=p+((c[r>>2]|0)-o)|0;f=k|(Ea(a,d,e,q+((m|0)<25|(w|0)==0?0:m+-24|0)|0,h,0,j,0,x,0,f>>h)|0);break}}while(0);if(!(c[a+4>>2]|0)){e=f;l=B;return e|0}if(!A)Ta(b,d,z,e);if(!y){e=f;l=B;return e|0}else o=0;while(1){if((o|0)>=(e|0))break;b=d+(o<<2)|0;g[b>>2]=-+g[b>>2];o=o+1|0}l=B;return f|0}function Ha(a,c,d,e,f,g){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0;i=b[a+(e+1<<1)>>1]|0;h=R(i-(b[a+(e<<1)>>1]|0)|0,f)|0;e=R((b[a+(e+2<<1)>>1]|0)-i|0,f)|0;a=(h<<1)-e|0;e=e-h<<2;Sh(c+(h<<2)|0,c+(a<<2)|0,e|0)|0;if(!g)return;Sh(d+(h<<2)|0,d+(a<<2)|0,e|0)|0;return}function Ia(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;l=c[a+28>>2]|0;m=a+32|0;k=(c[a>>2]|0)==0;i=a+4|0;j=d|0?2:1;a=b;h=0;while(1){if((c[m>>2]|0)>7){if(k)e=Hb(l,1)|0;else{e=+g[a>>2]<0.0&1;Tb(l,e,1)}c[m>>2]=(c[m>>2]|0)+-8}else e=0;if(c[i>>2]|0)g[a>>2]=e|0?-1.0:1.0;h=h+1|0;if((h|0)>=(j|0))break;else a=d}if(!f)return;c[f>>2]=c[b>>2];return}function Ja(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,m=0;k=l;i=R(b,d)|0;j=l;l=l+((1*(i<<2)|0)+15&-16)|0;if(!e){f=0;while(1){if((f|0)>=(d|0))break;g=R(f,b)|0;e=0;while(1){if((e|0)>=(b|0))break;c[j+(g+e<<2)>>2]=c[a+((R(e,d)|0)+f<<2)>>2];e=e+1|0}f=f+1|0}i=i<<2;Sh(a|0,j|0,i|0)|0;l=k;return}h=1416+(d<<2)+-8|0;f=0;while(1){if((f|0)>=(d|0))break;g=h+(f<<2)|0;e=0;while(1){if((e|0)>=(b|0))break;m=c[a+((R(e,d)|0)+f<<2)>>2]|0;c[j+((R(c[g>>2]|0,b)|0)+e<<2)>>2]=m;e=e+1|0}f=f+1|0}m=i<<2;Sh(a|0,j|0,m|0)|0;l=k;return}function Ka(a,e,f,h,i,j,k,m,n){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=+m;n=n|0;var o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;B=l;l=l+32|0;z=B+28|0;A=B+24|0;y=B;c[z>>2]=h;c[A>>2]=n;u=c[a>>2]|0;r=c[a+8>>2]|0;t=c[a+12>>2]|0;w=c[a+20>>2]|0;x=c[a+28>>2]|0;o=c[r+100>>2]|0;p=c[r+96>>2]|0;q=c[r+8>>2]|0;C=o+(b[p+((R(k+1|0,q)|0)+t<<1)>>1]|0)|0;if((k|0)!=-1?((f|0)>2?((d[C+(d[C>>0]|0)>>0]|0)+12|0)<(h|0):0):0){w=f>>1;x=e+(w<<2)|0;f=k+-1|0;if((i|0)==1)c[A>>2]=n&1|n<<1;t=i+1>>1;Ma(a,y,e,x,w,z,t,i,f,0,A);o=c[y+12>>2]|0;u=c[y+16>>2]|0;p=c[y+20>>2]|0;v=+(c[y+4>>2]|0)*.000030517578125;s=+(c[y+8>>2]|0)*.000030517578125;do if(!((i|0)<2|(u&16383|0)==0))if((u|0)>8192){o=o-(o>>5-k)|0;break}else{o=o+(w<<3>>6-k)|0;o=(o|0)<0?o:0;break}while(0);h=c[z>>2]|0;q=(h-o|0)/2|0;r=(h|0)<(q|0);q=((r?h:q)|0)<0?0:r?h:q;h=h-q|0;r=a+32|0;p=(c[r>>2]|0)-p|0;c[r>>2]=p;o=(j|0)==0?0:j+(w<<2)|0;if((q|0)<(h|0)){C=c[A>>2]|0;i=(Ka(a,x,w,h,t,o,f,s*m,C>>t)|0)<<(i>>1);A=h+((c[r>>2]|0)-p)|0;C=i|(Ka(a,e,w,q+((A|0)<25|(u|0)==16384?0:A+-24|0)|0,t,j,f,v*m,C)|0);l=B;return C|0}else{C=c[A>>2]|0;j=Ka(a,e,w,q,t,j,f,v*m,C)|0;e=q+((c[r>>2]|0)-p)|0;C=j|(Ka(a,x,w,h+((e|0)<25|(u|0)==0?0:e+-24|0)|0,t,o,f,s*m,C>>t)|0)<<(i>>1);l=B;return C|0}}o=Na(q,p,o,t,k,h)|0;h=Oa(r,t,k,o)|0;q=a+32|0;p=h;h=(c[q>>2]|0)-h|0;while(1){c[q>>2]=h;if(!((h|0)<0&(o|0)>0))break;z=h+p|0;c[q>>2]=z;y=o+-1|0;C=Oa(r,t,k,y)|0;o=y;p=C;h=z-C|0}if(o|0){o=Pa(o)|0;if(!u){C=Mc(e,f,o,w,i,x,m)|0;l=B;return C|0}else{C=Jc(e,f,o,w,i,x,m,c[a+4>>2]|0)|0;l=B;return C|0}}if(!(c[a+4>>2]|0)){C=0;l=B;return C|0}o=(1<>2]=p;if(!p){Qh(e|0,0,f<<2|0)|0;C=0;l=B;return C|0}q=a+40|0;a:do if(!j){p=0;while(1){if((p|0)>=(f|0))break a;C=ta(c[q>>2]|0)|0;c[q>>2]=C;g[e+(p<<2)>>2]=+(C>>20|0);p=p+1|0}}else{o=0;while(1){if((o|0)>=(f|0)){o=p;break a}C=ta(c[q>>2]|0)|0;c[q>>2]=C;g[e+(o<<2)>>2]=+g[j+(o<<2)>>2]+((C&32768|0)==0?-.00390625:.00390625);o=o+1|0}}while(0);Nc(e,f,m);C=o;l=B;return C|0}function La(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;k=l;i=R(b,d)|0;j=l;l=l+((1*(i<<2)|0)+15&-16)|0;if(!e){f=0;while(1){if((f|0)>=(d|0))break;g=R(f,b)|0;e=0;while(1){if((e|0)>=(b|0))break;c[j+((R(e,d)|0)+f<<2)>>2]=c[a+(g+e<<2)>>2];e=e+1|0}f=f+1|0}i=i<<2;Sh(a|0,j|0,i|0)|0;l=k;return}h=1416+(d<<2)+-8|0;f=0;while(1){if((f|0)>=(d|0))break;g=h+(f<<2)|0;e=0;while(1){if((e|0)>=(b|0))break;c[j+((R(e,d)|0)+f<<2)>>2]=c[a+((R(c[g>>2]|0,b)|0)+e<<2)>>2];e=e+1|0}f=f+1|0}i=i<<2;Sh(a|0,j|0,i|0)|0;l=k;return}function Ma(a,d,e,f,h,i,j,k,l,m,n){a=a|0;d=d|0;e=e|0;f=f|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;u=c[a>>2]|0;r=c[a+8>>2]|0;s=c[a+12>>2]|0;z=c[a+16>>2]|0;w=c[a+28>>2]|0;t=c[a+36>>2]|0;v=(b[(c[r+56>>2]|0)+(s<<1)>>1]|0)+(l<<3)|0;p=(m|0)==0;o=c[i>>2]|0;v=Qa(h,o,(v>>1)-((h|0)==2&(p^1)?16:4)|0,v,m)|0;v=p|(s|0)<(z|0)?v:1;u=(u|0)==0;if(u)m=0;else m=Pc(e,f,m,h)|0;x=w+20|0;y=w+28|0;z=zb(c[x>>2]|0,c[y>>2]|0)|0;a:do if((v|0)==1)if(p){o=0;q=57}else{if(u)l=0;else{b:do if((m|0)>8192){v=(c[a+52>>2]|0)==0;l=v&1;if(v){o=0;while(1){if((o|0)>=(h|0))break b;v=f+(o<<2)|0;g[v>>2]=-+g[v>>2];o=o+1|0}}}else l=0;while(0);Ra(c[r+8>>2]|0,e,f,t,s,h);o=c[i>>2]|0}do if((o|0)>16?(c[a+32>>2]|0)>16:0)if(u){l=Fb(w,2)|0;break}else{Qb(w,l,2);break}else l=0;while(0);o=(c[a+52>>2]|0)==0?l:0;q=56}else{do if(u)if(p)q=26;else q=13;else if(!p){l=c[a+48>>2]|0;if(!l){m=(R(m,v)|0)+8192>>14;q=13;break}else{m=(R(m,v)|0)+((((m|0)>8192?32767:-32767)|0)/(v|0)|0)|0;q=(m|0)<0;m=((v|0)>((q?0:m>>14)|0)?(q?0:m>>14):v+-1|0)+(l>>>31^1)|0;q=13;break}}else{m=(R(m,v)|0)+8192>>14;if(!((c[a+56>>2]|0)!=0&(m|0)>0&(m|0)<(v|0))){q=26;break}q=za(m<<14,v)|0;l=(ua(q&65535)|0)<<16>>16;l=(R((h<<23)+-8388608>>16,(va((ua(16384-q&65535)|0)<<16>>16,l)|0)<<16>>16)|0)+16384>>15;if((l|0)>(o|0)){m=v;q=26;break}m=(l|0)<(0-o|0)?0:m;q=26;break}while(0);do if((q|0)==13)if((h|0)>2){k=(v|0)/2|0;a=(k*3|0)+3|0;p=a+k|0;if(!u){o=(m|0)>(k|0);if(o)l=m+-1-k+a|0;else l=m*3|0;Kb(w,l,o?m-k+a|0:(m*3|0)+3|0,p);m=za(m<<14,v)|0;break}l=Cb(w,p)|0;if((l|0)<(a|0))l=(l|0)/3|0;else l=k+1+(l-a)|0;o=(l|0)>(k|0);if(o)m=l+-1-k+a|0;else m=l*3|0;Eb(w,m,o?l-k+a|0:(l*3|0)+3|0,p);q=38}else q=27;else if((q|0)==26)if(!((k|0)>1|p^1)){o=v>>1;k=o+1|0;a=R(k,k)|0;if(u){l=Cb(w,a)|0;if((l|0)<((R(o,k)|0)>>1|0)){l=((ec(l<<3|1)|0)+-1|0)>>>1;m=l+1|0;o=(R(l,m)|0)>>>1}else{l=((v<<1)+2-(ec((a-l<<3)+-7|0)|0)|0)>>>1;m=v+1-l|0;o=a-((R(m,v+2-l|0)|0)>>1)|0}Eb(w,o,o+m|0,a);q=38;break}else{l=(m|0)>(o|0);if(l)o=a-((R(v+1-m|0,v+2-m|0)|0)>>1)|0;else o=(R(m,m+1|0)|0)>>1;Kb(w,o,o+(l?v+1-m|0:m+1|0)|0,a);m=za(m<<14,v)|0;o=0;q=57;break a}}else q=27;while(0);do if((q|0)==27){l=v+1|0;if(!u){Sb(w,m,l);m=za(m<<14,v)|0;if(p){o=0;q=57;break a}else break}else{l=Gb(w,l)|0;q=38;break}}while(0);if((q|0)==38){m=za(l<<14,v)|0;o=0;q=57;break}if(!m){Ra(c[r+8>>2]|0,e,f,t,s,h);o=0;q=56;break}else{Sa(e,f,h);o=0;q=57;break}}while(0);c:do if((q|0)==56){l=(zb(c[x>>2]|0,c[y>>2]|0)|0)-z|0;c[i>>2]=(c[i>>2]|0)-l;m=0}else if((q|0)==57){l=(zb(c[x>>2]|0,c[y>>2]|0)|0)-z|0;c[i>>2]=(c[i>>2]|0)-l;d:do if((m|0)<16384)switch(m|0){case 0:break c;default:{}}else{switch(m|0){case 16384:break;default:break d}c[n>>2]=c[n>>2]&(1<>2]=j;j=d+4|0;c[j>>2]=x;j=d+8|0;c[j>>2]=y;j=d+12|0;c[j>>2]=z;j=d+16|0;c[j>>2]=i;j=d+20|0;c[j>>2]=n;return}while(0);x=(ua(m&65535)|0)<<16>>16;y=(ua(16384-m&65535)|0)<<16>>16;z=(R((h<<23)+-8388608>>16,(va(y,x)|0)<<16>>16)|0)+16384>>15;i=m;j=o;n=l;c[d>>2]=j;j=d+4|0;c[j>>2]=x;j=d+8|0;c[j>>2]=y;j=d+12|0;c[j>>2]=z;j=d+16|0;c[j>>2]=i;j=d+20|0;c[j>>2]=n;return}while(0);c[n>>2]=c[n>>2]&(1<>2]=j;j=d+4|0;c[j>>2]=x;j=d+8|0;c[j>>2]=y;j=d+12|0;c[j>>2]=z;j=d+16|0;c[j>>2]=i;j=d+20|0;c[j>>2]=n;return}function Na(a,c,e,f,g,h){a=a|0;c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0;g=e+(b[c+((R(g+1|0,a)|0)+f<<1)>>1]|0)|0;f=h+-1|0;e=d[g>>0]|0;a=0;c=0;while(1){if((c|0)==6)break;h=a+e+1>>1;i=(d[g+h>>0]|0)<(f|0);e=i?e:h;a=i?h:a;c=c+1|0}if(!a)c=-1;else c=d[g+a>>0]|0;return ((f-c|0)>((d[g+e>>0]|0)-f|0)?e:a)|0}function Oa(a,e,f,g){a=a|0;e=e|0;f=f|0;g=g|0;if(!g){g=0;return g|0}g=(d[(c[a+100>>2]|0)+(b[(c[a+96>>2]|0)+((R(f+1|0,c[a+8>>2]|0)|0)+e<<1)>>1]|0)+g>>0]|0)+1|0;return g|0}function Pa(a){a=a|0;if((a|0)<8)return a|0;a=(a&7|8)<<(a>>3)+-1;return a|0}function Qa(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;a=(a<<1)+((f|0)!=0&(a|0)==2?-2:-1)|0;a=Da((R(a,d)|0)+c|0,a)|0;f=c-e+-32|0;a=(f|0)<(a|0)?f:a;if((a|0)<=64){if((a|0)<4){f=1;return f|0}}else a=64;f=(b[24296+((a&7)<<1)>>1]>>14-(a>>3))+1&-2;return f|0}function Ra(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0.0;h=+g[d+(e<<2)>>2];j=+g[d+(a+e<<2)>>2];i=+F(+(h*h+1.0000000036274937e-15+j*j))+1.0000000036274937e-15;h=h/i;i=j/i;a=0;while(1){if((a|0)>=(f|0))break;e=b+(a<<2)|0;g[e>>2]=h*+g[e>>2]+i*+g[c+(a<<2)>>2];a=a+1|0}return}function Sa(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0,h=0.0,i=0;d=0;while(1){if((d|0)>=(c|0))break;i=a+(d<<2)|0;f=+g[i>>2]*.7071067690849304;e=b+(d<<2)|0;h=+g[e>>2]*.7071067690849304;g[i>>2]=f+h;g[e>>2]=h-f;d=d+1|0}return}function Ta(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0.0,f=0,h=0.0,i=0.0,j=0,k=0,m=0.0,n=0;j=l;l=l+16|0;k=j+4|0;f=j;g[k>>2]=0.0;g[f>>2]=0.0;Ua(b,a,b,d,k,f);h=+g[k>>2]*c;g[k>>2]=h;i=c*c+ +g[f>>2];h=h*2.0;e=i-h;h=i+h;if(h<6.000000284984708e-04|e<6.000000284984708e-04){Sh(b|0,a|0,d<<2|0)|0;l=j;return}i=1.0/+F(+e);e=1.0/+F(+h);f=0;while(1){if((f|0)>=(d|0))break;n=a+(f<<2)|0;m=+g[n>>2]*c;k=b+(f<<2)|0;h=+g[k>>2];g[n>>2]=i*(m-h);g[k>>2]=e*(m+h);f=f+1|0}l=j;return}function Ua(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0,k=0.0;h=0.0;i=0.0;j=0;while(1){if((j|0)>=(d|0))break;k=+g[a+(j<<2)>>2];h=h+k*+g[c+(j<<2)>>2];i=i+k*+g[b+(j<<2)>>2];j=j+1|0}g[e>>2]=i;g[f>>2]=h;return}function Va(a){a=a|0;var b=0;a:do if((a|0)<16e3)if((a|0)<12e3){switch(a|0){case 8e3:break;default:{b=6;break a}}a=6;break}else{switch(a|0){case 12e3:break;default:{b=6;break a}}a=4;break}else{if((a|0)<24e3){switch(a|0){case 16e3:break;default:{b=6;break a}}a=3;break}if((a|0)>=48e3)switch(a|0){case 48e3:{a=1;break a}default:{b=6;break a}}switch(a|0){case 24e3:break;default:{b=6;break a}}a=2}while(0);if((b|0)==6)a=0;return a|0}function Wa(a,b,c,d,e,f,h,i,j,k,l){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;h=+h;i=i|0;j=j|0;k=k|0;l=l|0;var m=0.0,n=0.0,o=0.0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0.0,y=0.0,z=0.0,A=0.0;if(f==0.0&h==0.0){if((b|0)==(a|0))return;Wh(a|0,b|0,e<<2|0)|0;return}w=(c|0)>15?c:15;p=(d|0)>15?d:15;q=+g[1536+(i*12|0)>>2]*f;r=+g[1536+(i*12|0)+4>>2]*f;s=+g[1536+(i*12|0)+8>>2]*f;t=+g[1536+(j*12|0)>>2]*h;u=+g[1536+(j*12|0)+4>>2]*h;v=+g[1536+(j*12|0)+8>>2]*h;d=f==h&(w|0)==(p|0)&(i|0)==(j|0)?0:l;f=+g[b+(-2-p<<2)>>2];m=+g[b+(~p<<2)>>2];n=+g[b+(0-p<<2)>>2];o=+g[b+(1-p<<2)>>2];c=0;while(1){if((c|0)>=(d|0))break;A=+g[b+(c-p+2<<2)>>2];z=+g[k+(c<<2)>>2];z=z*z;y=1.0-z;j=c-w|0;g[a+(c<<2)>>2]=+g[b+(c<<2)>>2]+y*q*+g[b+(j<<2)>>2]+y*r*(+g[b+(j+1<<2)>>2]+ +g[b+(j+-1<<2)>>2])+y*s*(+g[b+(j+2<<2)>>2]+ +g[b+(j+-2<<2)>>2])+z*t*n+z*u*(o+m)+z*v*(A+f);z=o;y=n;x=m;o=A;c=c+1|0;n=z;m=y;f=x}if(!(h==0.0)){Xa(a+(c<<2)|0,b+(c<<2)|0,p,e-c|0,t,u,v);return}if((b|0)==(a|0))return;Wh(a+(d<<2)|0,b+(d<<2)|0,e-d<<2|0)|0;return}function Xa(a,b,c,d,e,f,h){a=a|0;b=b|0;c=c|0;d=d|0;e=+e;f=+f;h=+h;var i=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;i=0;j=+g[b+(-2-c<<2)>>2];k=+g[b+(~c<<2)>>2];l=+g[b+(0-c<<2)>>2];m=+g[b+(1-c<<2)>>2];while(1){if((i|0)>=(d|0))break;q=+g[b+(i-c+2<<2)>>2];g[a+(i<<2)>>2]=+g[b+(i<<2)>>2]+l*e+(m+k)*f+(q+j)*h;p=m;o=l;n=k;i=i+1|0;m=q;l=p;k=o;j=n}return}function Ya(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,n=0;k=a+8|0;l=a+32|0;i=a+104|0;j=(f<<1)+g+-1|0;a=0;while(1){h=c[k>>2]|0;if((a|0)>=(h|0))break;n=c[l>>2]|0;m=a+1|0;c[e+(a<<2)>>2]=(R(R((d[(c[i>>2]|0)+((R(h,j)|0)+a)>>0]|0)+64|0,g)|0,(b[n+(m<<1)>>1]|0)-(b[n+(a<<1)>>1]|0)<>2;a=m}return}function Za(a){a=a|0;var b=0;b=gc()|0;return _a(c[b+4>>2]|0,c[b+8>>2]|0,a)|0}function _a(a,b,c){a=a|0;b=b|0;c=c|0;return ((R(a,c)|0)<<2)+236+(c<<12)+((R(c<<2,b)|0)<<2)|0}function $a(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;d=ab(a,gc()|0,d,e)|0;if(d|0){b=d;return b|0}c[a+28>>2]=Va(b)|0;b=0;return b|0}function ab(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0;f=l;l=l+16|0;if(d>>>0>2){e=-1;l=f;return e|0}if((a|0)==0|(b|0)==0){e=-7;l=f;return e|0}Qh(a|0,0,_a(c[b+4>>2]|0,c[b+8>>2]|0,d)|0)|0;c[a>>2]=b;c[a+4>>2]=d;c[a+8>>2]=d;c[a+28>>2]=1;c[a+32>>2]=0;c[a+36>>2]=c[b+12>>2];c[a+48>>2]=1;c[a+72>>2]=e;c[a+52>>2]=1;c[a+16>>2]=1;c[a+40>>2]=-1;c[a+44>>2]=0;c[a+12>>2]=0;c[a+24>>2]=5;c[a+60>>2]=24;bb(a,4028,f)|0;e=0;l=f;return e|0}function bb(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;j=l;l=l+16|0;e=j;c[e>>2]=d;do switch(b|0){case 4010:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if(b>>>0>10)b=43;else{c[a+24>>2]=b;b=42}break}case 10010:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if((b|0)>=0?(b|0)<(c[(c[a>>2]|0)+8>>2]|0):0){c[a+32>>2]=b;b=42}else b=43;break}case 10012:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if((b|0)>=1?(b|0)<=(c[(c[a>>2]|0)+8>>2]|0):0){c[a+36>>2]=b;b=42}else b=43;break}case 10002:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if(b>>>0>2)b=43;else{c[a+20>>2]=(b|0)!=2&1;c[a+12>>2]=(b|0)==0&1;b=42}break}case 4014:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if(b>>>0>100)b=43;else{c[a+56>>2]=b;b=42}break}case 4020:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;c[a+52>>2]=b;b=42;break}case 4006:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;c[a+44>>2]=b;b=42;break}case 4002:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if((b|0)>500|(b|0)==-1){i=(c[a+4>>2]|0)*26e4|0;c[a+40>>2]=(b|0)<(i|0)?b:i;b=42}else b=43;break}case 10008:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if((b+-1|0)>>>0>1)b=43;else{c[a+8>>2]=b;b=42}break}case 4036:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if((b+-8|0)>>>0>16)b=43;else{c[a+60>>2]=b;b=42}break}case 4037:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;c[b>>2]=c[a+60>>2];b=42;break}case 4046:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if(b>>>0>1)b=43;else{c[a+68>>2]=b;b=42}break}case 4047:{i=(c[e>>2]|0)+(4-1)&~(4-1);b=c[i>>2]|0;c[e>>2]=i+4;if(!b)b=43;else{c[b>>2]=c[a+68>>2];b=42}break}case 4028:{d=a+4|0;i=c[d>>2]|0;h=c[a>>2]|0;k=c[h+4>>2]|0;e=a+236+((R(i,k+1024|0)|0)<<2)|0;b=c[h+8>>2]|0;f=R(i,b)|0;e=e+(f<<2)|0;f=e+(f<<2)|0;Qh(a+76|0,0,(_a(k,b,i)|0)+-76|0)|0;b=0;while(1){if((b|0)>=(R(i,c[h+8>>2]|0)|0))break;g[f+(b<<2)>>2]=-28.0;g[e+(b<<2)>>2]=-28.0;b=b+1|0;h=c[a>>2]|0;i=c[d>>2]|0}c[a+208>>2]=0;g[a+84>>2]=1.0;c[a+80>>2]=2;c[a+88>>2]=256;c[a+96>>2]=0;c[a+100>>2]=0;b=42;break}case 10016:{k=(c[e>>2]|0)+(4-1)&~(4-1);b=c[k>>2]|0;c[e>>2]=k+4;c[a+48>>2]=b;b=42;break}case 10022:{k=(c[e>>2]|0)+(4-1)&~(4-1);b=c[k>>2]|0;c[e>>2]=k+4;if(!b)b=42;else{e=a+120|0;d=e+56|0;do{c[e>>2]=c[b>>2];e=e+4|0;b=b+4|0}while((e|0)<(d|0));b=42}break}case 10028:{k=(c[e>>2]|0)+(4-1)&~(4-1);b=c[k>>2]|0;c[e>>2]=k+4;if(!b)b=42;else{i=b;k=c[i+4>>2]|0;b=a+176|0;c[b>>2]=c[i>>2];c[b+4>>2]=k;b=42}break}case 10015:{k=(c[e>>2]|0)+(4-1)&~(4-1);b=c[k>>2]|0;c[e>>2]=k+4;if(!b)b=43;else{c[b>>2]=c[a>>2];b=42}break}case 4031:{k=(c[e>>2]|0)+(4-1)&~(4-1);b=c[k>>2]|0;c[e>>2]=k+4;if(!b)b=43;else{c[b>>2]=c[a+76>>2];b=42}break}case 10024:{k=(c[e>>2]|0)+(4-1)&~(4-1);b=c[k>>2]|0;c[e>>2]=k+4;c[a+64>>2]=b;b=42;break}case 10026:{k=(c[e>>2]|0)+(4-1)&~(4-1);b=c[k>>2]|0;c[e>>2]=k+4;c[a+228>>2]=b;b=42;break}default:{k=-5;l=j;return k|0}}while(0);if((b|0)==42){k=0;l=j;return k|0}else if((b|0)==43){k=-1;l=j;return k|0}return 0}function cb(a,b,c,d,e,f,h,i,j){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=+f;h=+h;i=i|0;j=j|0;var k=0.0,l=0,m=0,n=0;k=+g[i>>2];do if(h==0.0){if((e|0)!=1){l=(c|0)/(e|0)|0;n=8;break}if(!j){l=0;while(1){if((l|0)>=(c|0))break;h=+g[a+((R(l,d)|0)<<2)>>2]*32768.0;g[b+(l<<2)>>2]=h-k;k=h*f;l=l+1|0}g[i>>2]=k;return}else m=c}else{l=(c|0)/(e|0)|0;if((e|0)==1)m=l;else n=8}while(0);if((n|0)==8){Qh(b|0,0,c<<2|0)|0;m=l}l=0;while(1){if((l|0)>=(m|0))break;g[b+((R(l,e)|0)<<2)>>2]=+g[a+((R(l,d)|0)<<2)>>2]*32768.0;l=l+1|0}a:do if(!j)l=0;else{l=0;while(1){if((l|0)>=(m|0)){l=0;break a}d=b+((R(l,e)|0)<<2)|0;h=+g[d>>2];j=h>65536.0;a=h<-65536.0&(j^1);g[d>>2]=a|j?(a?-65536.0:65536.0):h;l=l+1|0}}while(0);while(1){if((l|0)>=(c|0))break;d=b+(l<<2)|0;h=+g[d>>2];g[d>>2]=h-k;k=h*f;l=l+1|0}g[i>>2]=k;return}function db(a,d,e,f,h,i){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0.0,v=0.0,w=0.0,x=0,y=0.0,z=0,A=0,B=0.0,C=0,D=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,S=0,T=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,ga=0.0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,ta=0,ua=0,va=0,xa=0,za=0,Ba=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;Qa=l;l=l+96|0;q=Qa+40|0;Ia=Qa+32|0;F=Qa+28|0;Ea=Qa+24|0;Ba=Qa+20|0;P=Qa+16|0;ma=Qa+12|0;na=Qa+8|0;Q=Qa+4|0;G=Qa;Ma=c[a+4>>2]|0;Ha=c[a+8>>2]|0;c[Ia>>2]=15;g[F>>2]=0.0;c[Ea>>2]=0;c[P>>2]=0;c[Q>>2]=0;Da=c[a>>2]|0;oa=Da+8|0;Na=c[oa>>2]|0;C=c[Da+4>>2]|0;pa=Da+32|0;da=c[pa>>2]|0;Oa=c[a+32>>2]|0;Pa=c[a+36>>2]|0;la=(Oa|0)!=0;g[ma>>2]=0.0;if((h|0)<2|(d|0)==0){Pa=-1;l=Qa;return Pa|0}J=a+28|0;k=R(c[J>>2]|0,e)|0;j=Da+44|0;ia=Da+36|0;e=c[ia>>2]|0;za=0;while(1){if((za|0)>(e|0)){e=-1;X=221;break}if((c[j>>2]<>2]<>2]|0;A=c[i+28>>2]|0;ka=zb(x,A)|0;A=eb(x,A)|0;x=A+4>>3}j=(h|0)<1275?h:1275;p=j-x|0;W=a+44|0;e=c[a+40>>2]|0;if(!(c[W>>2]|0))if((e|0)==-1)X=13;else{va=R(e,k)|0;X=c[Da>>2]|0;X=((va+((A|0)>1?A:0)+(X<<2)|0)/(X<<3|0)|0)-((c[a+48>>2]|0)!=0&1)|0;va=(j|0)<(X|0);j=((va?j:X)|0)<2?2:va?j:X;X=13}else if((e|0)==-1){e=-1;X=13}else{qa=c[Da>>2]|0;qa=((R(e,k)|0)+(qa>>4)|0)/(qa>>3|0)|0;z=qa>>6}if((X|0)==13){z=j-x|0;qa=0}ea=3-za|0;h=R((Ha*40|0)+20|0,(400>>>za)+-50|0)|0;k=(j*400>>ea)-h|0;if((e|0)==-1)ta=k;else{ta=e-h|0;ta=(k|0)<(ta|0)?k:ta}if(o){Jb(q,f,j);va=q}else va=i;$=(qa|0)>0;if((($?(c[a+52>>2]|0)!=0:0)?(r=(A|0)==1?2:0,s=(qa<<1)-(c[a+200>>2]|0)>>6,t=(r|0)>(s|0),((t?r:s)|0)<(p|0)):0)?(n=t?r:s,(n|0)<(p|0)):0){j=x+n|0;Wb(va,j)}else n=p;h=j<<3;O=c[Da+12>>2]|0;O=(Pa|0)>(O|0)?O:Pa;q=xa+C|0;S=R(Ma,q)|0;ua=fa()|0;I=l;l=l+((1*(S<<2)|0)+15&-16)|0;S=a+216|0;m=+g[S>>2];o=R(Ha,xa-C|0)|0;e=c[J>>2]|0;o=(o|0)/(e|0)|0;ga=+fb(d,o);ga=m>ga?m:ga;m=+fb(d+(o<<2)|0,(R(Ha,C)|0)/(e|0)|0);g[S>>2]=m;m=ga>m?ga:m;S=a+60|0;e=m<=1.0/+(1<>2]|0);o=e&1;if((A|0)==1){Qb(va,o,15);if(e){if($){e=x+2|0;j=(j|0)<(e|0)?j:e;Wb(va,j);e=j<<3;k=j;n=2}else{e=h;k=z}i=j<<3;ra=va+20|0;h=c[ra>>2]|0;c[ra>>2]=h+(i-(eb(h,c[va+28>>2]|0)|0));ra=o;h=e;t=j}else{ra=0;i=1;k=z;t=j}}else{ra=0;i=A;k=z;t=j}p=a+16|0;f=Da+16|0;o=Da+20|0;j=m>65536.0;e=0;do{ja=I+((R(e,q)|0)<<2)+(C<<2)|0;cb(d+(e<<2)|0,ja,xa,Ma,c[J>>2]|0,+g[f>>2],+g[o>>2],a+184+(e<<2)|0,j&(c[p>>2]|0)!=0&1);e=e+1|0}while((e|0)<(Ma|0));ba=a+64|0;if(((c[ba>>2]|0)!=0&(n|0)>3|(n|0)>(Ha*12|0))&(la^1)&(ra|0)==0?(c[a+20>>2]|0)==0:0)e=(c[a+24>>2]|0)>4;else e=0;M=a+100|0;ja=c[M>>2]|0;e=gb(a,I,D,Ma,xa,ja,Ia,F,G,e&1,n)|0;ga=+g[F>>2];if(!(ga>.4000000059604645)?!(+g[a+108>>2]>.4000000059604645):0)V=0;else X=35;do if((X|0)==35){if(c[a+120>>2]|0?!(+g[a+124>>2]>.3):0){V=0;break}y=+(c[Ia>>2]|0);B=+(c[a+104>>2]|0);V=(y>B*1.26|y(h|0)))Qb(va,0,1)}else{Qb(va,1,1);ca=c[Ia>>2]|0;Z=ca+1|0;aa=32-(U(Z|0)|0)|0;_=aa+-5|0;Sb(va,_,6);Tb(va,Z-(16<<_)|0,aa+-1|0);c[Ia>>2]=ca;Tb(va,c[G>>2]|0,3);Rb(va,ja,28866,2)}aa=a+24|0;if((c[aa>>2]|0)>0?(c[ba>>2]|0)==0:0){if(la&(k|0)<15)e=(c[a+180>>2]|0)>99;else e=0;j=hb(I,q,Ma,ma,P,e&1,Q)|0}else j=0;d=(za|0)>0;a:do if(d?((eb(c[va+20>>2]|0,c[va+28>>2]|0)|0)+3|0)<=(h|0):0)if(j){f=(R(Ma,xa)|0)<<2;p=l;l=l+((1*f|0)+15&-16)|0;f=l;l=l+((1*(Ga<<2)|0)+15&-16)|0;i=l;l=l+((1*(Ga<<2)|0)+15&-16)|0;o=R(Ha,Na)|0;q=l;l=l+((1*(o<<2)|0)+15&-16)|0;if((c[aa>>2]|0)>7){ib(Da,0,I,p,Ha,Ma,za,c[J>>2]|0);wa(Da,p,f,O,Ha,za);Bc(Da,O,Pa,f,q,Ha);m=+(za|0)*.5;e=0;while(1){if((e|0)>=(o|0)){ca=0;C=T;z=0;A=1;break a}ca=q+(e<<2)|0;g[ca>>2]=+g[ca>>2]+m;e=e+1|0}}else{ca=0;C=T;z=0;A=0}}else{e=0;X=50}else{e=1;j=0;X=50}while(0);if((X|0)==50){f=(R(Ma,xa)|0)<<2;p=l;l=l+((1*f|0)+15&-16)|0;f=l;l=l+((1*(Ga<<2)|0)+15&-16)|0;i=l;l=l+((1*(Ga<<2)|0)+15&-16)|0;ca=(R(Ha,Na)|0)<<2;q=l;l=l+((1*ca|0)+15&-16)|0;ca=e;C=0;z=1;A=0}ib(Da,C,I,p,Ha,Ma,za,c[J>>2]|0);_=(Ma|0)==2;if(_&(Ha|0)==1)c[P>>2]=0;wa(Da,p,f,O,Ha,za);b:do if(!(c[ba>>2]|0))Y=f;else{e=2;while(1){if((e|0)>=(Pa|0)){Y=f;break b}Z=f+(e<<2)|0;y=+g[Z>>2];B=+g[f>>2]*9.999999747378752e-05;B=y>2]=B>1.0000000036274937e-15?B:1.0000000036274937e-15;e=e+1|0}}while(0);Bc(Da,O,Pa,Y,i,Ha);Z=R(Ha,Na)|0;D=l;l=l+((1*(Z<<2)|0)+15&-16)|0;Qh(D|0,0,Pa<<2|0)|0;do if(!la?(H=c[a+228>>2]|0,(H|0)!=0):0){e=c[ba>>2]|0;if(e|0){y=0.0;u=0.0;B=0.0;e=(e|0)==0;break}x=c[a+92>>2]|0;x=(x|0)>2?x:2;e=0;u=0.0;m=0.0;r=0;while(1){if((r|0)>=(Ha|0))break;s=R(Na,r)|0;v=m;f=0;while(1){if((f|0)>=(x|0))break;m=+g[H+(s+f<<2)>>2];o=m<.25;do if(m>-2.0|o^1){if(o){if(!(m>0.0))break}else m=.25;m=m*.5}else m=-2.0;while(0);X=f+1|0;N=(b[da+(X<<1)>>1]|0)-(b[da+(f<<1)>>1]|0)|0;e=e+N|0;u=u+m*+((f<<1|1)-x|0);v=v+m*+(N|0);f=X}m=v;r=r+1|0}m=m/+(e|0)+.20000000298023224;u=u*6.0/+(R(R(R(Ha,x+-1|0)|0,x+1|0)|0,x)|0)*.5;e=u<.03099999949336052;u=e?(e&!(u>-.03099999949336052)?-.03099999949336052:u):.03099999949336052;e=(b[da+(x<<1)>>1]|0)/2|0;s=0;while(1){o=s+1|0;if((b[da+(o<<1)>>1]|0)>16)s=o;else break}r=(Ha|0)==2;e=0;f=0;while(1){if((f|0)>=(x|0))break;o=H+(f<<2)|0;if(r){X=H+(Na+f<<2)|0;o=+g[o>>2]>+g[X>>2]?o:X}v=+g[o>>2];v=(v<0.0?v:0.0)-(m+u*+(f-s|0));if(v>.25){g[D+(f<<2)>>2]=v+-.25;e=e+1|0}f=f+1|0}c:do if((e|0)>2){m=m+.25;if(m>0.0){Qh(D|0,0,x<<2|0)|0;u=0.0;m=0.0;break}else e=0;while(1){if((e|0)>=(x|0))break c;X=D+(e<<2)|0;B=+g[X>>2]+-.25;g[X>>2]=B<0.0?0.0:B;e=e+1|0}}while(0);y=m+.20000000298023224;B=u*64.0;X=89}else{y=0.0;B=0.0;X=89}while(0);if((X|0)==89){e=(c[ba>>2]|0)==0;if(e){w=z?0.0:+(za|0)*.5;f=(Ha|0)==2;v=0.0;m=-10.0;o=Oa;while(1){if((o|0)>=(Pa|0))break;u=m+-1.0;m=+g[i+(o<<2)>>2]-w;m=u>m?u:m;do if(f){u=+g[i+(o+Na<<2)>>2]-w;if(m>u)break;m=u}while(0);v=v+m;o=o+1|0}N=a+232|0;w=+g[N>>2];u=v/+(Pa-Oa|0)-w;K=u<-1.5;L=u>3.0&(K^1);u=L|K?(L?3.0:-1.5):u;g[N>>2]=w+u*.019999999552965164}else u=0.0}if(!A)Sh(q|0,i|0,Z<<2|0)|0;if(d){r=va+20|0;f=c[r>>2]|0;s=va+28|0;o=c[s>>2]|0;do if(((eb(f,o)|0)+3|0)<=(h|0)&(j|0)==0){if((c[aa>>2]|0)<=4){e=C;j=0;break}if(!e){e=C;j=0;break}if(la){e=C;j=0;break}if(!(jb(i,Ja,Na,0,Pa,Ha)|0)){e=C;j=0;break}ib(Da,T,I,p,Ha,Ma,za,c[J>>2]|0);wa(Da,p,Y,O,Ha,za);Bc(Da,O,Pa,Y,i,Ha);m=+(za|0)*.5;e=0;while(1){if((e|0)>=(Z|0))break;N=q+(e<<2)|0;g[N>>2]=+g[N>>2]+m;e=e+1|0}g[ma>>2]=.20000000298023224;f=c[r>>2]|0;o=c[s>>2]|0;e=T;j=1}else e=C;while(0);if(((eb(f,o)|0)+3|0)>(h|0)){L=e;N=j}else{Qb(va,j,3);L=e;N=j}}else{L=C;N=j}J=(R(Ha,xa)|0)<<2;K=l;l=l+((1*J|0)+15&-16)|0;ya(Da,p,K,Y,O,Ha,T);J=l;l=l+((1*(Na<<2)|0)+15&-16)|0;d:do if((k|0)<(Ha*15|0))if(la)X=119;else{e=0;X=125}else if(la)X=119;else{if((c[aa>>2]|0)<=1){e=0;X=125;break}if(c[ba>>2]|0){e=0;X=125;break}j=(1280/(k|0)|0)+2|0;j=kb(Da,O,N,J,(j|0)>5?j:5,K,xa,za,+g[ma>>2],c[P>>2]|0)|0;o=J+(O+-1<<2)|0;e=O;while(1){if((e|0)>=(Pa|0))break d;c[J+(e<<2)>>2]=c[o>>2];e=e+1|0}}while(0);e:do if((X|0)==119){if(c[Q>>2]|0){e=0;while(1){if((e|0)>=(Pa|0)){j=0;break e}c[J+(e<<2)>>2]=1;e=e+1|0}}if((k|0)<15)e=0;else{e=0;X=125;break}while(1){if((e|0)>=(Pa|0)){j=N;break e}c[J+(e<<2)>>2]=0;e=e+1|0}}while(0);f:do if((X|0)==125)while(1){X=0;if((e|0)>=(Pa|0)){j=0;break f}c[J+(e<<2)>>2]=N;e=e+1|0;X=125}while(0);H=l;l=l+((1*(Z<<2)|0)+15&-16)|0;o=0;do{p=R(o,Na)|0;e=Oa;while(1){if((e|0)>=(Pa|0))break;f=e+p|0;r=i+(f<<2)|0;m=+g[r>>2];if(+E(+(m-+g[Ja+(f<<2)>>2]))<2.0)g[r>>2]=m-+g[Fa+(f<<2)>>2]*.25;e=e+1|0}o=o+1|0}while((o|0)<(Ha|0));uc(Da,Oa,Pa,O,i,Ja,h,H,va,Ha,za,n,c[a+12>>2]|0,a+84|0,(c[aa>>2]|0)>3&1,c[a+56>>2]|0,c[ba>>2]|0);lb(Oa,Pa,N,J,za,j,va);G=va+20|0;I=va+28|0;if(((eb(c[G>>2]|0,c[I>>2]|0)|0)+4|0)<=(h|0)){do if(!(c[ba>>2]|0))if(la){if(!(c[aa>>2]|0)){c[a+80>>2]=0;e=0;break}e=a+80|0;if(!N){c[e>>2]=3;e=3;break}else{c[e>>2]=2;e=2;break}}else{j=c[aa>>2]|0;if(!((L|0)!=0|(j|0)<3|(n|0)<(Ha*10|0))){Q=a+80|0;e=Aa(Da,K,a+88|0,c[Q>>2]|0,a+96|0,M,(F^1)&1,O,Ha,T)|0;c[Q>>2]=e;break}e=a+80|0;if(!j){c[e>>2]=0;e=0;break}else{c[e>>2]=2;e=2;break}}else{c[M>>2]=0;c[a+80>>2]=2;e=2}while(0);Rb(va,e,28869,5)}F=l;l=l+((1*(Na<<2)|0)+15&-16)|0;A=a+52|0;d=a+120|0;m=+mb(i,q,Na,Oa,Pa,Ha,F,c[S>>2]|0,c[Da+56>>2]|0,N,c[W>>2]|0,c[A>>2]|0,da,za,k,na,c[ba>>2]|0,D,d);if(c[ba>>2]|0)c[F>>2]=(k|0)>26?8:(k|0)/3|0;D=l;l=l+((1*(Na<<2)|0)+15&-16)|0;Ya(Da,D,za,Ha);z=h<<3;W=c[G>>2]|0;k=c[I>>2]|0;h=6;o=0;j=W;e=k;n=Oa;k=zb(W,k)|0;while(1){if((n|0)>=(Pa|0))break;x=n+1|0;p=(R(Ha,(b[da+(x<<1)>>1]|0)-(b[da+(n<<1)>>1]|0)|0)|0)<=(z-o|0))break;if((r|0)>=(c[f>>2]|0))break;W=(q|0)<(c[s>>2]|0);Qb(va,W&1,n);j=c[G>>2]|0;e=c[I>>2]|0;k=zb(j,e)|0;if(!W)break;q=q+1|0;r=r+p|0;n=1;o=o+p|0}if(q)h=(h|0)<3?2:h+-1|0;c[s>>2]=r;n=x}C=(Ha|0)==2;if(C){if(za|0)c[Ea>>2]=nb(Da,K,za,xa)|0;da=a+224|0;W=sa(+((ta|0)/1e3|0|0),c[da>>2]|0)|0;T=(Oa|0)>(W|0);c[da>>2]=(Pa|0)<((T?Oa:W)|0)?Pa:T?Oa:W}if((k+48|0)>(z-o|0))x=5;else{do if((Oa|0)>0)X=168;else{if(c[ba>>2]|0){X=168;break}h=ob(Da,K,i,Pa,za,Ha,xa,d,a+220|0,+g[ma>>2],c[a+224>>2]|0,B,ta)|0}while(0);if((X|0)==168){g[a+220>>2]=0.0;h=5}Rb(va,h,28873,7);da=c[G>>2]|0;k=c[I>>2]|0;j=da;e=k;x=h;k=zb(da,k)|0}if($){f=(c[ia>>2]|0)-za|0;i=1275>>>ea;i=(t|0)<(i|0)?t:i;if(la){e=(Ha*72|0)+32|0;e=(qa|0)<(e|0)?0:qa-e|0}else e=qa-((Ha*320|0)+160)|0;h=c[A>>2]|0;p=(h|0)==0;if(!p)e=e+(c[a+208>>2]>>f)|0;if(la){pa=c[a+180>>2]|0;B=+g[ma>>2];e=e+((pa|0)<100?96>>>ea:0)-((pa|0)>100?144>>>ea:0)+~~((B+-.25)*400.0)|0;pa=(k+o+63>>6)+2|0;j=ka+296+o+63>>6;j=(pa|0)>(j|0)?pa:j;e=!(B>.699999988079071)|(e|0)>400?e:400}else{j=(k+o+63>>6)+2|0;e=pb(c[oa>>2]|0,c[pa>>2]|0,d,e,za,ta,c[a+92>>2]|0,Ha,c[a+224>>2]|0,h,+g[a+220>>2],c[na>>2]|0,+g[ma>>2],V,m,c[ba>>2]|0,(c[a+228>>2]|0)!=0&1,y,u)|0}k=e+k|0;n=k+32>>6;n=(j|0)>(n|0)?j:n;n=(i|0)<(n|0)?i:n;o=(ra|0)==0;e=o?n:2;j=a+212|0;h=c[j>>2]|0;if((h|0)<970){c[j>>2]=h+1;m=1.0/+(h+21|0)}else m=1.0000000474974513e-03;do if(!p){j=a+200|0;c[j>>2]=(c[j>>2]|0)+((o?n<<6:128)-qa);j=a+208|0;pa=a+204|0;h=c[pa>>2]|0;h=h+~~(m*+(((o?k-qa|0:0)<>2]|0)-h|0))|0;c[pa>>2]=h;c[j>>2]=0-h;j=a+200|0;h=c[j>>2]|0;if((h|0)>=0)break;c[j>>2]=0;e=o?n+((h|0)/-64|0)|0:2}while(0);t=(i|0)<(e|0)?i:e;Wb(va,t);j=c[G>>2]|0;e=c[I>>2]|0}f=l;l=l+((1*(Na<<2)|0)+15&-16)|0;i=l;l=l+((1*(Na<<2)|0)+15&-16)|0;q=l;l=l+((1*(Na<<2)|0)+15&-16)|0;r=t<<6;e=r-(zb(j,e)|0)+-1|0;s=(N|0)==0;if((za|0)>1&(s^1))o=(e|0)>=((za<<3)+16|0);else o=0;n=o?8:0;j=e-n|0;if(!(c[a+120>>2]|0))e=Pa+-1|0;else{do if((ta|0)<(Ha*32e3|0))e=13;else{if((ta|0)<(Ha*48e3|0)){e=16;break}if((ta|0)<(Ha*6e4|0)){e=18;break}e=(ta|0)<(Ha*8e4|0)?19:20}while(0);ta=c[a+148>>2]|0;e=(ta|0)>(e|0)?ta:e}k=a+224|0;h=a+92|0;j=Cc(Da,Oa,Pa,F,D,x,k,Ea,j,Ba,i,f,q,Ha,za,va,c[h>>2]|0,(c[ba>>2]|0)==0?e:1)|0;e=c[h>>2]|0;if(!e)e=j;else{qa=e+1|0;e=e+-1|0;ta=(e|0)>(j|0);e=(qa|0)<((ta?e:j)|0)?qa:ta?e:j}c[h>>2]=e;zc(Da,Oa,Pa,Ja,H,f,va,Ha);ta=l;l=l+((1*Z|0)+15&-16)|0;p=a+76|0;Ca(Da,Oa,Pa,K,C?K+(xa<<2)|0:0,ta,Y,i,L,c[a+80>>2]|0,c[Ea>>2]|0,c[k>>2]|0,J,r-n|0,c[Ba>>2]|0,va,za,j,p,c[aa>>2]|0,c[a+72>>2]|0,c[a+68>>2]|0);if(o)Tb(va,(c[a+116>>2]|0)<2&1,1);Ac(Da,Oa,Pa,Ja,H,f,q,(t<<3)-(eb(c[G>>2]|0,c[I>>2]|0)|0)|0,va,Ha);k=Ga<<2;Qh(Fa|0,0,k|0)|0;j=0;do{h=R(j,Na)|0;e=Oa;while(1){if((e|0)>=(Pa|0))break;Ea=e+h|0;B=+g[H+(Ea<<2)>>2];Ba=B>.5;Da=B<-.5&(Ba^1);g[Fa+(Ea<<2)>>2]=Da|Ba?(Da?-.5:.5):B;e=e+1|0}j=j+1|0}while((j|0)<(Ha|0));g:do if(ra|0){e=0;while(1){if((e|0)>=(Z|0))break g;g[Ja+(e<<2)>>2]=-28.0;e=e+1|0}}while(0);c[a+104>>2]=c[Ia>>2];g[a+108>>2]=ga;c[a+112>>2]=ja;if(_&(Ha|0)==1)Sh(Ja+(Na<<2)|0,Ja|0,Na<<2|0)|0;h:do if(s){Sh(La|0,Ka|0,k|0)|0;Sh(Ka|0,Ja|0,k|0)|0;j=0}else{e=0;while(1){if((e|0)>=(Ga|0)){j=0;break h}Ia=Ka+(e<<2)|0;B=+g[Ia>>2];ga=+g[Ja+(e<<2)>>2];g[Ia>>2]=B=(Oa|0)){e=Pa;break}Ia=h+e|0;g[Ja+(Ia<<2)>>2]=0.0;g[La+(Ia<<2)>>2]=-28.0;g[Ka+(Ia<<2)>>2]=-28.0;e=e+1|0}while(1){if((e|0)>=(Na|0))break;Ia=h+e|0;g[Ja+(Ia<<2)>>2]=0.0;g[La+(Ia<<2)>>2]=-28.0;g[Ka+(Ia<<2)>>2]=-28.0;e=e+1|0}j=j+1|0}while((j|0)<(Ma|0));j=a+116|0;if(!(N|ca))e=0;else e=(c[j>>2]|0)+1|0;c[j>>2]=e;c[p>>2]=c[I>>2];Xb(va);Pa=(qb(c[va+44>>2]|0)|0)==0;ha(ua|0);Pa=Pa?t:-3;l=Qa;return Pa|0}function eb(a,b){a=a|0;b=b|0;return (U(b|0)|0)+-32+a|0}function fb(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0,f=0.0;c=0.0;d=0.0;e=0;while(1){if((e|0)>=(b|0))break;f=+g[a+(e<<2)>>2];c=cf?d:f;e=e+1|0}f=-c;return +(d>f?d:f)}function gb(a,b,d,e,f,h,i,j,k,m,n){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;var o=0,p=0.0,q=0,r=0.0,s=0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;N=l;l=l+16|0;J=N+8|0;s=N;v=c[a>>2]|0;K=c[v+4>>2]|0;q=f+1024|0;M=(R(q,e)|0)<<2;L=l;l=l+((1*M|0)+15&-16)|0;c[J>>2]=L;c[J+4>>2]=L+(q<<2);L=K+f|0;M=f<<2;o=0;do{I=c[J+(o<<2)>>2]|0;Sh(I|0,d+(o<<10<<2)|0,4096)|0;Sh(I+4096|0,b+((R(o,L)|0)<<2)+(K<<2)|0,M|0)|0;o=o+1|0}while((o|0)<(e|0));if(!m){c[s>>2]=15;t=0.0;q=a+104|0;I=15}else{m=fa()|0;o=l;l=l+((1*(q>>1<<2)|0)+15&-16)|0;hc(J,o,q,e);mc(o+2048|0,o,f,s);c[s>>2]=1024-(c[s>>2]|0);q=a+104|0;p=+oc(o,f,s,c[q>>2]|0,+g[a+108>>2]);o=c[s>>2]|0;if((o|0)>1022){c[s>>2]=1022;o=1022}t=p*.699999988079071;I=c[a+56>>2]|0;t=(I|0)>2?t*.5:t;ha(m|0);t=(I|0)>8?0.0:(I|0)>4?t*.5:t;I=o}s=c[q>>2]|0;H=I-s|0;p=(((H|0)>-1?H:0-H|0)*10|0)>(I|0)?.4000000059604645:.20000000298023224;if((n|0)>=25){if((n|0)<35)u=11}else{p=p+.10000000149011612;u=11}if((u|0)==11)p=p+.10000000149011612;H=a+108|0;r=+g[H>>2];p=r>.4000000059604645?p+-.10000000149011612:p;p=r>.550000011920929?p+-.10000000149011612:p;if(t<(p>.20000000298023224?p:.20000000298023224)){F=0;G=0;p=0.0}else{m=+E(+(t-r))<.10000000149011612;m=~~+D(+((m?r:t)*32.0/3.0+.5));o=m+-1|0;if((o|0)<=7)if((m|0)<1)o=0;else u=15;else{o=7;u=15}F=o;G=1;p=+(o+1|0)*.09375}A=v+44|0;B=K<<2;r=-p;C=a+112|0;w=v+60|0;x=(f|0)>1024;y=1024-f<<2;z=0-f|0;o=0;m=s;while(1){v=(c[A>>2]|0)-K|0;c[q>>2]=(m|0)>15?m:15;m=b+((R(o,L)|0)<<2)|0;s=a+236+((R(o,K)|0)<<2)|0;Sh(m|0,s|0,B|0)|0;if(!v)u=c[J+(o<<2)>>2]|0;else{u=c[J+(o<<2)>>2]|0;O=c[q>>2]|0;t=-+g[H>>2];n=c[C>>2]|0;Wa(m+(K<<2)|0,u+4096|0,O,O,v,t,t,n,n,0,0)}n=u+4096|0;Wa(m+(K<<2)+(v<<2)|0,n+(v<<2)|0,c[q>>2]|0,I,f-v|0,-+g[H>>2],r,c[C>>2]|0,h,c[w>>2]|0,K);Sh(s|0,m+(f<<2)|0,B|0)|0;m=d+(o<<10<<2)|0;if(x)Sh(m|0,u+(f<<2)|0,4096)|0;else{Wh(m|0,m+(f<<2)|0,y|0)|0;Sh(m+4096+(z<<2)|0,n|0,M|0)|0}o=o+1|0;if((o|0)>=(e|0))break;m=c[q>>2]|0}g[j>>2]=p;c[i>>2]=I;c[k>>2]=F;l=N;return G|0}function hb(a,b,e,f,h,i,j){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0.0,m=0.0,n=0,o=0.0,p=0.0,q=0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0.0,E=0,G=0;A=l;y=l;l=l+((1*(b<<2)|0)+15&-16)|0;c[j>>2]=0;w=(i|0)==0;p=w?.0625:.03125;x=(b|0)/2|0;s=+(x|0);t=+(x|0);u=x+-5|0;v=(x*6|0)+-102|0;q=0;r=0;while(1){if((q|0)>=(e|0))break;n=R(q,b)|0;k=0.0;i=0;m=0.0;while(1){if((i|0)>=(b|0))break;C=+g[a+(i+n<<2)>>2];B=m+C;g[y+(i<<2)>>2]=B;o=k+B-C*2.0;k=C-B*.5;i=i+1|0;m=o}i=y;n=i+48|0;do{c[i>>2]=0;i=i+4|0}while((i|0)<(n|0));o=0.0;k=0.0;i=0;while(1){if((i|0)>=(x|0)){i=x;m=0.0;break}n=i<<1;C=+g[y+(n<<2)>>2];B=+g[y+((n|1)<<2)>>2];B=C*C+B*B;C=k+p*(B-k);g[y+(i<<2)>>2]=C;o=o+B;k=C;i=i+1|0}a:while(1){n=i;k=m;while(1){i=n+-1|0;if((n|0)<=0)break a;n=y+(i<<2)|0;k=k+(+g[n>>2]-k)*.125;g[n>>2]=k;if(m>k)n=i;else{m=k;continue a}}}k=t/(+F(+(o*m*.5*s))+1.0000000036274937e-15)*64.0;i=0;n=12;while(1){if((n|0)>=(u|0))break;C=+D(+(k*(+g[y+(n<<2)>>2]+1.0000000036274937e-15)));G=C>127.0;E=C<0.0&(G^1);i=i+(d[28884+~~(E|G?(E?0.0:127.0):C)>>0]|0)|0;n=n+4|0}i=(i<<8|0)/(v|0)|0;if((i|0)>(r|0))c[h>>2]=q;else i=r;q=q+1|0;r=i}if((r+-201|0)>>>0<399&(w^1)){c[j>>2]=1;i=0}else i=(r|0)>200&1;k=+F(+(+(r*27|0)))+-42.0;if(!(k<0.0))if(k>163.0)m=163.0;else z=22;else{k=0.0;z=22}if((z|0)==22)m=k;if(m*.006899999920278788+-.139<0.0){C=0.0;C=+F(+C);g[f>>2]=C;l=A;return i|0}C=(k>163.0?163.0:k)*.006899999920278788+-.139;C=+F(+C);g[f>>2]=C;l=A;return i|0}function ib(a,b,d,e,f,h,i,j){a=a|0;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.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;q=c[a+4>>2]|0;n=(b|0)==0;t=c[a+44>>2]<<(n?i:0);s=n?1:b;n=(c[a+36>>2]|0)-(n?i:0)|0;o=a+64|0;r=R(s,t)|0;p=r+q|0;a=a+60|0;b=0;do{k=d+((R(b,p)|0)<<2)|0;m=R(R(b,t)|0,s)|0;i=0;while(1){if((i|0)>=(s|0))break;u=k+((R(i,t)|0)<<2)|0;fc(o,u,e+(i+m<<2)|0,c[a>>2]|0,q,n,s);i=i+1|0}b=b+1|0}while((b|0)<(h|0));a:do if((h|0)==2&(f|0)==1){b=0;while(1){if((b|0)>=(r|0))break a;u=e+(b<<2)|0;g[u>>2]=+g[u>>2]*.5+ +g[e+(r+b<<2)>>2]*.5;b=b+1|0}}while(0);if((j|0)==1)return;m=(r|0)/(j|0)|0;l=+(j|0);a=r-m<<2;b=0;do{k=R(R(b,s)|0,t)|0;i=0;while(1){if((i|0)>=(m|0))break;u=e+(k+i<<2)|0;g[u>>2]=+g[u>>2]*l;i=i+1|0}Qh(e+(k+m<<2)|0,0,a|0)|0;b=b+1|0}while((b|0)<(f|0));return}function jb(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,k=0.0,m=0,n=0.0,o=0.0,p=0,q=0,r=0;r=l;l=l+112|0;q=r;i=b+(e<<2)|0;a:do if((h|0)==1){p=c[i>>2]|0;c[q+(e<<2)>>2]=p;i=e;k=(c[j>>2]=p,+g[j>>2]);while(1){i=i+1|0;if((i|0)>=(f|0))break a;o=+g[b+(i<<2)>>2];o=k+-1.0>o?k+-1.0:o;g[q+(i<<2)>>2]=o;k=o}}else{o=+g[i>>2];k=+g[b+(e+d<<2)>>2];i=e;k=o>k?o:k;while(1){g[q+(i<<2)>>2]=k;i=i+1|0;if((i|0)>=(f|0))break a;n=+g[b+(i<<2)>>2];o=+g[b+(i+d<<2)>>2];m=n>o;if(k+-1.0>(m?n:o)){k=k+-1.0;continue}else{k=m?n:o;continue}}}while(0);i=f+-2|0;while(1){if((i|0)<(e|0))break;p=q+(i<<2)|0;n=+g[p>>2];o=+g[q+(i+1<<2)>>2]+-1.0;g[p>>2]=n>o?n:o;i=i+-1|0}p=(e|0)<2;b=f+-1|0;k=0.0;m=0;do{f=R(m,d)|0;i=p?2:e;while(1){if((i|0)>=(b|0))break;n=+g[a+(i+f<<2)>>2];o=+g[q+(i<<2)>>2];o=(n<0.0?0.0:n)-(o<0.0?0.0:o);k=k+(o<0.0?0.0:o);i=i+1|0}m=m+1|0}while((m|0)<(h|0));q=k/+(R(b-(p?2:e)|0,h)|0)>1.0&1;l=r;return q|0}function kb(d,e,f,g,h,i,j,k,m,n){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=+m;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.0,z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0,J=0;G=l;l=l+16|0;A=G;y=.5-m;y=(y<-.25?-.25:y)*.03999999910593033;D=l;l=l+((1*(e<<2)|0)+15&-16)|0;v=d+32|0;E=c[v>>2]|0;C=e+-1|0;E=(b[E+(e<<1)>>1]|0)-(b[E+(C<<1)>>1]|0)<=(e|0))break;u=c[v>>2]|0;t=o+1|0;j=b[u+(o<<1)>>1]|0;u=(b[u+(t<<1)>>1]|0)-j|0;n=u<>k,q),z=+ub(x,n,r,y),z=((B&(u^1)&1)+k|0))break;Ba(w,n>>d,1<>2]=j;if(!u){o=t;continue}if(!((j|0)==0|(j|0)==(s|0))){o=t;continue}c[d>>2]=j+-1;o=t}r=f<<2;n=0;while(1){if((n|0)==2)break;q=r+(n<<1)|0;p=28834+(k<<3)+q|0;q=(q|1)+(28834+(k<<3))|0;d=0;j=B?h:0;o=1;while(1){if((o|0)>=(e|0))break;f=j+h|0;I=d+h|0;J=c[D+(o<<2)>>2]|0;i=J-(a[p>>0]<<1)|0;J=J-(a[q>>0]<<1)|0;d=((d|0)<(f|0)?d:f)+((i|0)>-1?i:0-i|0)|0;j=((I|0)<(j|0)?I:j)+((J|0)>-1?J:0-J|0)|0;o=o+1|0}c[A+(n<<2)>>2]=(d|0)<(j|0)?d:j;n=n+1|0}q=(c[A+4>>2]|0)<(c[A>>2]|0)&(B^1)&1;o=r|q<<1;p=28834+(k<<3)+o|0;o=(o|1)+(28834+(k<<3))|0;n=0;d=B?h:0;j=1;while(1){if((j|0)>=(e|0))break;A=d+h|0;i=(n|0)<(A|0);c[E+(j<<2)>>2]=(i^1)&1;I=n+h|0;k=(I|0)<(d|0);c[F+(j<<2)>>2]=(k^1)&1;J=c[D+(j<<2)>>2]|0;B=J-(a[p>>0]<<1)|0;J=J-(a[o>>0]<<1)|0;n=(i?n:A)+((B|0)>-1?B:0-B|0)|0;d=(k?I:d)+((J|0)>-1?J:0-J|0)|0;j=j+1|0}j=(n|0)>=(d|0)&1;c[g+(C<<2)>>2]=j;d=e+-2|0;while(1){if((d|0)<=-1)break;J=c[((j|0)==1?F:E)+(d+1<<2)>>2]|0;c[g+(d<<2)>>2]=J;d=d+-1|0;j=J}l=G;return q|0}function lb(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;j=c[i+4>>2]<<3;r=i+20|0;s=i+28|0;l=eb(c[r>>2]|0,c[s>>2]|0)|0;k=(e|0)!=0;m=k?2:4;if((g|0)>0)t=(l+m+1|0)>>>0<=j>>>0;else t=0;q=j-(t&1)|0;p=k?4:5;n=0;o=b;k=0;while(1){if((o|0)>=(d|0))break;j=f+(o<<2)|0;if((l+m|0)>>>0>q>>>0){c[j>>2]=k;j=n}else{Qb(i,c[j>>2]^k,m);l=eb(c[r>>2]|0,c[s>>2]|0)|0;k=c[j>>2]|0;j=n|k}m=p;n=j;o=o+1|0}k=e<<2;if(t?(a[k+n+(28834+(g<<3))>>0]|0)!=(a[(k|2)+n+(28834+(g<<3))>>0]|0):0){Qb(i,h,1);j=h<<1}else j=0;j=k+j|0;while(1){if((b|0)>=(d|0))break;i=f+(b<<2)|0;c[i>>2]=a[j+(c[i>>2]|0)+(28834+(g<<3))>>0];b=b+1|0}return}function mb(a,e,f,h,i,k,m,n,o,p,q,r,s,t,u,v,w,x,y){a=a|0;e=e|0;f=f|0;h=h|0;i=i|0;k=k|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;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;var z=0.0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0.0,I=0,J=0,K=0,L=0.0,M=0,N=0,O=0.0;K=l;F=R(k,f)|0;I=l;l=l+((1*(F<<2)|0)+15&-16)|0;G=l;l=l+((1*(F<<2)|0)+15&-16)|0;Qh(m|0,0,f<<2|0)|0;z=+(9-n|0);n=0;while(1){if((n|0)>=(i|0)){n=0;z=-31.899999618530273;break}F=n+5|0;g[G+(n<<2)>>2]=+(b[o+(n<<1)>>1]|0)*.0625+.5+z-+g[18836+(n<<2)>>2]+ +(R(F,F)|0)*.006200000178068876;n=n+1|0}while(1){A=R(n,f)|0;o=0;H=z;while(1){if((o|0)>=(i|0))break;z=+g[a+(A+o<<2)>>2]-+g[G+(o<<2)>>2];o=o+1|0;H=H>z?H:z}n=n+1|0;if((n|0)>=(k|0))break;else z=H}if(!((u|0)>50&(t|0)>0&(w|0)==0)){J=0;c[v>>2]=J;l=K;return +H}D=i+-2|0;E=i+-1|0;n=0;C=0;while(1){w=R(C,f)|0;F=I+(w<<2)|0;B=e+(w<<2)|0;o=c[B>>2]|0;c[F>>2]=o;A=n;n=1;z=(c[j>>2]=o,+g[j>>2]);while(1){if((n|0)>=(i|0)){o=A;break}o=w+n|0;L=+g[e+(o<<2)>>2];o=L>+g[e+(o+-1<<2)>>2]+.5?n:A;L=z+1.5>2]=L;A=o;n=n+1|0;z=L}while(1){n=o+-1|0;if((o|0)<=0){n=2;break}M=F+(n<<2)|0;O=+g[M>>2];z=+g[F+(o<<2)>>2]+2.0;L=+g[e+(w+n<<2)>>2];N=z>2]=O<(N?z:L)?O:N?z:L;o=n}while(1){if((n|0)>=(D|0))break;N=F+(n<<2)|0;L=+g[N>>2];O=+sb(e+(w+n+-2<<2)|0)+-1.0;g[N>>2]=L>O?L:O;n=n+1|0}O=+tb(B)+-1.0;L=+g[F>>2];g[F>>2]=L>O?L:O;n=F+4|0;L=+g[n>>2];g[n>>2]=L>O?L:O;O=+tb(e+(w+i+-3<<2)|0)+-1.0;n=F+(D<<2)|0;L=+g[n>>2];g[n>>2]=L>O?L:O;n=F+(E<<2)|0;L=+g[n>>2];g[n>>2]=L>O?L:O;n=0;while(1){if((n|0)>=(i|0))break;N=F+(n<<2)|0;L=+g[N>>2];O=+g[G+(n<<2)>>2];g[N>>2]=L>O?L:O;n=n+1|0}C=C+1|0;if((C|0)>=(k|0))break;else n=A}a:do if((k|0)==2){n=h;while(1){if((n|0)>=(i|0)){n=h;break a}G=n+f|0;M=I+(G<<2)|0;O=+g[M>>2];N=I+(n<<2)|0;L=+g[N>>2]+-4.0;L=O>L?O:L;g[M>>2]=L;O=+g[N>>2];L=L+-4.0;L=O>L?O:L;g[N>>2]=L;L=+g[a+(n<<2)>>2]-L;O=+g[a+(G<<2)>>2]-+g[M>>2];g[N>>2]=((L<0.0?0.0:L)+(O<0.0?0.0:O))*.5;n=n+1|0}}else{n=h;while(1){if((n|0)>=(i|0)){n=h;break a}N=I+(n<<2)|0;O=+g[a+(n<<2)>>2]-+g[N>>2];g[N>>2]=O<0.0?0.0:O;n=n+1|0}}while(0);while(1){if((n|0)>=(i|0))break;N=I+(n<<2)|0;L=+g[N>>2];O=+g[x+(n<<2)>>2];g[N>>2]=L>O?L:O;n=n+1|0}D=(q|0)==0;b:do if((D|(r|0)!=0)&(p|0)==0){n=h;while(1){if((n|0)>=(i|0)){n=h;break b}N=I+(n<<2)|0;g[N>>2]=+g[N>>2]*.5;n=n+1|0}}else n=h;while(0);while(1){if((n|0)>=(i|0))break;if((n|0)>=8){if((n|0)>11){z=.5;J=34}}else{z=2.0;J=34}if((J|0)==34){J=0;N=I+(n<<2)|0;g[N>>2]=+g[N>>2]*z}n=n+1|0}c:do if(c[y>>2]|0){n=h;while(1){if((n|0)>=(((i|0)<19?i:19)|0))break c;N=I+(n<<2)|0;g[N>>2]=+g[N>>2]+ +(d[y+36+n>>0]|0)*.015625;n=n+1|0}}while(0);C=(u<<1|0)/3|0;B=(r|0)==0;n=0;while(1){if((h|0)>=(i|0)){J=50;break}w=I+(h<<2)|0;z=+g[w>>2];z=z<4.0?z:4.0;g[w>>2]=z;w=h+1|0;o=(R((b[s+(w<<1)>>1]|0)-(b[s+(h<<1)>>1]|0)|0,k)|0)<=6)if((o|0)>48){A=~~(z*8.0);o=((R(A,o)|0)<<3|0)/8|0;break}else{A=~~(z*+(o|0)/6.0);o=A*48|0;break}else{A=~~z;o=(R(A,o)|0)<<3}while(0);if(!((B|(p|0)!=0)&(D^1))?(n+o>>6|0)>(C|0):0)break;c[m+(h<<2)>>2]=A;n=n+o|0;h=w}if((J|0)==50){c[v>>2]=n;l=K;return +H}N=C<<6;c[m+(h<<2)>>2]=N-n;c[v>>2]=N;l=K;return +H}function nb(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0.0,o=0.0;l=a+32|0;h=1.0000000036274937e-15;i=1.0000000036274937e-15;a=0;a:while(1){if((a|0)==13)break;m=c[l>>2]|0;j=a+1|0;k=b[m+(j<<1)>>1]<>1]<=(k|0)){a=j;continue a}o=+g[d+(a<<2)>>2];n=+g[d+(a+f<<2)>>2];a=a+1|0;h=h+(+E(+(o+n))+ +E(+(o-n)));i=i+(+E(+o)+ +E(+n))}}m=b[(c[l>>2]|0)+26>>1]<+(m|0)*i|0}function ob(a,d,e,f,h,i,j,k,l,m,n,o,p){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=+m;n=n|0;o=+o;p=p|0;var q=0.0,r=0,s=0.0,t=0.0,u=0,v=0,w=0,x=0,y=0.0,z=0.0;if((p|0)>=64e3)if((p|0)<8e4)s=+(p+-64e3>>10|0)*.0625+4.0;else s=5.0;else s=4.0;if((i|0)==2){r=a+32|0;q=0.0;p=0;while(1){if((p|0)==8)break;w=c[r>>2]|0;v=b[w+(p<<1)>>1]|0;x=v<>1]|0)-v<1.0?1.0:t;q=t;p=8;while(1){if((p|0)>=(n|0))break;v=c[r>>2]|0;w=b[v+(p<<1)>>1]|0;u=w<>1]|0)-w<1.0?1.0:q;y=+P(+(1.0010000467300415-t*t))*1.4426950408889634;z=y*.5;t=+P(+(1.0010000467300415-q*q))*1.4426950408889634;y=y*.75;q=+g[l>>2]+.25;t=-((z>t?z:t)*.5);g[l>>2]=q=(n|0))break;q=q+ +g[e+(p+(R(r,c[d>>2]|0)|0)<<2)>>2]*+((p<<1)+2-f|0);p=p+1|0}r=r+1|0}while((r|0)<(i|0));q=(q/+(R(n,i)|0)+1.0)/6.0;w=q>2.0;x=q<-2.0&(w^1);q=s-(x|w?(x?-2.0:2.0):q)-o-m*2.0;if(c[k>>2]|0){z=(+g[k+8>>2]+.05000000074505806)*2.0;w=z>2.0;x=z<-2.0&(w^1);q=q-(x|w?(x?-2.0:2.0):z)}p=~~+D(+(q+.5));if((p|0)<=10){if((p|0)<0){x=0;return x|0}}else p=10;x=p;return x|0}function pb(a,d,e,f,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v){a=a|0;d=d|0;e=e|0;f=f|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;q=q|0;r=+r;s=s|0;t=t|0;u=+u;v=+v;var w=0.0,x=0,y=0,z=0,A=0;x=(j|0)==0?a:j;j=b[d+(x<<1)>>1]<(l|0)?l:x)<<1)>>1]<>2]|0)==0;if(!z?(w=+g[e+16>>2],w<.4):0)j=f-~~(+(A<<3|0)*(.4000000059604645-w))|0;else j=f;if(y){l=(x|0)>(l|0)?l:x;l=(b[d+(l<<1)>>1]<>2]+-.15000000596046448;w=+(A<<3|0);j=j+~~(w*1.2000000476837158*(n<0.0?-.11999999731779099:n+-.11999999731779099))|0;if(q)j=j+~~(w*.800000011920929)|0}x=(t|0)==0;if((s|0)==0&(x^1)){t=j+~~(+(A<<3|0)*u)|0;j=(j|0)/4|0;j=(j|0)>(t|0)?j:t}h=~~(+((R(b[d+(a+-2<<1)>>1]<>2;k=(h|0)>(k|0)?h:k;j=(j|0)<(k|0)?j:k;if((s|0)==0&(x^1)){i=j;f=f<<1;m=(f|0)<(i|0);i=m?f:i;return i|0}if(m)j=~~(+(j-f|0)*.6700000166893005)+f|0;if(!(x&p<.20000000298023224)){i=j;f=f<<1;m=(f|0)<(i|0);i=m?f:i;return i|0}m=96e3-i|0;s=(m|0)>32e3;i=(i|0)>96e3&(s^1);i=j+~~((i|s?(i?0.0:.09919999539852142):+(m|0)*3.099999958067201e-06)*v*+(j|0))|0;f=f<<1;m=(f|0)<(i|0);i=m?f:i;return i|0}function qb(a){a=a|0;return a|0}function rb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;d=d+ +g[a+(e<<2)>>2]*+g[b+(e<<2)>>2];e=e+1|0}return +d}function sb(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;e=+g[a+8>>2];c=+g[a>>2];h=+g[a+4>>2];i=c>h;f=i?c:h;c=i?h:c;h=+g[a+12>>2];b=+g[a+16>>2];a=h>b;d=a?b:h;b=a?h:b;a=c>d;d=a?c:d;c=a?b:f;b=a?f:b;if(e>c)if(c>2];d=+g[a+4>>2];e=b>d;c=e?d:b;d=e?b:d;b=+g[a+8>>2];if(d=(b|0))break;e=e+ +E(+(+g[a+(f<<2)>>2]));f=f+1|0}return +(e+ +(c|0)*d*e)}function vb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=wb(b,a)|0;f=(b|0)>(d|0);a=d+1|0;Sb(e,g,(c[(c[1740+(((b|0)<(d|0)?b:d)<<2)>>2]|0)+((f?b:d)<<2)>>2]|0)+(c[(c[1740+((f?a:b)<<2)>>2]|0)+(((a|0)<(b|0)?b:a)<<2)>>2]|0)|0);return}function wb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=a+-1|0;d=c[b+(g<<2)>>2]|0;f=(d|0)>-1?d:0-d|0;d=d>>>31;do{h=g;g=g+-1|0;e=a-g|0;d=d+(c[(c[1740+(((e|0)<(f|0)?e:f)<<2)>>2]|0)+(((e|0)>(f|0)?e:f)<<2)>>2]|0)|0;i=c[b+(g<<2)>>2]|0;f=f+((i|0)>-1?i:0-i|0)|0;if((i|0)<0){i=f+1|0;d=d+(c[(c[1740+(((e|0)>(f|0)?i:e)<<2)>>2]|0)+(((e|0)>(i|0)?e:i)<<2)>>2]|0)|0}}while((h|0)>1);return d|0}function xb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;g=(b|0)>(d|0);f=d+1|0;return +(+yb(b,d,Gb(e,(c[(c[1740+(((b|0)<(d|0)?b:d)<<2)>>2]|0)+((g?b:d)<<2)>>2]|0)+(c[(c[1740+((g?f:b)<<2)>>2]|0)+(((f|0)<(b|0)?b:f)<<2)>>2]|0)|0)|0,a))}function yb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0.0,i=0,j=0,k=0.0;h=0.0;j=e;while(1){if((a|0)<=2)break;do if((b|0)<(a|0)){e=c[(c[1740+(b<<2)>>2]|0)+(a<<2)>>2]|0;f=c[(c[1740+(b+1<<2)>>2]|0)+(a<<2)>>2]|0;if(d>>>0>=e>>>0&d>>>0>>0){c[j>>2]=0;e=d-e|0;break}g=d>>>0>=f>>>0;d=d-(g?f:0)|0;f=b;do{f=f+-1|0;e=c[(c[1740+(f<<2)>>2]|0)+(a<<2)>>2]|0}while(d>>>0>>0);i=g<<31>>31;b=b-f+i^i;c[j>>2]=b<<16>>16;k=+((b&65535)<<16>>16);h=h+k*k;e=d-e|0;b=f}else{f=c[1740+(a<<2)>>2]|0;i=c[f+(b+1<<2)>>2]|0;e=d>>>0>=i>>>0;g=e<<31>>31;i=d-(e?i:0)|0;a:do if((c[f+(a<<2)>>2]|0)>>>0>i>>>0){d=a;do{d=d+-1|0;e=c[(c[1740+(d<<2)>>2]|0)+(a<<2)>>2]|0}while(e>>>0>i>>>0)}else{d=b;while(1){e=c[f+(d<<2)>>2]|0;if(e>>>0<=i>>>0)break a;d=d+-1|0}}while(0);b=b-d+g^g;c[j>>2]=b<<16>>16;k=+((b&65535)<<16>>16);h=h+k*k;e=i-e|0;b=d}while(0);a=a+-1|0;d=e;j=j+4|0}a=b<<1|1;i=d>>>0>=a>>>0;e=i<<31>>31;a=d-(i?a:0)|0;d=(a+1|0)>>>1;if(!d){f=a;g=b-d|0;g=g+e|0;e=g^e;g=e&65535;e=e<<16;e=e>>16;i=j+4|0;c[j>>2]=e;k=+(g<<16>>16);k=k*k;h=h+k;g=0-f|0;j=d-f|0;g=j^g;j=g&65535;g=g<<16;g=g>>16;c[i>>2]=g;k=+(j<<16>>16);k=k*k;k=h+k;return +k}f=a-((d<<1)+-1)|0;g=b-d|0;g=g+e|0;e=g^e;g=e&65535;e=e<<16;e=e>>16;i=j+4|0;c[j>>2]=e;k=+(g<<16>>16);k=k*k;h=h+k;g=0-f|0;j=d-f|0;g=j^g;j=g&65535;g=g<<16;g=g>>16;c[i>>2]=g;k=+(j<<16>>16);k=k*k;k=h+k;return +k}function zb(a,b){a=a|0;b=b|0;var d=0,e=0;e=32-(U(b|0)|0)|0;d=b>>>(e+-16|0);b=(d>>>12)+-8|0;return (a<<3)-((e<<3)+(b+(d>>>0>(c[6888+(b<<2)>>2]|0)>>>0&1)))|0}function Ab(a){a=a|0;var b=0,e=0;b=a+24|0;e=c[b>>2]|0;if(e>>>0>=(c[a+4>>2]|0)>>>0){e=0;return e|0}a=c[a>>2]|0;c[b>>2]=e+1;e=d[a+e>>0]|0;return e|0}function Bb(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0;b=a+28|0;d=a+20|0;e=a+40|0;f=a+32|0;while(1){g=c[b>>2]|0;if(g>>>0>=8388609)break;c[d>>2]=(c[d>>2]|0)+8;c[b>>2]=g<<8;h=c[e>>2]|0;g=Ab(a)|0;c[e>>2]=g;c[f>>2]=((h<<8|g)>>>1&255|c[f>>2]<<8&2147483392)^255}return}function Cb(a,b){a=a|0;b=b|0;var d=0;d=Db(c[a+28>>2]|0,b)|0;c[a+36>>2]=d;a=(((c[a+32>>2]|0)>>>0)/(d>>>0)|0)+1|0;return b-(a>>>0>b>>>0?b:a)|0}function Db(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function Eb(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=c[a+36>>2]|0;e=R(f,e-d|0)|0;g=a+32|0;c[g>>2]=(c[g>>2]|0)-e;if(!b){f=a+28|0;g=f;f=(c[f>>2]|0)-e|0;c[g>>2]=f;Bb(a);return}else{g=a+28|0;f=R(f,d-b|0)|0;c[g>>2]=f;Bb(a);return}}function Fb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=a+28|0;d=c[h>>2]|0;e=a+32|0;f=c[e>>2]|0;b=d>>>b;g=f>>>0>>0;if(!g){c[e>>2]=f-b;b=d-b|0}c[h>>2]=b;Bb(a);return g&1|0}function Gb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=b+-1|0;d=32-(U(e|0)|0)|0;if((d|0)<=8){e=Cb(a,b)|0;Eb(a,e,e+1|0,b);return e|0}b=d+-8|0;f=(e>>>b)+1|0;d=Cb(a,f)|0;Eb(a,d,d+1|0,f);b=d<>>0<=e>>>0){f=b;return f|0}c[a+44>>2]=1;f=e;return f|0}function Hb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;g=a+12|0;d=c[g>>2]|0;h=a+16|0;e=c[h>>2]|0;if(e>>>0>>0){f=e+8|0;f=e+(((f|0)>25?f:25)+-1-e&-8)|0;do{d=d|(Ib(a)|0)<>2]=d>>>b;c[h>>2]=e-b;h=a+20|0;c[h>>2]=(c[h>>2]|0)+b;return d&(1<>2]|0;f=c[a+4>>2]|0;if(e>>>0>=f>>>0){f=0;return f|0}a=c[a>>2]|0;e=e+1|0;c[b>>2]=e;f=d[a+(f-e)>>0]|0;return f|0}function Jb(a,b,d){a=a|0;b=b|0;d=d|0;c[a>>2]=b;c[a+8>>2]=0;c[a+12>>2]=0;c[a+16>>2]=0;c[a+20>>2]=33;c[a+24>>2]=0;c[a+28>>2]=-2147483648;c[a+40>>2]=-1;c[a+32>>2]=0;c[a+36>>2]=0;c[a+4>>2]=d;c[a+44>>2]=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,h=0;f=a+28|0;g=c[f>>2]|0;h=Lb(g,e)|0;if(!b){h=g-(R(h,e-d|0)|0)|0;c[f>>2]=h;Mb(a);return}else{e=g-(R(h,e-b|0)|0)|0;g=a+32|0;c[g>>2]=(c[g>>2]|0)+e;h=R(h,d-b|0)|0;c[f>>2]=h;Mb(a);return}}function Lb(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function Mb(a){a=a|0;var b=0,d=0,e=0,f=0;b=a+28|0;d=a+32|0;e=a+20|0;f=c[b>>2]|0;while(1){if(f>>>0>=8388609)break;Nb(a,(c[d>>2]|0)>>>23);c[d>>2]=c[d>>2]<<8&2147483392;f=c[b>>2]<<8;c[b>>2]=f;c[e>>2]=(c[e>>2]|0)+8}return}function Nb(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;if((b|0)==255){g=a+36|0;c[g>>2]=(c[g>>2]|0)+1;return}e=b>>8;g=a+40|0;d=c[g>>2]|0;if((d|0)>-1){d=Ob(a,d+e|0)|0;f=a+44|0;c[f>>2]=c[f>>2]|d}f=a+36|0;if(c[f>>2]|0){d=e+255&255;e=a+44|0;do{h=Ob(a,d)|0;c[e>>2]=c[e>>2]|h;h=(c[f>>2]|0)+-1|0;c[f>>2]=h}while((h|0)!=0)}c[g>>2]=b&255;return}function Ob(b,d){b=b|0;d=d|0;var e=0,f=0;e=b+24|0;f=c[e>>2]|0;if((f+(c[b+8>>2]|0)|0)>>>0>=(c[b+4>>2]|0)>>>0){f=-1;return f|0}b=c[b>>2]|0;c[e>>2]=f+1;a[b+f>>0]=d;f=0;return f|0}function Pb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0;e=a+28|0;f=c[e>>2]|0;g=f>>>15;if(!b){g=f-(R(g,32768-d|0)|0)|0;c[e>>2]=g;Mb(a);return}else{h=f-(R(g,32768-b|0)|0)|0;f=a+32|0;c[f>>2]=(c[f>>2]|0)+h;g=R(g,d-b|0)|0;c[e>>2]=g;Mb(a);return}}function Qb(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;f=a+28|0;e=c[f>>2]|0;d=e>>>d;e=e-d|0;if(!b)d=e;else{b=a+32|0;c[b>>2]=(c[b>>2]|0)+e}c[f>>2]=d;Mb(a);return}function Rb(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;g=a+28|0;h=c[g>>2]|0;f=h>>>f;if((b|0)>0){i=e+(b+-1)|0;j=h-(R(f,d[i>>0]|0)|0)|0;h=a+32|0;c[h>>2]=(c[h>>2]|0)+j;h=R(f,(d[i>>0]|0)-(d[e+b>>0]|0)|0)|0;c[g>>2]=h;Mb(a);return}else{j=h-(R(f,d[e+b>>0]|0)|0)|0;c[g>>2]=j;Mb(a);return}}function Sb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=c+-1|0;e=32-(U(d|0)|0)|0;if((e|0)>8){e=e+-8|0;c=b>>>e;Kb(a,c,c+1|0,(d>>>e)+1|0);Tb(a,(1<>2]|0;k=a+16|0;f=c[k>>2]|0;if((f+d|0)>>>0>32){i=a+44|0;h=7-f|0;h=f+((h|0)>-8?h:-8)&-8;g=f;do{l=Ub(a,e&255)|0;c[i>>2]=c[i>>2]|l;e=e>>>8;g=g+-8|0}while((g|0)>7);f=f+-8-h|0}c[j>>2]=e|b<>2]=f+d;l=a+20|0;c[l>>2]=(c[l>>2]|0)+d;return}function Ub(b,d){b=b|0;d=d|0;var e=0,f=0,g=0;e=b+8|0;f=c[e>>2]|0;g=c[b+4>>2]|0;if(((c[b+24>>2]|0)+f|0)>>>0>=g>>>0){g=-1;return g|0}b=c[b>>2]|0;f=f+1|0;c[e>>2]=f;a[b+(g-f)>>0]=d;g=0;return g|0}function Vb(b,e,f){b=b|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0;i=8-f|0;j=(1<>2]|0){f=c[b>>2]|0;a[f>>0]=(d[f>>0]|0)&(j^255)|e<>2]|0;if((h|0)>-1){c[g>>2]=h&~j|e<>2]|0)>>>0>-2147483648>>>f>>>0){c[b+44>>2]=-1;return}else{f=b+32|0;c[f>>2]=c[f>>2]&~(j<<23)|e<>2]|0;d=c[a+8>>2]|0;e=0-d|0;a=a+4|0;Wh(f+b+e|0,f+(c[a>>2]|0)+e|0,d|0)|0;c[a>>2]=b;return}function Xb(b){b=b|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;m=c[b+28>>2]|0;f=U(m|0)|0;g=2147483647>>>f;h=c[b+32>>2]|0;e=h+g&~g;if((e|g)>>>0>=(h+m|0)>>>0){e=g>>>1;f=f+1|0;e=h+e&~e}m=~f;m=f+((m|0)>-1?m:-1)+8&-8;g=f;while(1){if((g|0)<=0)break;Nb(b,e>>>23);g=g+-8|0;e=e<<8&2147483392}if(!((c[b+40>>2]|0)<=-1?!(c[b+36>>2]|0):0))Nb(b,0);h=c[b+16>>2]|0;l=b+44|0;i=~h;i=h+((i|0)>-8?i:-8)+8&-8;e=c[b+12>>2]|0;g=h;while(1){if((g|0)<=7)break;k=Ub(b,e&255)|0;c[l>>2]=c[l>>2]|k;e=e>>>8;g=g+-8|0}i=h-i|0;if(c[l>>2]|0)return;j=b+24|0;k=c[j>>2]|0;h=b+4|0;g=b+8|0;Qh((c[b>>2]|0)+k|0,0,(c[h>>2]|0)-k-(c[g>>2]|0)|0)|0;if((i|0)<=0)return;k=c[g>>2]|0;g=c[h>>2]|0;if(g>>>0<=k>>>0){c[l>>2]=-1;return}f=m-f|0;if((i|0)>(f|0)?((c[j>>2]|0)+k|0)>>>0>=g>>>0:0){c[l>>2]=-1;e=e&(1<>2]|0)+(g-k+-1)|0;a[b>>0]=d[b>>0]|0|e;return}function Yb(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0;m=l;l=l+32|0;k=m;j=c[a+8>>2]|0;j=(j|0)>0?j:0;c[k>>2]=1;f=0;e=1;while(1){g=f<<1;i=b[a+12+((g|1)<<1)>>1]|0;e=R(e,b[a+12+(g<<1)>>1]|0)|0;g=f+1|0;c[k+(g<<2)>>2]=e;if(i<<16>>16==1)break;else f=g}i=a+48|0;g=b[a+12+((g<<1)+-1<<1)>>1]|0;while(1){if((f|0)<=-1)break;h=f<<1;if(!f)e=1;else e=b[a+12+(h+-1<<1)>>1]|0;switch(b[a+12+(h<<1)>>1]|0){case 2:{Zb(d,c[k+(f<<2)>>2]|0);break}case 4:{h=c[k+(f<<2)>>2]|0;_b(d,h<>2]|0;$b(d,h<>2]|0;ac(d,h<>2]|0,g,h,e);break}default:{}}f=f+-1|0;g=e}l=m;return}function Zb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0.0,f=0.0,h=0,i=0.0,j=0.0,k=0;c=0;while(1){if((c|0)>=(b|0))break;h=a+32|0;f=+g[h>>2];d=a+36|0;i=+g[d>>2];j=+g[a>>2];g[h>>2]=j-f;h=a+4|0;e=+g[h>>2];g[d>>2]=e-i;g[a>>2]=j+f;g[h>>2]=e+i;h=a+40|0;i=+g[h>>2];d=a+44|0;e=+g[d>>2];f=(i+e)*.7071067690849304;i=(e-i)*.7071067690849304;k=a+8|0;e=+g[k>>2];g[h>>2]=e-f;h=a+12|0;j=+g[h>>2];g[d>>2]=j-i;g[k>>2]=e+f;g[h>>2]=j+i;h=a+52|0;i=+g[h>>2];k=a+48|0;j=+g[k>>2];d=a+16|0;f=+g[d>>2];g[k>>2]=f-i;k=a+20|0;e=+g[k>>2];g[h>>2]=e+j;g[d>>2]=f+i;g[k>>2]=e-j;k=a+60|0;j=+g[k>>2];d=a+56|0;e=+g[d>>2];i=(j-e)*.7071067690849304;e=(j+e)*-.7071067690849304;h=a+24|0;j=+g[h>>2];g[d>>2]=j-i;d=a+28|0;f=+g[d>>2];g[k>>2]=f-e;g[h>>2]=j+i;g[d>>2]=f+e;a=a+64|0;c=c+1|0}return}function _b(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,p=0,q=0,r=0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if((e|0)==1){d=0;while(1){if((d|0)>=(f|0))break;s=+g[a>>2];o=a+16|0;B=+g[o>>2];v=s-B;b=a+4|0;x=+g[b>>2];p=a+20|0;z=+g[p>>2];t=x-z;B=s+B;z=x+z;e=a+8|0;x=+g[e>>2];r=a+24|0;s=+g[r>>2];A=x+s;q=a+12|0;w=+g[q>>2];h=a+28|0;u=+g[h>>2];y=w+u;g[o>>2]=B-A;g[p>>2]=z-y;g[a>>2]=B+A;g[b>>2]=z+y;s=x-s;u=w-u;g[e>>2]=v+u;g[q>>2]=t-s;g[r>>2]=v-u;g[h>>2]=t+s;a=a+32|0;d=d+1|0}return}q=e<<1;r=e*3|0;n=d+48|0;o=b<<1;p=b*3|0;m=0;while(1){if((m|0)>=(f|0))break;l=a+((R(m,h)|0)<<3)|0;j=c[n>>2]|0;d=j;i=j;k=0;while(1){if((k|0)>=(e|0))break;F=l+(e<<3)|0;w=+g[F>>2];t=+g[j>>2];E=l+(e<<3)+4|0;x=+g[E>>2];v=+g[j+4>>2];s=w*t-x*v;t=w*v+x*t;I=l+(q<<3)|0;x=+g[I>>2];v=+g[i>>2];H=l+(q<<3)+4|0;w=+g[H>>2];z=+g[i+4>>2];u=x*v-w*z;v=x*z+w*v;D=l+(r<<3)|0;w=+g[D>>2];z=+g[d>>2];C=l+(r<<3)+4|0;x=+g[C>>2];y=+g[d+4>>2];B=w*z-x*y;z=w*y+x*z;x=+g[l>>2];y=x-u;G=l+4|0;w=+g[G>>2];A=w-v;u=x+u;g[l>>2]=u;v=w+v;g[G>>2]=v;w=s+B;x=t+z;B=s-B;z=t-z;g[I>>2]=u-w;g[H>>2]=v-x;g[l>>2]=+g[l>>2]+w;g[G>>2]=+g[G>>2]+x;g[F>>2]=y+z;g[E>>2]=A-B;g[D>>2]=y-z;g[C>>2]=A+B;d=d+(p<<3)|0;i=i+(o<<3)|0;j=j+(b<<3)|0;k=k+1|0;l=l+8|0}m=m+1|0}return}function $b(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.0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0.0,u=0,v=0,w=0,x=0.0,y=0.0,z=0.0,A=0.0,B=0.0;p=e<<1;o=d+48|0;m=+g[(c[o>>2]|0)+((R(b,e)|0)<<3)+4>>2];n=b<<1;l=0;while(1){if((l|0)>=(f|0))break;d=a+((R(l,h)|0)<<3)|0;j=c[o>>2]|0;i=j;k=e;while(1){s=d+(e<<3)|0;y=+g[s>>2];z=+g[j>>2];q=d+(e<<3)+4|0;B=+g[q>>2];t=+g[j+4>>2];A=y*z-B*t;z=y*t+B*z;v=d+(p<<3)|0;B=+g[v>>2];t=+g[i>>2];u=d+(p<<3)+4|0;y=+g[u>>2];x=+g[i+4>>2];r=B*t-y*x;t=B*x+y*t;y=A+r;x=z+t;g[s>>2]=+g[d>>2]-y*.5;w=d+4|0;g[q>>2]=+g[w>>2]-x*.5;r=(A-r)*m;t=(z-t)*m;g[d>>2]=+g[d>>2]+y;g[w>>2]=+g[w>>2]+x;g[v>>2]=+g[s>>2]+t;g[u>>2]=+g[q>>2]-r;g[s>>2]=+g[s>>2]-t;g[q>>2]=+g[q>>2]+r;k=k+-1|0;if(!k)break;else{d=d+8|0;i=i+(n<<3)|0;j=j+(b<<3)|0}}l=l+1|0}return}function ac(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0.0,u=0.0,v=0,w=0.0,x=0.0,y=0.0,z=0.0,A=0,B=0.0,C=0.0,D=0.0,E=0.0,F=0.0,G=0.0,H=0,I=0.0,J=0.0,K=0.0,L=0.0,M=0,N=0,O=0;q=R(b,d)|0;t=+g[c+(q<<3)>>2];u=+g[c+(q<<3)+4>>2];q=R(b<<1,d)|0;o=+g[c+(q<<3)>>2];p=+g[c+(q<<3)+4>>2];q=d<<1;r=d*3|0;s=d<<2;i=0;while(1){if((i|0)>=(e|0))break;n=a+((R(i,f)|0)<<3)|0;h=0;j=n+(s<<3)|0;k=n+(r<<3)|0;l=n+(q<<3)|0;m=n;n=n+(d<<3)|0;while(1){if((h|0)>=(d|0))break;G=+g[m>>2];N=m+4|0;E=+g[N>>2];F=+g[n>>2];O=R(h,b)|0;z=+g[c+(O<<3)>>2];M=n+4|0;K=+g[M>>2];L=+g[c+(O<<3)+4>>2];x=F*z-K*L;z=F*L+K*z;K=+g[l>>2];O=R(h<<1,b)|0;L=+g[c+(O<<3)>>2];A=l+4|0;F=+g[A>>2];C=+g[c+(O<<3)+4>>2];J=K*L-F*C;L=K*C+F*L;F=+g[k>>2];O=R(h*3|0,b)|0;C=+g[c+(O<<3)>>2];v=k+4|0;K=+g[v>>2];y=+g[c+(O<<3)+4>>2];w=F*C-K*y;C=F*y+K*C;K=+g[j>>2];O=R(h<<2,b)|0;y=+g[c+(O<<3)>>2];H=j+4|0;F=+g[H>>2];D=+g[c+(O<<3)+4>>2];B=K*y-F*D;y=K*D+F*y;F=x+B;D=z+y;B=x-B;y=z-y;z=J+w;x=L+C;w=J-w;C=L-C;g[m>>2]=G+(F+z);g[N>>2]=E+(D+x);L=G+(F*t+z*o);J=E+(D*t+x*o);K=y*u+C*p;I=B*u+w*p;g[n>>2]=L-K;g[M>>2]=J+I;g[j>>2]=L+K;g[H>>2]=J-I;z=G+(F*o+z*t);x=E+(D*o+x*t);y=C*u-y*p;w=B*p-w*u;g[l>>2]=z+y;g[A>>2]=x+w;g[k>>2]=z-y;g[v>>2]=x-w;h=h+1|0;j=j+8|0;k=k+8|0;l=l+8|0;m=m+8|0;n=n+8|0}i=i+1|0}return}function bc(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0.0,i=0,j=0.0;h=+g[a+4>>2];i=a+44|0;f=0;while(1){if((f|0)>=(c[a>>2]|0))break;j=+g[d+(f<<3)+4>>2];g[e+(b[(c[i>>2]|0)+(f<<1)>>1]<<3)>>2]=h*+g[d+(f<<3)>>2];g[e+(b[(c[i>>2]|0)+(f<<1)>>1]<<3)+4>>2]=h*j;f=f+1|0}Yb(a,e);return}function cc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;f=c[b>>2]|0;if(!f){j=d;b=0;j=b+j|0;Pb(a,b,j);return}j=f>>31;i=f+j^j;g=1;h=dc(d,e)|0;while(1){if(!h){f=6;break}if((i|0)<=(g|0)){f=7;break}f=h<<1;g=g+1|0;h=(R(f,e)|0)>>>15;d=d+(f+2)|0}if((f|0)==6){i=i-g|0;e=(32768-d-j>>1)+-1|0;e=(i|0)<(e|0)?i:e;i=d+((e<<1|1)+j)|0;c[b>>2]=g+e+j^j;j=(i|0)!=32768&1;b=i;j=b+j|0;Pb(a,b,j);return}else if((f|0)==7){b=h+1|0;i=b;b=d+(b&~j)|0;j=b+i|0;Pb(a,b,j);return}}function dc(a,b){a=a|0;b=b|0;return (R(32736-a|0,16384-b|0)|0)>>>15|0}function ec(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;d=32-(U(a|0)|0)+-1>>1;b=1<>>0>>0;c=c+(f?0:b)|0;if((d|0)<=0)break;else{a=a-(f?0:e)|0;b=b>>>1;d=d+-1|0}}return c|0}function fc(a,d,e,f,h,i,j){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,u=0,v=0,w=0,x=0,y=0.0,z=0.0,A=0.0,B=0.0;x=l;t=c[a+8+(i<<2)>>2]|0;s=+g[t+4>>2];k=0;m=c[a>>2]|0;w=c[a+24>>2]|0;while(1){u=m>>1;if((k|0)>=(i|0))break;k=k+1|0;m=u;w=w+(u<<2)|0}v=m>>2;k=l;l=l+((1*(u<<2)|0)+15&-16)|0;a=l;l=l+((1*(v<<3)|0)+15&-16)|0;m=h>>1;p=f+(m<<2)|0;q=h+3>>2;r=0-u|0;i=d+(m<<2)|0;o=p+-4|0;n=k;d=d+(u<<2)+-4+(m<<2)|0;m=0;while(1){if((m|0)>=(q|0))break;y=+g[o>>2];z=+g[p>>2];g[n>>2]=y*+g[i+(u<<2)>>2]+z*+g[d>>2];g[n+4>>2]=z*+g[i>>2]-y*+g[d+(r<<2)>>2];i=i+8|0;o=o+-8|0;p=p+8|0;n=n+8|0;d=d+-8|0;m=m+1|0}p=f+(h<<2)|0;o=v-q|0;while(1){if((m|0)>=(o|0))break;c[n>>2]=c[d>>2];c[n+4>>2]=c[i>>2];d=d+-8|0;i=i+8|0;n=n+8|0;m=m+1|0}p=p+-4|0;o=f;while(1){if((m|0)>=(v|0))break;g[n>>2]=+g[p>>2]*+g[d>>2]-+g[o>>2]*+g[i+(r<<2)>>2];g[n+4>>2]=+g[p>>2]*+g[i>>2]+ +g[o>>2]*+g[d+(u<<2)>>2];p=p+-8|0;o=o+8|0;n=n+8|0;d=d+-8|0;i=i+8|0;m=m+1|0}i=t+44|0;m=0;while(1){if((m|0)>=(v|0))break;A=+g[w+(m<<2)>>2];z=+g[w+(v+m<<2)>>2];y=+g[k>>2];B=+g[k+4>>2];r=b[(c[i>>2]|0)+(m<<1)>>1]|0;g[a+(r<<3)>>2]=s*(y*A-B*z);g[a+(r<<3)+4>>2]=s*(B*A+y*z);k=k+8|0;m=m+1|0}Yb(t,a);i=j<<1;d=0-i|0;m=e+((R(u+-1|0,j)|0)<<2)|0;k=0;while(1){if((k|0)>=(v|0))break;A=+g[a+4>>2];z=+g[w+(v+k<<2)>>2];y=+g[a>>2];B=+g[w+(k<<2)>>2];g[e>>2]=A*z-y*B;g[m>>2]=y*z+A*B;m=m+(d<<2)|0;e=e+(i<<2)|0;a=a+8|0;k=k+1|0}l=x;return}function gc(){return 6920}function hc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0.0;o=l;l=l+80|0;i=o+56|0;k=o+40|0;m=o+20|0;n=o;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;c[m+12>>2]=0;c[m+16>>2]=0;j=d>>1;d=1;while(1){h=c[a>>2]|0;if((d|0)>=(j|0))break;p=d<<1;g[b+(d<<2)>>2]=((+g[h+(p+-1<<2)>>2]+ +g[h+((p|1)<<2)>>2])*.5+ +g[h+(p<<2)>>2])*.5;d=d+1|0}g[b>>2]=(+g[h+4>>2]*.5+ +g[h>>2])*.5;if((e|0)==2){h=a+4|0;d=1;while(1){a=c[h>>2]|0;if((d|0)>=(j|0))break;e=d<<1;p=b+(d<<2)|0;g[p>>2]=+g[p>>2]+((+g[a+(e+-1<<2)>>2]+ +g[a+((e|1)<<2)>>2])*.5+ +g[a+(e<<2)>>2])*.5;d=d+1|0}g[b>>2]=+g[b>>2]+(+g[a+4>>2]*.5+ +g[a>>2])*.5}tc(b,i,j);g[i>>2]=+g[i>>2]*1.000100016593933;d=1;while(1){if((d|0)==5)break;p=i+(d<<2)|0;q=+g[p>>2];f=+(d|0)*.00800000037997961;g[p>>2]=q-q*f*f;d=d+1|0}sc(k,i);f=1.0;d=0;while(1){if((d|0)==4)break;q=f*.8999999761581421;p=k+(d<<2)|0;g[p>>2]=+g[p>>2]*q;f=q;d=d+1|0}f=+g[k>>2];g[n>>2]=f+.800000011920929;q=+g[k+4>>2];g[n+4>>2]=q+f*.800000011920929;f=+g[k+8>>2];g[n+8>>2]=f+q*.800000011920929;q=+g[k+12>>2];g[n+12>>2]=q+f*.800000011920929;g[n+16>>2]=q*.800000011920929;ic(b,n,b,j,m);l=o;return}function ic(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0;r=+g[b>>2];s=+g[b+4>>2];t=+g[b+8>>2];q=+g[b+12>>2];l=+g[b+16>>2];m=e+4|0;n=e+8|0;o=e+12|0;p=e+16|0;f=+g[p>>2];h=+g[o>>2];i=+g[n>>2];j=+g[m>>2];k=+g[e>>2];b=0;while(1){if((b|0)>=(d|0))break;y=+g[a+(b<<2)>>2];g[c+(b<<2)>>2]=y+r*k+s*j+t*i+q*h+l*f;x=k;w=j;v=i;u=h;k=y;b=b+1|0;j=x;i=w;h=v;f=u}g[e>>2]=k;g[m>>2]=j;g[n>>2]=i;g[o>>2]=h;g[p>>2]=f;return}function jc(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,m=0,n=0,o=0,p=0;p=l;l=l+16|0;j=p;k=f+-3|0;m=j+4|0;n=j+8|0;o=j+12|0;h=((k|0)>0?k:0)+3&-4;i=0;while(1){if((i|0)>=(k|0))break;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;kc(a,b+(i<<2)|0,j,e);c[d+(i<<2)>>2]=c[j>>2];c[d+((i|1)<<2)>>2]=c[m>>2];c[d+((i|2)<<2)>>2]=c[n>>2];c[d+((i|3)<<2)>>2]=c[o>>2];i=i+4|0}while(1){if((h|0)>=(f|0))break;g[d+(h<<2)>>2]=+lc(a,b+(h<<2)|0,e);h=h+1|0}l=p;return}function kc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0,n=0.0,o=0.0,p=0,q=0,r=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;l=d+-3|0;p=c+4|0;q=c+8|0;r=c+12|0;e=((l|0)>0?l:0)+3|0;m=e&-4;e=b+((e|3)<<2)|0;i=a;j=b+12|0;n=+g[b+4>>2];h=0.0;o=+g[b+8>>2];k=0;f=+g[b>>2];while(1){if((k|0)>=(l|0))break;w=+g[i>>2];h=+g[j>>2];z=+g[c>>2]+w*f;g[c>>2]=z;y=+g[p>>2]+w*n;g[p>>2]=y;x=+g[q>>2]+w*o;g[q>>2]=x;w=+g[r>>2]+w*h;g[r>>2]=w;v=+g[i+4>>2];s=+g[j+4>>2];z=z+v*n;g[c>>2]=z;y=y+v*o;g[p>>2]=y;x=x+v*h;g[q>>2]=x;v=w+v*s;g[r>>2]=v;w=+g[i+8>>2];u=+g[j+8>>2];z=z+w*o;g[c>>2]=z;y=y+w*h;g[p>>2]=y;x=x+w*s;g[q>>2]=x;w=v+w*u;g[r>>2]=w;v=+g[i+12>>2];t=+g[j+12>>2];g[c>>2]=z+v*h;g[p>>2]=y+v*s;g[q>>2]=x+v*u;g[r>>2]=w+v*t;i=i+16|0;j=j+16|0;n=u;o=t;k=k+4|0;f=s}b=a+(m<<2)|0;i=m|1;if((m|0)<(d|0)){z=+g[b>>2];h=+g[e>>2];g[c>>2]=+g[c>>2]+z*f;g[p>>2]=+g[p>>2]+z*n;g[q>>2]=+g[q>>2]+z*o;g[r>>2]=+g[r>>2]+z*h;b=b+4|0;e=e+4|0}if((i|0)<(d|0)){z=+g[b>>2];f=+g[e>>2];g[c>>2]=+g[c>>2]+z*n;g[p>>2]=+g[p>>2]+z*o;g[q>>2]=+g[q>>2]+z*h;g[r>>2]=+g[r>>2]+z*f;b=b+4|0;e=e+4|0}if((i+1|0)>=(d|0))return;y=+g[b>>2];z=+g[e>>2];g[c>>2]=+g[c>>2]+y*o;g[p>>2]=+g[p>>2]+y*h;g[q>>2]=+g[q>>2]+y*f;g[r>>2]=+g[r>>2]+y*z;return}function lc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;d=d+ +g[a+(e<<2)>>2]*+g[b+(e<<2)>>2];e=e+1|0}return +d}function mc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0.0,h=0,i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;r=l;l=l+1968|0;p=r;k=p;c[k>>2]=0;c[k+4>>2]=0;k=d>>2;m=l;l=l+((1*(k<<2)|0)+15&-16)|0;n=d+979>>2;o=l;l=l+((1*(n<<2)|0)+15&-16)|0;q=r+8|0;h=0;while(1){if((h|0)>=(k|0))break;c[m+(h<<2)>>2]=c[a+(h<<1<<2)>>2];h=h+1|0}h=0;while(1){if((h|0)>=(n|0))break;c[o+(h<<2)>>2]=c[b+(h<<1<<2)>>2];h=h+1|0}jc(m,o,q,k,244);nc(q,o,k,244,p);n=c[p>>2]<<1;o=c[p+4>>2]<<1;k=d>>1;h=0;while(1){if((h|0)==489)break;m=q+(h<<2)|0;g[m>>2]=0.0;d=h-n|0;if(!((((d|0)>-1?d:0-d|0)|0)>2?(d=h-o|0,(((d|0)>-1?d:0-d|0)|0)>2):0)){j=+lc(a,b+(h<<2)|0,k);g[m>>2]=j<-1.0?-1.0:j}h=h+1|0}nc(q,b,k,489,p);h=c[p>>2]|0;if((h+-1|0)>>>0>=487){q=0;p=h<<1;q=p-q|0;c[e>>2]=q;l=r;return}i=+g[q+(h+-1<<2)>>2];j=+g[q+(h<<2)>>2];f=+g[q+(h+1<<2)>>2];if(f-i>(j-i)*.699999988079071){q=1;p=h<<1;q=p-q|0;c[e>>2]=q;l=r;return}if(i-f>(j-f)*.699999988079071){q=-1;p=h<<1;q=p-q|0;c[e>>2]=q;l=r;return}q=0;p=h<<1;q=p-q|0;c[e>>2]=q;l=r;return}function nc(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.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0,t=0.0;c[f>>2]=0;s=f+4|0;c[s>>2]=1;i=1.0;h=0;while(1){if((h|0)>=(d|0)){q=0;p=0.0;n=-1.0;k=0.0;m=-1.0;h=0;l=-1.0;o=0.0;break}p=+g[b+(h<<2)>>2];i=i+p*p;h=h+1|0}while(1){if((q|0)>=(e|0))break;j=+g[a+(q<<2)>>2];do if(j>0.0?(r=j*9.999999960041972e-13,r=r*r,r*p>n*i):0)if(r*k>m*i){c[s>>2]=h;c[f>>2]=q;h=q;n=l;l=r;m=r;j=o;o=i;k=i;break}else{c[s>>2]=q;n=r;j=i;break}else j=p;while(0);t=+g[b+(q+d<<2)>>2];p=+g[b+(q<<2)>>2];p=i+(t*t-p*p);q=q+1|0;i=p<1.0?1.0:p;p=j}return}function oc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=+f;var h=0.0,i=0.0,k=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0.0,t=0.0,u=0,v=0.0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;F=l;l=l+2080|0;B=F+2072|0;z=F+2068|0;C=F+2064|0;E=F+2052|0;u=c[d>>2]|0;x=(e|0)/2|0;D=(b|0)/2|0;A=a+2048|0;u=(u|0)>1023?511:(u|0)/2|0;c[d>>2]=u;w=F;pc(A,A,A+(0-u<<2)|0,D,z,B);e=c[z>>2]|0;c[w>>2]=e;v=(c[j>>2]=e,+g[j>>2]);h=v;e=1;while(1){if((e|0)==513)break;t=+g[A+(0-e<<2)>>2];y=+g[A+(D-e<<2)>>2];y=h+t*t-y*y;g[w+(e<<2)>>2]=y<0.0?0.0:y;h=y;e=e+1|0}p=+g[w+(u<<2)>>2];h=+g[B>>2];y=+qc(h,v,p);q=u<<1;r=y*.699999988079071;s=y*.8500000238418579;t=f*.5;a=2;z=u;while(1){if((a|0)>=16)break;e=a<<1;b=rc(q+a|0,e)|0;if((b|0)<7)break;if((a|0)==2){e=b+u|0;e=(e|0)>512?u:e}else e=rc((R(c[18772+(a<<2)>>2]<<1,u)|0)+a|0,e)|0;pc(A,A+(0-b<<2)|0,A+(0-e<<2)|0,D,B,C);o=(+g[B>>2]+ +g[C>>2])*.5;g[B>>2]=o;n=(+g[w+(b<<2)>>2]+ +g[w+(e<<2)>>2])*.5;k=+qc(o,v,n);e=b-x|0;e=(e|0)>-1?e:0-e|0;if((e|0)>=2)if((e|0)==2){e=(R(a*5|0,a)|0)<(u|0);m=e?t:0.0}else m=0.0;else m=f;i=r-m;i=i<.30000001192092896?.30000001192092896:i;if((b|0)<21){i=s-m;if(i<.4000000059604645)i=.4000000059604645}if(k>i){i=n;h=o;e=b}else{k=y;i=p;e=z}y=k;p=i;a=a+1|0;z=e}h=h<0.0?0.0:h;if(!(p<=h))m=h/(p+1.0);else m=1.0;e=0;while(1){if((e|0)==3)break;g[E+(e<<2)>>2]=+lc(A,A+(1-(z+e)<<2)|0,D);e=e+1|0}i=+g[E+8>>2];k=+g[E>>2];h=+g[E+4>>2];if(i-k>(h-k)*.699999988079071){E=1;D=m>y;f=D?y:m;D=z<<1;E=D+E|0;D=(E|0)>15;E=D?E:15;c[d>>2]=E;l=F;return +f}if(k-i>(h-i)*.699999988079071){E=-1;D=m>y;f=D?y:m;D=z<<1;E=D+E|0;D=(E|0)>15;E=D?E:15;c[d>>2]=E;l=F;return +f}E=0;D=m>y;f=D?y:m;D=z<<1;E=D+E|0;D=(E|0)>15;E=D?E:15;c[d>>2]=E;l=F;return +f}function pc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0,k=0.0;h=0.0;i=0.0;j=0;while(1){if((j|0)>=(d|0))break;k=+g[a+(j<<2)>>2];h=h+k*+g[c+(j<<2)>>2];i=i+k*+g[b+(j<<2)>>2];j=j+1|0}g[e>>2]=i;g[f>>2]=h;return}function qc(a,b,c){a=+a;b=+b;c=+c;return +(a/+F(+(b*c+1.0)))}function rc(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function sc(a,b){a=a|0;b=b|0;var d=0,e=0.0,f=0.0,h=0.0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0;e=+g[b>>2];c[a>>2]=0;c[a+4>>2]=0;c[a+8>>2]=0;c[a+12>>2]=0;if(+g[b>>2]!=0.0)k=0;else return;while(1){if((k|0)<4){f=0.0;d=0}else{d=9;break}while(1){if((k|0)==(d|0))break;f=f+ +g[a+(d<<2)>>2]*+g[b+(k-d<<2)>>2];d=d+1|0}j=k;k=k+1|0;f=(f+ +g[b+(k<<2)>>2])/e;h=-f;g[a+(j<<2)>>2]=h;i=k>>1;j=j+-1|0;d=0;while(1){if((d|0)>=(i|0))break;o=a+(d<<2)|0;m=+g[o>>2];l=a+(j-d<<2)|0;n=+g[l>>2];g[o>>2]=m+n*h;g[l>>2]=n+m*h;d=d+1|0}e=e-f*f*e;if(e<+g[b>>2]*1.0000000474974513e-03){d=9;break}}if((d|0)==9)return}function tc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0,h=0;h=c+-4|0;jc(a,a,b,h,5);d=0;while(1){if((d|0)==5)break;e=0.0;f=d+h|0;while(1){if((f|0)>=(c|0))break;e=e+ +g[a+(f<<2)>>2]*+g[a+(f-d<<2)>>2];f=f+1|0}f=b+(d<<2)|0;g[f>>2]=+g[f>>2]+e;d=d+1|0}return}function uc(a,b,d,e,f,h,i,j,k,m,n,o,p,q,r,s,t){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;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.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.0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=l;l=l+96|0;M=Q+72|0;N=Q+48|0;O=Q+24|0;P=Q;if(!p)if((r|0)==0?(u=d-b|0,+g[q>>2]>+(R(m<<1,u)|0)):0)w=(R(u,m)|0)<(o|0);else w=0;else w=1;K=~~(+(i>>>0)*+g[q>>2]*+(s|0)/+(m<<9|0));L=a+8|0;s=c[L>>2]|0;J=+vc(f,h,b,e,s,m);I=k+20|0;u=c[I>>2]|0;H=k+28|0;p=c[H>>2]|0;G=wc(u,p)|0;e=(G+3|0)>>>0>i>>>0;F=w&(e^1)&1;if(!((d-b|0)>10?(v=+(o|0)*.125,!(v>16.0)):0))v=16.0;v=(t|0)==0?v:3.0;c[M>>2]=c[k>>2];c[M+4>>2]=c[k+4>>2];c[M+8>>2]=c[k+8>>2];c[M+12>>2]=c[k+12>>2];c[M+16>>2]=c[k+16>>2];c[M+20>>2]=c[k+20>>2];E=k+24|0;B=c[E>>2]|0;c[N>>2]=c[H>>2];c[N+4>>2]=c[H+4>>2];c[N+8>>2]=c[H+8>>2];c[N+12>>2]=c[H+12>>2];c[N+16>>2]=c[H+16>>2];A=R(s,m)|0;C=l;l=l+((1*(A<<2)|0)+15&-16)|0;D=l;l=l+((1*(A<<2)|0)+15&-16)|0;Sh(C|0,h|0,A<<2|0)|0;A=e|(r|0)==0;if(A)if(e|w^1){z=0;y=B}else{xc(a,b,d,f,C,i,G,29803+(n*84|0)+42|0,D,k,m,n,1,v,t)|0;x=17}else{p=xc(a,b,d,f,C,i,G,29803+(n*84|0)+42|0,D,k,m,n,1,v,t)|0;if(e|w^1){z=p;u=c[I>>2]|0;p=c[H>>2]|0;y=c[E>>2]|0}else x=17}if((x|0)==17){Sh(h|0,C|0,(R(c[L>>2]|0,m)|0)<<2|0)|0;Sh(j|0,D|0,(R(c[L>>2]|0,m)|0)<<2|0)|0;g[q>>2]=J;l=Q;return}e=zb(u,p)|0;u=c[k>>2]|0;s=k+4|0;c[O>>2]=c[s>>2];c[O+4>>2]=c[s+4>>2];c[O+8>>2]=c[s+8>>2];c[O+12>>2]=c[s+12>>2];c[O+16>>2]=c[s+16>>2];c[P>>2]=c[H>>2];c[P+4>>2]=c[H+4>>2];c[P+8>>2]=c[H+8>>2];c[P+12>>2]=c[H+12>>2];c[P+16>>2]=c[H+16>>2];r=yc(B)|0;o=u+r|0;r=(yc(y)|0)-r|0;w=fa()|0;x=l;l=l+((1*((r|0)==0?1:r)|0)+15&-16)|0;Sh(x|0,o|0,r|0)|0;c[k>>2]=c[M>>2];c[k+4>>2]=c[M+4>>2];c[k+8>>2]=c[M+8>>2];c[k+12>>2]=c[M+12>>2];c[k+16>>2]=c[M+16>>2];c[k+20>>2]=c[M+20>>2];c[E>>2]=B;c[H>>2]=c[N>>2];c[H+4>>2]=c[N+4>>2];c[H+8>>2]=c[N+8>>2];c[H+12>>2]=c[N+12>>2];c[H+16>>2]=c[N+16>>2];p=xc(a,b,d,f,h,i,G,29803+(n*84|0)+(F*42|0)|0,j,k,m,n,0,v,t)|0;do if(!A){if((z|0)>=(p|0)){if((z|0)!=(p|0))break;if(((zb(c[I>>2]|0,c[H>>2]|0)|0)+K|0)<=(e|0))break}c[k>>2]=u;c[s>>2]=c[O>>2];c[s+4>>2]=c[O+4>>2];c[s+8>>2]=c[O+8>>2];c[s+12>>2]=c[O+12>>2];c[s+16>>2]=c[O+16>>2];c[E>>2]=y;c[H>>2]=c[P>>2];c[H+4>>2]=c[P+4>>2];c[H+8>>2]=c[P+8>>2];c[H+12>>2]=c[P+12>>2];c[H+16>>2]=c[P+16>>2];Sh(o|0,x|0,r|0)|0;Sh(h|0,C|0,(R(c[L>>2]|0,m)|0)<<2|0)|0;Sh(j|0,D|0,(R(c[L>>2]|0,m)|0)<<2|0)|0;ha(w|0);g[q>>2]=J;l=Q;return}while(0);ha(w|0);v=+g[18936+(n<<2)>>2];J=v*v*+g[q>>2]+J;g[q>>2]=J;l=Q;return}function vc(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0,j=0,k=0,l=0.0,m=0;h=0.0;j=0;do{k=R(j,e)|0;i=c;while(1){if((i|0)>=(d|0))break;m=i+k|0;l=+g[a+(m<<2)>>2]-+g[b+(m<<2)>>2];i=i+1|0;h=h+l*l}j=j+1|0}while((j|0)<(f|0));return +(h>200.0?200.0:h)}function wc(a,b){a=a|0;b=b|0;return (U(b|0)|0)+-32+a|0}function xc(a,b,e,f,h,i,j,k,m,n,o,p,q,r,s){a=a|0;b=b|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=+r;s=s|0;var t=0.0,u=0.0,v=0,w=0.0,x=0,y=0.0,z=0.0,A=0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0.0,M=0.0,N=0,O=0,P=0;P=l;l=l+16|0;N=P;O=P+8|0;K=N;c[K>>2]=0;c[K+4>>2]=0;if((j+3|0)<=(i|0))Qb(n,q,3);if(!q){M=+g[18952+(p<<2)>>2];L=+g[18936+(p<<2)>>2]}else{M=.149993896484375;L=0.0}J=a+8|0;H=n+20|0;I=n+28|0;K=o*3|0;C=(s|0)==0;q=0;B=b;while(1){if((B|0)>=(e|0))break;E=R(K,e-B|0)|0;F=(B|0)!=(b|0);G=(B|0)<20;A=0;do{x=B+(R(A,c[J>>2]|0)|0)|0;t=+g[f+(x<<2)>>2];u=+g[h+(x<<2)>>2];w=L*(u<-9.0?-9.0:u);x=N+(A<<2)|0;y=+g[x>>2];z=t-w-y;j=~~+D(+(z+.5));u=(u<-28.0?-28.0:u)-r;if((j|0)<0&t>2]=v;a=wc(c[H>>2]|0,c[I>>2]|0)|0;s=i-a|0;p=s-E|0;if((p|0)<24&F){j=(v|0)<1?v:1;c[O>>2]=j;if((p|0)<16){j=(j|0)>-1?j:-1;c[O>>2]=j}}else j=v;if(!(C|(B|0)<2)){j=(j|0)<0?j:0;c[O>>2]=j}do if((s|0)<=14){if((s|0)>1){j=(j|0)<-1?-1:(j|0)<1?j:1;c[O>>2]=j;Rb(n,j<<1^j>>31,30139,2);break}if((a|0)<(i|0)){j=(j|0)<0?j:0;c[O>>2]=j;Qb(n,0-j|0,1);break}else{c[O>>2]=-1;j=-1;break}}else{j=(G?B:20)<<1;cc(n,O,(d[k+j>>0]|0)<<7,(d[k+(j|1)>>0]|0)<<6);j=c[O>>2]|0}while(0);u=+(j|0);g[m+(B+(R(A,c[J>>2]|0)|0)<<2)>>2]=z-u;v=v-j|0;q=q+((v|0)>-1?v:0-v|0)|0;g[h+(B+(R(A,c[J>>2]|0)|0)<<2)>>2]=w+y+u;g[x>>2]=y+u-M*u;A=A+1|0}while((A|0)<(o|0));B=B+1|0}l=P;return (C?q:0)|0}function yc(a){a=a|0;return a|0}function zc(a,b,d,e,f,h,i,j){a=a|0;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.0,m=0,n=0,o=0,p=0,q=0.0;o=a+8|0;while(1){if((b|0)>=(d|0))break;n=h+(b<<2)|0;a=c[n>>2]|0;if((a|0)>=1){k=65536<>16;l=+(k|0);m=k+-1|0;a=0;do{p=~~+D(+((+g[f+(b+(R(a,c[o>>2]|0)|0)<<2)>>2]+.5)*l));p=(p|0)<(k|0)?p:m;p=(p|0)>0?p:0;Tb(i,p,c[n>>2]|0);q=(+(p|0)+.5)*+(1<<14-(c[n>>2]|0)|0)*.00006103515625+-.5;p=e+(b+(R(a,c[o>>2]|0)|0)<<2)|0;g[p>>2]=+g[p>>2]+q;p=f+(b+(R(a,c[o>>2]|0)|0)<<2)|0;g[p>>2]=+g[p>>2]-q;a=a+1|0}while((a|0)<(j|0))}b=b+1|0}return}function Ac(a,b,d,e,f,h,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0,p=0,q=0,r=0.0;p=a+8|0;o=0;a=j;while(1){if((o|0)==2)break;else n=b;while(1){if(!((n|0)<(d|0)&(a|0)>=(l|0)))break;m=h+(n<<2)|0;if((c[m>>2]|0)<=7?(c[i+(n<<2)>>2]|0)==(o|0):0){j=0;do{q=!(+g[f+(n+(R(j,c[p>>2]|0)|0)<<2)>>2]<0.0);Tb(k,q&1,1);r=(+(q&1)+-.5)*+(1<<14-(c[m>>2]|0)+-1|0)*.00006103515625;q=e+(n+(R(j,c[p>>2]|0)|0)<<2)|0;g[q>>2]=+g[q>>2]+r;q=f+(n+(R(j,c[p>>2]|0)|0)<<2)|0;g[q>>2]=+g[q>>2]-r;a=a+-1|0;j=j+1|0}while((j|0)<(l|0))}n=n+1|0}o=o+1|0}return}function Bc(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.0;j=a+8|0;i=0;do{a=0;while(1){if((a|0)>=(b|0)){a=b;break}k=a+(R(i,c[j>>2]|0)|0)|0;l=+P(+(+g[e+(k<<2)>>2]))*1.4426950408889634;g[f+(k<<2)>>2]=l-+g[18836+(a<<2)>>2];a=a+1|0}while(1){if((a|0)>=(d|0))break;g[f+((R(i,c[j>>2]|0)|0)+a<<2)>>2]=-14.0;a=a+1|0}i=i+1|0}while((i|0)<(h|0));return}function Cc(a,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v){a=a|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|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;u=u|0;v=v|0;var w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;Q=l;m=(m|0)>0?m:0;F=c[a+8>>2]|0;P=(m|0)>7?8:0;m=m-P|0;if((r|0)==2?(w=d[30142+(f-e)>>0]|0,(m|0)>=(w|0)):0){m=m-w|0;J=(m|0)>7?8:0;m=m-J|0}else{w=0;J=0}K=l;l=l+((1*(F<<2)|0)+15&-16)|0;L=l;l=l+((1*(F<<2)|0)+15&-16)|0;M=l;l=l+((1*(F<<2)|0)+15&-16)|0;N=l;l=l+((1*(F<<2)|0)+15&-16)|0;D=r<<3;O=a+32|0;x=i+-5-s|0;y=s+3|0;i=e;while(1){if((i|0)>=(f|0))break;H=c[O>>2]|0;I=i+1|0;H=(b[H+(I<<1)>>1]|0)-(b[H+(i<<1)>>1]|0)|0;G=H*3<>4;c[M+(i<<2)>>2]=(D|0)>(G|0)?D:G;G=(R(R(R(H,r)|0,x)|0,f-i+-1|0)|0)<>6;c[N+(i<<2)>>2]=G-((H<>2]|0;I=a+52|0;z=H+-1|0;G=1;do{B=G+z>>1;C=R(B,F)|0;x=0;A=0;i=f;a:while(1){y=x;b:while(1){do{x=i;i=i+-1|0;if((x|0)<=(e|0))break a;E=c[O>>2]|0;x=R((b[E+(x<<1)>>1]|0)-(b[E+(i<<1)>>1]|0)|0,r)|0;x=(R(x,d[(c[I>>2]|0)+(C+i)>>0]|0)|0)<>2;if((x|0)>0){x=x+(c[N+(i<<2)>>2]|0)|0;x=(x|0)>0?x:0}x=x+(c[g+(i<<2)>>2]|0)|0;if((x|0)>=(c[M+(i<<2)>>2]|0)|A)break b}while((x|0)<(D|0));y=y+D|0}A=c[h+(i<<2)>>2]|0;x=y+((x|0)<(A|0)?x:A)|0;A=1}E=(y|0)>(m|0);G=E?G:B+1|0;z=E?B+-1|0:z}while((G|0)<=(z|0));E=R(G+-1|0,F)|0;B=R(G,F)|0;C=(G|0)>1;z=e;A=e;while(1){if((A|0)>=(f|0))break;i=c[O>>2]|0;D=A+1|0;i=R((b[i+(D<<1)>>1]|0)-(b[i+(A<<1)>>1]|0)|0,r)|0;y=c[I>>2]|0;x=(R(i,d[y+(E+A)>>0]|0)|0)<>2;if((G|0)<(H|0))i=(R(i,d[y+(B+A)>>0]|0)|0)<>2;else i=c[h+(A<<2)>>2]|0;if((x|0)>0){x=x+(c[N+(A<<2)>>2]|0)|0;x=(x|0)>0?x:0}if((i|0)>0){i=i+(c[N+(A<<2)>>2]|0)|0;i=(i|0)>0?i:0}F=c[g+(A<<2)>>2]|0;y=x+(C?F:0)|0;x=i+F|0;c[K+(A<<2)>>2]=y;c[L+(A<<2)>>2]=(x|0)<(y|0)?0:x-y|0;z=(F|0)>0?A:z;A=D}n=Dc(a,e,f,z,K,L,M,h,m,n,P,j,w,k,J,o,p,q,r,s,t,1,u,v)|0;l=Q;return n|0}function Dc(a,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A){a=a|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;s=s|0;t=t|0;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;var 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;O=v<<3;K=(v|0)>1;P=K&1;E=0;F=64;I=0;while(1){if((E|0)==6)break;H=I+F>>1;B=f;C=0;G=0;a:while(1){b:while(1){do{N=B;B=B+-1|0;if((N|0)<=(e|0))break a;D=(c[h+(B<<2)>>2]|0)+((R(H,c[i+(B<<2)>>2]|0)|0)>>6)|0;if((D|0)>=(c[j+(B<<2)>>2]|0)|G)break b}while((D|0)<(O|0));C=C+O|0}G=c[k+(B<<2)>>2]|0;C=C+((D|0)<(G|0)?D:G)|0;G=1}N=(C|0)>(l|0);E=E+1|0;F=N?H:F;I=N?I:H}N=w<<3;B=f;C=0;E=0;while(1){D=B+-1|0;if((B|0)<=(e|0))break;B=(c[h+(D<<2)>>2]|0)+((R(I,c[i+(D<<2)>>2]|0)|0)>>6)|0;H=(B|0)<(c[j+(D<<2)>>2]|0);L=(C|0)==0;B=H&L?((B|0)<(O|0)?0:O):B;M=c[k+(D<<2)>>2]|0;M=(B|0)<(M|0)?B:M;c[s+(D<<2)>>2]=M;B=D;C=(H&L^1)&1;E=E+M|0}M=a+32|0;h=O+8|0;i=(y|0)==0;I=e+2|0;L=f;H=p;D=E;while(1){F=L+-1|0;if((F|0)<=(g|0)){J=17;break}y=l-D|0;C=c[M>>2]|0;G=b[C+(L<<1)>>1]|0;E=b[C+(e<<1)>>1]|0;B=G-E|0;p=Ec(y,B)|0;B=y-(R(B,p)|0)|0;C=b[C+(F<<1)>>1]|0;E=B+(E-C)|0;C=G-C|0;G=s+(F<<2)|0;B=c[G>>2]|0;E=B+(R(p,C)|0)+((E|0)>0?E:0)|0;p=c[j+(F<<2)>>2]|0;if((E|0)>=(((p|0)>(h|0)?p:h)|0)){if(i){if(Fb(x,1)|0)break}else{if((L|0)<=(I|0)){J=22;break}if(!((F|0)>(A|0)?1:(E|0)<=((R((L|0)>17?((L|0)<=(z|0)?7:9):0,C)|0)<>4|0))){J=22;break}Qb(x,0,1)}E=E+-8|0;D=D+8|0;B=c[G>>2]|0}if((H|0)>0)C=d[30142+(F-e)>>0]|0;else C=H;L=(E|0)<(O|0);D=D-(B+H)+C+(L?0:O)|0;c[G>>2]=L?0:O;L=F;H=C}if((J|0)==17)l=l+n|0;else if((J|0)==22)Qb(x,1,1);do if((H|0)>0)if(i){B=(Gb(x,L+1-e|0)|0)+e|0;c[o>>2]=B;break}else{B=c[o>>2]|0;B=(B|0)<(L|0)?B:L;c[o>>2]=B;Sb(x,B-e|0,L+1-e|0);B=c[o>>2]|0;break}else{c[o>>2]=0;B=0}while(0);do if((B|0)>(e|0))if((r|0)>0)if(i){c[q>>2]=Fb(x,1)|0;break}else{Qb(x,c[q>>2]|0,1);break}else J=40;else{l=l+r|0;J=40}while(0);if((J|0)==40)c[q>>2]=0;B=l-D|0;D=c[M>>2]|0;D=(b[D+(L<<1)>>1]|0)-(b[D+(e<<1)>>1]|0)|0;C=Ec(B,D)|0;D=R(D,C)|0;l=e;while(1){if((l|0)>=(L|0))break;r=c[M>>2]|0;J=l+1|0;r=R(C,(b[r+(J<<1)>>1]|0)-(b[r+(l<<1)>>1]|0)|0)|0;x=s+(l<<2)|0;c[x>>2]=(c[x>>2]|0)+r;l=J}l=B-D|0;B=e;while(1){if((B|0)>=(L|0))break;x=c[M>>2]|0;J=B+1|0;x=(b[x+(J<<1)>>1]|0)-(b[x+(B<<1)>>1]|0)|0;x=(l|0)<(x|0)?l:x;r=s+(B<<2)|0;c[r>>2]=(c[r>>2]|0)+x;l=l-x|0;B=J}p=(v|0)==2;y=a+56|0;i=K?4:3;h=0;while(1){if((e|0)>=(L|0))break;E=c[M>>2]|0;I=e+1|0;E=(b[E+(I<<1)>>1]|0)-(b[E+(e<<1)>>1]|0)<>2]|0)+h|0;if((E|0)>1){l=c[k+(e<<2)>>2]|0;l=(B|0)>(l|0)?B-l|0:0;F=B-l|0;c[H>>2]=F;B=R(E,v)|0;if(p&(E|0)!=2?(c[q>>2]|0)==0:0)C=(e|0)<(c[o>>2]|0);else C=0;G=B+(C&1)|0;D=R(G,(b[(c[y>>2]|0)+(e<<1)>>1]|0)+N|0)|0;B=(D>>1)+(R(G,-21)|0)|0;if((E|0)==2)B=B+(G<<3>>2)|0;C=F+B|0;if((C|0)>=(G<<4|0))if((C|0)<(G*24|0))E=B+(D>>3)|0;else E=B;else E=B+(D>>2)|0;B=F+E+(G<<2)|0;B=(Ec((B|0)>0?B:0,G)|0)>>>3;D=t+(e<<2)|0;c[D>>2]=B;K=R(B,v)|0;C=c[H>>2]|0;if((K|0)>(C>>3|0)){B=C>>P>>3;c[D>>2]=B}K=(B|0)<8?B:8;c[D>>2]=K;K=R(K,G<<3)|0;c[u+(e<<2)>>2]=(K|0)>=((c[H>>2]|0)+E|0)&1;K=(R(c[D>>2]|0,v)|0)<<3;c[H>>2]=(c[H>>2]|0)-K}else{l=(B|0)<(O|0)?0:B-O|0;c[H>>2]=B-l;c[t+(e<<2)>>2]=0;c[u+(e<<2)>>2]=1}if(!l){h=l;e=I;continue}x=l>>>i;a=t+(e<<2)|0;J=c[a>>2]|0;K=8-J|0;K=(x|0)<(K|0)?x:K;c[a>>2]=J+K;K=(R(K,v)|0)<<3;c[u+(e<<2)>>2]=(K|0)>=(l-h|0)&1;h=l-K|0;e=I}c[m>>2]=h;while(1){if((e|0)>=(f|0))break;k=s+(e<<2)|0;m=t+(e<<2)|0;c[m>>2]=c[k>>2]>>P>>3;c[k>>2]=0;c[u+(e<<2)>>2]=(c[m>>2]|0)<1&1;e=e+1|0}return L|0}function Ec(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function Fc(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.0,j=0.0,k=0,l=0.0,m=0.0;if((f<<1|0)>=(b|0)|(g|0)==0)return;m=+(b|0)/+((R(c[18968+(g+-1<<2)>>2]|0,f)|0)+b|0);m=m*m*.5;l=+H(+(m*1.5707963705062866));m=+H(+((1.0-m)*1.5707963705062866));a:do if((e<<3|0)>(b|0))f=0;else{g=e>>2;f=1;while(1){if(((R((R(f,f)|0)+f|0,e)|0)+g|0)>=(b|0))break a;f=f+1|0}}while(0);k=Gc(b,e)|0;d=(d|0)<0;h=(f|0)==0;i=-m;j=-l;g=0;while(1){if((g|0)>=(e|0))break;b=a+((R(g,k)|0)<<2)|0;if(!d){Hc(b,k,1,l,i);if(!h)Hc(b,k,f,m,j)}else{if(!h)Hc(b,k,f,m,l);Hc(b,k,1,l,m)}g=g+1|0}return}function Gc(a,b){a=a|0;b=b|0;return (a>>>0)/(b>>>0)|0|0}function Hc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=+d;e=+e;var f=0,h=0,i=0,j=0.0,k=0.0,l=0.0,m=0;j=-e;i=b-c|0;f=a;h=0;while(1){if((h|0)>=(i|0))break;l=+g[f>>2];m=f+(c<<2)|0;k=+g[m>>2];g[m>>2]=k*d+l*e;g[f>>2]=l*d+k*j;f=f+4|0;h=h+1|0}h=b-(c<<1)|0;f=a+(h+-1<<2)|0;while(1){if((h|0)<=0)break;k=+g[f>>2];m=f+(c<<2)|0;l=+g[m>>2];g[m>>2]=l*d+k*e;g[f>>2]=k*d+l*j;f=f+-4|0;h=h+-1|0}return}function Ic(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0.0,i=0.0,j=0.0,k=0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0;t=l;r=l;l=l+((1*(e<<2)|0)+15&-16)|0;s=l;l=l+((1*(e<<2)|0)+15&-16)|0;f=0;do{q=a+(f<<2)|0;o=+g[q>>2];c[s+(f<<2)>>2]=o<0.0&1;g[q>>2]=+E(+o);c[b+(f<<2)>>2]=0;g[r+(f<<2)>>2]=0.0;f=f+1|0}while((f|0)<(e|0));if((e>>1|0)<(d|0)){h=0.0;f=0;do{h=h+ +g[a+(f<<2)>>2];f=f+1|0}while((f|0)<(e|0));if(!(h>1.0000000036274937e-15&h<64.0)){g[a>>2]=1.0;f=1;do{g[a+(f<<2)>>2]=0.0;f=f+1|0}while((f|0)<(e|0));h=1.0}j=(+(d|0)+.800000011920929)*(1.0/h);i=0.0;h=0.0;f=d;d=0;do{p=a+(d<<2)|0;q=~~+D(+(j*+g[p>>2]));c[b+(d<<2)>>2]=q;o=+(q|0);h=h+o*o;i=i+ +g[p>>2]*o;g[r+(d<<2)>>2]=o*2.0;f=f-q|0;d=d+1|0}while((d|0)<(e|0))}else{i=0.0;h=0.0;f=d}if((f|0)>(e+3|0)){o=+(f|0);h=h+o*o+o*+g[r>>2];c[b>>2]=(c[b>>2]|0)+f;f=0}q=0;while(1){if((q|0)>=(f|0)){f=0;break}m=h+1.0;j=i+ +g[a>>2];h=m+ +g[r>>2];j=j*j;d=0;k=1;while(1){o=i+ +g[a+(k<<2)>>2];n=m+ +g[r+(k<<2)>>2];o=o*o;p=h*o>n*j;d=p?k:d;k=k+1|0;if((k|0)>=(e|0))break;else{h=p?n:h;j=p?o:j}}o=+g[a+(d<<2)>>2];p=r+(d<<2)|0;h=+g[p>>2];g[p>>2]=h+2.0;p=b+(d<<2)|0;c[p>>2]=(c[p>>2]|0)+1;q=q+1|0;i=i+o;h=m+h}do{r=b+(f<<2)|0;a=c[s+(f<<2)>>2]|0;c[r>>2]=(c[r>>2]^0-a)+a;f=f+1|0}while((f|0)<(e|0));l=t;return +h}function Jc(a,b,c,d,e,f,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=+g;h=h|0;var i=0.0,j=0,k=0;k=l;j=l;l=l+((1*(b+3<<2)|0)+15&-16)|0;Fc(a,b,1,e,c,d);i=+Ic(a,j,c,b);vb(j,b,c,f);if(!h){j=Lc(j,b,e)|0;l=k;return j|0}Kc(j,a,b,i,g);Fc(a,b,-1,e,c,d);j=Lc(j,b,e)|0;l=k;return j|0}function Kc(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=+e;f=+f;var h=0;e=1.0/+F(+e)*f;h=0;do{g[b+(h<<2)>>2]=e*+(c[a+(h<<2)>>2]|0);h=h+1|0}while((h|0)<(d|0));return}function Lc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;if((d|0)<2){d=1;return d|0}i=Gc(b,d)|0;h=0;b=0;do{g=R(h,i)|0;e=0;f=0;do{e=e|c[a+(g+f<<2)>>2];f=f+1|0}while((f|0)<(i|0));b=b|((e|0)!=0&1)<=(b|0))break;g[a>>2]=c*+g[a>>2];a=a+4|0;d=d+1|0}return}function Oc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;d=d+ +g[a+(e<<2)>>2]*+g[b+(e<<2)>>2];e=e+1|0}return +d}function Pc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0.0,j=0.0;a:do if(!c){e=+Oc(a,a,d)+1.0000000036274937e-15;f=+Oc(b,b,d)+1.0000000036274937e-15}else{f=1.0000000036274937e-15;e=1.0000000036274937e-15;c=0;while(1){if((c|0)>=(d|0))break a;j=+g[a+(c<<2)>>2];i=+g[b+(c<<2)>>2];h=j+i;i=j-i;f=f+i*i;e=e+h*h;c=c+1|0}}while(0);return ~~+D(+(+Qc(+F(+f),+F(+e))*10430.3818359375+.5))|0}function Qc(a,b){a=+a;b=+b;var c=0.0,d=0.0;c=b*b;d=a*a;if(c+d<1.000000045813705e-18){d=0.0;return +d}if(c>0]=0;j=33599+(((f<<1)+g<<16>>16)*7|0)|0;i=e+8>>4;e=0;while(1){if((e|0)>=(i|0))break;f=c[h+(e<<2)>>2]|0;a:do if((f|0)>0){a[k>>0]=a[j+((f&30)>>>0<6?f&31:6)>>0]|0;f=0;while(1){if((f|0)==16)break a;g=a[d+f>>0]|0;if(g<<24>>24)Rb(b,(g<<24>>24>>15)+1|0,k,8);f=f+1|0}}while(0);d=d+16|0;e=e+1|0}l=m;return}function Sc(a){a=a|0;c[a>>2]=20208;return 0}function Tc(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;Qh(a|0,0,20208)|0;e=0;f=0;while(1){if((f|0)==2)break;e=e+(be(a+(f*10060|0)|0,b)|0)|0;f=f+1|0}c[a+20184>>2]=1;c[a+20188>>2]=1;return e+(Uc(a,d)|0)|0}function Uc(a,b){a=a|0;b=b|0;var d=0;c[b>>2]=c[a+20184>>2];c[b+4>>2]=c[a+20188>>2];c[b+8>>2]=c[a+4552>>2];c[b+12>>2]=c[a+4560>>2];c[b+16>>2]=c[a+4564>>2];c[b+20>>2]=c[a+4568>>2];c[b+24>>2]=c[a+4608>>2];c[b+28>>2]=c[a+4604>>2];c[b+32>>2]=c[a+4612>>2];c[b+36>>2]=c[a+4620>>2];c[b+40>>2]=c[a+6084>>2];c[b+48>>2]=c[a+6072>>2];c[b+52>>2]=c[a+4672>>2];d=a+4572|0;c[b+72>>2]=(c[d>>2]<<16>>16)*1e3;c[b+76>>2]=c[a+4532>>2];if((c[d>>2]|0)!=16){a=0;a=a&1;d=b+80|0;c[d>>2]=a;return 0}a=(c[a+28>>2]|0)==0;a=a&1;d=b+80|0;c[d>>2]=a;return 0}function Vc(d,f,g,h,i,j,k){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;var m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,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,ga=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;Ka=l;l=l+16|0;Fa=Ka;Ga=Ka+8|0;if(c[f+68>>2]|0){c[d+4660>>2]=1;c[d+14720>>2]=1}c[d+15804>>2]=0;Ca=d+5744|0;c[Ca>>2]=0;m=$d(f)|0;if(m|0){f=m;l=Ka;return f|0}c[f+88>>2]=0;Ja=f+4|0;o=d+20188|0;if((c[Ja>>2]|0)>(c[o>>2]|0)){m=d+10060|0;n=be(m,c[d+5088>>2]|0)|0;c[d+20120>>2]=0;c[d+20128>>2]=0;c[d+20132>>2]=0;c[d+20136>>2]=1;c[d+20140>>2]=0;c[d+20144>>2]=1;b[d+20150>>1]=0;b[d+20148>>1]=16384;if((c[d+20184>>2]|0)==2){Sh(d+15832|0,d+5772|0,300)|0;Aa=d;Ba=c[Aa+4>>2]|0;Ha=m;c[Ha>>2]=c[Aa>>2];c[Ha+4>>2]=Ba}}else n=0;Ha=f+24|0;if((c[Ha>>2]|0)==(c[d+4608>>2]|0))s=(c[o>>2]|0)!=(c[Ja>>2]|0);else s=1;c[d+20184>>2]=c[f>>2];c[o>>2]=c[Ja>>2];m=h*100|0;o=c[f+8>>2]|0;r=(m|0)/(o|0)|0;Aa=(r|0)>1?r>>1:1;Ba=(k|0)==0;a:do if(Ba){if((R(r,o)|0)!=(m|0)|(h|0)<0){f=-101;l=Ka;return f|0}if((h*1e3|0)>(R(c[Ha>>2]|0,o)|0)){f=-101;l=Ka;return f|0}else{p=0;q=0;za=d;break}}else{if((r|0)!=1){f=-101;l=Ka;return f|0}m=0;while(1){k=c[Ja>>2]|0;if((m|0)>=(k|0))break;n=be(d+(m*10060|0)|0,c[d+(m*10060|0)+5088>>2]|0)|0;m=m+1|0}p=c[Ha>>2]|0;c[Ha>>2]=10;o=f+36|0;q=c[o>>2]|0;c[o>>2]=0;o=0;m=k;while(1){if((o|0)>=(m|0)){za=d;break a}c[d+(o*10060|0)+4664>>2]=0;c[d+(o*10060|0)+4676>>2]=1;o=o+1|0;m=c[Ja>>2]|0}}while(0);ya=d+4572|0;xa=d+20200|0;wa=d+5740|0;o=0;while(1){if((o|0)>=(c[Ja>>2]|0))break;if((o|0)==1)m=c[ya>>2]|0;else m=0;m=ce(za+(o*10060|0)|0,f,c[xa>>2]|0,o,m)|0;if(m|0){Ia=145;break}b:do if((c[za+(o*10060|0)+4660>>2]|0)!=0|s){m=0;while(1){if((m|0)>=(c[wa>>2]|0))break b;c[za+(o*10060|0)+4720+(m<<2)>>2]=0;m=m+1|0}}while(0);c[za+(o*10060|0)+6076>>2]=c[za+(o*10060|0)+6072>>2];o=o+1|0;n=0}if((Ia|0)==145){l=Ka;return m|0}B=r*10|0;F=c[ya>>2]|0;C=R(B,F)|0;D=d+4552|0;F=(R(C,c[D>>2]|0)|0)/(F*1e3|0)|0;va=fa()|0;E=l;l=l+((1*(F<<1)|0)+15&-16)|0;F=d+4580|0;G=d+5736|0;ta=d+20192|0;H=d+15832|0;I=d+5772|0;J=d+5092|0;K=d+14640|0;L=d+15796|0;M=d+14632|0;N=d+15152|0;O=d+20154|0;P=d+14780|0;Q=d+20172|0;z=i+20|0;A=i+28|0;S=d+20176|0;T=f+28|0;U=d+20180|0;V=d+20120|0;W=d+5096|0;X=d+15156|0;Y=d+4528|0;ua=f+60|0;Z=d+20204|0;_=d+17224|0;$=d+10204|0;aa=d+10076|0;ba=d+14600|0;ca=d+14532|0;da=d+14597|0;ea=d+14548|0;ga=d+14720|0;ia=d+10060|0;ja=d+14776|0;ka=f+56|0;la=f+52|0;ma=Fa+4|0;na=Aa<<1;oa=Aa+-1|0;pa=d+6076|0;qa=d+20196|0;ra=d+16136|0;sa=d+20124|0;y=0;while(1){k=c[G>>2]|0;r=(c[F>>2]|0)-k|0;r=(r|0)<(C|0)?r:C;s=R(r,c[D>>2]|0)|0;s=(s|0)/((c[ya>>2]|0)*1e3|0)|0;do if((c[f>>2]|0)==2)if((c[Ja>>2]|0)==2){o=c[Ca>>2]|0;m=0;while(1){if((m|0)>=(s|0))break;b[E+(m<<1)>>1]=b[g+(m<<1<<1)>>1]|0;m=m+1|0}if((c[ta>>2]|0)==1&(o|0)==0)Sh(H|0,I|0,300)|0;Ne(I,J+(k+2<<1)|0,E,s);c[G>>2]=(c[G>>2]|0)+r;k=c[L>>2]|0;m=(c[K>>2]|0)-k|0;o=R(B,c[M>>2]|0)|0;o=(m|0)<(o|0)?m:o;m=0;while(1){if((m|0)>=(s|0))break;b[E+(m<<1)>>1]=b[g+((m<<1|1)<<1)>>1]|0;m=m+1|0}Ne(H,N+(k+2<<1)|0,E,s);c[L>>2]=(c[L>>2]|0)+o;m=c[G>>2]|0;break}else{if((c[Ja>>2]|0)==1)m=0;else{Ia=50;break}while(1){if((m|0)>=(s|0))break;x=m<<1;x=(b[g+(x<<1)>>1]|0)+(b[g+((x|1)<<1)>>1]|0)|0;b[E+(m<<1)>>1]=(x>>>1)+(x&1);m=m+1|0}Ne(I,J+(k+2<<1)|0,E,s);c:do if((c[ta>>2]|0)==2?(c[Ca>>2]|0)==0:0){Ne(H,N+((c[L>>2]|0)+2<<1)|0,E,s);m=0;while(1){if((m|0)>=(c[F>>2]|0))break c;x=J+((c[G>>2]|0)+m+2<<1)|0;b[x>>1]=((b[x>>1]|0)+(b[N+((c[L>>2]|0)+m+2<<1)>>1]|0)|0)>>>1;m=m+1|0}}while(0);m=(c[G>>2]|0)+r|0;c[G>>2]=m;break}else Ia=50;while(0);if((Ia|0)==50){Ia=0;Sh(E|0,g|0,s<<1|0)|0;Ne(I,J+(k+2<<1)|0,E,s);m=(c[G>>2]|0)+r|0;c[G>>2]=m}x=g+((R(s,c[f>>2]|0)|0)<<1)|0;w=h-s|0;c[xa>>2]=0;if((m|0)<(c[F>>2]|0)){m=0;break}if(!((c[Ca>>2]|0)!=0|Ba^1)){b[Ga>>1]=0;a[Ga>>0]=256-(256>>>(R((c[wa>>2]|0)+1|0,c[Ja>>2]|0)|0));Rb(i,0,Ga,8);r=0;while(1){m=c[Ja>>2]|0;if((r|0)>=(m|0)){t=0;break}k=c[za+(r*10060|0)+5740>>2]|0;m=0;o=0;while(1){if((o|0)>=(k|0))break;m=m|c[za+(r*10060|0)+4720+(o<<2)>>2]<>0]=(m|0)>0&1;if((m|0)!=0&(k|0)>1)Rb(i,m+-1|0,c[19204+(k+-2<<2)>>2]|0,8);r=r+1|0}while(1){if((t|0)>=(c[wa>>2]|0)){o=0;break}k=O+(t*6|0)|0;r=P+(t<<2)|0;s=Q+t|0;h=(t|0)>0;g=t+-1|0;o=0;while(1){if((o|0)>=(m|0))break;if(c[za+(o*10060|0)+4720+(t<<2)>>2]|0){if((m|0)==2&(o|0)==0?(bf(i,k),(c[r>>2]|0)==0):0)cf(i,a[s>>0]|0);if(h?(c[za+(o*10060|0)+4720+(g<<2)>>2]|0)!=0:0)m=2;else m=0;Xc(za+(o*10060|0)|0,i,t,1,m);Yc(i,a[za+(o*10060|0)+6096+(t*36|0)+29>>0]|0,a[za+(o*10060|0)+6096+(t*36|0)+30>>0]|0,za+(o*10060|0)+6204+(t*320|0)|0,c[za+(o*10060|0)+4580>>2]|0);m=c[Ja>>2]|0}o=o+1|0}t=t+1|0}while(1){if((o|0)>=(m|0))break;m=za+(o*10060|0)+4720|0;c[m>>2]=0;c[m+4>>2]=0;c[m+8>>2]=0;o=o+1|0;m=c[Ja>>2]|0}c[S>>2]=Wc(c[z>>2]|0,c[A>>2]|0)|0}Pd(d);r=c[T>>2]|0;k=c[Ha>>2]|0;m=(R(r,k)|0)/1e3|0;if(Ba)m=m-(c[S>>2]|0)|0;o=(m|0)/(c[wa>>2]|0)|0;m=R(o<<16>>16,(k|0)==10?100:50)|0;m=m-(c[U>>2]<<1)|0;if(Ba?(Da=c[Ca>>2]|0,(Da|0)>0):0){v=Wc(c[z>>2]|0,c[A>>2]|0)|0;m=m-(v-(c[S>>2]|0)-(R(o,Da)|0)<<1)|0}if((r|0)>5e3){if((m|0)<=(r|0))r=(m|0)>5e3?m:5e3}else if((m|0)>5e3)r=5e3;else r=(m|0)<(r|0)?r:m;if((c[Ja>>2]|0)==2){m=c[Ca>>2]|0;Xd(V,W,X,O+(m*6|0)|0,Q+m|0,Fa,r,c[Y>>2]|0,c[ua>>2]|0,c[ya>>2]|0,c[F>>2]|0);m=c[Ca>>2]|0;if(!(a[Q+m>>0]|0)){if((c[Z>>2]|0)==1){c[_>>2]=0;c[_+4>>2]=0;c[_+8>>2]=0;v=aa;c[v>>2]=0;c[v+4>>2]=0;Qh($|0,0,4384)|0;c[ba>>2]=100;c[ca>>2]=100;a[_>>0]=10;a[da>>0]=0;c[ea>>2]=65536;c[ga>>2]=1}qf(ia)}else a[ja+m>>0]=0;if(Ba?(bf(i,O+((c[Ca>>2]|0)*6|0)|0),Ea=c[Ca>>2]|0,(a[ja+Ea>>0]|0)==0):0)cf(i,a[Q+Ea>>0]|0)}else{c[J>>2]=c[sa>>2];v=J+(c[F>>2]<<1)|0;v=e[v>>1]|e[v+2>>1]<<16;b[sa>>1]=v;b[sa+2>>1]=v>>>16}qf(d);g=(y|0)==0;t=c[ma>>2]|0;u=(y|0)==(oa|0);v=(y|0)==1;h=0;while(1){m=c[Ja>>2]|0;if((h|0)>=(m|0))break;s=c[ka>>2]|0;d:do switch(Aa|0){case 2:{if(g)o=(s*3|0)/5|0;else o=s;break}case 3:{if(g){o=(s<<1|0)/5|0;break d}if(v)o=(s*3|0)/4|0;else o=s;break}default:o=s}while(0);k=u&(c[la>>2]|0)!=0&1;if((m|0)!=1){m=c[Fa+(h<<2)>>2]|0;if(!((h|0)!=0|(t|0)<1)){k=0;o=o-((s|0)/(na|0)|0)|0}}else m=r;if((m|0)>0){ae(za+(h*10060|0)|0,m);do if((c[Ca>>2]|0)>(h|0)){if((h|0)>0?c[Z>>2]|0:0){m=1;break}m=2}else m=0;while(0);n=rf(za+(h*10060|0)|0,j,i,m,o,k)|0}c[za+(h*10060|0)+4664>>2]=0;c[za+(h*10060|0)+5736>>2]=0;s=za+(h*10060|0)+5744|0;c[s>>2]=(c[s>>2]|0)+1;h=h+1|0}r=c[Ca>>2]|0;c[Z>>2]=a[Q+(r+-1)>>0];do if((c[j>>2]|0)>0?(r|0)==(c[wa>>2]|0):0){s=c[Ja>>2]|0;m=0;k=0;while(1){if((k|0)>=(s|0))break;h=c[za+(k*10060|0)+5740>>2]|0;o=0;while(1){m=m<<1;if((o|0)>=(h|0))break;m=m|a[za+(k*10060|0)+4716+o>>0];o=o+1|0}m=m|a[za+(k*10060|0)+4719>>0];k=k+1|0}if(Ba)Vb(i,m,R(r+1|0,s)|0);do if(c[pa>>2]|0){if((c[Ja>>2]|0)!=1?(c[ra>>2]|0)==0:0)break;c[j>>2]=0}while(0);m=(c[U>>2]|0)+(c[j>>2]<<3)|0;c[U>>2]=m;m=m-((R(c[T>>2]|0,c[Ha>>2]|0)|0)/1e3|0)|0;c[U>>2]=(m|0)>1e4?1e4:(m|0)>0?m:0;m=c[qa>>2]|0;if((c[Y>>2]|0)<(((m<<16>>16)*3188>>16)+13|0)){c[xa>>2]=1;c[qa>>2]=0;break}else{c[xa>>2]=0;c[qa>>2]=m+(c[Ha>>2]|0);break}}while(0);if(!w){Ia=134;break}g=x;h=w;y=y+1|0}if((Ia|0)==134)m=c[xa>>2]|0;c[ta>>2]=c[Ja>>2];c[f+76>>2]=m;if((c[ya>>2]|0)==16)m=(c[d+28>>2]|0)==0;else m=0;c[f+80>>2]=m&1;c[f+72>>2]=(c[ya>>2]<<16>>16)*1e3;if(!(c[ua>>2]|0))m=b[d+20148>>1]|0;else m=0;c[f+84>>2]=m;e:do if(!Ba){c[Ha>>2]=p;c[f+36>>2]=q;m=0;while(1){if((m|0)>=(c[Ja>>2]|0))break e;c[za+(m*10060|0)+4664>>2]=0;c[za+(m*10060|0)+4676>>2]=0;m=m+1|0}}while(0);Ja=d+4761|0;c[f+92>>2]=a[Ja>>0];c[f+96>>2]=b[28176+(a[Ja>>0]>>1<<2)+(a[d+4762>>0]<<1)>>1];ha(va|0);f=n;l=Ka;return f|0}function Wc(a,b){a=a|0;b=b|0;return (U(b|0)|0)+-32+a|0}function Xc(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+48|0;o=t;i=t+32|0;p=(g|0)==0;q=p?d+4732|0:d+6096+(f*36|0)|0;r=q+29|0;f=(a[r>>0]<<1)+(a[q+30>>0]|0)|0;if((f|0)>1|p^1)Rb(e,f+-2|0,32439,8);else Rb(e,f,32443,8);n=(h|0)==2;f=a[q>>0]|0;if(n)Rb(e,f,30190,8);else{Rb(e,f>>3,30166+(a[r>>0]<<3)|0,8);Rb(e,a[q>>0]&7,32468,8)}p=d+4576|0;f=1;while(1){if((f|0)>=(c[p>>2]|0))break;Rb(e,a[q+f>>0]|0,30190,8);f=f+1|0}f=q+8|0;m=d+4688|0;k=c[m>>2]|0;Rb(e,a[f>>0]|0,(c[k+16>>2]|0)+(R(a[r>>0]>>1,b[k>>1]|0)|0)|0,8);Ud(o,i,c[m>>2]|0,a[f>>0]|0);f=0;while(1){g=c[m>>2]|0;if((f|0)>=(b[g+2>>1]|0))break;i=f+1|0;j=q+8+i|0;k=a[j>>0]|0;if(k<<24>>24>3){Rb(e,8,(c[g+28>>2]|0)+(b[o+(f<<1)>>1]|0)|0,8);Rb(e,(a[j>>0]|0)+-4|0,32476,8);f=i;continue}if(k<<24>>24<-3){Rb(e,0,(c[g+28>>2]|0)+(b[o+(f<<1)>>1]|0)|0,8);Rb(e,-4-(a[j>>0]|0)|0,32476,8);f=i;continue}else{Rb(e,(k<<24>>24)+4|0,(c[g+28>>2]|0)+(b[o+(f<<1)>>1]|0)|0,8);f=i;continue}}if((c[p>>2]|0)==4)Rb(e,a[q+31>>0]|0,32445,8);if((a[r>>0]|0)!=2){s=a[r>>0]|0;s=s<<24>>24;h=d+5764|0;c[h>>2]=s;h=q+34|0;h=a[h>>0]|0;h=h<<24>>24;Rb(e,h,32453,8);l=t;return}do if(n?(c[d+5764>>2]|0)==2:0){f=q+26|0;g=d+5768|0;i=(b[f>>1]|0)-(b[g>>1]|0)|0;if((i+8|0)>>>0>19){Rb(e,0,32515,8);s=25;break}else{Rb(e,i+9|0,32515,8);break}}else s=25;while(0);if((s|0)==25){f=q+26|0;o=b[f>>1]|0;g=c[d+4572>>2]|0;s=(o|0)/(g>>1|0)|0;g=o-(R(s<<16>>16,g<<15>>16)|0)|0;Rb(e,s,32483,8);Rb(e,g,c[d+4680>>2]|0,8);g=d+5768|0}b[g>>1]=b[f>>1]|0;Rb(e,a[q+28>>0]|0,c[d+4684>>2]|0,8);g=q+32|0;Rb(e,a[g>>0]|0,30231,8);f=0;while(1){if((f|0)>=(c[p>>2]|0))break;Rb(e,a[q+4+f>>0]|0,c[18980+(a[g>>0]<<2)>>2]|0,8);f=f+1|0}if(h|0){s=a[r>>0]|0;s=s<<24>>24;h=d+5764|0;c[h>>2]=s;h=q+34|0;h=a[h>>0]|0;h=h<<24>>24;Rb(e,h,32453,8);l=t;return}Rb(e,a[q+33>>0]|0,32436,8);s=a[r>>0]|0;s=s<<24>>24;h=d+5764|0;c[h>>2]=s;h=q+34|0;h=a[h>>0]|0;h=h<<24>>24;Rb(e,h,32453,8);l=t;return}function Yc(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;v=l;l=l+32|0;p=v;c[p>>2]=0;c[p+4>>2]=0;c[p+8>>2]=0;c[p+12>>2]=0;c[p+16>>2]=0;c[p+20>>2]=0;c[p+24>>2]=0;c[p+28>>2]=0;i=h>>4;if((i<<4|0)<(h|0)){i=i+1|0;j=g+h|0;k=j+16|0;do{a[j>>0]=0;j=j+1|0}while((j|0)<(k|0))}k=i<<4;s=l;l=l+((1*(k<<2)|0)+15&-16)|0;j=0;while(1){if((j|0)>=(k|0))break;r=a[g+j>>0]|0;u=r<<24>>24;c[s+(j<<2)>>2]=r<<24>>24>0?u:0-u|0;u=j|1;r=a[g+u>>0]|0;t=r<<24>>24;c[s+(u<<2)>>2]=r<<24>>24>0?t:0-t|0;u=j|2;t=a[g+u>>0]|0;r=t<<24>>24;c[s+(u<<2)>>2]=t<<24>>24>0?r:0-r|0;u=j|3;r=a[g+u>>0]|0;t=r<<24>>24;c[s+(u<<2)>>2]=r<<24>>24>0?t:0-t|0;j=j+4|0}t=l;l=l+((1*(i<<2)|0)+15&-16)|0;u=l;l=l+((1*(i<<2)|0)+15&-16)|0;j=s;m=0;while(1){if((m|0)>=(i|0))break;n=u+(m<<2)|0;c[n>>2]=0;o=t+(m<<2)|0;a:while(1){r=Zc(p,j,8,8)|0;r=r+(Zc(p,p,10,4)|0)|0;r=r+(Zc(p,p,12,2)|0)|0;if((r|0)==(0-(Zc(o,p,16,1)|0)|0))break;c[n>>2]=(c[n>>2]|0)+1;k=0;while(1){if((k|0)==16)continue a;r=j+(k<<2)|0;c[r>>2]=c[r>>2]>>1;k=k+1|0}}j=j+64|0;m=m+1|0}q=e>>1;k=2147483647;m=0;n=0;while(1){if((n|0)==9)break;r=32776+(n*18|0)+17|0;j=d[32956+(q*9|0)+n>>0]|0;o=0;while(1){if((o|0)>=(i|0))break;if((c[u+(o<<2)>>2]|0)>0)p=r;else p=(c[t+(o<<2)>>2]|0)+(32776+(n*18|0))|0;j=j+(d[p>>0]|0)|0;o=o+1|0}r=(j|0)<(k|0);k=r?j:k;m=r?n:m;n=n+1|0}Rb(b,m,32938+(q*9|0)|0,8);n=32596+(m*18|0)|0;m=0;while(1){if((m|0)>=(i|0)){j=0;break}j=c[u+(m<<2)>>2]|0;if(!j)Rb(b,c[t+(m<<2)>>2]|0,n,8);else{Rb(b,17,n,8);k=j+-1|0;j=0;while(1){if((j|0)>=(k|0))break;Rb(b,17,32758,8);j=j+1|0}Rb(b,c[t+(m<<2)>>2]|0,32758,8)}m=m+1|0}while(1){if((j|0)>=(i|0)){n=0;break}if((c[t+(j<<2)>>2]|0)>0)zd(b,s+(j<<4<<2)|0);j=j+1|0}while(1){if((n|0)>=(i|0))break;o=c[u+(n<<2)>>2]|0;b:do if((o|0)>0){p=g+(n<<4)|0;m=0;while(1){if((m|0)==16)break b;k=a[p+m>>0]|0;q=k<<24>>24;q=(k<<24>>24>0?q:0-q|0)<<24>>24;k=o;while(1){j=k+-1|0;if((k|0)<=1)break;Rb(b,q>>>j&1,32434,8);k=j}Rb(b,q&1,32434,8);m=m+1|0}}while(0);n=n+1|0}Rc(b,g,h,e,f,t);l=v;return}function Zc(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;f=0;while(1){if((f|0)>=(e|0)){f=0;a=5;break}g=f<<1;g=(c[b+(g<<2)>>2]|0)+(c[b+((g|1)<<2)>>2]|0)|0;if((g|0)>(d|0)){f=1;a=5;break}c[a+(f<<2)>>2]=g;f=f+1|0}if((a|0)==5)return f|0;return 0}function _c(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;m=0;while(1){if((m|0)>=(h|0))break;n=e+(m<<2)|0;ue(c[n>>2]|0)|0;k=((((ue(c[n>>2]|0)|0)<<16)+-136970240>>16)*2251|0)>>>16;i=k&255;l=b+m|0;a[l>>0]=i;if((k<<24>>24|0)<(a[f>>0]|0)){i=i+1<<24>>24;a[l>>0]=i}if(i<<24>>24>63)i=63;else i=(i<<24>>24>0?i:0)&255;a[l>>0]=i;j=a[f>>0]|0;if(!(m|g)){i=(j<<24>>24)+-4|0;j=a[b>>0]|0;if((i|0)>63){if((j<<24>>24|0)<=(i|0))i=(j<<24>>24>63?j:63)&255}else if(j<<24>>24>63)i=63;else{l=j<<24>>24;i=(l|0)<(i|0)?i:l}i=i&255;a[b>>0]=i;a[f>>0]=i}else{j=i-(j&255)|0;i=j&255;a[l>>0]=i;k=(a[f>>0]|0)+8|0;j=j<<24>>24;if((j|0)>(k|0)){i=k+((j-k+1|0)>>>1)&255;a[l>>0]=i}if(i<<24>>24>36)i=36;else i=(i<<24>>24>-4?i:-4)<<24>>24;a[l>>0]=i;if((i|0)>(k|0)){i=(d[f>>0]|0)+((i<<1)-k)|0;a[f>>0]=i;i=$c(i<<24>>24)|0}else i=(d[f>>0]|0)+(i&255)|0;a[f>>0]=i;a[l>>0]=(d[l>>0]|0)+4;i=a[f>>0]|0}l=i<<24>>24;c[n>>2]=ye(ad((l*29|0)+(l*7281>>16)+2090|0)|0)|0;m=m+1|0}return}function $c(a){a=a|0;return ((a|0)<63?a:63)|0}function ad(a){a=a|0;return ((a|0)<3967?a:3967)|0}function bd(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=0;while(1){if((l|0)>=(g|0))break;do if(l|f){h=(a[d+l>>0]|0)+-4|0;i=a[e>>0]|0;j=i<<24>>24;k=j+8|0;if((h|0)>(k|0)){i=j+((h<<1)-k)|0;break}else{i=(i&255)+h|0;break}}else i=cd(a[d>>0]|0,(a[e>>0]|0)+-16|0)|0;while(0);h=i&255;a[e>>0]=h;if((i<<24|0)<=1056964608)if(h<<24>>24<0)h=0;else h=i<<24>>24;else h=63;a[e>>0]=h;c[b+(l<<2)>>2]=ye(ad((h*29|0)+(h*7281>>16)+2090|0)|0)|0;l=l+1|0}return}function cd(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function dd(b,c){b=b|0;c=c|0;var d=0,e=0;d=0;e=0;while(1){if((e|0)>=(c|0))break;d=(a[b+e>>0]|0)+(d<<8)|0;e=e+1|0}return d|0}function ed(a,c,d,f,g){a=a|0;c=c|0;d=d|0;f=f|0;g=g|0;var h=0,i=0;h=f<<16>>16;f=0;while(1){if((f|0)>=(g|0))break;i=e[c+(f<<1)>>1]|0;b[a+(f<<1)>>1]=i+((R((e[d+(f<<1)>>1]|0)-i<<16>>16,h)|0)>>>2);f=f+1|0}return}function fd(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=l;l=l+32|0;e=h+8|0;f=h;g=a+12|0;if(!(c[g>>2]|0)){l=h;return}i=a+8|0;k=256-(c[i>>2]|0)<<10;j=k>>16;gd(e,f,j,k-(j<<16)|0);g=(c[i>>2]|0)+(c[g>>2]|0)|0;c[i>>2]=(g|0)>256?256:(g|0)>0?g:0;re(b,e,c[f>>2]|0,c[f+4>>2]|0,a,b,d);l=h;return}function gd(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;if((d|0)>=4){c[a>>2]=c[4815];c[a+4>>2]=c[4816];c[a+8>>2]=c[4817];g=b;c[g>>2]=35497197;c[g+4>>2]=57401098;return}if((e|0)<=0){f=19212+(d*12|0)|0;c[a>>2]=c[f>>2];c[a+4>>2]=c[f+4>>2];c[a+8>>2]=c[f+8>>2];d=19272+(d<<3)|0;f=c[d+4>>2]|0;g=b;c[g>>2]=c[d>>2];c[g+4>>2]=f;return}f=d+1|0;g=e<<16>>16;if((e|0)<32768){e=0;while(1){if((e|0)==3){e=0;break}i=c[19212+(d*12|0)+(e<<2)>>2]|0;h=(c[19212+(f*12|0)+(e<<2)>>2]|0)-i|0;c[a+(e<<2)>>2]=i+((R(h>>16,g)|0)+((R(h&65535,g)|0)>>16));e=e+1|0}while(1){if((e|0)==2)break;h=c[19272+(d<<3)+(e<<2)>>2]|0;i=(c[19272+(f<<3)+(e<<2)>>2]|0)-h|0;c[b+(e<<2)>>2]=h+((R(i>>16,g)|0)+((R(i&65535,g)|0)>>16));e=e+1|0}return}else{e=0;while(1){if((e|0)==3){e=0;break}h=c[19212+(f*12|0)+(e<<2)>>2]|0;i=h-(c[19212+(d*12|0)+(e<<2)>>2]|0)|0;c[a+(e<<2)>>2]=h+((R(i>>16,g)|0)+((R(i&65535,g)|0)>>16));e=e+1|0}while(1){if((e|0)==2)break;h=c[19272+(f<<3)+(e<<2)>>2]|0;i=h-(c[19272+(d<<3)+(e<<2)>>2]|0)|0;c[b+(e<<2)>>2]=h+((R(i>>16,g)|0)+((R(i&65535,g)|0)>>16));e=e+1|0}return}}function hd(e,f,g){e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;l=l+80|0;o=n+64|0;m=n;Ud(n+32|0,o,g,a[f>>0]|0);k=g+2|0;id(m,f+1|0,o,b[g+4>>1]|0,b[k>>1]|0);o=b[k>>1]|0;j=R(a[f>>0]|0,o<<16>>16)|0;i=(c[g+8>>2]|0)+j|0;j=(c[g+12>>2]|0)+(j<<1)|0;h=0;f=o;while(1){f=f<<16>>16;if((h|0)>=(f|0))break;f=((b[m+(h<<1)>>1]<<14|0)/(b[j+(h<<1)>>1]|0)|0)+(d[i+h>>0]<<7)|0;b[e+(h<<1)>>1]=(f|0)>32767?32767:((f|0)>0?f:0)&65535;h=h+1|0;f=b[k>>1]|0}Ge(e,c[g+36>>2]|0,f);l=n;return}function id(c,e,f,g,h){c=c|0;e=e|0;f=f|0;g=g|0;h=h|0;var i=0,j=0,k=0;k=g<<16>>16;i=0;g=h<<16>>16;while(1){j=g+-1|0;if((g|0)<=0)break;i=(R(i<<16>>16,d[f+j>>0]|0)|0)>>8;g=a[e+j>>0]|0;h=g<<24>>24<<10;if(g<<24>>24>0)g=h+-102|0;else g=g<<24>>24?h|102:h;i=i+((R(g>>16,k)|0)+((R(g&65535,k)|0)>>16))|0;b[c+(j<<1)>>1]=i;g=j}return}function jd(d,e,f,g,h,i,j,k,m,n,o,p,q,r,s){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;n=n|0;o=o|0;p=p|0;q=q|0;r=r|0;s=s|0;var 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,S=0,T=0;S=l;c[e+4340>>2]=a[f+34>>0];O=e+4328|0;u=c[O>>2]|0;P=f+29|0;Q=b[28176+(a[P>>0]>>1<<2)+(a[f+30>>0]<<1)>>1]|0;L=(a[f+31>>0]|0)!=4&1;B=d+4588|0;H=c[B>>2]|0;C=d+4580|0;F=H+(c[C>>2]|0)|0;D=l;l=l+((1*(F<<2)|0)+15&-16)|0;E=l;l=l+((1*(F<<1)|0)+15&-16)|0;F=d+4584|0;G=l;l=l+((1*(c[F>>2]<<2)|0)+15&-16)|0;c[e+4336>>2]=H;H=e+4332|0;c[H>>2]=c[B>>2];I=d+4576|0;J=L^1;K=e+4348|0;L=L<<1^3;M=d+4636|0;N=d+4632|0;A=e+(c[B>>2]<<1)|0;z=0;while(1){f=c[I>>2]|0;if((z|0)>=(f|0))break;v=i+((z>>1|J)<<4<<1)|0;w=j+(z*5<<1)|0;x=k+(z*24<<1)|0;y=c[m+(z<<2)>>2]|0;y=y>>2|y>>>1<<16;c[K>>2]=0;t=a[P>>0]|0;if(t<<24>>24==2){f=c[q+(z<<2)>>2]|0;if(!(z&L)){T=c[B>>2]|0;t=c[M>>2]|0;u=T-f-t+-2|0;ze(E+(u<<1)|0,e+(u+(R(z,c[F>>2]|0)|0)<<1)|0,v,T-u|0,t);c[K>>2]=1;c[H>>2]=c[B>>2];t=a[P>>0]|0}else t=2}else f=u;kd(d,e,g,G,E,D,z,s,p,q,t<<24>>24);ld(e,a[P>>0]|0,G,h,A,D,v,w,x,f,y,c[n+(z<<2)>>2]|0,c[o+(z<<2)>>2]|0,c[p+(z<<2)>>2]|0,r,Q,c[F>>2]|0,c[N>>2]|0,c[M>>2]|0);u=c[F>>2]|0;A=A+(u<<1)|0;g=g+(u<<1)|0;h=h+u|0;u=f;z=z+1|0}c[O>>2]=c[q+(f+-1<<2)>>2];Wh(e|0,e+(c[C>>2]<<1)|0,c[B>>2]<<1|0)|0;Wh(e+1280|0,e+1280+(c[C>>2]<<2)|0,c[B>>2]<<2|0)|0;l=S;return}function kd(a,d,e,f,g,h,i,j,k,l,m){a=a|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;var n=0,o=0,p=0,q=0,r=0,s=0,t=0;r=c[l+(i<<2)>>2]|0;s=k+(i<<2)|0;l=c[s>>2]|0;l=od((l|0)>1?l:1)|0;p=(l>>4)+1|0;n=a+4584|0;o=p>>>1<<16>>16;p=(p>>16)+1>>1;k=0;while(1){if((k|0)>=(c[n>>2]|0))break;t=b[e+(k<<1)>>1]|0;q=t<<16>>16;c[f+(k<<2)>>2]=(R(q>>16,o)|0)+((R(t&65535,o)|0)>>16)+(R(q,p)|0);k=k+1|0}q=d+4348|0;a:do if(c[q>>2]|0){if(!i){t=j<<16>>16;l=(R(l>>16,t)|0)+((R(l&65535,t)|0)>>16)<<2}o=d+4332|0;n=c[o>>2]|0;p=l>>16;k=l&65535;l=n-r+-2|0;while(1){if((l|0)>=(n|0))break a;n=b[g+(l<<1)>>1]|0;c[h+(l<<2)>>2]=(R(p,n)|0)+((R(k,n)|0)>>16);l=l+1|0;n=c[o>>2]|0}}while(0);l=c[s>>2]|0;f=d+4344|0;k=c[f>>2]|0;if((l|0)==(k|0))return;o=pd(k,l)|0;n=d+4336|0;k=c[n>>2]|0;p=o>>16;e=o&65535;l=k-(c[a+4588>>2]|0)|0;while(1){if((l|0)>=(k|0))break;k=d+1280+(l<<2)|0;t=c[k>>2]|0;a=t<<16>>16;c[k>>2]=(R(p,a)|0)+((R(e,a)|0)>>16)+(R(o,(t>>15)+1>>1)|0);l=l+1|0;k=c[n>>2]|0}b:do if((m|0)==2?(c[q>>2]|0)==0:0){n=d+4332|0;k=c[n>>2]|0;l=k-r+-2|0;while(1){if((l|0)>=(k|0))break b;k=h+(l<<2)|0;t=c[k>>2]|0;r=t<<16>>16;c[k>>2]=(R(p,r)|0)+((R(e,r)|0)>>16)+(R(o,(t>>15)+1>>1)|0);l=l+1|0;k=c[n>>2]|0}}while(0);l=d+4320|0;t=c[l>>2]|0;h=t<<16>>16;c[l>>2]=(R(p,h)|0)+((R(e,h)|0)>>16)+(R(o,(t>>15)+1>>1)|0);l=d+4324|0;t=c[l>>2]|0;h=t<<16>>16;c[l>>2]=(R(p,h)|0)+((R(e,h)|0)>>16)+(R(o,(t>>15)+1>>1)|0);l=0;while(1){if((l|0)==16){l=0;break}t=d+3840+(l<<2)|0;h=c[t>>2]|0;r=h<<16>>16;c[t>>2]=(R(p,r)|0)+((R(e,r)|0)>>16)+(R(o,(h>>15)+1>>1)|0);l=l+1|0}while(1){if((l|0)==24)break;t=d+4224+(l<<2)|0;h=c[t>>2]|0;r=h<<16>>16;c[t>>2]=(R(p,r)|0)+((R(e,r)|0)>>16)+(R(o,(h>>15)+1>>1)|0);l=l+1|0}c[f>>2]=c[s>>2];return}function ld(d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v){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;s=s|0;t=t|0;u=u|0;v=v|0;var 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,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;ba=d+4336|0;ca=d+4332|0;da=d+4340|0;V=(e|0)==2;W=k+2|0;X=k+4|0;Y=k+6|0;Z=k+8|0;_=d+4324|0;$=d+4224|0;aa=d+4320|0;T=o<<16>>16;U=p<<16>>16;P=p>>16;Q=(m|0)>0;S=n<<16>>16;L=n>>16;M=(r|0)>2048;O=(r|0)/2|0;N=O+-512|0;O=512-O|0;J=r<<16>>16;K=q>>>6<<16>>16;D=(q>>21)+1>>1;E=s+944|0;F=R(s<<16>>16,J)|0;G=R(E<<16>>16,J)|0;H=s+-944|0;I=R(944-s<<16>>16,J)|0;e=i+((c[ca>>2]|0)-m+2<<2)|0;p=d+1280+((c[ba>>2]|0)-m+1<<2)|0;A=0;B=d+3900|0;while(1){if((A|0)>=(t|0))break;c[da>>2]=(R(c[da>>2]|0,196314165)|0)+907633515;C=md(B,j,v)|0;if(V){y=c[e>>2]|0;z=b[k>>1]|0;z=(R(y>>16,z)|0)+((R(y&65535,z)|0)>>16)+2|0;y=c[e+-4>>2]|0;x=b[W>>1]|0;x=z+((R(y>>16,x)|0)+((R(y&65535,x)|0)>>16))|0;y=c[e+-8>>2]|0;z=b[X>>1]|0;z=x+((R(y>>16,z)|0)+((R(y&65535,z)|0)>>16))|0;y=c[e+-12>>2]|0;x=b[Y>>1]|0;x=z+((R(y>>16,x)|0)+((R(y&65535,x)|0)>>16))|0;y=c[e+-16>>2]|0;z=b[Z>>1]|0;z=x+((R(y>>16,z)|0)+((R(y&65535,z)|0)>>16))|0;e=e+4|0}else z=0;x=nd(c[_>>2]|0,$,l,u)|0;y=c[aa>>2]|0;o=y>>16;y=y&65535;x=x+((R(o,T)|0)+((R(y,T)|0)>>16))|0;w=c[d+1280+((c[ba>>2]|0)+-1<<2)>>2]|0;y=(R(w>>16,U)|0)+((R(w&65535,U)|0)>>16)+(R(o,P)|0)+((R(y,P)|0)>>16)|0;o=(C<<2)-x-y|0;if(Q){m=(c[p>>2]|0)+(c[p+-8>>2]|0)|0;m=(R(m>>16,S)|0)+((R(m&65535,S)|0)>>16)|0;w=c[p+-4>>2]|0;o=z-(m+(R(w>>16,L)|0)+((R(w&65535,L)|0)>>16)<<1)+(o<<1)>>2;p=p+4|0}else o=o>>1;w=f+(A<<2)|0;m=(c[w>>2]|0)-(o+1>>1)|0;m=(c[da>>2]|0)<0?0-m|0:m;m=(m|0)>30720?30720:(m|0)>-31744?m:-31744;o=m-s|0;do if(M){if((o|0)>(N|0)){o=o-N|0;ea=14;break}if((o|0)>=(O|0))if((o|0)<0){ea=17;break}else{o=G;n=F;r=E;q=s;break}else{o=o+N|0;ea=14;break}}else ea=14;while(0);a:do if((ea|0)==14){ea=0;o=o>>10;if((o|0)>0){q=(o<<10)+-80+s|0;r=q+1024|0;o=R(r<<16>>16,J)|0;n=R(q<<16>>16,J)|0;break}switch(o|0){case 0:{o=G;n=F;r=E;q=s;break a}case -1:{ea=17;break a}default:{}}q=(o<<10|80)+s|0;o=R(-1024-q<<16>>16,J)|0;n=R(0-q<<16>>16,J)|0;r=q+1024|0}while(0);if((ea|0)==17){ea=0;o=F;n=I;r=s;q=H}fa=m-q<<16>>16;m=m-r<<16>>16;m=(o+(R(m,m)|0)|0)<(n+(R(fa,fa)|0)|0);q=m?r:q;m=g+A|0;a[m>>0]=((q>>>9)+1|0)>>>1;q=q<<4;z=((c[da>>2]|0)<0?0-q|0:q)+(z<<1)|0;q=z+(C<<4)|0;C=((R(q>>16,K)|0)+((R(q&65534,K)|0)>>16)+(R(q,D)|0)>>7)+1>>1;b[h+(A<<1)>>1]=(C|0)>32767?32767:((C|0)>-32768?C:-32768)&65535;C=B+4|0;c[C>>2]=q;w=q-(c[w>>2]<<4)|0;c[_>>2]=w;x=w-(x<<2)|0;c[aa>>2]=x;c[d+1280+(c[ba>>2]<<2)>>2]=x-(y<<2);c[i+(c[ca>>2]<<2)>>2]=z<<1;c[ba>>2]=(c[ba>>2]|0)+1;c[ca>>2]=(c[ca>>2]|0)+1;c[da>>2]=(c[da>>2]|0)+(a[m>>0]|0);A=A+1|0;B=C}p=d+3840|0;e=d+3840+(t<<2)|0;o=p+64|0;do{c[p>>2]=c[e>>2];p=p+4|0;e=e+4|0}while((p|0)<(o|0));return}function md(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=c[a>>2]|0;h=b[d>>1]|0;h=(e>>1)+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-4>>2]|0;f=b[d+2>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;g=c[a+-8>>2]|0;h=b[d+4>>1]|0;h=f+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-12>>2]|0;f=b[d+6>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;g=c[a+-16>>2]|0;h=b[d+8>>1]|0;h=f+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-20>>2]|0;f=b[d+10>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;g=c[a+-24>>2]|0;h=b[d+12>>1]|0;h=f+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-28>>2]|0;f=b[d+14>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;g=c[a+-32>>2]|0;h=b[d+16>>1]|0;h=f+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-36>>2]|0;f=b[d+18>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;if((e|0)!=16){h=f;return h|0}g=c[a+-40>>2]|0;e=b[d+20>>1]|0;e=f+((R(g>>16,e)|0)+((R(g&65535,e)|0)>>16))|0;g=c[a+-44>>2]|0;h=b[d+22>>1]|0;h=e+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-48>>2]|0;e=b[d+24>>1]|0;e=h+((R(g>>16,e)|0)+((R(g&65535,e)|0)>>16))|0;g=c[a+-52>>2]|0;h=b[d+26>>1]|0;h=e+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-56>>2]|0;e=b[d+28>>1]|0;e=h+((R(g>>16,e)|0)+((R(g&65535,e)|0)>>16))|0;g=c[a+-60>>2]|0;h=b[d+30>>1]|0;h=e+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;return h|0}function nd(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0;h=c[d>>2]|0;c[d>>2]=a;i=b[e>>1]|0;g=2;a=(f>>1)+((R(a>>16,i)|0)+((R(a&65535,i)|0)>>16))|0;while(1){if((g|0)>=(f|0))break;l=g+-1|0;i=d+(l<<2)|0;k=c[i>>2]|0;c[i>>2]=h;l=b[e+(l<<1)>>1]|0;i=d+(g<<2)|0;j=c[i>>2]|0;c[i>>2]=k;l=l<<16>>16;i=b[e+(g<<1)>>1]|0;i=a+((R(h>>16,l)|0)+((R(h&65535,l)|0)>>16))+((R(k>>16,i)|0)+((R(k&65535,i)|0)>>16))|0;g=g+2|0;h=j;a=i}l=f+-1|0;c[d+(l<<2)>>2]=h;l=b[e+(l<<1)>>1]|0;return a+((R(h>>16,l)|0)+((R(h&65535,l)|0)>>16))<<1|0}function od(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=qd((a|0)>0?a:0-a|0)|0;a=a<>16;d=536870911/(f|0)|0;e=d<<16;c=e>>16;a=536870912-((R(f,c)|0)+((R(a&65535,c)|0)>>16))<<3;d=e+((R(a>>16,c)|0)+((R(a&65528,c)|0)>>16))+(R(a,(d>>15)+1>>1)|0)|0;a=62-b|0;b=a+-47|0;if((b|0)>=1)return ((b|0)<32?d>>b:0)|0;a=47-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){f=b;f=f<(c|0)){f=c;f=f<0?a:0-a|0)|0;f=a<0?b:0-b|0)|0)+-1|0;b=b<>16|0)|0)<<16>>16;e=(R(f>>16,d)|0)+((R(f&65535,d)|0)>>16)|0;b=Uh(b|0,((b|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;b=Rh(b|0,C|0,29)|0;b=f-(b&-8)|0;d=e+((R(b>>16,d)|0)+((R(b&65535,d)|0)>>16))|0;a=c+28-a|0;b=a+-16|0;if((a|0)>=16)return ((b|0)<32?d>>b:0)|0;a=16-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){f=b;f=f<(c|0)){f=c;f=f<>2]|0;W=e+4624|0;v=c[W>>2]|0;ba=l;l=l+((1*(v*1300|0)|0)+15&-16)|0;Qh(ba|0,0,v*1300|0)|0;Z=g+34|0;ca=f+4320|0;da=f+4324|0;ea=e+4588|0;fa=f+3840|0;ga=f+4224|0;u=0;while(1){if((u|0)>=(v|0))break;y=u+(d[Z>>0]|0)&3;c[ba+(u*1300|0)+1288>>2]=y;c[ba+(u*1300|0)+1292>>2]=y;c[ba+(u*1300|0)+1296>>2]=0;c[ba+(u*1300|0)+1280>>2]=c[ca>>2];c[ba+(u*1300|0)+1284>>2]=c[da>>2];c[ba+(u*1300|0)+1024>>2]=c[f+1280+((c[ea>>2]|0)+-1<<2)>>2];y=ba+(u*1300|0)|0;w=fa;x=y+64|0;do{c[y>>2]=c[w>>2];y=y+4|0;w=w+4|0}while((y|0)<(x|0));y=ba+(u*1300|0)+1184|0;w=ga;x=y+96|0;do{c[y>>2]=c[w>>2];y=y+4|0;w=w+4|0}while((y|0)<(x|0));u=u+1|0}Q=g+29|0;Y=a[Q>>0]|0;S=b[28176+(Y<<24>>24>>1<<2)+(a[g+30>>0]<<1)>>1]|0;c[$>>2]=0;_=e+4584|0;x=c[_>>2]|0;u=sd(40,x)|0;a:do if(Y<<24>>24!=2)if((z|0)>0)U=sd(u,z+-3|0)|0;else U=u;else{w=c[e+4576>>2]|0;v=0;while(1){if((v|0)>=(w|0)){U=u;break a}u=sd(u,(c[r+(v<<2)>>2]|0)+-3|0)|0;v=v+1|0}}while(0);G=(a[g+31>>0]|0)!=4&1;P=c[ea>>2]|0;Y=e+4580|0;N=P+(c[Y>>2]|0)|0;L=l;l=l+((1*(N<<2)|0)+15&-16)|0;M=l;l=l+((1*(N<<1)|0)+15&-16)|0;N=l;l=l+((1*(x<<2)|0)+15&-16)|0;T=f+4336|0;c[T>>2]=P;D=f+4332|0;c[D>>2]=c[ea>>2];X=e+4576|0;E=G^1;F=f+4348|0;G=G<<1^3;O=ba+1296|0;H=q+4|0;I=e+4636|0;J=e+4632|0;K=e+4668|0;v=0;u=z;P=f+(P<<1)|0;y=0;while(1){if((y|0)>=(c[X>>2]|0))break;z=j+((y>>1|E)<<4<<1)|0;A=k+(y*5<<1)|0;B=m+(y*24<<1)|0;C=c[n+(y<<2)>>2]|0;C=C>>2|C>>>1<<16;c[F>>2]=0;w=a[Q>>0]|0;if(w<<24>>24==2){u=c[r+(y<<2)>>2]|0;if(!(y&G)){b:do if((y|0)==2){x=c[W>>2]|0;v=c[O>>2]|0;g=0;w=1;while(1){if((w|0)>=(x|0)){v=0;break}ja=c[ba+(w*1300|0)+1296>>2]|0;ia=(ja|0)<(v|0);v=ia?ja:v;g=ia?w:g;w=w+1|0}while(1){if((v|0)>=(x|0))break;if((v|0)!=(g|0)){ja=ba+(v*1300|0)+1296|0;c[ja>>2]=(c[ja>>2]|0)+134217727}v=v+1|0}v=(c[$>>2]|0)+U|0;w=0;while(1){if((w|0)>=(U|0)){v=0;break b}ja=(v+-1|0)%40|0;ja=(ja|0)<0?ja+40|0:ja;ia=w-U|0;a[i+ia>>0]=(((c[ba+(g*1300|0)+544+(ja<<2)>>2]|0)>>>9)+1|0)>>>1;ka=c[ba+(g*1300|0)+704+(ja<<2)>>2]|0;x=c[H>>2]|0;la=x<<16>>16;x=((R(ka>>16,la)|0)+((R(ka&65535,la)|0)>>16)+(R(ka,(x>>15)+1>>1)|0)>>13)+1>>1;b[P+(ia<<1)>>1]=(x|0)>32767?32767:((x|0)>-32768?x:-32768)&65535;c[f+1280+((c[T>>2]|0)-U+w<<2)>>2]=c[ba+(g*1300|0)+1024+(ja<<2)>>2];v=ja;w=w+1|0}}while(0);ka=c[ea>>2]|0;w=c[I>>2]|0;la=ka-u-w+-2|0;ze(M+(la<<1)|0,f+(la+(R(y,c[_>>2]|0)|0)<<1)|0,z,ka-la|0,w);c[D>>2]=c[ea>>2];c[F>>2]=1;w=a[Q>>0]|0}else w=2}td(e,f,ba,h,N,M,L,y,c[W>>2]|0,t,q,r,w<<24>>24,U);ud(f,ba,a[Q>>0]|0,N,i,P,L,V,z,A,B,u,C,c[o+(y<<2)>>2]|0,c[p+(y<<2)>>2]|0,c[q+(y<<2)>>2]|0,s,S,c[_>>2]|0,v,c[J>>2]|0,c[I>>2]|0,c[K>>2]|0,c[W>>2]|0,$,U);la=c[_>>2]|0;h=h+(la<<1)|0;v=v+1|0;i=i+la|0;P=P+(la<<1)|0;y=y+1|0}w=c[W>>2]|0;u=c[O>>2]|0;g=0;v=1;while(1){if((v|0)>=(w|0))break;ka=c[ba+(v*1300|0)+1296>>2]|0;la=(ka|0)<(u|0);u=la?ka:u;g=la?v:g;v=v+1|0}a[Z>>0]=c[ba+(g*1300|0)+1292>>2];x=c[q+((c[X>>2]|0)+-1<<2)>>2]|0;w=x>>>6<<16>>16;x=(x>>21)+1>>1;u=(c[$>>2]|0)+U|0;v=0;while(1){if((v|0)>=(U|0))break;la=(u+-1|0)%40|0;la=(la|0)<0?la+40|0:la;ka=v-U|0;a[i+ka>>0]=(((c[ba+(g*1300|0)+544+(la<<2)>>2]|0)>>>9)+1|0)>>>1;ja=c[ba+(g*1300|0)+704+(la<<2)>>2]|0;ja=((R(ja>>16,w)|0)+((R(ja&65535,w)|0)>>16)+(R(ja,x)|0)>>7)+1>>1;b[P+(ka<<1)>>1]=(ja|0)>32767?32767:((ja|0)>-32768?ja:-32768)&65535;c[f+1280+((c[T>>2]|0)-U+v<<2)>>2]=c[ba+(g*1300|0)+1024+(la<<2)>>2];u=la;v=v+1|0}y=fa;w=ba+(g*1300|0)+(c[_>>2]<<2)|0;x=y+64|0;do{c[y>>2]=c[w>>2];y=y+4|0;w=w+4|0}while((y|0)<(x|0));y=ga;w=ba+(g*1300|0)+1184|0;x=y+96|0;do{c[y>>2]=c[w>>2];y=y+4|0;w=w+4|0}while((y|0)<(x|0));c[ca>>2]=c[ba+(g*1300|0)+1280>>2];c[da>>2]=c[ba+(g*1300|0)+1284>>2];c[aa>>2]=c[r+((c[X>>2]|0)+-1<<2)>>2];Wh(f|0,f+(c[Y>>2]<<1)|0,c[ea>>2]<<1|0)|0;Wh(f+1280|0,f+1280+(c[Y>>2]<<2)|0,c[ea>>2]<<2|0)|0;l=ha;return}function sd(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}function td(a,d,e,f,g,h,i,j,k,l,m,n,o,p){a=a|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;var q=0,r=0,s=0,t=0,u=0,v=0,w=0;u=c[n+(j<<2)>>2]|0;v=m+(j<<2)|0;n=c[v>>2]|0;n=wd((n|0)>1?n:1)|0;s=(n>>4)+1|0;q=a+4584|0;r=s>>>1<<16>>16;s=(s>>16)+1>>1;m=0;while(1){if((m|0)>=(c[q>>2]|0))break;w=b[f+(m<<1)>>1]|0;t=w<<16>>16;c[g+(m<<2)>>2]=(R(t>>16,r)|0)+((R(w&65535,r)|0)>>16)+(R(t,s)|0);m=m+1|0}t=d+4348|0;a:do if(c[t>>2]|0){if(!j){w=l<<16>>16;n=(R(n>>16,w)|0)+((R(n&65535,w)|0)>>16)<<2}r=d+4332|0;q=c[r>>2]|0;s=n>>16;m=n&65535;n=q-u+-2|0;while(1){if((n|0)>=(q|0))break a;q=b[h+(n<<1)>>1]|0;c[i+(n<<2)>>2]=(R(s,q)|0)+((R(m,q)|0)>>16);n=n+1|0;q=c[r>>2]|0}}while(0);n=c[v>>2]|0;g=d+4344|0;m=c[g>>2]|0;if((n|0)==(m|0))return;r=xd(m,n)|0;q=d+4336|0;m=c[q>>2]|0;s=r>>16;f=r&65535;n=m-(c[a+4588>>2]|0)|0;while(1){if((n|0)>=(m|0))break;m=d+1280+(n<<2)|0;w=c[m>>2]|0;a=w<<16>>16;c[m>>2]=(R(s,a)|0)+((R(f,a)|0)>>16)+(R(r,(w>>15)+1>>1)|0);n=n+1|0;m=c[q>>2]|0}b:do if((o|0)==2?(c[t>>2]|0)==0:0){q=d+4332|0;m=c[q>>2]|0;n=m-u+-2|0;while(1){if((n|0)>=(m-p|0)){m=0;break b}m=i+(n<<2)|0;w=c[m>>2]|0;u=w<<16>>16;c[m>>2]=(R(s,u)|0)+((R(f,u)|0)>>16)+(R(r,(w>>15)+1>>1)|0);n=n+1|0;m=c[q>>2]|0}}else m=0;while(0);while(1){if((m|0)>=(k|0))break;n=e+(m*1300|0)+1280|0;w=c[n>>2]|0;i=w<<16>>16;c[n>>2]=(R(s,i)|0)+((R(f,i)|0)>>16)+(R(r,(w>>15)+1>>1)|0);n=e+(m*1300|0)+1284|0;w=c[n>>2]|0;i=w<<16>>16;c[n>>2]=(R(s,i)|0)+((R(f,i)|0)>>16)+(R(r,(w>>15)+1>>1)|0);n=0;while(1){if((n|0)==16){n=0;break}w=e+(m*1300|0)+(n<<2)|0;i=c[w>>2]|0;p=i<<16>>16;c[w>>2]=(R(s,p)|0)+((R(f,p)|0)>>16)+(R(r,(i>>15)+1>>1)|0);n=n+1|0}while(1){if((n|0)==24){n=0;break}w=e+(m*1300|0)+1184+(n<<2)|0;i=c[w>>2]|0;p=i<<16>>16;c[w>>2]=(R(s,p)|0)+((R(f,p)|0)>>16)+(R(r,(i>>15)+1>>1)|0);n=n+1|0}while(1){if((n|0)==40)break;w=e+(m*1300|0)+864+(n<<2)|0;i=c[w>>2]|0;p=i<<16>>16;c[w>>2]=(R(s,p)|0)+((R(f,p)|0)>>16)+(R(r,(i>>15)+1>>1)|0);w=e+(m*1300|0)+1024+(n<<2)|0;i=c[w>>2]|0;p=i<<16>>16;c[w>>2]=(R(s,p)|0)+((R(f,p)|0)>>16)+(R(r,(i>>15)+1>>1)|0);n=n+1|0}m=m+1|0}c[g>>2]=c[v>>2];return} +function ud(d,e,f,g,h,i,j,k,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|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;u=u|0;v=v|0;w=w|0;x=x|0;y=y|0;z=z|0;A=A|0;B=B|0;C=C|0;D=D|0;var E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=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;sa=l;oa=l;l=l+((1*(B*56|0)|0)+15&-16)|0;pa=d+4336|0;qa=d+4332|0;na=t>>6;ga=(f|0)==2;ha=n+2|0;ia=n+4|0;ja=n+6|0;ka=n+8|0;la=(p|0)>0;ma=q<<16>>16;fa=q>>16;ba=A<<16>>16;ca=y>>1;da=y+-1|0;ea=o+(da<<1)|0;$=r<<16>>16;aa=s<<16>>16;X=s>>16;Y=(u|0)>2048;_=(u|0)/2|0;Z=_+-512|0;_=512-_|0;O=u<<16>>16;P=v+944|0;Q=R(v<<16>>16,O)|0;S=R(P<<16>>16,O)|0;T=v+-944|0;U=R(944-v<<16>>16,O)|0;V=oa+4|0;W=oa+32|0;N=(x|0)<1;f=d+1280+((c[pa>>2]|0)-p+1<<2)|0;t=j+((c[qa>>2]|0)-p+2<<2)|0;M=0;while(1){if((M|0)>=(w|0)){t=0;break}if(ga){L=c[t>>2]|0;K=b[n>>1]|0;K=(R(L>>16,K)|0)+((R(L&65535,K)|0)>>16)+2|0;L=c[t+-4>>2]|0;J=b[ha>>1]|0;J=K+((R(L>>16,J)|0)+((R(L&65535,J)|0)>>16))|0;L=c[t+-8>>2]|0;K=b[ia>>1]|0;K=J+((R(L>>16,K)|0)+((R(L&65535,K)|0)>>16))|0;L=c[t+-12>>2]|0;J=b[ja>>1]|0;J=K+((R(L>>16,J)|0)+((R(L&65535,J)|0)>>16))|0;L=c[t+-16>>2]|0;K=b[ka>>1]|0;K=J+((R(L>>16,K)|0)+((R(L&65535,K)|0)>>16))<<1;t=t+4|0}else K=0;if(la){L=(c[f>>2]|0)+(c[f+-8>>2]|0)|0;L=(R(L>>16,ma)|0)+((R(L&65535,ma)|0)>>16)|0;J=c[f+-4>>2]|0;J=K-(L+(R(J>>16,fa)|0)+((R(J&65535,fa)|0)>>16)<<2)|0;L=f+4|0}else{J=0;L=f}H=M+15|0;I=g+(M<<2)|0;G=0;while(1){if((G|0)>=(B|0))break;s=e+(G*1300|0)+1288|0;c[s>>2]=(R(c[s>>2]|0,196314165)|0)+907633515;q=vd(e+(G*1300|0)+(H<<2)|0,m,z)|0;A=e+(G*1300|0)+1184|0;F=c[A>>2]|0;f=(c[e+(G*1300|0)+1284>>2]|0)+((R(F>>16,ba)|0)+((R(F&65535,ba)|0)>>16))|0;r=(c[e+(G*1300|0)+1188>>2]|0)-f|0;r=F+((R(r>>16,ba)|0)+((R(r&65535,ba)|0)>>16))|0;c[A>>2]=f;A=b[o>>1]|0;A=ca+((R(f>>16,A)|0)+((R(f&65535,A)|0)>>16))|0;f=2;while(1){if((f|0)>=(y|0))break;u=f+-1|0;F=e+(G*1300|0)+1184+(u<<2)|0;p=e+(G*1300|0)+1184+(f<<2)|0;E=c[p>>2]|0;x=E-r|0;x=(c[F>>2]|0)+((R(x>>16,ba)|0)+((R(x&65535,ba)|0)>>16))|0;c[F>>2]=r;u=b[o+(u<<1)>>1]|0;F=c[e+(G*1300|0)+1184+((f|1)<<2)>>2]|0;c[p>>2]=x;u=u<<16>>16;p=b[o+(f<<1)>>1]|0;F=F-x|0;A=A+((R(r>>16,u)|0)+((R(r&65535,u)|0)>>16))+((R(x>>16,p)|0)+((R(x&65535,p)|0)>>16))|0;r=E+((R(F>>16,ba)|0)+((R(F&65535,ba)|0)>>16))|0;f=f+2|0}F=q<<4;c[e+(G*1300|0)+1184+(da<<2)>>2]=r;x=b[ea>>1]|0;x=A+((R(r>>16,x)|0)+((R(r&65535,x)|0)>>16))<<1;p=c[e+(G*1300|0)+1280>>2]|0;E=p>>16;p=p&65535;x=x+((R(E,$)|0)+((R(p,$)|0)>>16))<<2;u=c[e+(G*1300|0)+1024+(c[C>>2]<<2)>>2]|0;p=(R(u>>16,aa)|0)+((R(u&65535,aa)|0)>>16)+(R(E,X)|0)+((R(p,X)|0)>>16)<<2;E=c[I>>2]|0;u=E-((J+F-(x+p)>>3)+1>>1)|0;s=(c[s>>2]|0)<0;u=s?0-u|0:u;u=(u|0)>30720?30720:(u|0)>-31744?u:-31744;f=u-v|0;do if(Y){if((f|0)>(Z|0)){f=f-Z|0;ra=18;break}if((f|0)>=(_|0))if((f|0)<0){ra=21;break}else{f=P;q=v;A=S;r=Q;break}else{f=f+Z|0;ra=18;break}}else ra=18;while(0);a:do if((ra|0)==18){ra=0;f=f>>10;if((f|0)>0){r=(f<<10)+-80+v|0;A=r+1024|0;f=A;q=r;A=R(A<<16>>16,O)|0;r=R(r<<16>>16,O)|0;break}switch(f|0){case 0:{f=P;q=v;A=S;r=Q;break a}case -1:{ra=21;break a}default:{}}r=(f<<10|80)+v|0;f=r+1024|0;q=r;A=R(-1024-r<<16>>16,O)|0;r=R(0-r<<16>>16,O)|0}while(0);if((ra|0)==21){ra=0;f=v;q=T;A=Q;r=U}ta=u-q<<16>>16;ta=r+(R(ta,ta)|0)>>10;u=u-f<<16>>16;u=A+(R(u,u)|0)>>10;ua=(ta|0)<(u|0);va=c[e+(G*1300|0)+1296>>2]|0;A=ua?q:f;r=ua?f:q;c[oa+(G*56|0)+4>>2]=va+(ua?ta:u);c[oa+(G*56|0)+32>>2]=va+(ua?u:ta);c[oa+(G*56|0)>>2]=A;c[oa+(G*56|0)+28>>2]=r;q=A<<4;q=(s?0-q|0:q)+K|0;A=q+F|0;u=E<<4;E=A-u|0;c[oa+(G*56|0)+16>>2]=E;E=E-x|0;c[oa+(G*56|0)+20>>2]=E-p;c[oa+(G*56|0)+12>>2]=E;c[oa+(G*56|0)+24>>2]=q;c[oa+(G*56|0)+8>>2]=A;E=r<<4;E=(s?0-E|0:E)+K|0;F=E+F|0;u=F-u|0;c[oa+(G*56|0)+44>>2]=u;x=u-x|0;c[oa+(G*56|0)+48>>2]=x-p;c[oa+(G*56|0)+40>>2]=x;c[oa+(G*56|0)+52>>2]=E;c[oa+(G*56|0)+36>>2]=F;G=G+1|0}A=((c[C>>2]|0)+-1|0)%40|0;x=(A|0)<0;f=A+40|0;c[C>>2]=x?f:A;A=(x?f:A)+D|0;f=c[V>>2]|0;x=0;q=1;while(1){if((q|0)>=(B|0))break;ua=c[oa+(q*56|0)+4>>2]|0;va=(ua|0)<(f|0);f=va?ua:f;x=va?q:x;q=q+1|0}u=(A|0)%40|0;q=c[e+(x*1300|0)+384+(u<<2)>>2]|0;f=0;while(1){if((f|0)>=(B|0))break;if((c[e+(f*1300|0)+384+(u<<2)>>2]|0)!=(q|0)){va=oa+(f*56|0)+4|0;c[va>>2]=(c[va>>2]|0)+134217727;va=oa+(f*56|0)+32|0;c[va>>2]=(c[va>>2]|0)+134217727}f=f+1|0}f=c[V>>2]|0;q=0;A=0;r=c[W>>2]|0;s=1;while(1){if((s|0)>=(B|0))break;K=c[oa+(s*56|0)+4>>2]|0;ta=(K|0)>(f|0);va=c[oa+(s*56|0)+32>>2]|0;ua=(va|0)<(r|0);f=ta?K:f;q=ta?s:q;A=ua?s:A;r=ua?va:r;s=s+1|0}if((r|0)<(f|0)){Sh(e+(q*1300|0)+(M<<2)|0,e+(A*1300|0)+(M<<2)|0,1300-(M<<2)|0)|0;va=oa+(q*56|0)|0;ua=oa+(A*56|0)+28|0;c[va>>2]=c[ua>>2];c[va+4>>2]=c[ua+4>>2];c[va+8>>2]=c[ua+8>>2];c[va+12>>2]=c[ua+12>>2];c[va+16>>2]=c[ua+16>>2];c[va+20>>2]=c[ua+20>>2];c[va+24>>2]=c[ua+24>>2]}if(!(N&(M|0)<(D|0))){va=M-D|0;a[h+va>>0]=(((c[e+(x*1300|0)+544+(u<<2)>>2]|0)>>>9)+1|0)>>>1;ta=c[e+(x*1300|0)+704+(u<<2)>>2]|0;ua=c[k+(u<<2)>>2]|0;K=ua<<16>>16;ua=((R(ta>>16,K)|0)+((R(ta&65535,K)|0)>>16)+(R(ta,(ua>>15)+1>>1)|0)>>7)+1>>1;b[i+(va<<1)>>1]=(ua|0)>32767?32767:((ua|0)>-32768?ua:-32768)&65535;c[d+1280+((c[pa>>2]|0)-D<<2)>>2]=c[e+(x*1300|0)+1024+(u<<2)>>2];c[j+((c[qa>>2]|0)-D<<2)>>2]=c[e+(x*1300|0)+864+(u<<2)>>2]}c[pa>>2]=(c[pa>>2]|0)+1;c[qa>>2]=(c[qa>>2]|0)+1;q=M+16|0;f=0;while(1){if((f|0)>=(B|0))break;c[e+(f*1300|0)+1280>>2]=c[oa+(f*56|0)+12>>2];c[e+(f*1300|0)+1284>>2]=c[oa+(f*56|0)+16>>2];va=c[oa+(f*56|0)+8>>2]|0;c[e+(f*1300|0)+(q<<2)>>2]=va;c[e+(f*1300|0)+704+(c[C>>2]<<2)>>2]=va;va=c[oa+(f*56|0)>>2]|0;c[e+(f*1300|0)+544+(c[C>>2]<<2)>>2]=va;c[e+(f*1300|0)+864+(c[C>>2]<<2)>>2]=c[oa+(f*56|0)+24>>2]<<1;c[e+(f*1300|0)+1024+(c[C>>2]<<2)>>2]=c[oa+(f*56|0)+20>>2];ua=e+(f*1300|0)+1288|0;va=(c[ua>>2]|0)+((va>>9)+1>>1)|0;c[ua>>2]=va;c[e+(f*1300|0)+384+(c[C>>2]<<2)>>2]=va;c[e+(f*1300|0)+1296>>2]=c[oa+(f*56|0)+4>>2];f=f+1|0}c[k+(c[C>>2]<<2)>>2]=na;f=L;M=M+1|0}while(1){if((t|0)>=(B|0))break;f=e+(t*1300|0)|0;q=e+(t*1300|0)+(w<<2)|0;A=f+64|0;do{c[f>>2]=c[q>>2];f=f+4|0;q=q+4|0}while((f|0)<(A|0));t=t+1|0}l=sa;return}function vd(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0;g=c[a>>2]|0;h=b[d>>1]|0;h=(e>>1)+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-4>>2]|0;f=b[d+2>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;g=c[a+-8>>2]|0;h=b[d+4>>1]|0;h=f+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-12>>2]|0;f=b[d+6>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;g=c[a+-16>>2]|0;h=b[d+8>>1]|0;h=f+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-20>>2]|0;f=b[d+10>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;g=c[a+-24>>2]|0;h=b[d+12>>1]|0;h=f+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-28>>2]|0;f=b[d+14>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;g=c[a+-32>>2]|0;h=b[d+16>>1]|0;h=f+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-36>>2]|0;f=b[d+18>>1]|0;f=h+((R(g>>16,f)|0)+((R(g&65535,f)|0)>>16))|0;if((e|0)!=16){h=f;return h|0}g=c[a+-40>>2]|0;e=b[d+20>>1]|0;e=f+((R(g>>16,e)|0)+((R(g&65535,e)|0)>>16))|0;g=c[a+-44>>2]|0;h=b[d+22>>1]|0;h=e+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-48>>2]|0;e=b[d+24>>1]|0;e=h+((R(g>>16,e)|0)+((R(g&65535,e)|0)>>16))|0;g=c[a+-52>>2]|0;h=b[d+26>>1]|0;h=e+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;g=c[a+-56>>2]|0;e=b[d+28>>1]|0;e=h+((R(g>>16,e)|0)+((R(g&65535,e)|0)>>16))|0;g=c[a+-60>>2]|0;h=b[d+30>>1]|0;h=e+((R(g>>16,h)|0)+((R(g&65535,h)|0)>>16))|0;return h|0}function wd(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=yd((a|0)>0?a:0-a|0)|0;a=a<>16;d=536870911/(f|0)|0;e=d<<16;c=e>>16;a=536870912-((R(f,c)|0)+((R(a&65535,c)|0)>>16))<<3;d=e+((R(a>>16,c)|0)+((R(a&65528,c)|0)>>16))+(R(a,(d>>15)+1>>1)|0)|0;a=62-b|0;b=a+-47|0;if((b|0)>=1)return ((b|0)<32?d>>b:0)|0;a=47-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){f=b;f=f<(c|0)){f=c;f=f<0?a:0-a|0)|0;f=a<0?b:0-b|0)|0)+-1|0;b=b<>16|0)|0)<<16>>16;e=(R(f>>16,d)|0)+((R(f&65535,d)|0)>>16)|0;b=Uh(b|0,((b|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;b=Rh(b|0,C|0,29)|0;b=f-(b&-8)|0;d=e+((R(b>>16,d)|0)+((R(b&65535,d)|0)>>16))|0;a=c+28-a|0;b=a+-16|0;if((a|0)>=16)return ((b|0)<32?d>>b:0)|0;a=16-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){f=b;f=f<(c|0)){f=c;f=f<>2]|0;Bd(a,h,c[i>>2]|0,33430);i=c[g>>2]|0;Bd(a,i,h,33278);h=c[e>>2]|0;Bd(a,h,i,33126);Bd(a,c[b>>2]|0,h,32974);Bd(a,c[b+8>>2]|0,c[e+4>>2]|0,32974);h=c[e+8>>2]|0;Bd(a,h,c[g+4>>2]|0,33126);Bd(a,c[b+16>>2]|0,h,32974);Bd(a,c[b+24>>2]|0,c[e+12>>2]|0,32974);h=c[g+8>>2]|0;Bd(a,h,c[f+4>>2]|0,33278);f=c[e+16>>2]|0;Bd(a,f,h,33126);Bd(a,c[b+32>>2]|0,f,32974);Bd(a,c[b+40>>2]|0,c[e+20>>2]|0,32974);f=c[e+24>>2]|0;Bd(a,f,c[g+12>>2]|0,33126);Bd(a,c[b+48>>2]|0,f,32974);Bd(a,c[b+56>>2]|0,c[e+28>>2]|0,32974);l=d;return}function Ad(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0;e=0;while(1){if((e|0)>=(d|0))break;f=e<<1;c[a+(e<<2)>>2]=(c[b+(f<<2)>>2]|0)+(c[b+((f|1)<<2)>>2]|0);e=e+1|0}return}function Bd(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;if((c|0)<=0)return;Rb(a,b,e+(d[33582+c>>0]|0)|0,8);return}function Cd(a){a=a|0;var b=0,d=0;b=a;d=b+112|0;do{c[b>>2]=0;b=b+4|0}while((b|0)<(d|0));b=0;while(1){if((b|0)==4){b=0;break}d=b+1|0;c[a+92+(b<<2)>>2]=Dd(50/(d|0)|0)|0;b=d}while(1){if((b|0)==4)break;d=(c[a+92+(b<<2)>>2]|0)*100|0;c[a+60+(b<<2)>>2]=d;c[a+76+(b<<2)>>2]=2147483647/(d|0)|0;b=b+1|0}c[a+108>>2]=15;b=0;while(1){if((b|0)==4)break;c[a+40+(b<<2)>>2]=25600;b=b+1|0}return 0}function Dd(a){a=a|0;return ((a|0)>1?a:1)|0}function Ed(a,d){a=a|0;d=d|0;var f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=l;l=l+48|0;s=v+32|0;u=v+16|0;q=v;r=a+32|0;t=a+4580|0;m=c[t>>2]|0;o=m>>1;h=m>>2;f=m>>3;c[q>>2]=0;g=f+h|0;c[q+4>>2]=g;n=g+f|0;c[q+8>>2]=n;k=n+h|0;c[q+12>>2]=k;p=l;l=l+((1*(k+o<<1)|0)+15&-16)|0;qe(d,r,p,p+(k<<1)|0,m);qe(p,a+40|0,p,p+(n<<1)|0,o);qe(p,a+48|0,p,p+(g<<1)|0,h);h=p+(f+-1<<1)|0;g=b[h>>1]>>1;b[h>>1]=g;h=g;while(1){d=f+-1|0;if((f|0)<=1)break;n=p+(f+-2<<1)|0;o=b[n>>1]>>1;b[n>>1]=o;b[p+(d<<1)>>1]=(h&65535)-(o&65535);f=d;h=o}d=a+88|0;b[p>>1]=(e[p>>1]|0)-(e[d>>1]|0);b[d>>1]=g;d=0;j=0;while(1){if((j|0)==4)break;k=c[t>>2]|0;k=k>>(Fd(4-j|0,3)|0)>>2;m=a+56+(j<<2)|0;g=c[m>>2]|0;n=s+(j<<2)|0;c[n>>2]=g;o=q+(j<<2)|0;h=0;i=0;while(1){if((i|0)==4)break;else{f=0;d=0}while(1){if((f|0)>=(k|0))break;w=b[p+((c[o>>2]|0)+f+h<<1)>>1]>>3;f=f+1|0;d=d+(R(w,w)|0)|0}w=g+(d>>((i|0)>2&1))|0;w=(w|0)<0?2147483647:w;c[n>>2]=w;h=h+k|0;i=i+1|0;g=w}c[m>>2]=d;j=j+1|0}Gd(s,r);f=0;j=0;h=0;while(1){if((j|0)==4)break;d=c[s+(j<<2)>>2]|0;g=c[a+92+(j<<2)>>2]|0;i=d-g|0;if((i|0)>0){w=d>>>0<8388608;d=((w?d<<8:d)|0)/((w?g:g>>8)+1|0)|0;c[u+(j<<2)>>2]=d;d=(ue(d)|0)+-1024|0;g=d<<16>>16;h=h+(R(g,g)|0)|0;if((i|0)<1048576){d=R((Hd(i)|0)<<6>>16,g)|0;d=d+((R((Hd(i)|0)<<6&65472,g)|0)>>16)|0}w=c[19312+(j<<2)>>2]|0;d=d<<16>>16;f=f+((R(w>>16,d)|0)+((R(w&65535,d)|0)>>16))|0;d=h}else{c[u+(j<<2)>>2]=256;d=h}j=j+1|0;h=d}g=(((Hd((h|0)/4|0)|0)*196608>>16)*45e3>>16)+-128|0;c[a+4708>>2]=((Xe(f)|0)<<1)+-32768;f=0;d=0;while(1){if((d|0)==4)break;w=d+1|0;f=f+(R(w,(c[s+(d<<2)>>2]|0)-(c[a+92+(d<<2)>>2]|0)>>4)|0)|0;d=w}d=Xe(g)|0;if((f|0)>=1){if((f|0)<32768){w=(Hd(f<<((c[t>>2]|0)==((c[a+4572>>2]|0)*10|0)?16:15))|0)+32768|0;d=d<<16>>16;d=(R(w>>16,d)|0)+((R(w&65535,d)|0)>>16)|0}}else d=d>>1;c[a+4528>>2]=Fd(d>>7,255)|0;f=d<<16>>16;d=((R(d>>16,f)|0)<<16)+(R(d&65535,f)|0)|0;d=d>>((c[t>>2]|0)==((c[a+4572>>2]|0)*10|0)?21:20);f=0;while(1){if((f|0)==4)break;t=a+72+(f<<2)|0;s=c[t>>2]|0;w=(c[u+(f<<2)>>2]|0)-s|0;w=s+((R(w>>16,d)|0)+((R(w&65535,d)|0)>>16))|0;c[t>>2]=w;c[a+4692+(f<<2)>>2]=Xe(((ue(w)|0)*3|0)+-5120>>4)|0;f=f+1|0}l=v;return}function Fd(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}function Gd(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;j=b+108|0;d=c[j>>2]|0;if((d|0)<1e3)f=32767/((d>>4)+1|0)|0;else f=0;g=0;while(1){if((g|0)==4)break;i=b+60+(g<<2)|0;e=c[i>>2]|0;d=(c[a+(g<<2)>>2]|0)+(c[b+92+(g<<2)>>2]|0)|0;d=(d|0)<0?2147483647:d;h=2147483647/(d>>>0)|0;if((d|0)<=(e<<3|0))if((d|0)<(e|0))d=1024;else{k=e<<16>>16;l=R(h>>>16,k)|0;k=R(h&65535,k)|0;d=R(h,(e>>15)+1>>1)|0;d=l+(k>>16)+d>>16<<11|(l+(k>>>16)+d|0)>>>5&2047}else d=128;l=Ld(d,f)|0;k=b+76+(g<<2)|0;e=c[k>>2]|0;h=h-e|0;l=l<<16>>16;l=e+((R(h>>16,l)|0)+((R(h&65535,l)|0)>>16))|0;c[k>>2]=l;l=2147483647/(l|0)|0;c[i>>2]=(l|0)<16777215?l:16777215;g=g+1|0}c[j>>2]=(c[j>>2]|0)+1;return}function Hd(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;if((a|0)<1){d=0;l=e;return d|0}Id(a,b,d);b=c[b>>2]|0;b=((b&1|0)==0?46214:32768)>>>(b>>1);d=(R(c[d>>2]<<16>>16,13959168)|0)>>16;d=b+((R(b>>16,d)|0)+((R(b&65535,d)|0)>>16))|0;l=e;return d|0}function Id(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=Jd(a)|0;c[b>>2]=e;c[d>>2]=(Kd(a,24-e|0)|0)&127;return}function Jd(a){a=a|0;return U(a|0)|0}function Kd(a,b){a=a|0;b=b|0;if(!b){b=a;return b|0}if((b|0)<0){b=a<<0-b|a>>>(b+32|0);return b|0}else{b=a<<32-b|a>>>b;return b|0}return 0}function Ld(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function Md(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;h=c[a+4572>>2]|0;f=h<<16>>16;g=f*1e3|0;if(!f){b=c[a+4568>>2]|0;h=c[a+4552>>2]|0;h=(((b|0)<(h|0)?b:h)|0)/1e3|0;return h|0}e=c[a+4552>>2]|0;d=c[a+4560>>2]|0;if(!((g|0)>(e|0)|(g|0)>(d|0))?(g|0)>=(c[a+4564>>2]|0):0){f=a+24|0;d=c[f>>2]|0;if((d|0)>255)c[a+28>>2]=0;if((c[a+4532>>2]|0)==0?(c[b+64>>2]|0)==0:0)return h|0;e=c[a+4568>>2]|0;if((g|0)>(e|0)){e=a+28|0;if(!(c[e>>2]|0)){c[f>>2]=256;d=a+16|0;c[d>>2]=0;c[d+4>>2]=0;d=256}if(c[b+64>>2]|0){c[e>>2]=0;h=(h|0)==16?12:8;return h|0}if((d|0)<1){c[b+88>>2]=1;a=b+56|0;g=c[a>>2]|0;c[a>>2]=g-((g*5|0)/((c[b+24>>2]|0)+5|0)|0);return h|0}else{c[e>>2]=-2;return h|0}}if((g|0)>=(e|0)){d=a+28|0;if((c[d>>2]|0)>=0)return h|0;c[d>>2]=1;return h|0}if(c[b+64>>2]|0){c[f>>2]=0;b=a+16|0;c[b>>2]=0;c[b+4>>2]=0;c[a+28>>2]=1;h=(h|0)==8?12:16;return h|0}d=a+28|0;if(!(c[d>>2]|0)){c[b+88>>2]=1;a=b+56|0;g=c[a>>2]|0;c[a>>2]=g-((g*5|0)/((c[b+24>>2]|0)+5|0)|0);return h|0}else{c[d>>2]=1;return h|0}}b=(e|0)<(d|0)?e:d;h=c[a+4564>>2]|0;h=(((b|0)>(h|0)?b:h)|0)/1e3|0;return h|0}function Nd(d,e,f,g,h,i,j,k,m){d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;G=l;l=l+16|0;E=G+12|0;B=G+8|0;C=G+4|0;D=G;F=0;n=2147483647;s=0;A=0;while(1){if((A|0)==3)break;w=c[18992+(A<<2)>>2]|0;x=c[19004+(A<<2)>>2]|0;y=c[19016+(A<<2)>>2]|0;z=a[30682+A>>0]|0;o=c[g>>2]|0;t=0;p=0;u=j;v=i;s=0;while(1){if((t|0)>=(m|0))break;Od(E+t|0,B,C,D,v,u,x,y,w,k,(ye(5333-o+896|0)|0)+-51|0,z);r=s+(c[B>>2]|0)|0;q=p+(c[C>>2]|0)|0;p=(c[D>>2]|0)+51|0;if((o+(ue(p)|0)|0)<896)o=0;else o=o+(ue(p)|0)+-896|0;t=t+1|0;p=(q|0)<0?2147483647:q;u=u+20|0;v=v+100|0;s=(r|0)<0?2147483647:r}if((p|0)>(n|0))o=F;else{a[f>>0]=A;Sh(e|0,E|0,m|0)|0;n=p}F=o;A=A+1|0}p=c[19004+(a[f>>0]<<2)>>2]|0;o=0;while(1){if((o|0)>=(m|0))break;q=e+o|0;r=o*5|0;n=0;while(1){if((n|0)==5)break;b[d+(r+n<<1)>>1]=a[p+(((a[q>>0]|0)*5|0)+n)>>0]<<7;n=n+1|0}o=o+1|0}c[g>>2]=F;c[h>>2]=R(((ue(s>>((m|0)==2?1:2))|0)<<16)+-125829120>>16,-3)|0;l=G;return}function Od(b,e,f,g,h,i,j,k,l,m,n,o){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;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;G=c[i>>2]<<7;J=c[i+4>>2]<<7;K=c[i+8>>2]<<7;L=c[i+12>>2]<<7;E=0-(c[i+16>>2]<<7)|0;c[f>>2]=2147483647;c[e>>2]=2147483647;a[b>>0]=0;r=h+4|0;s=h+8|0;t=h+12|0;u=h+16|0;v=h+28|0;w=h+32|0;x=h+36|0;y=h+24|0;z=h+52|0;A=h+56|0;B=h+48|0;C=h+76|0;D=h+72|0;E=E<<1;F=h+96|0;q=m<<16>>16;i=0;while(1){if((i|0)>=(o|0))break;p=d[k+i>>0]|0;P=a[j+1>>0]|0;M=(R(c[r>>2]|0,P)|0)-G|0;O=a[j+2>>0]|0;M=M+(R(c[s>>2]|0,O)|0)|0;N=a[j+3>>0]|0;M=M+(R(c[t>>2]|0,N)|0)|0;m=a[j+4>>0]|0;M=M+(R(c[u>>2]|0,m)|0)<<1;Q=a[j>>0]|0;M=M+(R(c[h>>2]|0,Q)|0)|0;Q=(R(M>>16,Q)|0)+((R(M&65535,Q)|0)>>16)+32801|0;M=(R(c[v>>2]|0,O)|0)-J|0;M=M+(R(c[w>>2]|0,N)|0)|0;M=M+(R(c[x>>2]|0,m)|0)<<1;M=M+(R(c[y>>2]|0,P)|0)|0;P=Q+((R(M>>16,P)|0)+((R(M&65535,P)|0)>>16))|0;M=(R(c[z>>2]|0,N)|0)-K|0;M=M+(R(c[A>>2]|0,m)|0)<<1;M=M+(R(c[B>>2]|0,O)|0)|0;O=P+((R(M>>16,O)|0)+((R(M&65535,O)|0)>>16))|0;M=(R(c[C>>2]|0,m)|0)-L<<1;M=M+(R(c[D>>2]|0,N)|0)|0;N=O+((R(M>>16,N)|0)+((R(M&65535,N)|0)>>16))|0;M=E+(R(c[F>>2]|0,m)|0)|0;m=N+((R(M>>16,m)|0)+((R(M&65535,m)|0)>>16))|0;if((m|0)>-1?(H=m+((p|0)>(n|0)?p-n<<11:0)|0,I=R(q,((ue(H)|0)<<16)+-125829120>>16)|0,I=I+(d[l+i>>0]<<2)|0,(I|0)<=(c[f>>2]|0)):0){c[f>>2]=I;c[e>>2]=H;a[b>>0]=i;c[g>>2]=p}j=j+5|0;i=i+1|0}return}function Pd(b){b=b|0;var d=0,e=0,f=0,g=0;if((a[b+4537>>0]|0)!=2)return;e=R(c[b+4572>>2]|0,65536e3)|0;e=(ue((e|0)/(c[b+4540>>2]|0)|0)|0)+-2048|0;d=c[b+4692>>2]|0;g=0-d<<2;d=d<<16>>16;f=R(g>>16,d)|0;d=R(g&65532,d)|0;g=R(f+(d>>16)>>16,e-((ue(3932160)|0)+63488)<<16>>16)|0;e=e+(g+((R(f+(d>>>16)&65535,e-((ue(3932160)|0)+63488)<<16>>16)|0)>>16))|0;d=b+8|0;f=c[d>>2]|0;e=e-(f>>8)|0;e=(e|0)<0?e*3|0:e;e=R(c[b+4528>>2]<<16>>16,(e|0)>51?51:((e|0)>-51?e:-51)<<16>>16)|0;c[d>>2]=f+(((e>>16)*6554|0)+(((e&65535)*6554|0)>>>16));e=(ue(60)|0)<<8;e=(e|0)>((ue(100)|0)<<8|0);b=c[d>>2]|0;do if(e){if((b|0)>((ue(60)|0)<<8|0)){b=(ue(60)|0)<<8;break}g=c[d>>2]|0;if((g|0)<((ue(100)|0)<<8|0)){b=(ue(100)|0)<<8;break}else{b=c[d>>2]|0;break}}else{if((b|0)>((ue(100)|0)<<8|0)){b=(ue(100)|0)<<8;break}g=c[d>>2]|0;if((g|0)<((ue(60)|0)<<8|0)){b=(ue(60)|0)<<8;break}else{b=c[d>>2]|0;break}}while(0);c[d>>2]=b;return}function Qd(f,g,h,i,j,k,m){f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;J=l;l=l+128|0;G=J;H=J+72|0;I=J+40|0;u=J+104|0;v=J+8|0;w=h+2|0;Ge(g,c[h+36>>2]|0,b[w>>1]|0);z=b[h>>1]|0;A=l;l=l+((1*((z&65535)<<2)|0)+15&-16)|0;x=h+8|0;y=h+12|0;Td(A,g,c[x>>2]|0,c[y>>2]|0,z<<16>>16,b[w>>1]|0);z=l;l=l+((1*(k<<2)|0)+15&-16)|0;Ye(A,z,b[h>>1]|0,k);A=l;l=l+((1*(k<<2)|0)+15&-16)|0;B=l;l=l+((1*(k<<4)|0)+15&-16)|0;C=h+32|0;D=h+4|0;E=h+6|0;F=h+16|0;r=m>>1;s=j<<14>>16;q=0;while(1){if((q|0)>=(k|0))break;t=c[z+(q<<2)>>2]|0;n=b[w>>1]|0;p=R(t,n)|0;o=(c[x>>2]|0)+p|0;p=(c[y>>2]|0)+(p<<1)|0;m=0;while(1){if((m|0)>=(n|0))break;K=b[p+(m<<1)>>1]|0;b[H+(m<<1)>>1]=(R((e[g+(m<<1)>>1]|0)-(d[o+m>>0]<<7)<<16>>16,K)|0)>>>14;b[I+(m<<1)>>1]=Rd(b[i+(m<<1)>>1]|0,R(K,K)|0)|0;m=m+1|0}Ud(v,u,h,t);n=Vd(B+(q<<4)|0,H,I,u,v,c[C>>2]|0,b[D>>1]|0,b[E>>1]|0,j,b[w>>1]|0)|0;o=A+(q<<2)|0;c[o>>2]=n;p=(c[F>>2]|0)+(R(r,b[h>>1]|0)|0)|0;if(!t)m=256;else m=d[p+(t+-1)>>0]|0;c[o>>2]=n+(R(1024-(ue(m-(d[p+t>>0]|0)|0)|0)<<16>>16,s)|0);q=q+1|0}Ye(A,G,k,1);K=c[G>>2]|0;a[f>>0]=c[z+(K<<2)>>2];Sh(f+1|0,B+(K<<4)|0,b[w>>1]|0)|0;hd(g,f,h);l=J;return}function Rd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=Sd((a|0)>0?a:0-a|0)|0;f=a<0?b:0-b|0)|0)+-1|0;b=b<>16|0)|0)<<16>>16;e=(R(f>>16,d)|0)+((R(f&65535,d)|0)>>16)|0;b=Uh(b|0,((b|0)<0)<<31>>31|0,e|0,((e|0)<0)<<31>>31|0)|0;b=Rh(b|0,C|0,29)|0;b=f-(b&-8)|0;d=e+((R(b>>16,d)|0)+((R(b&65535,d)|0)>>16))|0;a=c+28-a|0;b=a+-21|0;if((a|0)>=21)return ((b|0)<32?d>>b:0)|0;a=21-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){f=b;f=f<(c|0)){f=c;f=f<>1]|0)-(d[g+r>>0]<<7)<<16>>16,b[h+(r<<1)>>1]|0)|0;s=k>>1;p=R((e[f+(n<<1)>>1]|0)-(d[g+n>>0]<<7)<<16>>16,b[h+(n<<1)>>1]|0)|0;q=r>>1;k=p;l=l+((r|0)>(s|0)?r-s|0:s-r|0)+((p|0)>(q|0)?p-q|0:q-p|0)|0;o=n}c[a+(m<<2)>>2]=l;g=g+j|0;h=h+(j<<1)|0;m=m+1|0}return}function Ud(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;j=f+2|0;h=b[j>>1]|0;i=f+20|0;f=(c[f+24>>2]|0)+((R(h<<16>>16,g)|0)/2|0)|0;g=0;while(1){if((g|0)>=(h<<16>>16|0))break;l=a[f>>0]|0;k=l&255;b[d+(g<<1)>>1]=(k>>>1&7)*9;a[e+g>>0]=a[(c[i>>2]|0)+(g+((b[j>>1]|0)+-1&0-(l&1)))>>0]|0;h=g|1;b[d+(h<<1)>>1]=((l&255)>>>5)*9&255;a[e+h>>0]=a[(c[i>>2]|0)+(g+((b[j>>1]|0)+-1&0-(k>>>4&1))+1)>>0]|0;f=f+1|0;g=g+2|0;h=b[j>>1]|0}return}function Vd(e,f,g,h,i,j,k,m,n,o){e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|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;J=l;l=l+320|0;B=J+224|0;I=J+256|0;C=J+240|0;H=J+192|0;D=J+176|0;E=J+160|0;F=J+80|0;G=J;r=k<<16>>16;q=-10;while(1){if((q|0)==10)break;k=q<<10;p=k+1024|0;a:do if((q|0)>0){p=(p<<16>>16)+-102|0;k=(q<<26>>16)+-102|0}else{switch(q|0){case 0:{p=(p<<16>>16)+-102|0;break a}case -1:{k=-1024;break}default:p=p|102}k=k|102}while(0);A=q+10|0;c[F+(A<<2)>>2]=(R(k<<16>>16,r)|0)>>16;c[G+(A<<2)>>2]=(R(p<<16>>16,r)|0)>>16;q=q+1|0}c[H>>2]=0;b[C>>1]=0;A=o<<16>>16;z=m<<16>>16;y=n<<16>>16;q=1;k=A;b:while(1){x=(q|0)<3;p=k;c:while(1){k=p+-1|0;if((p|0)<=0){q=0;r=2147483647;k=0;break b}m=j+(b[i+(k<<1)>>1]|0)|0;n=b[f+(k<<1)>>1]|0;s=h+k|0;t=g+(k<<1)|0;r=0;while(1){if((r|0)>=(q|0))break;w=C+(r<<1)|0;v=(R(d[s>>0]|0,b[w>>1]|0)|0)>>8;p=(R(z,n-v<<16>>16)|0)>>16;p=(p|0)>9?9:(p|0)>-10?p:-10;a[I+(r<<4)+k>>0]=p;o=p+10|0;u=(c[F+(o<<2)>>2]|0)+v|0;v=(c[G+(o<<2)>>2]|0)+v|0;b[w>>1]=u;w=r+q|0;b[C+(w<<1)>>1]=v;do if((p|0)>2)if((p|0)==3){o=280;p=d[m+7>>0]|0;break}else{p=p*43|0;o=p+151|0;p=p+108|0;break}else{if((p|0)>=-3){o=d[m+(p+5)>>0]|0;p=d[m+(p+4)>>0]|0;break}if((p|0)==-4){o=d[m+1>>0]|0;p=280;break}else{p=R(p,-43)|0;o=p+65|0;p=p+108|0;break}}while(0);L=H+(r<<2)|0;K=c[L>>2]|0;M=n-u<<16>>16;M=R(M,M)|0;u=b[t>>1]|0;c[L>>2]=K+(R(M,u)|0)+(R(y,p<<16>>16)|0);v=n-v<<16>>16;c[H+(w<<2)>>2]=K+(R(R(v,v)|0,u)|0)+(R(y,o<<16>>16)|0);r=r+1|0}if(x){p=0;break}else t=0;while(1){if((t|0)==4)break;o=H+(t<<2)|0;p=c[o>>2]|0;r=t+4|0;m=H+(r<<2)|0;s=c[m>>2]|0;n=E+(t<<2)|0;if((p|0)>(s|0)){c[n>>2]=p;c[o>>2]=s;c[m>>2]=p;L=C+(t<<1)|0;M=b[L>>1]|0;p=C+(r<<1)|0;b[L>>1]=b[p>>1]|0;b[p>>1]=M;p=s}else{c[n>>2]=s;r=t}c[D+(t<<2)>>2]=p;c[B+(t<<2)>>2]=r;t=t+1|0}while(1){p=0;r=2147483647;o=0;n=0;m=0;while(1){if((m|0)==4)break;K=c[E+(m<<2)>>2]|0;M=(r|0)>(K|0);w=c[D+(m<<2)>>2]|0;L=(p|0)<(w|0);p=L?w:p;r=M?K:r;o=L?m:o;n=M?m:n;m=m+1|0}if((r|0)>=(p|0)){p=0;break}c[B+(o<<2)>>2]=c[B+(n<<2)>>2]^4;p=n+4|0;c[H+(o<<2)>>2]=c[H+(p<<2)>>2];b[C+(o<<1)>>1]=b[C+(p<<1)>>1]|0;c[D+(o<<2)>>2]=0;c[E+(n<<2)>>2]=2147483647;o=I+(o<<4)|0;p=I+(n<<4)|0;r=o+16|0;do{a[o>>0]=a[p>>0]|0;o=o+1|0;p=p+1|0}while((o|0)<(r|0))}while(1){if((p|0)==4){p=k;continue c}M=I+(p<<4)+k|0;a[M>>0]=(d[M>>0]|0)+((c[B+(p<<2)>>2]|0)>>>2);p=p+1|0}}while(1){if((p|0)>=(q|0))break;a[I+(p+q<<4)+k>>0]=(d[I+(p<<4)+k>>0]|0)+1;p=p+1|0}q=q<<1;p=q;while(1){if((p|0)>=4)continue b;a[I+(p<<4)+k>>0]=a[I+(p-q<<4)+k>>0]|0;p=p+1|0}}while(1){if((k|0)==8)break;M=c[H+(k<<2)>>2]|0;L=(r|0)>(M|0);q=L?k:q;r=L?M:r;k=k+1|0}p=q&3;k=0;while(1){if((k|0)>=(A|0))break;a[e+k>>0]=a[I+(p<<4)+k>>0]|0;k=k+1|0}a[e>>0]=(d[e>>0]|0)+(q>>>2);l=J;return r|0}function Wd(d,e,f,g){d=d|0;e=e|0;f=f|0;g=g|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0;q=l;l=l+96|0;p=q+64|0;n=q+32|0;k=q;m=c[d+4528>>2]<<16>>16;m=(R(m,-5)|0)+(m*59246>>16)+3146|0;m=m+((c[d+4576>>2]|0)==2?m>>1:0)|0;o=d+4636|0;Je(n,f,c[o>>2]|0);a:do if((c[d+4628>>2]|0)==1?(h=d+4763|0,i=a[h>>0]|0,i<<24>>24<4):0){ed(p,g,f,i<<24>>24,c[o>>2]|0);Je(k,p,c[o>>2]|0);j=a[h>>0]|0;j=(R(j,j)|0)<<27;i=c[o>>2]|0;j=j>>16;h=0;while(1){if((h|0)>=(i|0)){j=1;break a}r=n+(h<<1)|0;b[r>>1]=((b[r>>1]|0)>>>1)+((R(b[k+(h<<1)>>1]|0,j)|0)>>>16);h=h+1|0}}else j=0;while(0);Qd(d+4740|0,f,c[d+4688>>2]|0,n,m,c[d+4656>>2]|0,a[d+4761>>0]|0);h=e+32|0;Ee(h,f,c[o>>2]|0);i=c[o>>2]|0;if(j){ed(p,g,f,a[d+4763>>0]|0,i);Ee(e,p,c[o>>2]|0);l=q;return}else{Sh(e|0,h|0,i<<1|0)|0;l=q;return}}function Xd(d,f,g,h,i,j,k,m,n,o,p){d=d|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|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,B=0,C=0,D=0,E=0,F=0,G=0;C=l;l=l+16|0;z=C+8|0;w=C+4|0;x=C;A=f+-4|0;r=p+2|0;B=l;l=l+((1*(r<<1)|0)+15&-16)|0;q=0;while(1){if((q|0)>=(r|0))break;y=q+-2|0;u=b[f+(y<<1)>>1]|0;y=b[g+(y<<1)>>1]|0;v=u+y|0;y=u-y|0;b[A+(q<<1)>>1]=(v>>>1)+(v&1);y=(y>>1)+(y&1)|0;b[B+(q<<1)>>1]=(y|0)>32767?32767:((y|0)>-32768?y:-32768)&65535;q=q+1|0}v=d+4|0;t=e[v>>1]|e[v+2>>1]<<16;b[A>>1]=t;b[A+2>>1]=t>>>16;t=d+8|0;r=e[t>>1]|e[t+2>>1]<<16;c[B>>2]=r;q=A+(p<<1)|0;q=e[q>>1]|e[q+2>>1]<<16;b[v>>1]=q;b[v+2>>1]=q>>>16;v=B+(p<<1)|0;v=e[v>>1]|e[v+2>>1]<<16;b[t>>1]=v;b[t+2>>1]=v>>>16;t=l;l=l+((1*(p<<1)|0)+15&-16)|0;v=l;l=l+((1*(p<<1)|0)+15&-16)|0;q=0;while(1){if((q|0)>=(p|0))break;y=q+1|0;s=b[A+(y<<1)>>1]|0;u=((b[A+(q<<1)>>1]|0)+(b[A+(q+2<<1)>>1]|0)+(s<<16>>16<<1)>>1)+1>>1;b[t+(q<<1)>>1]=u;b[v+(q<<1)>>1]=(s&65535)-u;q=y}s=l;l=l+((1*(p<<1)|0)+15&-16)|0;u=l;l=l+((1*(p<<1)|0)+15&-16)|0;f=0;q=r&65535;while(1){if((f|0)>=(p|0))break;r=f+1|0;y=b[B+(r<<1)>>1]|0;D=((q<<16>>16)+(b[B+(f+2<<1)>>1]|0)+(y<<16>>16<<1)>>1)+1>>1;b[s+(f<<1)>>1]=D;b[u+(f<<1)>>1]=(y&65535)-D;f=r;q=y}r=(o*10|0)==(p|0);y=r?328:655;m=m<<16>>16;m=R(m,m)|0;m=(R(m>>>16,y)|0)+((R(m&65535,y)|0)>>>16)|0;y=df(w,t,s,d+12|0,p,m)|0;c[z>>2]=y;t=df(x,v,u,d+20|0,p,m)|0;v=z+4|0;c[v>>2]=t;s=(c[x>>2]|0)+((c[w>>2]<<16>>16)*3|0)|0;s=(s|0)<65536?s:65536;u=k-(r?1200:600)|0;u=(u|0)>1?u:1;r=((o<<16>>16)*900|0)+2e3|0;q=s*3|0;f=Yd(u,q+851968|0,19)|0;c[j>>2]=f;if((f|0)<(r|0)){c[j>>2]=r;k=u-r|0;c[j+4>>2]=k;D=r<<16>>16;q=Yd((k<<1)-r|0,(R(q+65536>>16,D)|0)+((R(q&65535,D)|0)>>16)|0,16)|0;if((q|0)>16384)q=16384;else q=(q|0)>0?q:0}else{c[j+4>>2]=u-f;q=16384}f=d+28|0;x=b[f>>1]|0;k=x&65535;D=m<<16>>16;b[f>>1]=k+((R(q-(x<<16>>16)>>16,D)|0)+((R(q-k&65535,D)|0)>>>16));a[i>>0]=0;a:do if(!n){q=u<<3;do if(!(b[d+30>>1]|0)){if((q|0)>=(r*13|0)){q=b[f>>1]|0;D=q<<16>>16;if(((R(s>>16,D)|0)+((R(s&65535,D)|0)>>16)|0)>=819){q=b[f>>1]|0;break}}else q=b[f>>1]|0;q=q<<16>>16;c[z>>2]=(R(q,y<<16>>16)|0)>>14;c[v>>2]=(R(q,t<<16>>16)|0)>>14;lf(z,h);c[z>>2]=0;c[v>>2]=0;c[j>>2]=u;c[j+4>>2]=0;a[i>>0]=1;q=0;r=30;break a}else{if((q|0)>=(r*11|0)){q=b[f>>1]|0;D=q<<16>>16;if(((R(s>>16,D)|0)+((R(s&65535,D)|0)>>16)|0)>=328)break}else q=b[f>>1]|0;q=q<<16>>16;c[z>>2]=(R(q,y<<16>>16)|0)>>14;c[v>>2]=(R(q,t<<16>>16)|0)>>14;lf(z,h);c[z>>2]=0;c[v>>2]=0;q=0;r=29;break a}while(0);if(q<<16>>16>15565){lf(z,h);q=16384;r=29;break}else{q=q<<16>>16;c[z>>2]=(R(q,y<<16>>16)|0)>>14;c[v>>2]=(R(q,t<<16>>16)|0)>>14;lf(z,h);q=b[f>>1]|0;r=29;break}}else{c[z>>2]=0;c[v>>2]=0;lf(z,h);q=0;r=29}while(0);if((r|0)==29)if((a[i>>0]|0)==1)r=30;else{b[d+32>>1]=0;r=34}do if((r|0)==30){f=d+32|0;D=(e[f>>1]|0)+(p-(o<<3))|0;b[f>>1]=D;if((D<<16>>16|0)<(o*5|0)){a[i>>0]=0;f=q;r=35;break}else{b[f>>1]=1e4;r=34;break}}while(0);if((r|0)==34)if(!(a[i>>0]|0)){f=q;r=35}if((r|0)==35){q=j+4|0;if((c[q>>2]|0)<1){c[q>>2]=1;c[j>>2]=Zd(u+-1|0)|0;q=f}else q=f}t=b[d>>1]|0;y=d+2|0;s=b[y>>1]|0;n=d+30|0;u=b[n>>1]|0;r=u<<16>>16;f=o<<3;k=c[z>>2]|0;m=(65536/(f|0)|0)<<16>>16;w=((R(k-(t&65535)<<16>>16,m)|0)>>15)+1>>1;x=c[v>>2]|0;v=((R(x-(s&65535)<<16>>16,m)|0)>>15)+1>>1;m=(R(q-r>>16,m)|0)+((R(q-(u&65535)&65535,m)|0)>>16)<<10;r=r<<10;s=0-(s<<16>>16)|0;t=0-(t<<16>>16)|0;u=0;while(1){if((u|0)>=(f|0))break;z=t-w|0;o=s-v|0;j=r+m|0;D=u+1|0;h=b[A+(D<<1)>>1]|0;F=(b[A+(u<<1)>>1]|0)+(b[A+(u+2<<1)>>1]|0)+(h<<1)|0;G=b[B+(D<<1)>>1]|0;E=z<<16>>16;i=o<<16>>16;i=((R(j>>16,G)|0)+((R(j&64512,G)|0)>>16)+((R(F>>7,E)|0)+((R(F<<9&65024,E)|0)>>16))+((R(h>>5,i)|0)+((R(h<<11&63488,i)|0)>>16))>>7)+1>>1;b[g+(u+-1<<1)>>1]=(i|0)>32767?32767:((i|0)>-32768?i:-32768)&65535;r=j;s=o;t=z;u=D}r=q>>6;s=q<<10&64512;t=0-k<<16>>16;u=0-x<<16>>16;while(1){if((f|0)>=(p|0))break;G=f+1|0;F=b[A+(G<<1)>>1]|0;E=(b[A+(f<<1)>>1]|0)+(b[A+(f+2<<1)>>1]|0)+(F<<1)|0;D=b[B+(G<<1)>>1]|0;F=((R(r,D)|0)+((R(s,D)|0)>>16)+((R(E>>7,t)|0)+((R(E<<9&65024,t)|0)>>16))+((R(F>>5,u)|0)+((R(F<<11&63488,u)|0)>>16))>>7)+1>>1;b[g+(f+-1<<1)>>1]=(F|0)>32767?32767:((F|0)>-32768?F:-32768)&65535;f=G}b[d>>1]=k;b[y>>1]=x;b[n>>1]=q;l=C;return}function Yd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=_d((a|0)>0?a:0-a|0)|0;g=a<0?b:0-b|0)|0)+-1|0;b=b<>16|0)|0)<<16>>16;f=(R(g>>16,d)|0)+((R(g&65535,d)|0)>>16)|0;b=Uh(b|0,((b|0)<0)<<31>>31|0,f|0,((f|0)<0)<<31>>31|0)|0;b=Rh(b|0,C|0,29)|0;b=g-(b&-8)|0;d=f+((R(b>>16,d)|0)+((R(b&65535,d)|0)>>16))|0;a=e+28-a-c|0;if((a|0)>=0)return ((a|0)<32?d>>a:0)|0;a=0-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){g=b;g=g<(c|0)){g=c;g=g<1?a:1)|0}function _d(a){a=a|0;return U(a|0)|0}function $d(a){a=a|0;var b=0,d=0,e=0;b=c[a+8>>2]|0;a:do if((b|0)<24e3){if((b|0)<12e3)switch(b|0){case 8e3:{d=2;break a}default:{b=-102;break a}}if((b|0)<16e3)switch(b|0){case 12e3:{d=2;break a}default:{b=-102;break a}}else switch(b|0){case 16e3:{d=2;break a}default:{b=-102;break a}}}else if((b|0)<44100)if((b|0)<32e3)switch(b|0){case 24e3:{d=2;break a}default:{b=-102;break a}}else switch(b|0){case 32e3:{d=2;break a}default:{b=-102;break a}}else if((b|0)<48e3)switch(b|0){case 44100:{d=2;break a}default:{b=-102;break a}}else switch(b|0){case 48e3:{d=2;break a}default:{b=-102;break a}}while(0);b:do if((d|0)==2){b=c[a+20>>2]|0;c:do if((b|0)>=12e3)if((b|0)<16e3)switch(b|0){case 12e3:break c;default:{b=-102;break b}}else switch(b|0){case 16e3:break c;default:{b=-102;break b}}else switch(b|0){case 8e3:break;default:{b=-102;break b}}while(0);d=c[a+12>>2]|0;d:do if((d|0)>=12e3)if((d|0)<16e3)switch(d|0){case 12e3:break d;default:{b=-102;break b}}else switch(d|0){case 16e3:break d;default:{b=-102;break b}}else switch(d|0){case 8e3:break;default:{b=-102;break b}}while(0);e=c[a+16>>2]|0;e:do if((e|0)>=12e3)if((e|0)<16e3)switch(e|0){case 12e3:break e;default:{b=-102;break b}}else switch(e|0){case 16e3:break e;default:{b=-102;break b}}else switch(e|0){case 8e3:break;default:{b=-102;break b}}while(0);if(!((e|0)>(b|0)|(d|0)<(b|0)|(e|0)>(d|0))){switch(c[a+24>>2]|0){case 60:case 40:case 20:case 10:break;default:{b=-103;break b}}if((c[a+32>>2]|0)>>>0<=100)if((c[a+48>>2]|0)>>>0<=1)if((c[a+52>>2]|0)>>>0<=1)if((c[a+40>>2]|0)>>>0<=1){b=c[a>>2]|0;if((b+-1|0)>>>0<=1?(e=c[a+4>>2]|0,!((e+-1|0)>>>0>1|(e|0)>(b|0))):0)return ((c[a+36>>2]|0)>>>0>10?-106:0)|0;else b=-111}else b=-107;else b=-109;else b=-108;else b=-105}else b=-102}while(0);return b|0}function ae(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0;e=(d|0)>8e4?8e4:(d|0)>5e3?d:5e3;d=a+4604|0;if((e|0)==(c[d>>2]|0))return;c[d>>2]=e;g=c[a+4572>>2]|0;g=(g|0)==8?19108:(g|0)==12?19140:19172;e=(c[a+4576>>2]|0)==2?e+-2200|0:e;d=1;while(1){if((d|0)>=8){h=7;break}f=c[g+(d<<2)>>2]|0;if((e|0)<=(f|0))break;d=d+1|0}if((h|0)==7)return;h=d+-1|0;g=c[g+(h<<2)>>2]|0;h=b[28128+(h<<1)>>1]|0;c[a+4712>>2]=(h<<6)+(R((e-g<<6|0)/(f-g|0)|0,(b[28128+(d<<1)>>1]|0)-h|0)|0);return}function be(a,b){a=a|0;b=b|0;Qh(a|0,0,10060)|0;c[a+5088>>2]=b;b=((ue(3932160)|0)<<8)+-524288|0;c[a+8>>2]=b;c[a+12>>2]=b;c[a+4660>>2]=1;return Cd(a+32|0)|0}function ce(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;c[a+6072>>2]=c[b+48>>2];c[a+4672>>2]=c[b+52>>2];g=c[b+8>>2]|0;c[a+4552>>2]=g;c[a+4560>>2]=c[b+12>>2];c[a+4564>>2]=c[b+16>>2];c[a+4568>>2]=c[b+20>>2];c[a+6084>>2]=c[b+40>>2];c[a+5748>>2]=c[b>>2];c[a+5752>>2]=c[b+4>>2];c[a+4532>>2]=d;c[a+5756>>2]=e;d=a+4664|0;if(c[d>>2]|0?(c[a+4676>>2]|0)==0:0){if((g|0)==(c[a+4556>>2]|0)){a=0;return a|0}d=c[a+4572>>2]|0;if((d|0)<=0){a=0;return a|0}a=de(a,d)|0;return a|0}g=Md(a,b)|0;f=(f|0)==0?g:f;g=de(a,f)|0;f=g+(ee(a,f,c[b+24>>2]|0)|0)|0;f=f+(fe(a,c[b+36>>2]|0)|0)|0;c[a+4612>>2]=c[b+32>>2];a=f+(ge(a,c[b+44>>2]|0)|0)|0;c[d>>2]=1;return a|0}function de(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,m=0,n=0,o=0;h=l;l=l+304|0;d=h;e=a+4572|0;f=c[e>>2]|0;if((f|0)==(b|0)?(g=a+4552|0,(c[a+4556>>2]|0)==(c[g>>2]|0)):0){f=0;e=g;e=c[e>>2]|0;g=a+4556|0;c[g>>2]=e;l=h;return f|0}if(!f){e=a+4552|0;g=Me(a+5772|0,c[e>>2]|0,b*1e3|0,1)|0;e=c[e>>2]|0;f=a+4556|0;c[f>>2]=e;l=h;return g|0}else{n=((c[a+4576>>2]|0)*10|0)+5|0;g=R(n,f)|0;j=R(n,b)|0;i=fa()|0;k=l;l=l+((1*(((g|0)>(j|0)?g:j)<<1)|0)+15&-16)|0;m=a+7176|0;je(k,m,g);f=a+4552|0;e=Me(d,(c[e>>2]<<16>>16)*1e3|0,c[f>>2]|0,0)|0;n=R(n,(c[f>>2]|0)/1e3|0)|0;o=l;l=l+((1*(n<<1)|0)+15&-16)|0;Ne(d,o,k,g);d=a+5772|0;g=Me(d,c[f>>2]|0,(b<<16>>16)*1e3|0,1)|0;Ne(d,k,o,n);ke(m,k,j);ha(i|0);g=e+g|0;e=f;e=c[e>>2]|0;f=a+4556|0;c[f>>2]=e;l=h;return g|0}return 0}function ee(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=b+4608|0;if((c[k>>2]|0)==(e|0)){f=b+4572|0;h=0;g=f;f=c[f>>2]|0}else{f=(e|0)==10;a:do if(!f){switch(e|0){case 60:case 40:case 20:{h=0;break}default:if((e|0)<11){h=-103;j=6;break a}else h=-103}c[b+5740>>2]=(e|0)/20|0;c[b+4576>>2]=4;g=d<<16>>16;c[b+4580>>2]=g*20;c[b+4544>>2]=g*24;g=b+4572|0;f=c[g>>2]|0;i=b+4684|0;if((f|0)==8){c[i>>2]=32570;f=8;break}else{c[i>>2]=32536;break}}else{h=0;j=6}while(0);do if((j|0)==6){c[b+5740>>2]=1;c[b+4576>>2]=f?2:1;g=d<<16>>16;c[b+4580>>2]=R(e<<16>>16,g)|0;c[b+4544>>2]=g*14;g=b+4572|0;f=c[g>>2]|0;i=b+4684|0;if((f|0)==8){c[i>>2]=32593;f=8;break}else{c[i>>2]=32581;break}}while(0);c[k>>2]=e;c[b+4604>>2]=0}if((f|0)==(d|0))return h|0;k=b+7164|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;j=b+16|0;c[j>>2]=0;c[j+4>>2]=0;c[b+5736>>2]=0;c[b+5744>>2]=0;c[b+4604>>2]=0;Qh(b+144|0,0,4384)|0;c[b+4540>>2]=100;c[b+4660>>2]=1;a[k>>0]=10;c[b+4472>>2]=100;c[b+4488>>2]=65536;a[b+4537>>0]=0;c[g>>2]=d;k=c[b+4576>>2]|0;j=(k|0)==4;c[b+4684>>2]=(d|0)==8?(j?32570:32593):j?32536:32581;j=(d|4|0)==12;c[b+4636>>2]=j?10:16;c[b+4688>>2]=j?19028:19068;c[b+4584>>2]=d*5;c[b+4580>>2]=R(d*327680>>16,k<<16>>16)|0;j=d<<16;e=j>>16;c[b+4588>>2]=e*20;c[b+4592>>2]=j>>15;c[b+4548>>2]=e*18;c[b+4544>>2]=R(e,(k|0)==4?24:14)|0;c[b+4680>>2]=(d|0)==16?32468:(d|0)==12?32462:32453;return h|0}function fe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0;do if((b|0)>=1){if((b|0)==1){c[a+4640>>2]=1;c[a+4648>>2]=49807;f=a+4644|0;c[f>>2]=8;c[a+4632>>2]=14;e=c[a+4572>>2]|0;d=e*5|0;c[a+4596>>2]=d;c[a+4624>>2]=1;c[a+4628>>2]=0;c[a+4656>>2]=3;g=0;h=8;break}if((b|0)<3){c[a+4640>>2]=0;c[a+4648>>2]=52429;f=a+4644|0;c[f>>2]=6;c[a+4632>>2]=12;e=c[a+4572>>2]|0;d=e*3|0;c[a+4596>>2]=d;c[a+4624>>2]=2;c[a+4628>>2]=0;c[a+4656>>2]=2;g=0;h=6;break}if((b|0)==3){c[a+4640>>2]=1;c[a+4648>>2]=49807;f=a+4644|0;c[f>>2]=8;c[a+4632>>2]=14;e=c[a+4572>>2]|0;d=e*5|0;c[a+4596>>2]=d;c[a+4624>>2]=2;c[a+4628>>2]=0;c[a+4656>>2]=4;g=0;h=8;break}if((b|0)<6){c[a+4640>>2]=1;c[a+4648>>2]=48497;f=a+4644|0;c[f>>2]=10;c[a+4632>>2]=16;e=c[a+4572>>2]|0;d=e*5|0;c[a+4596>>2]=d;c[a+4624>>2]=2;c[a+4628>>2]=1;c[a+4656>>2]=6;g=e*983|0;h=10;break}e=c[a+4572>>2]|0;d=a+4640|0;if((b|0)<8){c[d>>2]=1;c[a+4648>>2]=47186;f=a+4644|0;c[f>>2]=12;c[a+4632>>2]=20;d=e*5|0;c[a+4596>>2]=d;c[a+4624>>2]=3;c[a+4628>>2]=1;c[a+4656>>2]=8;g=e*983|0;h=12;break}else{c[d>>2]=2;c[a+4648>>2]=45875;f=a+4644|0;c[f>>2]=16;c[a+4632>>2]=24;d=e*5|0;c[a+4596>>2]=d;c[a+4624>>2]=4;c[a+4628>>2]=1;c[a+4656>>2]=16;g=e*983|0;h=16;break}}else{c[a+4640>>2]=0;c[a+4648>>2]=52429;f=a+4644|0;c[f>>2]=6;c[a+4632>>2]=12;e=c[a+4572>>2]|0;d=e*3|0;c[a+4596>>2]=d;c[a+4624>>2]=1;c[a+4628>>2]=0;c[a+4656>>2]=2;g=0;h=6}while(0);c[a+4668>>2]=g;c[f>>2]=ie(h,c[a+4636>>2]|0)|0;c[a+4600>>2]=(e*5|0)+(d<<1);c[a+4620>>2]=b;return 0}function ge(a,b){a=a|0;b=b|0;var d=0,e=0;e=a+6088|0;d=c[e>>2]|0;c[e>>2]=b;if(!b)return 0;if(!d)b=7;else{b=c[a+4612>>2]|0;b=he(7-(((b>>16)*26214|0)+(((b&65535)*26214|0)>>>16))|0)|0}c[a+6092>>2]=b;return 0}function he(a){a=a|0;return ((a|0)>2?a:2)|0}function ie(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}function je(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;while(1){e=d+-1|0;if((d|0)<=0)break;d=Jh(+g[c+(e<<2)>>2])|0;b[a+(e<<1)>>1]=(d|0)>32767?32767:((d|0)>-32768?d:-32768)&65535;d=e}return}function ke(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;while(1){e=d+-1|0;if((d|0)<=0)break;g[a+(e<<2)>>2]=+(b[c+(e<<1)>>1]|0);d=e}return}function le(a,d,f){a=a|0;d=d|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;z=l;l=l+112|0;u=z+60|0;v=z+8|0;w=z;c[w>>2]=u;c[w+4>>2]=v;x=f>>1;me(d,u,v,x);g=ne(u,8192,x)|0;if((g|0)<0){b[a>>1]=0;t=0;i=v;g=ne(v,8192,x)|0;h=1}else{t=0;i=u;h=0}a:while(1){j=0;k=8192;m=1;s=h;b:while(1){h=j;o=k;while(1){k=b[28190+(m<<1)>>1]|0;n=ne(i,k,x)|0;if((g|0)<1){if((n|0)>=(h|0))break;if(!((g|0)<0|(n|0)>(0-h|0)))break}else if((n|0)<=(0-h|0))break;if((m|0)>127)break b;else{h=0;o=k;m=m+1|0;g=n}}j=(n|0)==0&1;r=0;p=-256;while(1){if((r|0)==3)break;h=o+k|0;h=(h>>1)+(h&1)|0;q=ne(i,h,x)|0;if((g|0)<1)if((q|0)>-1|(g|0)==0){k=h;n=q}else y=14;else if((q|0)<1){k=h;n=q}else y=14;if((y|0)==14){y=0;p=p+(128>>>r)|0;o=h;g=q}r=r+1|0}h=g-n|0;if((((g|0)>0?g:0-g|0)|0)<65536)if(!h)g=p;else g=p+(((g<<5)+(h>>1)|0)/(h|0)|0)|0;else g=p+((g|0)/(h>>5|0)|0)|0;b[a+(s<<1)>>1]=oe((m<<8)+g|0)|0;h=s+1|0;if((h|0)>=(f|0)){y=29;break a}k=b[28190+(m+-1<<1)>>1]|0;i=c[w+((h&1)<<2)>>2]|0;g=1-(h&2)<<12;s=h}g=t+1|0;if((t|0)>15)break;se(d,f,65536-(1<=0){t=g;i=u;g=h;h=0;continue}b[a>>1]=0;t=g;i=v;g=ne(v,8192,x)|0;h=1}if((y|0)==29){l=z;return}h=32768/(f+1|0)|0;b[a>>1]=h;g=1;while(1){if((g|0)>=(f|0))break;y=(h&65535)+(e[a>>1]|0)|0;b[a+(g<<1)>>1]=y;g=g+1|0;h=y}l=z;return}function me(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;c[b+(e<<2)>>2]=65536;c[d+(e<<2)>>2]=65536;f=0;while(1){if((f|0)>=(e|0)){f=e;break}g=a+(e-f+-1<<2)|0;h=a+(f+e<<2)|0;c[b+(f<<2)>>2]=0-(c[g>>2]|0)-(c[h>>2]|0);c[d+(f<<2)>>2]=(c[h>>2]|0)-(c[g>>2]|0);f=f+1|0}while(1){if((f|0)<=0)break;h=f+-1|0;g=b+(h<<2)|0;c[g>>2]=(c[g>>2]|0)-(c[b+(f<<2)>>2]|0);g=d+(h<<2)|0;c[g>>2]=(c[g>>2]|0)+(c[d+(f<<2)>>2]|0);f=h}pe(b,e);pe(d,e);return}function ne(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;e=c[a+(d<<2)>>2]|0;f=b<<4;if((d|0)==8){d=b<<20>>16;g=(f>>15)+1>>1;f=(c[a+28>>2]|0)+((R(e>>16,d)|0)+((R(e&65535,d)|0)>>16))+(R(e,g)|0)|0;f=(c[a+24>>2]|0)+((R(f>>16,d)|0)+((R(f&65535,d)|0)>>16))+(R(f,g)|0)|0;f=(c[a+20>>2]|0)+((R(f>>16,d)|0)+((R(f&65535,d)|0)>>16))+(R(f,g)|0)|0;f=(c[a+16>>2]|0)+((R(f>>16,d)|0)+((R(f&65535,d)|0)>>16))+(R(f,g)|0)|0;f=(c[a+12>>2]|0)+((R(f>>16,d)|0)+((R(f&65535,d)|0)>>16))+(R(f,g)|0)|0;f=(c[a+8>>2]|0)+((R(f>>16,d)|0)+((R(f&65535,d)|0)>>16))+(R(f,g)|0)|0;f=(c[a+4>>2]|0)+((R(f>>16,d)|0)+((R(f&65535,d)|0)>>16))+(R(f,g)|0)|0;a=(c[a>>2]|0)+((R(f>>16,d)|0)+((R(f&65535,d)|0)>>16))+(R(f,g)|0)|0;return a|0}g=b<<20>>16;f=(f>>15)+1>>1;while(1){b=d+-1|0;if((d|0)<=0)break;e=(c[a+(b<<2)>>2]|0)+((R(e>>16,g)|0)+((R(e&65535,g)|0)>>16))+(R(e,f)|0)|0;d=b}return e|0}function oe(a){a=a|0;return ((a|0)<32767?a:32767)|0}function pe(a,b){a=a|0;b=b|0;var d=0,e=0,f=0;e=2;while(1){if((e|0)>(b|0))break;else d=b;while(1){if((d|0)<=(e|0))break;f=a+(d+-2<<2)|0;c[f>>2]=(c[f>>2]|0)-(c[a+(d<<2)>>2]|0);d=d+-1|0}f=a+(e+-2<<2)|0;c[f>>2]=(c[f>>2]|0)-(c[a+(e<<2)>>2]<<1);e=e+1|0}return}function qe(a,d,e,f,g){a=a|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;h=g>>1;i=d+4|0;g=0;while(1){if((g|0)>=(h|0))break;m=g<<1;n=b[a+(m<<1)>>1]<<10;l=n-(c[d>>2]|0)|0;k=(R(l>>16,-24290)|0)+((R(l&65535,-24290)|0)>>16)|0;j=n+k|0;c[d>>2]=n+(l+k);m=b[a+((m|1)<<1)>>1]<<10;k=c[i>>2]|0;l=m-k|0;l=((l>>16)*10788|0)+(((l&65535)*10788|0)>>>16)|0;k=k+l|0;c[i>>2]=m+l;l=(k+j>>10)+1>>1;b[e+(g<<1)>>1]=(l|0)>32767?32767:((l|0)>-32768?l:-32768)&65535;j=(k-j>>10)+1>>1;b[f+(g<<1)>>1]=(j|0)>32767?32767:((j|0)>-32768?j:-32768)&65535;g=g+1|0}return}function re(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;j=0-e|0;o=j&16383;l=0-f|0;n=l&16383;f=g+4|0;j=j>>>14<<16>>16;k=d+4|0;l=l>>>14<<16>>16;m=d+8|0;e=0;while(1){if((e|0)>=(i|0))break;p=c[d>>2]|0;q=b[a+(e<<1)>>1]|0;p=(c[g>>2]|0)+((R(p>>16,q)|0)+((R(p&65535,q)|0)>>16))<<2;r=p>>16;s=p&65532;u=(c[f>>2]|0)+(((R(r,o)|0)+((R(s,o)|0)>>>16)>>13)+1>>1)+((R(r,j)|0)+((R(s,j)|0)>>16))|0;c[g>>2]=u;t=c[k>>2]|0;c[g>>2]=u+((R(t>>16,q)|0)+((R(t&65535,q)|0)>>16));s=(((R(r,n)|0)+((R(s,n)|0)>>>16)>>13)+1>>1)+((R(r,l)|0)+((R(s,l)|0)>>16))|0;c[f>>2]=s;r=c[m>>2]|0;c[f>>2]=s+((R(r>>16,q)|0)+((R(r&65535,q)|0)>>16));p=p+16383>>14;b[h+(e<<1)>>1]=(p|0)>32767?32767:((p|0)>-32768?p:-32768)&65535;e=e+1|0}return}function se(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;g=d+-65536|0;f=b+-1|0;e=0;b=d;while(1){d=b>>16;if((e|0)>=(f|0))break;h=a+(e<<2)|0;i=c[h>>2]|0;j=i<<16>>16;c[h>>2]=(R(d,j)|0)+((R(b&65535,j)|0)>>16)+(R(b,(i>>15)+1>>1)|0);e=e+1|0;b=b+(((R(b,g)|0)>>15)+1>>1)|0}j=a+(f<<2)|0;i=c[j>>2]|0;h=i<<16>>16;c[j>>2]=(R(d,h)|0)+((R(b&65535,h)|0)>>16)+(R(b,(i>>15)+1>>1)|0);return}function te(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;f=0;g=0;while(1){if((g|0)>=(e|0))break;f=f+((R(b[a+(g<<1)>>1]|0,b[c+(g<<1)>>1]|0)|0)>>d)|0;g=g+1|0}return f|0}function ue(a){a=a|0;var b=0,d=0,e=0;e=l;l=l+16|0;b=e+4|0;d=e;ve(a,b,d);d=c[d>>2]|0;a=R(d,128-d|0)|0;l=e;return d+(((a>>16)*179|0)+(((a&65535)*179|0)>>>16))+(31-(c[b>>2]|0)<<7)|0}function ve(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=we(a)|0;c[b>>2]=e;c[d>>2]=(xe(a,24-e|0)|0)&127;return}function we(a){a=a|0;return U(a|0)|0}function xe(a,b){a=a|0;b=b|0;if(!b){b=a;return b|0}if((b|0)<0){b=a<<0-b|a>>>(b+32|0);return b|0}else{b=a<<32-b|a>>>b;return b|0}return 0}function ye(a){a=a|0;var b=0,c=0,d=0;if((a|0)<0){d=0;return d|0}if((a|0)>3966){d=2147483647;return d|0}b=a>>7;d=1<>16)<>7;else a=R(d>>7,c+((R(R(c,128-c|0)|0,-174)|0)>>16)|0)|0;d=d+a|0;return d|0}function ze(a,c,d,e,f){a=a|0;c=c|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;k=d+2|0;l=d+4|0;m=d+6|0;n=d+8|0;o=d+10|0;h=f;while(1){if((h|0)>=(e|0))break;j=c+(h+-1<<1)|0;g=R(b[j>>1]|0,b[d>>1]|0)|0;g=g+(R(b[j+-2>>1]|0,b[k>>1]|0)|0)|0;g=g+(R(b[j+-4>>1]|0,b[l>>1]|0)|0)|0;g=g+(R(b[j+-6>>1]|0,b[m>>1]|0)|0)|0;g=g+(R(b[j+-8>>1]|0,b[n>>1]|0)|0)|0;g=g+(R(b[j+-10>>1]|0,b[o>>1]|0)|0)|0;i=6;while(1){if((i|0)>=(f|0))break;p=g+(R(b[j+(0-i<<1)>>1]|0,b[d+(i<<1)>>1]|0)|0)|0;g=p+(R(b[j+(~i<<1)>>1]|0,b[d+((i|1)<<1)>>1]|0)|0)|0;i=i+2|0}p=((b[j+2>>1]<<12)-g>>11)+1>>1;b[a+(h<<1)>>1]=(p|0)>32767?32767:((p|0)>-32768?p:-32768)&65535;h=h+1|0}Qh(a|0,0,f<<1|0)|0;return}function Ae(a,d){a=a|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;h=l;l=l+96|0;g=h;e=0;f=0;while(1){if((f|0)>=(d|0))break;i=b[a+(f<<1)>>1]|0;c[g+(f<<2)>>2]=i<<12;e=e+i|0;f=f+1|0}if((e|0)>4095){i=0;l=h;return i|0}i=Be(g,d)|0;l=h;return i|0}function Be(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;g=1073741824;f=0;a:while(1){u=b+-1|0;d=c[a+(u<<2)>>2]|0;e=(d+16773022|0)>>>0>33546044;if((b|0)<=1){b=17;break}if(e){b=19;break}s=0-(d<<7)|0;t=((s|0)<0)<<31>>31;Uh(s|0,t|0,s|0,t|0)|0;d=1073741824-C|0;r=Uh(g|0,f|0,d|0,((d|0)<0)<<31>>31|0)|0;r=Rh(r|0,C|0,30)|0;r=r&-4;if((r|0)<107374){b=19;break}o=32-(Ce((d|0)>0?d:0-d|0)|0)|0;q=De(d,o+30|0)|0;l=b>>1;m=(o|0)==1;n=((q|0)<0)<<31>>31;o=o+-1|0;k=0;while(1){if((k|0)>=(l|0))break;h=a+(k<<2)|0;i=c[h>>2]|0;p=a+(u-k+-1<<2)|0;j=c[p>>2]|0;b=Uh(j|0,((j|0)<0)<<31>>31|0,s|0,t|0)|0;b=Rh(b|0,C|0,30)|0;b=Ph(b|0,C|0,1,0)|0;b=Rh(b|0,C|0,1)|0;d=i-b|0;e=(d|0)>-1;f=((e?i:i^-2147483648)&(e?b^-2147483648:b)|0)<0?d>>31^-2147483648:d;f=Uh(f|0,((f|0)<0)<<31>>31|0,q|0,n|0)|0;g=C;if(m){f=Oh(f|0,g|0,1)|0;g=C;b=((e?i:i^-2147483648)&(e?b^-2147483648:b)|0)<0?d>>31^-2147483648:d;b=Uh(b|0,((b|0)<0)<<31>>31|0,q|0,n|0)|0;b=Ph(f|0,g|0,b&1|0,0)|0;d=C}else{b=Oh(f|0,g|0,o|0)|0;b=Ph(b|0,C|0,1,0)|0;b=Oh(b|0,C|0,1)|0;d=C}g=Ph(b|0,d|0,-2147483648,0)|0;f=C;if(f>>>0>0|(f|0)==0&g>>>0>4294967295){b=19;break a}c[h>>2]=b;b=Uh(i|0,((i|0)<0)<<31>>31|0,s|0,t|0)|0;b=Rh(b|0,C|0,30)|0;b=Ph(b|0,C|0,1,0)|0;b=Rh(b|0,C|0,1)|0;d=j-b|0;e=(d|0)>-1;f=((e?j:j^-2147483648)&(e?b^-2147483648:b)|0)<0?d>>31^-2147483648:d;f=Uh(f|0,((f|0)<0)<<31>>31|0,q|0,n|0)|0;g=C;if(m){h=Oh(f|0,g|0,1)|0;i=C;b=((e?j:j^-2147483648)&(e?b^-2147483648:b)|0)<0?d>>31^-2147483648:d;b=Uh(b|0,((b|0)<0)<<31>>31|0,q|0,n|0)|0;b=Ph(h|0,i|0,b&1|0,0)|0;d=C}else{b=Oh(f|0,g|0,o|0)|0;b=Ph(b|0,C|0,1,0)|0;b=Oh(b|0,C|0,1)|0;d=C}j=Ph(b|0,d|0,-2147483648,0)|0;i=C;if(i>>>0>0|(i|0)==0&j>>>0>4294967295){b=19;break a}c[p>>2]=b;k=k+1|0}b=u;g=r;f=((r|0)<0)<<31>>31}if((b|0)==17)if(e)return 0;else{u=0-(c[a>>2]<<7)|0;a=((u|0)<0)<<31>>31;Uh(u|0,a|0,u|0,a|0)|0;a=1073741824-C|0;a=Uh(g|0,f|0,a|0,((a|0)<0)<<31>>31|0)|0;a=Rh(a|0,C|0,30)|0;a=a&-4;return ((a|0)<107374?0:a)|0}else if((b|0)==19)return 0;return 0}function Ce(a){a=a|0;return U(a|0)|0}function De(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;c=Ce((a|0)>0?a:0-a|0)|0;a=a<>16;d=536870911/(g|0)|0;f=d<<16;e=f>>16;a=536870912-((R(g,e)|0)+((R(a&65535,e)|0)>>16))<<3;d=f+((R(a>>16,e)|0)+((R(a&65528,e)|0)>>16))+(R(a,(d>>15)+1>>1)|0)|0;a=62-c-b|0;if((a|0)>=1)return ((a|0)<32?d>>a:0)|0;a=0-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){g=b;g=g<(c|0)){g=c;g=g<=(f|0))break;p=b[e+(g<<1)>>1]|0;o=p>>8;q=b[28190+(o<<1)>>1]|0;o=((q<<8)+(R((b[28190+(o+1<<1)>>1]|0)-q|0,p-(o<<8)|0)|0)>>3)+1>>1;c[i+(d[h+g>>0]<<2)>>2]=o;g=g+1|0}e=f>>1;Fe(j,i,e);Fe(k,i+4|0,e);g=0;while(1){if((g|0)>=(e|0))break;q=g+1|0;p=(c[j+(q<<2)>>2]|0)+(c[j+(g<<2)>>2]|0)|0;o=(c[k+(q<<2)>>2]|0)-(c[k+(g<<2)>>2]|0)|0;c[m+(g<<2)>>2]=0-o-p;c[m+(f-g+-1<<2)>>2]=o-p;g=q}mf(a,m,f);g=0;while(1){if(!((Ae(a,f)|0)==0&(g|0)<16))break;se(m,f,65536-(2<=(f|0))break;b[a+(e<<1)>>1]=(((c[m+(e<<2)>>2]|0)>>>4)+1|0)>>>1;e=e+1|0}g=g+1|0}l=n;return}function Fe(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c[a>>2]=65536;j=a+4|0;f=1;e=0-(c[b>>2]|0)|0;while(1){c[j>>2]=e;if((f|0)>=(d|0))break;i=c[b+(f<<1<<2)>>2]|0;k=c[a+(f+-1<<2)>>2]|0;g=((i|0)<0)<<31>>31;e=c[a+(f<<2)>>2]|0;e=Uh(i|0,g|0,e|0,((e|0)<0)<<31>>31|0)|0;e=Rh(e|0,C|0,15)|0;e=Ph(e|0,C|0,1,0)|0;e=Rh(e|0,C|0,1)|0;h=f+1|0;c[a+(h<<2)>>2]=(k<<1)-e;e=f;f=k;while(1){if((e|0)<=1)break;k=c[a+(e+-2<<2)>>2]|0;m=Uh(i|0,g|0,f|0,((f|0)<0)<<31>>31|0)|0;m=Rh(m|0,C|0,15)|0;m=Ph(m|0,C|0,1,0)|0;m=Rh(m|0,C|0,1)|0;l=a+(e<<2)|0;c[l>>2]=(c[l>>2]|0)+(k-m);e=e+-1|0;f=k}f=h;e=(c[j>>2]|0)-i|0}return}function Ge(a,c,d){a=a|0;c=c|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;p=a+(d+-1<<1)|0;q=c+(d<<1)|0;n=0;while(1){if((n|0)>=20)break;h=b[a>>1]|0;j=b[c>>1]|0;i=(h<<16>>16)-(j<<16>>16)|0;f=1;g=0;while(1){if((f|0)>=(d|0))break;m=b[a+(f<<1)>>1]|0;k=(m<<16>>16)-((h<<16>>16)+(b[c+(f<<1)>>1]|0))|0;r=(k|0)<(i|0);l=r?f:g;i=r?k:i;f=f+1|0;g=l;h=m}r=32768-((b[p>>1]|0)+(b[q>>1]|0))|0;m=(r|0)<(i|0);k=m?d:g;if(((m?r:i)|0)>-1){o=30;break}do if(!k)b[a>>1]=j;else{if((k|0)==(d|0)){b[p>>1]=32768-(e[q>>1]|0);break}else{h=0;f=0}while(1){if((f|0)>=(k|0))break;h=h+(b[c+(f<<1)>>1]|0)|0;f=f+1|0}l=c+(k<<1)|0;m=b[l>>1]|0;i=m>>1;g=32768;f=d;while(1){if((f|0)<=(k|0))break;g=g-(b[c+(f<<1)>>1]|0)|0;f=f+-1|0}f=h+i|0;h=g-i|0;j=a+(k+-1<<1)|0;r=b[j>>1]|0;i=a+(k<<1)|0;g=b[i>>1]|0;g=((r<<16>>16)+(g<<16>>16)>>1)+((r&65535)+(g&65535)&1)|0;if((f|0)>(h|0)){if((g|0)<=(f|0))f=(g|0)<(h|0)?h:g}else if((g|0)>(h|0))f=h;else f=(g|0)<(f|0)?f:g;r=f-(m>>>1)|0;b[j>>1]=r;b[i>>1]=r+(e[l>>1]|0)}while(0);n=n+1|0}if((o|0)==30)return;if((n|0)!=20)return;Ze(a,d);g=He(b[a>>1]|0,b[c>>1]|0)|0;b[a>>1]=g;f=1;while(1){if((f|0)>=(d|0))break;o=a+(f<<1)|0;r=(g<<16>>16)+(b[c+(f<<1)>>1]|0)|0;r=He(b[o>>1]|0,(r|0)>32767?32767:((r|0)>-32768?r:-32768)<<16>>16)|0;b[o>>1]=r;f=f+1|0;g=r}g=Ie(b[p>>1]|0,32768-(b[q>>1]|0)|0)|0;b[p>>1]=g;f=d+-2|0;while(1){if((f|0)<=-1)break;q=a+(f<<1)|0;r=Ie(b[q>>1]|0,(g<<16>>16)-(b[c+(f+1<<1)>>1]|0)|0)|0;b[q>>1]=r;f=f+-1|0;g=r}return}function He(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function Ie(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}function Je(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=b[c>>1]|0;f=131072/(Ke(e)|0)|0;e=131072/(Ke((b[c+2>>1]|0)-e|0)|0)|0;b[a>>1]=Le(f+e|0)|0;f=d+-1|0;d=e;e=1;while(1){if((e|0)>=(f|0))break;i=e+1|0;h=c+(i<<1)|0;j=131072/(Ke((b[h>>1]|0)-(b[c+(e<<1)>>1]|0)|0)|0)|0;b[a+(e<<1)>>1]=Le(j+d|0)|0;g=e+2|0;h=131072/(Ke((b[c+(g<<1)>>1]|0)-(b[h>>1]|0)|0)|0)|0;b[a+(i<<1)>>1]=Le(j+h|0)|0;d=h;e=g}b[a+(f<<1)>>1]=Le((131072/(Ke(32768-(b[c+(f<<1)>>1]|0)|0)|0)|0)+d|0)|0;return}function Ke(a){a=a|0;return ((a|0)>1?a:1)|0}function Le(a){a=a|0;return ((a|0)<32767?a:32767)|0}function Me(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0;Qh(b|0,0,300)|0;if(!f){a:do if((d|0)>=12e3)if((d|0)<16e3){switch(d|0){case 12e3:break a;default:f=-1}return f|0}else{switch(d|0){case 16e3:break a;default:f=-1}return f|0}else{switch(d|0){case 8e3:break a;default:f=-1}return f|0}while(0);b:do if((e|0)<16e3)if((e|0)<12e3){switch(e|0){case 8e3:break b;default:f=-1}return f|0}else{switch(e|0){case 12e3:break b;default:f=-1}return f|0}else{if((e|0)<24e3){switch(e|0){case 16e3:break b;default:f=-1}return f|0}if((e|0)<48e3){switch(e|0){case 24e3:break b;default:f=-1}return f|0}else{switch(e|0){case 48e3:break b;default:f=-1}return f|0}}while(0);f=((e>>12)-((e|0)>16e3&1)>>((e|0)>24e3&1))+-1+(33923+((((d>>12)-((d|0)>16e3&1)>>((d|0)>24e3&1))+-1|0)*5|0))|0}else{c:do if((d|0)<16e3)if((d|0)<12e3){switch(d|0){case 8e3:break c;default:f=-1}return f|0}else{switch(d|0){case 12e3:break c;default:f=-1}return f|0}else{if((d|0)<24e3){switch(d|0){case 16e3:break c;default:f=-1}return f|0}if((d|0)<48e3){switch(d|0){case 24e3:break c;default:f=-1}return f|0}else{switch(d|0){case 48e3:break c;default:f=-1}return f|0}}while(0);d:do if((e|0)>=12e3)if((e|0)<16e3){switch(e|0){case 12e3:break d;default:f=-1}return f|0}else{switch(e|0){case 16e3:break d;default:f=-1}return f|0}else{switch(e|0){case 8e3:break d;default:f=-1}return f|0}while(0);f=((e>>12)-((e|0)>16e3&1)>>((e|0)>24e3&1))+-1+(33908+((((d>>12)-((d|0)>16e3&1)>>((d|0)>24e3&1))+-1|0)*3|0))|0}c[b+292>>2]=a[f>>0];i=(d|0)/1e3|0;c[b+284>>2]=i;c[b+288>>2]=(e|0)/1e3|0;c[b+268>>2]=i*10;do if((e|0)>(d|0)){f=b+264|0;if((d<<1|0)==(e|0)){c[f>>2]=1;f=0;break}else{c[f>>2]=2;f=1;break}}else{f=b+264|0;if((e|0)>=(d|0)){c[f>>2]=0;f=0;break}c[f>>2]=3;f=e<<2;if((f|0)==(d*3|0)){c[b+280>>2]=3;c[b+276>>2]=18;c[b+296>>2]=28448;f=0;break}g=e*3|0;if((g|0)==(d<<1|0)){c[b+280>>2]=2;c[b+276>>2]=18;c[b+296>>2]=28506;f=0;break}if((e<<1|0)==(d|0)){c[b+280>>2]=1;c[b+276>>2]=24;c[b+296>>2]=28546;f=0;break}if((g|0)==(d|0)){c[b+280>>2]=1;c[b+276>>2]=36;c[b+296>>2]=28574;f=0;break}if((f|0)==(d|0)){c[b+280>>2]=1;c[b+276>>2]=36;c[b+296>>2]=28614;f=0;break}if((e*6|0)==(d|0)){c[b+280>>2]=1;c[b+276>>2]=36;c[b+296>>2]=28654;f=0;break}else{d=-1;return d|0}}while(0);g=((d<<(f|14)|0)/(e|0)|0)<<2;h=b+272|0;c[h>>2]=g;i=e<<16>>16;b=(e>>15)+1>>1;f=d<>16,i)|0)+((R(g&65535,i)|0)>>16)+(R(g,b)|0)|0)>=(f|0)){f=0;break}d=g+1|0;c[h>>2]=d;g=d}return f|0}function Ne(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=a+284|0;h=a+292|0;i=c[h>>2]|0;g=(c[f>>2]|0)-i|0;Sh(a+168+(i<<1)|0,d|0,g<<1|0)|0;switch(c[a+264>>2]|0){case 1:{i=a+168|0;We(a,b,i,c[f>>2]|0);We(a,b+(c[a+288>>2]<<1)|0,d+(g<<1)|0,e-(c[f>>2]|0)|0);a=i;break}case 2:{i=a+168|0;Te(a,b,i,c[f>>2]|0);Te(a,b+(c[a+288>>2]<<1)|0,d+(g<<1)|0,e-(c[f>>2]|0)|0);a=i;break}case 3:{i=a+168|0;Re(a,b,i,c[f>>2]|0);Re(a,b+(c[a+288>>2]<<1)|0,d+(g<<1)|0,e-(c[f>>2]|0)|0);a=i;break}default:{i=a+168|0;Sh(b|0,i|0,c[f>>2]<<1|0)|0;Sh(b+(c[a+288>>2]<<1)|0,d+(g<<1)|0,e-(c[f>>2]|0)<<1|0)|0;a=i}}i=c[h>>2]|0;Sh(a|0,d+(e-i<<1)|0,i<<1|0)|0;return}function Oe(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;n=l;l=l+1936|0;j=n;c[j>>2]=c[a>>2];c[j+4>>2]=c[a+4>>2];c[j+8>>2]=c[a+8>>2];c[j+12>>2]=c[a+12>>2];k=a+16|0;m=j+16|0;while(1){i=(f|0)<480?f:480;Qe(k,m,e,28694,i);g=j;h=i;while(1){if((h|0)<=2)break;u=c[g>>2]|0;s=g+4|0;t=c[s>>2]|0;r=g+8|0;p=c[r>>2]|0;o=g+12|0;q=c[o>>2]|0;q=(((u>>16)*4697|0)+(((u&65535)*4697|0)>>>16)+(((t>>16)*10739|0)+(((t&65535)*10739|0)>>>16))+(((p>>16)*8276|0)+(((p&65535)*8276|0)>>>16))+(((q>>16)*1567|0)+(((q&65535)*1567|0)>>>16))>>5)+1>>1;b[d>>1]=(q|0)>32767?32767:((q|0)>-32768?q:-32768)&65535;s=c[s>>2]|0;r=c[r>>2]|0;q=c[o>>2]|0;p=c[g+16>>2]|0;p=(((s>>16)*1567|0)+(((s&65535)*1567|0)>>>16)+(((r>>16)*8276|0)+(((r&65535)*8276|0)>>>16))+(((q>>16)*10739|0)+(((q&65535)*10739|0)>>>16))+(((p>>16)*4697|0)+(((p&65535)*4697|0)>>>16))>>5)+1>>1;b[d+2>>1]=(p|0)>32767?32767:((p|0)>-32768?p:-32768)&65535;g=o;h=h+-3|0;d=d+4|0}f=f-i|0;if((f|0)<=0)break;u=j+(i<<2)|0;c[j>>2]=c[u>>2];c[j+4>>2]=c[u+4>>2];c[j+8>>2]=c[u+8>>2];c[j+12>>2]=c[u+12>>2];e=e+(i<<1)|0}u=j+(i<<2)|0;c[a>>2]=c[u>>2];c[a+4>>2]=c[u+4>>2];c[a+8>>2]=c[u+8>>2];c[a+12>>2]=c[u+12>>2];l=n;return}function Pe(a,d,e,f){a=a|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;g=f>>1;h=a+4|0;f=0;while(1){if((f|0)>=(g|0))break;m=f<<1;l=b[e+(m<<1)>>1]<<10;j=l-(c[a>>2]|0)|0;k=(R(j>>16,-25727)|0)+((R(j&65535,-25727)|0)>>16)|0;c[a>>2]=l+(j+k);m=b[e+((m|1)<<1)>>1]<<10;j=c[h>>2]|0;i=m-j|0;i=((i>>16)*9872|0)+(((i&65535)*9872|0)>>>16)|0;c[h>>2]=m+i;i=(l+k+j+i>>10)+1>>1;b[d+(f<<1)>>1]=(i|0)>32767?32767:((i|0)>-32768?i:-32768)&65535;f=f+1|0}return}function Qe(a,d,e,f,g){a=a|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;i=a+4|0;j=f+2|0;h=0;while(1){if((h|0)>=(g|0))break;l=(c[a>>2]|0)+(b[e+(h<<1)>>1]<<8)|0;c[d+(h<<2)>>2]=l;l=l<<2;m=l>>16;k=b[f>>1]|0;l=l&65532;c[a>>2]=(c[i>>2]|0)+((R(m,k)|0)+((R(l,k)|0)>>16));k=b[j>>1]|0;c[i>>2]=(R(m,k)|0)+((R(l,k)|0)>>16);h=h+1|0}return}function Re(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,m=0,n=0,o=0,p=0,q=0,r=0;q=l;n=a+268|0;r=c[n>>2]|0;o=a+276|0;f=c[o>>2]|0;p=l;l=l+((1*(r+f<<2)|0)+15&-16)|0;h=a+24|0;Sh(p|0,h|0,f<<2|0)|0;i=a+296|0;j=(c[i>>2]|0)+4|0;k=c[a+272>>2]|0;m=a+280|0;g=d;d=r;while(1){d=(e|0)<(d|0)?e:d;Qe(a,p+(f<<2)|0,g,c[i>>2]|0,d);b=Se(b,p,j,c[o>>2]|0,c[m>>2]|0,d<<16,k)|0;e=e-d|0;if((e|0)<=1)break;f=c[o>>2]|0;Sh(p|0,p+(d<<2)|0,f<<2|0)|0;g=g+(d<<1)|0;d=c[n>>2]|0}Sh(h|0,p+(d<<2)|0,c[o>>2]<<2|0)|0;l=q;return}function Se(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,y=0,z=0,A=0,B=0,C=0;switch(f|0){case 18:{j=g<<16>>16;g=g+-1|0;f=0;while(1){if((f|0)>=(h|0))break;x=d+(f>>16<<2)|0;y=(R(f&65535,j)|0)>>16;w=e+(y*9<<1)|0;v=c[x>>2]|0;t=b[w>>1]|0;t=(R(v>>16,t)|0)+((R(v&65535,t)|0)>>16)|0;v=c[x+4>>2]|0;u=b[w+2>>1]|0;u=t+((R(v>>16,u)|0)+((R(v&65535,u)|0)>>16))|0;v=c[x+8>>2]|0;t=b[w+4>>1]|0;t=u+((R(v>>16,t)|0)+((R(v&65535,t)|0)>>16))|0;v=c[x+12>>2]|0;u=b[w+6>>1]|0;u=t+((R(v>>16,u)|0)+((R(v&65535,u)|0)>>16))|0;v=c[x+16>>2]|0;t=b[w+8>>1]|0;t=u+((R(v>>16,t)|0)+((R(v&65535,t)|0)>>16))|0;v=c[x+20>>2]|0;u=b[w+10>>1]|0;u=t+((R(v>>16,u)|0)+((R(v&65535,u)|0)>>16))|0;v=c[x+24>>2]|0;t=b[w+12>>1]|0;t=u+((R(v>>16,t)|0)+((R(v&65535,t)|0)>>16))|0;v=c[x+28>>2]|0;u=b[w+14>>1]|0;u=t+((R(v>>16,u)|0)+((R(v&65535,u)|0)>>16))|0;v=c[x+32>>2]|0;w=b[w+16>>1]|0;w=u+((R(v>>16,w)|0)+((R(v&65535,w)|0)>>16))|0;y=e+((g-y|0)*9<<1)|0;v=c[x+68>>2]|0;u=b[y>>1]|0;u=w+((R(v>>16,u)|0)+((R(v&65535,u)|0)>>16))|0;v=c[x+64>>2]|0;w=b[y+2>>1]|0;w=u+((R(v>>16,w)|0)+((R(v&65535,w)|0)>>16))|0;v=c[x+60>>2]|0;u=b[y+4>>1]|0;u=w+((R(v>>16,u)|0)+((R(v&65535,u)|0)>>16))|0;v=c[x+56>>2]|0;w=b[y+6>>1]|0;w=u+((R(v>>16,w)|0)+((R(v&65535,w)|0)>>16))|0;v=c[x+52>>2]|0;u=b[y+8>>1]|0;u=w+((R(v>>16,u)|0)+((R(v&65535,u)|0)>>16))|0;v=c[x+48>>2]|0;w=b[y+10>>1]|0;w=u+((R(v>>16,w)|0)+((R(v&65535,w)|0)>>16))|0;v=c[x+44>>2]|0;u=b[y+12>>1]|0;u=w+((R(v>>16,u)|0)+((R(v&65535,u)|0)>>16))|0;v=c[x+40>>2]|0;w=b[y+14>>1]|0;w=u+((R(v>>16,w)|0)+((R(v&65535,w)|0)>>16))|0;x=c[x+36>>2]|0;y=b[y+16>>1]|0;y=(w+((R(x>>16,y)|0)+((R(x&65535,y)|0)>>16))>>5)+1>>1;b[a>>1]=(y|0)>32767?32767:((y|0)>-32768?y:-32768)&65535;a=a+2|0;f=f+i|0}return a|0}case 24:{g=e+2|0;j=e+4|0;k=e+6|0;l=e+8|0;m=e+10|0;n=e+12|0;o=e+14|0;p=e+16|0;q=e+18|0;r=e+20|0;s=e+22|0;f=0;while(1){if((f|0)>=(h|0))break;x=d+(f>>16<<2)|0;y=(c[x>>2]|0)+(c[x+92>>2]|0)|0;w=b[e>>1]|0;w=(R(y>>16,w)|0)+((R(y&65535,w)|0)>>16)|0;y=(c[x+4>>2]|0)+(c[x+88>>2]|0)|0;v=b[g>>1]|0;v=w+((R(y>>16,v)|0)+((R(y&65535,v)|0)>>16))|0;y=(c[x+8>>2]|0)+(c[x+84>>2]|0)|0;w=b[j>>1]|0;w=v+((R(y>>16,w)|0)+((R(y&65535,w)|0)>>16))|0;y=(c[x+12>>2]|0)+(c[x+80>>2]|0)|0;v=b[k>>1]|0;v=w+((R(y>>16,v)|0)+((R(y&65535,v)|0)>>16))|0;y=(c[x+16>>2]|0)+(c[x+76>>2]|0)|0;w=b[l>>1]|0;w=v+((R(y>>16,w)|0)+((R(y&65535,w)|0)>>16))|0;y=(c[x+20>>2]|0)+(c[x+72>>2]|0)|0;v=b[m>>1]|0;v=w+((R(y>>16,v)|0)+((R(y&65535,v)|0)>>16))|0;y=(c[x+24>>2]|0)+(c[x+68>>2]|0)|0;w=b[n>>1]|0;w=v+((R(y>>16,w)|0)+((R(y&65535,w)|0)>>16))|0;y=(c[x+28>>2]|0)+(c[x+64>>2]|0)|0;v=b[o>>1]|0;v=w+((R(y>>16,v)|0)+((R(y&65535,v)|0)>>16))|0;y=(c[x+32>>2]|0)+(c[x+60>>2]|0)|0;w=b[p>>1]|0;w=v+((R(y>>16,w)|0)+((R(y&65535,w)|0)>>16))|0;y=(c[x+36>>2]|0)+(c[x+56>>2]|0)|0;v=b[q>>1]|0;v=w+((R(y>>16,v)|0)+((R(y&65535,v)|0)>>16))|0;y=(c[x+40>>2]|0)+(c[x+52>>2]|0)|0;w=b[r>>1]|0;w=v+((R(y>>16,w)|0)+((R(y&65535,w)|0)>>16))|0;x=(c[x+44>>2]|0)+(c[x+48>>2]|0)|0;y=b[s>>1]|0;y=(w+((R(x>>16,y)|0)+((R(x&65535,y)|0)>>16))>>5)+1>>1;b[a>>1]=(y|0)>32767?32767:((y|0)>-32768?y:-32768)&65535;a=a+2|0;f=f+i|0}return a|0}case 36:{w=e+2|0;x=e+4|0;y=e+6|0;g=e+8|0;j=e+10|0;k=e+12|0;l=e+14|0;m=e+16|0;n=e+18|0;o=e+20|0;p=e+22|0;q=e+24|0;r=e+26|0;s=e+28|0;t=e+30|0;u=e+32|0;v=e+34|0;f=0;while(1){if((f|0)>=(h|0))break;A=d+(f>>16<<2)|0;z=(c[A>>2]|0)+(c[A+140>>2]|0)|0;B=b[e>>1]|0;B=(R(z>>16,B)|0)+((R(z&65535,B)|0)>>16)|0;z=(c[A+4>>2]|0)+(c[A+136>>2]|0)|0;C=b[w>>1]|0;C=B+((R(z>>16,C)|0)+((R(z&65535,C)|0)>>16))|0;z=(c[A+8>>2]|0)+(c[A+132>>2]|0)|0;B=b[x>>1]|0;B=C+((R(z>>16,B)|0)+((R(z&65535,B)|0)>>16))|0;z=(c[A+12>>2]|0)+(c[A+128>>2]|0)|0;C=b[y>>1]|0;C=B+((R(z>>16,C)|0)+((R(z&65535,C)|0)>>16))|0;z=(c[A+16>>2]|0)+(c[A+124>>2]|0)|0;B=b[g>>1]|0;B=C+((R(z>>16,B)|0)+((R(z&65535,B)|0)>>16))|0;z=(c[A+20>>2]|0)+(c[A+120>>2]|0)|0;C=b[j>>1]|0;C=B+((R(z>>16,C)|0)+((R(z&65535,C)|0)>>16))|0;z=(c[A+24>>2]|0)+(c[A+116>>2]|0)|0;B=b[k>>1]|0;B=C+((R(z>>16,B)|0)+((R(z&65535,B)|0)>>16))|0;z=(c[A+28>>2]|0)+(c[A+112>>2]|0)|0;C=b[l>>1]|0;C=B+((R(z>>16,C)|0)+((R(z&65535,C)|0)>>16))|0;z=(c[A+32>>2]|0)+(c[A+108>>2]|0)|0;B=b[m>>1]|0;B=C+((R(z>>16,B)|0)+((R(z&65535,B)|0)>>16))|0;z=(c[A+36>>2]|0)+(c[A+104>>2]|0)|0;C=b[n>>1]|0;C=B+((R(z>>16,C)|0)+((R(z&65535,C)|0)>>16))|0;z=(c[A+40>>2]|0)+(c[A+100>>2]|0)|0;B=b[o>>1]|0;B=C+((R(z>>16,B)|0)+((R(z&65535,B)|0)>>16))|0;z=(c[A+44>>2]|0)+(c[A+96>>2]|0)|0;C=b[p>>1]|0;C=B+((R(z>>16,C)|0)+((R(z&65535,C)|0)>>16))|0;z=(c[A+48>>2]|0)+(c[A+92>>2]|0)|0;B=b[q>>1]|0;B=C+((R(z>>16,B)|0)+((R(z&65535,B)|0)>>16))|0;z=(c[A+52>>2]|0)+(c[A+88>>2]|0)|0;C=b[r>>1]|0;C=B+((R(z>>16,C)|0)+((R(z&65535,C)|0)>>16))|0;z=(c[A+56>>2]|0)+(c[A+84>>2]|0)|0;B=b[s>>1]|0;B=C+((R(z>>16,B)|0)+((R(z&65535,B)|0)>>16))|0;z=(c[A+60>>2]|0)+(c[A+80>>2]|0)|0;C=b[t>>1]|0;C=B+((R(z>>16,C)|0)+((R(z&65535,C)|0)>>16))|0;z=(c[A+64>>2]|0)+(c[A+76>>2]|0)|0;B=b[u>>1]|0;B=C+((R(z>>16,B)|0)+((R(z&65535,B)|0)>>16))|0;A=(c[A+68>>2]|0)+(c[A+72>>2]|0)|0;z=b[v>>1]|0;z=(B+((R(A>>16,z)|0)+((R(A&65535,z)|0)>>16))>>5)+1>>1;b[a>>1]=(z|0)>32767?32767:((z|0)>-32768?z:-32768)&65535;a=a+2|0;f=f+i|0}return a|0}default:{C=a;return C|0}}return 0}function Te(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0;n=l;j=a+268|0;o=c[j>>2]|0;k=l;l=l+((1*((o<<1)+8<<1)|0)+15&-16)|0;m=a+24|0;b[k>>1]=b[m>>1]|0;b[k+2>>1]=b[m+2>>1]|0;b[k+4>>1]=b[m+4>>1]|0;b[k+6>>1]=b[m+6>>1]|0;b[k+8>>1]=b[m+8>>1]|0;b[k+10>>1]=b[m+10>>1]|0;b[k+12>>1]=b[m+12>>1]|0;b[k+14>>1]=b[m+14>>1]|0;h=c[a+272>>2]|0;i=k+16|0;g=e;e=o;while(1){e=(f|0)<(e|0)?f:e;Ve(a,i,g,e);d=Ue(d,k,e<<17,h)|0;f=f-e|0;if((f|0)<=0)break;o=k+(e<<1<<1)|0;b[k>>1]=b[o>>1]|0;b[k+2>>1]=b[o+2>>1]|0;b[k+4>>1]=b[o+4>>1]|0;b[k+6>>1]=b[o+6>>1]|0;b[k+8>>1]=b[o+8>>1]|0;b[k+10>>1]=b[o+10>>1]|0;b[k+12>>1]=b[o+12>>1]|0;b[k+14>>1]=b[o+14>>1]|0;g=g+(e<<1)|0;e=c[j>>2]|0}o=k+(e<<1<<1)|0;b[m>>1]=b[o>>1]|0;b[m+2>>1]=b[o+2>>1]|0;b[m+4>>1]=b[o+4>>1]|0;b[m+6>>1]=b[o+6>>1]|0;b[m+8>>1]=b[o+8>>1]|0;b[m+10>>1]=b[o+10>>1]|0;b[m+12>>1]=b[o+12>>1]|0;b[m+14>>1]=b[o+14>>1]|0;l=n;return}function Ue(a,c,d,e){a=a|0;c=c|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;g=((f&65535)*12|0)>>>16;h=c+(f>>16<<1)|0;i=R(b[h>>1]|0,b[28706+(g<<3)>>1]|0)|0;i=i+(R(b[h+2>>1]|0,b[28706+(g<<3)+2>>1]|0)|0)|0;i=i+(R(b[h+4>>1]|0,b[28706+(g<<3)+4>>1]|0)|0)|0;i=i+(R(b[h+6>>1]|0,b[28706+(g<<3)+6>>1]|0)|0)|0;g=11-g|0;i=i+(R(b[h+8>>1]|0,b[28706+(g<<3)+6>>1]|0)|0)|0;i=i+(R(b[h+10>>1]|0,b[28706+(g<<3)+4>>1]|0)|0)|0;i=i+(R(b[h+12>>1]|0,b[28706+(g<<3)+2>>1]|0)|0)|0;g=(i+(R(b[h+14>>1]|0,b[28706+(g<<3)>>1]|0)|0)>>14)+1>>1;b[a>>1]=(g|0)>32767?32767:((g|0)>-32768?g:-32768)&65535;a=a+2|0;f=f+e|0}return a|0}function Ve(a,d,e,f){a=a|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;h=a+4|0;i=a+8|0;j=a+12|0;k=a+16|0;l=a+20|0;g=0;while(1){if((g|0)>=(f|0))break;p=b[e+(g<<1)>>1]<<10;n=c[a>>2]|0;m=p-n|0;m=((m>>16)*1746|0)+(((m&65535)*1746|0)>>>16)|0;n=n+m|0;c[a>>2]=p+m;m=c[h>>2]|0;o=n-m|0;o=((o>>16)*14986|0)+(((o&65535)*14986|0)>>>16)|0;m=m+o|0;c[h>>2]=n+o;o=m-(c[i>>2]|0)|0;n=(R(o>>16,-26453)|0)+((R(o&65535,-26453)|0)>>16)|0;c[i>>2]=m+(o+n);n=(m+n>>9)+1>>1;m=g<<1;b[d+(m<<1)>>1]=(n|0)>32767?32767:((n|0)>-32768?n:-32768)&65535;n=c[j>>2]|0;o=p-n|0;o=((o>>16)*6854|0)+(((o&65535)*6854|0)>>>16)|0;n=n+o|0;c[j>>2]=p+o;o=c[k>>2]|0;p=n-o|0;p=((p>>16)*25769|0)+(((p&65535)*25769|0)>>>16)|0;o=o+p|0;c[k>>2]=n+p;p=o-(c[l>>2]|0)|0;n=(R(p>>16,-9994)|0)+((R(p&65535,-9994)|0)>>16)|0;c[l>>2]=o+(p+n);n=(o+n>>9)+1>>1;b[d+((m|1)<<1)>>1]=(n|0)>32767?32767:((n|0)>-32768?n:-32768)&65535;g=g+1|0}return}function We(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ve(a,b,c,d);return}function Xe(a){a=a|0;var b=0;if((a|0)<0){b=0-a|0;if((a|0)<-191){b=0;return b|0}a=b>>5;b=(c[19328+(a<<2)>>2]|0)-(R(c[19352+(a<<2)>>2]<<16>>16,b&31)|0)|0;return b|0}else{if((a|0)>191){b=32767;return b|0}b=a>>5;b=(c[19376+(b<<2)>>2]|0)+(R(c[19352+(b<<2)>>2]<<16>>16,a&31)|0)|0;return b|0}return 0}function Ye(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;f=0;while(1){if((f|0)>=(e|0)){h=1;break}c[b+(f<<2)>>2]=f;f=f+1|0}while(1){if((h|0)>=(e|0))break;i=c[a+(h<<2)>>2]|0;g=h;while(1){f=g+-1|0;if((g|0)<=0)break;j=c[a+(f<<2)>>2]|0;if((i|0)>=(j|0))break;c[a+(g<<2)>>2]=j;c[b+(g<<2)>>2]=c[b+(f<<2)>>2];g=f}c[a+(g<<2)>>2]=i;c[b+(g<<2)>>2]=h;h=h+1|0}k=a+(e+-1<<2)|0;j=e+-2|0;g=e;while(1){if((g|0)>=(d|0))break;h=c[a+(g<<2)>>2]|0;if((h|0)<(c[k>>2]|0)){f=j;while(1){if((f|0)<=-1)break;i=c[a+(f<<2)>>2]|0;if((h|0)>=(i|0))break;e=f+1|0;c[a+(e<<2)>>2]=i;c[b+(e<<2)>>2]=c[b+(f<<2)>>2];f=f+-1|0}e=f+1|0;c[a+(e<<2)>>2]=h;c[b+(e<<2)>>2]=g}g=g+1|0}return}function Ze(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0,h=0;f=1;while(1){if((f|0)>=(c|0))break;g=b[a+(f<<1)>>1]|0;e=f;while(1){d=e+-1|0;if((e|0)<=0)break;h=b[a+(d<<1)>>1]|0;if(g<<16>>16>=h<<16>>16)break;b[a+(e<<1)>>1]=h;e=d}b[a+(e<<1)>>1]=g;f=f+1|0}return}function _e(a,d,e,f){a=a|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;j=31-($e(f)|0)|0;k=f+-1|0;i=((k|0)>0?k:0)+1&-2;g=f;h=0;while(1){if((h|0)>=(k|0))break;m=b[e+(h<<1)>>1]|0;m=R(m,m)|0;l=b[e+((h|1)<<1)>>1]|0;g=g+((m+(R(l,l)|0)|0)>>>j)|0;h=h+2|0}if((i|0)<(f|0)){m=b[e+(i<<1)>>1]|0;g=g+((R(m,m)|0)>>>j)|0}i=af(j+3-($e(g)|0)|0)|0;j=((k|0)>0?k:0)+1&-2;g=0;h=0;while(1){if((g|0)>=(k|0))break;l=b[e+(g<<1)>>1]|0;l=R(l,l)|0;m=b[e+((g|1)<<1)>>1]|0;g=g+2|0;h=h+((l+(R(m,m)|0)|0)>>>i)|0}if((j|0)>=(f|0)){m=h;c[d>>2]=i;c[a>>2]=m;return}m=b[e+(j<<1)>>1]|0;m=h+((R(m,m)|0)>>>i)|0;c[d>>2]=i;c[a>>2]=m;return}function $e(a){a=a|0;return U(a|0)|0}function af(a){a=a|0;return ((a|0)>0?a:0)|0}function bf(b,c){b=b|0;c=c|0;var d=0;Rb(b,((a[c+2>>0]|0)*5|0)+(a[c+5>>0]|0)|0,32397,8);d=0;while(1){if((d|0)==2)break;Rb(b,a[c+(d*3|0)>>0]|0,32450,8);Rb(b,a[c+(d*3|0)+1>>0]|0,32457,8);d=d+1|0}return}function cf(a,b){a=a|0;b=b|0;Rb(a,b<<24>>24,32422,8);return}function df(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,m=0,n=0,o=0,p=0,q=0;h=l;l=l+16|0;i=h+12|0;o=h+8|0;n=h+4|0;j=h;_e(n,i,b,f);_e(j,o,d,f);i=c[i>>2]|0;o=c[o>>2]|0;q=ef(i,o)|0;q=q+(q&1)|0;o=c[j>>2]>>q-o;c[j>>2]=o;i=ef(c[n>>2]>>q-i,1)|0;c[n>>2]=i;n=te(b,d,q,f)|0;f=ff(n,i,13)|0;f=(f|0)>16384?16384:(f|0)>-16384?f:-16384;m=f<<16>>16;k=(R(f>>16,m)|0)+((R(f&65535,m)|0)>>16)|0;d=ef(g,(k|0)>0?k:0-k|0)|0;b=q>>1;q=c[e>>2]|0;p=(gf(i)|0)<>16;p=R(p-(c[e>>2]|0)>>16,d)|0;g=(gf(i)|0)<>2]=q+(p+((R(g-(c[e>>2]|0)&65535,d)|0)>>16));k=k<<16>>16;k=o-((R(n>>16,m)|0)+((R(n&65535,m)|0)>>16)<<4)+((R(i>>16,k)|0)+((R(i&65535,k)|0)>>16)<<6)|0;c[j>>2]=k;g=e+4|0;j=c[g>>2]|0;i=(gf(k)|0)<>2]|0)>>16,d)|0;b=(gf(k)|0)<>2]|0)&65535,d)|0)>>16))|0;c[g>>2]=d;g=c[e>>2]|0;g=ff(d,(g|0)>1?g:1,14)|0;c[a>>2]=(g|0)>32767?32767:(g|0)>0?g:0;l=h;return f|0}function ef(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function ff(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=jf((a|0)>0?a:0-a|0)|0;g=a<0?b:0-b|0)|0)+-1|0;b=b<>16|0)|0)<<16>>16;f=(R(g>>16,d)|0)+((R(g&65535,d)|0)>>16)|0;b=Uh(b|0,((b|0)<0)<<31>>31|0,f|0,((f|0)<0)<<31>>31|0)|0;b=Rh(b|0,C|0,29)|0;b=g-(b&-8)|0;d=f+((R(b>>16,d)|0)+((R(b&65535,d)|0)>>16))|0;a=e+28-a-c|0;if((a|0)>=0)return ((a|0)<32?d>>a:0)|0;a=0-a|0;b=-2147483648>>a;c=2147483647>>>a;if((b|0)>(c|0)){if((d|0)>(b|0)){g=b;g=g<(c|0)){g=c;g=g<>2]|0;b=((b&1|0)==0?46214:32768)>>>(b>>1);d=(R(c[d>>2]<<16>>16,13959168)|0)>>16;d=b+((R(b>>16,d)|0)+((R(b&65535,d)|0)>>16))|0;l=e;return d|0}function hf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0;e=jf(a)|0;c[b>>2]=e;c[d>>2]=(kf(a,24-e|0)|0)&127;return}function jf(a){a=a|0;return U(a|0)|0}function kf(a,b){a=a|0;b=b|0;if(!b){b=a;return b|0}if((b|0)<0){b=a<<0-b|a>>>(b+32|0);return b|0}else{b=a<<32-b|a>>>b;return b|0}return 0}function lf(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;f=0;p=0;while(1){if((p|0)==2)break;q=d+(p<<2)|0;r=e+(p*3|0)|0;o=e+(p*3|0)+1|0;h=2147483647;g=0;a:while(1){if((g|0)>=15)break;l=b[28144+(g<<1)>>1]|0;m=g+1|0;n=b[28144+(m<<1)>>1]|0;n=(R((n<<16>>16)-l>>16,429522944)|0)+(((n&65535)-l&65535)*6554|0)>>16;k=g&255;j=0;i=h;while(1){if((j|0)>=5){h=i;g=m;continue a}g=l+(R(n,j<<17>>16|1)|0)|0;h=c[q>>2]|0;h=(h|0)>(g|0)?h-g|0:g-h|0;if((h|0)>=(i|0))break a;a[r>>0]=k;a[o>>0]=j;j=j+1|0;i=h;f=g}}n=a[r>>0]|0;o=(n<<24>>24)/3|0;a[e+(p*3|0)+2>>0]=o;a[r>>0]=(n&255)+(R(o<<24>>24,-3)|0);c[q>>2]=f;p=p+1|0}c[d>>2]=(c[d>>2]|0)-(c[d+4>>2]|0);return}function mf(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0,k=0,l=0;f=0;j=0;while(1){if((j|0)<10){g=0;h=0;i=f}else break;while(1){if((h|0)>=(e|0))break;k=c[d+(h<<2)>>2]|0;k=(k|0)>0?k:0-k|0;l=(k|0)>(g|0);f=l?h:i;g=l?k:g;h=h+1|0;i=f}f=(g>>4)+1>>1;if((f|0)<=32767)break;f=(f|0)<163838?f:163838;se(d,e,65470-(((f<<14)+-536854528|0)/((R(f,i+1|0)|0)>>2|0)|0)|0);f=i;j=j+1|0}if((j|0)==10){f=0;while(1){if((f|0)>=(e|0))break;l=d+(f<<2)|0;k=(c[l>>2]>>4)+1>>1;k=(k|0)>32767?32767:(k|0)>-32768?k:-32768;b[a+(f<<1)>>1]=k;c[l>>2]=k<<16>>11;f=f+1|0}return}else{f=0;while(1){if((f|0)>=(e|0))break;b[a+(f<<1)>>1]=(((c[d+(f<<2)>>2]|0)>>>4)+1|0)>>>1;f=f+1|0}return}}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0,j=0.0;e=3.1415927410125732/+(d+1|0);h=2.0-e*e;i=(c|0)<2;c=0;e=i?e:h*.5;f=i?0.0:1.0;while(1){if((c|0)>=(d|0))break;g[a+(c<<2)>>2]=+g[b+(c<<2)>>2]*.5*(f+e);i=c|1;g[a+(i<<2)>>2]=+g[b+(i<<2)>>2]*e;j=h*e-f;i=c|2;g[a+(i<<2)>>2]=+g[b+(i<<2)>>2]*.5*(e+j);i=c|3;g[a+(i<<2)>>2]=+g[b+(i<<2)>>2]*j;c=c+4|0;e=h*j-e;f=j}return}function of(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a=a+16|0;e=0;while(1){if((e|0)==5)break;g[d+(e<<2)>>2]=+ag(a,b,c);a=a+-4|0;e=e+1|0}return}function pf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0,f=0,h=0,i=0,j=0.0,k=0.0,l=0,m=0;i=a+16|0;d=+$f(i,b);g[c>>2]=d;e=1;while(1){if((e|0)==5)break;k=+g[i+(0-e<<2)>>2];j=+g[i+(b-e<<2)>>2];j=d+(k*k-j*j);g[c+(e*6<<2)>>2]=j;d=j;e=e+1|0}e=a+12|0;a=1;while(1){if((a|0)==5)break;d=+ag(i,e,b);k=d;g[c+(a*5<<2)>>2]=k;g[c+(a<<2)>>2]=k;h=5-a|0;f=1;while(1){if((f|0)>=(h|0))break;m=0-f|0;l=b-f|0;k=d+(+g[i+(m<<2)>>2]*+g[e+(m<<2)>>2]-+g[i+(l<<2)>>2]*+g[e+(l<<2)>>2]);j=k;l=a+f|0;g[c+((l*5|0)+f<<2)>>2]=j;g[c+((f*5|0)+l<<2)>>2]=j;d=k;f=f+1|0}e=e+-4|0;a=a+1|0}return}function qf(b){b=b|0;var d=0,e=0,f=0;Ed(b,b+5094|0);do if((c[b+4528>>2]|0)<13){a[b+4761>>0]=0;d=b+6080|0;e=c[d>>2]|0;f=e+1|0;c[d>>2]=f;if((f|0)>=10){if((e|0)<=29){d=0;break}c[d>>2]=10}c[b+6076>>2]=0;d=0}else{c[b+6080>>2]=0;c[b+6076>>2]=0;a[b+4761>>0]=1;d=1}while(0);a[(c[b+5744>>2]|0)+(b+4716)>>0]=d;return}function rf(d,e,f,h,i,j){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,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.0,va=0,wa=0;ta=l;l=l+13584|0;pa=ta+11536|0;n=ta+8848|0;qa=ta+8800|0;ca=ta+24|0;da=ta;ra=ta+4448|0;ea=ta+96|0;fa=ta+80|0;ga=ta+12296|0;ha=ta+64|0;ia=ta+12288|0;ja=ta+48|0;c[ha>>2]=0;c[ha+4>>2]=0;c[ha+8>>2]=0;c[ha+12>>2]=0;ka=d+4616|0;la=c[ka>>2]|0;c[ka>>2]=la+1;ka=d+4766|0;a[ka>>0]=la&3;la=d+4588|0;m=c[la>>2]|0;ma=d+7176+(m<<2)|0;k=d+5094|0;na=d+4580|0;fd(d+16|0,k,c[na>>2]|0);oa=d+4572|0;sf(ma+((c[oa>>2]|0)*5<<2)|0,k,c[na>>2]|0);k=0;while(1){if((k|0)==8)break;ba=ma+(((c[oa>>2]|0)*5|0)+(R(k,c[na>>2]>>3)|0)<<2)|0;g[ba>>2]=+g[ba>>2]+ +(1-(k&2)|0)*9.999999974752427e-07;k=k+1|0}k=n+(m<<2)|0;ba=d+4676|0;a:do if(!(c[ba>>2]|0)){yf(d,pa,n,ma);If(d,pa,k,ma);zf(d,pa,k,ma,h);Of(d,pa,h);tf(d,pa,ma,h);I=d+4732|0;J=d+4576|0;k=dd(I,c[J>>2]|0)|0;m=qa;o=f;p=m+48|0;do{c[m>>2]=c[o>>2];m=m+4|0;o=o+4|0}while((m|0)<(p|0));K=d+144|0;Sh(ra|0,K|0,4352)|0;L=a[ka>>0]|0;M=d+5768|0;N=b[M>>1]|0;O=d+5764|0;P=c[O>>2]|0;Q=pa+692|0;S=d+4762|0;T=d+4584|0;U=pa+744|0;V=d+7164|0;W=(h|0)==2;X=W&1;Y=i+-5|0;G=f+24|0;H=f+28|0;Z=d+4732|0;_=d+4768|0;$=d+5744|0;aa=d+4761|0;F=f+20|0;E=0;D=-1;u=0;t=0;v=0;x=0;w=0;y=0;B=0;C=256;r=-1;n=0;while(1){q=(k|0)==(D|0);if(!q)if((k|0)!=(r|0)){if((E|0)>0){m=f;o=qa;p=m+48|0;do{c[m>>2]=c[o>>2];m=m+4|0;o=o+4|0}while((m|0)<(p|0));Sh(K|0,ra|0,4352)|0;a[ka>>0]=L;b[M>>1]=N;c[O>>2]=P}Wf(d,pa,Z,K,_,ma);o=(E|0)==6;if(o&(t|0)==0){c[ca>>2]=c[f>>2];c[ca+4>>2]=c[f+4>>2];c[ca+8>>2]=c[f+8>>2];c[ca+12>>2]=c[f+12>>2];c[ca+16>>2]=c[f+16>>2];c[ca+20>>2]=c[f+20>>2];n=c[G>>2]|0;c[da>>2]=c[H>>2];c[da+4>>2]=c[H+4>>2];c[da+8>>2]=c[H+8>>2];c[da+12>>2]=c[H+12>>2];c[da+16>>2]=c[H+16>>2]}Xc(d,f,c[$>>2]|0,0,h);Yc(f,a[aa>>0]|0,a[S>>0]|0,_,c[na>>2]|0);m=uf(c[F>>2]|0,c[H>>2]|0)|0;if(o&(t|0)==0&(m|0)>(i|0)){c[f>>2]=c[ca>>2];c[f+4>>2]=c[ca+4>>2];c[f+8>>2]=c[ca+8>>2];c[f+12>>2]=c[ca+12>>2];c[f+16>>2]=c[ca+16>>2];c[f+20>>2]=c[ca+20>>2];c[G>>2]=n;c[H>>2]=c[da>>2];c[H+4>>2]=c[da+4>>2];c[H+8>>2]=c[da+8>>2];c[H+12>>2]=c[da+12>>2];c[H+16>>2]=c[da+16>>2];o=a[U>>0]|0;a[V>>0]=o;m=0;while(1){if((m|0)>=(c[J>>2]|0))break;a[d+4732+m>>0]=4;m=m+1|0}if(!W)a[I>>0]=o;b[M>>1]=N;c[O>>2]=P;m=0;while(1){if((m|0)>=(c[na>>2]|0))break;a[d+4768+m>>0]=0;m=m+1|0}Xc(d,f,c[$>>2]|0,0,h);Yc(f,a[aa>>0]|0,a[S>>0]|0,_,c[na>>2]|0);m=uf(c[F>>2]|0,c[H>>2]|0)|0}if(!(E|j))if((m|0)>(i|0))A=m;else break a;else sa=24}else{m=w;sa=24}else{m=y;sa=24}if((sa|0)==24){sa=0;if((E|0)==6)break;else A=m}z=(A|0)>(i|0);b:do if(!z){if((A|0)>=(Y|0))break a;m=C<<16>>16;if(q){t=1;x=m;y=A;q=B;s=n}else{c[ca>>2]=c[f>>2];c[ca+4>>2]=c[f+4>>2];c[ca+8>>2]=c[f+8>>2];c[ca+12>>2]=c[f+12>>2];c[ca+16>>2]=c[f+16>>2];c[ca+20>>2]=c[f+20>>2];s=c[G>>2]|0;c[da>>2]=c[H>>2];c[da+4>>2]=c[H+4>>2];c[da+8>>2]=c[H+8>>2];c[da+12>>2]=c[H+12>>2];c[da+16>>2]=c[H+16>>2];Sh(ga|0,c[f>>2]|0,s|0)|0;Sh(ea|0,K|0,4352)|0;t=1;x=m;y=A;q=a[V>>0]|0}}else{if(t|0){r=k;k=D;u=1;v=C<<16>>16;w=A;q=B;s=n;break}if((E|0)>1){ua=+g[Q>>2]*1.5;g[Q>>2]=ua>1.5?ua:1.5;a[S>>0]=0;k=-1;u=0}else{u=1;v=C<<16>>16;w=A}r=c[J>>2]|0;s=(E|0)==0;q=0;c:while(1){if((q|0)>=(r|0)){t=0;r=k;k=D;q=B;s=n;break b}m=c[T>>2]|0;t=q+1|0;o=R(t,m)|0;p=0;m=R(q,m)|0;while(1){if((m|0)>=(o|0))break;wa=a[d+4768+m>>0]|0;va=wa<<24>>24;p=p+(wa<<24>>24>-1?va:0-va|0)|0;m=m+1|0}m=ja+(q<<2)|0;do if(!s){o=ha+(q<<2)|0;if((p|0)<(c[m>>2]|0)?(c[o>>2]|0)==0:0)break;c[o>>2]=1;q=t;continue c}while(0);c[m>>2]=p;b[ia+(q<<1)>>1]=C;q=t}}while(0);do if(!(t&u)){if(!z){wa=ye(((A-i<<7|0)/(c[na>>2]|0)|0)+2048|0)|0;p=C<<16>>16;p=(R(wa>>16,p)|0)+((R(wa&65535,p)|0)>>>16)&65535;break}if(C<<16>>16<16384)p=C<<16>>16<<1&65535;else p=32767}else{p=v-x|0;n=x+((R(p,i-y|0)|0)/(w-y|0)|0)|0;o=n<<16>>16;p=p>>2;m=x+p|0;if((o|0)<=(m|0)){m=v-p|0;m=(o|0)<(m|0)?m:n}p=m&65535}while(0);o=c[J>>2]|0;n=0;while(1){if((n|0)>=(o|0))break;if(!(c[ha+(n<<2)>>2]|0))m=p;else m=b[ia+(n<<1)>>1]|0;va=c[pa+728+(n<<2)>>2]|0;wa=m<<16>>16;wa=(R(va>>16,wa)|0)+((R(va&65535,wa)|0)>>16)|0;c[fa+(n<<2)>>2]=(wa|0)>8388607?2147483392:((wa|0)>-8388608?wa:-8388608)<<8;n=n+1|0}a[V>>0]=a[U>>0]|0;_c(I,fa,V,X,o);n=c[J>>2]|0;o=dd(I,n)|0;m=0;while(1){if((m|0)>=(n|0))break;g[pa+(m<<2)>>2]=+(c[fa+(m<<2)>>2]|0)*.0000152587890625;m=m+1|0}E=E+1|0;D=k;k=o;B=q;C=p;n=s}if((t|0)!=0&(q|(m|0)>(i|0))){c[f>>2]=c[ca>>2];c[f+4>>2]=c[ca+4>>2];c[f+8>>2]=c[ca+8>>2];c[f+12>>2]=c[ca+12>>2];c[f+16>>2]=c[ca+16>>2];c[f+20>>2]=c[ca+20>>2];c[G>>2]=n;c[H>>2]=c[da>>2];c[H+4>>2]=c[da+4>>2];c[H+8>>2]=c[da+8>>2];c[H+12>>2]=c[da+12>>2];c[H+16>>2]=c[da+16>>2];Sh(c[f>>2]|0,ga|0,n|0)|0;Sh(K|0,ea|0,4352)|0;a[V>>0]=B}}while(0);Wh(d+7176|0,d+7176+(c[na>>2]<<2)|0,(c[la>>2]|0)+((c[oa>>2]|0)*5|0)<<2|0)|0;if(c[ba>>2]|0){wa=0;c[e>>2]=wa;l=ta;return 0}c[d+4540>>2]=c[pa+228+((c[d+4576>>2]|0)+-1<<2)>>2];a[d+4537>>0]=a[d+4761>>0]|0;c[d+4660>>2]=0;wa=(uf(c[f+20>>2]|0,c[f+28>>2]|0)|0)+7>>3;c[e>>2]=wa;l=ta;return 0}function sf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;while(1){e=d+-1|0;if((d|0)<=0)break;g[a+(e<<2)>>2]=+(b[c+(e<<1)>>1]|0);d=e}return}function tf(e,f,h,i){e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;s=l;l=l+4384|0;n=s+4368|0;o=s+4352|0;p=s;q=e+5744|0;j=c[q>>2]|0;r=e+6096+(j*36|0)|0;if(!(c[e+6088>>2]|0)){l=s;return}if((c[e+4528>>2]|0)<=77){l=s;return}c[e+4720+(j<<2)>>2]=1;Sh(p|0,e+144|0,4352)|0;j=r;k=e+4732|0;m=j+36|0;do{b[j>>1]=b[k>>1]|0;j=j+2|0;k=k+2|0}while((j|0)<(m|0));m=e+4576|0;j=c[m>>2]|0;Sh(o|0,f|0,j<<2|0)|0;k=c[q>>2]|0;if((k|0)!=0?(c[e+4720+(k+-1<<2)>>2]|0)!=0:0)k=e+4536|0;else{k=e+4536|0;a[k>>0]=a[e+7164>>0]|0;a[r>>0]=vf((d[r>>0]|0)+(c[e+6092>>2]|0)<<24>>24)|0;j=c[m>>2]|0}bd(n,r,k,(i|0)==2&1,j);j=0;while(1){if((j|0)>=(c[m>>2]|0))break;g[f+(j<<2)>>2]=+(c[n+(j<<2)>>2]|0)*.0000152587890625;j=j+1|0}Wf(e,f,r,p,e+6204+((c[q>>2]|0)*320|0)|0,h);Sh(f|0,o|0,c[m>>2]<<2|0)|0;l=s;return}function uf(a,b){a=a|0;b=b|0;return (U(b|0)|0)+-32+a|0}function vf(a){a=a|0;return ((a|0)<63?a:63)|0}function wf(b,d,e,f){b=b|0;d=d|0;e=e|0;f=+f;var g=0.0,h=0,i=0.0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;s=l;l=l+1696|0;o=s+1600|0;p=s+1664|0;q=s+1536|0;r=s;j=b+4636|0;h=c[j>>2]|0;k=(c[b+4584>>2]|0)+h|0;m=b+4763|0;a[m>>0]=4;n=b+4576|0;g=+Zf(o,e,f,k,c[n>>2]|0,h);a:do if((c[b+4628>>2]|0?(c[b+4660>>2]|0)==0:0)?(c[n>>2]|0)==4:0){n=k<<1;g=g-+Zf(q,e+(n<<2)|0,f,k,2,c[j>>2]|0);Sf(d,q,c[j>>2]|0);h=b+4496|0;f=3402823466385288598117041.0e14;b=3;while(1){if((b|0)<=-1)break a;ed(p,h,d,b,c[j>>2]|0);Uf(q,p,c[j>>2]|0);Af(r,q,e,n,c[j>>2]|0);t=c[j>>2]|0;u=r+(t<<2)|0;t=k-t|0;i=+$f(u,t);i=i+ +$f(u+(k<<2)|0,t);if(!(if)break a}else{a[m>>0]=b;g=i}f=i;b=b+-1|0}}while(0);if((a[m>>0]|0)!=4){l=s;return}Sf(d,o,c[j>>2]|0);l=s;return}function xf(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.0,l=0.0,m=0;j=f+5|0;i=b;b=0;while(1){if((b|0)>=(h|0))break;m=d+(-2-(c[e+(b<<2)>>2]|0)<<2)|0;pf(m,f,a);of(m,d,f,i);l=+$f(d,j);k=(+g[a>>2]+ +g[a+96>>2])*.014999999664723873+1.0;k=1.0/(l>k?l:k);lg(a,k,25);lg(i,k,5);a=a+100|0;i=i+20|0;d=d+(f<<2)|0;b=b+1|0}return}function yf(d,e,f,h){d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0,r=0,s=0,t=0,u=0,v=0;j=l;l=l+1744|0;q=j+1664|0;m=j+1600|0;n=j+1536|0;s=j;v=d+4592|0;t=c[v>>2]|0;k=c[d+4588>>2]|0;i=t+(c[d+4580>>2]|0)+k|0;k=h+(0-k<<2)|0;r=d+4544|0;u=k+(i<<2)+(0-(c[r>>2]|0)<<2)|0;nf(s,u,1,t);h=c[v>>2]|0;v=s+(h<<2)|0;u=u+(h<<2)|0;t=(c[r>>2]|0)-(h<<1)|0;Sh(v|0,u|0,t<<2|0)|0;nf(v+(t<<2)|0,u+(t<<2)|0,2,h);h=d+4644|0;Yf(q,s,c[r>>2]|0,(c[h>>2]|0)+1|0);p=+g[q>>2];p=p+(p*1.0000000474974513e-03+1.0);g[q>>2]=p;o=+mg(n,q,c[h>>2]|0);g[e+704>>2]=p/(o>1.0?o:1.0);bg(m,n,c[h>>2]|0);_f(m,c[h>>2]|0,.9900000095367432);Af(f,m,k,i,c[h>>2]|0);i=d+4761|0;if(a[i>>0]|0?(c[d+4660>>2]|0)==0:0)if(!(cg(f,e+228|0,d+4758|0,d+4760|0,d+10056|0,c[d+4540>>2]|0,+(c[d+4648>>2]|0)*.0000152587890625,.6000000238418579-+(c[h>>2]|0)*.004000000189989805-+(c[d+4528>>2]|0)*.10000000149011612*.00390625-+(a[d+4537>>0]>>1|0)*.15000000596046448-+(c[d+4708>>2]|0)*.10000000149011612*.000030517578125,c[d+4572>>2]|0,c[d+4640>>2]|0,c[d+4576>>2]|0)|0)){a[i>>0]=2;l=j;return}else{a[i>>0]=1;l=j;return}v=e+228|0;c[v>>2]=0;c[v+4>>2]=0;c[v+8>>2]=0;c[v+12>>2]=0;b[d+4758>>1]=0;a[d+4760>>0]=0;g[d+10056>>2]=0.0;l=j;return}function zf(d,e,f,h,i){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0;u=l;l=l+2064|0;m=u+1632|0;n=u+1552|0;s=u+1536|0;j=u+2032|0;t=u;r=d+4576|0;q=c[r>>2]|0;k=0;while(1){if((k|0)>=(q|0))break;g[s+(k<<2)>>2]=1.0/+g[e+(k<<2)>>2];k=k+1|0}if((a[d+4761>>0]|0)==2){o=e+228|0;p=d+4584|0;xf(m,n,f,o,c[p>>2]|0,q);f=e+144|0;Xf(f,d+4736|0,d+4764|0,d+4652|0,e+708|0,m,n,c[p>>2]|0,c[r>>2]|0);Hf(d,e,i);q=c[d+4636>>2]|0;Gf(t,h+(0-q<<2)|0,f,o,s,c[p>>2]|0,c[r>>2]|0,q)}else{o=d+4636|0;f=c[o>>2]|0;p=d+4584|0;n=t;i=h+(0-f<<2)|0;m=0;k=q;while(1){if((m|0)>=(k|0))break;kg(n,i,+g[s+(m<<2)>>2],(c[p>>2]|0)+f|0);k=c[p>>2]|0;q=c[o>>2]|0;n=n+(k+q<<2)|0;i=i+(k<<2)|0;m=m+1|0;k=c[r>>2]|0;f=q}Qh(e+144|0,0,k*20|0)|0;g[e+708>>2]=0.0;c[d+4652>>2]=0}if(c[d+4660>>2]|0){v=.009999999776482582;wf(d,j,t,v);h=e+16|0;f=d+4496|0;Vf(d,h,j,f);p=e+712|0;q=d+4584|0;q=c[q>>2]|0;s=c[r>>2]|0;k=d+4636|0;k=c[k>>2]|0;Qf(p,t,h,e,q,s,k);k=f+32|0;do{b[f>>1]=b[j>>1]|0;f=f+2|0;j=j+2|0}while((f|0)<(k|0));l=u;return}v=+aa(+(+g[e+708>>2]/3.0))/1.0e4;v=v/(+g[e+700>>2]*.75+.25);wf(d,j,t,v);h=e+16|0;f=d+4496|0;Vf(d,h,j,f);p=e+712|0;q=d+4584|0;q=c[q>>2]|0;s=c[r>>2]|0;k=d+4636|0;k=c[k>>2]|0;Qf(p,t,h,e,q,s,k);k=f+32|0;do{b[f>>1]=b[j>>1]|0;f=f+2|0;j=j+2|0}while((f|0)<(k|0));l=u;return}function Af(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;switch(e|0){case 6:{Bf(a,b,c,d);break}case 8:{Cf(a,b,c,d);break}case 10:{Df(a,b,c,d);break}case 12:{Ef(a,b,c,d);break}case 16:{Ff(a,b,c,d);break}default:{}}Qh(a|0,0,e<<2|0)|0;return}function Bf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0;f=b+4|0;h=b+8|0;i=b+12|0;j=b+16|0;k=b+20|0;e=6;while(1){if((e|0)>=(d|0))break;l=c+(e+-1<<2)|0;g[a+(e<<2)>>2]=+g[l+4>>2]-(+g[l>>2]*+g[b>>2]+ +g[l+-4>>2]*+g[f>>2]+ +g[l+-8>>2]*+g[h>>2]+ +g[l+-12>>2]*+g[i>>2]+ +g[l+-16>>2]*+g[j>>2]+ +g[l+-20>>2]*+g[k>>2]);e=e+1|0}return}function Cf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=b+4|0;i=b+8|0;j=b+12|0;k=b+16|0;l=b+20|0;m=b+24|0;f=b+28|0;e=8;while(1){if((e|0)>=(d|0))break;n=c+(e+-1<<2)|0;g[a+(e<<2)>>2]=+g[n+4>>2]-(+g[n>>2]*+g[b>>2]+ +g[n+-4>>2]*+g[h>>2]+ +g[n+-8>>2]*+g[i>>2]+ +g[n+-12>>2]*+g[j>>2]+ +g[n+-16>>2]*+g[k>>2]+ +g[n+-20>>2]*+g[l>>2]+ +g[n+-24>>2]*+g[m>>2]+ +g[n+-28>>2]*+g[f>>2]);e=e+1|0}return}function Df(a,b,c,d){a=a|0;b=b|0;c=c|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,p=0;j=b+4|0;k=b+8|0;l=b+12|0;m=b+16|0;n=b+20|0;o=b+24|0;f=b+28|0;h=b+32|0;i=b+36|0;e=10;while(1){if((e|0)>=(d|0))break;p=c+(e+-1<<2)|0;g[a+(e<<2)>>2]=+g[p+4>>2]-(+g[p>>2]*+g[b>>2]+ +g[p+-4>>2]*+g[j>>2]+ +g[p+-8>>2]*+g[k>>2]+ +g[p+-12>>2]*+g[l>>2]+ +g[p+-16>>2]*+g[m>>2]+ +g[p+-20>>2]*+g[n>>2]+ +g[p+-24>>2]*+g[o>>2]+ +g[p+-28>>2]*+g[f>>2]+ +g[p+-32>>2]*+g[h>>2]+ +g[p+-36>>2]*+g[i>>2]);e=e+1|0}return}function Ef(a,b,c,d){a=a|0;b=b|0;c=c|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,p=0,q=0,r=0;l=b+4|0;m=b+8|0;n=b+12|0;o=b+16|0;p=b+20|0;q=b+24|0;f=b+28|0;h=b+32|0;i=b+36|0;j=b+40|0;k=b+44|0;e=12;while(1){if((e|0)>=(d|0))break;r=c+(e+-1<<2)|0;g[a+(e<<2)>>2]=+g[r+4>>2]-(+g[r>>2]*+g[b>>2]+ +g[r+-4>>2]*+g[l>>2]+ +g[r+-8>>2]*+g[m>>2]+ +g[r+-12>>2]*+g[n>>2]+ +g[r+-16>>2]*+g[o>>2]+ +g[r+-20>>2]*+g[p>>2]+ +g[r+-24>>2]*+g[q>>2]+ +g[r+-28>>2]*+g[f>>2]+ +g[r+-32>>2]*+g[h>>2]+ +g[r+-36>>2]*+g[i>>2]+ +g[r+-40>>2]*+g[j>>2]+ +g[r+-44>>2]*+g[k>>2]);e=e+1|0}return}function Ff(a,b,c,d){a=a|0;b=b|0;c=c|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,p=0,q=0,r=0,s=0,t=0,u=0,v=0;p=b+4|0;q=b+8|0;r=b+12|0;s=b+16|0;t=b+20|0;u=b+24|0;f=b+28|0;h=b+32|0;i=b+36|0;j=b+40|0;k=b+44|0;l=b+48|0;m=b+52|0;n=b+56|0;o=b+60|0;e=16;while(1){if((e|0)>=(d|0))break;v=c+(e+-1<<2)|0;g[a+(e<<2)>>2]=+g[v+4>>2]-(+g[v>>2]*+g[b>>2]+ +g[v+-4>>2]*+g[p>>2]+ +g[v+-8>>2]*+g[q>>2]+ +g[v+-12>>2]*+g[r>>2]+ +g[v+-16>>2]*+g[s>>2]+ +g[v+-20>>2]*+g[t>>2]+ +g[v+-24>>2]*+g[u>>2]+ +g[v+-28>>2]*+g[f>>2]+ +g[v+-32>>2]*+g[h>>2]+ +g[v+-36>>2]*+g[i>>2]+ +g[v+-40>>2]*+g[j>>2]+ +g[v+-44>>2]*+g[k>>2]+ +g[v+-48>>2]*+g[l>>2]+ +g[v+-52>>2]*+g[m>>2]+ +g[v+-56>>2]*+g[n>>2]+ +g[v+-60>>2]*+g[o>>2]);e=e+1|0}return}function Gf(a,b,d,e,f,h,i,k){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;k=k|0;var m=0,n=0,o=0,p=0.0,q=0.0,r=0,s=0,t=0,u=0,v=0,w=0.0;u=l;l=l+32|0;t=u;s=h+k|0;r=0;while(1){if((r|0)>=(i|0))break;m=0-(c[e+(r<<2)>>2]|0)|0;q=+g[f+(r<<2)>>2];n=r*5|0;k=0;while(1){if((k|0)==5)break;c[t+(k<<2)>>2]=c[d+(n+k<<2)>>2];k=k+1|0}m=b+(m<<2)|0;n=0;while(1){if((n|0)>=(s|0))break;v=c[b+(n<<2)>>2]|0;o=a+(n<<2)|0;c[o>>2]=v;k=0;p=(c[j>>2]=v,+g[j>>2]);while(1){if((k|0)==5)break;w=p-+g[t+(k<<2)>>2]*+g[m+(2-k<<2)>>2];g[o>>2]=w;k=k+1|0;p=w}g[o>>2]=p*q;m=m+4|0;n=n+1|0}r=r+1|0;a=a+(s<<2)|0;b=b+(h<<2)|0}l=u;return}function Hf(d,e,f){d=d|0;e=e|0;f=f|0;var h=0.0;if(!f){h=+((c[d+4612>>2]|0)+(c[d+5740>>2]|0)|0)*+g[e+708>>2]*.10000000149011612;if(!(h>2.0))if(h<0.0)f=0;else f=~~h;else f=2}else f=0;a[d+4765>>0]=f;g[e+224>>2]=+(b[28184+(f<<24>>24<<1)>>1]|0)*.00006103515625;return}function If(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0.0,j=0,k=0.0,m=0.0,n=0.0,o=0.0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;C=l;l=l+1168|0;v=C+200|0;w=C+100|0;x=C;h=f+(0-(c[b+4596>>2]|0)<<2)|0;f=b+4712|0;i=+(c[f>>2]|0)*.0078125;y=b+4692|0;m=+((c[y>>2]|0)+(c[b+4696>>2]|0)|0)*.5*.000030517578125;A=d+696|0;g[A>>2]=m;k=+Jf((i+-20.0)*.25);B=d+700|0;g[B>>2]=k;if(!(c[b+4672>>2]|0)){o=1.0-+(c[b+4528>>2]|0)*.00390625;i=i-k*2.0*(m*.5+.5)*o*o}z=b+4761|0;do if((a[z>>0]|0)!=2){o=i+(+(c[f>>2]|0)*-.4000000059604645*.0078125+6.0)*(1.0-m);q=b+4572|0;j=c[q>>2]<<1;r=b+4576|0;p=((c[r>>2]<<16>>16)*5|0)/2|0;n=+(j|0);f=e;i=0.0;e=0;k=0.0;while(1){if((e|0)>=(p|0))break;m=+Kf(n+ +$f(f,j));if((e|0)>0)i=i+ +E(+(m-k));f=f+(j<<2)|0;e=e+1|0;k=m}f=b+4762|0;if(i>+(p+-1|0)*.6000000238418579){a[f>>0]=0;break}else{a[f>>0]=1;break}}else{o=i+ +g[b+10056>>2]*2.0;a[b+4762>>0]=0;q=b+4572|0;r=b+4576|0}while(0);k=+g[d+704>>2]*1.0000000474974513e-03;k=.9399999976158142/(k*k+1.0);p=b+4668|0;m=+(c[p>>2]|0)*.0000152587890625+ +g[B>>2]*.009999999776482582;s=b+4600|0;t=b+4584|0;u=b+4632|0;j=0;while(1){f=c[r>>2]|0;if((j|0)>=(f|0))break;D=c[q>>2]|0;e=D*3|0;f=((c[s>>2]|0)-e|0)/2|0;nf(v,h,1,f);Sh(v+(f<<2)|0,h+(f<<2)|0,D*12|0)|0;e=f+e|0;nf(v+(e<<2)|0,h+(e<<2)|0,2,f);h=h+(c[t>>2]<<2)|0;f=c[s>>2]|0;e=c[u>>2]|0;if((c[p>>2]|0)>0)Rf(w,v,m,f,e);else Yf(w,v,f,e+1|0);i=+g[w>>2];g[w>>2]=i+(i*2.9999999242136255e-05+1.0);i=+mg(x,w,c[u>>2]|0);e=d+244+(j*24<<2)|0;bg(e,x,c[u>>2]|0);i=+F(+i);f=d+(j<<2)|0;g[f>>2]=i;if((c[p>>2]|0)>0)g[f>>2]=i*+Lf(e,m,c[u>>2]|0);_f(e,c[u>>2]|0,k);f=c[u>>2]|0;if((c[p>>2]|0)>0)Mf(e,m,f);else Nf(e,f);j=j+1|0}i=+aa(+(o*-.1599999964237213));h=0;while(1){if((h|0)>=(f|0))break;f=d+(h<<2)|0;g[f>>2]=+g[f>>2]*i+1.2483305931091309;h=h+1|0;f=c[r>>2]|0}e=b+4528|0;i=((+(c[y>>2]|0)*.000030517578125+-1.0)*.5+1.0)*4.0*(+(c[e>>2]|0)*.00390625);a:do if((a[z>>0]|0)==2){h=0;while(1){if((h|0)>=(f|0))break;o=.20000000298023224/+(c[q>>2]|0)+3.0/+(c[d+228+(h<<2)>>2]|0);g[d+628+(h<<2)>>2]=o+-1.0;g[d+644+(h<<2)>>2]=1.0-o-o*i;h=h+1|0;f=c[r>>2]|0}k=-.25-+(c[e>>2]|0)*.26249998807907104*.00390625}else{o=1.2999999523162842/+(c[q>>2]|0);e=d+628|0;g[e>>2]=o+-1.0;j=d+644|0;g[j>>2]=1.0-o-o*i*.6000000238418579;h=1;while(1){f=c[r>>2]|0;if((h|0)>=(f|0)){k=-.25;break a}c[d+628+(h<<2)>>2]=c[e>>2];c[d+644+(h<<2)>>2]=c[j>>2];h=h+1|0}}while(0);if((a[z>>0]|0)==2)i=((1.0-(1.0-+g[B>>2])*+g[A>>2])*.20000000298023224+.30000001192092896)*+F(+(+g[b+10056>>2]));else i=0.0;j=b+7168|0;e=b+7172|0;h=0;while(1){if((h|0)>=(f|0))break;o=+g[j>>2];o=o+(i-o)*.4000000059604645;g[j>>2]=o;g[d+676+(h<<2)>>2]=o;o=+g[e>>2];o=o+(k-o)*.4000000059604645;g[e>>2]=o;g[d+660+(h<<2)>>2]=o;h=h+1|0;f=c[r>>2]|0}l=C;return}function Jf(a){a=+a;return +(1.0/(+O(+-a)+1.0))}function Kf(a){a=+a;return +(+Ih(a)*3.32192809488736)}function Lf(a,b,c){a=a|0;b=+b;c=c|0;var d=0.0;d=+g[a+(c+-1<<2)>>2];c=c+-2|0;while(1){d=d*b;if((c|0)<=-1)break;d=+g[a+(c<<2)>>2]-d;c=c+-1|0}return +(1.0/(d+1.0))}function Mf(a,b,c){a=a|0;b=+b;c=c|0;var d=0,e=0,f=0.0,h=0,i=0.0,j=0,k=0.0,l=0.0,m=0;e=c;while(1){d=e+-1|0;if((e|0)<=1)break;j=a+(e+-2<<2)|0;g[j>>2]=+g[j>>2]-+g[a+(d<<2)>>2]*b;e=d}k=1.0-b*b;f=k/(+g[a>>2]*b+1.0);d=0;while(1){if((d|0)>=(c|0)){d=0;j=0;break}j=a+(d<<2)|0;g[j>>2]=+g[j>>2]*f;d=d+1|0}while(1){if((j|0)<10){i=-1.0;e=0}else{d=23;break}while(1){if((e|0)>=(c|0))break;l=+E(+(+g[a+(e<<2)>>2]));h=l>i;i=h?l:i;d=h?e:d;e=e+1|0}if(!(i<=3.999000072479248))e=1;else{d=23;break}while(1){if((e|0)>=(c|0))break;h=a+(e+-1<<2)|0;g[h>>2]=+g[h>>2]+ +g[a+(e<<2)>>2]*b;e=e+1|0}f=1.0/f;e=0;while(1){if((e|0)>=(c|0))break;h=a+(e<<2)|0;g[h>>2]=+g[h>>2]*f;e=e+1|0}_f(a,c,.9900000095367432-(+(j|0)*.10000000149011612+.800000011920929)*(i+-3.999000072479248)/(i*+(d+1|0)));h=c;while(1){e=h+-1|0;if((h|0)<=1)break;m=a+(h+-2<<2)|0;g[m>>2]=+g[m>>2]-+g[a+(e<<2)>>2]*b;h=e}f=k/(+g[a>>2]*b+1.0);e=0;while(1){if((e|0)>=(c|0))break;m=a+(e<<2)|0;g[m>>2]=+g[m>>2]*f;e=e+1|0}j=j+1|0}if((d|0)==23)return}function Nf(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,f=0,h=0,i=0.0,j=0;c=0;e=0;while(1){if((e|0)<10){d=-1.0;f=0}else{c=7;break}while(1){if((f|0)>=(b|0))break;i=+E(+(+g[a+(f<<2)>>2]));j=i>d;h=j?f:c;d=j?i:d;f=f+1|0;c=h}if(d<=3.999000072479248){c=7;break}_f(a,b,.9900000095367432-(+(e|0)*.10000000149011612+.800000011920929)*(d+-3.999000072479248)/(d*+(c+1|0)));e=e+1|0}if((c|0)==7)return}function Of(d,e,f){d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0.0,k=0,m=0,n=0,o=0,p=0.0;o=l;l=l+16|0;m=o;n=d+4761|0;a:do if((a[n>>0]|0)==2){j=1.0-+Pf((+g[e+708>>2]+-12.0)*.25)*.5;i=d+4576|0;h=0;while(1){if((h|0)>=(c[i>>2]|0))break a;k=e+(h<<2)|0;g[k>>2]=+g[k>>2]*j;h=h+1|0}}else i=d+4576|0;while(0);j=+aa(+((21.0-+(c[d+4712>>2]|0)*.0078125)*.33000001311302185));j=j/+(c[d+4584>>2]|0);h=0;while(1){k=c[i>>2]|0;if((h|0)>=(k|0)){h=0;break}k=e+(h<<2)|0;p=+g[k>>2];p=+F(+(p*p+ +g[e+712+(h<<2)>>2]*j));g[k>>2]=p<32767.0?p:32767.0;h=h+1|0}while(1){if((h|0)>=(k|0))break;c[m+(h<<2)>>2]=~~(+g[e+(h<<2)>>2]*65536.0);h=h+1|0}Sh(e+728|0,m|0,k<<2|0)|0;h=d+7164|0;a[e+744>>0]=a[h>>0]|0;_c(d+4732|0,m,h,(f|0)==2&1,c[i>>2]|0);h=0;while(1){if((h|0)>=(c[i>>2]|0))break;g[e+(h<<2)>>2]=+(c[m+(h<<2)>>2]|0)*.0000152587890625;h=h+1|0}i=a[n>>0]|0;do if(i<<24>>24==2){h=d+4762|0;if(+g[e+708>>2]+ +(c[d+4708>>2]|0)*.000030517578125>1.0){a[h>>0]=0;h=0;break}else{a[h>>0]=1;h=1;break}}else h=a[d+4762>>0]|0;while(0);g[e+692>>2]=+(c[d+4624>>2]|0)*-.05000000074505806+1.2000000476837158+ +(c[d+4528>>2]|0)*-.20000000298023224*.00390625+ +g[e+696>>2]*-.10000000149011612+ +g[e+700>>2]*-.20000000298023224+ +(b[28176+(i<<24>>24>>1<<2)+(h<<24>>24<<1)>>1]|0)*.0009765625*.800000011920929;l=o;return}function Pf(a){a=+a;return +(1.0/(+O(+-a)+1.0))}function Qf(a,b,c,d,e,f,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0,k=0,m=0,n=0,o=0.0;n=l;l=l+768|0;k=n;m=k+(h<<2)|0;j=h+e|0;i=j<<1;Af(k,c,b,i,h);o=+g[d>>2];g[a>>2]=o*o*+$f(m,e);o=+g[d+4>>2];j=m+(j<<2)|0;g[a+4>>2]=o*o*+$f(j,e);if((f|0)!=4){l=n;return}Af(k,c+64|0,b+(i<<2)|0,i,h);o=+g[d+8>>2];g[a+8>>2]=o*o*+$f(m,e);o=+g[d+12>>2];g[a+12>>2]=o*o*+$f(j,e);l=n;return}function Rf(a,b,c,d,e){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;var f=0,i=0.0,j=0.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0,t=0.0,u=0.0,v=0,w=0;q=l;l=l+400|0;o=q+200|0;p=q;Qh(o|0,0,200)|0;Qh(p|0,0,200)|0;m=o+(e<<3)|0;n=p+(e<<3)|0;k=0;i=0.0;while(1){if((k|0)>=(d|0)){f=0;break}j=+g[b+(k<<2)>>2];f=0;while(1){if((f|0)>=(e|0))break;v=f|1;w=o+(v<<3)|0;u=+h[w>>3];t=i+c*(u-j);h[o+(f<<3)>>3]=j;s=p+(f<<3)|0;h[s>>3]=+h[s>>3]+ +h[o>>3]*j;s=f+2|0;r=+h[o+(s<<3)>>3];h[w>>3]=t;v=p+(v<<3)|0;h[v>>3]=+h[v>>3]+ +h[o>>3]*t;j=u+c*(r-t);f=s;i=r}h[m>>3]=j;i=+h[o>>3];h[n>>3]=+h[n>>3]+i*j;k=k+1|0}while(1){if((f|0)>(e|0))break;g[a+(f<<2)>>2]=+h[p+(f<<3)>>3];f=f+1|0}l=q;return}function Sf(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0;h=l;l=l+64|0;f=h;e=0;while(1){if((e|0)>=(d|0))break;c[f+(e<<2)>>2]=Tf(+g[b+(e<<2)>>2]*65536.0)|0;e=e+1|0}le(a,f,d);l=h;return}function Tf(a){a=+a;return Jh(a)|0}function Uf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;f=l;l=l+32|0;e=f;Ee(e,c,d);c=0;while(1){if((c|0)>=(d|0))break;g[a+(c<<2)>>2]=+(b[e+(c<<1)>>1]|0)*.000244140625;c=c+1|0}l=f;return}function Vf(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0;i=l;l=l+64|0;h=i;Wd(a,h,e,f);f=a+4636|0;a=0;while(1){if((a|0)==2)break;else e=0;while(1){if((e|0)>=(c[f>>2]|0))break;g[d+(a<<6)+(e<<2)>>2]=+(b[h+(a<<5)+(e<<1)>>1]|0)*.000244140625;e=e+1|0}a=a+1|0}l=i;return}function Wf(d,e,f,h,i,j){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,m=0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;A=l;l=l+1008|0;w=A+360|0;x=A+48|0;y=A+296|0;z=A+256|0;s=A+64|0;t=A+32|0;u=A+16|0;v=A;r=c[d+4576>>2]|0;o=d+4632|0;m=0;while(1){if((m|0)>=(r|0)){k=0;break}p=c[o>>2]|0;q=m*24|0;k=0;while(1){if((k|0)>=(p|0))break;B=q+k|0;b[s+(B<<1)>>1]=Tf(+g[e+244+(B<<2)>>2]*8192.0)|0;k=k+1|0}m=m+1|0}while(1){if((k|0)>=(r|0))break;B=(Tf(+g[e+644+(k<<2)>>2]*16384.0)|0)<<16;c[t+(k<<2)>>2]=B|(Tf(+g[e+628+(k<<2)>>2]*16384.0)|0)&65535;c[u+(k<<2)>>2]=Tf(+g[e+660+(k<<2)>>2]*16384.0)|0;c[v+(k<<2)>>2]=Tf(+g[e+676+(k<<2)>>2]*16384.0)|0;k=k+1|0}n=+g[e+692>>2]*1024.0;m=r*5|0;k=0;while(1){if((k|0)>=(m|0))break;b[z+(k<<1)>>1]=Tf(+g[e+144+(k<<2)>>2]*16384.0)|0;k=k+1|0}q=Tf(n)|0;o=d+4636|0;k=0;while(1){if((k|0)==2){k=0;break}p=c[o>>2]|0;m=0;while(1){if((m|0)>=(p|0))break;b[y+(k<<5)+(m<<1)>>1]=Tf(+g[e+16+(k<<6)+(m<<2)>>2]*4096.0)|0;m=m+1|0}k=k+1|0}while(1){if((k|0)>=(r|0))break;c[x+(k<<2)>>2]=Tf(+g[e+(k<<2)>>2]*65536.0)|0;k=k+1|0}if((a[f+29>>0]|0)==2)k=b[28184+(a[f+33>>0]<<1)>>1]|0;else k=0;o=c[d+4580>>2]|0;m=0;while(1){if((m|0)>=(o|0))break;b[w+(m<<1)>>1]=Tf(+g[j+(m<<2)>>2])|0;m=m+1|0}if((c[d+4624>>2]|0)<=1?(c[d+4668>>2]|0)<=0:0){jd(d,h,f,w,i,y,z,s,v,u,t,x,e+228|0,q,k);l=A;return}rd(d,h,f,w,i,y,z,s,v,u,t,x,e+228|0,q,k);l=A;return}function Xf(a,d,e,f,h,i,j,k,m){a=a|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+528|0;s=t+480|0;r=t+488|0;p=t+80|0;q=t;o=m*25|0;n=0;while(1){if((n|0)>=(o|0))break;c[p+(n<<2)>>2]=Tf(+g[i+(n<<2)>>2]*131072.0)|0;n=n+1|0}o=m*5|0;n=0;while(1){if((n|0)>=(o|0))break;c[q+(n<<2)>>2]=Tf(+g[j+(n<<2)>>2]*131072.0)|0;n=n+1|0}Nd(r,d,e,f,s,p,q,k,m);n=0;while(1){if((n|0)>=(o|0))break;g[a+(n<<2)>>2]=+(b[r+(n<<1)>>1]|0)*.00006103515625;n=n+1|0}g[h>>2]=+(c[s>>2]|0)*.0078125;l=t;return}function Yf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;d=(d|0)>(c|0)?c:d;e=0;while(1){if((e|0)>=(d|0))break;g[a+(e<<2)>>2]=+ag(b,b+(e<<2)|0,c-e|0);e=e+1|0}return}function Zf(a,b,c,d,e,f){a=a|0;b=b|0;c=+c;d=d|0;e=e|0;f=f|0;var i=0.0,j=0,k=0,m=0,n=0.0,o=0.0,p=0.0,q=0,r=0.0,s=0,t=0,u=0.0,v=0,w=0,x=0,y=0,z=0,A=0.0,B=0,C=0,D=0,E=0.0,G=0.0,H=0.0,I=0;D=l;l=l+976|0;w=D+784|0;x=D+592|0;B=D+392|0;y=D+192|0;C=D;i=+$f(b,R(e,d)|0);Qh(w|0,0,192)|0;j=0;while(1){if((j|0)>=(e|0))break;m=b+((R(j,d)|0)<<2)|0;k=1;while(1){if((k|0)>(f|0))break;A=+ag(m,m+(k<<2)|0,d-k|0);v=w+(k+-1<<3)|0;h[v>>3]=+h[v>>3]+A;k=k+1|0}j=j+1|0}Sh(x|0,w|0,192)|0;A=i*9.999999747378752e-06;u=i+A+9.999999717180685e-10;h[B>>3]=u;h[y>>3]=u;u=c;c=1.0;v=1;k=0;while(1){if((k|0)>=(f|0))break;q=d-k|0;s=q+-1|0;m=0;while(1){if((m|0)>=(e|0))break;t=b+((R(m,d)|0)<<2)|0;n=+g[t+(k<<2)>>2];o=+g[t+(s<<2)>>2];p=o;r=n;j=0;while(1){if((k|0)==(j|0)){j=0;break}G=+g[t+(k-j+-1<<2)>>2];I=w+(j<<3)|0;h[I>>3]=+h[I>>3]-n*G;H=+g[t+(q+j<<2)>>2];I=x+(j<<3)|0;h[I>>3]=+h[I>>3]-o*H;E=+h[C+(j<<3)>>3];p=p+H*E;r=r+G*E;j=j+1|0}while(1){if((j|0)==(v|0))break;I=B+(j<<3)|0;h[I>>3]=+h[I>>3]-r*+g[t+(k-j<<2)>>2];I=y+(j<<3)|0;h[I>>3]=+h[I>>3]-p*+g[t+(q+j+-1<<2)>>2];j=j+1|0}m=m+1|0}n=+h[x+(k<<3)>>3];o=+h[w+(k<<3)>>3];j=0;while(1){if((k|0)==(j|0))break;H=+h[C+(j<<3)>>3];I=k-j+-1|0;n=n+ +h[w+(I<<3)>>3]*H;o=o+ +h[x+(I<<3)>>3]*H;j=j+1|0}s=k+1|0;h[B+(s<<3)>>3]=o;h[y+(s<<3)>>3]=n;o=+h[B>>3];p=+h[y>>3];j=0;while(1){if((k|0)==(j|0))break;H=+h[C+(j<<3)>>3];I=j+1|0;n=n+ +h[y+(k-j<<3)>>3]*H;o=o+ +h[B+(I<<3)>>3]*H;p=p+ +h[y+(I<<3)>>3]*H;j=I}p=n*-2.0/(o+p);o=c*(1.0-p*p);if(!(o<=u)){j=0;c=o;n=p}else{H=+F(+(1.0-u/c));j=1;c=u;n=n>0.0?-H:H}q=s>>1;m=0;while(1){if((m|0)>=(q|0))break;t=C+(m<<3)|0;H=+h[t>>3];I=C+(k-m+-1<<3)|0;G=+h[I>>3];h[t>>3]=H+n*G;h[I>>3]=G+n*H;m=m+1|0}h[C+(k<<3)>>3]=n;if(!j)j=0;else{z=29;break}while(1){if((j|0)>(s|0))break;t=B+(j<<3)|0;H=+h[t>>3];I=y+(k-j+1<<3)|0;G=+h[I>>3];h[t>>3]=H+n*G;h[I>>3]=G+n*H;j=j+1|0}v=v+1|0;k=s}if((z|0)==29){while(1){k=k+1|0;if((k|0)>=(f|0))break;h[C+(k<<3)>>3]=0.0;z=29}if(j|0){j=0;while(1){if((j|0)>=(f|0)){j=0;break}g[a+(j<<2)>>2]=-+h[C+(j<<3)>>3];j=j+1|0}while(1){if((j|0)>=(e|0))break;i=i-+$f(b+((R(j,d)|0)<<2)|0,f);j=j+1|0}H=i*c;l=D;return +H}}i=+h[B>>3];c=1.0;j=0;while(1){if((j|0)>=(f|0))break;H=+h[C+(j<<3)>>3];I=j+1|0;G=+h[B+(I<<3)>>3];g[a+(j<<2)>>2]=-H;i=i+G*H;c=c+H*H;j=I}H=i-A*c;l=D;return +H}function _f(a,b,c){a=a|0;b=b|0;c=+c;var d=0.0,e=0,f=0;e=b+-1|0;d=c;b=0;while(1){if((b|0)>=(e|0))break;f=a+(b<<2)|0;g[f>>2]=+g[f>>2]*d;d=d*c;b=b+1|0}f=a+(e<<2)|0;g[f>>2]=+g[f>>2]*d;return}function $f(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,f=0,h=0.0,i=0.0,j=0.0,k=0.0;f=b+-3|0;c=((f|0)>0?f:0)+3&-4;d=0.0;e=0;while(1){if((e|0)>=(f|0))break;k=+g[a+(e<<2)>>2];j=+g[a+((e|1)<<2)>>2];i=+g[a+((e|2)<<2)>>2];h=+g[a+((e|3)<<2)>>2];d=d+(k*k+j*j+i*i+h*h);e=e+4|0}while(1){if((c|0)>=(b|0))break;k=+g[a+(c<<2)>>2];d=d+k*k;c=c+1|0}return +d}function ag(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0.0,f=0,h=0,i=0,j=0,k=0;h=c+-3|0;d=((h|0)>0?h:0)+3&-4;e=0.0;f=0;while(1){if((f|0)>=(h|0))break;k=f|1;j=f|2;i=f|3;e=e+(+g[a+(f<<2)>>2]*+g[b+(f<<2)>>2]+ +g[a+(k<<2)>>2]*+g[b+(k<<2)>>2]+ +g[a+(j<<2)>>2]*+g[b+(j<<2)>>2]+ +g[a+(i<<2)>>2]*+g[b+(i<<2)>>2]);f=f+4|0}while(1){if((d|0)>=(c|0))break;e=e+ +g[a+(d<<2)>>2]*+g[b+(d<<2)>>2];d=d+1|0}return +e}function bg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0.0,h=0,i=0,j=0,k=0.0,l=0.0,m=0;e=0;while(1){if((e|0)>=(c|0))break;f=+g[b+(e<<2)>>2];h=e+1|0;i=h>>1;d=0;while(1){if((d|0)>=(i|0))break;m=a+(d<<2)|0;k=+g[m>>2];j=a+(e-d+-1<<2)|0;l=+g[j>>2];g[m>>2]=k+l*f;g[j>>2]=l+k*f;d=d+1|0}g[a+(e<<2)>>2]=-f;e=h}return}function cg(d,f,h,i,j,k,m,n,o,p,q){d=d|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=+m;n=+n;o=o|0;p=p|0;q=q|0;var r=0,s=0,t=0,u=0,v=0.0,w=0,x=0,y=0.0,z=0,A=0,B=0,C=0.0,D=0,E=0.0,F=0.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,S=0,T=0,U=0,V=0,W=0,X=0;X=l;l=l+13680|0;K=X+8888|0;D=X+8248|0;r=X+13032|0;w=X+12712|0;x=X;N=X+5864|0;I=X+5604|0;O=X+5560|0;P=X+5464|0;L=X+12408|0;T=X+2744|0;U=X+24|0;s=X+11128|0;t=X+10168|0;u=R((q*5|0)+20|0,o)|0;z=q*20|0;A=z+80|0;B=(q*40|0)+160|0;S=o*5|0;W=o<<1;V=o*18|0;Q=V+-1|0;M=(o|0)==16;do if(!M)if((o|0)==12){dg(t,d,u);c[x>>2]=0;c[x+4>>2]=0;c[x+8>>2]=0;c[x+12>>2]=0;c[x+16>>2]=0;c[x+20>>2]=0;Oe(x,r,t,u);eg(K,r,B);s=x;break}else{dg(r,d,B);s=x;break}else{dg(s,d,u);J=x;c[J>>2]=0;c[J+4>>2]=0;Pe(x,r,s,u);eg(K,r,B);s=x}while(0);J=x;c[J>>2]=0;c[J+4>>2]=0;Pe(s,w,r,B);eg(D,w,A);r=z+79|0;while(1){if((r|0)<=0)break;s=D+(r<<2)|0;r=r+-1|0;v=+(~~+g[s>>2]|0)+ +g[D+(r<<2)>>2];if(!(v>32767.0)){if(v<-32768.0)v=-32768.0}else v=32767.0;g[s>>2]=+(~~v<<16>>16)}Qh(N|0,0,q*596|0)|0;w=q>>1;x=I+256|0;z=N+32|0;u=0;s=D+320|0;while(1){if((u|0)>=(w|0)){r=72;break}t=s+-32|0;jc(s,s+-288|0,I,40,65);H=+g[x>>2];v=+$f(s,40);v=v+ +$f(t,40)+16.0e4;g[z>>2]=+g[z>>2]+H*2.0/v;r=9;while(1){if((r|0)==73)break;J=t+-4|0;G=+g[J>>2];H=+g[t+156>>2];H=v+(G*G-H*H);D=N+(r<<2)|0;g[D>>2]=+g[D>>2]+ +g[I+(72-r<<2)>>2]*2.0/H;r=r+1|0;t=J;v=H}u=u+1|0;s=s+160|0}while(1){if((r|0)<=7)break;J=N+(r<<2)|0;H=+g[J>>2];g[J>>2]=H-H*+(r|0)*.000244140625;r=r+-1|0}r=(p<<1)+4|0;ng(z,P,65,r);v=+g[z>>2];if(v<.20000000298023224){Qh(f|0,0,q<<2|0)|0;g[j>>2]=0.0;b[h>>1]=0;h=1;W=0;a[i>>0]=W;l=X;return h|0}v=v*m;s=0;while(1){if((s|0)>=(r|0)){s=r;break}if(!(+g[N+(s+8<<2)>>2]>v))break;J=P+(s<<2)|0;c[J>>2]=(c[J>>2]<<1)+16;s=s+1|0}r=11;while(1){if((r|0)==148){r=0;break}b[L+(r<<1)>>1]=0;r=r+1|0}while(1){if((r|0)>=(s|0)){r=146;break}b[L+(c[P+(r<<2)>>2]<<1)>>1]=1;r=r+1|0}while(1){if((r|0)<=15){J=0;r=16;break}J=r+-1|0;I=L+(r<<1)|0;b[I>>1]=(e[I>>1]|0)+((e[L+(J<<1)>>1]|0)+(e[L+(r+-2<<1)>>1]|0));r=J}while(1){if((r|0)==144){r=146;break}s=r+1|0;if((b[L+(s<<1)>>1]|0)<=0){r=s;continue}c[P+(J<<2)>>2]=r;J=J+1|0;r=s}while(1){if((r|0)<=15){r=0;s=16;break}I=r+-1|0;D=L+(r<<1)|0;b[D>>1]=(e[D>>1]|0)+((e[L+(I<<1)>>1]|0)+(e[L+(r+-2<<1)>>1]|0)+(e[L+(r+-3<<1)>>1]|0));r=I}while(1){if((s|0)==147)break;if((b[L+(s<<1)>>1]|0)>0){b[L+(r<<1)>>1]=s+65534;r=r+1|0}s=s+1|0}Qh(N|0,0,2384)|0;z=(o|0)==8;x=0;u=z?d+640|0:K+640|0;while(1){if((x|0)>=(q|0))break;m=+$f(u,40)+1.0;t=0;while(1){if((t|0)>=(r|0))break;w=b[L+(t<<1)>>1]|0;s=u+(0-w<<2)|0;v=+ag(s,u,40);if(v>0.0)v=v*2.0/(+$f(s,40)+m);else v=0.0;g[N+(x*596|0)+(w<<2)>>2]=v;t=t+1|0}x=x+1|0;u=u+160|0}if((k|0)>0){if((o|0)==12)k=(k<<1|0)/3|0;else k=k>>(M&1);H=+fg(+(k|0))}else H=0.0;I=(q|0)==4;if(I){B=33701;D=11;A=z&(p|0)>0?11:3}else{B=33667;D=3;A=3}F=+(q|0);G=F*.20000000298023224;x=(k|0)>0;E=F*n;z=-1;r=0;y=-1.0e3;C=0.0;u=0;while(1){if((u|0)>=(J|0))break;w=c[P+(u<<2)>>2]|0;k=0;while(1){if((k|0)>=(A|0)){s=0;n=-1.0e3;k=0;break}t=O+(k<<2)|0;g[t>>2]=0.0;s=0;v=0.0;while(1){if((s|0)>=(q|0))break;n=v+ +g[N+(s*596|0)+(w+(a[B+((R(s,D)|0)+k)>>0]|0)<<2)>>2];g[t>>2]=n;s=s+1|0;v=n}k=k+1|0}while(1){if((k|0)>=(A|0))break;m=+g[O+(k<<2)>>2];M=m>n;s=M?k:s;n=M?m:n;k=k+1|0}m=+fg(+(w|0));v=n-G*m;if(x){m=m-H;m=m*m;v=v-G*+g[j>>2]*m/(m+.5)}M=v>y&n>E;z=M?w:z;r=M?s:r;y=M?v:y;C=M?n:C;u=u+1|0}if((z|0)==-1){c[f>>2]=0;c[f+4>>2]=0;c[f+8>>2]=0;c[f+12>>2]=0;g[j>>2]=0.0;b[h>>1]=0;h=1;W=0;a[i>>0]=W;l=X;return h|0}g[j>>2]=C/F;if((o|0)>8){if((o|0)==12){k=(z<<16>>16)*3|0;k=(k>>1)+(k&1)|0}else k=z<<1;if((W|0)<(V|0))if((k|0)<(V|0))k=(k|0)<(W|0)?W:k;else k=Q;else if((k|0)>(W|0))k=W;else k=(k|0)<(Q|0)?Q:k;r=gg(k+-2|0,W)|0;A=hg(k+2|0,Q)|0;ig(U,d,r,S,q,p);jg(T,d,r,S,q,p);C=.05000000074505806/+(k|0);if(I){B=33745;D=34;z=a[33905+p>>0]|0}else{B=33673;D=12;z=12}y=+$f(d+(o*20<<2)|0,R(S,q)|0)+1.0;w=k;x=0;u=r;r=0;v=-1.0e3;while(1){if((u|0)>(A|0))break;else{k=w;t=0}while(1){if((t|0)<(z|0)){m=0.0;n=y;s=0}else break;while(1){if((s|0)>=(q|0))break;m=m+ +g[U+(s*680|0)+(t*20|0)+(x<<2)>>2];n=n+ +g[T+(s*680|0)+(t*20|0)+(x<<2)>>2];s=s+1|0}if(m>0.0)m=m*2.0/n*(1.0-C*+(t|0));else m=0.0;if(m>v){o=(u+(a[33745+t>>0]|0)|0)<(V|0);k=o?u:k;r=o?t:r;v=o?m:v}t=t+1|0}w=k;x=x+1|0;u=u+1|0}t=(W|0)>(V|0);s=0;while(1){if((s|0)>=(q|0))break;k=w+(a[B+((R(s,D)|0)+r)>>0]|0)|0;u=f+(s<<2)|0;c[u>>2]=k;if(t)if((k|0)>(W|0))k=W;else k=(k|0)<(V|0)?V:k;else if((k|0)>(V|0))k=V;else k=(k|0)<(W|0)?W:k;c[u>>2]=k;s=s+1|0}k=w-W|0}else{k=0;while(1){if((k|0)>=(q|0))break;W=z+(a[B+((R(k,D)|0)+r)>>0]|0)|0;c[f+(k<<2)>>2]=(W|0)>144?144:(W|0)>16?W:16;k=k+1|0}k=z+65520|0}b[h>>1]=k;h=0;W=r&255;a[i>>0]=W;l=X;return h|0}function dg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;while(1){e=d+-1|0;if((d|0)<=0)break;d=Jh(+g[c+(e<<2)>>2])|0;b[a+(e<<1)>>1]=(d|0)>32767?32767:((d|0)>-32768?d:-32768)&65535;d=e}return}function eg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;while(1){e=d+-1|0;if((d|0)<=0)break;g[a+(e<<2)>>2]=+(b[c+(e<<1)>>1]|0);d=e}return}function fg(a){a=+a;return +(+Ih(a)*3.32192809488736)}function gg(a,b){a=a|0;b=b|0;return ((a|0)>(b|0)?a:b)|0}function hg(a,b){a=a|0;b=b|0;return ((a|0)<(b|0)?a:b)|0}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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;u=l;l=l+176|0;s=u+88|0;t=u;if((g|0)==4){p=33745;q=33881+(h<<3)|0;r=34;o=a[33905+h>>0]|0}else{p=33673;q=33697;r=12;o=12}n=0-e|0;m=0;j=d+(f<<2<<2)|0;while(1){if((m|0)>=(g|0))break;d=m<<1;k=a[q+d>>0]|0;d=a[q+(d|1)>>0]|0;jc(j,j+(n<<2)+(0-d<<2)|0,t,f,d-k+1|0);h=0;e=k;while(1){if((d|0)<(e|0))break;c[s+(h<<2)>>2]=c[t+(d-e<<2)>>2];h=h+1|0;e=e+1|0}d=R(m,r)|0;h=0;while(1){if((h|0)>=(o|0))break;i=(a[p+(d+h)>>0]|0)-k|0;e=0;while(1){if((e|0)==5)break;c[b+(m*680|0)+(h*20|0)+(e<<2)>>2]=c[s+(i+e<<2)>>2];e=e+1|0}h=h+1|0}m=m+1|0;j=j+(f<<2)|0}l=u;return}function jg(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.0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0,x=0.0;v=l;l=l+96|0;u=v;if((h|0)==4){r=33745;s=33881+(i<<3)|0;t=34;q=a[33905+i>>0]|0}else{r=33673;s=33697;t=12;q=12}n=d+(f<<2<<2)|0;o=0;while(1){if((o|0)>=(h|0))break;k=o<<1;p=a[s+k>>0]|0;d=n+(0-(p+e)<<2)|0;j=+$f(d,f)+.001;g[u>>2]=j;k=(a[s+(k|1)>>0]|0)-p|0;i=1;while(1){if((i|0)>(k|0))break;x=+g[d+(f-i<<2)>>2];w=+g[d+(0-i<<2)>>2];w=j-x*x+w*w;g[u+(i<<2)>>2]=w;i=i+1|0;j=w}k=R(o,t)|0;d=0;while(1){if((d|0)>=(q|0))break;m=(a[r+(k+d)>>0]|0)-p|0;i=0;while(1){if((i|0)==5)break;c[b+(o*680|0)+(d*20|0)+(i<<2)>>2]=c[u+(m+i<<2)>>2];i=i+1|0}d=d+1|0}n=n+(f<<2)|0;o=o+1|0}l=v;return}function kg(a,b,c,d){a=a|0;b=b|0;c=+c;d=d|0;var e=0,f=0,h=0;e=d&65532;f=0;while(1){if((f|0)>=(e|0))break;g[a+(f<<2)>>2]=+g[b+(f<<2)>>2]*c;h=f|1;g[a+(h<<2)>>2]=+g[b+(h<<2)>>2]*c;h=f|2;g[a+(h<<2)>>2]=+g[b+(h<<2)>>2]*c;h=f|3;g[a+(h<<2)>>2]=+g[b+(h<<2)>>2]*c;f=f+4|0}while(1){if((e|0)>=(d|0))break;g[a+(e<<2)>>2]=+g[b+(e<<2)>>2]*c;e=e+1|0}return}function lg(a,b,c){a=a|0;b=+b;c=c|0;var d=0,e=0,f=0;d=c&65532;e=0;while(1){if((e|0)>=(d|0))break;f=a+(e<<2)|0;g[f>>2]=+g[f>>2]*b;f=a+((e|1)<<2)|0;g[f>>2]=+g[f>>2]*b;f=a+((e|2)<<2)|0;g[f>>2]=+g[f>>2]*b;f=a+((e|3)<<2)|0;g[f>>2]=+g[f>>2]*b;e=e+4|0}while(1){if((d|0)>=(c|0))break;f=a+(d<<2)|0;g[f>>2]=+g[f>>2]*b;d=d+1|0}return}function mg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,i=0.0,j=0,k=0,m=0,n=0,o=0.0,p=0.0,q=0;m=l;l=l+400|0;k=m;d=0;while(1){i=+g[b+(d<<2)>>2];h[k+(d<<4)+8>>3]=i;h[k+(d<<4)>>3]=i;if((d|0)<(c|0))d=d+1|0;else break}e=k+8|0;b=0;a:while(1){if((b|0)>=(c|0))break;f=b+1|0;i=+h[e>>3];i=-+h[k+(f<<4)>>3]/(i>9.999999717180685e-10?i:9.999999717180685e-10);g[a+(b<<2)>>2]=i;j=c-b|0;d=0;while(1){if((d|0)>=(j|0)){b=f;continue a}q=k+(d+b+1<<4)|0;o=+h[q>>3];n=k+(d<<4)+8|0;p=+h[n>>3];h[q>>3]=o+p*i;h[n>>3]=p+o*i;d=d+1|0}}l=m;return +(+h[e>>3])}function ng(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.0,k=0.0,l=0;f=0;while(1){if((f|0)>=(e|0)){i=1;break}c[b+(f<<2)>>2]=f;f=f+1|0}while(1){if((i|0)>=(e|0))break;j=+g[a+(i<<2)>>2];h=i;while(1){f=h+-1|0;if((h|0)<=0)break;k=+g[a+(f<<2)>>2];if(!(j>k))break;g[a+(h<<2)>>2]=k;c[b+(h<<2)>>2]=c[b+(f<<2)>>2];h=f}g[a+(h<<2)>>2]=j;c[b+(h<<2)>>2]=i;i=i+1|0}l=a+(e+-1<<2)|0;i=e+-2|0;h=e;while(1){if((h|0)>=(d|0))break;j=+g[a+(h<<2)>>2];if(j>+g[l>>2]){f=i;while(1){if((f|0)<=-1)break;k=+g[a+(f<<2)>>2];if(!(j>k))break;e=f+1|0;g[a+(e<<2)>>2]=k;c[b+(e<<2)>>2]=c[b+(f<<2)>>2];f=f+-1|0}e=f+1|0;g[a+(e<<2)>>2]=j;c[b+(e<<2)>>2]=h}h=h+1|0}return}function og(b,c){b=b|0;c=c|0;var d=0;if((b|0)<252){a[c>>0]=b;c=1;return c|0}else{d=b|252;a[c>>0]=d;a[c+1>>0]=(b-(d&255)|0)>>>2;c=2;return c|0}return 0}function pg(a,b){a=a|0;b=b|0;if(a<<24>>24<0){b=(b<<((a&255)>>>3&3)|0)/400|0;return b|0}if((a&96)==96)if(!(a&8)){b=(b|0)/100|0;return b|0}else{b=(b|0)/50|0;return b|0}else{a=(a&255)>>>3&3;if((a|0)==3){b=(b*60|0)/1e3|0;return b|0}else{b=(b<>0]|0;n=pg(I,48e3)|0;o=d+1|0;r=e+-1|0;a:do switch(I&3){case 0:{x=0;y=1;w=o;m=r;l=r;s=29;break}case 1:{if(!f)if(!(r&1)){A=(r|0)/2|0;b[i>>1]=A;z=2;B=o;s=37;break a}else{I=-4;return I|0}else{F=1;H=2;E=o;G=r;C=r;s=30}break}case 2:{k=rg(o,r,i)|0;l=r-k|0;d=b[i>>1]|0;if(d<<16>>16<0){I=-4;return I|0}d=d<<16>>16;if((l|0)<(d|0)){I=-4;return I|0}else{x=0;y=2;w=o+k|0;m=l-d|0;s=29;break a}}default:{if((e|0)<2){I=-4;return I|0}k=d+2|0;o=a[o>>0]|0;t=o&63;v=t&255;if(t<<24>>24==0|(R(n,v)|0)>5760){I=-4;return I|0}d=e+-2|0;if(o&64){while(1){if((d|0)<1){u=-4;s=46;break}q=k+1|0;p=a[k>>0]|0;if(p<<24>>24!=-1)break;k=q;d=d+-255|0}if((s|0)==46)return u|0;d=d+-1-(p&255)|0;if((d|0)<0){I=-4;return I|0}else{n=d;e=q}}else{n=d;e=k}s=(o&255)>>>7^1;t=s&255;if(s<<24>>24){if(f|0){F=t;H=v;E=e;G=r;C=n;s=30;break a}m=(n|0)/(v|0)|0;if((R(m,v)|0)!=(n|0)){I=-4;return I|0}k=v+-1|0;l=m&65535;d=0;while(1){if((d|0)>=(k|0)){x=t;y=v;w=e;l=n;s=29;break a}b[i+(d<<1)>>1]=l;d=d+1|0}}q=v+-1|0;o=0;r=n;p=e;while(1){if((o|0)>=(q|0)){s=23;break}d=i+(o<<1)|0;k=rg(p,n,d)|0;e=n-k|0;d=b[d>>1]|0;if(d<<16>>16<0){u=-4;s=46;break}d=d<<16>>16;if((d|0)>(e|0)){u=-4;s=46;break}o=o+1|0;r=r-(k+d)|0;p=p+k|0;n=e}if((s|0)==23){if((r|0)<0)u=-4;else{x=t;y=v;w=p;m=r;l=n;s=29;break a}return u|0}else if((s|0)==46)return u|0}}while(0);if((s|0)==29)if(!f){z=y;A=m;B=w;s=37}else{F=x;H=y;E=w;G=m;C=l;s=30}b:do if((s|0)==30){l=rg(E,C,i+(H<<1)+-2|0)|0;k=C-l|0;m=H+-1|0;e=i+(m<<1)|0;j=b[e>>1]|0;if(j<<16>>16<0){I=-4;return I|0}d=j<<16>>16;if((d|0)>(k|0)){I=-4;return I|0}j=E+l|0;if(!F){if((l+d|0)>(G|0))u=-4;else{D=H;break}return u|0}if((R(d,H)|0)>(k|0)){I=-4;return I|0}else d=0;while(1){if((d|0)>=(m|0)){D=H;break b}b[i+(d<<1)>>1]=b[e>>1]|0;d=d+1|0}}else if((s|0)==37)if((A|0)>1275){I=-4;return I|0}else{b[i+(z+-1<<1)>>1]=A;D=z;j=B;break}while(0);k=(h|0)==0;d=0;while(1){if((d|0)>=(D|0))break;if(!k)c[h+(d<<2)>>2]=j;H=j+(b[i+(d<<1)>>1]|0)|0;d=d+1|0;j=H}if(!g){I=D;return I|0}a[g>>0]=I;I=D;return I|0}function rg(c,e,f){c=c|0;e=e|0;f=f|0;var g=0,h=0;do if((e|0)>=1){h=a[c>>0]|0;if((h&255)<252){g=1;e=h&255;break}if((e|0)>=2){g=2;e=((d[c+1>>0]|0)<<2)+(h&255)&65535}else{g=-1;e=-1}}else{g=-1;e=-1}while(0);b[f>>1]=e;return g|0}function sg(b,c){b=b|0;c=c|0;a:do if((c|0)>=1){switch(a[b>>0]&3){case 0:{b=1;break a}case 3:break;default:{b=2;break a}}if((c|0)<2)b=-4;else b=a[b+1>>0]&63}else b=-1;while(0);return b|0}function tg(a){a=a|0;var b=0,d=0,e=0;d=l;l=l+16|0;b=d;if((a+-1|0)>>>0>1){b=0;l=d;return b|0}if(Sc(b)|0){b=0;l=d;return b|0}e=ug(c[b>>2]|0)|0;c[b>>2]=e;b=Za(a)|0;b=(ug(18036)|0)+e+b|0;l=d;return b|0}function ug(a){a=a|0;return a+3&-4|0}function vg(a,d,e,f){a=a|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,m=0,n=0,o=0;o=l;l=l+16|0;n=o+8|0;m=o;h=o+12|0;a:do if((d|0)<16e3)if((d|0)<12e3){switch(d|0){case 8e3:break a;default:h=-1}l=o;return h|0}else{switch(d|0){case 12e3:break a;default:h=-1}l=o;return h|0}else{if((d|0)<24e3){switch(d|0){case 16e3:break a;default:h=-1}l=o;return h|0}if((d|0)<48e3){switch(d|0){case 24e3:break a;default:h=-1}l=o;return h|0}else{switch(d|0){case 48e3:break a;default:h=-1}l=o;return h|0}}while(0);if((e+-1|0)>>>0>=2){n=-1;l=o;return n|0}switch(f|0){case 2051:case 2049:case 2048:break;default:{n=-1;l=o;return n|0}}Qh(a|0,0,tg(e)|0)|0;if(Sc(h)|0){n=-1;l=o;return n|0}i=ug(c[h>>2]|0)|0;c[h>>2]=i;k=ug(18036)|0;c[a+4>>2]=k;h=k+i|0;c[a>>2]=h;h=a+h|0;c[a+112>>2]=e;c[a+14088>>2]=e;i=a+144|0;c[i>>2]=d;j=a+180|0;c[j>>2]=0;if(Tc(a+k|0,0,a+8|0)|0){n=-3;l=o;return n|0}c[a+8>>2]=e;c[a+12>>2]=e;c[a+16>>2]=c[i>>2];c[a+20>>2]=16e3;c[a+24>>2]=8e3;c[a+28>>2]=16e3;c[a+32>>2]=20;c[a+36>>2]=25e3;c[a+40>>2]=0;k=a+44|0;c[k>>2]=9;c[a+48>>2]=0;c[a+56>>2]=0;c[a+60>>2]=0;c[a+76>>2]=0;if($a(h,d,e,c[j>>2]|0)|0){n=-3;l=o;return n|0}c[m>>2]=0;bb(h,10016,m)|0;c[n>>2]=c[k>>2];bb(h,4010,n)|0;c[a+148>>2]=1;c[a+152>>2]=1;c[a+164>>2]=-1e3;c[a+160>>2]=(R(d,e)|0)+3e3;n=a+108|0;c[n>>2]=f;c[a+124>>2]=-1e3;c[a+128>>2]=-1e3;c[a+132>>2]=1105;c[a+120>>2]=-1e3;c[a+136>>2]=-1e3;c[a+140>>2]=-1;m=c[i>>2]|0;c[a+172>>2]=(m|0)/100|0;c[a+168>>2]=24;c[a+156>>2]=5e3;c[a+116>>2]=(m|0)/250|0;b[a+14092>>1]=16384;g[a+14100>>2]=1.0;c[a+14096>>2]=(ue(60)|0)<<8;c[a+14148>>2]=1;c[a+14120>>2]=1001;c[a+14136>>2]=1105;bh(a+188|0,c[i>>2]|0);c[a+192>>2]=c[n>>2];n=0;l=o;return n|0}function wg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,g=0;a:do if((a|0)<16e3)if((a|0)<12e3)switch(a|0){case 8e3:{f=2;break a}default:break a}else switch(a|0){case 12e3:{f=2;break a}default:break a}else{if((a|0)<24e3)switch(a|0){case 16e3:{f=2;break a}default:break a}if((a|0)<48e3)switch(a|0){case 24e3:{f=2;break a}default:break a}else switch(a|0){case 48e3:{f=2;break a}default:break a}}while(0);b:do if((f|0)==2?(b+-1|0)>>>0<2:0){switch(d|0){case 2051:case 2049:case 2048:break;default:break b}g=xg(tg(b)|0)|0;if(!g){if(!e){e=0;return e|0}c[e>>2]=-7;e=0;return e|0}f=vg(g,a,b,d)|0;if(e|0)c[e>>2]=f;if(!f){e=g;return e|0}yg(g);e=0;return e|0}while(0);if(!e){e=0;return e|0}c[e>>2]=-1;e=0;return e|0}function xg(a){a=a|0;return Kh(a)|0}function yg(a){a=a|0;Lh(a);return}function zg(a,b,c,d,e,f,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0,j=0.0;i=0;while(1){if((i|0)>=(c|0))break;g[b+(i<<2)>>2]=+g[a+((R(i+d|0,h)|0)+e<<2)>>2]*32768.0;i=i+1|0}if((f|0)>-1){i=0;while(1){if((i|0)>=(c|0))break;j=+g[a+((R(i+d|0,h)|0)+f<<2)>>2]*32768.0;e=b+(i<<2)|0;g[e>>2]=+g[e>>2]+j;i=i+1|0}return}if((f|0)==-2)i=1;else return;while(1){if((i|0)<(h|0))e=0;else break;while(1){if((e|0)>=(c|0))break;j=+g[a+((R(e+d|0,h)|0)+i<<2)>>2]*32768.0;f=b+(e<<2)|0;g[f>>2]=+g[f>>2]+j;e=e+1|0}i=i+1|0}return}function Ag(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=(c|0)/400|0;if((d|0)>(a|0)){c=-1;return c|0}if((b|0)!=5e3){if((b+-5001|0)>>>0>=9){c=-1;return c|0}if((b|0)<5006)b=d<(a|0)){c=-1;return c|0}}else b=a;if(!((b*400|0)==(c|0)|(b*200|0)==(c|0)|(b*100|0)==(c|0))?(a=b*50|0,!((a|0)==(c|0)|(b*25|0)==(c|0)|(a|0)==(c*3|0)|(a|0)==(c<<2|0)|(a|0)==(c*5|0)|(a|0)==(c*6|0))):0){c=-1;return c|0}c=b;return c|0}function Bg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0.0,f=0.0,h=0.0,i=0,j=0.0,k=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;k=(c|0)/(b|0)|0;i=(k|0)<50;j=25.0/+(k|0);b=b+-3|0;c=0;f=0.0;h=0.0;e=0.0;while(1){if((c|0)>=(b|0))break;t=c<<1;o=+g[a+(t<<2)>>2];s=+g[a+((t|1)<<2)>>2];n=+g[a+((t|2)<<2)>>2];r=+g[a+((t|3)<<2)>>2];m=+g[a+((t|4)<<2)>>2];q=+g[a+((t|5)<<2)>>2];l=+g[a+((t|6)<<2)>>2];p=+g[a+((t|7)<<2)>>2];c=c+4|0;f=f+(s*s+r*r+q*q+p*p);h=h+(o*s+n*r+m*q+l*p);e=e+(o*o+n*n+m*m+l*l)}r=i?.5:1.0-j;s=+g[d>>2];e=s+r*(e-s);g[d>>2]=e;c=d+4|0;s=+g[c>>2];s=s+r*(h-s);g[c>>2]=s;t=d+8|0;h=+g[t>>2];h=h+r*(f-h);g[t>>2]=h;e=e<0.0?0.0:e;g[d>>2]=e;f=s<0.0?0.0:s;g[c>>2]=f;h=h<0.0?0.0:h;g[t>>2]=h;if((e>h?e:h)>7.999999797903001e-04){p=+F(+e);r=+F(+h);s=+F(+p);q=+F(+r);r=p*r;p=f>2]=p;r=p/(r+1.0000000036274937e-15);q=+F(+(1.0-r*r))*(+E(+(s-q))/(s+1.0000000036274937e-15+q));t=d+12|0;s=+g[t>>2];r=+(k|0);s=s+(q-s)/r;g[t>>2]=s;t=d+16|0;r=+g[t>>2]-.019999999552965164/r;s=r>s?r:s;g[t>>2]=s;s=s*20.0;t=s>1.0;s=t?1.0:s;return +s}else{s=+g[d+16>>2];s=s*20.0;t=s>1.0;s=t?1.0:s;return +s}return 0.0} +function Cg(d,e,f,h,i,j,k,m,n,o,p,q){d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|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.0,w=0.0,x=0.0,y=0,z=0,A=0.0,B=0,C=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,P=0,Q=0,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,ga=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0;Ya=l;l=l+528|0;Sa=Ya+240|0;Pa=Ya+232|0;Oa=Ya+224|0;Na=Ya+216|0;Ma=Ya+208|0;La=Ya+200|0;Ka=Ya+192|0;Ja=Ya+184|0;Ia=Ya+176|0;Ha=Ya+168|0;Fa=Ya+160|0;Ea=Ya+152|0;Da=Ya+144|0;Ca=Ya+136|0;Ba=Ya+128|0;Aa=Ya+120|0;za=Ya+112|0;ya=Ya+104|0;xa=Ya+96|0;ka=Ya+88|0;ja=Ya+80|0;ia=Ya+72|0;ga=Ya+64|0;ea=Ya+56|0;ba=Ya+48|0;aa=Ya+40|0;$=Ya+32|0;da=Ya+24|0;ca=Ya+16|0;N=Ya+8|0;s=Ya;_=Ya+512|0;Va=Ya+464|0;Ta=Ya+460|0;qa=Ya+456|0;Ua=Ya+400|0;G=Ya+296|0;H=Ya+264|0;Y=Ya+256|0;wa=Ya+248|0;Ga=Ya+518|0;Qa=Ya+516|0;c[Ta>>2]=0;r=(i|0)<1276?i:1276;Wa=d+18032|0;c[Wa>>2]=0;if((f|0)<1|(r|0)<1){h=-1;l=Ya;return h|0}if((r|0)==1?(c[d+144>>2]|0)==(f*10|0):0){h=-2;l=Ya;return h|0}Z=d+(c[d+4>>2]|0)|0;Ra=d+(c[d>>2]|0)|0;U=d+108|0;if((c[U>>2]|0)==2051)na=0;else na=c[d+116>>2]|0;P=c[d+168>>2]|0;P=(P|0)>(j|0)?j:P;c[s>>2]=qa;bb(Ra,10015,s)|0;c[Ua>>2]=0;y=d+44|0;do if((c[y>>2]|0)>6?(u=c[d+144>>2]|0,(u|0)>15999):0){j=d+112|0;if(Dg(e,f,c[j>>2]|0,P)|0){p=d+18016|0;c[p>>2]=0;s=-1;M=-1;va=1;break}s=c[d+8464>>2]|0;t=c[d+8468>>2]|0;eh(d+188|0,c[qa>>2]|0,k,m,f,0,n,o,u,P,p,Ua);if(+g[Ua+32>>2]>.10000000149011612){sa=d+18024|0;x=+g[sa>>2]*.9990000128746033;A=+Eg(e,f,c[j>>2]|0);g[sa>>2]=x>A?x:A;sa=12}else sa=12}else{s=-1;t=-1;sa=12}while(0);if((sa|0)==12){c[d+140>>2]=-1;Xa=c[Ua>>2]|0;p=d+18016|0;c[p>>2]=0;if(!Xa){M=t;va=0}else{if((c[d+124>>2]|0)==-1e3)c[d+140>>2]=~~+D(+((1.0-+g[Ua+20>>2])*100.0+.5));j=c[Ua+28>>2]|0;if((j|0)>=13)if((j|0)>=15)if((j|0)<17)j=1103;else j=(j|0)<19?1104:1105;else j=1102;else j=1101;c[p>>2]=j;M=t;va=0}}ua=d+112|0;if((c[ua>>2]|0)==2?(c[d+120>>2]|0)!=1:0)v=+Bg(e,f,c[d+144>>2]|0,d+14156|0);else v=0.0;j=Fg(d,f,r)|0;pa=d+160|0;c[pa>>2]=j;ta=d+144|0;z=c[ta>>2]|0;t=(z|0)/(f|0)|0;Xa=d+148|0;B=c[Xa>>2]|0;if(!B){ra=(z*12|0)/(f|0)|0;j=(((j*12|0)/8|0)+((ra|0)/2|0)|0)/(ra|0)|0;r=(j|0)<(r|0)?j:r;j=((R(r,ra)|0)<<3|0)/12|0;c[pa>>2]=j;if((r|0)<1)r=1;else sa=25}else sa=25;do if((sa|0)==25)if(!((r|0)<3|(j|0)<(t*24|0))){if((t|0)<50){u=R(r,t)|0;if((u|0)<300|(j|0)<2400)break;else V=u}else V=R(t,r)|0;W=V<<3;m=c[ua>>2]|0;o=c[y>>2]|0;L=d+40|0;y=c[L>>2]|0;k=Hg(j,m,t,B,0,o,y)|0;a:do switch(c[d+124>>2]|0){case 3001:{E=127;break}case 3002:{E=0;break}default:{u=c[d+140>>2]|0;if((u|0)>-1){E=u*327>>8;E=(c[U>>2]|0)!=2049|(E|0)<115?E:115;break a}else{E=(c[U>>2]|0)==2048?115:48;break a}}}while(0);C=d+120|0;u=c[C>>2]|0;do if(!((u|0)!=-1e3&(m|0)==2)){u=d+14088|0;if((m|0)==2){m=(k|0)>(((c[u>>2]|0)==2?23e3:25e3)|0)?2:1;c[u>>2]=m;ra=u;break}else{c[u>>2]=m;ra=u;break}}else{ra=d+14088|0;c[ra>>2]=u;m=u}while(0);n=Hg(j,m,t,B,0,o,y)|0;k=c[U>>2]|0;do if((k|0)!=2051){u=c[d+136>>2]|0;if((u|0)==-1e3){A=1.0-v;u=~~(A*16.0e3+v*16.0e3);u=u+((R(R(E,E)|0,~~(A*64.0e3+v*36.0e3)-u|0)|0)>>14)|0;u=(k|0)==2048?u+8e3|0:u;k=c[d+14124>>2]|0;if((k|0)==1002)u=u+-4e3|0;else u=(k|0)>0?u+4e3|0:u;u=(n|0)>=(u|0)?1002:1e3;k=d+14120|0;c[k>>2]=u;if((c[d+48>>2]|0)!=0?(y|0)>(128-E>>4|0):0){c[k>>2]=1e3;u=1e3}do if(c[d+184>>2]|0){if(c[Ua>>2]|0){c[d+56>>2]=0;break}c[d+56>>2]=va^1;if((va|0)==0&(E|0)>100){c[k>>2]=1e3;u=1e3}}else c[d+56>>2]=0;while(0);if((r|0)<((R((t|0)>50?9e3:6e3,f)|0)/(z<<3|0)|0|0)){c[k>>2]=1002;oa=k;u=1002;break}}else{k=d+14120|0;c[k>>2]=u}if((u|0)!=1002)if(((z|0)/100|0|0)>(f|0)){c[k>>2]=1002;oa=k;u=1002}else oa=k;else{oa=k;u=1002}}else{oa=d+14120|0;c[oa>>2]=1002;u=1002}while(0);Q=d+176|0;if(c[Q>>2]|0){c[oa>>2]=1002;u=1002}ma=d+14124|0;n=c[ma>>2]|0;do if((n|0)>0){k=(u|0)==1002;if((n|0)==1002&(k^1)){la=(u|0)!=1002;k=la&1;if(la){I=k;K=1;la=0;break}else u=k}else{if(!k){I=0;K=0;la=0;break}if((n|0)==1002){I=0;K=0;la=0;u=1002;break}u=(u|0)!=1002&1}if(((z|0)/100|0|0)>(f|0)){I=u;K=0;la=0;u=1002}else{c[oa>>2]=n;I=u;K=1;la=1;u=n}}else{I=0;K=0;la=0}while(0);if(((m|0)==1?(c[d+14128>>2]|0)==2:0)?(F=d+68|0,!((c[F>>2]|0)!=0|(u|0)==1002|(n|0)==1002)):0){c[F>>2]=1;c[ra>>2]=2;m=2}else c[d+68>>2]=0;X=Hg(j,m,t,B,u,o,y)|0;do if((u|0)!=1002){if((n|0)==1002){Tc(Z,c[d+180>>2]|0,G)|0;u=c[oa>>2]|0;j=(u|0)==1002;if(j){y=1;o=j;sa=99;break}else k=1}else{k=0;j=(u|0)==1002}if((c[d+14148>>2]|0)==0?(c[d+84>>2]|0)==0:0){o=d+14136|0;y=k;z=o;k=c[o>>2]|0;o=j}else{y=k;o=j;sa=99}}else{y=0;o=1;u=1002;sa=99}while(0);do if((sa|0)==99){if((c[ua>>2]|0)==2?(c[C>>2]|0)!=1:0){m=19400;n=19400}else{m=19400;n=19400}k=R(E,E)|0;j=0;while(1){if((j|0)==8)break;sa=c[m+(j<<2)>>2]|0;c[H+(j<<2)>>2]=sa+((R(k,(c[n+(j<<2)>>2]|0)-sa|0)|0)>>14);j=j+1|0}n=(c[d+14148>>2]|0)==0;m=d+14140|0;j=c[H+24>>2]|0;k=c[H+28>>2]|0;do if(n)if((c[m>>2]|0)<1105){j=j+k|0;break}else{j=j-k|0;break}while(0);do if((X|0)<(j|0)){j=c[H+16>>2]|0;k=c[H+20>>2]|0;do if(n)if((c[m>>2]|0)<1104){j=j+k|0;break}else{j=j-k|0;break}while(0);if((X|0)>=(j|0)){k=1104;break}j=c[H+8>>2]|0;k=c[H+12>>2]|0;do if(n)if((c[m>>2]|0)<1103){j=j+k|0;break}else{j=j-k|0;break}while(0);if((X|0)>=(j|0)){k=1103;break}j=c[H>>2]|0;k=c[H+4>>2]|0;do if(n)if((c[m>>2]|0)<1102){j=j+k|0;break}else{j=j-k|0;break}while(0);k=(X|0)<(j|0)?1101:1102}else k=1105;while(0);c[m>>2]=k;j=d+14136|0;c[j>>2]=k;if(o|n^1)z=j;else{if(!((c[d+88>>2]|0)==0&k>>>0>1103)){z=j;break}c[j>>2]=1103;z=j;k=1103}}while(0);j=c[d+132>>2]|0;if((k|0)>(j|0))c[z>>2]=j;else j=k;k=c[d+128>>2]|0;n=(k|0)==-1e3;if(!n){c[z>>2]=k;j=k}if((W|0)<15e3&(o^1)){j=(j|0)<1103?j:1103;c[z>>2]=j}k=c[ta>>2]|0;if((k|0)<24001&(j|0)>1104){c[z>>2]=1104;j=1104}if((k|0)<16001&(j|0)>1103){c[z>>2]=1103;j=1103}if((k|0)<12001&(j|0)>1102){c[z>>2]=1102;j=1102}if((k|0)<8001&(j|0)>1101){c[z>>2]=1101;k=1101}else k=j;m=c[p>>2]|0;if(!((m|0)==0|n^1)){j=c[ra>>2]|0;do if((X|0)>(j*18e3|0)|o^1){if(!((X|0)>(j*24e3|0)|o^1)){j=1102;break}if((X|0)<=(j*3e4|0)){j=1103;break}j=(X|0)>(j*44e3|0)?1105:1104}else j=1101;while(0);sa=(m|0)>(j|0)?m:j;c[p>>2]=sa;c[z>>2]=(k|0)<(sa|0)?k:sa}J=d+52|0;c[J>>2]=Ig(c[d+48>>2]|0,c[L>>2]|0,c[J>>2]|0,u,z,X)|0;c[N>>2]=P;bb(Ra,4036,N)|0;j=c[oa>>2]|0;do if((j|0)==1002){if((c[z>>2]|0)!=1102)break;c[z>>2]=1103}while(0);if(!(c[Q>>2]|0))L=c[z>>2]|0;else{c[z>>2]=1101;L=1101}do if((j|0)==1e3){if((L|0)<=1103){sa=146;break}c[oa>>2]=1001;j=1001;sa=147}else{if((j|0)!=1001){sa=147;break}if((L|0)>=1104){j=1001;sa=147;break}c[oa>>2]=1e3;sa=146}while(0);if((sa|0)==146){p=c[ta>>2]|0;k=p;j=1e3;p=(p|0)/50|0;sa=148}else if((sa|0)==147){p=c[ta>>2]|0;u=(p|0)/50|0;if((u|0)>=(f|0)|(j|0)==1e3){k=p;p=u;sa=148}else r=u}do if((sa|0)==148){if(((k*3|0)/50|0|0)<(f|0)){r=k;if((j|0)!=1e3){r=p;break}if(((r<<1|0)/25|0|0)==(f|0)){r=(r|0)/25|0;break}else{Xa=r*3|0;r=((((Xa|0)/25|0|0)==(f|0)?Xa:r)|0)/50|0;break}}N=d+14144|0;if(!(c[N>>2]|0)){H=y;s=I;p=K}else{c[N>>2]=0;H=1;s=1;p=1}if((j|0)==1002|(p|0)==0){j=0;u=0}else{u=Kg(r,c[pa>>2]|0,t,c[ra>>2]|0)|0;j=u;u=(u|0)==0?0:p}S=r-j|0;n=(R(c[pa>>2]|0,f)|0)/(k<<3|0)|0;n=(S|0)<(n|0)?S:n;S=h+1|0;P=r+-1|0;Jb(Va,S,P);M=na+f|0;K=R(M,c[ua>>2]|0)|0;T=fa()|0;i=l;l=l+((1*(K<<2)|0)+15&-16)|0;K=d+172|0;p=c[ua>>2]|0;Sh(i|0,d+14176+((R((c[K>>2]|0)-na|0,p)|0)<<2)|0,(R(na,p)|0)<<2|0)|0;if((c[oa>>2]|0)==1002){k=(ue(60)|0)<<8;p=c[ua>>2]|0}else k=c[Z+8>>2]|0;m=d+14096|0;I=c[m>>2]|0;k=k-I|0;k=I+(((k>>16)*983|0)+(((k&65535)*983|0)>>>16))|0;c[m>>2]=k;m=c[ta>>2]|0;if((c[U>>2]|0)==2048)Lg(e,ye(k>>8)|0,i+((R(na,p)|0)<<2)|0,d+14104|0,f,p,m);else Mg(e,i+((R(na,p)|0)<<2)|0,d+14104|0,f,p,m);do if(q|0){k=c[ua>>2]|0;p=i+((R(na,k)|0)<<2)|0;k=R(k,f)|0;A=+Ng(p,p,k);if(!(!(A<1.0e9)|(A!=A|0.0!=0.0)))break;Qh(p|0,0,k<<2|0)|0;q=d+14104|0;c[q>>2]=0;c[q+4>>2]=0;c[q+8>>2]=0;c[q+12>>2]=0}while(0);b:do if((c[oa>>2]|0)==1002){w=1.0;o=j;y=s;m=L;sa=228}else{m=R(c[ua>>2]|0,f)|0;I=fa()|0;G=l;l=l+((1*(m<<1)|0)+15&-16)|0;m=R((n<<3)+-8|0,t)|0;E=c[oa>>2]|0;F=(E|0)==1001;do if(!F){c[d+36>>2]=m;p=c[d+14152>>2]|0;if(!p){w=1.0;z=m}else{w=1.0;sa=174}}else{k=Og(m,L,(c[ta>>2]|0)==(f*50|0)&1,c[Xa>>2]|0,c[J>>2]|0)|0;c[d+36>>2]=k;p=c[d+14152>>2]|0;if(p|0){w=1.0;m=k;sa=174;break}w=1.0-+O(+(+(k-m|0)*.0009765625*.6931471805599453));z=k}while(0);do if((sa|0)==174){if(!(c[Xa>>2]|0)){z=m;break}if(c[Q>>2]|0){z=m;break}C=c[z>>2]|0;switch(C|0){case 1101:{y=13;A=8.0e3;break}case 1102:{y=15;A=12.0e3;break}default:{y=17;A=16.0e3}}z=c[ua>>2]|0;o=0;v=0.0;while(1){if((o|0)>=(z|0))break;B=o*21|0;n=0;while(1){if((n|0)>=(y|0))break;x=+g[p+(B+n<<2)>>2];k=x<.5;do if(x>-2.0|k^1){if(k){if(!(x>0.0))break}else x=.5;x=x*.5}else x=-2.0;while(0);v=v+x;n=n+1|0}o=o+1|0}q=~~(A*(v/+(y|0)*+(z|0)+.20000000298023224));k=d+36|0;p=(R(m,-2)|0)/3|0;p=(q|0)>(p|0)?q:p;if((C&-2|0)==1104){z=m+((p*3|0)/5|0)|0;c[k>>2]=z;break}else{z=m+p|0;c[k>>2]=z;break}}while(0);y=c[ta>>2]|0;c[d+32>>2]=(f*1e3|0)/(y|0)|0;m=c[ua>>2]|0;c[d+8>>2]=m;c[d+12>>2]=c[ra>>2];o=(L|0)==1101;c[d+28>>2]=o?8e3:(L|0)==1102?12e3:16e3;c[d+24>>2]=F?16e3:8e3;n=d+20|0;c[n>>2]=16e3;do if((E|0)==1e3){if((t|0)>50)p=(V<<4|0)/3|0;else p=W;if((p|0)>=8e3)break;c[n>>2]=12e3;k=d+28|0;c[k>>2]=o?8e3:12e3;if((p|0)>=7e3)break;c[n>>2]=8e3;c[k>>2]=8e3}while(0);k=c[Xa>>2]|0;n=(k|0)==0;c[d+60>>2]=n&1;p=(r<<3)+-8|0;o=d+64|0;c[o>>2]=p;do if((u|0)!=0&(j|0)>1){p=p-(j<<3|1)|0;c[o>>2]=p;if(!F)break;p=p+-20|0;c[o>>2]=p}while(0);do if(n){if(!F)break;W=(R(z,f)|0)/(y|0)|0;c[o>>2]=(p|0)<(W|0)?p:W}else{if(!F)break;W=(R(p,y)|0)/(f|0)|0;c[o>>2]=(R(Og(W,L,(y|0)==(f*50|0)&1,k,c[J>>2]|0)|0,f)|0)/(y|0)|0}while(0);if(H){c[Y>>2]=0;W=(y|0)/400|0;k=R(m,(c[K>>2]|0)-(c[d+116>>2]|0)-W|0)|0;V=d+14176+(k<<2)|0;p=c[qa>>2]|0;Pg(V,V,0.0,1.0,c[p+4>>2]|0,W,m,c[p+60>>2]|0,y);Qh(d+14176|0,0,k<<2|0)|0;k=c[K>>2]|0;m=R(k,c[ua>>2]|0)|0;p=0;while(1){if((p|0)>=(m|0))break;b[G+(p<<1)>>1]=Qg(+g[d+14176+(p<<2)>>2])|0;p=p+1|0}Vc(Z,d+8|0,G,k,0,Y,1)|0;m=c[ua>>2]|0}k=R(m,f)|0;p=0;while(1){if((p|0)>=(k|0))break;b[G+(p<<1)>>1]=Qg(+g[i+((R(na,m)|0)+p<<2)>>2])|0;p=p+1|0}do if(!(Vc(Z,d+8|0,G,f,Va,_,0)|0)){k=c[oa>>2]|0;c:do if((k|0)==1e3){p=c[d+80>>2]|0;d:do if((p|0)>=12e3)if((p|0)<16e3){switch(p|0){case 12e3:break;default:break d}m=1102;break c}else{switch(p|0){case 16e3:break;default:break d}m=1103;break c}else switch(p|0){case 8e3:{m=1101;break c}default:{}}while(0);m=L}else m=L;while(0);if(!(c[d+96>>2]|0))p=0;else p=(c[d+18028>>2]|0)==0;c[d+72>>2]=p&1;if(!(c[_>>2]|0)){c[Wa>>2]=0;a[h>>0]=Gg(k,(c[ta>>2]|0)/(f|0)|0,m,c[ra>>2]|0)|0;r=1;break}if(p){u=Kg(r,c[pa>>2]|0,t,c[ra>>2]|0)|0;c[N>>2]=1;j=u;s=0;u=(u|0)!=0&1}ha(I|0);o=j;y=s;sa=228;break b}else r=-3;while(0);ha(I|0)}while(0);e:do if((sa|0)==228){switch(m|0){case 1101:{j=13;break}case 1103:case 1102:{j=17;break}case 1104:{j=19;break}default:j=21}c[ca>>2]=j;bb(Ra,10012,ca)|0;c[da>>2]=c[ra>>2];bb(Ra,10008,da)|0;c[$>>2]=-1;bb(Ra,4002,$)|0;do if((c[oa>>2]|0)==1e3){t=c[ua>>2]|0;ka=((R(t,c[ta>>2]|0)|0)/400|0)<<2;n=l;l=l+((1*ka|0)+15&-16)|0}else{c[aa>>2]=0;bb(Ra,4006,aa)|0;c[ba>>2]=(c[d+76>>2]|0)==0?2:0;bb(Ra,10002,ba)|0;j=(c[Xa>>2]|0)==0;do if((c[oa>>2]|0)==1001){if(j)break;c[ea>>2]=(c[pa>>2]|0)-(c[d+36>>2]|0);bb(Ra,4002,ea)|0;c[ga>>2]=0;bb(Ra,4020,ga)|0}else{if(j)break;c[ia>>2]=1;bb(Ra,4006,ia)|0;c[ja>>2]=c[d+152>>2];bb(Ra,4020,ja)|0;c[ka>>2]=c[pa>>2];bb(Ra,4002,ka)|0}while(0);j=c[oa>>2]|0;s=c[ua>>2]|0;t=c[ta>>2]|0;p=(R(s,t)|0)/400|0;k=l;l=l+((1*(p<<2)|0)+15&-16)|0;if((j|0)==1e3){t=s;n=k;break}ka=c[ma>>2]|0;if(!((j|0)!=(ka|0)&(ka|0)>0)){t=s;n=k;break}Sh(k|0,d+14176+((R((c[K>>2]|0)-na-((t|0)/400|0)|0,s)|0)<<2)|0,p<<2|0)|0;t=s;n=k}while(0);j=c[K>>2]|0;s=d+14176|0;if((R(t,j-M|0)|0)>0){na=R(t,j-f-na|0)|0;Wh(s|0,d+14176+((R(t,f)|0)<<2)|0,na<<2|0)|0;Sh(d+14176+(na<<2)|0,i|0,(R(M,t)|0)<<2|0)|0}else Sh(s|0,i+((R(M-j|0,t)|0)<<2)|0,(R(j,t)|0)<<2|0)|0;j=d+14100|0;v=+g[j>>2];if(v<1.0|w<1.0){na=c[qa>>2]|0;Pg(i,i,v,w,c[na+4>>2]|0,f,c[ua>>2]|0,c[na+60>>2]|0,c[ta>>2]|0)}g[j>>2]=w;k=c[oa>>2]|0;if(!((k|0)==1001?(c[ra>>2]|0)!=1:0)){if((X|0)>=24e3){j=X+-24e3|0;if((j<<1|0)>16384)j=16384;else sa=251}else{j=0;sa=251}if((sa|0)==251)j=j<<1;c[d+92>>2]=j}do if(!(c[d+14152>>2]|0)){if((c[ua>>2]|0)!=2){j=k;break}t=d+14092|0;p=b[t>>1]|0;j=d+92|0;s=c[j>>2]|0;if(!(p<<16>>16<16384|(s|0)<16384)){j=k;break}qa=c[qa>>2]|0;Rg(i,i,+(p<<16>>16)*.00006103515625,+(s|0)*.00006103515625,c[qa+4>>2]|0,f,2,c[qa+60>>2]|0,c[ta>>2]|0);b[t>>1]=c[j>>2];j=c[oa>>2]|0}else j=k;while(0);do if((j|0)==1002)sa=267;else{s=Va+20|0;t=Va+28|0;qa=(Sg(c[s>>2]|0,c[t>>2]|0)|0)+17|0;j=(j|0)==1001;if((qa+(j?20:0)|0)>((r<<3)+-8|0)){sa=267;break}if(j)Qb(Va,u,12);if(!u){sa=267;break}Qb(Va,y,1);p=(c[oa>>2]|0)==1001;j=Sg(c[s>>2]|0,c[t>>2]|0)|0;j=P-(j+(p?18:7)>>3)|0;j=(j|0)<(o|0)?j:o;if((j|0)>=2)if((j|0)>257)j=257;else sa=264;else{j=2;sa=264}if(!p){k=j;break}Sb(Va,j+-2|0,256);k=j}while(0);if((sa|0)==267){c[N>>2]=0;u=0;k=0}sa=c[oa>>2]|0;t=(sa|0)==1002?0:17;if((sa|0)==1e3){j=(Sg(c[Va+20>>2]|0,c[Va+28>>2]|0)|0)+7>>3;Xb(Va);s=j}else{s=P-k|0;Wb(Va,s);j=0}p=(u|0)==0;if(p?(c[oa>>2]|0)==1e3:0)sa=275;else sa=273;do if((sa|0)==273){c[xa>>2]=Ua;bb(Ra,10022,xa)|0;if((c[oa>>2]|0)!=1001){sa=275;break}c[wa>>2]=c[d+100>>2];c[wa+4>>2]=c[d+104>>2];c[ya>>2]=wa;bb(Ra,10028,ya)|0}while(0);if((sa|0)==275){c[za>>2]=0;bb(Ra,10028,za)|0}if(!(p|(y|0)==0)){c[Aa>>2]=0;bb(Ra,10010,Aa)|0;c[Ba>>2]=0;bb(Ra,4006,Ba)|0;c[Ca>>2]=-1;bb(Ra,4002,Ca)|0;if((db(Ra,i,(c[ta>>2]|0)/200|0,S+s|0,k,0)|0)<0){r=-3;break}c[Da>>2]=Ta;bb(Ra,4031,Da)|0;bb(Ra,4028,Ea)|0}c[Fa>>2]=t;bb(Ra,10010,Fa)|0;t=c[oa>>2]|0;do if((t|0)==1e3)sa=293;else{Fa=c[ma>>2]|0;if((t|0)!=(Fa|0)&(Fa|0)>0){bb(Ra,4028,Ha)|0;db(Ra,n,(c[ta>>2]|0)/400|0,Ga,2,0)|0;c[Ia>>2]=0;bb(Ra,10002,Ia)|0}if((Sg(c[Va+20>>2]|0,c[Va+28>>2]|0)|0)>(s<<3|0)){sa=293;break}do if(!(p|(y|0)==0)){if((c[oa>>2]|0)!=1001)break;if(!(c[Xa>>2]|0))break;c[Ja>>2]=(c[pa>>2]|0)-(c[d+36>>2]|0);bb(Ra,4002,Ja)|0}while(0);c[Ka>>2]=c[Xa>>2];bb(Ra,4006,Ka)|0;j=db(Ra,i,f,0,s,Va)|0;if((j|0)<0){r=-3;break e}if(p){u=0;break}if(!y){sa=295;break}if((c[oa>>2]|0)!=1001)break;if(!(c[Xa>>2]|0))break;Wh(S+j|0,S+s|0,k|0)|0}while(0);do if((sa|0)==293){if(p){u=0;break}if(!y)sa=295}while(0);if((sa|0)==295){p=c[ta>>2]|0;t=(p|0)/200|0;p=(p|0)/400|0;bb(Ra,4028,La)|0;c[Ma>>2]=0;bb(Ra,10010,Ma)|0;c[Na>>2]=0;bb(Ra,10002,Na)|0;c[Oa>>2]=0;bb(Ra,4006,Oa)|0;c[Pa>>2]=-1;bb(Ra,4002,Pa)|0;if((c[oa>>2]|0)==1001){Wb(Va,j);s=j}Pa=f-t|0;db(Ra,i+((R(c[ua>>2]|0,Pa-p|0)|0)<<2)|0,p,Qa,2,0)|0;if((db(Ra,i+((R(c[ua>>2]|0,Pa)|0)<<2)|0,t,S+s|0,k,0)|0)<0){r=-3;break}c[Sa>>2]=Ta;bb(Ra,4031,Sa)|0}a[h>>0]=Gg(c[oa>>2]|0,(c[ta>>2]|0)/(f|0)|0,m,c[ra>>2]|0)|0;p=Va+28|0;s=c[p>>2]|0;c[Wa>>2]=s^c[Ta>>2];if(!la)t=c[oa>>2]|0;else t=1002;c[ma>>2]=t;c[d+14128>>2]=c[ra>>2];c[d+14132>>2]=f;c[d+14148>>2]=0;do if(c[d+184>>2]|0){if(!(c[Ua>>2]|va))break;if(!(Tg(+g[Ua+32>>2],d+18020|0,+g[d+18024>>2],e,f,c[ua>>2]|0,va)|0)){s=c[p>>2]|0;break}else{c[Wa>>2]=0;a[h>>0]=Gg(c[oa>>2]|0,(c[ta>>2]|0)/(f|0)|0,m,c[ra>>2]|0)|0;r=1;break e}}while(0);f:do if((Sg(c[Va+20>>2]|0,s)|0)>((r<<3)+-8|0)){if((r|0)<2){r=-2;break e}a[S>>0]=0;c[Wa>>2]=0;j=1}else{if(!((c[oa>>2]|0)==1e3&(u|0)==0))break;while(1){if((j|0)<=2)break f;if(a[h+j>>0]|0)break f;j=j+-1|0}}while(0);j=j+(k+1)|0;if(!(c[Xa>>2]|0)){if(ah(h,j,r)|0){r=-3;break}}else r=j}while(0);ha(T|0);h=r;l=Ya;return h|0}while(0);if((s|0)!=-1){c[d+8464>>2]=s;c[d+8468>>2]=M}h=Jg(d,e,(f|0)/(r|0)|0,r,h,i,la,P,q)|0;l=Ya;return h|0}while(0);j=c[d+14120>>2]|0;u=c[d+14136>>2]|0;u=(u|0)==0?1101:u;j=(j|0)==0?1e3:j;g:do if((t|0)<=100){do if((t|0)==25)if((j|0)==1e3){s=0;p=0;t=25}else{s=0;p=1;t=50;sa=37}else if((t|0)<17){if((i|0)!=1?(j|0)!=1e3|(t|0)==10:0){s=50/(t|0)|0;p=3;t=50;sa=37;break}s=0;p=(t|0)<13&1;t=(t|0)==12?25:16}else{s=0;p=0;sa=37}while(0);h:do if((sa|0)==37){switch(j|0){case 1002:{sa=39;break g}case 1e3:break h;case 1001:break;default:break g}u=(u|0)>1104?u:1104;j=1001;break g}while(0);if((u|0)>1103){u=1103;j=1e3}else{j=1e3;sa=40}}else{s=0;p=0;sa=39}while(0);if((sa|0)==39)if((u|0)==1102){u=1101;j=1002}else{j=1002;sa=40}a[h>>0]=(Gg(j,t,u,c[d+14088>>2]|0)|0)&255|p;j=(p|0)<2?1:2;r=(r|0)>(j|0)?r:j;if((p|0)==3)a[h+1>>0]=s;if(!(c[Xa>>2]|0)){h=(ah(h,j,r)|0)==0;l=Ya;return (h?r:-3)|0}else{h=j;l=Ya;return h|0}return 0}function Dg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return +Vg(a,R(b,c)|0)<=1.0/+(1<>2]|0)/400|0;e=c[a+164>>2]|0;switch(e|0){case -1e3:{d=c[a+144>>2]|0;d=((d*60|0)/(b|0)|0)+(R(d,c[a+112>>2]|0)|0)|0;return d|0}case -1:{d=(R(d<<3,c[a+144>>2]|0)|0)/(b|0)|0;return d|0}default:{d=e;return d|0}}return 0}function Gg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=0;while(1){if((b|0)>=400)break;b=b<<1;e=e+1|0}switch(a|0){case 1e3:{b=(c<<5)+96&224|(e<<3)+-16;break}case 1002:{b=((c|0)<1102?0:(c<<5)+64&96)|e<<3|128;break}default:b=c<<4|(e<<3)+240|96}return (b|((d|0)==2&1)<<2)&255|0}function Hg(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;a=a-(R((b*40|0)+20|0,c+-50|0)|0)|0;if(!d)a=a-((a|0)/12|0)|0;a=(R(a,f+90|0)|0)/100|0;switch(e|0){case 1001:case 1e3:{if((f|0)<2)a=(a<<2|0)/5|0;g=a-((R(a,g)|0)/((g*6|0)+10|0)|0)|0;return g|0}case 1002:{if((f|0)>=5){g=a;return g|0}g=(a*9|0)/10|0;return g|0}default:{g=a-((R(a,g)|0)/((g*12|0)+20|0)|0)|0;return g|0}}return 0}function Ig(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;if((a|0)==0|(b|0)==0|(e|0)==1002){m=0;return m|0}l=c[f>>2]|0;h=(b|0)<25;i=125-b|0;j=(b|0)<6;k=l;while(1){e=k<<1;a=c[19572+(e+-2202<<2)>>2]|0;e=c[19572+(e+-2201<<2)>>2]|0;switch(d|0){case 1:{a=a-e|0;break}case 0:{a=a+e|0;break}default:{}}e=((R(a,h?i:100)|0)>>16)*655|0;a=(e+((((R(a,h?125-b|0:100)|0)&65535)*655|0)>>>16)|0)<(g|0);if(a|j){a=a&1;m=10;break}if((k|0)<=1101)break;e=k+-1|0;c[f>>2]=e;k=e}if((m|0)==10)return a|0;c[f>>2]=l;m=0;return m|0}function Jg(a,b,d,e,f,g,h,i,j){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;var k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;D=l;l=l+304|0;C=D;k=(d|0)==2?3:d<<1;B=a+148|0;if((c[B>>2]|0)==0?(c[a+164>>2]|0)!=-1:0){A=((c[a+160>>2]|0)*3|0)/(((c[a+144>>2]|0)*24|0)/(R(e,d)|0)|0|0)|0;g=(A|0)<(g|0)?A:g}r=(g-k|0)/(d|0)|0;r=(r|0)>1275?1276:r+1|0;t=R(r,d)|0;s=l;l=l+((1*t|0)+15&-16)|0;Yg(C);t=a+136|0;u=c[t>>2]|0;v=a+128|0;w=c[v>>2]|0;x=a+120|0;y=c[x>>2]|0;c[t>>2]=c[a+14120>>2];c[v>>2]=c[a+14136>>2];k=c[a+14088>>2]|0;c[x>>2]=k;z=a+68|0;A=c[z>>2]|0;if(!A)c[a+14128>>2]=k;else c[x>>2]=1;p=d+-1|0;q=a+18028|0;h=(h|0)!=0;m=a+112|0;k=0;while(1){if((k|0)>=(d|0)){k=14;break}c[z>>2]=0;c[q>>2]=(k|0)<(p|0)&1;if(h&(k|0)==(p|0))c[t>>2]=1002;n=s+(R(k,r)|0)|0;o=Cg(a,b+((R(k,R(c[m>>2]|0,e)|0)|0)<<2)|0,e,n,r,i,0,0,0,0,0,j)|0;if((o|0)<0){g=-3;k=16;break}if((Zg(C,n,o)|0)<0){g=-3;k=16;break}k=k+1|0}if((k|0)==14){g=$g(C,d,f,g,(c[B>>2]|0)==0&1)|0;if((g|0)<0){C=-3;l=D;return C|0}c[t>>2]=u;c[v>>2]=w;c[x>>2]=y;c[z>>2]=A;C=g;l=D;return C|0}else if((k|0)==16){l=D;return g|0}return 0}function Kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=(d*40|0)+20|0;b=(((R(e,200-c|0)|0)+b|0)*3|0)/3200|0;a=(((((a<<3)-(e<<1)|0)*240|0)/((48e3/(c|0)|0)+240|0)|0)+e|0)/8|0;a=(b|0)<(a|0)?b:a;if((a|0)>(d<<3|4|0))return ((a|0)<257?a:257)|0;else return 0;return 0}function Lg(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;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=((b<<16>>16)*2471|0)/((g|0)/1e3|0|0)|0;g=R(h,-471)|0;b=g+268435456|0;g=-268435456-g<<1;i=b>>6;l=b>>22;j=h<<16>>16;m=R(h>>16,j)|0;j=R(h&65535,j)|0;h=R(h,(h>>15)+1>>1)|0;n=m+(j>>>16)+h<<16>>16;k=i&65535;h=(R(l,n)|0)+((R(k,n)|0)>>16)+(R(i,(m+(j>>16)+h+-8388608>>15)+1>>1)|0)|0;j=i<<16>>16;i=(R(l,j)|0)+((R(k,j)|0)>>16)+(R(i,(b>>21)+1>>1)|0)|0;Ug(a,b,g,b,h,i,d,c,e,f);if((f|0)!=2)return;Ug(a+4|0,b,g,b,h,i,d+8|0,c+4|0,e,2);return}function Mg(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;var h=0.0,i=0.0,j=0.0,k=0.0,l=0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0,u=0;n=12.0/+(f|0);o=1.0-n;h=+g[c>>2];m=c+4|0;i=+g[m>>2];if((e|0)!=2){f=0;while(1){if((f|0)>=(d|0))break;k=+g[a+(f<<2)>>2];j=k-h;g[b+(f<<2)>>2]=j-i;i=n*j+1.0000000031710769e-30+o*i;h=n*k+1.0000000031710769e-30+o*h;f=f+1|0}g[c>>2]=h;g[m>>2]=i;return}e=c+8|0;l=c+12|0;j=+g[l>>2];k=+g[e>>2];f=0;while(1){if((f|0)>=(d|0))break;u=f<<1;p=+g[a+(u<<2)>>2];t=u|1;r=+g[a+(t<<2)>>2];q=p-h;s=r-k;g[b+(u<<2)>>2]=q-i;g[b+(t<<2)>>2]=s-j;j=n*s+1.0000000031710769e-30+o*j;k=n*r+1.0000000031710769e-30+o*k;i=n*q+1.0000000031710769e-30+o*i;h=n*p+1.0000000031710769e-30+o*h;f=f+1|0}g[c>>2]=h;g[m>>2]=i;g[e>>2]=k;g[l>>2]=j;return}function Ng(a,b,c){a=a|0;b=b|0;c=c|0;var d=0.0,e=0;d=0.0;e=0;while(1){if((e|0)>=(c|0))break;d=d+ +g[a+(e<<2)>>2]*+g[b+(e<<2)>>2];e=e+1|0}return +d}function Og(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=d+1+(f<<1)|0;f=1;while(1){if((f|0)>=7){h=5;break}d=c[19432+(f*20|0)>>2]|0;if((d|0)>(a|0))break;f=f+1|0}do if((h|0)==5){if((f|0)!=7){d=c[19432+(f*20|0)>>2]|0;break}h=(c[19552+(g<<2)>>2]|0)+((a+-64e3|0)/2|0)|0;a=(e|0)==0;e=h+100|0;h=a?e:h;b=(b|0)==1104;e=h+300|0;h=b?e:h;return h|0}while(0);i=f+-1|0;h=c[19432+(i*20|0)>>2]|0;h=((R(c[19432+(i*20|0)+(g<<2)>>2]|0,d-a|0)|0)+(R(c[19432+(f*20|0)+(g<<2)>>2]|0,a-h|0)|0)|0)/(d-h|0)|0;a=(e|0)==0;e=h+100|0;h=a?e:h;b=(b|0)==1104;e=h+300|0;h=b?e:h;return h|0}function Pg(a,b,c,d,e,f,h,i,j){a=a|0;b=b|0;c=+c;d=+d;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0.0;k=48e3/(j|0)|0;l=(e|0)/(k|0)|0;a:do if((h|0)==1){j=0;while(1){if((j|0)>=(l|0)){j=0;break a}m=+g[i+((R(j,k)|0)<<2)>>2];m=m*m;g[b+(j<<2)>>2]=(m*d+(1.0-m)*c)*+g[a+(j<<2)>>2];j=j+1|0}}else{j=0;while(1){if((j|0)>=(l|0)){j=0;break a}m=+g[i+((R(j,k)|0)<<2)>>2];m=m*m;m=m*d+(1.0-m)*c;e=j<<1;g[b+(e<<2)>>2]=m*+g[a+(e<<2)>>2];e=e|1;g[b+(e<<2)>>2]=m*+g[a+(e<<2)>>2];j=j+1|0}}while(0);do{e=l;while(1){if((e|0)>=(f|0))break;i=(R(e,h)|0)+j|0;g[b+(i<<2)>>2]=+g[a+(i<<2)>>2]*d;e=e+1|0}j=j+1|0}while((j|0)<(h|0));return}function Qg(a){a=+a;a=a*32768.0;if(a>-32768.0){if(!(a<32767.0))a=32767.0}else a=-32768.0;return (Jh(a)|0)&65535|0}function Rg(a,b,c,d,e,f,h,i,j){a=a|0;b=b|0;c=+c;d=+d;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;k=48e3/(j|0)|0;e=(e|0)/(k|0)|0;c=1.0-c;d=1.0-d;j=0;while(1){if((j|0)>=(e|0))break;m=+g[i+((R(j,k)|0)<<2)>>2];m=m*m;n=R(j,h)|0;l=n+1|0;m=(m*d+(1.0-m)*c)*((+g[a+(n<<2)>>2]-+g[a+(l<<2)>>2])*.5);n=b+(n<<2)|0;g[n>>2]=+g[n>>2]-m;l=b+(l<<2)|0;g[l>>2]=+g[l>>2]+m;j=j+1|0}while(1){if((j|0)>=(f|0))break;l=R(j,h)|0;n=l+1|0;m=d*((+g[a+(l<<2)>>2]-+g[a+(n<<2)>>2])*.5);l=b+(l<<2)|0;g[l>>2]=+g[l>>2]-m;n=b+(n<<2)|0;g[n>>2]=+g[n>>2]+m;j=j+1|0}return}function Sg(a,b){a=a|0;b=b|0;return (U(b|0)|0)+-32+a|0}function Tg(a,b,d,e,f,g,h){a=+a;b=b|0;d=+d;e=e|0;f=f|0;g=g|0;h=h|0;do if(!h){h=a<.10000000149011612;if(h?!(!(+Eg(e,f,g)*316.2300109863281<=d)|h^1):0)break;c[b>>2]=0;b=0;return b|0}while(0);g=c[b>>2]|0;h=g+1|0;c[b>>2]=h;if((g|0)<=9){b=0;return b|0}if((h|0)<31){b=1;return b|0}c[b>>2]=10;b=0;return b|0}function Ug(a,b,c,d,e,f,h,i,j,k){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;var l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0;p=+(e|0)*3.725290298461914e-09;o=+(f|0)*3.725290298461914e-09;n=+(b|0)*3.725290298461914e-09;m=+(c|0)*3.725290298461914e-09;l=+(d|0)*3.725290298461914e-09;f=h+4|0;e=0;while(1){if((e|0)>=(j|0))break;d=R(e,k)|0;r=+g[a+(d<<2)>>2];q=+g[h>>2]+n*r;g[h>>2]=+g[f>>2]-q*p+m*r;g[f>>2]=l*r-q*o+1.0000000031710769e-30;g[i+(d<<2)>>2]=q;e=e+1|0}return}function Vg(a,b){a=a|0;b=b|0;var c=0.0,d=0.0,e=0,f=0.0;c=0.0;d=0.0;e=0;while(1){if((e|0)>=(b|0))break;f=+g[a+(e<<2)>>2];c=cf?d:f;e=e+1|0}f=-c;return +(d>f?d:f)}function Wg(a,b,d,e,f){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;var g=0;g=Ag(d,c[a+156>>2]|0,c[a+144>>2]|0)|0;return Cg(a,b,g,e,f,24,b,d,-2,c[a+112>>2]|0,1,1)|0}function Xg(a,d,e){a=a|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=l;l=l+192|0;o=t+64|0;j=t+56|0;i=t+48|0;h=t+40|0;n=t+32|0;m=t+24|0;q=t+16|0;p=t+8|0;k=t;s=t+168|0;f=t+68|0;c[s>>2]=e;r=a+(c[a>>2]|0)|0;a:do switch(d|0){case 4e3:{r=(c[s>>2]|0)+(4-1)&~(4-1);d=c[r>>2]|0;c[s>>2]=r+4;switch(d|0){case 2051:case 2049:case 2048:break;default:{e=-1;d=104;break a}}e=a+108|0;if((c[a+14148>>2]|0)==0?(c[e>>2]|0)!=(d|0):0){e=-1;d=104;break a}c[e>>2]=d;c[a+192>>2]=d;e=0;d=104;break}case 4001:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+108>>2];e=0;d=104}break}case 4002:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;switch(e|0){case -1e3:{e=-1e3;break}case -1:{e=-1;break}default:{if((e|0)<1){d=105;break a}if((e|0)<501)e=500;else{s=(c[a+112>>2]|0)*3e5|0;e=(e|0)>(s|0)?s:e}}}c[a+164>>2]=e;e=0;d=104;break}case 4003:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=Fg(a,c[a+14132>>2]|0,1276)|0;e=0;d=104}break}case 4022:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if((e|0)<1){if((e|0)!=-1e3){d=105;break a}}else if((e|0)>(c[a+112>>2]|0)){d=105;break a}c[a+120>>2]=e;e=0;d=104;break}case 4023:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+120>>2];e=0;d=104}break}case 4004:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if((e+-1101|0)>>>0>4)d=105;else{c[a+132>>2]=e;switch(e|0){case 1101:{c[a+20>>2]=8e3;e=0;d=104;break a}case 1102:{c[a+20>>2]=12e3;e=0;d=104;break a}default:{c[a+20>>2]=16e3;e=0;d=104;break a}}}break}case 4005:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+132>>2];e=0;d=104}break}case 4008:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if((e|0)>=1101){if((e|0)>1105){d=105;break a}c[a+128>>2]=e;if((e|0)==1101){c[a+20>>2]=8e3;e=0;d=104;break a}else d=e;e=a+20|0;if((d|0)==1102){c[e>>2]=12e3;e=0;d=104;break a}}else{if((e|0)!=-1e3){d=105;break a}c[a+128>>2]=-1e3;e=a+20|0}c[e>>2]=16e3;e=0;d=104;break}case 4009:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+14136>>2];e=0;d=104}break}case 4016:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(e>>>0>1)d=105;else{c[a+184>>2]=e;e=0;d=104}break}case 4017:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+184>>2];e=0;d=104}break}case 4010:{q=(c[s>>2]|0)+(4-1)&~(4-1);e=c[q>>2]|0;c[s>>2]=q+4;if(e>>>0>10)d=105;else{c[a+44>>2]=e;c[k>>2]=e;bb(r,4010,k)|0;e=0;d=104}break}case 4011:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+44>>2];e=0;d=104}break}case 4012:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(e>>>0>1)d=105;else{c[a+48>>2]=e;e=0;d=104}break}case 4013:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+48>>2];e=0;d=104}break}case 4014:{q=(c[s>>2]|0)+(4-1)&~(4-1);e=c[q>>2]|0;c[s>>2]=q+4;if(e>>>0>100)d=105;else{c[a+40>>2]=e;c[p>>2]=e;bb(r,4014,p)|0;e=0;d=104}break}case 4015:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+40>>2];e=0;d=104}break}case 4006:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(e>>>0>1)d=105;else{c[a+148>>2]=e;c[a+60>>2]=1-e;e=0;d=104}break}case 4007:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+148>>2];e=0;d=104}break}case 11018:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if((e+1|0)>>>0>101)d=105;else{c[a+140>>2]=e;e=0;d=104}break}case 11019:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+140>>2];e=0;d=104}break}case 4020:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(e>>>0>1)d=105;else{c[a+152>>2]=e;e=0;d=104}break}case 4021:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+152>>2];e=0;d=104}break}case 4024:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if((e|0)<3001)switch(e|0){case -1e3:break;default:{d=105;break a}}else switch(e|0){case 3002:case 3001:break;default:{d=105;break a}}c[a+124>>2]=e;e=0;d=104;break}case 4025:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+124>>2];e=0;d=104}break}case 4027:{r=(c[s>>2]|0)+(4-1)&~(4-1);d=c[r>>2]|0;c[s>>2]=r+4;if(d){e=(c[a+144>>2]|0)/400|0;c[d>>2]=e;if((c[a+108>>2]|0)==2051){e=0;d=104}else{c[d>>2]=e+(c[a+116>>2]|0);e=0;d=104}}else d=105;break}case 4029:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+144>>2];e=0;d=104}break}case 4031:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+18032>>2];e=0;d=104}break}case 4036:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if((e+-8|0)>>>0>16)d=105;else{c[a+168>>2]=e;e=0;d=104}break}case 4037:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+168>>2];e=0;d=104}break}case 4040:{p=(c[s>>2]|0)+(4-1)&~(4-1);e=c[p>>2]|0;c[s>>2]=p+4;if((e+-5e3|0)>>>0<10){c[a+156>>2]=e;c[q>>2]=e;bb(r,4040,q)|0;e=0;d=104}else d=105;break}case 4041:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+156>>2];e=0;d=104}break}case 4042:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(e>>>0>1)d=105;else{c[a+76>>2]=e;e=0;d=104}break}case 4043:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if(!e)d=105;else{c[e>>2]=c[a+76>>2];e=0;d=104}break}case 4046:{a=(c[s>>2]|0)+(4-1)&~(4-1);e=c[a>>2]|0;c[s>>2]=a+4;if(e>>>0>1)d=105;else{c[m>>2]=e;bb(r,4046,m)|0;e=0;d=104}break}case 4047:{a=(c[s>>2]|0)+(4-1)&~(4-1);e=c[a>>2]|0;c[s>>2]=a+4;if(!e)d=105;else{c[n>>2]=e;bb(r,4047,n)|0;e=0;d=104}break}case 4028:{d=a+(c[a+4>>2]|0)|0;ch(a+188|0);e=a+14088|0;Qh(e|0,0,3948)|0;bb(r,4028,h)|0;Tc(d,c[a+180>>2]|0,f)|0;c[e>>2]=c[a+112>>2];b[a+14092>>1]=16384;g[a+14100>>2]=1.0;c[a+14148>>2]=1;c[a+14120>>2]=1001;c[a+14136>>2]=1105;c[a+14096>>2]=(ue(60)|0)<<8;e=0;d=104;break}case 11002:{r=(c[s>>2]|0)+(4-1)&~(4-1);e=c[r>>2]|0;c[s>>2]=r+4;if((e|0)<1e3){if((e|0)!=-1e3){d=105;break a}}else if((e|0)>1002){d=105;break a}c[a+136>>2]=e;e=0;d=104;break}case 10024:{d=(c[s>>2]|0)+(4-1)&~(4-1);e=c[d>>2]|0;c[s>>2]=d+4;c[a+176>>2]=e;c[i>>2]=e;e=bb(r,10024,i)|0;d=104;break}case 10026:{d=(c[s>>2]|0)+(4-1)&~(4-1);e=c[d>>2]|0;c[s>>2]=d+4;c[a+14152>>2]=e;c[j>>2]=e;e=bb(r,10026,j)|0;d=104;break}case 10015:{a=(c[s>>2]|0)+(4-1)&~(4-1);e=c[a>>2]|0;c[s>>2]=a+4;if(!e)d=105;else{c[o>>2]=e;e=bb(r,10015,o)|0;d=104}break}default:{e=-5;d=104}}while(0);if((d|0)==104){a=e;l=t;return a|0}else if((d|0)==105){a=-1;l=t;return a|0}return 0}function Yg(a){a=a|0;c[a+4>>2]=0;return}function Zg(a,b,c){a=a|0;b=b|0;c=c|0;return _g(a,b,c)|0}function _g(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0,i=0,j=0;j=l;l=l+16|0;f=j;if((e|0)<1){i=-4;l=j;return i|0}i=b+4|0;g=c[i>>2]|0;if(g){if(((a[b>>0]^a[d>>0])&255)>3){i=-4;l=j;return i|0}}else{a[b>>0]=a[d>>0]|0;c[b+296>>2]=pg(a[d>>0]|0,8e3)|0}h=sg(d,e)|0;if((h|0)<1){i=-4;l=j;return i|0}if((R(h+g|0,c[b+296>>2]|0)|0)>960){i=-4;l=j;return i|0}b=qg(d,e,0,f,b+8+(g<<2)|0,b+200+(g<<1)|0)|0;if((b|0)<1){i=b;l=j;return i|0}c[i>>2]=(c[i>>2]|0)+h;i=0;l=j;return i|0}function $g(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;if((e|0)<1){h=-1;return h|0}if((c[d+4>>2]|0)<(e|0)){h=-1;return h|0}k=d+200|0;a:do switch(e|0){case 1:{i=b[k>>1]|0;if((i|0)<(g|0)){a[f>>0]=a[d>>0]&-4;j=f+1|0;i=i+1|0;l=11;break a}else{h=-2;return h|0}}case 2:{i=b[d+202>>1]|0;j=b[k>>1]|0;if(i<<16>>16==j<<16>>16){i=i<<16>>16<<1|1;if((i|0)>(g|0)){h=-2;return h|0}else{a[f>>0]=a[d>>0]&-4|1;j=f+1|0;l=11;break a}}else{i=(j<<16>>16)+(i<<16>>16)+2+(j<<16>>16>251&1)|0;if((i|0)>(g|0)){h=-2;return h|0}else{j=f+1|0;a[f>>0]=a[d>>0]&-4|2;j=j+(og(b[k>>1]|0,j)|0)|0;l=11;break a}}}default:{i=1;l=12}}while(0);if((l|0)==11)if((h|0)!=0&(i|0)<(g|0)){i=1;l=12}b:do if((l|0)==12){while(1){if((i|0)>=(e|0)){l=20;break}if((b[d+200+(i<<1)>>1]|0)!=(b[k>>1]|0)){l=14;break}i=i+1|0;l=12}do if((l|0)==14){k=e+-1|0;i=0;j=2;while(1){if((i|0)>=(k|0))break;m=b[d+200+(i<<1)>>1]|0;i=i+1|0;j=j+((m<<16>>16>251?2:1)+(m<<16>>16))|0}i=j+(b[d+200+(k<<1)>>1]|0)|0;if((i|0)>(g|0)){h=-2;return h|0}else{a[f>>0]=a[d>>0]|3;k=(e|128)&255;a[f+1>>0]=k;m=1;break}}else if((l|0)==20){i=(R(b[k>>1]|0,e)|0)+2|0;if((i|0)>(g|0)){h=-2;return h|0}else{a[f>>0]=a[d>>0]|3;k=e&255;a[f+1>>0]=k;m=0;break}}while(0);j=f+2|0;if((h|0)!=0?(n=g-i|0,(n|0)!=0):0){a[f+1>>0]=k|64;k=(n+-1|0)/255|0;i=0;while(1){if((i|0)>=(k|0))break;a[j>>0]=-1;i=i+1|0;j=j+1|0}a[j>>0]=n+(R(k,-255)|0)+255;j=j+1|0;i=g}if(m){l=e+-1|0;k=0;while(1){if((k|0)>=(l|0))break b;n=j+(og(b[d+200+(k<<1)>>1]|0,j)|0)|0;k=k+1|0;j=n}}}while(0);k=0;while(1){if((k|0)>=(e|0))break;n=d+200+(k<<1)|0;Wh(j|0,c[d+8+(k<<2)>>2]|0,b[n>>1]|0)|0;j=j+(b[n>>1]|0)|0;k=k+1|0}if(!h){h=i;return h|0}k=f+g|0;while(1){if(j>>>0>=k>>>0)break;a[j>>0]=0;j=j+1|0}return i|0}function ah(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0;f=l;l=l+304|0;e=f;if((b|0)<1){e=-1;l=f;return e|0}if((b|0)==(d|0)){e=0;l=f;return e|0}if((b|0)>(d|0)){e=-1;l=f;return e|0}Yg(e);g=a+d+(0-b)|0;Wh(g|0,a|0,b|0)|0;b=Zg(e,g,b)|0;if(!b){g=$g(e,c[e+4>>2]|0,a,d,1)|0;l=f;return ((g|0)<0?g:0)|0}else{g=b;l=f;return g|0}return 0}function bh(a,b){a=a|0;b=b|0;c[a>>2]=0;c[a+8>>2]=b;ch(a);return}function ch(a){a=a|0;Qh(a+12|0,0,13888)|0;g[a+8260>>2]=.8999999761581421;g[a+8256>>2]=.10000000149011612;return}function dh(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0.0,h=0,i=0,j=0.0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0;p=a+8276|0;e=c[p>>2]|0;m=a+8272|0;h=c[m>>2]|0;o=h-e|0;o=(o|0)<0?o+100|0:o;n=a+8|0;if(!((h|0)==(e|0)?1:((c[n>>2]|0)/50|0|0)>=(d|0))){e=e+1|0;e=(e|0)==100?0:e}l=(e|0)==(h|0)?h+-1|0:e;l=(l|0)<0?99:l;e=b;h=a+8300+(l*56|0)|0;i=e+56|0;do{c[e>>2]=c[h>>2];e=e+4|0;h=h+4|0}while((e|0)<(i|0));k=b+4|0;j=+g[k>>2];h=0;i=1;f=j;e=l;while(1){if((h|0)>=3)break;e=e+1|0;e=(e|0)==100?0:e;if((e|0)==(c[m>>2]|0))break;q=+g[a+8300+(e*56|0)+4>>2];h=h+1|0;i=i+1|0;f=f+q;j=j>q?j:q}f=f/+(i|0);q=j+-.20000000298023224;g[k>>2]=f>q?f:q;h=a+8280|0;e=(c[h>>2]|0)+((d|0)/((c[n>>2]|0)/400|0|0)|0)|0;c[h>>2]=e;while(1){if((e|0)<=7)break;d=e+-8|0;c[h>>2]=d;c[p>>2]=(c[p>>2]|0)+1;e=d}e=c[p>>2]|0;if((e|0)>99)c[p>>2]=e+-100;h=(o|0)>1?101-o|0:100;f=0.0;e=0;while(1){if((e|0)>=(h|0))break;f=f+ +g[a+7856+(e<<2)>>2];e=e+1|0}while(1){if((e|0)>=100)break;f=f+ +g[a+7456+(e<<2)>>2];e=e+1|0}g[b+20>>2]=f*+g[a+8260>>2]+(1.0-f)*+g[a+8256>>2];return}function eh(a,b,d,e,f,g,h,i,j,k,l,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;m=m|0;var n=0,o=0,p=0,q=0;e=e&-2;if(!d){c[m>>2]=0;dh(a,m,f);return}o=(j*95|0)/50|0;o=(o|0)<(e|0)?o:e;p=a+7452|0;q=c[p>>2]|0;n=(j|0)/50|0;e=o-q|0;j=q;while(1){if((e|0)<=0)break;fh(a,b,d,(e|0)>(n|0)?n:e,j,g,h,i,k,l);e=e-n|0;j=j+n|0}c[p>>2]=o-f;c[m>>2]=0;dh(a,m,f);return}function fh(b,d,e,f,h,i,k,m,n,o){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;k=k|0;m=m|0;n=n|0;o=o|0;var p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0.0,C=0,H=0,I=0.0,J=0,K=0,L=0,M=0,N=0,O=0,Q=0,R=0.0,S=0.0,T=0.0,U=0.0,V=0.0,W=0,X=0.0,Y=0,Z=0,_=0.0,$=0,aa=0.0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0.0,la=0.0;ia=l;l=l+11120|0;J=ia+11040|0;$=ia+10968|0;ca=ia+10936|0;da=ia+10832|0;ea=ia+10824|0;H=ia+9864|0;ba=ia+9832|0;N=ia+9752|0;O=ia+9676|0;Q=ia+9600|0;C=ia+5760|0;Y=ia+1920|0;K=ia+960|0;L=ia;fa=b+7448|0;w=c[fa>>2]|0;W=w+1|0;aa=(w|0)>9?.10000000149011612:1.0/+(W|0);_=(w|0)>24?.03999999910593033:1.0/+(W|0);W=(w|0)>499;V=1.0/+(w+1|0);Z=b+8|0;y=c[Z>>2]|0;a:do if((y|0)<48e3){switch(y|0){case 16e3:break;default:{A=h;break a}}f=(f*3|0)/2|0;A=(h*3|0)/2|0}else{switch(y|0){case 48e3:break;default:{A=h;break a}}f=(f|0)/2|0;A=(h|0)/2|0}while(0);if((w|0)<4){g[b+7424>>2]=(c[b+4>>2]|0)==2048?.10000000149011612:.625;h=c[d+72>>2]|0;d=b+5772|0;if(!w){c[d>>2]=240;x=240}else{w=d;M=7}}else{w=b+5772|0;h=c[d+72>>2]|0;M=7}if((M|0)==7){x=c[w>>2]|0;d=w}z=b+8288|0;w=720-x|0;X=+gh(o,e,b+2892+(x<<2)|0,z,(f|0)<(w|0)?f:w,A,i,k,m,y);x=b+8284|0;X=+g[x>>2]+X;g[x>>2]=X;y=c[d>>2]|0;w=y+f|0;if((w|0)<720){c[d>>2]=w;l=ia;return}w=b+8272|0;ga=c[w>>2]|0;ha=b+8300+(ga*56|0)|0;c[w>>2]=ga+((ga|0)>98?-99:1);w=0;while(1){if((w|0)==240)break;U=+g[19612+(w<<2)>>2];g[C+(w<<3)>>2]=U*+g[b+2892+(w<<2)>>2];g[C+(w<<3)+4>>2]=U*+g[b+2892+(w+240<<2)>>2];ja=480-w+-1|0;g[C+(ja<<3)>>2]=U*+g[b+2892+(ja<<2)>>2];g[C+(ja<<3)+4>>2]=U*+g[b+2892+(720-w+-1<<2)>>2];w=w+1|0}Sh(b+2892|0,b+4812|0,960)|0;ja=f+(y+-720)|0;g[x>>2]=+gh(o,e,b+3852|0,z,ja,A+720-y|0,i,k,m,c[Z>>2]|0);c[d>>2]=ja+240;bc(h,C,Y);p=+g[Y>>2];if(p!=p|0.0!=0.0){c[ha>>2]=0;l=ia;return}else f=1;while(1){if((f|0)==240){f=2;break}B=+g[Y+(f<<3)>>2];m=480-f|0;v=+g[Y+(m<<3)>>2];I=+g[Y+(f<<3)+4>>2];S=+g[Y+(m<<3)+4>>2];T=+hh(I-S,B+v)*.15915493667125702;m=b+12+(f<<2)|0;U=T-+g[m>>2];o=b+972+(f<<2)|0;R=U-+g[o>>2];S=+hh(v-B,I+S)*.15915493667125702;T=S-T;U=T-U;R=R-+(Jh(R)|0);I=+E(+R);R=R*R;U=U-+(Jh(U)|0);g[L+(f<<2)>>2]=I+ +E(+U);U=U*U;U=U*U;ja=b+1932+(f<<2)|0;g[K+(f<<2)>>2]=1.0/((+g[ja>>2]+R*R+U*2.0)*.25*62341.81640625+1.0)+-.014999999664723873;g[H+(f<<2)>>2]=1.0/(U*62341.81640625+1.0)+-.014999999664723873;g[m>>2]=S;g[o>>2]=T;g[ja>>2]=U;f=f+1|0}while(1){if((f|0)==239)break;m=f+-1|0;S=+g[H+(m<<2)>>2];ja=f+1|0;U=+g[H+(ja<<2)>>2];k=S>U;o=K+(f<<2)|0;T=+g[o>>2];U=+g[H+((+g[H+(f<<2)>>2]<(k?S:U)?f:k?m:ja)<<2)>>2]+-.10000000149011612;g[o>>2]=(T>U?T:U)*.8999999761581421;f=ja}A=b+8300+(ga*56|0)+16|0;g[A>>2]=0.0;b:do if(!(c[fa>>2]|0)){f=0;while(1){if((f|0)==18)break b;g[b+7008+(f<<2)>>2]=1.0e10;g[b+7080+(f<<2)>>2]=-1.0e10;f=f+1|0}}while(0);U=p*2.0;p=+g[Y+4>>2]*2.0;p=U*U+p*p;f=1;while(1){if((f|0)==4)break;R=+g[Y+(f<<3)>>2];T=+g[Y+(f<<3)+4>>2];ja=480-f|0;S=+g[Y+(ja<<3)>>2];U=+g[Y+(ja<<3)+4>>2];p=p+(R*R+S*S+T*T+U*U);f=f+1|0}g[N>>2]=+P(+(p+1.000000013351432e-10))*.7213475108146667;z=b+7440|0;p=0.0;S=0.0;B=0.0;U=0.0;R=0.0;T=0.0;I=0.0;d=0;while(1){if((d|0)>=18)break;w=d+1|0;h=c[20572+(w<<2)>>2]|0;q=0.0;v=0.0;r=0.0;f=c[20572+(d<<2)>>2]|0;while(1){if((f|0)>=(h|0))break;ka=+g[Y+(f<<3)>>2];ja=480-f|0;s=+g[Y+(ja<<3)>>2];t=+g[Y+(f<<3)+4>>2];u=+g[Y+(ja<<3)+4>>2];u=ka*ka+s*s+t*t+u*u;t=+g[K+(f<<2)>>2];q=q+u*2.0*(.5-+g[L+(f<<2)>>2]);v=v+u*(t<0.0?0.0:t);r=r+u;f=f+1|0}if(!(r<1.0e9)|(r!=r|0.0!=0.0)){M=32;break}g[b+5856+((c[z>>2]|0)*72|0)+(d<<2)>>2]=r;t=r+1.0000000036274937e-15;B=B+q/t;s=r+1.000000013351432e-10;u=I+ +F(+s);s=+P(+s);g[$+(d<<2)>>2]=s;g[N+(w<<2)>>2]=s*.7213475108146667;g[b+6432+((c[z>>2]|0)*72|0)+(d<<2)>>2]=s;if(!(c[fa>>2]|0)){h=b+7008+(d<<2)|0;g[h>>2]=s;f=b+7080+(d<<2)|0;g[f>>2]=s;q=s;r=s}else{H=b+7080+(d<<2)|0;ja=b+7008+(d<<2)|0;f=H;h=ja;q=+g[H>>2];r=+g[ja>>2]}do if(q>r+7.5)if(q-s>s-r){q=q+-.009999999776482582;g[f>>2]=q;break}else{r=r+.009999999776482582;g[h>>2]=r;break}while(0);if(!(s>q)){if(s>2]=s;r=s+15.0;q=r>2]=q;r=s}}else{g[f>>2]=s;q=s+-15.0;r=q>r?q:r;g[h>>2]=r;q=s}s=(s-r)/(q-r+1.0000000036274937e-15);q=0.0;r=0.0;f=0;while(1){if((f|0)==8)break;ka=+g[b+5856+(f*72|0)+(d<<2)>>2];q=q+ka;r=r+ +F(+ka);f=f+1|0}r=r/+F(+(q*8.0+1.0e-15));r=r>.9900000095367432?.9900000095367432:r;r=r*r;r=r*r;ka=v/t;f=b+5776+(d<<2)|0;q=r*+g[f>>2];q=ka>q?ka:q;g[J+(d<<2)>>2]=q;p=p+q;if((d|0)>8)p=p-+g[J+(d+-9<<2)>>2];I=(+(d+-18|0)*.029999999329447746+1.0)*p;g[f>>2]=q;S=S>I?S:I;U=U+q*+(d+-8|0);R=R+r;T=T+s;I=u;d=w}if((M|0)==32){c[ha>>2]=0;l=ia;return}f=c[N>>2]|0;c[O>>2]=f;p=(c[j>>2]=f,+g[j>>2])+-2.5;g[Q>>2]=p;f=1;while(1){if((f|0)==19){f=16;break}ja=f+-1|0;v=+((c[20572+(f<<2)>>2]|0)-(c[20572+(ja<<2)>>2]|0)|0)*2.0*.25;u=+g[O+(ja<<2)>>2]+v;ka=+g[N+(f<<2)>>2];g[O+(f<<2)>>2]=uka?v:ka;g[Q+(f<<2)>>2]=ka;f=f+1|0;p=ka}while(1){if((f|0)<=-1){f=0;break}ja=f+1|0;v=+((c[20572+(ja<<2)>>2]|0)-(c[20572+(f<<2)>>2]|0)|0)*2.0*.25;u=+g[O+(ja<<2)>>2]+v;M=O+(f<<2)|0;ka=+g[M>>2];g[M>>2]=u>2]-v;ja=Q+(f<<2)|0;ka=+g[ja>>2];g[ja>>2]=v>ka?v:ka;f=f+-1|0}while(1){if((f|0)==19){r=0.0;d=0;break}ka=+g[N+(f<<2)>>2];v=+g[Q+(f<<2)>>2]-ka;ka=ka-(+g[O+(f<<2)>>2]+2.5);ja=~~+D(+(((v<0.0?0.0:v)+(ka<0.0?0.0:ka))*64.0+.5));a[b+8300+(ga*56|0)+36+f>>0]=(ja|0)<255?ja:255;f=f+1|0}while(1){if((d|0)==8)break;else{q=999999986991104.0;h=0}while(1){if((h|0)==8)break;else{p=0.0;f=0}while(1){if((f|0)==18)break;ka=+g[b+6432+(d*72|0)+(f<<2)>>2]-+g[b+6432+(h*72|0)+(f<<2)>>2];p=p+ka*ka;f=f+1|0}q=(h|0)==(d|0)|q>2]|0;x=d+1|0;y=c[20572+(x<<2)>>2]|0;r=0.0;h=w;while(1){if((h|0)>=(y|0))break;la=+g[Y+(h<<3)>>2];V=+g[Y+(h<<3)+4>>2];ja=480-h|0;s=+g[Y+(ja<<3)>>2];ka=+g[Y+(ja<<3)+4>>2];r=r+(la*la+s*s+V*V+ka*ka);h=h+1|0}s=q>r?q:r;ja=b+7152+(d<<2)|0;q=t*+g[ja>>2];q=q>r?q:r;g[ja>>2]=q;q=r>q?r:q;p=p*.05000000074505806;p=p>q?p:q;if(!(q>p*.1&q*1.0e9>s)){ja=f;q=s;d=x;f=ja;continue}if(!(q>u*+(y-w|0))){ja=f;q=s;d=x;f=ja;continue}f=x;q=s;d=x}if((c[Z>>2]|0)==48e3){V=X*1.7361111531499773e-05;X=(c[b+5852>>2]|0)==20?.029999999329447746:.07000000029802322;ja=b+7224|0;la=t*+g[ja>>2];la=la>V?la:V;g[ja>>2]=la;la=V>la?V:la;ka=p*.05000000074505806;f=(la*1.0e9>(q>V?q:V)?la>X*(ka>la?ka:la):0)&la>u*160.0|(f|0)>16?20:f}w=c[fa>>2]|0;y=(w|0)<3?20:f;X=+Ih(I)*20.0;x=b+7432|0;ka=+g[x>>2]+-.003000000026077032;ka=ka>X?ka:X;g[x>>2]=ka;x=b+7436|0;la=+g[x>>2]*(1.0-_);g[x>>2]=X>2]*+g[$+(f<<2)>>2];f=f+1|0}g[ca+(h<<2)>>2]=p;h=h+1|0}while(1){if((h|0)==8)break;d=h<<4;p=0.0;f=0;while(1){if((f|0)==16)break;p=p+ +g[20648+(d+f<<2)>>2]*.5*(+g[b+7080+(f<<2)>>2]+ +g[b+7008+(f<<2)>>2]);f=f+1|0}g[ba+(h<<2)>>2]=p;h=h+1|0}q=R/18.0;B=B/18.0;g[A>>2]=B+(1.0-B)*((w|0)<10?.5:T/18.0);ka=S/9.0;d=b+5848|0;la=+g[d>>2]*.800000011920929;la=ka>la?ka:la;g[d>>2]=la;d=b+8300+(ga*56|0)+8|0;g[d>>2]=U*.015625;c[z>>2]=((c[z>>2]|0)+1|0)%8|0;h=w+1|0;c[fa>>2]=(h|0)<1e4?h:1e4;h=b+8300+(ga*56|0)+4|0;g[h>>2]=la;f=0;while(1){if((f|0)==4)break;g[da+(f<<2)>>2]=(+g[ca+(f<<2)>>2]+ +g[b+7228+(f+24<<2)>>2])*-.12298999726772308+(+g[b+7228+(f<<2)>>2]+ +g[b+7228+(f+16<<2)>>2])*.49195000529289246+ +g[b+7228+(f+8<<2)>>2]*.6969299912452698-+g[b+7356+(f<<2)>>2]*1.4349000453948975;f=f+1|0}p=1.0-aa;f=0;while(1){if((f|0)==4){f=0;break}ja=b+7356+(f<<2)|0;g[ja>>2]=p*+g[ja>>2]+aa*+g[ca+(f<<2)>>2];f=f+1|0}while(1){if((f|0)==4){f=0;break}g[da+(f+4<<2)>>2]=(+g[ca+(f<<2)>>2]-+g[b+7228+(f+24<<2)>>2])*.6324599981307983+(+g[b+7228+(f<<2)>>2]-+g[b+7228+(f+16<<2)>>2])*.31622999906539917;f=f+1|0}while(1){if((f|0)==3)break;ja=f+8|0;g[da+(ja<<2)>>2]=(+g[ca+(f<<2)>>2]+ +g[b+7228+(f+24<<2)>>2])*.5345199704170227-(+g[b+7228+(f<<2)>>2]+ +g[b+7228+(f+16<<2)>>2])*.26725998520851135-+g[b+7228+(ja<<2)>>2]*.5345199704170227;f=f+1|0}c:do if((c[fa>>2]|0)>5){f=0;while(1){if((f|0)==9){f=0;break c}ja=b+7388+(f<<2)|0;la=+g[da+(f<<2)>>2];g[ja>>2]=p*+g[ja>>2]+aa*la*la;f=f+1|0}}else f=0;while(0);while(1){if((f|0)==4){f=0;break}g[da+(f<<2)>>2]=+g[ca+(f<<2)>>2]-+g[ba+(f<<2)>>2];f=f+1|0}while(1){if((f|0)==8){f=0;break}ja=b+7228+(f+16<<2)|0;c[b+7228+(f+24<<2)>>2]=c[ja>>2];ba=b+7228+(f+8<<2)|0;c[ja>>2]=c[ba>>2];ja=b+7228+(f<<2)|0;c[ba>>2]=c[ja>>2];c[ja>>2]=c[ca+(f<<2)>>2];f=f+1|0}while(1){if((f|0)==9)break;la=+F(+(+g[b+7388+(f<<2)>>2]));g[da+(f+11<<2)>>2]=la-+g[21160+(f<<2)>>2];f=f+1|0}g[da+72>>2]=v+-.7799999713897705;g[da+80>>2]=+g[h>>2]+-.15472300350666046;g[da+84>>2]=+g[A>>2]+-.7246429920196533;g[da+88>>2]=q+-.7437170147895813;g[da+92>>2]=+g[d>>2]+.06921599805355072;g[da+96>>2]=+g[x>>2]+-.06792999804019928;jh(da,ea);t=(+g[ea>>2]+1.0)*.5;g[ea>>2]=t;d=ea+4|0;u=+g[d>>2]*.5+.5;u=u*u;g[d>>2]=u;g[b+8300+(ga*56|0)+32>>2]=u;d=b+7424|0;ka=+g[d>>2];aa=1.0-ka;la=ka*1.0000000474974513e-03+aa*.009999999776482582;ca=u>.949999988079071;ja=u<.05000000074505806&(ca^1);s=ja|ca?(ja?.05000000074505806:.949999988079071):u;ja=b+7428|0;_=+g[ja>>2];ca=_>.949999988079071;da=_<.05000000074505806&(ca^1);v=da|ca?(da?.05000000074505806:.949999988079071):_;V=1.0-_;X=1.0-la;s=+E(+(s-v))*.05000000074505806/(s*(1.0-v)+v*(1.0-s))+.019999999552965164;v=(_*X+V*la)*+G(+u,+s);v=v/((V*X+_*la)*+G(+(1.0-u),+s)+v);g[ja>>2]=v;g[b+8300+(ga*56|0)+24>>2]=v;v=+g[ja>>2];v=v*t+(1.0-v)*.5;g[ea>>2]=v;ja=v>.949999988079071;ea=v<.05000000074505806&(ja^1);t=ea|ja?(ea?.05000000074505806:.949999988079071):v;ea=ka>.949999988079071;ja=ka<.05000000074505806&(ea^1);s=ja|ea?(ja?.05000000074505806:.949999988079071):ka;t=+E(+(t-s))*.05000000074505806/(t*(1.0-s)+s*(1.0-t))+.019999999552965164;s=+G(+(1.0-v),+t);t=+G(+v,+t);la=(ka*.9998999834060669+aa*9.999999747378752e-05)*t;la=la/((aa*.9998999834060669+ka*9.999999747378752e-05)*s+la);g[d>>2]=la;g[b+8300+(ga*56|0)+20>>2]=la;if((c[fa>>2]|0)==1){q=(c[b+4>>2]|0)==2048?.10000000149011612:.625;h=b+7856|0;g[h>>2]=q;p=1.0-q;f=b+7456|0;g[f>>2]=p}else{fa=b+7456|0;ja=b+7856|0;f=fa;h=ja;p=+g[fa>>2];q=+g[ja>>2]}r=p+ +g[b+7460>>2];p=q+ +g[b+7860>>2];g[f>>2]=r*.9998999834060669*s;g[h>>2]=p*.9998999834060669*t;f=1;while(1){if((f|0)==99)break;ja=f+1|0;g[b+7456+(f<<2)>>2]=+g[b+7456+(ja<<2)>>2]*s;g[b+7856+(f<<2)>>2]=+g[b+7856+(ja<<2)>>2]*t;f=ja}g[b+7852>>2]=p*9.999999747378752e-05*s;g[b+8252>>2]=r*9.999999747378752e-05*t;p=9.999999682655225e-21;f=0;while(1){if((f|0)==100)break;p=p+(+g[b+7456+(f<<2)>>2]+ +g[b+7856+(f<<2)>>2]);f=f+1|0}p=1.0/p;f=0;while(1){if((f|0)==100)break;ja=b+7456+(f<<2)|0;g[ja>>2]=+g[ja>>2]*p;ja=b+7856+(f<<2)|0;g[ja>>2]=+g[ja>>2]*p;f=f+1|0}q=+g[d>>2];if(u>.75){p=q;if(p>.9){ja=b+8268|0;fa=(c[ja>>2]|0)+1|0;c[ja>>2]=(fa|0)<500?fa:500;ja=b+8260|0;ka=+g[ja>>2];la=v-ka;g[ja>>2]=ka+1.0/+(fa|0)*(la<-.20000000298023224?-.20000000298023224:la)}if(p<.1){ja=b+8264|0;fa=(c[ja>>2]|0)+1|0;c[ja>>2]=(fa|0)<500?fa:500;ja=b+8256|0;ka=+g[ja>>2];la=v-ka;g[ja>>2]=ka+1.0/+(fa|0)*(la>.20000000298023224?.20000000298023224:la)}}c[b+7444>>2]=q>.5&1;c[b+8300+(ga*56|0)+28>>2]=y;c[b+5852>>2]=y;g[b+8300+(ga*56|0)+12>>2]=B;c[ha>>2]=1;l=ia;return}function gh(a,b,d,e,f,h,i,j,k,m){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;j=j|0;k=k|0;m=m|0;var n=0.0,o=0,p=0,q=0,r=0,s=0;s=l;if(!f){n=0.0;l=s;return +n}o=(m|0)==48e3;if(!o)if((m|0)==16e3){h=(h<<1|0)/3|0;p=(f<<1|0)/3|0}else p=f;else{h=h<<1;p=f<<1}r=fa()|0;q=l;l=l+((1*(p<<2)|0)+15&-16)|0;ka[a&1](b,q,p,h,i,j,k);if((j|0)==-2)n=.000030517578125/+(k|0);else n=(j|0)>-1?.0000152587890625:.000030517578125;h=0;while(1){if((h|0)>=(p|0))break;k=q+(h<<2)|0;g[k>>2]=+g[k>>2]*n;h=h+1|0}a:do if(o)n=+ih(e,d,q,p);else{if((m|0)>=24e3){switch(m|0){case 24e3:break;default:{n=0.0;break a}}Sh(d|0,q|0,p<<2|0)|0;n=0.0;break}switch(m|0){case 16e3:break;default:{n=0.0;break a}}f=p*3|0;a=fa()|0;b=l;l=l+((1*(f<<2)|0)+15&-16)|0;h=0;while(1){if((h|0)>=(p|0))break;o=c[q+(h<<2)>>2]|0;m=h*3|0;c[b+(m<<2)>>2]=o;c[b+(m+1<<2)>>2]=o;c[b+(m+2<<2)>>2]=o;h=h+1|0}+ih(e,d,b,f);ha(a|0);n=0.0}while(0);ha(r|0);l=s;return +n}function hh(a,b){a=+a;b=+b;var c=0.0,d=0.0;c=b*b;d=a*a;if(c+d<1.000000045813705e-18){d=0.0;return +d}if(c=(f|0))break;p=d<<1;l=+g[c+(p<<2)>>2];m=+g[a>>2];n=(l-m)*.6074370741844177;m=m+n;g[a>>2]=l+n;n=+g[c+((p|1)<<2)>>2];l=+g[h>>2];k=(n-l)*.15062999725341797;g[h>>2]=n+k;j=+g[i>>2];o=(-n-j)*.15062999725341797;j=m+j+o;g[i>>2]=o-n;g[b+(d<<2)>>2]=(m+l+k)*.5;e=e+j*j;d=d+1|0}return +e}function jh(a,b){a=a|0;b=b|0;var c=0,d=0.0,e=0,f=0,h=0,i=0,j=0;j=l;l=l+400|0;i=j;e=0;f=22e3;while(1){if((e|0)==16){f=0;h=23664;break}d=+g[f>>2];c=f;h=0;while(1){c=c+4|0;if((h|0)==25)break;d=d+ +g[a+(h<<2)>>2]*+g[c>>2];h=h+1|0}g[i+(e<<2)>>2]=+kh(d);e=e+1|0;f=f+104|0}while(1){if((f|0)==2)break;d=+g[h>>2];e=0;c=h;while(1){c=c+4|0;if((e|0)==16)break;d=d+ +g[i+(e<<2)>>2]*+g[c>>2];e=e+1|0}g[b+(f<<2)>>2]=+kh(d);f=f+1|0;h=h+68|0}l=j;return}function kh(a){a=+a;var b=0.0,c=0,d=0;if(!(a<8.0)){a=1.0;return +a}if(!(a>-8.0)){a=-1.0;return +a}if(a!=a|0.0!=0.0){a=0.0;return +a}c=a<0.0;a=c?-a:a;d=~~+D(+(a*25.0+.5));a=a-+(d|0)*.03999999910593033;b=+g[21196+(d<<2)>>2];a=(c?-1.0:1.0)*(b+a*(1.0-b*b)*(1.0-b*a));return +a}function lh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return mh(a,b,c,b,c,d,e)|0}function mh(a,b,d,e,f,h,i){a=a|0;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;if(h>>>0>10){if(!i){i=0;return i|0}c[i>>2]=3;i=0;return i|0}j=nh(96)|0;o=j+52|0;c[o>>2]=0;c[j+56>>2]=0;c[j>>2]=0;c[j+4>>2]=0;c[j+8>>2]=0;c[j+12>>2]=0;c[j+16>>2]=-1;c[j+80>>2]=0;c[j+28>>2]=0;c[j+24>>2]=0;c[j+72>>2]=0;c[j+84>>2]=0;g[j+44>>2]=1.0;c[j+20>>2]=a;c[j+88>>2]=1;c[j+92>>2]=1;c[j+32>>2]=160;k=a<<2;l=j+60|0;c[l>>2]=nh(k)|0;m=j+68|0;c[m>>2]=nh(k)|0;n=j+64|0;c[n>>2]=nh(k)|0;k=0;while(1){if((k|0)==(a|0))break;c[(c[l>>2]|0)+(k<<2)>>2]=0;c[(c[m>>2]|0)+(k<<2)>>2]=0;c[(c[n>>2]|0)+(k<<2)>>2]=0;k=k+1|0}oh(j,h);ph(j,b,d,e,f);k=qh(j)|0;if(!k)c[o>>2]=1;else{rh(j);j=0}if(!i){i=j;return i|0}c[i>>2]=k;i=j;return i|0}function nh(a){a=a|0;var b=0;b=Kh(a)|0;if(!b)return b|0;if(!(c[b+-4>>2]&3))return b|0;Qh(b|0,0,a|0)|0;return b|0}function oh(a,b){a=a|0;b=b|0;var d=0;if(b>>>0>10)return;d=a+16|0;if((c[d>>2]|0)==(b|0))return;c[d>>2]=b;if(!(c[a+52>>2]|0))return;qh(a)|0;return}function ph(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=a+4|0;if((((c[a>>2]|0)==(e|0)?(c[g>>2]|0)==(f|0):0)?(c[a+8>>2]|0)==(b|0):0)?(c[a+12>>2]|0)==(d|0):0)return;h=a+12|0;i=c[h>>2]|0;c[a>>2]=e;c[g>>2]=f;g=a+8|0;c[g>>2]=b;c[h>>2]=d;f=2;e=b;while(1){if(f>>>0>(c[(e>>>0>>0?g:h)>>2]|0)>>>0)break;e=c[g>>2]|0;while(1){if((e>>>0)%(f>>>0)|0|0)break;d=c[h>>2]|0;if((d>>>0)%(f>>>0)|0|0)break;b=(e>>>0)/(f>>>0)|0;c[g>>2]=b;d=(d>>>0)/(f>>>0)|0;c[h>>2]=d;e=b}f=f+1|0}a:do if(i|0){e=a+20|0;f=a+64|0;d=0;while(1){if(d>>>0>=(c[e>>2]|0)>>>0)break a;g=(c[f>>2]|0)+(d<<2)|0;c[g>>2]=((R(c[g>>2]|0,c[h>>2]|0)|0)>>>0)/(i>>>0)|0;g=(c[f>>2]|0)+(d<<2)|0;b=c[h>>2]|0;if((c[g>>2]|0)>>>0>=b>>>0)c[g>>2]=b+-1;d=d+1|0}}while(0);if(!(c[a+52>>2]|0))return;qh(a)|0;return}function qh(a){a=a|0;var b=0,d=0,e=0,f=0,h=0,i=0,j=0,k=0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0.0,s=0;o=a+24|0;p=c[o>>2]|0;q=a+28|0;n=c[q>>2]|0;f=c[a+8>>2]|0;k=a+12|0;h=c[k>>2]|0;c[a+36>>2]=(f>>>0)/(h>>>0)|0;c[a+40>>2]=(f>>>0)%(h>>>0)|0;m=a+16|0;d=c[m>>2]|0;b=c[23800+(d*20|0)+4>>2]|0;j=a+48|0;c[j>>2]=b;e=c[23800+(d*20|0)>>2]|0;c[o>>2]=e;if(f>>>0>h>>>0){g[a+44>>2]=+g[23800+(d*20|0)+8>>2]*+(h>>>0)/+(f>>>0);e=(((R(e,f)|0)>>>0)/(h>>>0)|0)+7&-8;c[o>>2]=e;if(h<<1>>>0>>0){b=b>>>1;c[j>>2]=b}if(h<<2>>>0>>0){b=b>>>1;c[j>>2]=b}if(h<<3>>>0>>0){b=b>>>1;c[j>>2]=b}if(h<<4>>>0>>0){b=b>>>1;c[j>>2]=b}if(!b){c[j>>2]=1;b=1}}else c[a+44>>2]=c[23800+(d*20|0)+12>>2];d=R(e,h)|0;f=(R(e,b)|0)+8|0;if(d>>>0<=f>>>0?(536870911/(h>>>0)|0)>>>0>=e>>>0:0){i=1;h=16}else h=15;if((h|0)==15?(536870903/(b>>>0)|0)>>>0>=e>>>0:0){d=f;i=0;h=16}do if((h|0)==16){b=a+80|0;if((c[b>>2]|0)>>>0>>0){e=a+76|0;f=th(c[e>>2]|0,d<<2)|0;if(!f)break;c[e>>2]=f;c[b>>2]=d}f=a+44|0;h=a+76|0;do if(i){b=0;while(1){if(b>>>0>=(c[k>>2]|0)>>>0)break;l=+(b>>>0);d=0;while(1){e=c[o>>2]|0;if(d>>>0>=e>>>0)break;r=+uh(+g[f>>2],+(d-((e|0)/2|0)+1|0)-l/+((c[k>>2]|0)>>>0),e,c[23800+((c[m>>2]|0)*20|0)+16>>2]|0);g[(c[h>>2]|0)+((R(b,e)|0)+d<<2)>>2]=r;d=d+1|0}b=b+1|0}b=a+84|0;if((c[m>>2]|0)>8){c[b>>2]=1;break}else{c[b>>2]=2;break}}else{b=-4;while(1){e=c[j>>2]|0;d=c[o>>2]|0;if((b|0)>=((R(e,d)|0)+4|0))break;r=+uh(+g[f>>2],+(b|0)/+(e>>>0)-+(d>>>1>>>0),d,c[23800+((c[m>>2]|0)*20|0)+16>>2]|0);g[(c[h>>2]|0)+(b+4<<2)>>2]=r;b=b+1|0}b=a+84|0;if((c[m>>2]|0)>8){c[b>>2]=3;break}else{c[b>>2]=4;break}}while(0);b=(c[o>>2]|0)+-1+(c[a+32>>2]|0)|0;d=c[q>>2]|0;if(b>>>0>d>>>0){d=c[a+20>>2]|0;if((536870911/(d>>>0)|0)>>>0>>0)break;e=a+72|0;d=th(c[e>>2]|0,(R(d,b)|0)<<2)|0;if(!d)break;c[e>>2]=d;c[q>>2]=b}else b=d;if(!(c[a+56>>2]|0)){f=a+20|0;e=a+72|0;d=0;while(1){if(d>>>0>=(R(c[f>>2]|0,b)|0)>>>0){b=0;break}g[(c[e>>2]|0)+(d<<2)>>2]=0.0;d=d+1|0;b=c[q>>2]|0}return b|0}b=c[o>>2]|0;if(b>>>0<=p>>>0){if(b>>>0>=p>>>0){q=0;return q|0}j=a+20|0;k=a+68|0;e=a+72|0;d=0;while(1){if(d>>>0>=(c[j>>2]|0)>>>0){b=0;break}b=(c[k>>2]|0)+(d<<2)|0;f=c[b>>2]|0;c[b>>2]=(p-(c[o>>2]|0)|0)>>>1;b=0;while(1){h=(c[k>>2]|0)+(d<<2)|0;i=c[h>>2]|0;if(b>>>0>=((c[o>>2]|0)+-1+i+f|0)>>>0)break;a=c[e>>2]|0;n=(R(d,c[q>>2]|0)|0)+b|0;c[a+(n<<2)>>2]=c[a+(n+i<<2)>>2];b=b+1|0}c[h>>2]=i+f;d=d+1|0}return b|0}i=a+68|0;j=p+-1|0;k=a+72|0;m=a+60|0;b=c[a+20>>2]|0;a:while(1){h=b+-1|0;if(!b){b=0;break}b=c[(c[i>>2]|0)+(h<<2)>>2]|0;f=b<<1;d=R(h,n)|0;b=j+b|0;while(1){e=b+-1|0;if(!b){b=0;break}a=c[k>>2]|0;b=(R(h,c[q>>2]|0)|0)+e|0;c[a+(b+(c[(c[i>>2]|0)+(h<<2)>>2]|0)<<2)>>2]=c[a+(d+e<<2)>>2];b=e}while(1){d=(c[i>>2]|0)+(h<<2)|0;if(b>>>0>=(c[d>>2]|0)>>>0)break;g[(c[k>>2]|0)+((R(h,c[q>>2]|0)|0)+b<<2)>>2]=0.0;b=b+1|0}f=p+f|0;c[d>>2]=0;b=c[o>>2]|0;if(f>>>0>=b>>>0){c[(c[i>>2]|0)+(h<<2)>>2]=(f-b|0)>>>1;b=0;while(1){d=c[(c[i>>2]|0)+(h<<2)>>2]|0;if(b>>>0>=((c[o>>2]|0)+-1+d|0)>>>0){b=h;continue a}f=c[k>>2]|0;a=(R(h,c[q>>2]|0)|0)+b|0;c[f+(a<<2)>>2]=c[f+(a+d<<2)>>2];b=b+1|0}}b=f+-1|0;e=f+-2|0;d=0;while(1){if((d|0)==(b|0))break;s=c[k>>2]|0;a=R(h,c[q>>2]|0)|0;c[s+(a+((c[o>>2]|0)+-2-d)<<2)>>2]=c[s+(a+(e-d)<<2)>>2];d=d+1|0}while(1){d=c[o>>2]|0;if(b>>>0>=(d+-1|0)>>>0)break;g[(c[k>>2]|0)+((R(h,c[q>>2]|0)|0)+(d+-2-b)<<2)>>2]=0.0;b=b+1|0}b=(c[m>>2]|0)+(h<<2)|0;c[b>>2]=(c[b>>2]|0)+((d-f|0)>>>1);b=h}return b|0}while(0);c[a+84>>2]=5;c[o>>2]=p;s=1;return s|0}function rh(a){a=a|0;sh(c[a+72>>2]|0);sh(c[a+76>>2]|0);sh(c[a+60>>2]|0);sh(c[a+68>>2]|0);sh(c[a+64>>2]|0);sh(a);return}function sh(a){a=a|0;Lh(a);return}function th(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;if(!a){a=Kh(b)|0;return a|0}if(b>>>0>4294967231){c[6029]=12;a=0;return a|0}o=b>>>0<11?16:b+11&-8;n=a+-8|0;p=a+-4|0;m=c[p>>2]|0;d=m&-8;j=a+(d+-8)|0;h=c[8506]|0;e=m&3;if(!((e|0)!=1&n>>>0>=h>>>0&(d|0)>0))da();f=c[j+4>>2]|0;if(!(f&1))da();do if(!e){if(!(o>>>0<256|d>>>0<(o|4)>>>0)?(d-o|0)>>>0<=c[8622]<<1>>>0:0)return a|0}else{if(d>>>0>=o>>>0){d=d-o|0;if(d>>>0<=15)return a|0;n=n+o|0;c[p>>2]=m&1|o|2;c[n+4>>2]=d|3;p=n+d+4|0;c[p>>2]=c[p>>2]|1;Mh(n,d);return a|0}if((j|0)==(c[8508]|0)){l=(c[8505]|0)+d|0;e=l-o|0;d=n+o|0;if(l>>>0<=o>>>0)break;c[p>>2]=m&1|o|2;c[d+4>>2]=e|1;c[8508]=d;c[8505]=e;return a|0}if((j|0)==(c[8507]|0)){f=(c[8504]|0)+d|0;if(f>>>0>>0)break;d=f-o|0;e=m&1;if(d>>>0>15){n=n+o|0;m=n+d|0;c[p>>2]=e|o|2;c[n+4>>2]=d|1;c[m>>2]=d;e=m+4|0;c[e>>2]=c[e>>2]&-2;e=n}else{c[p>>2]=e|f|2;e=n+f+4|0;c[e>>2]=c[e>>2]|1;e=0;d=0}c[8504]=d;c[8507]=e;return a|0}if((f&2|0)==0?(l=(f&-8)+d|0,l>>>0>=o>>>0):0){k=l-o|0;b=f>>>3;a:do if(f>>>0>=256){g=c[j+24>>2]|0;f=c[j+12>>2]|0;do if((f|0)==(j|0)){f=j+16|0;e=f+4|0;d=c[e>>2]|0;if(!d){d=c[f>>2]|0;if(!d){i=0;break}else e=f}while(1){f=d+20|0;b=c[f>>2]|0;if(b|0){d=b;e=f;continue}f=d+16|0;b=c[f>>2]|0;if(!b)break;else{d=b;e=f}}if(e>>>0>>0)da();else{c[e>>2]=0;i=d;break}}else{b=c[j+8>>2]|0;if(b>>>0>>0)da();d=b+12|0;if((c[d>>2]|0)!=(j|0))da();e=f+8|0;if((c[e>>2]|0)==(j|0)){c[d>>2]=f;c[e>>2]=b;i=f;break}else da()}while(0);if(g|0){d=c[j+28>>2]|0;e=34312+(d<<2)|0;do if((j|0)==(c[e>>2]|0)){c[e>>2]=i;if(!i){c[8503]=c[8503]&~(1<>>0>=(c[8506]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=i;if(!i)break a;else break}else da();while(0);f=c[8506]|0;if(i>>>0>>0)da();c[i+24>>2]=g;d=j+16|0;e=c[d>>2]|0;do if(e|0)if(e>>>0>>0)da();else{c[i+16>>2]=e;c[e+24>>2]=i;break}while(0);d=c[d+4>>2]|0;if(d|0)if(d>>>0<(c[8506]|0)>>>0)da();else{c[i+20>>2]=d;c[d+24>>2]=i;break}}}else{e=c[j+8>>2]|0;f=c[j+12>>2]|0;d=34048+(b<<1<<2)|0;if((e|0)!=(d|0)){if(e>>>0>>0)da();if((c[e+12>>2]|0)!=(j|0))da()}if((f|0)==(e|0)){c[8502]=c[8502]&~(1<>>0>>0)da();d=f+8|0;if((c[d>>2]|0)==(j|0))g=d;else da()}else g=f+8|0;c[e+12>>2]=f;c[g>>2]=e}while(0);d=m&1;if(k>>>0<16){c[p>>2]=l|d|2;p=n+l+4|0;c[p>>2]=c[p>>2]|1;return a|0}else{n=n+o|0;c[p>>2]=d|o|2;c[n+4>>2]=k|3;p=n+k+4|0;c[p>>2]=c[p>>2]|1;Mh(n,k);return a|0}}}while(0);d=Kh(b)|0;if(!d){a=0;return a|0}p=c[p>>2]|0;p=(p&-8)-((p&3|0)==0?8:4)|0;Sh(d|0,a|0,(p>>>0>>0?p:b)|0)|0;Lh(a);a=d;return a|0}function uh(a,b,d,e){a=+a;b=+b;d=d|0;e=e|0;var f=0.0,g=0.0;g=+E(+b);if(g<1.0e-06){g=a;return +g}f=+(d|0);if(g>f*.5){g=0.0;return +g}g=b*a*3.141592653589793;a=a*+I(+g)/g;g=+E(+(b*2.0/f));g=a*+Bh(g,c[e>>2]|0,c[e+4>>2]|0);return +g}function vh(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0.0,k=0.0,l=0.0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0.0;w=c[a+24>>2]|0;y=a+60|0;x=a+64|0;s=c[a+76>>2]|0;t=c[a+92>>2]|0;u=c[a+36>>2]|0;v=c[a+40>>2]|0;m=c[a+12>>2]|0;p=c[(c[x>>2]|0)+(b<<2)>>2]|0;q=c[(c[y>>2]|0)+(b<<2)>>2]|0;r=0;while(1){if((q|0)>=(c[e>>2]|0)){a=8;break}if((r|0)>=(c[h>>2]|0)){a=8;break}n=s+((R(p,w)|0)<<2)|0;o=d+(q<<2)|0;a=0;i=0.0;j=0.0;k=0.0;l=0.0;while(1){if((a|0)>=(w|0))break;C=i+ +g[n+(a<<2)>>2]*+g[o+(a<<2)>>2];A=a|1;z=a|2;B=a|3;a=a+4|0;i=C;j=j+ +g[n+(B<<2)>>2]*+g[o+(B<<2)>>2];k=k+ +g[n+(A<<2)>>2]*+g[o+(A<<2)>>2];l=l+ +g[n+(z<<2)>>2]*+g[o+(z<<2)>>2]}g[f+((R(t,r)|0)<<2)>>2]=i+k+l+j;A=p+v|0;B=A>>>0>>0;p=A-(B?0:m)|0;q=q+u+((B^1)&1)|0;r=r+1|0}if((a|0)==8){c[(c[y>>2]|0)+(b<<2)>>2]=q;c[(c[x>>2]|0)+(b<<2)>>2]=p;return r|0}return 0}function wh(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0.0;t=c[a+24>>2]|0;v=a+60|0;u=a+64|0;p=c[a+76>>2]|0;q=c[a+92>>2]|0;r=c[a+36>>2]|0;s=c[a+40>>2]|0;j=c[a+12>>2]|0;m=c[(c[u>>2]|0)+(b<<2)>>2]|0;n=c[(c[v>>2]|0)+(b<<2)>>2]|0;o=0;while(1){if((n|0)>=(c[e>>2]|0)){a=8;break}if((o|0)>=(c[h>>2]|0)){a=8;break}k=p+((R(m,t)|0)<<2)|0;l=d+(n<<2)|0;a=0;i=0.0;while(1){if((a|0)>=(t|0))break;w=i+ +g[k+(a<<2)>>2]*+g[l+(a<<2)>>2];a=a+1|0;i=w}g[f+((R(q,o)|0)<<2)>>2]=i;k=m+s|0;l=k>>>0>>0;m=k-(l?0:j)|0;n=n+r+((l^1)&1)|0;o=o+1|0}if((a|0)==8){c[(c[v>>2]|0)+(b<<2)>>2]=n;c[(c[u>>2]|0)+(b<<2)>>2]=m;return o|0}return 0}function xh(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,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.0,N=0;J=l;l=l+16|0;F=J;G=c[a+24>>2]|0;I=a+60|0;H=a+64|0;z=c[a+92>>2]|0;A=c[a+36>>2]|0;B=c[a+40>>2]|0;C=a+12|0;D=c[C>>2]|0;E=a+48|0;n=a+76|0;o=F+4|0;p=F+8|0;q=F+12|0;w=c[(c[H>>2]|0)+(b<<2)>>2]|0;x=c[(c[I>>2]|0)+(b<<2)>>2]|0;y=0;while(1){if((x|0)>=(c[e>>2]|0)){a=8;break}if((y|0)>=(c[h>>2]|0)){a=8;break}r=d+(x<<2)|0;s=c[E>>2]|0;u=R(w,s)|0;a=c[C>>2]|0;t=(u>>>0)/(a>>>0)|0;u=(u>>>0)%(a>>>0)|0;v=+(a>>>0);a=0;i=0.0;j=0.0;k=0.0;m=0.0;while(1){if((a|0)>=(G|0))break;M=+g[r+(a<<2)>>2];L=c[n>>2]|0;N=a+1|0;K=(R(N,s)|0)+4-t|0;a=N;i=i+M*+g[L+(K+-2<<2)>>2];j=j+M*+g[L+(K+1<<2)>>2];k=k+M*+g[L+(K+-1<<2)>>2];m=m+M*+g[L+(K<<2)>>2]}Ah(+(u>>>0)/v,F);g[f+((R(z,y)|0)<<2)>>2]=+g[F>>2]*i+ +g[o>>2]*k+ +g[p>>2]*m+ +g[q>>2]*j;L=w+B|0;N=L>>>0>>0;w=L-(N?0:D)|0;x=x+A+((N^1)&1)|0;y=y+1|0}if((a|0)==8){c[(c[I>>2]|0)+(b<<2)>>2]=x;c[(c[H>>2]|0)+(b<<2)>>2]=w;l=J;return y|0}return 0}function yh(a,b,d,e,f,h){a=a|0;b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;var i=0.0,j=0.0,k=0.0,m=0.0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0.0,w=0,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.0,N=0;J=l;l=l+16|0;F=J;G=c[a+24>>2]|0;I=a+60|0;H=a+64|0;z=c[a+92>>2]|0;A=c[a+36>>2]|0;B=c[a+40>>2]|0;C=a+12|0;D=c[C>>2]|0;E=a+48|0;n=a+76|0;o=F+4|0;p=F+8|0;q=F+12|0;w=c[(c[H>>2]|0)+(b<<2)>>2]|0;x=c[(c[I>>2]|0)+(b<<2)>>2]|0;y=0;while(1){if((x|0)>=(c[e>>2]|0)){a=8;break}if((y|0)>=(c[h>>2]|0)){a=8;break}r=d+(x<<2)|0;s=c[E>>2]|0;u=R(w,s)|0;a=c[C>>2]|0;t=(u>>>0)/(a>>>0)|0;u=(u>>>0)%(a>>>0)|0;v=+(a>>>0);a=0;i=0.0;j=0.0;k=0.0;m=0.0;while(1){if((a|0)>=(G|0))break;M=+g[r+(a<<2)>>2];L=c[n>>2]|0;N=a+1|0;K=(R(N,s)|0)+4-t|0;a=N;i=i+M*+g[L+(K+-2<<2)>>2];j=j+M*+g[L+(K+1<<2)>>2];k=k+M*+g[L+(K+-1<<2)>>2];m=m+M*+g[L+(K<<2)>>2]}Ah(+(u>>>0)/v,F);g[f+((R(z,y)|0)<<2)>>2]=+g[F>>2]*i+ +g[o>>2]*k+ +g[p>>2]*m+ +g[q>>2]*j;L=w+B|0;N=L>>>0>>0;w=L-(N?0:D)|0;x=x+A+((N^1)&1)|0;y=y+1|0}if((a|0)==8){c[(c[I>>2]|0)+(b<<2)>>2]=x;c[(c[H>>2]|0)+(b<<2)>>2]=w;l=J;return y|0}return 0}function zh(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,p=0,q=0;o=a+60|0;n=a+64|0;k=c[a+92>>2]|0;l=c[a+36>>2]|0;m=c[a+40>>2]|0;d=c[a+12>>2]|0;a=c[(c[n>>2]|0)+(b<<2)>>2]|0;i=c[(c[o>>2]|0)+(b<<2)>>2]|0;j=0;while(1){if((i|0)>=(c[e>>2]|0)){d=5;break}if((j|0)>=(c[h>>2]|0)){d=5;break}g[f+((R(k,j)|0)<<2)>>2]=0.0;q=a+m|0;p=q>>>0>>0;a=q-(p?0:d)|0;i=i+l+((p^1)&1)|0;j=j+1|0}if((d|0)==5){c[(c[o>>2]|0)+(b<<2)>>2]=i;c[(c[n>>2]|0)+(b<<2)>>2]=a;return j|0}return 0}function Ah(a,b){a=+a;b=b|0;var c=0.0,d=0.0,e=0.0,f=0.0;e=a*.16666999459266663*a*a;d=a*-.16666999459266663+e;g[b>>2]=d;f=a*.5*a;c=f+a-f*a;g[b+4>>2]=c;a=a*-.3333300054073334+f-e;g[b+12>>2]=a;g[b+8>>2]=1.0-d-c-a;return}function Bh(a,b,c){a=+a;b=b|0;c=c|0;var d=0.0,e=0.0,f=0.0,g=0.0;d=+(c|0)*a;c=~~+D(+d);d=d-+(c|0);g=d;f=d*d;d=f*d;e=d*.1666666667;a=g*-.1666666667+e;f=f*.5;d=g+f-d*.5;e=g*-.3333333333+f-e;return +(e*+h[b+(c<<3)>>3]+(1.0-a-d-e)*+h[b+(c+1<<3)>>3]+d*+h[b+(c+2<<3)>>3]+a*+h[b+(c+3<<3)>>3])}function Ch(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,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;v=l;l=l+16|0;s=v+8|0;t=v+4|0;u=v;c[s>>2]=f;i=c[e>>2]|0;f=c[h>>2]|0;q=c[a+28>>2]|0;o=(c[a+72>>2]|0)+((R(q,b)|0)<<2)|0;p=(c[a+24>>2]|0)+-1|0;q=q-p|0;r=c[a+88>>2]|0;j=a+68|0;if(c[(c[j>>2]|0)+(b<<2)>>2]|0){f=f-(Dh(a,b,s,f)|0)|0;if(c[(c[j>>2]|0)+(b<<2)>>2]|0){t=i;u=f;s=c[e>>2]|0;t=s-t|0;c[e>>2]=t;e=c[h>>2]|0;e=e-u|0;c[h>>2]=e;l=v;return}}n=a+92|0;m=d;a:while(1){k=(m|0)==0;do{if(!((i|0)!=0&(f|0)!=0))break a;j=i>>>0>q>>>0?q:i;c[t>>2]=j;c[u>>2]=f;b:do if(k){d=0;while(1){if(d>>>0>=j>>>0)break b;g[o+(d+p<<2)>>2]=0.0;d=d+1|0;j=c[t>>2]|0}}else{d=0;while(1){if(d>>>0>=j>>>0)break b;c[o+(d+p<<2)>>2]=c[m+((R(d,r)|0)<<2)>>2];d=d+1|0;j=c[t>>2]|0}}while(0);w=c[s>>2]|0;Eh(a,b,t,w,u);j=c[t>>2]|0;i=i-j|0;d=c[u>>2]|0;f=f-d|0;c[s>>2]=w+((R(d,c[n>>2]|0)|0)<<2)}while(k);m=m+((R(j,r)|0)<<2)|0}w=c[e>>2]|0;w=w-i|0;c[e>>2]=w;w=c[h>>2]|0;w=w-f|0;c[h>>2]=w;l=v;return}function Dh(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,m=0,n=0;n=l;l=l+16|0;k=n+4|0;m=n;c[k>>2]=e;j=a+68|0;c[m>>2]=c[(c[j>>2]|0)+(b<<2)>>2];i=(c[a+72>>2]|0)+((R(c[a+28>>2]|0,b)|0)<<2)|0;e=c[a+24>>2]|0;Eh(a,b,m,c[d>>2]|0,k);g=(c[j>>2]|0)+(b<<2)|0;c[g>>2]=(c[g>>2]|0)-(c[m>>2]|0);g=c[(c[j>>2]|0)+(b<<2)>>2]|0;if(!g){m=c[k>>2]|0;k=a+92|0;k=c[k>>2]|0;k=R(m,k)|0;b=c[d>>2]|0;k=b+(k<<2)|0;c[d>>2]=k;l=n;return m|0}h=e+-1|0;f=0;e=g;while(1){if(f>>>0>=e>>>0)break;e=h+f|0;c[i+(e<<2)>>2]=c[i+(e+(c[m>>2]|0)<<2)>>2];f=f+1|0;e=c[(c[j>>2]|0)+(b<<2)>>2]|0}m=c[k>>2]|0;k=a+92|0;k=c[k>>2]|0;k=R(m,k)|0;b=c[d>>2]|0;k=b+(k<<2)|0;c[d>>2]=k;l=n;return m|0}function Eh(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;h=c[a+24>>2]|0;i=(c[a+72>>2]|0)+((R(c[a+28>>2]|0,b)|0)<<2)|0;c[a+56>>2]=1;g=ja[c[a+84>>2]&7](a,b,i,d,e,f)|0;e=a+60|0;a=c[(c[e>>2]|0)+(b<<2)>>2]|0;if((a|0)<(c[d>>2]|0))c[d>>2]=a;c[f>>2]=g;g=(c[e>>2]|0)+(b<<2)|0;c[g>>2]=(c[g>>2]|0)-(c[d>>2]|0);g=c[d>>2]|0;a=h+-1|0;e=0;while(1){if((e|0)>=(a|0))break;c[i+(e<<2)>>2]=c[i+(e+g<<2)>>2];e=e+1|0}return}function Fh(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=c[f>>2]|0;m=c[d>>2]|0;n=a+88|0;o=c[n>>2]|0;p=a+92|0;h=c[p>>2]|0;i=a+20|0;k=c[i>>2]|0;c[p>>2]=k;c[n>>2]=k;j=(b|0)==0;g=0;while(1){if(g>>>0>=k>>>0)break;c[f>>2]=l;c[d>>2]=m;if(j)Ch(a,g,0,d,e+(g<<2)|0,f);else Ch(a,g,b+(g<<2)|0,d,e+(g<<2)|0,f);g=g+1|0;k=c[i>>2]|0}c[n>>2]=o;c[p>>2]=h;return (c[a+84>>2]|0)==5|0}function Gh(){return 33944}function Hh(a){a=+a;var b=0;b=(g[j>>2]=a,c[j>>2]|0);if((b&2130706432)>>>0<=1249902592){b=(b|0)<0;a=(b?8388608.0:-8388608.0)+((b?-8388608.0:8388608.0)+a);if(a==0.0)a=b?-0.0:0.0}return +a}function Ih(a){a=+a;var b=0,d=0,e=0,f=0,g=0.0,i=0.0,k=0.0,l=0.0,m=0.0;h[j>>3]=a;b=c[j>>2]|0;d=c[j+4>>2]|0;e=(d|0)<0;do if(e|d>>>0<1048576){if((b|0)==0&(d&2147483647|0)==0){a=-1.0/(a*a);break}if(e){a=(a-a)/0.0;break}else{h[j>>3]=a*18014398509481984.0;d=c[j+4>>2]|0;e=-1077;b=c[j>>2]|0;f=9;break}}else if(d>>>0<=2146435071)if((b|0)==0&0==0&(d|0)==1072693248)a=0.0;else{e=-1023;f=9}while(0);if((f|0)==9){f=d+614242|0;c[j>>2]=b;c[j+4>>2]=(f&1048575)+1072079006;k=+h[j>>3]+-1.0;i=k*(k*.5);l=k/(k+2.0);m=l*l;a=m*m;h[j>>3]=k-i;d=c[j+4>>2]|0;c[j>>2]=0;c[j+4>>2]=d;g=+h[j>>3];a=k-g-i+l*(i+(a*(a*(a*.15313837699209373+.22222198432149784)+.3999999999940942)+m*(a*(a*(a*.14798198605116586+.1818357216161805)+.2857142874366239)+.6666666666666735)));m=g*.4342944818781689;i=+(e+(f>>>20)|0);l=i*.30102999566361177;k=l+m;a=k+(m+(l-k)+(a*.4342944818781689+(i*3.694239077158931e-13+(g+a)*2.5082946711645275e-11)))}return +a}function Jh(a){a=+a;return ~~+Hh(a)|0}function Kh(a){a=a|0;var b=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0;K=l;l=l+16|0;o=K;do if(a>>>0<245){p=a>>>0<11?16:a+11&-8;a=p>>>3;t=c[8502]|0;d=t>>>a;if(d&3|0){a=(d&1^1)+a|0;d=34048+(a<<1<<2)|0;e=d+8|0;f=c[e>>2]|0;g=f+8|0;h=c[g>>2]|0;do if((d|0)!=(h|0)){if(h>>>0<(c[8506]|0)>>>0)da();b=h+12|0;if((c[b>>2]|0)==(f|0)){c[b>>2]=d;c[e>>2]=h;break}else da()}else c[8502]=t&~(1<>2]=J|3;J=f+J+4|0;c[J>>2]=c[J>>2]|1;J=g;l=K;return J|0}s=c[8504]|0;if(p>>>0>s>>>0){if(d|0){i=2<>>12&16;a=a>>>i;e=a>>>5&8;a=a>>>e;g=a>>>2&4;a=a>>>g;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=(e|i|g|d|b)+(a>>>b)|0;a=34048+(b<<1<<2)|0;d=a+8|0;g=c[d>>2]|0;i=g+8|0;e=c[i>>2]|0;do if((a|0)!=(e|0)){if(e>>>0<(c[8506]|0)>>>0)da();f=e+12|0;if((c[f>>2]|0)==(g|0)){c[f>>2]=a;c[d>>2]=e;j=t;break}else da()}else{j=t&~(1<>2]=p|3;e=g+p|0;c[e+4>>2]=h|1;c[e+h>>2]=h;if(s|0){f=c[8507]|0;b=s>>>3;d=34048+(b<<1<<2)|0;b=1<>2]|0;if(a>>>0<(c[8506]|0)>>>0)da();else{k=a;m=b}}else{c[8502]=j|b;k=d;m=d+8|0}c[m>>2]=f;c[k+12>>2]=f;c[f+8>>2]=k;c[f+12>>2]=d}c[8504]=h;c[8507]=e;J=i;l=K;return J|0}k=c[8503]|0;if(k){a=(k&0-k)+-1|0;I=a>>>12&16;a=a>>>I;H=a>>>5&8;a=a>>>H;J=a>>>2&4;a=a>>>J;d=a>>>1&2;a=a>>>d;b=a>>>1&1;b=c[34312+((H|I|J|d|b)+(a>>>b)<<2)>>2]|0;a=(c[b+4>>2]&-8)-p|0;d=c[b+16+(((c[b+16>>2]|0)==0&1)<<2)>>2]|0;if(!d){j=b;h=a}else{do{I=(c[d+4>>2]&-8)-p|0;J=I>>>0>>0;a=J?I:a;b=J?d:b;d=c[d+16+(((c[d+16>>2]|0)==0&1)<<2)>>2]|0}while((d|0)!=0);j=b;h=a}f=c[8506]|0;if(j>>>0>>0)da();i=j+p|0;if(j>>>0>=i>>>0)da();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){n=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)da();else{c[a>>2]=0;n=b;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)da();b=e+12|0;if((c[b>>2]|0)!=(j|0))da();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;n=d;break}else da()}while(0);a:do if(g|0){b=c[j+28>>2]|0;a=34312+(b<<2)|0;do if((j|0)==(c[a>>2]|0)){c[a>>2]=n;if(!n){c[8503]=k&~(1<>>0>=(c[8506]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=n;if(!n)break a;else break}else da();while(0);a=c[8506]|0;if(n>>>0>>0)da();c[n+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0>>0)da();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);b=c[j+20>>2]|0;if(b|0)if(b>>>0<(c[8506]|0)>>>0)da();else{c[n+20>>2]=b;c[b+24>>2]=n;break}}while(0);if(h>>>0<16){J=h+p|0;c[j+4>>2]=J|3;J=j+J+4|0;c[J>>2]=c[J>>2]|1}else{c[j+4>>2]=p|3;c[i+4>>2]=h|1;c[i+h>>2]=h;if(s|0){e=c[8507]|0;b=s>>>3;d=34048+(b<<1<<2)|0;b=1<>2]|0;if(a>>>0<(c[8506]|0)>>>0)da();else{q=a;r=b}}else{c[8502]=t|b;q=d;r=d+8|0}c[r>>2]=e;c[q+12>>2]=e;c[e+8>>2]=q;c[e+12>>2]=d}c[8504]=h;c[8507]=i}J=j+8|0;l=K;return J|0}}}else if(a>>>0<=4294967231){a=a+11|0;p=a&-8;k=c[8503]|0;if(k){e=0-p|0;a=a>>>8;if(a)if(p>>>0>16777215)i=31;else{r=(a+1048320|0)>>>16&8;C=a<>>16&4;C=C<>>16&2;i=14-(q|r|i)+(C<>>15)|0;i=p>>>(i+7|0)&1|i<<1}else i=0;d=c[34312+(i<<2)>>2]|0;b:do if(!d){d=0;a=0;C=81}else{a=0;h=p<<((i|0)==31?0:25-(i>>>1)|0);g=0;while(1){f=(c[d+4>>2]&-8)-p|0;if(f>>>0>>0)if(!f){a=d;e=0;f=d;C=85;break b}else{a=d;e=f}f=c[d+20>>2]|0;d=c[d+16+(h>>>31<<2)>>2]|0;g=(f|0)==0|(f|0)==(d|0)?g:f;f=(d|0)==0;if(f){d=g;C=81;break}else h=h<<((f^1)&1)}}while(0);if((C|0)==81){if((d|0)==0&(a|0)==0){a=2<>>12&16;r=r>>>m;j=r>>>5&8;r=r>>>j;n=r>>>2&4;r=r>>>n;q=r>>>1&2;r=r>>>q;d=r>>>1&1;a=0;d=c[34312+((j|m|n|q|d)+(r>>>d)<<2)>>2]|0}if(!d){j=a;i=e}else{f=d;C=85}}if((C|0)==85)while(1){C=0;d=(c[f+4>>2]&-8)-p|0;r=d>>>0>>0;d=r?d:e;a=r?f:a;f=c[f+16+(((c[f+16>>2]|0)==0&1)<<2)>>2]|0;if(!f){j=a;i=d;break}else{e=d;C=85}}if((j|0)!=0?i>>>0<((c[8504]|0)-p|0)>>>0:0){f=c[8506]|0;if(j>>>0>>0)da();h=j+p|0;if(j>>>0>=h>>>0)da();g=c[j+24>>2]|0;d=c[j+12>>2]|0;do if((d|0)==(j|0)){a=j+20|0;b=c[a>>2]|0;if(!b){a=j+16|0;b=c[a>>2]|0;if(!b){s=0;break}}while(1){d=b+20|0;e=c[d>>2]|0;if(e|0){b=e;a=d;continue}d=b+16|0;e=c[d>>2]|0;if(!e)break;else{b=e;a=d}}if(a>>>0>>0)da();else{c[a>>2]=0;s=b;break}}else{e=c[j+8>>2]|0;if(e>>>0>>0)da();b=e+12|0;if((c[b>>2]|0)!=(j|0))da();a=d+8|0;if((c[a>>2]|0)==(j|0)){c[b>>2]=d;c[a>>2]=e;s=d;break}else da()}while(0);c:do if(g){b=c[j+28>>2]|0;a=34312+(b<<2)|0;do if((j|0)==(c[a>>2]|0)){c[a>>2]=s;if(!s){t=k&~(1<>>0>=(c[8506]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(j|0)&1)<<2)>>2]=s;if(!s){t=k;break c}else break}else da();while(0);a=c[8506]|0;if(s>>>0>>0)da();c[s+24>>2]=g;b=c[j+16>>2]|0;do if(b|0)if(b>>>0>>0)da();else{c[s+16>>2]=b;c[b+24>>2]=s;break}while(0);b=c[j+20>>2]|0;if(b)if(b>>>0<(c[8506]|0)>>>0)da();else{c[s+20>>2]=b;c[b+24>>2]=s;t=k;break}else t=k}else t=k;while(0);do if(i>>>0>=16){c[j+4>>2]=p|3;c[h+4>>2]=i|1;c[h+i>>2]=i;b=i>>>3;if(i>>>0<256){d=34048+(b<<1<<2)|0;a=c[8502]|0;b=1<>2]|0;if(a>>>0<(c[8506]|0)>>>0)da();else{x=a;y=b}}else{c[8502]=a|b;x=d;y=d+8|0}c[y>>2]=h;c[x+12>>2]=h;c[h+8>>2]=x;c[h+12>>2]=d;break}b=i>>>8;if(b)if(i>>>0>16777215)b=31;else{I=(b+1048320|0)>>>16&8;J=b<>>16&4;J=J<>>16&2;b=14-(H|I|b)+(J<>>15)|0;b=i>>>(b+7|0)&1|b<<1}else b=0;d=34312+(b<<2)|0;c[h+28>>2]=b;a=h+16|0;c[a+4>>2]=0;c[a>>2]=0;a=1<>2]=h;c[h+24>>2]=d;c[h+12>>2]=h;c[h+8>>2]=h;break}a=i<<((b|0)==31?0:25-(b>>>1)|0);e=c[d>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(i|0)){C=139;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=136;break}else{a=a<<1;e=b}}if((C|0)==136)if(d>>>0<(c[8506]|0)>>>0)da();else{c[d>>2]=h;c[h+24>>2]=e;c[h+12>>2]=h;c[h+8>>2]=h;break}else if((C|0)==139){b=e+8|0;a=c[b>>2]|0;J=c[8506]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=h;c[b>>2]=h;c[h+8>>2]=a;c[h+12>>2]=e;c[h+24>>2]=0;break}else da()}}else{J=i+p|0;c[j+4>>2]=J|3;J=j+J+4|0;c[J>>2]=c[J>>2]|1}while(0);J=j+8|0;l=K;return J|0}}}else p=-1;while(0);d=c[8504]|0;if(d>>>0>=p>>>0){b=d-p|0;a=c[8507]|0;if(b>>>0>15){J=a+p|0;c[8507]=J;c[8504]=b;c[J+4>>2]=b|1;c[J+b>>2]=b;c[a+4>>2]=p|3}else{c[8504]=0;c[8507]=0;c[a+4>>2]=d|3;J=a+d+4|0;c[J>>2]=c[J>>2]|1}J=a+8|0;l=K;return J|0}h=c[8505]|0;if(h>>>0>p>>>0){H=h-p|0;c[8505]=H;J=c[8508]|0;I=J+p|0;c[8508]=I;c[I+4>>2]=H|1;c[J+4>>2]=p|3;J=J+8|0;l=K;return J|0}if(!(c[8620]|0)){c[8622]=4096;c[8621]=4096;c[8623]=-1;c[8624]=-1;c[8625]=0;c[8613]=0;a=o&-16^1431655768;c[o>>2]=a;c[8620]=a;a=4096}else a=c[8622]|0;i=p+48|0;j=p+47|0;g=a+j|0;f=0-a|0;k=g&f;if(k>>>0<=p>>>0){J=0;l=K;return J|0}a=c[8612]|0;if(a|0?(x=c[8610]|0,y=x+k|0,y>>>0<=x>>>0|y>>>0>a>>>0):0){J=0;l=K;return J|0}d:do if(!(c[8613]&4)){d=c[8508]|0;e:do if(d){e=34456;while(1){a=c[e>>2]|0;if(a>>>0<=d>>>0?(w=e+4|0,(a+(c[w>>2]|0)|0)>>>0>d>>>0):0)break;a=c[e+8>>2]|0;if(!a){C=163;break e}else e=a}b=g-h&f;if(b>>>0<2147483647){a=Vh(b|0)|0;if((a|0)==((c[e>>2]|0)+(c[w>>2]|0)|0)){if((a|0)!=(-1|0)){h=b;g=a;C=180;break d}}else{e=a;C=171}}else b=0}else C=163;while(0);do if((C|0)==163){d=Vh(0)|0;if((d|0)!=(-1|0)?(b=d,u=c[8621]|0,v=u+-1|0,b=((v&b|0)==0?0:(v+b&0-u)-b|0)+k|0,u=c[8610]|0,v=b+u|0,b>>>0>p>>>0&b>>>0<2147483647):0){y=c[8612]|0;if(y|0?v>>>0<=u>>>0|v>>>0>y>>>0:0){b=0;break}a=Vh(b|0)|0;if((a|0)==(d|0)){h=b;g=d;C=180;break d}else{e=a;C=171}}else b=0}while(0);do if((C|0)==171){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;C=180;break d}a=c[8622]|0;a=j-b+a&0-a;if(a>>>0>=2147483647){h=b;g=e;C=180;break d}if((Vh(a|0)|0)==(-1|0)){Vh(d|0)|0;b=0;break}else{h=a+b|0;g=e;C=180;break d}}while(0);c[8613]=c[8613]|4;C=178}else{b=0;C=178}while(0);if(((C|0)==178?k>>>0<2147483647:0)?(B=Vh(k|0)|0,y=Vh(0)|0,z=y-B|0,A=z>>>0>(p+40|0)>>>0,!((B|0)==(-1|0)|A^1|B>>>0>>0&((B|0)!=(-1|0)&(y|0)!=(-1|0))^1)):0){h=A?z:b;g=B;C=180}if((C|0)==180){b=(c[8610]|0)+h|0;c[8610]=b;if(b>>>0>(c[8611]|0)>>>0)c[8611]=b;k=c[8508]|0;do if(k){b=34456;while(1){a=c[b>>2]|0;d=b+4|0;e=c[d>>2]|0;if((g|0)==(a+e|0)){C=190;break}f=c[b+8>>2]|0;if(!f)break;else b=f}if(((C|0)==190?(c[b+12>>2]&8|0)==0:0)?k>>>0>>0&k>>>0>=a>>>0:0){c[d>>2]=e+h;J=k+8|0;J=(J&7|0)==0?0:0-J&7;I=k+J|0;J=(c[8505]|0)+(h-J)|0;c[8508]=I;c[8505]=J;c[I+4>>2]=J|1;c[I+J+4>>2]=40;c[8509]=c[8624];break}b=c[8506]|0;if(g>>>0>>0){c[8506]=g;i=g}else i=b;d=g+h|0;b=34456;while(1){if((c[b>>2]|0)==(d|0)){C=198;break}a=c[b+8>>2]|0;if(!a)break;else b=a}if((C|0)==198?(c[b+12>>2]&8|0)==0:0){c[b>>2]=g;n=b+4|0;c[n>>2]=(c[n>>2]|0)+h;n=g+8|0;n=g+((n&7|0)==0?0:0-n&7)|0;b=d+8|0;b=d+((b&7|0)==0?0:0-b&7)|0;m=n+p|0;j=b-n-p|0;c[n+4>>2]=p|3;do if((b|0)!=(k|0)){if((b|0)==(c[8507]|0)){J=(c[8504]|0)+j|0;c[8504]=J;c[8507]=m;c[m+4>>2]=J|1;c[m+J>>2]=J;break}a=c[b+4>>2]|0;if((a&3|0)==1){h=a&-8;f=a>>>3;f:do if(a>>>0>=256){g=c[b+24>>2]|0;e=c[b+12>>2]|0;do if((e|0)==(b|0)){e=b+16|0;d=e+4|0;a=c[d>>2]|0;if(!a){a=c[e>>2]|0;if(!a){H=0;break}else d=e}while(1){e=a+20|0;f=c[e>>2]|0;if(f|0){a=f;d=e;continue}e=a+16|0;f=c[e>>2]|0;if(!f)break;else{a=f;d=e}}if(d>>>0>>0)da();else{c[d>>2]=0;H=a;break}}else{f=c[b+8>>2]|0;if(f>>>0>>0)da();a=f+12|0;if((c[a>>2]|0)!=(b|0))da();d=e+8|0;if((c[d>>2]|0)==(b|0)){c[a>>2]=e;c[d>>2]=f;H=e;break}else da()}while(0);if(!g)break;a=c[b+28>>2]|0;d=34312+(a<<2)|0;do if((b|0)!=(c[d>>2]|0))if(g>>>0>=(c[8506]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(b|0)&1)<<2)>>2]=H;if(!H)break f;else break}else da();else{c[d>>2]=H;if(H|0)break;c[8503]=c[8503]&~(1<>>0>>0)da();c[H+24>>2]=g;a=b+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0>>0)da();else{c[H+16>>2]=d;c[d+24>>2]=H;break}while(0);a=c[a+4>>2]|0;if(!a)break;if(a>>>0<(c[8506]|0)>>>0)da();else{c[H+20>>2]=a;c[a+24>>2]=H;break}}else{d=c[b+8>>2]|0;e=c[b+12>>2]|0;a=34048+(f<<1<<2)|0;do if((d|0)!=(a|0)){if(d>>>0>>0)da();if((c[d+12>>2]|0)==(b|0))break;da()}while(0);if((e|0)==(d|0)){c[8502]=c[8502]&~(1<>>0>>0)da();a=e+8|0;if((c[a>>2]|0)==(b|0)){E=a;break}da()}while(0);c[d+12>>2]=e;c[E>>2]=d}while(0);b=b+h|0;f=h+j|0}else f=j;b=b+4|0;c[b>>2]=c[b>>2]&-2;c[m+4>>2]=f|1;c[m+f>>2]=f;b=f>>>3;if(f>>>0<256){d=34048+(b<<1<<2)|0;a=c[8502]|0;b=1<>2]|0;if(a>>>0>=(c[8506]|0)>>>0){I=a;J=b;break}da()}while(0);c[J>>2]=m;c[I+12>>2]=m;c[m+8>>2]=I;c[m+12>>2]=d;break}b=f>>>8;do if(!b)b=0;else{if(f>>>0>16777215){b=31;break}I=(b+1048320|0)>>>16&8;J=b<>>16&4;J=J<>>16&2;b=14-(H|I|b)+(J<>>15)|0;b=f>>>(b+7|0)&1|b<<1}while(0);e=34312+(b<<2)|0;c[m+28>>2]=b;a=m+16|0;c[a+4>>2]=0;c[a>>2]=0;a=c[8503]|0;d=1<>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}a=f<<((b|0)==31?0:25-(b>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){C=265;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=262;break}else{a=a<<1;e=b}}if((C|0)==262)if(d>>>0<(c[8506]|0)>>>0)da();else{c[d>>2]=m;c[m+24>>2]=e;c[m+12>>2]=m;c[m+8>>2]=m;break}else if((C|0)==265){b=e+8|0;a=c[b>>2]|0;J=c[8506]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=m;c[b>>2]=m;c[m+8>>2]=a;c[m+12>>2]=e;c[m+24>>2]=0;break}else da()}}else{J=(c[8505]|0)+j|0;c[8505]=J;c[8508]=m;c[m+4>>2]=J|1}while(0);J=n+8|0;l=K;return J|0}b=34456;while(1){a=c[b>>2]|0;if(a>>>0<=k>>>0?(D=a+(c[b+4>>2]|0)|0,D>>>0>k>>>0):0)break;b=c[b+8>>2]|0}f=D+-47|0;a=f+8|0;a=f+((a&7|0)==0?0:0-a&7)|0;f=k+16|0;a=a>>>0>>0?k:a;b=a+8|0;d=g+8|0;d=(d&7|0)==0?0:0-d&7;J=g+d|0;d=h+-40-d|0;c[8508]=J;c[8505]=d;c[J+4>>2]=d|1;c[J+d+4>>2]=40;c[8509]=c[8624];d=a+4|0;c[d>>2]=27;c[b>>2]=c[8614];c[b+4>>2]=c[8615];c[b+8>>2]=c[8616];c[b+12>>2]=c[8617];c[8614]=g;c[8615]=h;c[8617]=0;c[8616]=b;b=a+24|0;do{J=b;b=b+4|0;c[b>>2]=7}while((J+8|0)>>>0>>0);if((a|0)!=(k|0)){g=a-k|0;c[d>>2]=c[d>>2]&-2;c[k+4>>2]=g|1;c[a>>2]=g;b=g>>>3;if(g>>>0<256){d=34048+(b<<1<<2)|0;a=c[8502]|0;b=1<>2]|0;if(a>>>0<(c[8506]|0)>>>0)da();else{F=a;G=b}}else{c[8502]=a|b;F=d;G=d+8|0}c[G>>2]=k;c[F+12>>2]=k;c[k+8>>2]=F;c[k+12>>2]=d;break}b=g>>>8;if(b)if(g>>>0>16777215)d=31;else{I=(b+1048320|0)>>>16&8;J=b<>>16&4;J=J<>>16&2;d=14-(H|I|d)+(J<>>15)|0;d=g>>>(d+7|0)&1|d<<1}else d=0;e=34312+(d<<2)|0;c[k+28>>2]=d;c[k+20>>2]=0;c[f>>2]=0;b=c[8503]|0;a=1<>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}a=g<<((d|0)==31?0:25-(d>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(g|0)){C=292;break}d=e+16+(a>>>31<<2)|0;b=c[d>>2]|0;if(!b){C=289;break}else{a=a<<1;e=b}}if((C|0)==289)if(d>>>0<(c[8506]|0)>>>0)da();else{c[d>>2]=k;c[k+24>>2]=e;c[k+12>>2]=k;c[k+8>>2]=k;break}else if((C|0)==292){b=e+8|0;a=c[b>>2]|0;J=c[8506]|0;if(a>>>0>=J>>>0&e>>>0>=J>>>0){c[a+12>>2]=k;c[b>>2]=k;c[k+8>>2]=a;c[k+12>>2]=e;c[k+24>>2]=0;break}else da()}}}else{J=c[8506]|0;if((J|0)==0|g>>>0>>0)c[8506]=g;c[8614]=g;c[8615]=h;c[8617]=0;c[8511]=c[8620];c[8510]=-1;b=0;do{J=34048+(b<<1<<2)|0;c[J+12>>2]=J;c[J+8>>2]=J;b=b+1|0}while((b|0)!=32);J=g+8|0;J=(J&7|0)==0?0:0-J&7;I=g+J|0;J=h+-40-J|0;c[8508]=I;c[8505]=J;c[I+4>>2]=J|1;c[I+J+4>>2]=40;c[8509]=c[8624]}while(0);b=c[8505]|0;if(b>>>0>p>>>0){H=b-p|0;c[8505]=H;J=c[8508]|0;I=J+p|0;c[8508]=I;c[I+4>>2]=H|1;c[J+4>>2]=p|3;J=J+8|0;l=K;return J|0}}c[6029]=12;J=0;l=K;return J|0}function Lh(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;if(!a)return;d=a+-8|0;h=c[8506]|0;if(d>>>0>>0)da();a=c[a+-4>>2]|0;b=a&3;if((b|0)==1)da();e=a&-8;o=d+e|0;a:do if(!(a&1)){a=c[d>>2]|0;if(!b)return;k=d+(0-a)|0;j=a+e|0;if(k>>>0>>0)da();if((k|0)==(c[8507]|0)){a=o+4|0;b=c[a>>2]|0;if((b&3|0)!=3){r=k;f=j;m=k;break}c[8504]=j;c[a>>2]=b&-2;c[k+4>>2]=j|1;c[k+j>>2]=j;return}e=a>>>3;if(a>>>0<256){b=c[k+8>>2]|0;d=c[k+12>>2]|0;a=34048+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0>>0)da();if((c[b+12>>2]|0)!=(k|0))da()}if((d|0)==(b|0)){c[8502]=c[8502]&~(1<>>0>>0)da();a=d+8|0;if((c[a>>2]|0)==(k|0))g=a;else da()}else g=d+8|0;c[b+12>>2]=d;c[g>>2]=b;r=k;f=j;m=k;break}g=c[k+24>>2]|0;d=c[k+12>>2]|0;do if((d|0)==(k|0)){d=k+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){i=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0>>0)da();else{c[b>>2]=0;i=a;break}}else{e=c[k+8>>2]|0;if(e>>>0>>0)da();a=e+12|0;if((c[a>>2]|0)!=(k|0))da();b=d+8|0;if((c[b>>2]|0)==(k|0)){c[a>>2]=d;c[b>>2]=e;i=d;break}else da()}while(0);if(g){a=c[k+28>>2]|0;b=34312+(a<<2)|0;do if((k|0)==(c[b>>2]|0)){c[b>>2]=i;if(!i){c[8503]=c[8503]&~(1<>>0>=(c[8506]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(k|0)&1)<<2)>>2]=i;if(!i){r=k;f=j;m=k;break a}else break}else da();while(0);d=c[8506]|0;if(i>>>0>>0)da();c[i+24>>2]=g;a=k+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)da();else{c[i+16>>2]=b;c[b+24>>2]=i;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[8506]|0)>>>0)da();else{c[i+20>>2]=a;c[a+24>>2]=i;r=k;f=j;m=k;break}else{r=k;f=j;m=k}}else{r=k;f=j;m=k}}else{r=d;f=e;m=d}while(0);if(m>>>0>=o>>>0)da();a=o+4|0;b=c[a>>2]|0;if(!(b&1))da();if(!(b&2)){a=c[8507]|0;if((o|0)==(c[8508]|0)){q=(c[8505]|0)+f|0;c[8505]=q;c[8508]=r;c[r+4>>2]=q|1;if((r|0)!=(a|0))return;c[8507]=0;c[8504]=0;return}if((o|0)==(a|0)){q=(c[8504]|0)+f|0;c[8504]=q;c[8507]=m;c[r+4>>2]=q|1;c[m+q>>2]=q;return}f=(b&-8)+f|0;e=b>>>3;b:do if(b>>>0>=256){g=c[o+24>>2]|0;a=c[o+12>>2]|0;do if((a|0)==(o|0)){d=o+16|0;b=d+4|0;a=c[b>>2]|0;if(!a){a=c[d>>2]|0;if(!a){n=0;break}else b=d}while(1){d=a+20|0;e=c[d>>2]|0;if(e|0){a=e;b=d;continue}d=a+16|0;e=c[d>>2]|0;if(!e)break;else{a=e;b=d}}if(b>>>0<(c[8506]|0)>>>0)da();else{c[b>>2]=0;n=a;break}}else{b=c[o+8>>2]|0;if(b>>>0<(c[8506]|0)>>>0)da();d=b+12|0;if((c[d>>2]|0)!=(o|0))da();e=a+8|0;if((c[e>>2]|0)==(o|0)){c[d>>2]=a;c[e>>2]=b;n=a;break}else da()}while(0);if(g|0){a=c[o+28>>2]|0;b=34312+(a<<2)|0;do if((o|0)==(c[b>>2]|0)){c[b>>2]=n;if(!n){c[8503]=c[8503]&~(1<>>0>=(c[8506]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(o|0)&1)<<2)>>2]=n;if(!n)break b;else break}else da();while(0);d=c[8506]|0;if(n>>>0>>0)da();c[n+24>>2]=g;a=o+16|0;b=c[a>>2]|0;do if(b|0)if(b>>>0>>0)da();else{c[n+16>>2]=b;c[b+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[8506]|0)>>>0)da();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{b=c[o+8>>2]|0;d=c[o+12>>2]|0;a=34048+(e<<1<<2)|0;if((b|0)!=(a|0)){if(b>>>0<(c[8506]|0)>>>0)da();if((c[b+12>>2]|0)!=(o|0))da()}if((d|0)==(b|0)){c[8502]=c[8502]&~(1<>>0<(c[8506]|0)>>>0)da();a=d+8|0;if((c[a>>2]|0)==(o|0))l=a;else da()}else l=d+8|0;c[b+12>>2]=d;c[l>>2]=b}while(0);c[r+4>>2]=f|1;c[m+f>>2]=f;if((r|0)==(c[8507]|0)){c[8504]=f;return}}else{c[a>>2]=b&-2;c[r+4>>2]=f|1;c[m+f>>2]=f}a=f>>>3;if(f>>>0<256){d=34048+(a<<1<<2)|0;b=c[8502]|0;a=1<>2]|0;if(b>>>0<(c[8506]|0)>>>0)da();else{p=b;q=a}}else{c[8502]=b|a;p=d;q=d+8|0}c[q>>2]=r;c[p+12>>2]=r;c[r+8>>2]=p;c[r+12>>2]=d;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{p=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;a=14-(o|p|a)+(q<>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=34312+(a<<2)|0;c[r+28>>2]=a;c[r+20>>2]=0;c[r+16>>2]=0;b=c[8503]|0;d=1<>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=124;break}d=e+16+(b>>>31<<2)|0;a=c[d>>2]|0;if(!a){a=121;break}else{b=b<<1;e=a}}if((a|0)==121)if(d>>>0<(c[8506]|0)>>>0)da();else{c[d>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;break}else if((a|0)==124){a=e+8|0;b=c[a>>2]|0;q=c[8506]|0;if(b>>>0>=q>>>0&e>>>0>=q>>>0){c[b+12>>2]=r;c[a>>2]=r;c[r+8>>2]=b;c[r+12>>2]=e;c[r+24>>2]=0;break}else da()}}else{c[8503]=b|d;c[e>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r}while(0);r=(c[8510]|0)+-1|0;c[8510]=r;if(!r)a=34464;else return;while(1){a=c[a>>2]|0;if(!a)break;else a=a+8|0}c[8510]=-1;return}function Mh(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;o=a+b|0;d=c[a+4>>2]|0;a:do if(!(d&1)){g=c[a>>2]|0;if(!(d&3))return;l=a+(0-g)|0;k=g+b|0;i=c[8506]|0;if(l>>>0>>0)da();if((l|0)==(c[8507]|0)){a=o+4|0;d=c[a>>2]|0;if((d&3|0)!=3){r=l;f=k;break}c[8504]=k;c[a>>2]=d&-2;c[l+4>>2]=k|1;c[l+k>>2]=k;return}e=g>>>3;if(g>>>0<256){d=c[l+8>>2]|0;b=c[l+12>>2]|0;a=34048+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0>>0)da();if((c[d+12>>2]|0)!=(l|0))da()}if((b|0)==(d|0)){c[8502]=c[8502]&~(1<>>0>>0)da();a=b+8|0;if((c[a>>2]|0)==(l|0))h=a;else da()}else h=b+8|0;c[d+12>>2]=b;c[h>>2]=d;r=l;f=k;break}g=c[l+24>>2]|0;b=c[l+12>>2]|0;do if((b|0)==(l|0)){b=l+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){j=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0>>0)da();else{c[d>>2]=0;j=a;break}}else{e=c[l+8>>2]|0;if(e>>>0>>0)da();a=e+12|0;if((c[a>>2]|0)!=(l|0))da();d=b+8|0;if((c[d>>2]|0)==(l|0)){c[a>>2]=b;c[d>>2]=e;j=b;break}else da()}while(0);if(g){a=c[l+28>>2]|0;d=34312+(a<<2)|0;do if((l|0)==(c[d>>2]|0)){c[d>>2]=j;if(!j){c[8503]=c[8503]&~(1<>>0>=(c[8506]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(l|0)&1)<<2)>>2]=j;if(!j){r=l;f=k;break a}else break}else da();while(0);b=c[8506]|0;if(j>>>0>>0)da();c[j+24>>2]=g;a=l+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0>>0)da();else{c[j+16>>2]=d;c[d+24>>2]=j;break}while(0);a=c[a+4>>2]|0;if(a)if(a>>>0<(c[8506]|0)>>>0)da();else{c[j+20>>2]=a;c[a+24>>2]=j;r=l;f=k;break}else{r=l;f=k}}else{r=l;f=k}}else{r=a;f=b}while(0);h=c[8506]|0;if(o>>>0>>0)da();a=o+4|0;d=c[a>>2]|0;if(!(d&2)){a=c[8507]|0;if((o|0)==(c[8508]|0)){q=(c[8505]|0)+f|0;c[8505]=q;c[8508]=r;c[r+4>>2]=q|1;if((r|0)!=(a|0))return;c[8507]=0;c[8504]=0;return}if((o|0)==(a|0)){q=(c[8504]|0)+f|0;c[8504]=q;c[8507]=r;c[r+4>>2]=q|1;c[r+q>>2]=q;return}f=(d&-8)+f|0;e=d>>>3;b:do if(d>>>0>=256){g=c[o+24>>2]|0;b=c[o+12>>2]|0;do if((b|0)==(o|0)){b=o+16|0;d=b+4|0;a=c[d>>2]|0;if(!a){a=c[b>>2]|0;if(!a){n=0;break}else d=b}while(1){b=a+20|0;e=c[b>>2]|0;if(e|0){a=e;d=b;continue}b=a+16|0;e=c[b>>2]|0;if(!e)break;else{a=e;d=b}}if(d>>>0>>0)da();else{c[d>>2]=0;n=a;break}}else{e=c[o+8>>2]|0;if(e>>>0>>0)da();a=e+12|0;if((c[a>>2]|0)!=(o|0))da();d=b+8|0;if((c[d>>2]|0)==(o|0)){c[a>>2]=b;c[d>>2]=e;n=b;break}else da()}while(0);if(g|0){a=c[o+28>>2]|0;d=34312+(a<<2)|0;do if((o|0)==(c[d>>2]|0)){c[d>>2]=n;if(!n){c[8503]=c[8503]&~(1<>>0>=(c[8506]|0)>>>0){c[g+16+(((c[g+16>>2]|0)!=(o|0)&1)<<2)>>2]=n;if(!n)break b;else break}else da();while(0);b=c[8506]|0;if(n>>>0>>0)da();c[n+24>>2]=g;a=o+16|0;d=c[a>>2]|0;do if(d|0)if(d>>>0>>0)da();else{c[n+16>>2]=d;c[d+24>>2]=n;break}while(0);a=c[a+4>>2]|0;if(a|0)if(a>>>0<(c[8506]|0)>>>0)da();else{c[n+20>>2]=a;c[a+24>>2]=n;break}}}else{d=c[o+8>>2]|0;b=c[o+12>>2]|0;a=34048+(e<<1<<2)|0;if((d|0)!=(a|0)){if(d>>>0>>0)da();if((c[d+12>>2]|0)!=(o|0))da()}if((b|0)==(d|0)){c[8502]=c[8502]&~(1<>>0>>0)da();a=b+8|0;if((c[a>>2]|0)==(o|0))m=a;else da()}else m=b+8|0;c[d+12>>2]=b;c[m>>2]=d}while(0);c[r+4>>2]=f|1;c[r+f>>2]=f;if((r|0)==(c[8507]|0)){c[8504]=f;return}}else{c[a>>2]=d&-2;c[r+4>>2]=f|1;c[r+f>>2]=f}a=f>>>3;if(f>>>0<256){b=34048+(a<<1<<2)|0;d=c[8502]|0;a=1<>2]|0;if(d>>>0<(c[8506]|0)>>>0)da();else{p=d;q=a}}else{c[8502]=d|a;p=b;q=b+8|0}c[q>>2]=r;c[p+12>>2]=r;c[r+8>>2]=p;c[r+12>>2]=b;return}a=f>>>8;if(a)if(f>>>0>16777215)a=31;else{p=(a+1048320|0)>>>16&8;q=a<>>16&4;q=q<>>16&2;a=14-(o|p|a)+(q<>>15)|0;a=f>>>(a+7|0)&1|a<<1}else a=0;e=34312+(a<<2)|0;c[r+28>>2]=a;c[r+20>>2]=0;c[r+16>>2]=0;d=c[8503]|0;b=1<>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}d=f<<((a|0)==31?0:25-(a>>>1)|0);e=c[e>>2]|0;while(1){if((c[e+4>>2]&-8|0)==(f|0)){a=121;break}b=e+16+(d>>>31<<2)|0;a=c[b>>2]|0;if(!a){a=118;break}else{d=d<<1;e=a}}if((a|0)==118){if(b>>>0<(c[8506]|0)>>>0)da();c[b>>2]=r;c[r+24>>2]=e;c[r+12>>2]=r;c[r+8>>2]=r;return}else if((a|0)==121){a=e+8|0;d=c[a>>2]|0;q=c[8506]|0;if(!(d>>>0>=q>>>0&e>>>0>=q>>>0))da();c[d+12>>2]=r;c[a>>2]=r;c[r+8>>2]=d;c[r+12>>2]=e;c[r+24>>2]=0;return}}function Nh(){}function Oh(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>c;return a>>>c|(b&(1<>c-32|0}function Ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;c=a+c>>>0;return (C=b+d+(c>>>0>>0|0)>>>0,c|0)|0}function Qh(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;g=f-64|0;i=d|d<<8|d<<16|d<<24;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 Rh(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){C=b>>>c;return a>>>c|(b&(1<>>c-32|0}function Sh(b,d,e){b=b|0;d=d|0;e=e|0;var f=0,g=0,h=0;if((e|0)>=8192)return ga(b|0,d|0,e|0)|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 Th(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;f=a&65535;e=b&65535;c=R(e,f)|0;d=a>>>16;a=(c>>>16)+(R(e,d)|0)|0;e=b>>>16;b=R(e,f)|0;return (C=(a>>>16)+(R(e,d)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|c&65535|0)|0}function Uh(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=Th(e,f)|0;a=C;return (C=(R(b,f)|0)+(R(d,e)|0)+a|a&0,c|0|0)|0}function Vh(a){a=a|0;var b=0,d=0;d=a+15&-16|0;b=c[i>>2]|0;a=b+d|0;if((d|0)>0&(a|0)<(b|0)|(a|0)<0){Z()|0;ea(12);return -1}c[i>>2]=a;if((a|0)>(Y()|0)?(X()|0)==0:0){ea(12);c[i>>2]=b;return -1}return b|0}function Wh(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 Sh(b,c,d)|0;return b|0}function Xh(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 ja[a&7](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Yh(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;ka[a&1](b|0,c|0,d|0,e|0,f|0,g|0,h|0)}function Zh(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;V(0);return 0}function _h(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;V(1)} + +// EMSCRIPTEN_END_FUNCS +var ja=[Zh,vh,wh,xh,yh,zh,Zh,Zh];var ka=[_h,zg];return{___muldsi3:Th,_sbrk:Vh,_speex_resampler_destroy:rh,_free:Lh,_memset:Qh,_opus_encode_float:Wg,_speex_resampler_init:lh,_memmove:Wh,_bitshift64Ashr:Oh,_opus_encoder_create:wg,_speex_resampler_process_interleaved_float:Fh,_malloc:Kh,_i64Add:Ph,_emscripten_get_global_libc:Gh,_memcpy:Sh,___muldi3:Uh,_bitshift64Lshr:Rh,_opus_encoder_ctl:Xg,runPostSets:Nh,stackAlloc:la,stackSave:ma,stackRestore:na,establishStackSpace:oa,setTempRet0:qa,getTempRet0:ra,setThrew:pa,stackAlloc:la,stackSave:ma,stackRestore:na,establishStackSpace:oa,setThrew:pa,setTempRet0:qa,getTempRet0:ra,dynCall_iiiiiii:Xh,dynCall_viiiiiii:Yh}}) + + +// EMSCRIPTEN_END_ASM +(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var _speex_resampler_destroy=Module["_speex_resampler_destroy"]=asm["_speex_resampler_destroy"];var setThrew=Module["setThrew"]=asm["setThrew"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Ashr=Module["_bitshift64Ashr"]=asm["_bitshift64Ashr"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var _speex_resampler_init=Module["_speex_resampler_init"]=asm["_speex_resampler_init"];var _emscripten_get_global_libc=Module["_emscripten_get_global_libc"]=asm["_emscripten_get_global_libc"];var _opus_encoder_ctl=Module["_opus_encoder_ctl"]=asm["_opus_encoder_ctl"];var stackSave=Module["stackSave"]=asm["stackSave"];var ___muldsi3=Module["___muldsi3"]=asm["___muldsi3"];var _free=Module["_free"]=asm["_free"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var _opus_encode_float=Module["_opus_encode_float"]=asm["_opus_encode_float"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var _memmove=Module["_memmove"]=asm["_memmove"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var _speex_resampler_process_interleaved_float=Module["_speex_resampler_process_interleaved_float"]=asm["_speex_resampler_process_interleaved_float"];var _malloc=Module["_malloc"]=asm["_malloc"];var _opus_encoder_create=Module["_opus_encoder_create"]=asm["_opus_encoder_create"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_viiiiiii=Module["dynCall_viiiiiii"]=asm["dynCall_viiiiiii"];Runtime.stackAlloc=Module["stackAlloc"];Runtime.stackSave=Module["stackSave"];Runtime.stackRestore=Module["stackRestore"];Runtime.establishStackSpace=Module["establishStackSpace"];Runtime.setTempRet0=Module["setTempRet0"];Runtime.getTempRet0=Module["getTempRet0"];Module["asm"]=asm;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;var preloadStartTime=null;var calledMain=false;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};Module["callMain"]=Module.callMain=function callMain(args){args=args||[];ensureInitRuntime();var argc=args.length+1;function pad(){for(var i=0;i<4-1;i++){argv.push(0)}}var argv=[allocate(intArrayFromString(Module["thisProgram"]),"i8",ALLOC_NORMAL)];pad();for(var i=0;i0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(Module["_main"]&&shouldRunNow)Module["callMain"](args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=Module.run=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=Module.exit=exit;var abortDecorators=[];function abort(what){if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;var extra="\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";var output="abort("+what+") at "+stackTrace()+extra;if(abortDecorators){abortDecorators.forEach((function(decorator){output=decorator(output,what)}))}throw output}Module["abort"]=Module.abort=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"]){shouldRunNow=false}run();"use strict";var root=typeof self==="object"&&self.self===self&&self||typeof global==="object"&&global.global===global&&global||this;((function(global){var encoder;global["onmessage"]=(function(e){switch(e["data"]["command"]){case"encode":if(encoder){encoder.encode(e["data"]["buffers"])}break;case"done":if(encoder){encoder.encodeFinalFrame()}break;case"init":encoder=new OggOpusEncoder(e["data"]);break;default:}});var OggOpusEncoder=(function(config){this.numberOfChannels=config["numberOfChannels"]||1;this.originalSampleRate=config["originalSampleRate"];this.originalSampleRateOverride=config["originalSampleRateOverride"];this.encoderSampleRate=config["encoderSampleRate"]||48e3;this.maxBuffersPerPage=config["maxBuffersPerPage"]||40;this.encoderApplication=config["encoderApplication"]||2049;this.encoderFrameSize=config["encoderFrameSize"]||20;this.encoderComplexity=config["encoderComplexity"];this.bufferLength=config["bufferLength"]||4096;this.resampleQuality=config["resampleQuality"]||3;this.bitRate=config["bitRate"];this.pageIndex=0;this.granulePosition=0;this.segmentData=new Uint8Array(65025);this.segmentDataIndex=0;this.segmentTable=new Uint8Array(255);this.segmentTableIndex=0;this.buffersInPage=0;this.serial=Math.floor(Math.random()*Math.pow(2,32));this.initChecksumTable();this.initCodec();this.initResampler();this.generateIdPage();this.generateCommentPage();if(this.numberOfChannels===1){this.interleave=(function(buffers){return buffers[0]})}else{this.interleavedBuffers=new Float32Array(this.bufferLength*this.numberOfChannels)}});OggOpusEncoder._opus_encoder_create=_opus_encoder_create;OggOpusEncoder._opus_encoder_ctl=_opus_encoder_ctl;OggOpusEncoder._speex_resampler_process_interleaved_float=_speex_resampler_process_interleaved_float;OggOpusEncoder._speex_resampler_init=_speex_resampler_init;OggOpusEncoder._opus_encode_float=_opus_encode_float;OggOpusEncoder._free=_free;OggOpusEncoder._malloc=_malloc;OggOpusEncoder.prototype.encode=(function(buffers){var samples=this.interleave(buffers);var sampleIndex=0;while(sampleIndex=this.maxBuffersPerPage){this.generatePage()}});OggOpusEncoder.prototype.encodeFinalFrame=(function(){var finalFrameBuffers=[];for(var i=0;i>>24&255^data[i]]}return checksum>>>0});OggOpusEncoder.prototype.generateCommentPage=(function(){var segmentDataView=new DataView(this.segmentData.buffer);segmentDataView.setUint32(0,1937076303,true);segmentDataView.setUint32(4,1936154964,true);segmentDataView.setUint32(8,10,true);segmentDataView.setUint32(12,1868784978,true);segmentDataView.setUint32(16,1919247474,true);segmentDataView.setUint16(20,21322,true);segmentDataView.setUint32(22,0,true);this.segmentTableIndex=1;this.segmentDataIndex=this.segmentTable[0]=26;this.headerType=0;this.generatePage()});OggOpusEncoder.prototype.generateIdPage=(function(){var segmentDataView=new DataView(this.segmentData.buffer);segmentDataView.setUint32(0,1937076303,true);segmentDataView.setUint32(4,1684104520,true);segmentDataView.setUint8(8,1,true);segmentDataView.setUint8(9,this.numberOfChannels,true);segmentDataView.setUint16(10,3840,true);segmentDataView.setUint32(12,this.originalSampleRateOverride||this.originalSampleRate,true);segmentDataView.setUint16(16,0,true);segmentDataView.setUint8(18,0,true);this.segmentTableIndex=1;this.segmentDataIndex=this.segmentTable[0]=19;this.headerType=2;this.generatePage()});OggOpusEncoder.prototype.generatePage=(function(){var granulePosition=this.lastPositiveGranulePosition===this.granulePosition?-1:this.granulePosition;var pageBuffer=new ArrayBuffer(27+this.segmentTableIndex+this.segmentDataIndex);var pageBufferView=new DataView(pageBuffer);var page=new Uint8Array(pageBuffer);pageBufferView.setUint32(0,1399285583,true);pageBufferView.setUint8(4,0,true);pageBufferView.setUint8(5,this.headerType,true);pageBufferView.setUint32(6,granulePosition,true);if(granulePosition>4294967296||granulePosition<0){pageBufferView.setUint32(10,Math.floor(granulePosition/4294967296),true)}pageBufferView.setUint32(14,this.serial,true);pageBufferView.setUint32(18,this.pageIndex++,true);pageBufferView.setUint8(26,this.segmentTableIndex,true);page.set(this.segmentTable.subarray(0,this.segmentTableIndex),27);page.set(this.segmentData.subarray(0,this.segmentDataIndex),27+this.segmentTableIndex);pageBufferView.setUint32(22,this.getChecksum(page),true);global["postMessage"](page,[page.buffer]);this.segmentTableIndex=0;this.segmentDataIndex=0;this.buffersInPage=0;if(granulePosition>0){this.lastPositiveGranulePosition=granulePosition}});OggOpusEncoder.prototype.initChecksumTable=(function(){this.checksumTable=[];for(var i=0;i<256;i++){var r=i<<24;for(var j=0;j<8;j++){r=(r&2147483648)!=0?r<<1^79764919:r<<1}this.checksumTable[i]=r&4294967295}});OggOpusEncoder.prototype.initCodec=(function(){var errLocation=OggOpusEncoder._malloc(4);this.encoder=OggOpusEncoder._opus_encoder_create(this.encoderSampleRate,this.numberOfChannels,this.encoderApplication,errLocation);OggOpusEncoder._free(errLocation);if(this.bitRate){var bitRateLocation=OggOpusEncoder._malloc(4);HEAP32[bitRateLocation>>2]=this.bitRate;OggOpusEncoder._opus_encoder_ctl(this.encoder,4002,bitRateLocation);OggOpusEncoder._free(bitRateLocation)}if(this.encoderComplexity){var encoderComplexityLocation=OggOpusEncoder._malloc(4);HEAP32[encoderComplexityLocation>>2]=this.encoderComplexity;OggOpusEncoder._opus_encoder_ctl(this.encoder,4010,encoderComplexityLocation);OggOpusEncoder._free(encoderComplexityLocation)}this.encoderSamplesPerChannel=this.encoderSampleRate*this.encoderFrameSize/1e3;this.encoderSamplesPerChannelPointer=OggOpusEncoder._malloc(4);HEAP32[this.encoderSamplesPerChannelPointer>>2]=this.encoderSamplesPerChannel;this.encoderBufferLength=this.encoderSamplesPerChannel*this.numberOfChannels;this.encoderBufferPointer=OggOpusEncoder._malloc(this.encoderBufferLength*4);this.encoderBuffer=HEAPF32.subarray(this.encoderBufferPointer>>2,(this.encoderBufferPointer>>2)+this.encoderBufferLength);this.encoderOutputMaxLength=4e3;this.encoderOutputPointer=OggOpusEncoder._malloc(this.encoderOutputMaxLength);this.encoderOutputBuffer=HEAPU8.subarray(this.encoderOutputPointer,this.encoderOutputPointer+this.encoderOutputMaxLength)});OggOpusEncoder.prototype.initResampler=(function(){var errLocation=OggOpusEncoder._malloc(4);this.resampler=OggOpusEncoder._speex_resampler_init(this.numberOfChannels,this.originalSampleRate,this.encoderSampleRate,this.resampleQuality,errLocation);OggOpusEncoder._free(errLocation);this.resampleBufferIndex=0;this.resampleSamplesPerChannel=this.originalSampleRate*this.encoderFrameSize/1e3;this.resampleSamplesPerChannelPointer=OggOpusEncoder._malloc(4);HEAP32[this.resampleSamplesPerChannelPointer>>2]=this.resampleSamplesPerChannel;this.resampleBufferLength=this.resampleSamplesPerChannel*this.numberOfChannels;this.resampleBufferPointer=OggOpusEncoder._malloc(this.resampleBufferLength*4);this.resampleBuffer=HEAPF32.subarray(this.resampleBufferPointer>>2,(this.resampleBufferPointer>>2)+this.resampleBufferLength)});OggOpusEncoder.prototype.interleave=(function(buffers){for(var i=0;i=0){if(this.segmentTableIndex===255){this.generatePage();this.headerType=1}var segmentLength=Math.min(packetLength,255);this.segmentTable[this.segmentTableIndex++]=segmentLength;this.segmentData.set(this.encoderOutputBuffer.subarray(packetIndex,packetIndex+segmentLength),this.segmentDataIndex);this.segmentDataIndex+=segmentLength;packetIndex+=segmentLength;packetLength-=255}this.granulePosition+=48*this.encoderFrameSize;if(this.segmentTableIndex===255){this.generatePage();this.headerType=0}});global.OggOpusEncoder=OggOpusEncoder;if(typeof module=="object"&&module.exports){module.exports=OggOpusEncoder}}))(root) + + + + diff --git a/app/vendor/recorderjs/recorder.js b/app/vendor/recorderjs/recorder.js new file mode 100755 index 00000000..787ef9ca --- /dev/null +++ b/app/vendor/recorderjs/recorder.js @@ -0,0 +1,242 @@ +"use strict"; + +var root = (typeof self === 'object' && self.self === self && self) || (typeof global === 'object' && global.global === global && global) || this; + +(function( global ) { + + var Recorder = function( config ){ + + var that = this; + + if ( !Recorder.isRecordingSupported() ) { + throw new Error("Recording is not supported in this browser"); + } + + this.state = "inactive"; + this.eventTarget = global.document.createDocumentFragment(); + this.audioContext = new global.AudioContext(); + this.monitorNode = this.audioContext.createGain(); + + this.config = config = config || {}; + this.config.command = "init"; + this.config.bufferLength = config.bufferLength || 4096; + this.config.monitorGain = config.monitorGain || 0; + this.config.numberOfChannels = config.numberOfChannels || 1; + this.config.originalSampleRate = this.audioContext.sampleRate; + this.config.encoderSampleRate = config.encoderSampleRate || 48000; + this.config.encoderPath = config.encoderPath || 'encoderWorker.min.js'; + this.config.streamPages = config.streamPages || false; + this.config.leaveStreamOpen = config.leaveStreamOpen || false; + this.config.maxBuffersPerPage = config.maxBuffersPerPage || 40; + this.config.encoderApplication = config.encoderApplication || 2049; + this.config.encoderFrameSize = config.encoderFrameSize || 20; + this.config.resampleQuality = config.resampleQuality || 3; + this.config.streamOptions = config.streamOptions || { + optional: [], + mandatory: { + googEchoCancellation: false, + googAutoGainControl: false, + googNoiseSuppression: false, + googHighpassFilter: false + } + }; + + this.setMonitorGain( this.config.monitorGain ); + this.scriptProcessorNode = this.audioContext.createScriptProcessor( this.config.bufferLength, this.config.numberOfChannels, this.config.numberOfChannels ); + this.scriptProcessorNode.onaudioprocess = function( e ){ + that.encodeBuffers( e.inputBuffer ); + }; + }; + + Recorder.isRecordingSupported = function(){ + return global.AudioContext && global.navigator && ( global.navigator.getUserMedia || ( global.navigator.mediaDevices && global.navigator.mediaDevices.getUserMedia ) ); + }; + + Recorder.prototype.addEventListener = function( type, listener, useCapture ){ + this.eventTarget.addEventListener( type, listener, useCapture ); + }; + + Recorder.prototype.clearStream = function() { + if ( this.stream ) { + + if ( this.stream.getTracks ) { + this.stream.getTracks().forEach(function ( track ) { + track.stop(); + }); + } + + else { + this.stream.stop(); + } + + delete this.stream; + } + }; + + Recorder.prototype.encodeBuffers = function( inputBuffer ){ + if ( this.state === "recording" ) { + var buffers = []; + for ( var i = 0; i < inputBuffer.numberOfChannels; i++ ) { + buffers[i] = inputBuffer.getChannelData(i); + } + + this.encoder.postMessage({ + command: "encode", + buffers: buffers + }); + } + }; + + Recorder.prototype.initStream = function(){ + var that = this; + + var onStreamInit = function( stream ){ + that.stream = stream; + that.sourceNode = that.audioContext.createMediaStreamSource( stream ); + that.sourceNode.connect( that.scriptProcessorNode ); + that.sourceNode.connect( that.monitorNode ); + that.eventTarget.dispatchEvent( new global.Event( "streamReady" ) ); + return stream; + } + + var onStreamError = function( e ){ + that.eventTarget.dispatchEvent( new global.ErrorEvent( "streamError", { error: e } ) ); + } + + var constraints = { audio : this.config.streamOptions }; + + if ( this.stream ) { + this.eventTarget.dispatchEvent( new global.Event( "streamReady" ) ); + return global.Promise.resolve( this.stream ); + } + + if ( global.navigator.mediaDevices && global.navigator.mediaDevices.getUserMedia ) { + return global.navigator.mediaDevices.getUserMedia( constraints ).then( onStreamInit, onStreamError ); + } + + if ( global.navigator.getUserMedia ) { + return new global.Promise( function( resolve, reject ) { + global.navigator.getUserMedia( constraints, resolve, reject ); + }).then( onStreamInit, onStreamError ); + } + }; + + Recorder.prototype.pause = function(){ + if ( this.state === "recording" ){ + this.state = "paused"; + this.eventTarget.dispatchEvent( new global.Event( 'pause' ) ); + } + }; + + Recorder.prototype.removeEventListener = function( type, listener, useCapture ){ + this.eventTarget.removeEventListener( type, listener, useCapture ); + }; + + Recorder.prototype.resume = function() { + if ( this.state === "paused" ) { + this.state = "recording"; + this.eventTarget.dispatchEvent( new global.Event( 'resume' ) ); + } + }; + + Recorder.prototype.setMonitorGain = function( gain ){ + this.monitorNode.gain.value = gain; + }; + + Recorder.prototype.start = function(){ + if ( this.state === "inactive" && this.stream ) { + var that = this; + this.encoder = new global.Worker( this.config.encoderPath ); + + if (this.config.streamPages){ + this.encoder.addEventListener( "message", function( e ) { + that.streamPage( e.data ); + }); + } + + else { + this.recordedPages = []; + this.totalLength = 0; + this.encoder.addEventListener( "message", function( e ) { + that.storePage( e.data ); + }); + } + + // First buffer can contain old data. Don't encode it. + this.encodeBuffers = function(){ + delete this.encodeBuffers; + }; + + this.state = "recording"; + this.monitorNode.connect( this.audioContext.destination ); + this.scriptProcessorNode.connect( this.audioContext.destination ); + this.eventTarget.dispatchEvent( new global.Event( 'start' ) ); + this.encoder.postMessage( this.config ); + } + }; + + Recorder.prototype.stop = function(){ + if ( this.state !== "inactive" ) { + this.state = "inactive"; + this.monitorNode.disconnect(); + this.scriptProcessorNode.disconnect(); + + if ( !this.config.leaveStreamOpen ) { + this.clearStream(); + } + + this.encoder.postMessage({ command: "done" }); + } + }; + + Recorder.prototype.storePage = function( page ) { + if ( page === null ) { + var outputData = new Uint8Array( this.totalLength ); + var outputIndex = 0; + + for ( var i = 0; i < this.recordedPages.length; i++ ) { + outputData.set( this.recordedPages[i], outputIndex ); + outputIndex += this.recordedPages[i].length; + } + + this.eventTarget.dispatchEvent( new global.CustomEvent( 'dataAvailable', { + detail: outputData + })); + + this.recordedPages = []; + this.eventTarget.dispatchEvent( new global.Event( 'stop' ) ); + } + + else { + this.recordedPages.push( page ); + this.totalLength += page.length; + } + }; + + Recorder.prototype.streamPage = function( page ) { + if ( page === null ) { + this.eventTarget.dispatchEvent( new global.Event( 'stop' ) ); + } + + else { + this.eventTarget.dispatchEvent( new global.CustomEvent( 'dataAvailable', { + detail: page + })); + } + }; + + + // Exports + global.Recorder = Recorder; + + if ( typeof define === 'function' && define.amd ) { + define( [], function() { + return Recorder; + }); + } + + else if ( typeof module == 'object' && module.exports ) { + module.exports = Recorder; + } + +})(root); diff --git a/app/vendor/recorderjs/recorder.min.js b/app/vendor/recorderjs/recorder.min.js new file mode 100755 index 00000000..8f1e5ec3 --- /dev/null +++ b/app/vendor/recorderjs/recorder.min.js @@ -0,0 +1 @@ +"use strict";var root="object"==typeof self&&self.self===self&&self||"object"==typeof global&&global.global===global&&global||this;!function(e){var t=function(n){var i=this;if(!t.isRecordingSupported())throw new Error("Recording is not supported in this browser");this.state="inactive",this.eventTarget=e.document.createDocumentFragment(),this.audioContext=new e.AudioContext,this.monitorNode=this.audioContext.createGain(),this.config=n=n||{},this.config.command="init",this.config.bufferLength=n.bufferLength||4096,this.config.monitorGain=n.monitorGain||0,this.config.numberOfChannels=n.numberOfChannels||1,this.config.originalSampleRate=this.audioContext.sampleRate,this.config.encoderSampleRate=n.encoderSampleRate||48e3,this.config.encoderPath=n.encoderPath||"encoderWorker.min.js",this.config.streamPages=n.streamPages||!1,this.config.leaveStreamOpen=n.leaveStreamOpen||!1,this.config.maxBuffersPerPage=n.maxBuffersPerPage||40,this.config.encoderApplication=n.encoderApplication||2049,this.config.encoderFrameSize=n.encoderFrameSize||20,this.config.resampleQuality=n.resampleQuality||3,this.config.streamOptions=n.streamOptions||{optional:[],mandatory:{googEchoCancellation:!1,googAutoGainControl:!1,googNoiseSuppression:!1,googHighpassFilter:!1}},this.setMonitorGain(this.config.monitorGain),this.scriptProcessorNode=this.audioContext.createScriptProcessor(this.config.bufferLength,this.config.numberOfChannels,this.config.numberOfChannels),this.scriptProcessorNode.onaudioprocess=function(e){i.encodeBuffers(e.inputBuffer)}};t.isRecordingSupported=function(){return e.AudioContext&&e.navigator&&(e.navigator.getUserMedia||e.navigator.mediaDevices&&e.navigator.mediaDevices.getUserMedia)},t.prototype.addEventListener=function(e,t,n){this.eventTarget.addEventListener(e,t,n)},t.prototype.clearStream=function(){this.stream&&(this.stream.getTracks?this.stream.getTracks().forEach(function(e){e.stop()}):this.stream.stop(),delete this.stream)},t.prototype.encodeBuffers=function(e){if("recording"===this.state){for(var t=[],n=0;n