34 lines
464 KiB
JavaScript
34 lines
464 KiB
JavaScript
|
|
var BOX2D = (() => {
|
|
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
|
|
|
|
return (
|
|
function(BOX2D = {}) {
|
|
|
|
var Module=typeof BOX2D!="undefined"?BOX2D:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise((resolve,reject)=>{readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=true;var ENVIRONMENT_IS_WORKER=false;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.error.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;var WebAssembly={Memory:function(opts){this.buffer=new ArrayBuffer(opts["initial"]*65536)},Module:function(binary){},Instance:function(module,info){this.exports=(
|
|
// EMSCRIPTEN_START_ASM
|
|
function instantiate(Wa){function c(d){d.set=function(a,b){this[a]=b};d.get=function(a){return this[a]};return d}var e;var f=new Uint8Array(123);for(var a=25;a>=0;--a){f[48+a]=52+a;f[65+a]=a;f[97+a]=26+a}f[43]=62;f[47]=63;function l(m,n,o){var g,h,a=0,i=n,j=o.length,k=n+(j*3>>2)-(o[j-2]=="=")-(o[j-1]=="=");for(;a<j;a+=4){g=f[o.charCodeAt(a+1)];h=f[o.charCodeAt(a+2)];m[i++]=f[o.charCodeAt(a)]<<2|g>>4;if(i<k)m[i++]=g<<4|h>>2;if(i<k)m[i++]=h<<6|f[o.charCodeAt(a+3)]}}function p(q){l(e,1024,"ZnJlcXVlbmN5SHoAU2V0R3Jhdml0eQBHZXRHcmF2aXR5AGRlbnNpdHkAU2V0RGVuc2l0eQBHZXREZW5zaXR5AGFuZ3VsYXJWZWxvY2l0eQBTZXRBbmd1bGFyVmVsb2NpdHkAR2V0QW5ndWxhclZlbG9jaXR5AGxpbmVhclZlbG9jaXR5AFNldExpbmVhclZlbG9jaXR5AEdldExpbmVhclZlbG9jaXR5AERlc3Ryb3lCb2R5AEdldEJvZHkAQ3JlYXRlQm9keQBiMl9zdGF0aWNCb2R5AGIyX2tpbmVtYXRpY0JvZHkAYjJfZHluYW1pY0JvZHkAU2V0RnJlcXVlbmN5AEdldEZyZXF1ZW5jeQBTZXRBc0JveABncm91cEluZGV4AC0rICAgMFgweAAtMFgrMFggMFgtMHgrMHggMHgAV29ybGRNYW5pZm9sZE5ldwBTZXREZWJ1Z0RyYXcASm9pbnRFZGdlR2V0UHJldgBKb2ludEVkZ2VHZXROZXh0AFJheUNhc3RPdXRwdXQAUmF5Q2FzdElucHV0AEdldEpvaW50TGlzdABHZXRGaXh0dXJlTGlzdABSYXlDYXN0AHVuc2lnbmVkIHNob3J0AFJvdAAwIDw9IGNoaWxkSW5kZXggJiYgY2hpbGRJbmRleCA8IG1fcHJveHlDb3VudABNYW5pZm9sZEdldFBvaW50Q291bnQAQ29udGFjdEltcHVsc2VHZXRDb3VudABlX3R5cGVDb3VudABHZXRDaGlsZENvdW50AERyYXdQb2ludABUZXN0UG9pbnQAR2V0TG9jYWxQb2ludABHZXRMaW5lYXJWZWxvY2l0eUZyb21Mb2NhbFBvaW50AEdldFdvcmxkUG9pbnQAR2V0TGluZWFyVmVsb2NpdHlGcm9tV29ybGRQb2ludABEZXN0cm95Sm9pbnQASm9pbnRFZGdlR2V0Sm9pbnQATW90b3JKb2ludABXaGVlbEpvaW50AFJldm9sdXRlSm9pbnQAQ3JlYXRlSm9pbnQATW91c2VKb2ludABSb3BlSm9pbnQARGlzdGFuY2VKb2ludABXZWxkSm9pbnQAUHJpc21hdGljSm9pbnQAdW5zaWduZWQgaW50AERyYXdTZWdtZW50AGltcGxlbWVudABHZXRMb3dlckxpbWl0AEdldFVwcGVyTGltaXQAZW5hYmxlTGltaXQARW5hYmxlTGltaXQAYW5ndWxhck9mZnNldABTZXRBbmd1bGFyT2Zmc2V0AEdldEFuZ3VsYXJPZmZzZXQAbGluZWFyT2Zmc2V0AFNldExpbmVhck9mZnNldABHZXRMaW5lYXJPZmZzZXQAYnVsbGV0AFNldEJ1bGxldABJc0J1bGxldAB0YXJnZXQAU2V0VGFyZ2V0AEdldFRhcmdldABTZXQAX19kZXN0cnVjdABCZWdpbkNvbnRhY3QARW5kQ29udGFjdABmbG9hdAB1aW50NjRfdABtX3JhZGl1cwBTZXRSYWRpdXMAR2V0UmFkaXVzAEdldEV4dGVudHMAU2V0TGltaXRzAGNhdGVnb3J5Qml0cwBtYXNrQml0cwBzdGlmZm5lc3MAU2V0U3RpZmZuZXNzAEdldFN0aWZmbmVzcwBtYXNzAEdldE1hc3MAQ29tcHV0ZU1hc3MAQ29udGFpbnMAU2V0RmxhZ3MAR2V0RmxhZ3MAQ2xlYXJGbGFncwBBcHBlbmRGbGFncwBtYXhQb2x5Z29uVmVydGljZXMATWFuaWZvbGRHZXRNYW5pZm9sZFBvaW50UHRyAGVuYWJsZU1vdG9yAEVuYWJsZU1vdG9yAEdldExvY2FsVmVjdG9yAEdldFdvcmxkVmVjdG9yAFZlYzJWZWN0b3IASW50MzJWZWN0b3IAY29ycmVjdGlvbkZhY3RvcgBTZXRDb3JyZWN0aW9uRmFjdG9yAEdldENvcnJlY3Rpb25GYWN0b3IAU2V0U2Vuc29yAGlzU2Vuc29yAElzU2Vuc29yAENvbG9yAGNlbnRlcgBHZXRDZW50ZXIAQXBwbHlMaW5lYXJJbXB1bHNlVG9DZW50ZXIAQXBwbHlGb3JjZVRvQ2VudGVyAEdldExvY2FsQ2VudGVyAEdldFdvcmxkQ2VudGVyAFJlZmlsdGVyAEZpbHRlcgBHZXRQZXJpbWV0ZXIARHJhd1dyYXBwZXIAQ29udGFjdExpc3RlbmVyV3JhcHBlcgBRdWVyeUNhbGxiYWNrV3JhcHBlcgBSYXlDYXN0Q2FsbGJhY2tXcmFwcGVyAFNldENvbnRhY3RMaXN0ZW5lcgBKb2ludEVkZ2VHZXRPdGhlcgB1bnNpZ25lZCBjaGFyAHEARHVtcABTdGVwAGFsbG93U2xlZXAAbV9wAENvbWJpbmVUd28AZGFtcGluZ1JhdGlvAFNldERhbXBpbmdSYXRpbwBHZXREYW1waW5nUmF0aW8AU2V0TGluZWFyRnJlcXVlbmN5QW5kRGFtcGluZ1JhdGlvAHJlc3RpdHV0aW9uAENvbnRhY3RSZXNldFJlc3RpdHV0aW9uAENvbnRhY3RTZXRSZXN0aXR1dGlvbgBDb250YWN0R2V0UmVzdGl0dXRpb24AcG9zaXRpb24AR2V0UG9zaXRpb24Abm90aWZ5T25EZXN0cnVjdGlvbgBmcmljdGlvbgBDb250YWN0UmVzZXRGcmljdGlvbgBDb250YWN0U2V0RnJpY3Rpb24AQ29udGFjdEdldEZyaWN0aW9uAGZyYWN0aW9uAG1heEZyYWN0aW9uAGZpeGVkUm90YXRpb24AU2V0Rml4ZWRSb3RhdGlvbgBJc0ZpeGVkUm90YXRpb24AR2V0Sm9pbnRUcmFuc2xhdGlvbgBsb3dlclRyYW5zbGF0aW9uAHVwcGVyVHJhbnNsYXRpb24AZV9wb2x5Z29uAERyYXdQb2x5Z29uAERyYXdTb2xpZFBvbHlnb24AZV9jaGFpbgBuYW4ARHJhd1RyYW5zZm9ybQBTZXRUcmFuc2Zvcm0AR2V0VHJhbnNmb3JtAGJvb2wAYm94MmRfZHVtcC5pbmwAZW1zY3JpcHRlbjo6dmFsAG5vcm1hbABRdWVyeUNhbGxiYWNrAFJheUNhc3RDYWxsYmFjawBwdXNoX2JhY2sAbGVuZ3RoAG1heExlbmd0aABTZXRNYXhMZW5ndGgAR2V0TWF4TGVuZ3RoAFNldExlbmd0aABHZXRMZW5ndGgAQzovVXNlcnMvbGVhbHovRGVza3RvcC90cnVuay9ib3gyZC9pbmNsdWRlL2JveDJkL2IyX2ZpeHR1cmUuaAB1bnNpZ25lZCBsb25nAHN0ZDo6d3N0cmluZwBzdGQ6OnN0cmluZwBzdGQ6OnUxNnN0cmluZwBzdGQ6OnUzMnN0cmluZwBkYW1waW5nAFNldERhbXBpbmcAR2V0RGFtcGluZwBhbmd1bGFyRGFtcGluZwBTZXRBbmd1bGFyRGFtcGluZwBHZXRBbmd1bGFyRGFtcGluZwBsaW5lYXJEYW1waW5nAFNldExpbmVhckRhbXBpbmcAR2V0TGluZWFyRGFtcGluZwBTZXRBbGxvd1NsZWVwaW5nAEdldEFsbG93U2xlZXBpbmcAQ29udGFjdElzVG91Y2hpbmcAaW5mAEJvZHlEZWYATW90b3JKb2ludERlZgBXaGVlbEpvaW50RGVmAFJldm9sdXRlSm9pbnREZWYATW91c2VKb2ludERlZgBSb3BlSm9pbnREZWYARGlzdGFuY2VKb2ludERlZgBXZWxkSm9pbnREZWYAUHJpc21hdGljSm9pbnREZWYARml4dHVyZURlZgBpc0luZGV4T2YAYjJJc1ZhbGlkKGRlbnNpdHkpICYmIGRlbnNpdHkgPj0gMC4wZgByZXNpemUAUG9zdFNvbHZlAFByZVNvbHZlAEFwcGx5VG9ycXVlAG1heFRvcnF1ZQBTZXRNYXhUb3JxdWUAR2V0TWF4VG9ycXVlAG1heE1vdG9yVG9ycXVlAFNldE1heE1vdG9yVG9ycXVlAEdldE1heE1vdG9yVG9ycXVlAEdldE1vdG9yVG9ycXVlAEdldFJlYWN0aW9uVG9ycXVlAFdvcmxkTWFuaWZvbGRHZXRTZXBhcmF0aW9uVmFsdWUAV29ybGRNYW5pZm9sZERlbGV0ZQBWYWxpZGF0ZQBNYW5pZm9sZFBvaW50R2V0VGFuZ2VudEltcHVsc2UAQ29udGFjdEltcHVsc2VHZXRUYW5nZW50SW1wdWxzZQBBcHBseUFuZ3VsYXJJbXB1bHNlAEFwcGx5TGluZWFySW1wdWxzZQBNYW5pZm9sZFBvaW50R2V0Tm9ybWFsSW1wdWxzZQBDb250YWN0SW1wdWxzZUdldE5vcm1hbEltcHVsc2UARGVzdHJveUZpeHR1cmUAUmVwb3J0Rml4dHVyZQB1bnJlZ2lzdGVyQ29udGFjdEZpeHR1cmUAQ3JlYXRlRml4dHVyZQBtX3R5cGUAQm9keVR5cGUAU2V0VHlwZQBNYW5pZm9sZEdldFR5cGUAU2hhcGVUeXBlAFNldFNoYXBlAEdldFNoYXBlAFBvbHlnb25TaGFwZQBDcmVhdGVGaXh0dXJlV2l0aFNoYXBlAENpcmNsZVNoYXBlAEVkZ2VTaGFwZQBDbG9uZQBDb21iaW5lAGFuZ2xlAEdldEpvaW50QW5nbGUAR2V0QW5nbGUAbG93ZXJBbmdsZQB1cHBlckFuZ2xlAHJlZmVyZW5jZUFuZ2xlAEdldFJlZmVyZW5jZUFuZ2xlAFNldEFzQm94V2l0aENlbnRlckFuZEFuZ2xlAGVfY2lyY2xlAERyYXdDaXJjbGUARHJhd1NvbGlkQ2lyY2xlAGRvdWJsZQBncmF2aXR5U2NhbGUAU2V0R3Jhdml0eVNjYWxlAEdldEdyYXZpdHlTY2FsZQBhd2FrZQBTZXRBd2FrZQBJc0F3YWtlAGVfZWRnZQBBcHBseUZvcmNlAG1heEZvcmNlAFNldE1heEZvcmNlAEdldE1heEZvcmNlAG1heE1vdG9yRm9yY2UAU2V0TWF4TW90b3JGb3JjZQBHZXRNYXhNb3RvckZvcmNlAEdldE1vdG9yRm9yY2UAR2V0UmVhY3Rpb25Gb3JjZQBsb3dlckJvdW5kAHVwcGVyQm91bmQAZXh0ZW5kAEdldFdvcmxkAENvbnRhY3RHZXRNYW5pZm9sZABDb250YWN0R2V0V29ybGRNYW5pZm9sZAB2b2lkAElzVmFsaWQAU2V0U2xlZXBpbmdBbGxvd2VkAElzU2xlZXBpbmdBbGxvd2VkAGNvbGxpZGVDb25uZWN0ZWQAR2V0Q29sbGlkZUNvbm5lY3RlZABJc0xpbWl0RW5hYmxlZABDb250YWN0U2V0RW5hYmxlZABJc0VuYWJsZWQASXNNb3RvckVuYWJsZWQAR2V0Sm9pbnRTcGVlZABDb250YWN0U2V0VGFuZ2VudFNwZWVkAENvbnRhY3RHZXRUYW5nZW50U3BlZWQAbW90b3JTcGVlZABTZXRNb3RvclNwZWVkAEdldE1vdG9yU3BlZWQAYwBiAHJ3YQBSZXNldE1hc3NEYXRhAFNldE1hc3NEYXRhAEdldE1hc3NEYXRhAFNldEZpbHRlckRhdGEAR2V0RmlsdGVyRGF0YQBHZXRJbmVydGlhAE1hbmlmb2xkUG9pbnRHZXRMb2NhbFBvaW50WQBXb3JsZE1hbmlmb2xkR2V0UG9pbnRWYWx1ZVkATWFuaWZvbGRHZXRMb2NhbFBvaW50VmFsdWVZAFdvcmxkTWFuaWZvbGRHZXROb3JtYWxWYWx1ZVkATWFuaWZvbGRHZXRMb2NhbE5vcm1hbFZhbHVlWQBNYW5pZm9sZFBvaW50R2V0TG9jYWxQb2ludFgAV29ybGRNYW5pZm9sZEdldFBvaW50VmFsdWVYAE1hbmlmb2xkR2V0TG9jYWxQb2ludFZhbHVlWABXb3JsZE1hbmlmb2xkR2V0Tm9ybWFsVmFsdWVYAE1hbmlmb2xkR2V0TG9jYWxOb3JtYWxWYWx1ZVgAVkVSU0lPTl9NSU5PUgBWRVJTSU9OX01BSk9SAFZFUlNJT05fUkVWSVNJT04ATkFOAEkASU5GAFNldEJvZHlCAEdldEJvZHlCAEdldEFuY2hvckIAbG9jYWxBbmNob3JCAEdldExvY2FsQW5jaG9yQgBDb250YWN0R2V0Rml4dHVyZUIAUXVlcnlBQUJCAEdldEFBQkIAQ29tcHV0ZUFBQkIAU2V0Qm9keUEAR2V0Qm9keUEAbG9jYWxBeGlzQQBHZXRMb2NhbEF4aXNBAEdldEFuY2hvckEAbG9jYWxBbmNob3JBAEdldExvY2FsQW5jaG9yQQBDb250YWN0R2V0Rml4dHVyZUEAZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2hvcnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIHNob3J0PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGludD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8ZmxvYXQ+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ4X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDhfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dWludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGludDE2X3Q+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzxpbnQ2NF90PgBlbXNjcmlwdGVuOjptZW1vcnlfdmlldzx1aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8aW50MzJfdD4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8Y2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8dW5zaWduZWQgY2hhcj4Ac3RkOjpiYXNpY19zdHJpbmc8dW5zaWduZWQgY2hhcj4AZW1zY3JpcHRlbjo6bWVtb3J5X3ZpZXc8c2lnbmVkIGNoYXI+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PHVuc2lnbmVkIGxvbmc+AGVtc2NyaXB0ZW46Om1lbW9yeV92aWV3PGRvdWJsZT4AVHJhbnNmb3JtVmVjdG9yMgBwMgBWZWMyAEdldEZsb2F0MzIAcDEALgAobnVsbCkAUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEAICB9CgAgIHsKAGpvaW50cyA9IG51bGxwdHI7CgBib2RpZXMgPSBudWxscHRyOwoAICAgIGZkLmRlbnNpdHkgPSAlLjlnOwoAICBiZC5hbmd1bGFyVmVsb2NpdHkgPSAlLjlnOwoAICBqZC5hbmd1bGFyT2Zmc2V0ID0gJS45ZzsKACAgICBzaGFwZS5tX3JhZGl1cyA9ICUuOWc7CgAgIGpkLnN0aWZmbmVzcyA9ICUuOWc7CgAgIGpkLmNvcnJlY3Rpb25GYWN0b3IgPSAlLjlnOwoAICBqZC5yYXRpbyA9ICUuOWc7CgAgICAgZmQucmVzdGl0dXRpb24gPSAlLjlnOwoAICAgIGZkLmZyaWN0aW9uID0gJS45ZzsKACAgamQubG93ZXJUcmFuc2xhdGlvbiA9ICUuOWc7CgAgIGpkLnVwcGVyVHJhbnNsYXRpb24gPSAlLjlnOwoAICBqZC5sZW5ndGggPSAlLjlnOwoAICBqZC5tYXhMZW5ndGggPSAlLjlnOwoAICBqZC5kYW1waW5nID0gJS45ZzsKACAgYmQuYW5ndWxhckRhbXBpbmcgPSAlLjlnOwoAICBiZC5saW5lYXJEYW1waW5nID0gJS45ZzsKACAgamQubWF4VG9ycXVlID0gJS45ZzsKACAgamQubWF4TW90b3JUb3JxdWUgPSAlLjlnOwoAICBiZC5hbmdsZSA9ICUuOWc7CgAgIGpkLmxvd2VyQW5nbGUgPSAlLjlnOwoAICBqZC51cHBlckFuZ2xlID0gJS45ZzsKACAgamQucmVmZXJlbmNlQW5nbGUgPSAlLjlnOwoAICBiZC5ncmF2aXR5U2NhbGUgPSAlLjlnOwoAICBqZC5tYXhGb3JjZSA9ICUuOWc7CgAgIGpkLm1heE1vdG9yRm9yY2UgPSAlLjlnOwoAICBqZC5tb3RvclNwZWVkID0gJS45ZzsKACAgamQubGVuZ3RoQiA9ICUuOWc7CgAgIGpkLmxlbmd0aEEgPSAlLjlnOwoAICAgIGZkLnNoYXBlID0gJnNoYXBlOwoAICAgIGIyUG9seWdvblNoYXBlIHNoYXBlOwoAICAgIGIyQ2hhaW5TaGFwZSBzaGFwZTsKACAgICBiMkNpcmNsZVNoYXBlIHNoYXBlOwoAICAgIGIyRWRnZVNoYXBlIHNoYXBlOwoAICBiMlB1bGxleUpvaW50RGVmIGpkOwoAICBiMk1vdG9ySm9pbnREZWYgamQ7CgAgIGIyR2VhckpvaW50RGVmIGpkOwoAICBiMkZyaWN0aW9uSm9pbnREZWYgamQ7CgAgIGIyV2hlZWxKb2ludERlZiBqZDsKACAgYjJSZXZvbHV0ZUpvaW50RGVmIGpkOwoAICBiMlJvcGVKb2ludERlZiBqZDsKACAgYjJEaXN0YW5jZUpvaW50RGVmIGpkOwoAICBiMldlbGRKb2ludERlZiBqZDsKACAgYjJQcmlzbWF0aWNKb2ludERlZiBqZDsKACAgICBiMkZpeHR1cmVEZWYgZmQ7CgAgIGIyQm9keURlZiBiZDsKACAgICBiMlZlYzIgdnNbJWRdOwoAICBqZC5qb2ludDIgPSBqb2ludHNbJWRdOwoAICBqZC5qb2ludDEgPSBqb2ludHNbJWRdOwoAICBqZC5ib2R5QiA9IGJvZGllc1slZF07CgAgIGpkLmJvZHlBID0gYm9kaWVzWyVkXTsKAGIyRnJlZShqb2ludHMpOwoAYjJGcmVlKGJvZGllcyk7CgAgIGJkLmxpbmVhclZlbG9jaXR5LlNldCglLjlnLCAlLjlnKTsKACAgICBzaGFwZS5tX3ByZXZWZXJ0ZXguU2V0KCUuOWcsICUuOWcpOwoAICAgIHNoYXBlLm1fbmV4dFZlcnRleC5TZXQoJS45ZywgJS45Zyk7CgAgIGpkLmxpbmVhck9mZnNldC5TZXQoJS45ZywgJS45Zyk7CgAgICAgc2hhcGUubV9wLlNldCglLjlnLCAlLjlnKTsKACAgYmQucG9zaXRpb24uU2V0KCUuOWcsICUuOWcpOwoAICAgIHZzWyVkXS5TZXQoJS45ZywgJS45Zyk7CgAgIGpkLmxvY2FsQW5jaG9yQi5TZXQoJS45ZywgJS45Zyk7CgAgIGpkLmdyb3VuZEFuY2hvckIuU2V0KCUuOWcsICUuOWcpOwoAICBqZC5sb2NhbEF4aXNBLlNldCglLjlnLCAlLjlnKTsKACAgamQubG9jYWxBbmNob3JBLlNldCglLjlnLCAlLjlnKTsKACAgamQuZ3JvdW5kQW5jaG9yQS5TZXQoJS45ZywgJS45Zyk7CgAgICAgc2hhcGUubV92ZXJ0ZXgzLlNldCglLjlnLCAlLjlnKTsKACAgICBzaGFwZS5tX3ZlcnRleDIuU2V0KCUuOWcsICUuOWcpOwoAICAgIHNoYXBlLm1fdmVydGV4MS5TZXQoJS45ZywgJS45Zyk7CgAgICAgc2hhcGUubV92ZXJ0ZXgwLlNldCglLjlnLCAlLjlnKTsKAGIyVmVjMiBnKCUuOWcsICUuOWcpOwoAbV93b3JsZC0+U2V0R3Jhdml0eShnKTsKACAgam9pbnRzWyVkXSA9IG1fd29ybGQtPkNyZWF0ZUpvaW50KCZqZCk7CgAgICAgYm9kaWVzWyVkXS0+Q3JlYXRlRml4dHVyZSgmZmQpOwoAICBib2RpZXNbJWRdID0gbV93b3JsZC0+Q3JlYXRlQm9keSgmYmQpOwoAICBqZC5lbmFibGVMaW1pdCA9IGJvb2woJWQpOwoAICBiZC5idWxsZXQgPSBib29sKCVkKTsKACAgamQuZW5hYmxlTW90b3IgPSBib29sKCVkKTsKACAgICBmZC5pc1NlbnNvciA9IGJvb2woJWQpOwoAICBiZC5hbGxvd1NsZWVwID0gYm9vbCglZCk7CgAgIGJkLmZpeGVkUm90YXRpb24gPSBib29sKCVkKTsKACAgYmQuYXdha2UgPSBib29sKCVkKTsKACAgamQuY29sbGlkZUNvbm5lY3RlZCA9IGJvb2woJWQpOwoAICBiZC5lbmFibGVkID0gYm9vbCglZCk7CgAgICAgc2hhcGUubV9vbmVTaWRlZCA9IGJvb2woJWQpOwoAICBiZC50eXBlID0gYjJCb2R5VHlwZSglZCk7CgAgICAgZmQuZmlsdGVyLmNhdGVnb3J5Qml0cyA9IHVpbnQxNiglZCk7CgAgICAgZmQuZmlsdGVyLm1hc2tCaXRzID0gdWludDE2KCVkKTsKACAgICBmZC5maWx0ZXIuZ3JvdXBJbmRleCA9IGludDE2KCVkKTsKACAgICBzaGFwZS5TZXQodnMsICVkKTsKACAgICBzaGFwZS5DcmVhdGVDaGFpbih2cywgJWQpOwoAYjJCb2R5KiogYm9kaWVzID0gKGIyQm9keSoqKWIyQWxsb2MoJWQgKiBzaXplb2YoYjJCb2R5KikpOwoAYjJKb2ludCoqIGpvaW50cyA9IChiMkpvaW50KiopYjJBbGxvYyglZCAqIHNpemVvZihiMkpvaW50KikpOwoALy8gRHVtcCBpcyBub3Qgc3VwcG9ydGVkIGZvciB0aGlzIGpvaW50IHR5cGUuCgBNb3VzZSBqb2ludCBkdW1waW5nIGlzIG5vdCBzdXBwb3J0ZWQuCgBmaWlpAFA3YjJKb2ludAB2aWlmZgA2YjJWZWMyADExYjJUcmFuc2Zvcm0AaWlpaQB2aWlpAGlpaQB2aWlmAGZpaQB2aWkAaWkATjdiMlNoYXBlNFR5cGVFADEwYjJCb2R5VHlwZQBOU3QzX18yNnZlY3RvcklpTlNfOWFsbG9jYXRvcklpRUVFRQBQTlN0M19fMjZ2ZWN0b3JJaU5TXzlhbGxvY2F0b3JJaUVFRUUAUEtOU3QzX18yNnZlY3RvcklpTlNfOWFsbG9jYXRvcklpRUVFRQB2AHZpAHZpaWlpAE4xMGVtc2NyaXB0ZW4zdmFsRQBpaWlpaQBpAE5TdDNfXzI2dmVjdG9ySTZiMlZlYzJOU185YWxsb2NhdG9ySVMxX0VFRUUAUE5TdDNfXzI2dmVjdG9ySTZiMlZlYzJOU185YWxsb2NhdG9ySVMxX0VFRUUAUEtOU3QzX18yNnZlY3Rvckk2YjJWZWMyTlNfOWFsbG9jYXRvcklTMV9FRUVFADViMlJvdAA3YjJDb2xvcgAxNGIyUmF5Q2FzdElucHV0ADE1YjJSYXlDYXN0T3V0cHV0ADEwYjJNYXNzRGF0YQA4YjJGaWx0ZXIAMTViMlF1ZXJ5Q2FsbGJhY2sAUDE1YjJRdWVyeUNhbGxiYWNrAFBLMTViMlF1ZXJ5Q2FsbGJhY2sAMjJiMlF1ZXJ5Q2FsbGJhY2tXcmFwcGVyAE4xMGVtc2NyaXB0ZW43d3JhcHBlckkxNWIyUXVlcnlDYWxsYmFja0VFAE4xMGVtc2NyaXB0ZW44aW50ZXJuYWwxMVdyYXBwZXJCYXNlRQBQMjJiMlF1ZXJ5Q2FsbGJhY2tXcmFwcGVyAFBLMjJiMlF1ZXJ5Q2FsbGJhY2tXcmFwcGVyAE5TdDNfXzIxMmJhc2ljX3N0cmluZ0ljTlNfMTFjaGFyX3RyYWl0c0ljRUVOU185YWxsb2NhdG9ySWNFRUVFADE3YjJSYXlDYXN0Q2FsbGJhY2sAUDE3YjJSYXlDYXN0Q2FsbGJhY2sAUEsxN2IyUmF5Q2FzdENhbGxiYWNrAGZpaWlpaWYAMjRiMlJheUNhc3RDYWxsYmFja1dyYXBwZXIATjEwZW1zY3JpcHRlbjd3cmFwcGVySTE3YjJSYXlDYXN0Q2FsbGJhY2tFRQBQMjRiMlJheUNhc3RDYWxsYmFja1dyYXBwZXIAUEsyNGIyUmF5Q2FzdENhbGxiYWNrV3JhcHBlcgAxN2IyQ29udGFjdExpc3RlbmVyAFAxN2IyQ29udGFjdExpc3RlbmVyAFBLMTdiMkNvbnRhY3RMaXN0ZW5lcgAyNGIyQ29udGFjdExpc3RlbmVyV3JhcHBlcgBOMTBlbXNjcmlwdGVuN3dyYXBwZXJJMTdiMkNvbnRhY3RMaXN0ZW5lckVFAFAyNGIyQ29udGFjdExpc3RlbmVyV3JhcHBlcgBQSzI0YjJDb250YWN0TGlzdGVuZXJXcmFwcGVyADZiMkRyYXcAUDZiMkRyYXcAUEs2YjJEcmF3AHZpaWlpaQB2aWlpZmkAdmlpaWZpaQAxM2IyRHJhd1dyYXBwZXIATjEwZW1zY3JpcHRlbjd3cmFwcGVySTZiMkRyYXdFRQBQMTNiMkRyYXdXcmFwcGVyAFBLMTNiMkRyYXdXcmFwcGVyADZiMkFBQkIAUDZiMkFBQkIAUEs2YjJBQUJCAFAxNWIyUmF5Q2FzdE91dHB1dAA3YjJXb3JsZABQN2IyV29ybGQAUEs3YjJXb3JsZABQNmIyQm9keQA2YjJCb2R5AFBLOWIyQm9keURlZgA5YjJCb2R5RGVmAFBLMTBiMkpvaW50RGVmADEwYjJKb2ludERlZgB2aWlmaWkAN2IyU2hhcGUAUDdiMlNoYXBlAFBLN2IyU2hhcGUAaWlpaWlpaQBQMTBiMk1hc3NEYXRhAHZpaWlmAFAxM2IyQ2lyY2xlU2hhcGUAUEsxM2IyQ2lyY2xlU2hhcGUAUDE2YjJCbG9ja0FsbG9jYXRvcgAxNmIyQmxvY2tBbGxvY2F0b3IAUDExYjJFZGdlU2hhcGUAUEsxMWIyRWRnZVNoYXBlAFAxNGIyUG9seWdvblNoYXBlAFBLMTRiMlBvbHlnb25TaGFwZQB2aWlmZmlmADEyYjJGaXh0dXJlRGVmAFAxMmIyRml4dHVyZURlZgBQSzEyYjJGaXh0dXJlRGVmADliMkZpeHR1cmUAUDliMkZpeHR1cmUAUEs5YjJGaXh0dXJlAGlpaWlpaQBQOWIyQm9keURlZgBQSzZiMkJvZHkAaWlpaWYAdmlpZmkAUDEwYjJKb2ludERlZgAxMWIySm9pbnRUeXBlAFBLN2IySm9pbnQAaWlpZgBmaWlmADE4YjJEaXN0YW5jZUpvaW50RGVmAFAxOGIyRGlzdGFuY2VKb2ludERlZgBQSzE4YjJEaXN0YW5jZUpvaW50RGVmAFAxNWIyRGlzdGFuY2VKb2ludABQSzE1YjJEaXN0YW5jZUpvaW50ADE1YjJNb3RvckpvaW50RGVmAFAxNWIyTW90b3JKb2ludERlZgBQSzE1YjJNb3RvckpvaW50RGVmAFAxMmIyTW90b3JKb2ludABQSzEyYjJNb3RvckpvaW50ADE1YjJNb3VzZUpvaW50RGVmAFAxNWIyTW91c2VKb2ludERlZgBQSzE1YjJNb3VzZUpvaW50RGVmAFAxMmIyTW91c2VKb2ludABQSzEyYjJNb3VzZUpvaW50ADE5YjJQcmlzbWF0aWNKb2ludERlZgBQMTliMlByaXNtYXRpY0pvaW50RGVmAFBLMTliMlByaXNtYXRpY0pvaW50RGVmAFAxNmIyUHJpc21hdGljSm9pbnQAUEsxNmIyUHJpc21hdGljSm9pbnQAMThiMlJldm9sdXRlSm9pbnREZWYAUDE4YjJSZXZvbHV0ZUpvaW50RGVmAFBLMThiMlJldm9sdXRlSm9pbnREZWYAUDE1YjJSZXZvbHV0ZUpvaW50AFBLMTViMlJldm9sdXRlSm9pbnQAMTRiMlJvcGVKb2ludERlZgBQMTRiMlJvcGVKb2ludERlZgBQSzE0YjJSb3BlSm9pbnREZWYAUDExYjJSb3BlSm9pbnQAUEsxMWIyUm9wZUpvaW50ADE0YjJXZWxkSm9pbnREZWYAUDE0YjJXZWxkSm9pbnREZWYAUEsxNGIyV2VsZEpvaW50RGVmAFAxMWIyV2VsZEpvaW50AFBLMTFiMldlbGRKb2ludAAxNWIyV2hlZWxKb2ludERlZgBQMTViMldoZWVsSm9pbnREZWYAUEsxNWIyV2hlZWxKb2ludERlZgBQMTJiMldoZWVsSm9pbnQAUEsxMmIyV2hlZWxKb2ludAAAAAAA9C4AAPcCAAD4AgAA+QIAAPoCAAD7AgAA/AIAAP0CAAD+AgAAMTNiMkNpcmNsZVNoYXBlABxJAADkLgAAbFIAAAAAAAA4LwAA9wIAAP8CAAAAAwAAAQMAAAIDAAADAwAABAMAAAUDAAAxMWIyRWRnZVNoYXBlAAAAHEkAACgvAABsUgAAAAAAAIAvAAD3AgAABgMAAAcDAAAIAwAACQMAAAoDAAALAwAADAMAADE0YjJQb2x5Z29uU2hhcGUAAAAAHEkAAGwvAABsUgAAAAAAABAAAAAgAAAAQAAAAGAAAACAAAAAoAAAAMAAAADgAAAAAAEAAEABAACAAQAAwAEAAAACAACAAgAAAAAAALhOAAANAwAADgMAANwCAADcAgAA3AIAANwCAADcAgAA3AIAANwC");l(e,12288,"JDAAAA8DAAAQAwAAEQMAADE1YjJDaXJjbGVDb250YWN0AAAAHEkAABAwAADIMAAAAAAAAGAwAAASAwAAEAMAABMDAAAyM2IyQ2hhaW5BbmRDaXJjbGVDb250YWN0AAAAHEkAAEQwAADIMAAAAAAAAJwwAAAUAwAAEAMAABUDAAAyNGIyQ2hhaW5BbmRQb2x5Z29uQ29udGFjdAAAHEkAAIAwAADIMAAAAAAAAMgwAADcAgAAEAMAACQDAAA5YjJDb250YWN0AAD0SAAAvDAAAAAAAACkTQAAJQMAACYDAADpAgAA6gIAAOsCAADsAgAAAAAAADwxAAAnAwAAKAMAACkDAAAqAwAAKwMAACwDAAAtAwAALgMAAC8DAAAwAwAAMQMAADIDAAAxNWIyRGlzdGFuY2VKb2ludAAAABxJAAAoMQAAsDIAAAAAAAB4MQAAMwMAABADAAA0AwAAMjJiMkVkZ2VBbmRDaXJjbGVDb250YWN0AAAAABxJAABcMQAAyDAAAAAAAAC0MQAANQMAABADAAA2AwAAMjNiMkVkZ2VBbmRQb2x5Z29uQ29udGFjdAAAABxJAACYMQAAyDAAAAAAAAAIMgAANwMAADgDAAA5AwAAOgMAADsDAAAsAwAALQMAAC4DAAA8AwAAPQMAAD4DAAA/AwAAMTFiMkdlYXJKb2ludAAAABxJAAD4MQAAsDIAAAAAAABgMgAAQAMAAEEDAABCAwAAQwMAAEQDAAAsAwAALQMAAC4DAABFAwAARgMAAEcDAABIAwAAMTViMkZyaWN0aW9uSm9pbnQAAAAcSQAATDIAALAyAAAAAAAAsDIAANwCAADcAgAA3AIAANwCAABJAwAALAMAAC0DAAAuAwAASgMAANwCAADcAgAA3AIAADdiMkpvaW50AAAAAPRIAACkMgAA1AAAAPAAAACwAAAAxAAAAKgAAAAUAQAA+AAAANAAAAC0AAAApAAAAMAAAAAAAAAALDMAAEsDAABMAwAATQMAAE4DAABPAwAALAMAAC0DAAAuAwAAUAMAAFEDAABSAwAAUwMAADEyYjJNb3RvckpvaW50AAAcSQAAHDMAALAyAAAAAAAAgDMAAFQDAABVAwAAVgMAAFcDAABYAwAAWQMAAC0DAAAuAwAAWgMAAFsDAABcAwAAXQMAADEyYjJNb3VzZUpvaW50AAAcSQAAcDMAALAyAAAAAAAAvDMAAF4DAAAQAwAAXwMAADI1YjJQb2x5Z29uQW5kQ2lyY2xlQ29udGFjdAAcSQAAoDMAAMgwAAAAAAAA8DMAAGADAAAQAwAAYQMAADE2YjJQb2x5Z29uQ29udGFjdAAAHEkAANwzAADIMAAAAAAAAEg0AABiAwAAYwMAAGQDAABlAwAAZgMAACwDAABnAwAALgMAAGgDAABpAwAAagMAAGsDAAAxNmIyUHJpc21hdGljSm9pbnQAABxJAAA0NAAAsDIAAAAAAACcNAAAbAMAAG0DAABuAwAAbwMAAHADAABxAwAALQMAAC4DAAByAwAAcwMAAHQDAAB1AwAAMTNiMlB1bGxleUpvaW50ABxJAACMNAAAsDIAAAAAAAD0NAAAdgMAAHcDAAB4AwAAeQMAAHoDAAAsAwAAewMAAC4DAAB8AwAAfQMAAH4DAAB/AwAAMTViMlJldm9sdXRlSm9pbnQAAAAcSQAA4DQAALAyAAAAAAAASDUAAIADAACBAwAAggMAAIMDAACEAwAALAMAAC0DAAAuAwAAhQMAAIYDAACHAwAAiAMAADExYjJSb3BlSm9pbnQAAAAcSQAAODUAALAyAAAAAAAAnDUAAIkDAACKAwAAiwMAAIwDAACNAwAALAMAAC0DAAAuAwAAjgMAAI8DAACQAwAAkQMAADExYjJXZWxkSm9pbnQAAAAcSQAAjDUAALAyAAAAAAAA8DUAAJIDAACTAwAAlAMAAJUDAACWAwAALAMAAJcDAAAuAwAAmAMAAJkDAACaAwAAmwMAADEyYjJXaGVlbEpvaW50AAAcSQAA4DUAALAyAAAAAAAAJDYAAJwDAACdAwAAngMAADE1YjJDb250YWN0RmlsdGVyAAAA9EgAABA2AABOU3QzX18yMTJiYXNpY19zdHJpbmdJaE5TXzExY2hhcl90cmFpdHNJaEVFTlNfOWFsbG9jYXRvckloRUVFRQAA9EgAACw2AABOU3QzX18yMTJiYXNpY19zdHJpbmdJd05TXzExY2hhcl90cmFpdHNJd0VFTlNfOWFsbG9jYXRvckl3RUVFRQAA9EgAAHQ2AABOU3QzX18yMTJiYXNpY19zdHJpbmdJRHNOU18xMWNoYXJfdHJhaXRzSURzRUVOU185YWxsb2NhdG9ySURzRUVFRQAAAPRIAAC8NgAATlN0M19fMjEyYmFzaWNfc3RyaW5nSURpTlNfMTFjaGFyX3RyYWl0c0lEaUVFTlNfOWFsbG9jYXRvcklEaUVFRUUAAAD0SAAACDcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWNFRQAA9EgAAFQ3AABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lhRUUAAPRIAAB8NwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaEVFAAD0SAAApDcAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXNFRQAA9EgAAMw3AABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l0RUUAAPRIAAD0NwAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJaUVFAAD0SAAAHDgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWpFRQAA9EgAAEQ4AABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0lsRUUAAPRIAABsOAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJbUVFAAD0SAAAlDgAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SXhFRQAA9EgAALw4AABOMTBlbXNjcmlwdGVuMTFtZW1vcnlfdmlld0l5RUUAAPRIAADkOAAATjEwZW1zY3JpcHRlbjExbWVtb3J5X3ZpZXdJZkVFAAD0SAAADDkAAE4xMGVtc2NyaXB0ZW4xMW1lbW9yeV92aWV3SWRFRQAA9EgAADQ5AAAAAAAAAwAAAAQAAAAEAAAABgAAAIP5ogBETm4A/CkVANFXJwDdNPUAYtvAADyZlQBBkEMAY1H+ALveqwC3YcUAOm4kANJNQgBJBuAACeouAByS0QDrHf4AKbEcAOg+pwD1NYIARLsuAJzphAC0JnAAQX5fANaROQBTgzkAnPQ5AItfhAAo+b0A+B87AN7/lwAPmAUAES/vAApaiwBtH20Az342AAnLJwBGT7cAnmY/AC3qXwC6J3UA5evHAD178QD3OQcAklKKAPtr6gAfsV8ACF2NADADVgB7/EYA8KtrACC8zwA29JoA46kdAF5hkQAIG+YAhZllAKAUXwCNQGgAgNj/ACdzTQAGBjEAylYVAMmocwB74mAAa4zAABnERwDNZ8MACejcAFmDKgCLdsQAphyWAESv3QAZV9EApT4FAAUH/wAzfj8AwjLoAJhP3gC7fTIAJj3DAB5r7wCf+F4ANR86AH/yygDxhx0AfJAhAGokfADVbvoAMC13ABU7QwC1FMYAwxmdAK3EwgAsTUEADABdAIZ9RgDjcS0Am8aaADNiAAC00nwAtKeXADdV1QDXPvYAoxAYAE12/ABknSoAcNerAGN8+AB6sFcAFxXnAMBJVgA71tkAp4Q4ACQjywDWincAWlQjAAAfuQDxChsAGc7fAJ8x/wBmHmoAmVdhAKz7RwB+f9gAImW3ADLoiQDmv2AA78TNAGw2CQBdP9QAFt7XAFg73gDem5IA0iIoACiG6ADiWE0AxsoyAAjjFgDgfcsAF8BQAPMdpwAY4FsALhM0AIMSYgCDSAEA9Y5bAK2wfwAe6fIASEpDABBn0wCq3dgArl9CAGphzgAKKKQA05m0AAam8gBcd38Ao8KDAGE8iACKc3gAr4xaAG/XvQAtpmMA9L/LAI2B7wAmwWcAVcpFAMrZNgAoqNIAwmGNABLJdwAEJhQAEkabAMRZxADIxUQATbKRAAAX8wDUQ60AKUnlAP3VEAAAvvwAHpTMAHDO7gATPvUA7PGAALPnwwDH+CgAkwWUAMFxPgAuCbMAC0XzAIgSnACrIHsALrWfAEeSwgB7Mi8ADFVtAHKnkABr5x8AMcuWAHkWSgBBeeIA9N+JAOiUlwDi5oQAmTGXAIjtawBfXzYAu/0OAEiatABnpGwAcXJCAI1dMgCfFbgAvOUJAI0xJQD3dDkAMAUcAA0MAQBLCGgALO5YAEeqkAB05wIAvdYkAPd9pgBuSHIAnxbvAI6UpgC0kfYA0VNRAM8K8gAgmDMA9Ut+ALJjaADdPl8AQF0DAIWJfwBVUikAN2TAAG3YEAAySDIAW0x1AE5x1ABFVG4ACwnBACr1aQAUZtUAJwedAF0EUAC0O9sA6nbFAIf5FwBJa30AHSe6AJZpKQDGzKwArRRUAJDiagCI2YkALHJQAASkvgB3B5QA8zBwAAD8JwDqcagAZsJJAGTgPQCX3YMAoz+XAEOU/QANhowAMUHeAJI5nQDdcIwAF7fnAAjfOwAVNysAXICgAFqAkwAQEZIAD+jYAGyArwDb/0sAOJAPAFkYdgBipRUAYcu7AMeJuQAQQL0A0vIEAEl1JwDrtvYA2yK7AAoUqgCJJi8AZIN2AAk7MwAOlBoAUTqqAB2jwgCv7a4AXCYSAG3CTQAtepwAwFaXAAM/gwAJ8PYAK0CMAG0xmQA5tAcADCAVANjDWwD1ksQAxq1LAE7KpQCnN80A5qk2AKuSlADdQmgAGWPeAHaM7wBoi1IA/Ns3AK6hqwDfFTEAAK6hAAz72gBkTWYA7QW3ACllMABXVr8AR/86AGr5uQB1vvMAKJPfAKuAMABmjPYABMsVAPoiBgDZ5B0APbOkAFcbjwA2zQkATkLpABO+pAAzI7UA8KoaAE9lqADSwaUACz8PAFt4zQAj+XYAe4sEAIkXcgDGplMAb27iAO/rAACbSlgAxNq3AKpmugB2z88A0QIdALHxLQCMmcEAw613AIZI2gD3XaAAxoD0AKzwLwDd7JoAP1y8ANDebQCQxx8AKtu2AKMlOgAAr5oArVOTALZXBAApLbQAS4B+ANoHpwB2qg4Ae1mhABYSKgDcty0A+uX9AInb/gCJvv0A5HZsAAap/AA+gHAAhW4VAP2H/wAoPgcAYWczACoYhgBNveoAs+evAI9tbgCVZzkAMb9bAITXSAAw3xYAxy1DACVhNQDJcM4AMMu4AL9s/QCkAKIABWzkAFrdoAAhb0cAYhLSALlchABwYUkAa1bgAJlSAQBQVTcAHtW3ADPxxAATbl8AXTDkAIUuqQAdssMAoTI2AAi3pADqsdQAFvchAI9p5AAn/3cADAOAAI1ALQBPzaAAIKWZALOi0wAvXQoAtPlCABHaywB9vtAAm9vBAKsXvQDKooEACGpcAC5VFwAnAFUAfxTwAOEHhgAUC2QAlkGNAIe+3gDa/SoAayW2AHuJNAAF8/4Aub+eAGhqTwBKKqgAT8RaAC34vADXWpgA9MeVAA1NjQAgOqYApFdfABQ/sQCAOJUAzCABAHHdhgDJ3rYAv2D1AE1lEQABB2sAjLCsALLA0ABRVUgAHvsOAJVywwCjBjsAwEA1AAbcewDgRcwATin6ANbKyADo80EAfGTeAJtk2ADZvjEApJfDAHdY1ABp48UA8NoTALo6PABGGEYAVXVfANK99QBuksYArC5dAA5E7QAcPkIAYcSHACn96QDn1vMAInzKAG+RNQAI4MUA/9eNAG5q4gCw/cYAkwjBAHxddABrrbIAzW6dAD5yewDGEWoA98+pAClz3wC1yboAtwBRAOKyDQB0uiQA5X1gAHTYigANFSwAgRgMAH5mlAABKRYAn3p2AP39vgBWRe8A2X42AOzZEwCLurkAxJf8ADGoJwDxbsMAlMU2ANioVgC0qLUAz8wOABKJLQBvVzQALFaJAJnO4wDWILkAa16qAD4qnAARX8wA/QtKAOH0+wCOO20A4oYsAOnUhAD8tKkA7+7RAC41yQAvOWEAOCFEABvZyACB/AoA+0pqAC8c2ABTtIQATpmMAFQizAAqVdwAwMbWAAsZlgAacLgAaZVkACZaYAA/Uu4AfxEPAPS1EQD8y/UANLwtADS87gDoXcwA3V5gAGeOmwCSM+8AyRe4AGFYmwDhV7wAUYPGANg+EADdcUgALRzdAK8YoQAhLEYAWfPXANl6mACeVMAAT4b6AFYG/ADlea4AiSI2ADitIgBnk9wAVeiqAIImOADK55sAUQ2kAJkzsQCp1w4AaQVIAGWy8AB/iKcAiEyXAPnRNgAhkrMAe4JKAJjPIQBAn9wA3EdVAOF0OgBn60IA/p3fAF7UXwB7Z6QAuqx6AFX2ogAriCMAQbpVAFluCAAhKoYAOUeDAInj5gDlntQASftAAP9W6QAcD8oAxVmKAJT6KwDTwcUAD8XPANtargBHxYYAhUNiACGGOwAseZQAEGGHACpMewCALBoAQ78SAIgmkAB4PIkAqMTkAOXbewDEOsIAJvTqAPdnigANkr8AZaMrAD2TsQC9fAsApFHcACfdYwBp4d0AmpQZAKgplQBozigACe20AESfIABOmMoAcIJjAH58IwAPuTIAp/WOABRW5wAh8QgAtZ0qAG9+TQClGVEAtfmrAILf1gCW3WEAFjYCAMQ6nwCDoqEAcu1tADmNegCCuKkAazJcAEYnWwAANO0A0gB3APz0VQABWU0A4HGA");l(e,17475,"QPsh+T8AAAAALUR0PgAAAICYRvg8AAAAYFHMeDsAAACAgxvwOQAAAEAgJXo4AAAAgCKC4zYAAAAAHfNpNRkACgAZGRkAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAGQARChkZGQMKBwABAAkLGAAACQYLAAALAAYZAAAAGRkZ");l(e,17617,"DgAAAAAAAAAAGQAKDRkZGQANAAACAAkOAAAACQAOAAAO");l(e,17675,"DA==");l(e,17687,"EwAAAAATAAAAAAkMAAAAAAAMAAAM");l(e,17733,"EA==");l(e,17745,"DwAAAAQPAAAAAAkQAAAAAAAQAAAQ");l(e,17791,"Eg==");l(e,17803,"EQAAAAARAAAAAAkSAAAAAAASAAASAAAaAAAAGhoa");l(e,17858,"GgAAABoaGgAAAAAAAAk=");l(e,17907,"FA==");l(e,17919,"FwAAAAAXAAAAAAkUAAAAAAAUAAAU");l(e,17965,"Fg==");l(e,17977,"FQAAAAAVAAAAAAkWAAAAAAAWAAAWAAAwMTIzNDU2Nzg5QUJDREVGTjEwX19jeHhhYml2MTE2X19zaGltX3R5cGVfaW5mb0UAAAAAHEkAAGBGAAD4SQAATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAAAAHEkAAJBGAACERgAATjEwX19jeHhhYml2MTE3X19wYmFzZV90eXBlX2luZm9FAAAAHEkAAMBGAACERgAATjEwX19jeHhhYml2MTE5X19wb2ludGVyX3R5cGVfaW5mb0UAHEkAAPBGAADkRgAATjEwX19jeHhhYml2MTIwX19mdW5jdGlvbl90eXBlX2luZm9FAAAAABxJAAAgRwAAhEYAAE4xMF9fY3h4YWJpdjEyOV9fcG9pbnRlcl90b19tZW1iZXJfdHlwZV9pbmZvRQAAABxJAABURwAA5EYAAAAAAADURwAAqAMAAKkDAACqAwAAqwMAAKwDAABOMTBfX2N4eGFiaXYxMjNfX2Z1bmRhbWVudGFsX3R5cGVfaW5mb0UAHEkAAKxHAACERgAAdgAAAJhHAADgRwAARG4AAJhHAADsRwAAYgAAAJhHAAD4RwAAYwAAAJhHAAAESAAAaAAAAJhHAAAQSAAAYQAAAJhHAAAcSAAAcwAAAJhHAAAoSAAAdAAAAJhHAAA0SAAAaQAAAJhHAABASAAAagAAAJhHAABMSAAAbAAAAJhHAABYSAAAbQAAAJhHAABkSAAAeAAAAJhHAABwSAAAeQAAAJhHAAB8SAAAZgAAAJhHAACISAAAZAAAAJhHAACUSAAAAAAAAOBIAACoAwAArQMAAKoDAACrAwAArgMAAE4xMF9fY3h4YWJpdjExNl9fZW51bV90eXBlX2luZm9FAAAAABxJAAC8SAAAhEYAAAAAAAC0RgAAqAMAAK8DAACqAwAAqwMAALADAACxAwAAsgMAALMDAAAAAAAAZEkAAKgDAAC0AwAAqgMAAKsDAACwAwAAtQMAALYDAAC3AwAATjEwX19jeHhhYml2MTIwX19zaV9jbGFzc190eXBlX2luZm9FAAAAABxJAAA8SQAAtEYAAAAAAADASQAAqAMAALgDAACqAwAAqwMAALADAAC5AwAAugMAALsDAABOMTBfX2N4eGFiaXYxMjFfX3ZtaV9jbGFzc190eXBlX2luZm9FAAAAHEkAAJhJAAC0RgAAAAAAABRHAACoAwAAvAMAAKoDAACrAwAAvQMAAFN0OXR5cGVfaW5mbwAAAAD0SAAA6Ek=");l(e,18944,"jEgAAFBIAABESAAAAAAAAORHAAAgSgAAjEgAAIxIAADUSQAAyCQAAAAAAACwMgAAPEoAAERKAAA8SgAA9EgAANgkAAD0SAAA4CQAAORHAABQSAAA/EcAAPxHAABQSAAA5EcAAFBIAACMSAAAjEgAAFBIAADkRwAAUEgAAFBIAABQSAAA5EcAAFBIAABQSAAAUEgAAFBIAABESAAAUEgAAERIAABQSAAAqEgAAAwlAACoSAAAHCUAAPRIAAApJQAA1EkAAE0lAAAAAAAAuEoAANRJAAByJQAAAQAAALhKAADASgAA5EcAAMBKAABESAAA5EcAAMBKAABoSAAAREgAAGhIAADQSgAAFEsAALhKAABoSAAA9EgAAKMlAAAAAAAA/EcAALhKAABoSAAAREgAAPRIAAC+JQAA1EkAAOolAAAAAAAAMEsAANRJAAAXJgAAAQAAADBLAAA4SwAA5EcAADhLAAA8Sg==");l(e,19312,"5EcAADhLAABoSAAAPEoAAGhIAABISwAAFEsAADBLAABoSA==");l(e,19360,"/EcAADBLAABoSAAAPEoAAPRIAABFJgAA9EgAAEwmAAD0SAAAVSYAAPRIAABmJgAA9EgAAHgmAAD0SAAAhSYAAPRIAACPJgAA1EkAAKEmAAAAAAAA4EsAANRJAAC0JgAAAQAAAOBLAAD8RwAA6EsAAFBIAAD0SAAACycAAHhJAADhJgAAAAAAAAIAAADgSwAAAgAAABRMAAACBAAAHEkAAMgmAAAcTAAA1EkAADAnAAAAAAAAPEwAANRJAABKJwAAAQAAADxMAADkRwAAPEwAAEhMAAAUSwAAAAAAADxMAADYAgAA2QIAANoCAAAAAAAAHEwAANgCAADbAgAA3AIAAORHAAD8RwAAUEgAABRLAAC4TAAAFEsAAPRIAABlJwAA9EgAAKQnAADUSQAAuCcAAAAAAADATAAA1EkAAM0nAAABAAAAwEw=");l(e,19696,"jEgAAMhMAABQSAAAPEoAADxKAACMSAAAeEkAAAYoAAAAAAAAAgAAAMBMAAACAAAAFEwAAAIEAAAcSQAA6ycAAAhNAADUSQAAMigAAAAAAAAoTQAA1EkAAE4oAAABAAAAKE0AAORHAAAoTQAANE0AABRLAAAAAAAAKE0AAN0CAADeAgAA3wIAAAAAAAAITQAA3QIAAOACAADcAgAAAAAAAIxIAABQSAAAPEoAADxKAACMSAAA9EgAAGsoAADUSQAAfygAAAAAAACkTQAA1EkAAJQoAAABAAAApE0AAORHAACsTQAAUEg=");l(e,19936,"5EcAAKxNAABQSAAAUEgAAHhJAADFKAAAAAAAAAIAAACkTQAAAgAAABRMAAACBAAAHEkAAKooAADwTQAA5EcAAChOAABQSAAA1EkAAPEoAAAAAAAAEE4AAPxHAAAoTgAAUEgAANRJAAANKQAAAQAAABBOAADkRwAAEE4AAChOAAAUSwAAAAAAABBOAADhAgAA4gIAAOMCAADkAgAA5QIAAOYCAAAAAAAA8E0AAOcCAADoAgAA6QIAAOoCAADrAgAA7AIAAORHAABQSAAA5EcAAFBIAABQSAAA9EgAACopAADUSQAAMikAAAAAAAC4TgAA1EkAADspAAABAAAAuE4AAORHAADATgAAUEgAAFBIAADQTg==");l(e,20224,"5EcAAMBOAABQSAAAREgAALhL");l(e,20256,"5EcAAMBOAAA8SgAAjEgAALhL");l(e,20288,"5EcAAMBOAAA8SgAAjEgAADxKAAC4Sw==");l(e,20320,"5EcAAMBOAAA8SgAAPEoAALhLAADkRwAAwE4AAERKAAB4SQAAaykAAAAAAAACAAAAuE4AAAIAAAAUTAAAAggAABxJAABbKQAAgE8AANRJAACLKQAAAAAAAKBPAADUSQAAnCkAAAEAAACgTwAA5EcAAKBPAACsTwAAFEsAAAAAAACgTwAA7QIAAO4CAADvAgAA8AIAAPECAADyAgAA8wIAAPQCAAD1AgAAAAAAAIBPAADtAgAA9gIAANwCAADcAgAA3AIAANwCAADcAgAA3AIAANwC");l(e,20544,"5EcAAFBIAABESAAAuEsAAORHAAA8SgAAjEgAALhLAADkRwAAPEoAAIxIAAA8SgAAuEs=");l(e,20608,"5EcAADxKAAA8SgAAuEsAAORHAABESgAA9EgAAK4pAADUSQAAtikAAAAAAACYUAAA1EkAAL8pAAABAAAAmFAAAKBQAAD8RwAAsFAAADxKAACwUAAAjEgAALBQAADkRwAAoFAAAKBQ");l(e,20720,"5EcAAKBQAACgUAAAoFAAAPxHAACwUAAAmFAAAAAAAAD8RwAAsFAAACBRAADASwAA1EkAAMkpAAAAAAAAyEsAAPRIAADcKQAA1EkAAOUpAAAAAAAAMFEAANRJAADvKQAAAQAAADBRAAA4UQAAPEoAAORHAAA4UQAArE0AAORHAAA4UQAAwE4AAORHAAA4UQAAlFEAADhRAACsUQAA9EgAAAMqAADUSQAA+ikAAAAAAACMUQAA9EgAABgqAADUSQAACyoAAAEAAACkUQAA5EcAADhRAACUUQAAIEoAADhRAADcUQAA9EgAADIqAADUSQAAIyoAAAEAAADUUQAA5EcAADhRAAAgSg==");l(e,20992,"5EcAADhRAACMSAAAREgAAERI");l(e,21024,"5EcAAEhRAADoSwAAmFAAAORHAABIUQAAyEwAADxKAAA8SgAA5EcAADhRAAD8RwAA/EcAAEhRAADkRwAAOFEAADxKAAA8SgAASFEAAPRIAABGKgAA1EkAAE8qAAAAAAAAbFIAANRJAABZKgAAAQAAAGxSAACoSgAAhFIAAERIAACEUg==");l(e,21168,"/EcAAIRSAABESgAAPEoAAPxHAACEUgAAIFEAAMBLAABESgAAREg=");l(e,21216,"5EcAAIRSAACgUAAAREoAAERI");l(e,21248,"5EcAAIRSAAAQUwAAjEgAANRJAABsKgAAAAAAANBLAADkRwAAdFIAAIxIAACMSAAAdFIAANRJAACAKgAAAAAAAPQuAADUSQAAkSoAAAEAAAD0LgAANFMAAHRSAABEUwAAbFMAAPRIAAC3KgAA1EkAAKMqAAAAAAAAZFMAAERIAABEUw==");l(e,21392,"/EcAAERTAABESgAAPEoAAPxHAABEUwAAIFEAAMBLAABESgAAREg=");l(e,21440,"5EcAAERTAACgUAAAREoAAERI");l(e,21472,"5EcAAERTAAAQUwAAjEgAANRJAADKKgAAAAAAADgvAADUSQAA2SoAAAEAAAA4LwAAdFIAAABUAABsUwAAREgAAABU");l(e,21552,"/EcAAABUAABESgAAPEoAAPxHAAAAVAAAIFEAAMBLAABESgAAREg=");l(e,21600,"5EcAAABUAACgUAAAREoAAERI");l(e,21632,"5EcAAABUAAAQUwAAjEgAANRJAADpKgAAAAAAAIAvAADUSQAA+yoAAAEAAACALwAAkFQAAHRSAACgVAAAbFMAAERIAACgVA==");l(e,21712,"5EcAAJBUAAAwSwAAREgAAPxHAACgVAAAREoAADxKAAD8RwAAoFQAACBRAADASwAAREoAAERI");l(e,21776,"5EcAAKBUAACgUAAAREoAAERI");l(e,21808,"5EcAAKBUAAAQUwAAjEgAAPxHAACgVA==");l(e,21840,"5EcAAJBUAACMSAAAjEgAAORHAACQVAAAjEgAAIxIAAA8SgAAjEgAAPRIAAAWKwAA1EkAACUrAAAAAAAAeFUAANRJAAA1KwAAAQAAAHhVAACAVQAA5EcAAIBVAACEUgAAhFIAAIBVAAD0SAAARisAANRJAABRKwAAAAAAALhVAADUSQAAXSsAAAEAAAC4VQAAqEoAANBVAAB0UgAAwFUAAORHAADAVQAA/EcAAPxHAADQVQAA5EcAAMBVAADYSwAA2EsAANBVAADkRwAAwFUAAJRRAADAVQAAwFUAAMBVAAD8RwAA0FUAADxKAAAAAAAA/EcAANBVAAAgUQAAwEsAAERIAADkRwAA0FUAABBTAADkRwAAwFUAAIxIAACMSAAA0FUAAJhQAADQVQAAREgAAORHAADAVQAAREgAANRJAABxKwAAAAAAAKRRAACMVgAA1EkAAH0rAAABAAAAjFEAAMBVAACUUQAAkFUAAAAAAADAVQAAlFEAAIRSAACMSAAA5EcAAJRRAADAVQAAAAAAAORHAACUUQAAPEoAAIxIAABESgAAoFYAADxKAACgVgAAjEgAAKBWAADkRwAAlFEAADxKAADkRwAAlFEAAIxIAADkRwAAlFEAADxKAAA8SgAA/Ec=");l(e,22336,"5EcAAJRRAAA8SgAA/EcAAORHAACUUQAAjEgAAPxHAADkRwAAoFYAABBTAADkRwAAlFEAANBLAADkRwAAlFEAADxKAACgVgAAPEoAAORHAACUUQAAsEoAALBKAACgVgAA5EcAAJRRAAD8RwAA/EcAAKBWAADAVQAAlFEAAFBIAACUUQAAOFEAAJRRAADUSQAAkysAAAAAAADUUQAAzFcAAKhIAAChKwAA5EcAAMxXAACUUQAAlFEAAMxXAADUSQAArysAAAEAAACwMgAA4FcAAPxXAACUUQAAIEoAADxKAAD8VwAAPEoAAPxXAACMSAAAjEgAAPxXAACMSAAA/EcAAPxXAADkRwAAIEoAABxJAADEKwAA1FEAANRJAADZKwAAAAAAAExYAADUSQAA7ysAAAEAAABMWAAAWFgAANRJAAAGLAAAAAAAADwxAADUSQAAGSwAAAEAAAA8MQAAPEoAAIxYAADkRwAAfFgAAIxIAACMSAAAjFgAAORHAAB8WAAAHEkAAC0sAADUUQAA1EkAAD8sAAAAAAAAwFgAANRJAABSLAAAAQAAAMBYAADMWAAA1EkAAGYsAAAAAAAALDMAANRJAAB2LAAAAQAAACwzAADkRwAA8FgAADxKAAA8SgAAAFkAAORHAADwWAAAjEgAAIxIAAAAWQAA5EcAAPBYAAAcSQAAhywAANRRAADUSQAAmSwAAAAAAABAWQAA1EkAAKwsAAABAAAAQFkAAExZAADUSQAAwCwAAAAAAACAMwAA1EkAANAsAAABAAAAgDMAAORHAABwWQAAPEoAADxKAACAWQAA5EcAAHBZAACMSAAAjEgAAIBZAADkRwAAcFkAABxJAADhLAAA1FEAANRJAAD3LAAAAAAAAMBZAADUSQAADi0AAAEAAADAWQAAzFkAANRJAAAmLQAAAAAAAEg0AADUSQAAOi0AAAEAAABINAAAPEoAAABaAACMSAAAAFoAAPxHAAAAWgAA5EcAAPBZAAD8Rw==");l(e,23104,"5EcAAPBZAACMSAAAjEgAAORHAADwWQAAjEgAAIxIAAAAWgAAjEgAAORHAADwWQAAHEkAAE8tAADUUQAA1EkAAGQtAAAAAAAAcFoAANRJAAB6LQAAAQAAAHBaAAB8WgAA1EkAAJEtAAAAAAAA9DQAANRJAACkLQAAAQAAAPQ0AAA8SgAAsFoAAIxIAACwWgAA/EcAALBaAADkRwAAoFoAAPxH");l(e,23280,"5EcAAKBaAACMSAAAjEgAAORHAACgWgAAjEgAAIxIAACwWgAAjEgAAORHAACgWgAAHEkAALgtAADUUQAA1EkAAMktAAAAAAAAIFsAANRJAADbLQAAAQAAACBbAAAsWwAA1EkAAO4tAAAAAAAASDUAANRJAAD9LQAAAQAAAEg1AAA8SgAAYFsAADxKAABgWwAAjEgAAIxIAABgWwAAjEgAAORHAABQWwAAjEgAAIxIAABgWwAA5EcAAFBbAAAcSQAADS4AANRRAADUSQAAHi4AAAAAAACsWwAA1EkAADAuAAABAAAArFsAALhbAADUSQAAQy4AAAAAAACcNQAA1EkAAFIuAAABAAAAnDUAADxKAADsWwAAjEgAAOxbAADkRwAA3FsAAIxIAADkRwAA3FsAABxJAABiLgAA1FEAANRJAAB0LgAAAAAAACBcAADUSQAAhy4AAAEAAAAgXAAALFwAANRJAACbLgAAAAAAAPA1AADUSQAAqy4AAAEAAADwNQAAPEoAAGBcAACMSAAAYFwAAPxHAABgXAAA5EcAAFBcAAD8RwAA5EcAAFBcAACMSAAAjEgAAGBcAACMSAAA5EcAAFBcAAACAAAABAAAAAAAAAAENgAA2DAAAAEAAAAAAAAABQ==");l(e,23772,"pgM=");l(e,23796,"oQMAAKcDAACoYQAAAAQ=");l(e,23820,"AQ==");l(e,23836,"/////wo=");l(e,23904,"0FwAACBoAQ==")}var r=new ArrayBuffer(16);var s=new Int32Array(r);var t=new Float32Array(r);var u=new Float64Array(r);function v(w){return s[w]}function x(w,y){s[w]=y}function z(){return u[0]}function A(y){u[0]=y}function B(){throw new Error("abort")}function C(y){t[2]=y}function D(){return t[2]}function Va(q){var E=q.a;var F=E.a;var G=F.buffer;F.grow=Ta;var H=new Int8Array(G);var I=new Int16Array(G);var J=new Int32Array(G);var K=new Uint8Array(G);var L=new Uint16Array(G);var M=new Uint32Array(G);var N=new Float32Array(G);var O=new Float64Array(G);var P=Math.imul;var Q=Math.fround;var R=Math.abs;var S=Math.clz32;var T=Math.min;var U=Math.max;var V=Math.floor;var W=Math.ceil;var X=Math.trunc;var Y=Math.sqrt;var Z=E.b;var _=E.c;var $=E.d;var aa=E.e;var ba=E.f;var ca=E.g;var da=E.h;var ea=E.i;var fa=E.j;var ga=E.k;var ha=E.l;var ia=E.m;var ja=E.n;var ka=E.o;var la=E.p;var ma=E.q;var na=E.r;var oa=E.s;var pa=E.t;var qa=E.u;var ra=E.v;var sa=E.w;var ta=E.x;var ua=E.y;var va=E.z;var wa=E.A;var xa=E.B;var ya=E.C;var za=E.D;var Aa=E.E;var Ba=E.F;var Ca=E.G;var Da=E.H;var Ea=E.I;var Fa=E.J;var Ga=E.K;var Ha=E.L;var Ia=E.M;var Ja=E.N;var Ka=E.O;var La=92192;var Ma=0;
|
|
// EMSCRIPTEN_START_FUNCS
|
|
function re(){var a=0,b=0;oa(5613,18500,+J[5933]);oa(5599,18500,+J[5934]);oa(5627,18500,+J[5935]);oa(2328,18500,8);$(6563,3,18944,9411,1,2,0);$(2878,4,18960,9426,3,4,0);$(6538,3,18992,9454,5,6,0);$(5088,3,19020,9459,7,8,0);$(3754,2,19032,9464,9,10,0);$(5145,3,19040,9468,11,12,0);$(5168,2,19052,9473,13,14,0);$(3063,3,19040,9468,11,15,0);$(3082,2,19052,9473,13,16,0);$(3042,2,19060,9477,17,18,0);$(2948,3,19040,9468,11,19,0);$(2970,2,19052,9473,13,20,0);$(2924,2,19060,9477,17,21,0);$(5844,2,19068,9464,22,23,0);$(5712,2,19068,9464,22,24,0);$(4962,3,19076,9459,25,26,0);$(4943,2,19068,9464,22,27,0);$(4437,2,19068,9464,22,28,0);$(1536,2,19068,9464,22,29,0);$(2347,3,19088,9454,30,31,0);$(5513,2,19052,9473,13,32,0);$(5371,2,19052,9473,13,33,0);$(5570,2,19052,9473,13,34,0);$(5428,2,19052,9473,13,35,0);$(5457,2,19052,9473,13,36,0);$(5315,2,19052,9473,13,37,0);$(4284,2,19052,9473,13,38,0);$(4182,2,19052,9473,13,39,0);$(1345,1,19100,9481,40,41,0);$(5485,3,18944,9411,1,42,0);$(5343,3,18944,9411,1,43,0);$(4121,3,18944,9411,1,44,0);$(5541,2,19052,9473,13,45,0);$(5399,2,19052,9473,13,46,0);$(4153,2,19060,9477,17,47,0);$(4314,3,18944,9411,1,48,0);$(4213,3,18944,9411,1,49,0);$(1558,2,19104,9464,50,51,0);$(2763,2,19068,9464,22,52,0);$(1732,2,19068,9464,22,53,0);$(1375,2,19068,9464,22,54,0);$(1392,2,19068,9464,22,55,0);xa(19112,4453,4,0);la(19112,4664,0);la(19112,4775,1);la(19112,3223,2);la(19112,3262,3);la(19112,1581,4);xa(19120,4420,4,0);la(19120,1224,0);la(19120,1238,1);la(19120,1255,2);aa(19128,19136,19152,0,9481,700,9624,0,9624,0,2440,9626,699);fa(19128,1,19168,9481,702,701);a=Xa(8);J[a+4>>2]=0;J[a>>2]=703;Z(19128,3387,3,19172,9459,704,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=705;Z(19128,3963,4,19184,9629,706,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=707;Z(19128,3965,2,19200,9464,708,a|0,0,0);a=Xa(4);J[a>>2]=709;Z(19128,2087,3,19208,9454,710,a|0,0,0);a=Xa(4);J[a>>2]=711;Z(19128,2034,4,19232,9654,712,a|0,0,0);ka(19004,6558,9660,57,9626,56);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;ca(19004,1343,18572,9473,59,a|0,18572,9468,58,b|0);a=Xa(4);J[a>>2]=4;b=Xa(4);J[b>>2]=4;ca(19004,1294,18572,9473,59,a|0,18572,9468,58,b|0);ja(19004);aa(19248,19256,19272,0,9481,714,9624,0,9624,0,2429,9626,713);fa(19248,1,19288,9481,716,715);a=Xa(8);J[a+4>>2]=0;J[a>>2]=717;Z(19248,3387,3,19292,9459,718,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=719;Z(19248,3963,4,19312,9629,720,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=721;Z(19248,3965,2,19328,9464,722,a|0,0,0);a=Xa(4);J[a>>2]=723;Z(19248,2087,3,19336,9454,724,a|0,0,0);a=Xa(4);J[a>>2]=725;Z(19248,2034,4,19360,9654,726,a|0,0,0);ka(19376,1487,9660,61,9626,60);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;ca(19376,2345,18572,9473,63,a|0,18572,9468,62,b|0);a=Xa(4);J[a>>2]=4;b=Xa(4);J[b>>2]=4;ca(19376,5230,18572,9473,63,a|0,18572,9468,62,b|0);ja(19376);ka(19012,3304,9660,65,9626,64);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;ca(19012,2820,19004,9464,67,a|0,19004,9459,66,b|0);a=Xa(4);J[a>>2]=8;b=Xa(4);J[b>>2]=8;ca(19012,2795,19376,9464,69,a|0,19376,9459,68,b|0);ja(19012);ka(19384,2537,9660,71,9626,70);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;ca(19384,2793,18572,9473,73,a|0,18572,9468,72,b|0);a=Xa(4);J[a>>2]=4;b=Xa(4);J[b>>2]=4;ca(19384,3770,18572,9473,73,a|0,18572,9468,72,b|0);a=Xa(4);J[a>>2]=8;b=Xa(4);J[b>>2]=8;ca(19384,5232,18572,9473,73,a|0,18572,9468,72,b|0);a=Xa(4);J[a>>2]=12;b=Xa(4);J[b>>2]=12;ca(19384,5313,18572,9473,73,a|0,18572,9468,72,b|0);ja(19384);ka(19392,1423,9660,75,9626,74);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;ca(19392,6574,19004,9464,77,a|0,19004,9459,76,b|0);a=Xa(4);J[a>>2]=8;b=Xa(4);J[b>>2]=8;ca(19392,6555,19004,9464,77,a|0,19004,9459,76,b|0);a=Xa(4);J[a>>2]=16;b=Xa(4);J[b>>2]=16;ca(19392,3110,18572,9473,79,a|0,18572,9468,78,b|0);ja(19392);ka(19400,1409,9660,81,9626,80);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;ca(19400,3350,19004,9464,83,a|0,19004,9459,82,b|0);a=Xa(4);J[a>>2]=8;b=Xa(4);J[b>>2]=8;ca(19400,3101,18572,9473,85,a|0,18572,9468,84,b|0);ja(19400);ka(19408,5267,9660,87,9626,86);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;ca(19408,2253,18572,9473,89,a|0,18572,9468,88,b|0);a=Xa(4);J[a>>2]=4;b=Xa(4);J[b>>2]=4;ca(19408,2543,19004,9464,91,a|0,19004,9459,90,b|0);a=Xa(4);J[a>>2]=12;b=Xa(4);J[b>>2]=12;ca(19408,5648,18572,9473,89,a|0,18572,9468,88,b|0);ja(19408);ka(19416,2645,9660,93,9626,92);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;ca(19416,2195,18488,9464,95,a|0,18488,9459,94,b|0);a=Xa(4);J[a>>2]=2;b=Xa(4);J[b>>2]=2;ca(19416,2208,18488,9464,95,a|0,18488,9459,94,b|0);a=Xa(4);J[a>>2]=4;b=Xa(4);J[b>>2]=4;ca(19416,1305,18476,9464,97,a|0,18476,9459,96,b|0);ja(19416);aa(19424,19432,19448,0,9481,99,9624,0,9624,0,3357,9626,98);a=Xa(8);J[a>>2]=8;J[a+4>>2]=1;Z(19424,4360,3,19464,9454,100,a|0,0,0);aa(19516,19528,19544,19424,9481,104,9481,103,9481,102,2700,9626,101);a=Xa(4);J[a>>2]=105;Z(19516,3013,2,19560,9477,106,a|0,0,0);ia(19424,1883,2,19568,9464,108,107,0);ia(19424,4927,3,19628,9454,110,109,0);aa(19648,19656,19672,0,9481,112,9624,0,9624,0,3371,9626,111);a=Xa(8);J[a>>2]=8;J[a+4>>2]=1;Z(19648,4360,6,19696,10211,113,a|0,1,0);aa(19752,19764,19780,19648,9481,117,9481,116,9481,115,2721,9626,114);a=Xa(4);J[a>>2]=118;Z(19752,3013,2,19796,9477,119,a|0,0,0);ia(19648,1883,2,19804,9464,121,120,0);ia(19648,4927,3,19628,9454,110,122,0);aa(19876,19884,19900,0,9481,124,9624,0,9624,0,2747,9626,123);a=Xa(8);J[a>>2]=8;J[a+4>>2]=1;Z(19876,2106,3,19916,9459,125,a|0,0,0);a=Xa(8);J[a>>2]=12;J[a+4>>2]=1;Z(19876,2119,3,19916,9459,125,a|0,0,0);a=Xa(8);J[a>>2]=16;J[a+4>>2]=1;Z(19876,3980,4,19936,9629,126,a|0,0,0);a=Xa(8);J[a>>2]=20;J[a+4>>2]=1;Z(19876,3970,4,19936,9629,126,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=127;Z(19984,4376,3,19996,9459,128,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=129;Z(19984,4374,3,19996,9459,128,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=130;Z(19984,3915,3,20024,9454,131,a|0,0,0);aa(19984,20008,20036,19876,9481,135,9481,134,9481,133,2677,9626,132);a=Xa(4);J[a>>2]=136;Z(19984,3013,2,20052,9477,137,a|0,0,0);ia(19876,1883,2,20060,9464,139,138,0);ia(19876,4927,3,19628,9454,110,140,0);aa(20152,20160,20176,0,9481,142,9624,0,9624,0,1370,9626,141);a=Xa(8);J[a+4>>2]=0;J[a>>2]=143;Z(20152,2287,3,20192,9459,144,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=145;Z(20152,2296,2,20204,9464,146,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=147;Z(20152,2316,3,20192,9459,144,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=148;Z(20152,2305,3,20192,9459,144,a|0,0,0);a=Xa(8);J[a>>2]=8;J[a+4>>2]=1;Z(20152,3233,5,20224,10565,149,a|0,0,0);a=Xa(8);J[a>>2]=12;J[a+4>>2]=1;Z(20152,3245,5,20224,10565,149,a|0,0,0);a=Xa(8);J[a>>2]=16;J[a+4>>2]=1;Z(20152,4673,5,20256,10572,150,a|0,0,0);a=Xa(8);J[a>>2]=20;J[a+4>>2]=1;Z(20152,4684,6,20288,10579,151,a|0,0,0);a=Xa(8);J[a>>2]=24;J[a+4>>2]=1;Z(20152,1871,5,20320,10565,152,a|0,0,0);a=Xa(8);J[a>>2]=28;J[a+4>>2]=1;Z(20152,3274,3,20340,9459,153,a|0,0,0);a=Xa(8);J[a>>2]=32;J[a+4>>2]=1;Z(20152,1607,5,20256,10572,150,a|0,0,0);aa(20384,20396,20412,20152,9481,157,9481,156,9481,155,2665,9626,154);a=Xa(4);J[a>>2]=158;Z(20384,3013,2,20428,9477,159,a|0,0,0);ia(20152,1883,2,20436,9464,161,160,0);ia(20152,4927,3,19628,9454,110,162,0);aa(20632,20640,20656,0,9481,164,9624,0,9624,0,5756,9626,163);fa(20632,1,20672,9481,166,165);a=Xa(8);J[a+4>>2]=0;J[a>>2]=167;Z(20632,4991,2,20676,9464,168,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=169;Z(20632,2550,2,20684,9464,170,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=171;Z(20632,2174,2,20684,9464,170,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=172;Z(20632,2652,2,20692,9473,173,a|0,0,0);a=Xa(4);J[a>>2]=174;Z(20632,4545,3,20700,9459,175,a|0,0,0);a=Xa(4);J[a>>2]=176;Z(20632,2822,4,20720,9629,177,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=178;Z(20632,2278,3,20736,9454,179,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=180;Z(20632,1464,4,20752,9654,181,a|0,0,0);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;_(20632,4905,19004,9464,183,a|0,19004,9459,182,b|0);a=Xa(4);J[a>>2]=8;b=Xa(4);J[b>>2]=8;_(20632,4916,19004,9464,183,a|0,19004,9459,182,b|0);aa(20784,20792,20808,0,9481,185,9624,0,9624,0,4937,9626,184);fa(20784,2,20824,9464,187,186);a=Xa(8);J[a+4>>2]=0;J[a>>2]=188;Z(20784,2744,3,20832,9459,189,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=190;Z(20784,1362,3,20844,9459,191,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=192;Z(20784,1365,2,20856,9477,193,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=194;Z(20784,1213,3,20864,9454,195,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=196;Z(20784,1193,3,20924,9459,197,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=198;Z(20784,1786,3,20936,9454,199,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=200;Z(20784,1719,3,20972,9459,201,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=202;Z(20784,2802,5,20992,10815,203,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=204;Z(20784,5731,4,21024,9629,205,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=206;Z(20784,1464,5,21040,10565,207,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=208;Z(20784,3720,3,21060,9459,209,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=210;Z(20784,3737,2,21072,9464,211,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=212;Z(20784,1036,3,21080,9459,213,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=214;Z(20784,1047,2,21092,9464,215,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=216;Z(20784,2797,2,20856,9477,193,a|0,0,0);aa(21100,21108,21124,0,9481,218,9624,0,9624,0,4533,9626,217);a=Xa(4);J[a>>2]=4;b=Xa(4);J[b>>2]=4;_(21100,4413,19112,9464,220,a|0,19112,9459,219,b|0);a=Xa(4);J[a>>2]=8;b=Xa(4);J[b>>2]=8;_(21100,2145,18572,9473,222,a|0,18572,9468,221,b|0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=223;Z(21100,4445,2,21140,9464,224,a|0,0,0);a=Xa(8);J[a>>2]=12;J[a+4>>2]=1;Z(21100,1593,2,21148,9464,225,a|0,0,0);a=Xa(8);J[a>>2]=16;J[a+4>>2]=1;Z(21100,1617,4,21168,9654,226,a|0,0,0);a=Xa(8);J[a>>2]=20;J[a+4>>2]=1;Z(21100,1464,6,21184,10852,227,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=24;Z(21100,5749,5,21216,10565,228,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=28;Z(21100,2266,4,21248,10874,229,a|0,0,0);a=Xa(4);J[a>>2]=230;Z(21100,2154,3,21280,9468,231,a|0,0,0);a=Xa(4);J[a>>2]=232;Z(21100,2164,2,21292,9473,233,a|0,0,0);aa(12020,21300,21316,21100,9481,237,9481,236,9481,235,4517,9626,234);fa(12020,1,21332,9481,239,238);a=Xa(4);J[a>>2]=12;b=Xa(4);J[b>>2]=12;_(12020,2818,19004,9464,241,a|0,19004,9459,240,b|0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=8;Z(12020,4539,3,21336,9454,242,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=12;Z(12020,1593,2,21372,9464,243,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(12020,1617,4,21392,9654,244,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=20;Z(12020,1464,6,21408,10852,245,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=24;Z(12020,5749,5,21440,10565,246,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=28;Z(12020,2266,4,21472,10874,247,a|0,0,0);aa(12088,21488,21504,21100,9481,251,9481,250,9481,249,4529,9626,248);a=Xa(8);J[a+4>>2]=1;J[a>>2]=8;Z(12088,4539,3,21520,9454,252,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=12;Z(12088,1593,2,21532,9464,253,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(12088,1617,4,21552,9654,254,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=20;Z(12088,1464,6,21568,10852,255,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=24;Z(12088,5749,5,21600,10565,256,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=28;Z(12088,2266,4,21632,10874,257,a|0,0,0);aa(12160,21648,21664,21100,9481,261,9481,260,9481,259,4481,9626,258);fa(12160,1,21680,9481,263,262);a=Xa(8);J[a+4>>2]=1;J[a>>2]=8;Z(12160,4539,3,21684,9454,264,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=12;Z(12160,1593,2,21696,9464,265,a|0,0,0);a=Xa(4);J[a>>2]=266;Z(12160,2091,4,21712,9629,267,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(12160,1617,4,21728,9654,268,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=20;Z(12160,1464,6,21744,10852,269,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=24;Z(12160,5749,5,21776,10565,270,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=28;Z(12160,2266,4,21808,10874,271,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=272;Z(12160,4173,2,21824,9464,273,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=274;Z(12160,1296,4,21840,9426,275,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=276;Z(12160,4637,6,21856,11022,277,a|0,0,0);aa(21880,21888,21904,0,9481,279,9624,0,9624,0,3904,9626,278);fa(21880,1,21920,9481,281,280);a=Xa(4);J[a>>2]=282;Z(21880,4463,3,21924,9459,283,a|0,0,0);a=Xa(4);J[a>>2]=284;Z(21880,4472,2,21936,9464,285,a|0,0,0);a=Xa(4);J[a>>2]=8;b=Xa(4);J[b>>2]=8;_(21880,3033,18572,9473,287,a|0,18572,9468,286,b|0);a=Xa(4);J[a>>2]=12;b=Xa(4);J[b>>2]=12;_(21880,2912,18572,9473,287,a|0,18572,9468,286,b|0);a=Xa(4);J[a>>2]=16;b=Xa(4);J[b>>2]=16;_(21880,1058,18572,9473,287,a|0,18572,9468,286,b|0);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(21880,2519,18428,9464,289,a|0,18428,9459,288,b|0);a=Xa(4);J[a>>2]=22;b=Xa(4);J[b>>2]=22;_(21880,2638,19416,9464,291,a|0,19416,9459,290,b|0);aa(21944,21952,21968,0,9481,293,9624,0,9624,0,4405,9626,292);a=Xa(8);J[a+4>>2]=0;J[a>>2]=294;Z(21944,4445,2,21984,9464,295,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=296;Z(21944,4472,2,21992,9464,297,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=298;Z(21944,2509,3,22e3,9459,299,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=300;Z(21944,2528,2,22012,9464,301,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=302;Z(21944,5276,3,22020,9459,303,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=304;Z(21944,5290,2,22032,9464,305,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=306;Z(21944,2636,2,22040,9477,307,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=308;Z(21944,1205,2,22048,9464,309,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=310;Z(21944,1401,2,22056,9464,311,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=312;Z(21944,1617,3,22064,9454,313,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=314;Z(21944,1464,5,22080,11114,315,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=316;Z(21944,5264,3,22100,9459,317,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=318;Z(21944,1066,3,22112,9468,319,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=320;Z(21944,1077,2,22124,9473,321,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=322;Z(21944,3089,2,22124,9473,321,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=323;Z(21944,3070,3,22112,9468,319,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=324;Z(21944,2977,2,22124,9473,321,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=325;Z(21944,2955,3,22112,9468,319,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=326;Z(21944,5741,3,22132,9454,327,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=328;Z(21944,2797,3,22144,9459,329,a|0,0,0);aa(20900,22156,20908,0,9481,331,9624,0,9624,0,3776,9626,330);fa(20900,1,22172,9481,333,332);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;_(20900,4415,19120,9464,335,a|0,19120,9459,334,b|0);a=Xa(4);J[a>>2]=4;b=Xa(4);J[b>>2]=4;_(20900,2992,19004,9464,337,a|0,19004,9459,336,b|0);a=Xa(4);J[a>>2]=12;b=Xa(4);J[b>>2]=12;_(20900,4553,18572,9473,339,a|0,18572,9468,338,b|0);a=Xa(4);J[a>>2]=16;b=Xa(4);J[b>>2]=16;_(20900,1142,19004,9464,337,a|0,19004,9459,336,b|0);a=Xa(4);J[a>>2]=24;b=Xa(4);J[b>>2]=24;_(20900,1088,18572,9473,339,a|0,18572,9468,338,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(20900,3672,18572,9473,339,a|0,18572,9468,338,b|0);a=Xa(4);J[a>>2]=32;b=Xa(4);J[b>>2]=32;_(20900,3621,18572,9473,339,a|0,18572,9468,338,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(20900,2807,18428,9464,341,a|0,18428,9459,340,b|0);a=Xa(4);J[a>>2]=37;b=Xa(4);J[b>>2]=37;_(20900,4752,18428,9464,341,a|0,18428,9459,340,b|0);a=Xa(4);J[a>>2]=38;b=Xa(4);J[b>>2]=38;_(20900,3122,18428,9464,341,a|0,18428,9459,340,b|0);a=Xa(4);J[a>>2]=39;b=Xa(4);J[b>>2]=39;_(20900,2038,18428,9464,341,a|0,18428,9459,340,b|0);a=Xa(4);J[a>>2]=48;b=Xa(4);J[b>>2]=48;_(20900,4707,18572,9473,339,a|0,18572,9468,338,b|0);aa(20876,20884,22176,0,9481,343,9624,0,9624,0,1265,9626,342);a=Xa(8);J[a+4>>2]=0;J[a>>2]=344;Z(20876,4399,3,22192,9454,345,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=346;Z(20876,4494,4,22208,11143,347,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=348;Z(20876,4345,3,22224,9459,349,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=350;Z(20876,3288,4,22240,10874,351,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=352;Z(20876,3301,2,22256,9464,353,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=354;Z(20876,3001,2,22264,9464,355,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=356;Z(20876,4573,2,22272,9473,357,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=358;Z(20876,2621,2,22264,9464,355,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=359;Z(20876,2606,2,22264,9464,355,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=360;Z(20876,1157,3,22280,9459,361,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=362;Z(20876,1175,2,22264,9464,355,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=363;Z(20876,1104,3,22292,9468,364,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=365;Z(20876,1123,2,22272,9473,357,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=366;Z(20876,4782,5,22304,10565,367,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=368;Z(20876,2587,4,22336,9629,369,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=370;Z(20876,3989,4,22352,11149,371,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=372;Z(20876,4265,5,22304,10565,367,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=373;Z(20876,2560,4,22336,9629,369,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=374;Z(20876,4245,4,22352,11149,371,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=375;Z(20876,2258,2,22272,9473,357,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=376;Z(20876,5304,2,22272,9473,357,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=377;Z(20876,5264,3,22368,9459,378,a|0,0,0);a=Xa(4);J[a>>2]=379;Z(20876,5252,3,22380,9459,380,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=381;Z(20876,5238,2,22392,9477,382,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=383;Z(20876,1673,3,22400,9454,384,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=385;Z(20876,2414,3,22400,9454,384,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=386;Z(20876,1627,3,22400,9454,384,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=387;Z(20876,2399,3,22400,9454,384,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=388;Z(20876,1687,3,22400,9454,384,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=389;Z(20876,1641,3,22400,9454,384,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=390;Z(20876,3703,2,22272,9473,357,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=391;Z(20876,3686,3,22292,9468,364,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=392;Z(20876,3654,2,22272,9473,357,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=393;Z(20876,3636,3,22292,9468,364,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=394;Z(20876,4736,2,22272,9473,357,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=395;Z(20876,4720,3,22292,9468,364,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=396;Z(20876,4429,3,22412,9459,397,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=398;Z(20876,4445,2,22424,9464,399,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=400;Z(20876,2045,3,22432,9459,401,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=402;Z(20876,2055,2,22444,9464,403,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=404;Z(20876,4999,3,22432,9459,401,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=405;Z(20876,5018,2,22444,9464,403,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=406;Z(20876,4758,3,22432,9459,401,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=407;Z(20876,4767,2,22444,9464,403,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=408;Z(20876,5095,3,22432,9459,401,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=409;Z(20876,5106,2,22444,9464,403,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=410;Z(20876,3136,3,22432,9459,401,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=411;Z(20876,3153,2,22444,9464,403,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=412;Z(20876,1449,2,22452,9464,413,a|0,0,0);a=Xa(4);J[a>>2]=414;Z(20876,1436,2,22460,9464,415,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=416;Z(20876,4934,2,22468,9464,417,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=418;Z(20876,2797,2,22392,9477,382,a|0,0,0);aa(20948,22476,20956,0,9481,420,9624,0,9624,0,3895,9626,419);fa(20948,1,22492,9481,422,421);a=Xa(4);J[a>>2]=0;b=Xa(4);J[b>>2]=0;_(20948,4415,22496,9464,424,a|0,22496,9459,423,b|0);a=Xa(4);J[a>>2]=425;Z(20948,5761,3,22504,9459,426,a|0,0,0);a=Xa(4);J[a>>2]=427;Z(20948,5770,2,22516,9464,428,a|0,0,0);a=Xa(4);J[a>>2]=429;Z(20948,5654,3,22504,9459,426,a|0,0,0);a=Xa(4);J[a>>2]=430;Z(20948,5663,2,22516,9464,428,a|0,0,0);a=Xa(4);J[a>>2]=16;b=Xa(4);J[b>>2]=16;_(20948,5036,18428,9464,432,a|0,18428,9459,431,b|0);aa(12976,18976,22524,0,9481,434,9624,0,9624,0,1852,9626,433);a=Xa(8);J[a+4>>2]=0;J[a>>2]=435;Z(12976,4445,2,22540,9464,436,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=437;Z(12976,5770,2,22548,9464,438,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=439;Z(12976,5663,2,22548,9464,438,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=0;Z(12976,5804,2,22556,9464,440,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=4;Z(12976,5672,2,22556,9464,440,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=8;Z(12976,4888,3,22564,11194,441,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=12;Z(12976,4103,3,22576,11199,442,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=443;Z(12976,5053,2,22588,9464,444,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(12976,2797,2,22596,9477,445,a|0,0,0);aa(22604,22616,22632,20948,9481,449,9481,448,9481,447,3856,9626,446);fa(22604,1,22648,9481,451,450);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(22604,5815,19004,9464,453,a|0,19004,9459,452,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(22604,5683,19004,9464,453,a|0,19004,9459,452,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(22604,3397,18572,9473,455,a|0,18572,9468,454,b|0);a=Xa(4);J[a>>2]=40;b=Xa(4);J[b>>2]=40;_(22604,2217,18572,9473,455,a|0,18572,9468,454,b|0);a=Xa(4);J[a>>2]=44;b=Xa(4);J[b>>2]=44;_(22604,3591,18572,9473,455,a|0,18572,9468,454,b|0);aa(12604,22652,22668,12976,9481,459,9481,458,9481,457,1819,9626,456);a=Xa(8);J[a+4>>2]=0;J[a>>2]=460;Z(12604,5828,2,22684,9464,461,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=462;Z(12604,5696,2,22684,9464,461,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=463;Z(12604,3440,3,22692,9468,464,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=465;Z(12604,3450,2,22704,9473,466,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=467;Z(12604,2227,3,22692,9468,464,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=468;Z(12604,2240,2,22704,9473,466,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=469;Z(12604,3599,3,22692,9468,464,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=470;Z(12604,3610,2,22704,9473,466,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(12604,2797,2,22712,9477,471,a|0,0,0);aa(22720,22732,22748,20948,9481,475,9481,474,9481,473,3784,9626,472);fa(22720,1,22764,9481,477,476);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(22720,1993,19004,9464,479,a|0,19004,9459,478,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(22720,1945,18572,9473,481,a|0,18572,9468,480,b|0);a=Xa(4);J[a>>2]=32;b=Xa(4);J[b>>2]=32;_(22720,4793,18572,9473,481,a|0,18572,9468,480,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(22720,4001,18572,9473,481,a|0,18572,9468,480,b|0);a=Xa(4);J[a>>2]=40;b=Xa(4);J[b>>2]=40;_(22720,2452,18572,9473,481,a|0,18572,9468,480,b|0);aa(13100,22768,22784,12976,9481,485,9481,484,9481,483,1750,9626,482);a=Xa(8);J[a+4>>2]=0;J[a>>2]=486;Z(13100,2006,3,22800,9459,487,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=488;Z(13100,2022,2,22812,9464,489,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=490;Z(13100,1959,3,22820,9468,491,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=492;Z(13100,1976,2,22832,9473,493,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=494;Z(13100,4802,3,22820,9468,491,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=495;Z(13100,4814,2,22832,9473,493,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=496;Z(13100,4011,3,22820,9468,491,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=497;Z(13100,4024,2,22832,9473,493,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=498;Z(13100,2469,3,22820,9468,491,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=499;Z(13100,2489,2,22832,9473,493,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(13100,2797,2,22840,9477,500,a|0,0,0);aa(22848,22860,22876,20948,9481,504,9481,503,9481,502,3829,9626,501);fa(22848,1,22892,9481,506,505);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(22848,2064,19004,9464,508,a|0,19004,9459,507,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(22848,4793,18572,9473,510,a|0,18572,9468,509,b|0);a=Xa(4);J[a>>2]=32;b=Xa(4);J[b>>2]=32;_(22848,1024,18572,9473,510,a|0,18572,9468,509,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(22848,2833,18572,9473,510,a|0,18572,9468,509,b|0);aa(13184,22896,22912,12976,9481,514,9481,513,9481,512,1798,9626,511);a=Xa(8);J[a+4>>2]=0;J[a>>2]=515;Z(13184,2071,3,22928,9459,516,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=517;Z(13184,2081,2,22940,9464,518,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=519;Z(13184,4802,3,22948,9468,520,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=521;Z(13184,4814,2,22960,9473,522,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=523;Z(13184,1270,3,22948,9468,520,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=524;Z(13184,1283,2,22960,9473,522,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=525;Z(13184,2846,3,22948,9468,520,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=526;Z(13184,2862,2,22960,9473,522,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(13184,2797,2,22968,9477,527,a|0,0,0);aa(22976,22988,23004,20948,9481,531,9481,530,9481,529,3886,9626,528);fa(22976,1,23020,9481,533,532);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(22976,5815,19004,9464,535,a|0,19004,9459,534,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(22976,5683,19004,9464,535,a|0,19004,9459,534,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(22976,5779,19004,9464,535,a|0,19004,9459,534,b|0);a=Xa(4);J[a>>2]=44;b=Xa(4);J[b>>2]=44;_(22976,4604,18572,9473,537,a|0,18572,9468,536,b|0);a=Xa(4);J[a>>2]=48;b=Xa(4);J[b>>2]=48;_(22976,1921,18428,9464,539,a|0,18428,9459,538,b|0);a=Xa(4);J[a>>2]=52;b=Xa(4);J[b>>2]=52;_(22976,3189,18572,9473,537,a|0,18572,9468,536,b|0);a=Xa(4);J[a>>2]=56;b=Xa(4);J[b>>2]=56;_(22976,3206,18572,9473,537,a|0,18572,9468,536,b|0);a=Xa(4);J[a>>2]=60;b=Xa(4);J[b>>2]=60;_(22976,2375,18428,9464,539,a|0,18428,9459,538,b|0);a=Xa(4);J[a>>2]=68;b=Xa(4);J[b>>2]=68;_(22976,5191,18572,9473,537,a|0,18572,9468,536,b|0);a=Xa(4);J[a>>2]=64;b=Xa(4);J[b>>2]=64;_(22976,4826,18572,9473,537,a|0,18572,9468,536,b|0);aa(13384,23024,23040,12976,9481,543,9481,542,9481,541,1843,9626,540);a=Xa(8);J[a+4>>2]=0;J[a>>2]=544;Z(13384,5828,2,23056,9464,545,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=546;Z(13384,5696,2,23056,9464,545,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=547;Z(13384,5790,2,23056,9464,545,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=548;Z(13384,4619,2,23064,9473,549,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=550;Z(13384,3169,2,23064,9473,549,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=551;Z(13384,5131,2,23064,9473,549,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=552;Z(13384,5073,2,23072,9464,553,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=554;Z(13384,1933,3,23080,9459,555,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=556;Z(13384,1893,2,23064,9473,549,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=557;Z(13384,1907,2,23064,9473,549,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=558;Z(13384,2185,4,23104,9426,559,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=560;Z(13384,5116,2,23072,9464,553,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=561;Z(13384,2387,3,23080,9459,555,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=562;Z(13384,5202,3,23120,9468,563,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=564;Z(13384,5216,2,23064,9473,549,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=565;Z(13384,4840,3,23120,9468,563,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=566;Z(13384,4857,2,23064,9473,549,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=567;Z(13384,4874,3,23132,11199,568,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(13384,2797,2,23144,9477,569,a|0,0,0);aa(23152,23164,23180,20948,9481,573,9481,572,9481,571,3812,9626,570);fa(23152,1,23196,9481,575,574);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(23152,5815,19004,9464,577,a|0,19004,9459,576,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(23152,5683,19004,9464,577,a|0,19004,9459,576,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(23152,4604,18572,9473,579,a|0,18572,9468,578,b|0);a=Xa(4);J[a>>2]=40;b=Xa(4);J[b>>2]=40;_(23152,1921,18428,9464,581,a|0,18428,9459,580,b|0);a=Xa(4);J[a>>2]=44;b=Xa(4);J[b>>2]=44;_(23152,4582,18572,9473,579,a|0,18572,9468,578,b|0);a=Xa(4);J[a>>2]=48;b=Xa(4);J[b>>2]=48;_(23152,4593,18572,9473,579,a|0,18572,9468,578,b|0);a=Xa(4);J[a>>2]=52;b=Xa(4);J[b>>2]=52;_(23152,2375,18428,9464,581,a|0,18428,9459,580,b|0);a=Xa(4);J[a>>2]=56;b=Xa(4);J[b>>2]=56;_(23152,5191,18572,9473,579,a|0,18572,9468,578,b|0);a=Xa(4);J[a>>2]=60;b=Xa(4);J[b>>2]=60;_(23152,4037,18572,9473,579,a|0,18572,9468,578,b|0);aa(13556,23200,23216,12976,9481,585,9481,584,9481,583,1772,9626,582);a=Xa(8);J[a+4>>2]=0;J[a>>2]=586;Z(13556,5828,2,23232,9464,587,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=588;Z(13556,5696,2,23232,9464,587,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=589;Z(13556,4619,2,23240,9473,590,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=591;Z(13556,4559,2,23240,9473,590,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=592;Z(13556,5131,2,23240,9473,590,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=593;Z(13556,5073,2,23248,9464,594,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=595;Z(13556,1933,3,23256,9459,596,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=597;Z(13556,1893,2,23240,9473,590,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=598;Z(13556,1907,2,23240,9473,590,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=599;Z(13556,2185,4,23280,9426,600,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=601;Z(13556,5116,2,23248,9464,594,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=602;Z(13556,2387,3,23256,9459,596,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=603;Z(13556,5202,3,23296,9468,604,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=605;Z(13556,5216,2,23240,9473,590,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=606;Z(13556,4052,3,23296,9468,604,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=607;Z(13556,4070,2,23240,9473,590,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=608;Z(13556,4088,3,23308,11199,609,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(13556,2797,2,23320,9477,610,a|0,0,0);aa(23328,23340,23356,20948,9481,614,9481,613,9481,612,3843,9626,611);fa(23328,1,23372,9481,616,615);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(23328,5815,19004,9464,618,a|0,19004,9459,617,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(23328,5683,19004,9464,618,a|0,19004,9459,617,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(23328,3404,18572,9473,620,a|0,18572,9468,619,b|0);aa(13640,23376,23392,12976,9481,624,9481,623,9481,622,1809,9626,621);a=Xa(8);J[a+4>>2]=0;J[a>>2]=625;Z(13640,5828,2,23408,9464,626,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=627;Z(13640,5696,2,23408,9464,626,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=8;Z(13640,4888,3,23416,11194,628,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=12;Z(13640,4103,3,23428,11199,629,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=630;Z(13640,3414,3,23440,9468,631,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=632;Z(13640,3427,2,23452,9473,633,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=634;Z(13640,3450,2,23452,9473,633,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(13640,2797,2,23460,9477,635,a|0,0,0);aa(23468,23480,23496,20948,9481,639,9481,638,9481,637,3873,9626,636);fa(23468,1,23512,9481,641,640);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(23468,5815,19004,9464,643,a|0,19004,9459,642,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(23468,5683,19004,9464,643,a|0,19004,9459,642,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(23468,4604,18572,9473,645,a|0,18572,9468,644,b|0);a=Xa(4);J[a>>2]=40;b=Xa(4);J[b>>2]=40;_(23468,2217,18572,9473,645,a|0,18572,9468,644,b|0);a=Xa(4);J[a>>2]=44;b=Xa(4);J[b>>2]=44;_(23468,3591,18572,9473,645,a|0,18572,9468,644,b|0);aa(13724,23516,23532,12976,9481,649,9481,648,9481,647,1833,9626,646);a=Xa(8);J[a+4>>2]=0;J[a>>2]=650;Z(13724,5828,2,23548,9464,651,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=652;Z(13724,5696,2,23548,9464,651,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=653;Z(13724,4619,2,23556,9473,654,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=655;Z(13724,2227,3,23564,9468,656,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=657;Z(13724,2240,2,23556,9473,654,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=658;Z(13724,3599,3,23564,9468,656,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=659;Z(13724,3610,2,23556,9473,654,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(13724,2797,2,23576,9477,660,a|0,0,0);aa(23584,23596,23612,20948,9481,664,9481,663,9481,662,3798,9626,661);fa(23584,1,23628,9481,666,665);a=Xa(4);J[a>>2]=20;b=Xa(4);J[b>>2]=20;_(23584,5815,19004,9464,668,a|0,19004,9459,667,b|0);a=Xa(4);J[a>>2]=28;b=Xa(4);J[b>>2]=28;_(23584,5683,19004,9464,668,a|0,19004,9459,667,b|0);a=Xa(4);J[a>>2]=36;b=Xa(4);J[b>>2]=36;_(23584,5779,19004,9464,668,a|0,19004,9459,667,b|0);a=Xa(4);J[a>>2]=44;b=Xa(4);J[b>>2]=44;_(23584,1921,18428,9464,670,a|0,18428,9459,669,b|0);a=Xa(4);J[a>>2]=48;b=Xa(4);J[b>>2]=48;_(23584,3189,18572,9473,672,a|0,18572,9468,671,b|0);a=Xa(4);J[a>>2]=52;b=Xa(4);J[b>>2]=52;_(23584,3206,18572,9473,672,a|0,18572,9468,671,b|0);a=Xa(4);J[a>>2]=56;b=Xa(4);J[b>>2]=56;_(23584,2375,18428,9464,670,a|0,18428,9459,669,b|0);a=Xa(4);J[a>>2]=60;b=Xa(4);J[b>>2]=60;_(23584,4037,18572,9473,672,a|0,18572,9468,671,b|0);a=Xa(4);J[a>>2]=64;b=Xa(4);J[b>>2]=64;_(23584,5191,18572,9473,672,a|0,18572,9468,671,b|0);a=Xa(4);J[a>>2]=68;b=Xa(4);J[b>>2]=68;_(23584,2217,18572,9473,672,a|0,18572,9468,671,b|0);a=Xa(4);J[a>>2]=72;b=Xa(4);J[b>>2]=72;_(23584,3591,18572,9473,672,a|0,18572,9468,671,b|0);aa(13808,23632,23648,12976,9481,676,9481,675,9481,674,1761,9626,673);a=Xa(8);J[a+4>>2]=0;J[a>>2]=677;Z(13808,5828,2,23664,9464,678,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=679;Z(13808,5696,2,23664,9464,678,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=680;Z(13808,5790,2,23664,9464,678,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=681;Z(13808,3169,2,23672,9473,682,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=683;Z(13808,5116,2,23680,9464,684,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=685;Z(13808,2387,3,23688,9459,686,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=687;Z(13808,5202,3,23700,9468,688,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=689;Z(13808,5216,2,23672,9473,682,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=690;Z(13808,4052,3,23700,9468,688,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=691;Z(13808,4070,2,23672,9473,682,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=692;Z(13808,4088,3,23712,11199,693,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=694;Z(13808,2227,3,23700,9468,688,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=695;Z(13808,2240,2,23672,9473,682,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=696;Z(13808,3599,3,23700,9468,688,a|0,0,0);a=Xa(8);J[a+4>>2]=0;J[a>>2]=697;Z(13808,3610,2,23672,9473,682,a|0,0,0);a=Xa(8);J[a+4>>2]=1;J[a>>2]=16;Z(13808,2797,2,23724,9477,698,a|0,0,0)}function Ef(a,b,c,d){a=a|0;b=Q(b);c=c|0;d=d|0;var e=0,f=Q(0),g=0,h=0,i=0,j=0,k=Q(0),l=0,m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=0,v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0,D=0,E=Q(0),F=0,G=Q(0),M=Q(0),O=Q(0),R=Q(0),S=0,T=Q(0),U=Q(0),W=Q(0),X=Q(0),Z=Q(0),_=0,$=0,aa=Q(0),ba=Q(0),ca=Q(0),da=0,ea=0,fa=Q(0),ga=0,ha=Q(0),ia=Q(0),ja=0,ka=Q(0),la=Q(0),ma=Q(0),na=Q(0),oa=Q(0),pa=Q(0),qa=Q(0),ra=Q(0),sa=0,ta=Q(0),ua=Q(0),va=Q(0),wa=Q(0),xa=Q(0),ya=Q(0),za=Q(0),Aa=Q(0);D=La-32|0;La=D;if(K[a+102988|0]){fc(a+102868|0);H[a+102988|0]=0}H[a+102989|0]=1;J[D+20>>2]=d;J[D+16>>2]=c;N[D+4>>2]=b;o=b>Q(0);N[D+8>>2]=o?Q(Q(1)/b):Q(0);N[D+12>>2]=N[a+102984>>2]*b;H[D+24|0]=K[a+102991|0];h=a+102868|0;c=J[h+60>>2];if(c){while(1){d=c;t=J[d+60>>2];F=J[d+56>>2];e=J[d+52>>2];g=J[e+8>>2];j=J[d+48>>2];l=J[j+8>>2];a:{b:{c:{c=J[d+4>>2];d:{if(c&8){i=J[h+68>>2];if(i){if(!(Na[J[J[i>>2]+8>>2]](i,j,e)|0)){break d}c=J[d+4>>2]}J[d+4>>2]=c&-9}c=0;if(!((K[l+4|0]&2?J[l>>2]!=0:c)|(K[g+4|0]&2?J[g>>2]!=0:0))){break b}c=P(J[(J[e+24>>2]+P(t,28)|0)+24>>2],40);e=J[h+4>>2];c=c+e|0;e=e+P(J[(J[j+24>>2]+P(F,28)|0)+24>>2],40)|0;if(Q(N[c>>2]-N[e+8>>2])>Q(0)|Q(N[c+4>>2]-N[e+12>>2])>Q(0)|Q(N[e>>2]-N[c+8>>2])>Q(0)){break d}if(!(Q(N[e+4>>2]-N[c+12>>2])>Q(0))){break c}}c=J[d+12>>2];Sb(h,d);break a}zc(d,J[h+72>>2])}c=J[d+12>>2]}if(c){continue}break}}N[a+103e3>>2]=0;if(!(!K[a+102994|0]|!o)){o=La-96|0;La=o;J[a+103016>>2]=0;c=a+103008|0;J[c>>2]=0;J[c+4>>2]=0;$=a+68|0;e=gd(o+44|0,J[a+102956>>2],J[a+102932>>2],J[a+102960>>2],$,J[a+102940>>2]);d=J[a+102948>>2];if(d){while(1){I[d+4>>1]=L[d+4>>1]&65534;d=J[d+96>>2];if(d){continue}break}}d=J[a+102928>>2];if(d){while(1){J[d+4>>2]=J[d+4>>2]&-2;d=J[d+12>>2];if(d){continue}break}}d=J[a+102952>>2];if(d){while(1){H[d+60|0]=0;d=J[d+12>>2];if(d){continue}break}}F=Fb($,J[a+102956>>2]<<2);t=J[a+102948>>2];if(t){_=a+102964|0;while(1){c=L[t+4>>1];e:{if(!J[t>>2]|(c&35)!=34){break e}J[F>>2]=t;h=1;I[t+4>>1]=c|1;i=0;j=0;g=0;while(1){h=h-1|0;c=J[F+(h<<2)>>2];J[c+8>>2]=i;J[J[e+8>>2]+(i<<2)>>2]=c;f:{if(!J[c>>2]){break f}I[c+4>>1]=L[c+4>>1]|2;d=J[c+112>>2];if(d){while(1){l=J[d+4>>2];u=J[l+4>>2];g:{if((u&7)!=6|K[J[l+48>>2]+38|0]|K[J[l+52>>2]+38|0]){break g}J[J[e+12>>2]+(j<<2)>>2]=l;J[l+4>>2]=u|1;j=j+1|0;l=J[d>>2];u=L[l+4>>1];if(u&1){break g}J[F+(h<<2)>>2]=l;I[l+4>>1]=u|1;h=h+1|0}d=J[d+12>>2];if(d){continue}break}}d=J[c+108>>2];if(!d){break f}while(1){u=J[d+4>>2];h:{if(K[u+60|0]){break h}c=J[d>>2];l=L[c+4>>1];if(!(l&32)){break h}J[J[e+16>>2]+(g<<2)>>2]=u;H[J[d+4>>2]+60|0]=1;g=g+1|0;if(l&1){break h}J[F+(h<<2)>>2]=c;I[c+4>>1]=l|1;h=h+1|0}d=J[d+12>>2];if(d){continue}break}}i=i+1|0;if((h|0)>0){continue}break}J[e+36>>2]=j;J[e+28>>2]=i;J[e+32>>2]=g;ja=K[a+102972|0];g=0;h=0;j=La-160|0;La=j;m=N[D+4>>2];if(J[e+28>>2]>0){while(1){d=J[J[e+8>>2]+(g<<2)>>2];x=N[d+56>>2];N[d+52>>2]=x;l=J[d+48>>2];c=J[d+44>>2];J[d+36>>2]=c;J[d+40>>2]=l;b=N[d+72>>2];k=N[d+64>>2];f=N[d+68>>2];if(J[d>>2]==2){n=Q(m*N[d+120>>2]);q=Q(N[d+140>>2]*N[d+116>>2]);G=Q(Q(1)/Q(Q(m*N[d+132>>2])+Q(1)));f=Q(Q(f+Q(n*Q(Q(q*N[_+4>>2])+N[d+80>>2])))*G);k=Q(Q(k+Q(n*Q(Q(N[_>>2]*q)+N[d+76>>2])))*G);b=Q(Q(Q(Q(m*N[d+128>>2])*N[d+84>>2])+b)*Q(Q(1)/Q(Q(m*N[d+136>>2])+Q(1))))}d=P(g,12);i=d+J[e+20>>2]|0;J[i>>2]=c;J[i+4>>2]=l;N[(d+J[e+20>>2]|0)+8>>2]=x;c=d+J[e+24>>2]|0;N[c+4>>2]=f;N[c>>2]=k;N[(d+J[e+24>>2]|0)+8>>2]=b;g=g+1|0;if((g|0)<J[e+28>>2]){continue}break}}c=J[D+24>>2];J[j+120>>2]=J[D+20>>2];J[j+124>>2]=c;c=J[D+16>>2];J[j+112>>2]=J[D+12>>2];J[j+116>>2]=c;c=J[D+8>>2];J[j+104>>2]=J[D+4>>2];J[j+108>>2]=c;c=J[e+20>>2];J[j+128>>2]=c;d=J[e+24>>2];J[j+132>>2]=d;g=J[D+24>>2];J[j+72>>2]=J[D+20>>2];J[j+76>>2]=g;l=J[D+16>>2];g=j- -64|0;J[g>>2]=J[D+12>>2];J[g+4>>2]=l;g=J[D+8>>2];J[j+56>>2]=J[D+4>>2];J[j+60>>2]=g;J[j+80>>2]=J[e+12>>2];g=J[e+36>>2];J[j+92>>2]=d;J[j+88>>2]=c;J[j+84>>2]=g;J[j+96>>2]=J[e>>2];l=ld(j+4|0,j+56|0);jd(l);if(J[l+48>>2]>0?K[D+24|0]:0){g=J[l+28>>2];while(1){c=J[l+40>>2]+P(h,156)|0;u=P(J[c+116>>2],12);d=u+g|0;b=N[d+8>>2];k=N[d+4>>2];f=N[d>>2];B=P(J[c+112>>2],12);g=B+g|0;n=N[g+8>>2];q=N[g+4>>2];p=N[g>>2];C=J[c+148>>2];if((C|0)>0){A=N[c+72>>2];M=N[c+132>>2];r=N[c+124>>2];v=N[c+120>>2];z=N[c+76>>2];w=Q(-N[c+128>>2]);i=0;while(1){d=c+P(i,36)|0;G=N[d+16>>2];R=N[d+20>>2];x=Q(Q(z*G)-Q(A*R));G=Q(Q(A*G)+Q(z*R));b=Q(Q(M*Q(Q(N[d+8>>2]*x)-Q(G*N[d+12>>2])))+b);n=Q(Q(w*Q(Q(N[d>>2]*x)-Q(G*N[d+4>>2])))+n);k=Q(k+Q(r*x));f=Q(f+Q(r*G));q=Q(q-Q(v*x));p=Q(p-Q(v*G));i=i+1|0;if((C|0)!=(i|0)){continue}break}}N[g+4>>2]=q;N[g>>2]=p;c=J[l+28>>2];N[(c+B|0)+8>>2]=n;c=c+u|0;N[c+4>>2]=k;N[c>>2]=f;g=J[l+28>>2];N[(u+g|0)+8>>2]=b;h=h+1|0;if((h|0)<J[l+48>>2]){continue}break}}if(J[e+32>>2]>0){d=0;while(1){c=J[J[e+16>>2]+(d<<2)>>2];Na[J[J[c>>2]+36>>2]](c,j+104|0);d=d+1|0;if((d|0)<J[e+32>>2]){continue}break}}N[o+24>>2]=0;if(J[D+16>>2]>0){c=0;while(1){d=0;if(J[e+32>>2]>0){while(1){h=J[J[e+16>>2]+(d<<2)>>2];Na[J[J[h>>2]+40>>2]](h,j+104|0);d=d+1|0;if((d|0)<J[e+32>>2]){continue}break}}id(l);c=c+1|0;if((c|0)<J[D+16>>2]){continue}break}}c=0;B=J[l+48>>2];if((B|0)>0){C=J[l+44>>2];ga=J[l+40>>2];while(1){g=ga+P(c,156)|0;i=J[g+148>>2];i:{if((i|0)<=0){break i}u=J[C+(J[g+152>>2]<<2)>>2]- -64|0;d=0;if((i|0)!=1){da=i&-2;h=0;while(1){S=u+P(d,20)|0;ea=g+P(d,36)|0;N[S+8>>2]=N[ea+16>>2];N[S+12>>2]=N[ea+20>>2];S=d|1;ea=u+P(S,20)|0;S=g+P(S,36)|0;N[ea+8>>2]=N[S+16>>2];N[ea+12>>2]=N[S+20>>2];d=d+2|0;h=h+2|0;if((da|0)!=(h|0)){continue}break}}if(!(i&1)){break i}h=u+P(d,20)|0;d=g+P(d,36)|0;N[h+8>>2]=N[d+16>>2];N[h+12>>2]=N[d+20>>2]}c=c+1|0;if((B|0)!=(c|0)){continue}break}}N[o+28>>2]=0;h=1;if(J[e+28>>2]>0){g=J[e+24>>2];c=0;while(1){d=P(c,12);i=d+g|0;b=N[i>>2];f=Q(m*b);w=Q(f*f);k=N[i+4>>2];f=Q(m*k);f=Q(w+Q(f*f));if(f>Q(4)){f=Q(Q(2)/Q(Y(f)));k=Q(k*f);b=Q(b*f)}g=d+J[e+20>>2]|0;n=N[g+8>>2];q=N[g+4>>2];G=N[g>>2];f=N[i+8>>2];x=Q(m*f);if(Q(x*x)>Q(2.4674012660980225)){f=Q(f*Q(Q(1.5707963705062866)/(x>Q(0)?x:Q(-x))))}N[g+4>>2]=q+Q(m*k);N[g>>2]=G+Q(m*b);N[(d+J[e+20>>2]|0)+8>>2]=Q(m*f)+n;g=d+J[e+24>>2]|0;N[g+4>>2]=k;N[g>>2]=b;g=J[e+24>>2];N[(d+g|0)+8>>2]=f;c=c+1|0;if((c|0)<J[e+28>>2]){continue}break}}if(J[D+20>>2]>0){c=0;while(1){G=Q(0);i=0;d=La+-64|0;La=d;if(J[l+48>>2]>0){h=J[l+24>>2];while(1){g=J[l+36>>2]+P(i,88)|0;u=P(J[g+36>>2],12);B=u+h|0;b=N[B+8>>2];k=N[B+4>>2];f=N[B>>2];B=P(J[g+32>>2],12);C=B+h|0;n=N[C+8>>2];q=N[C+4>>2];p=N[C>>2];C=J[g+84>>2];if((C|0)>0){r=N[g+68>>2];v=N[g+56>>2];z=N[g+48>>2];M=N[g+60>>2];w=N[g+52>>2];R=N[g+40>>2];O=N[g+44>>2];fa=Q(R+O);T=N[g+64>>2];y=Q(-T);h=0;while(1){x=_a(n);N[d+60>>2]=x;A=Za(n);N[d+56>>2]=A;s=_a(b);N[d+44>>2]=s;U=Za(b);N[d+40>>2]=U;N[d+52>>2]=q-Q(Q(A*z)+Q(w*x));N[d+48>>2]=p-Q(Q(x*z)-Q(w*A));N[d+36>>2]=k-Q(Q(U*v)+Q(M*s));N[d+32>>2]=f-Q(Q(s*v)-Q(M*U));hd(d+8|0,g,d+48|0,d+32|0,h);A=Q(0);x=N[d+24>>2];ga=x>G;s=N[d+20>>2];W=Q(s-k);X=Q(-W);Z=Q(s-q);aa=Q(-Z);ca=N[d+16>>2];ha=Q(ca-f);s=N[d+12>>2];U=N[d+8>>2];W=Q(Q(ha*s)-Q(U*W));E=Q(Q(r*W)*W);W=Q(ca-p);Z=Q(Q(W*s)-Q(U*Z));Z=Q(E+Q(Q(Q(T*Z)*Z)+fa));if(Z>Q(0)){A=Q(Q(x+Q(.004999999888241291))*Q(.20000000298023224));A=A<Q(0)?A:Q(0);A=Q(Q(-(A<Q(-.20000000298023224)?Q(-.20000000298023224):A))/Z)}G=ga?G:x;x=Q(s*A);A=Q(U*A);b=Q(Q(r*Q(Q(ha*x)+Q(A*X)))+b);n=Q(Q(y*Q(Q(W*x)+Q(A*aa)))+n);k=Q(k+Q(O*x));f=Q(f+Q(O*A));q=Q(q-Q(R*x));p=Q(p-Q(R*A));h=h+1|0;if((C|0)!=(h|0)){continue}break}h=J[l+24>>2]}h=h+B|0;N[h+4>>2]=q;N[h>>2]=p;h=J[l+24>>2];N[(h+B|0)+8>>2]=n;h=h+u|0;N[h+4>>2]=k;N[h>>2]=f;h=J[l+24>>2];N[(u+h|0)+8>>2]=b;i=i+1|0;if((i|0)<J[l+48>>2]){continue}break}}La=d- -64|0;g=1;d=0;if(J[e+32>>2]>0){while(1){h=J[J[e+16>>2]+(d<<2)>>2];g=Na[J[J[h>>2]+44>>2]](h,j+104|0)&g;d=d+1|0;if((d|0)<J[e+32>>2]){continue}break}}d=G>=Q(-.014999999664723873)&g;if(!d){c=c+1|0;if((c|0)<J[D+20>>2]){continue}}break}h=!d}if(J[e+28>>2]>0){g=0;while(1){u=P(g,12);d=u+J[e+20>>2]|0;n=N[d>>2];c=J[d>>2];w=N[d+4>>2];d=J[d+4>>2];i=J[J[e+8>>2]+(g<<2)>>2];J[i+44>>2]=c;J[i+48>>2]=d;b=N[(u+J[e+20>>2]|0)+8>>2];N[i+56>>2]=b;c=u+J[e+24>>2]|0;B=J[c+4>>2];J[i+64>>2]=J[c>>2];J[i+68>>2]=B;k=N[(u+J[e+24>>2]|0)+8>>2];f=_a(b);N[i+24>>2]=f;b=Za(b);N[i+20>>2]=b;N[i+72>>2]=k;k=N[i+28>>2];x=N[i+32>>2];N[i+16>>2]=w-Q(Q(b*k)+Q(f*x));N[i+12>>2]=n-Q(Q(f*k)-Q(x*b));g=g+1|0;if((g|0)<J[e+28>>2]){continue}break}}N[o+32>>2]=0;if(!(!J[e+4>>2]|J[e+36>>2]<=0)){B=J[l+40>>2];g=0;while(1){C=J[J[e+12>>2]+(g<<2)>>2];u=B+P(g,156)|0;i=J[u+148>>2];J[j+156>>2]=i;j:{if((i|0)<=0){break j}d=0;if((i|0)!=1){ga=i&-2;c=0;while(1){da=d<<2;S=j+140|0;ea=u+P(d,36)|0;N[da+S>>2]=N[ea+16>>2];sa=j+148|0;N[da+sa>>2]=N[ea+20>>2];ea=S;da=d|1;S=da<<2;da=u+P(da,36)|0;N[ea+S>>2]=N[da+16>>2];N[S+sa>>2]=N[da+20>>2];d=d+2|0;c=c+2|0;if((ga|0)!=(c|0)){continue}break}}if(!(i&1)){break j}c=(j+140|0)+(d<<2)|0;d=u+P(d,36)|0;N[c>>2]=N[d+16>>2];N[c+8>>2]=N[d+20>>2]}c=J[e+4>>2];Na[J[J[c>>2]+20>>2]](c,C,j+140|0);g=g+1|0;if((g|0)<J[e+36>>2]){continue}break}}k:{if(!ja){break k}g=J[e+28>>2];if((g|0)<=0){break k}i=J[e+8>>2];b=Q(34028234663852886e22);d=0;while(1){c=J[i+(d<<2)>>2];l:{if(!J[c>>2]){break l}m:{n:{if(!(K[c+4|0]&4)){break n}f=N[c+72>>2];if(Q(f*f)>Q(.001218469929881394)){break n}f=N[c+64>>2];k=Q(f*f);f=N[c+68>>2];if(!(Q(k+Q(f*f))>Q(9999999747378752e-20))){break m}}J[c+144>>2]=0;b=Q(0);break l}f=Q(m+N[c+144>>2]);N[c+144>>2]=f;b=b<f?b:f}d=d+1|0;if((g|0)!=(d|0)){continue}break}if(!(b>=Q(.5))|h){break k}c=J[e+28>>2];if((c|0)<=0){break k}g=0;while(1){d=J[J[e+8>>2]+(g<<2)>>2];if(J[d>>2]){J[d+144>>2]=0;J[d+64>>2]=0;J[d+68>>2]=0;J[d+72>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;I[d+4>>1]=L[d+4>>1]&65533;c=J[e+28>>2]}g=g+1|0;if((c|0)>(g|0)){continue}break}}kd(l);La=j+160|0;N[a+103008>>2]=N[o+24>>2]+N[a+103008>>2];N[a+103012>>2]=N[o+28>>2]+N[a+103012>>2];N[a+103016>>2]=N[o+32>>2]+N[a+103016>>2];c=J[e+28>>2];if((c|0)<=0){break e}h=J[e+8>>2];d=0;if((c|0)!=1){j=c&-2;i=0;while(1){l=d<<2;g=J[l+h>>2];if(!J[g>>2]){I[g+4>>1]=L[g+4>>1]&65534}g=J[h+(l|4)>>2];if(!J[g>>2]){I[g+4>>1]=L[g+4>>1]&65534}d=d+2|0;i=i+2|0;if((j|0)!=(i|0)){continue}break}}if(!(c&1)){break e}c=J[h+(d<<2)>>2];if(J[c>>2]){break e}I[c+4>>1]=L[c+4>>1]&65534}t=J[t+96>>2];if(t){continue}break}}Eb($,F);d=J[a+102948>>2];if(d){while(1){if(!(!(H[d+4|0]&1)|!J[d>>2])){Pd(d)}d=J[d+96>>2];if(d){continue}break}}fc(a+102868|0);N[a+103020>>2]=0;fd(e);La=o+96|0;N[a+103004>>2]=0;b=N[D+4>>2]}if(!(!K[a+102992|0]|!(b>Q(0)))){g=La-272|0;La=g;l=gd(g+220|0,64,32,0,a+68|0,J[a+102940>>2]);o:{if(!K[a+102994|0]){break o}j=J[a+102948>>2];if(j){while(1){J[j+60>>2]=0;I[j+4>>1]=L[j+4>>1]&65534;j=J[j+96>>2];if(j){continue}break}}j=J[a+102928>>2];if(!j){break o}while(1){J[j+128>>2]=0;J[j+132>>2]=1065353216;J[j+4>>2]=J[j+4>>2]&-34;j=J[j+12>>2];if(j){continue}break}}ja=a+102868|0;ga=g+116|0;while(1){p:{h=0;A=Q(1);q:{j=J[a+102928>>2];r:{if(!j){break r}while(1){c=J[j+4>>2];s:{if(!(c&4)|J[j+128>>2]>8){break s}t:{if(c&32){f=N[j+132>>2];break t}i=J[j+48>>2];if(K[i+38|0]){break s}o=J[j+52>>2];if(K[o+38|0]){break s}d=J[o+8>>2];c=J[d>>2];e=J[i+8>>2];t=L[e+4>>1];F=J[e>>2];u=L[d+4>>1];if(!(t>>>1&(F|0)!=0|u>>>1&(c|0)!=0)){break s}if(!(u&8|(t&8|(F|0)!=2))){if((c|0)==2){break s}}b=N[d+60>>2];f=N[e+60>>2];u:{if(b>f){N[e+60>>2]=b;k=N[e+40>>2];f=Q(Q(b-f)/Q(Q(1)-f));N[e+40>>2]=k+Q(f*Q(N[e+48>>2]-k));k=N[e+36>>2];N[e+36>>2]=k+Q(f*Q(N[e+44>>2]-k));k=f;f=N[e+52>>2];N[e+52>>2]=Q(k*Q(N[e+56>>2]-f))+f;break u}if(b<f){N[d+60>>2]=f;k=N[d+40>>2];b=Q(Q(f-b)/Q(Q(1)-b));N[d+40>>2]=k+Q(b*Q(N[d+48>>2]-k));k=N[d+36>>2];N[d+36>>2]=k+Q(b*Q(N[d+44>>2]-k));k=b;b=N[d+52>>2];N[d+52>>2]=Q(k*Q(N[d+56>>2]-b))+b}b=f}t=J[j+60>>2];F=J[j+56>>2];J[g+140>>2]=0;J[g+132>>2]=0;J[g+136>>2]=0;J[g+112>>2]=0;J[g+104>>2]=0;J[g+108>>2]=0;c=g+88|0;gc(c,J[i+12>>2],F);gc(ga,J[o+12>>2],t);J[g+176>>2]=J[e+60>>2];i=J[e+56>>2];J[g+168>>2]=J[e+52>>2];J[g+172>>2]=i;i=J[e+48>>2];J[g+160>>2]=J[e+44>>2];J[g+164>>2]=i;i=J[e+40>>2];J[g+152>>2]=J[e+36>>2];J[g+156>>2]=i;i=J[e+32>>2];J[g+144>>2]=J[e+28>>2];J[g+148>>2]=i;J[g+212>>2]=J[d+60>>2];e=J[d+56>>2];J[g+204>>2]=J[d+52>>2];J[g+208>>2]=e;e=J[d+48>>2];J[g+196>>2]=J[d+44>>2];J[g+200>>2]=e;e=J[d+40>>2];J[g+188>>2]=J[d+36>>2];J[g+192>>2]=e;e=J[d+32>>2];J[g+180>>2]=J[d+28>>2];J[g+184>>2]=e;J[g+216>>2]=1065353216;i=0;G=Q(0);e=La-320|0;La=e;J[6219]=J[6219]+1;J[g+48>>2]=0;x=N[c+128>>2];N[g+52>>2]=x;J[e+312>>2]=J[c+88>>2];d=J[c+84>>2];J[e+304>>2]=J[c+80>>2];J[e+308>>2]=d;d=J[c+76>>2];J[e+296>>2]=J[c+72>>2];J[e+300>>2]=d;d=c- -64|0;o=J[d+4>>2];J[e+288>>2]=J[d>>2];J[e+292>>2]=o;d=J[c+60>>2];J[e+280>>2]=J[c+56>>2];J[e+284>>2]=d;J[e+272>>2]=J[c+124>>2];d=J[c+120>>2];J[e+264>>2]=J[c+116>>2];J[e+268>>2]=d;d=J[c+112>>2];J[e+256>>2]=J[c+108>>2];J[e+260>>2]=d;d=J[c+104>>2];J[e+248>>2]=J[c+100>>2];J[e+252>>2]=d;d=J[c+96>>2];J[e+240>>2]=J[c+92>>2];J[e+244>>2]=d;k=N[e+304>>2];f=Q(Q(V(Q(k/Q(6.2831854820251465))))*Q(6.2831854820251465));n=Q(k-f);N[e+304>>2]=n;m=N[e+264>>2];k=Q(Q(V(Q(m/Q(6.2831854820251465))))*Q(6.2831854820251465));p=Q(m-k);N[e+264>>2]=p;r=Q(N[e+268>>2]-k);N[e+268>>2]=r;q=Q(N[e+308>>2]-f);N[e+308>>2]=q;f=N[c+52>>2];k=N[c+24>>2];I[e+232>>1]=0;J[e+160>>2]=J[c+24>>2];d=J[c+20>>2];J[e+152>>2]=J[c+16>>2];J[e+156>>2]=d;d=J[c+12>>2];J[e+144>>2]=J[c+8>>2];J[e+148>>2]=d;d=J[c+4>>2];J[e+136>>2]=J[c>>2];J[e+140>>2]=d;d=J[c+40>>2];J[e+172>>2]=J[c+36>>2];J[e+176>>2]=d;d=J[c+48>>2];J[e+180>>2]=J[c+44>>2];J[e+184>>2]=d;J[e+188>>2]=J[c+52>>2];d=J[c+32>>2];J[e+164>>2]=J[c+28>>2];J[e+168>>2]=d;H[e+224|0]=0;f=Q(Q(k+f)+Q(-.014999999664723873));U=f<Q(.004999999888241291)?Q(.004999999888241291):f;ta=Q(U+Q(-.0012499999720603228));fa=Q(U+Q(.0012499999720603228));da=c+28|0;k=Q(0);v:{while(1){w:{m=Q(Q(k*Q(r-p))+p);f=_a(m);N[e+220>>2]=f;m=Za(m);N[e+216>>2]=m;q=Q(Q(k*Q(q-n))+n);n=_a(q);N[e+204>>2]=n;q=Za(q);N[e+200>>2]=q;p=N[e+252>>2];w=Q(p+Q(k*Q(N[e+260>>2]-p)));p=N[e+240>>2];r=N[e+244>>2];N[e+212>>2]=w-Q(Q(m*p)+Q(f*r));v=N[e+248>>2];N[e+208>>2]=Q(v+Q(k*Q(N[e+256>>2]-v)))-Q(Q(f*p)-Q(r*m));f=N[e+292>>2];w=Q(f+Q(k*Q(N[e+300>>2]-f)));f=N[e+280>>2];m=N[e+284>>2];N[e+196>>2]=w-Q(Q(q*f)+Q(n*m));p=N[e+288>>2];N[e+192>>2]=Q(p+Q(k*Q(N[e+296>>2]-p)))-Q(Q(n*f)-Q(m*q));Xd(e+112|0,e+228|0,e+136|0);f=N[e+128>>2];if(f<=Q(0)){d=2;break w}if(f<fa){d=3;G=k;break w}d=e+12|0;J[d+4>>2]=da;J[d>>2]=c;o=L[e+232>>1];J[d+40>>2]=J[e+312>>2];t=J[e+308>>2];J[d+32>>2]=J[e+304>>2];J[d+36>>2]=t;t=J[e+300>>2];J[d+24>>2]=J[e+296>>2];J[d+28>>2]=t;t=J[e+292>>2];J[d+16>>2]=J[e+288>>2];J[d+20>>2]=t;t=J[e+284>>2];J[d+8>>2]=J[e+280>>2];J[d+12>>2]=t;t=J[e+244>>2];J[d+44>>2]=J[e+240>>2];J[d+48>>2]=t;t=J[e+252>>2];J[d+52>>2]=J[e+248>>2];J[d+56>>2]=t;t=J[e+260>>2];J[d+60>>2]=J[e+256>>2];J[d+64>>2]=t;t=J[e+268>>2];J[d+68>>2]=J[e+264>>2];J[d+72>>2]=t;J[d+76>>2]=J[e+272>>2];f=N[d+48>>2];m=N[d+68>>2];q=Q(Q(k*Q(N[d+72>>2]-m))+m);m=_a(q);n=N[d+44>>2];p=Za(q);q=N[d+56>>2];M=Q(Q(q+Q(Q(N[d- -64>>2]-q)*k))-Q(Q(p*n)+Q(f*m)));q=N[d+52>>2];w=Q(Q(q+Q(Q(N[d+60>>2]-q)*k))-Q(Q(m*n)-Q(f*p)));f=N[d+12>>2];n=N[d+32>>2];r=Q(Q(k*Q(N[d+36>>2]-n))+n);q=_a(r);n=N[d+8>>2];r=Za(r);v=N[d+20>>2];R=Q(Q(v+Q(Q(N[d+28>>2]-v)*k))-Q(Q(r*n)+Q(f*q)));v=N[d+16>>2];O=Q(Q(v+Q(Q(N[d+24>>2]-v)*k))-Q(Q(q*n)-Q(f*r)));v=Q(-p);z=Q(-r);x:{if((o|0)==1){J[d+80>>2]=0;o=J[c+44>>2]+(K[e+237|0]<<3)|0;n=N[o>>2];f=Q(p*n);p=N[o+4>>2];s=Q(M+Q(f+Q(m*p)));f=r;o=J[c+16>>2]+(K[e+234|0]<<3)|0;r=N[o>>2];M=N[o+4>>2];f=Q(s-Q(R+Q(Q(f*r)+Q(q*M))));N[d+96>>2]=f;m=Q(Q(w+Q(Q(m*n)+Q(p*v)))-Q(O+Q(Q(q*r)+Q(M*z))));N[d+92>>2]=m;n=Q(Y(Q(Q(m*m)+Q(f*f))));if(n<Q(1.1920928955078125e-7)){break x}w=f;f=Q(Q(1)/n);N[d+96>>2]=w*f;N[d+92>>2]=m*f;break x}y:{if(K[e+234|0]==K[e+235|0]){J[d+80>>2]=2;o=J[c+44>>2];t=o+(K[e+238|0]<<3)|0;s=N[t>>2];o=o+(K[e+237|0]<<3)|0;T=N[o>>2];W=N[t+4>>2];X=N[o+4>>2];f=Q(W-X);N[d+92>>2]=f;y=Q(s-T);n=Q(-y);N[d+96>>2]=n;y=Q(Y(Q(Q(f*f)+Q(y*y))));if(!(y<Q(1.1920928955078125e-7))){y=Q(Q(1)/y);n=Q(y*n);N[d+96>>2]=n;f=Q(f*y);N[d+92>>2]=f}y=Q(Q(X+W)*Q(.5));N[d+88>>2]=y;s=Q(Q(T+s)*Q(.5));N[d+84>>2]=s;E=O;o=J[c+16>>2]+(K[e+234|0]<<3)|0;O=N[o>>2];T=N[o+4>>2];if(!(Q(Q(Q(Q(E+Q(Q(q*O)+Q(T*z)))-Q(w+Q(Q(m*s)+Q(y*v))))*Q(Q(m*f)+Q(n*v)))+Q(Q(Q(p*f)+Q(m*n))*Q(Q(R+Q(Q(r*O)+Q(q*T)))-Q(M+Q(Q(p*s)+Q(m*y))))))<Q(0))){break x}break y}J[d+80>>2]=1;o=J[c+16>>2];t=o+(K[e+235|0]<<3)|0;s=N[t>>2];o=o+(K[e+234|0]<<3)|0;T=N[o>>2];W=N[t+4>>2];X=N[o+4>>2];f=Q(W-X);N[d+92>>2]=f;y=Q(s-T);n=Q(-y);N[d+96>>2]=n;y=Q(Y(Q(Q(f*f)+Q(y*y))));if(!(y<Q(1.1920928955078125e-7))){y=Q(Q(1)/y);n=Q(y*n);N[d+96>>2]=n;f=Q(f*y);N[d+92>>2]=f}y=Q(Q(X+W)*Q(.5));N[d+88>>2]=y;s=Q(Q(T+s)*Q(.5));N[d+84>>2]=s;E=w;o=J[c+44>>2]+(K[e+237|0]<<3)|0;w=N[o>>2];T=N[o+4>>2];if(!(Q(Q(Q(Q(E+Q(Q(m*w)+Q(T*v)))-Q(O+Q(Q(q*s)+Q(y*z))))*Q(Q(q*f)+Q(n*z)))+Q(Q(Q(r*f)+Q(q*n))*Q(Q(M+Q(Q(p*w)+Q(m*T)))-Q(R+Q(Q(r*s)+Q(q*y))))))<Q(0))){break x}}N[d+96>>2]=-n;N[d+92>>2]=-f}$=0;t=4;z:{f=x;R=ed(d,e+8|0,e+4|0,f);A:{if(!(fa<R)){while(1){B:{if(!(R>ta)){T=N[e+60>>2];ka=N[e+80>>2];ua=Q(N[e+84>>2]-ka);n=Q(Q(k*ua)+ka);m=_a(n);y=N[e+56>>2];q=Za(n);la=N[e+68>>2];va=Q(N[e+76>>2]-la);M=Q(Q(la+Q(k*va))-Q(Q(q*y)+Q(T*m)));ma=N[e+64>>2];wa=Q(N[e+72>>2]-ma);w=Q(Q(ma+Q(k*wa))-Q(Q(m*y)-Q(T*q)));W=N[e+24>>2];na=N[e+44>>2];xa=Q(N[e+48>>2]-na);p=Q(Q(k*xa)+na);n=_a(p);X=N[e+20>>2];p=Za(p);oa=N[e+32>>2];ya=Q(N[e+40>>2]-oa);O=Q(Q(oa+Q(k*ya))-Q(Q(p*X)+Q(W*n)));pa=N[e+28>>2];za=Q(N[e+36>>2]-pa);s=Q(Q(pa+Q(k*za))-Q(Q(n*X)-Q(W*p)));r=Q(-q);v=Q(-p);z=Q(0);o=J[e+4>>2];F=J[e+8>>2];C:{D:{E:{F:{S=J[e+92>>2];switch(S|0){case 2:break D;case 1:break E;case 0:break F;default:break C}}E=w;d=J[J[e+16>>2]+16>>2]+(o<<3)|0;z=N[d>>2];w=N[d+4>>2];ba=Q(E+Q(Q(m*z)+Q(w*r)));E=s;d=J[J[e+12>>2]+16>>2]+(F<<3)|0;r=N[d>>2];s=N[d+4>>2];z=Q(Q(Q(ba-Q(E+Q(Q(n*r)+Q(s*v))))*N[e+104>>2])+Q(N[e+108>>2]*Q(Q(M+Q(Q(q*z)+Q(m*w)))-Q(O+Q(Q(p*r)+Q(n*s))))));break C}E=w;d=J[J[e+16>>2]+16>>2]+(o<<3)|0;z=N[d>>2];w=N[d+4>>2];ba=Q(E+Q(Q(m*z)+Q(w*r)));E=s;r=N[e+96>>2];s=N[e+100>>2];Z=N[e+104>>2];aa=N[e+108>>2];z=Q(Q(Q(ba-Q(E+Q(Q(n*r)+Q(s*v))))*Q(Q(n*Z)+Q(aa*v)))+Q(Q(Q(p*Z)+Q(n*aa))*Q(Q(M+Q(Q(q*z)+Q(m*w)))-Q(O+Q(Q(p*r)+Q(n*s))))));break C}E=s;d=J[J[e+12>>2]+16>>2]+(F<<3)|0;z=N[d>>2];s=N[d+4>>2];ba=Q(E+Q(Q(n*z)+Q(s*v)));E=w;v=N[e+96>>2];w=N[e+100>>2];Z=N[e+104>>2];aa=N[e+108>>2];z=Q(Q(Q(ba-Q(E+Q(Q(m*v)+Q(w*r))))*Q(Q(m*Z)+Q(aa*r)))+Q(Q(Q(q*Z)+Q(m*aa))*Q(Q(O+Q(Q(p*z)+Q(n*s)))-Q(M+Q(Q(q*v)+Q(m*w))))))}if(z<ta){t=1;break A}if(z<=fa){t=3;break A}d=0;_=J[6222];B=J[e+16>>2];C=J[e+12>>2];Z=N[e+100>>2];aa=N[e+96>>2];O=N[e+108>>2];s=N[e+104>>2];n=k;q=f;G:{while(1){_=_+1|0;J[6222]=_;m=d&1?Q(n+Q(Q(Q(U-z)*Q(q-n))/Q(R-z))):Q(Q(n+q)*Q(.5));r=Q(Q(m*ua)+ka);p=_a(r);M=Za(r);qa=Q(Q(la+Q(va*m))-Q(Q(M*y)+Q(T*p)));E=Q(Q(ma+Q(wa*m))-Q(Q(p*y)-Q(T*M)));r=Q(Q(m*xa)+na);v=_a(r);w=Za(r);ra=Q(Q(oa+Q(ya*m))-Q(Q(w*X)+Q(W*v)));ba=Q(Q(pa+Q(za*m))-Q(Q(v*X)-Q(W*w)));ca=Q(-M);ha=Q(-w);r=Q(0);H:{I:{switch(S|0){case 0:ia=E;u=J[B+16>>2]+(o<<3)|0;r=N[u>>2];E=N[u+4>>2];Aa=Q(ia+Q(Q(p*r)+Q(E*ca)));ia=ba;u=J[C+16>>2]+(F<<3)|0;ca=N[u>>2];ba=N[u+4>>2];r=Q(Q(Q(Aa-Q(ia+Q(Q(v*ca)+Q(ba*ha))))*s)+Q(O*Q(Q(qa+Q(Q(M*r)+Q(p*E)))-Q(ra+Q(Q(w*ca)+Q(v*ba))))));break H;case 1:ia=E;u=J[B+16>>2]+(o<<3)|0;r=N[u>>2];E=N[u+4>>2];r=Q(Q(Q(Q(ia+Q(Q(p*r)+Q(E*ca)))-Q(ba+Q(Q(v*aa)+Q(Z*ha))))*Q(Q(v*s)+Q(O*ha)))+Q(Q(Q(w*s)+Q(v*O))*Q(Q(qa+Q(Q(M*r)+Q(p*E)))-Q(ra+Q(Q(w*aa)+Q(v*Z))))));break H;case 2:break I;default:break H}}ia=ba;u=J[C+16>>2]+(F<<3)|0;r=N[u>>2];ba=N[u+4>>2];r=Q(Q(Q(Q(ia+Q(Q(v*r)+Q(ba*ha)))-Q(E+Q(Q(p*aa)+Q(Z*ca))))*Q(Q(p*s)+Q(O*ca)))+Q(Q(Q(M*s)+Q(p*O))*Q(Q(ra+Q(Q(w*r)+Q(v*ba)))-Q(qa+Q(Q(M*aa)+Q(p*Z))))))}d=d+1|0;p=Q(r-U);if((p>Q(0)?p:Q(-p))<Q(.0012499999720603228)){f=m;break G}u=r>U;q=u?q:m;n=u?m:n;z=u?r:z;R=u?R:r;if((d|0)!=50){continue}break}d=50}o=J[6223];J[6223]=(d|0)<(o|0)?o:d;$=$+1|0;if(($|0)!=8){break B}f=k}J[6220]=J[6220]+1;i=i+1|0;if((i|0)!=20){break z}N[g+52>>2]=f;J[g+48>>2]=1;i=20;break v}R=ed(e+12|0,e+8|0,e+4|0,f);if(!(fa<R)){continue}break}}k=x}N[g+52>>2]=k;J[g+48>>2]=t;J[6220]=J[6220]+1;i=i+1|0;break v}r=N[e+268>>2];p=N[e+264>>2];q=N[e+308>>2];n=N[e+304>>2];k=f;continue}break}N[g+52>>2]=G;J[g+48>>2]=d}c=J[6221];J[6221]=(c|0)>(i|0)?c:i;N[6217]=N[6217]+Q(0);f=N[6218];N[6218]=f>Q(0)?f:Q(0);La=e+320|0;f=Q(1);if(J[g+48>>2]==3){b=Q(Q(Q(Q(1)-b)*N[g+52>>2])+b);f=b<Q(1)?b:Q(1)}N[j+132>>2]=f;J[j+4>>2]=J[j+4>>2]|32}c=f<A;h=c?j:h;A=c?f:A}j=J[j+12>>2];if(j){continue}break}if(!h){break r}if(!(A>Q(.9999988079071045))){break q}}H[a+102994|0]=1;break p}e=J[J[h+52>>2]+8>>2];i=J[J[h+48>>2]+8>>2];d=i;J[g+120>>2]=J[d+60>>2];c=J[d+56>>2];J[g+112>>2]=J[d+52>>2];J[g+116>>2]=c;c=J[d+48>>2];J[g+104>>2]=J[d+44>>2];J[g+108>>2]=c;c=J[d+40>>2];J[g+96>>2]=J[d+36>>2];J[g+100>>2]=c;c=J[d+32>>2];J[g+88>>2]=J[d+28>>2];J[g+92>>2]=c;J[g+80>>2]=J[e+60>>2];c=J[e+56>>2];J[g+72>>2]=J[e+52>>2];J[g+76>>2]=c;o=J[e+48>>2];j=g- -64|0;c=j;J[c>>2]=J[e+44>>2];J[c+4>>2]=o;c=J[e+40>>2];J[g+56>>2]=J[e+36>>2];J[g+60>>2]=c;c=J[e+32>>2];J[g+48>>2]=J[e+28>>2];J[g+52>>2]=c;f=N[d+36>>2];b=N[d+60>>2];b=Q(Q(A-b)/Q(Q(1)-b));N[d+36>>2]=f+Q(b*Q(N[d+44>>2]-f));f=N[d+40>>2];N[d+40>>2]=f+Q(b*Q(N[d+48>>2]-f));N[d+60>>2]=A;f=b;b=N[d+52>>2];b=Q(Q(f*Q(N[d+56>>2]-b))+b);N[d+56>>2]=b;N[d+52>>2]=b;f=_a(b);N[d+24>>2]=f;b=Za(b);N[d+20>>2]=b;w=N[d+40>>2];o=J[d+40>>2];x=N[d+36>>2];J[d+44>>2]=J[d+36>>2];J[d+48>>2]=o;k=N[d+28>>2];m=N[d+32>>2];N[d+16>>2]=w-Q(Q(b*k)+Q(f*m));N[d+12>>2]=x-Q(Q(f*k)-Q(m*b));f=N[e+40>>2];b=N[e+60>>2];b=Q(Q(A-b)/Q(Q(1)-b));N[e+40>>2]=f+Q(b*Q(N[e+48>>2]-f));f=N[e+36>>2];N[e+36>>2]=f+Q(b*Q(N[e+44>>2]-f));N[e+60>>2]=A;f=b;b=N[e+52>>2];b=Q(Q(f*Q(N[e+56>>2]-b))+b);N[e+56>>2]=b;N[e+52>>2]=b;f=_a(b);N[e+24>>2]=f;b=Za(b);N[e+20>>2]=b;s=N[e+40>>2];d=J[e+40>>2];k=N[e+36>>2];J[e+44>>2]=J[e+36>>2];J[e+48>>2]=d;w=k;k=N[e+28>>2];m=N[e+32>>2];N[e+12>>2]=w-Q(Q(f*k)-Q(b*m));N[e+16>>2]=s-Q(Q(b*k)+Q(f*m));zc(h,J[a+102940>>2]);J[h+128>>2]=J[h+128>>2]+1;d=J[h+4>>2];J:{if((d&6)!=6){J[h+4>>2]=d&-37;J[i+60>>2]=J[g+120>>2];c=J[g+116>>2];J[i+52>>2]=J[g+112>>2];J[i+56>>2]=c;c=J[g+108>>2];J[i+44>>2]=J[g+104>>2];J[i+48>>2]=c;c=J[g+100>>2];J[i+36>>2]=J[g+96>>2];J[i+40>>2]=c;c=J[g+92>>2];J[i+28>>2]=J[g+88>>2];J[i+32>>2]=c;J[e+60>>2]=J[g+80>>2];c=J[g+76>>2];J[e+52>>2]=J[g+72>>2];J[e+56>>2]=c;c=J[j+4>>2];J[e+44>>2]=J[j>>2];J[e+48>>2]=c;c=J[g+60>>2];J[e+36>>2]=J[g+56>>2];J[e+40>>2]=c;c=J[g+52>>2];J[e+28>>2]=J[g+48>>2];J[e+32>>2]=c;f=N[i+56>>2];b=_a(f);N[i+24>>2]=b;f=Za(f);N[i+20>>2]=f;k=N[i+28>>2];m=N[i+32>>2];N[i+16>>2]=N[i+48>>2]-Q(Q(f*k)+Q(b*m));N[i+12>>2]=N[i+44>>2]-Q(Q(b*k)-Q(m*f));f=N[e+56>>2];b=Za(f);N[e+20>>2]=b;f=_a(f);N[e+24>>2]=f;k=N[e+28>>2];m=N[e+32>>2];N[e+16>>2]=N[e+48>>2]-Q(Q(b*k)+Q(f*m));N[e+12>>2]=N[e+44>>2]-Q(Q(f*k)-Q(m*b));c=9;break J}if(J[i>>2]){J[i+144>>2]=0;I[i+4>>1]=L[i+4>>1]|2}if(J[e>>2]){J[e+144>>2]=0;I[e+4>>1]=L[e+4>>1]|2}j=0;J[l+32>>2]=0;J[i+8>>2]=0;J[J[l+8>>2]>>2]=i;c=1;J[e+8>>2]=1;J[J[l+8>>2]+4>>2]=e;J[l+28>>2]=2;J[l+36>>2]=1;J[J[l+12>>2]>>2]=h;I[i+4>>1]=L[i+4>>1]|1;I[e+4>>1]=L[e+4>>1]|1;J[h+4>>2]=d&-34|1;J[g+44>>2]=e;J[g+40>>2]=i;while(1){t=J[(g+40|0)+(j<<2)>>2];K:{if(J[t>>2]!=2){break K}j=J[t+112>>2];if(!j){break K}while(1){if(J[l+28>>2]==J[l+40>>2]|J[l+36>>2]==J[l+44>>2]){break K}o=J[j+4>>2];L:{if(H[o+4|0]&1){break L}h=J[j>>2];if(!(K[t+4|0]&8|J[h>>2]!=2|K[h+4|0]&8)|(K[J[o+48>>2]+38|0]|K[J[o+52>>2]+38|0])){break L}J[g+32>>2]=J[h+60>>2];d=J[h+56>>2];J[g+24>>2]=J[h+52>>2];J[g+28>>2]=d;d=J[h+48>>2];J[g+16>>2]=J[h+44>>2];J[g+20>>2]=d;d=J[h+40>>2];J[g+8>>2]=J[h+36>>2];J[g+12>>2]=d;d=J[h+32>>2];J[g>>2]=J[h+28>>2];J[g+4>>2]=d;if(!(H[h+4|0]&1)){f=N[h+40>>2];b=N[h+60>>2];b=Q(Q(A-b)/Q(Q(1)-b));N[h+40>>2]=f+Q(b*Q(N[h+48>>2]-f));f=N[h+36>>2];N[h+36>>2]=f+Q(b*Q(N[h+44>>2]-f));N[h+60>>2]=A;f=b;b=N[h+52>>2];b=Q(Q(f*Q(N[h+56>>2]-b))+b);N[h+56>>2]=b;N[h+52>>2]=b;f=_a(b);N[h+24>>2]=f;b=Za(b);N[h+20>>2]=b;s=N[h+40>>2];F=J[h+40>>2];k=N[h+36>>2];J[h+44>>2]=J[h+36>>2];J[h+48>>2]=F;w=k;k=N[h+28>>2];m=N[h+32>>2];N[h+12>>2]=w-Q(Q(f*k)-Q(b*m));N[h+16>>2]=s-Q(Q(b*k)+Q(f*m))}zc(o,J[a+102940>>2]);d=J[o+4>>2];if(!(d&4)){d=J[g+4>>2];J[h+28>>2]=J[g>>2];J[h+32>>2]=d;J[h+60>>2]=J[g+32>>2];d=J[g+28>>2];J[h+52>>2]=J[g+24>>2];J[h+56>>2]=d;d=J[g+20>>2];J[h+44>>2]=J[g+16>>2];J[h+48>>2]=d;d=J[g+12>>2];J[h+36>>2]=J[g+8>>2];J[h+40>>2]=d;f=N[h+56>>2];b=_a(f);N[h+24>>2]=b;f=Za(f);N[h+20>>2]=f;k=N[h+28>>2];m=N[h+32>>2];N[h+16>>2]=N[h+48>>2]-Q(Q(f*k)+Q(b*m));N[h+12>>2]=N[h+44>>2]-Q(Q(b*k)-Q(m*f));break L}if(!(d&2)){d=J[g+4>>2];J[h+28>>2]=J[g>>2];J[h+32>>2]=d;J[h+60>>2]=J[g+32>>2];d=J[g+28>>2];J[h+52>>2]=J[g+24>>2];J[h+56>>2]=d;d=J[g+20>>2];J[h+44>>2]=J[g+16>>2];J[h+48>>2]=d;d=J[g+12>>2];J[h+36>>2]=J[g+8>>2];J[h+40>>2]=d;f=N[h+56>>2];b=_a(f);N[h+24>>2]=b;f=Za(f);N[h+20>>2]=f;k=N[h+28>>2];m=N[h+32>>2];N[h+16>>2]=N[h+48>>2]-Q(Q(f*k)+Q(b*m));N[h+12>>2]=N[h+44>>2]-Q(Q(b*k)-Q(m*f));break L}J[o+4>>2]=d|1;d=J[l+36>>2];J[l+36>>2]=d+1;J[J[l+12>>2]+(d<<2)>>2]=o;d=L[h+4>>1];if(d&1){break L}I[h+4>>1]=d|1;if(J[h>>2]){J[h+144>>2]=0;I[h+4>>1]=d|3}d=J[l+28>>2];J[h+8>>2]=d;J[J[l+8>>2]+(d<<2)>>2]=h;J[l+28>>2]=d+1}j=J[j+12>>2];if(j){continue}break}}j=1;d=c;c=0;if(d){continue}break}b=N[D+4>>2];J[g+16>>2]=20;J[g+8>>2]=1065353216;b=Q(b*Q(Q(1)-A));N[g>>2]=b;N[g+4>>2]=Q(1)/b;c=J[D+16>>2];h=0;H[g+20|0]=0;J[g+12>>2]=c;F=J[i+8>>2];u=J[e+8>>2];j=0;e=La-128|0;La=e;M:{if(J[l+28>>2]<=0){d=J[l+24>>2];break M}while(1){c=J[J[l+8>>2]+(j<<2)>>2];o=J[c+48>>2];i=P(j,12);d=i+J[l+20>>2]|0;J[d>>2]=J[c+44>>2];J[d+4>>2]=o;N[(i+J[l+20>>2]|0)+8>>2]=N[c+56>>2];o=J[c+68>>2];d=i+J[l+24>>2]|0;J[d>>2]=J[c+64>>2];J[d+4>>2]=o;d=J[l+24>>2];N[(i+d|0)+8>>2]=N[c+72>>2];j=j+1|0;if((j|0)<J[l+28>>2]){continue}break}}J[e+88>>2]=J[l+12>>2];J[e+92>>2]=J[l+36>>2];J[e+104>>2]=J[l>>2];c=J[g+12>>2];J[e+72>>2]=J[g+8>>2];J[e+76>>2]=c;c=J[g+20>>2];J[e+80>>2]=J[g+16>>2];J[e+84>>2]=c;c=J[g+4>>2];J[e+64>>2]=J[g>>2];J[e+68>>2]=c;c=J[l+20>>2];J[e+100>>2]=d;J[e+96>>2]=c;o=ld(e+12|0,e- -64|0);j=0;N:{if(J[g+16>>2]<=0){break N}while(1){f=Q(0);t=0;d=La+-64|0;La=d;if(J[o+48>>2]>0){while(1){i=J[o+36>>2]+P(t,88)|0;$=J[i+36>>2];_=J[i+32>>2];O:{if((_|0)!=(F|0)){A=Q(0);m=Q(0);if((u|0)!=(_|0)){break O}}A=N[i+64>>2];m=N[i+40>>2]}B=J[i+84>>2];P:{if((F|0)!=($|0)){n=Q(0);x=Q(0);if((u|0)!=($|0)){break P}}n=N[i+68>>2];x=N[i+44>>2]}c=J[o+24>>2];$=P($,12);C=c+$|0;b=N[C+8>>2];k=N[C+4>>2];r=N[C>>2];_=P(_,12);C=_+c|0;q=N[C+8>>2];p=N[C+4>>2];G=N[C>>2];if((B|0)>0){M=N[i+56>>2];w=N[i+48>>2];R=N[i+60>>2];O=N[i+52>>2];fa=Q(m+x);T=Q(-A);c=0;while(1){v=_a(q);N[d+60>>2]=v;z=Za(q);N[d+56>>2]=z;s=_a(b);N[d+44>>2]=s;U=Za(b);N[d+40>>2]=U;N[d+52>>2]=p-Q(Q(z*w)+Q(O*v));N[d+48>>2]=G-Q(Q(v*w)-Q(O*z));N[d+36>>2]=k-Q(Q(U*M)+Q(R*s));N[d+32>>2]=r-Q(Q(s*M)-Q(R*U));hd(d+8|0,i,d+48|0,d+32|0,c);v=Q(0);z=N[d+24>>2];C=z>f;s=N[d+20>>2];y=Q(s-k);W=Q(-y);X=Q(s-p);Z=Q(-X);aa=N[d+16>>2];ca=Q(aa-r);s=N[d+12>>2];U=N[d+8>>2];y=Q(Q(ca*s)-Q(U*y));E=Q(Q(n*y)*y);y=Q(aa-G);X=Q(Q(y*s)-Q(U*X));X=Q(E+Q(Q(Q(A*X)*X)+fa));if(X>Q(0)){v=Q(Q(z+Q(.004999999888241291))*Q(.75));v=v<Q(0)?v:Q(0);v=Q(Q(-(v<Q(-.20000000298023224)?Q(-.20000000298023224):v))/X)}f=C?f:z;z=Q(s*v);v=Q(U*v);b=Q(Q(n*Q(Q(ca*z)+Q(v*W)))+b);q=Q(Q(T*Q(Q(y*z)+Q(v*Z)))+q);k=Q(k+Q(x*z));r=Q(r+Q(x*v));p=Q(p-Q(m*z));G=Q(G-Q(m*v));c=c+1|0;if((B|0)!=(c|0)){continue}break}c=J[o+24>>2]}c=c+_|0;N[c+4>>2]=p;N[c>>2]=G;c=J[o+24>>2];N[(c+_|0)+8>>2]=q;c=c+$|0;N[c+4>>2]=k;N[c>>2]=r;N[($+J[o+24>>2]|0)+8>>2]=b;t=t+1|0;if((t|0)<J[o+48>>2]){continue}break}}La=d- -64|0;if(f>=Q(-.007499999832361937)){break N}j=j+1|0;if((j|0)<J[g+16>>2]){continue}break}}j=P(F,12);i=j+J[l+20>>2]|0;t=J[i+4>>2];c=F<<2;d=J[c+J[l+8>>2]>>2];J[d+36>>2]=J[i>>2];J[d+40>>2]=t;i=c;c=J[l+8>>2];d=J[l+20>>2];N[J[i+c>>2]+52>>2]=N[(d+j|0)+8>>2];i=d;d=P(u,12);i=i+d|0;t=J[i+4>>2];j=c;c=u<<2;j=J[j+c>>2];J[j+36>>2]=J[i>>2];J[j+40>>2]=t;N[J[c+J[l+8>>2]>>2]+52>>2]=N[(d+J[l+20>>2]|0)+8>>2];jd(o);j=0;if(J[g+12>>2]>0){while(1){id(o);j=j+1|0;if((j|0)<J[g+12>>2]){continue}break}}i=0;if(J[l+28>>2]>0){b=N[g>>2];while(1){c=P(i,12);j=c+J[l+24>>2]|0;n=N[j>>2];f=Q(b*n);k=Q(f*f);p=N[j+4>>2];f=Q(b*p);f=Q(k+Q(f*f));if(f>Q(4)){f=Q(Q(2)/Q(Y(f)));p=Q(p*f);n=Q(n*f)}d=c+J[l+20>>2]|0;x=N[d+8>>2];k=N[d+4>>2];m=N[d>>2];q=N[j+8>>2];f=Q(b*q);if(Q(f*f)>Q(2.4674012660980225)){q=Q(q*Q(Q(1.5707963705062866)/(f>Q(0)?f:Q(-f))))}k=Q(k+Q(b*p));N[d+4>>2]=k;m=Q(m+Q(b*n));N[d>>2]=m;f=Q(Q(b*q)+x);N[(c+J[l+20>>2]|0)+8>>2]=f;d=c+J[l+24>>2]|0;N[d+4>>2]=p;N[d>>2]=n;N[(c+J[l+24>>2]|0)+8>>2]=q;c=J[J[l+8>>2]+(i<<2)>>2];N[c+72>>2]=q;N[c+64>>2]=n;N[c+68>>2]=p;N[c+56>>2]=f;N[c+48>>2]=k;N[c+44>>2]=m;x=_a(f);N[c+24>>2]=x;f=Za(f);N[c+20>>2]=f;w=k;k=N[c+28>>2];n=N[c+32>>2];N[c+16>>2]=w-Q(Q(f*k)+Q(x*n));N[c+12>>2]=m-Q(Q(x*k)-Q(n*f));i=i+1|0;if((i|0)<J[l+28>>2]){continue}break}}if(!(!J[l+4>>2]|J[l+36>>2]<=0)){F=J[o+40>>2];c=0;while(1){u=J[J[l+12>>2]+(c<<2)>>2];t=F+P(c,156)|0;d=J[t+148>>2];J[e+124>>2]=d;Q:{if((d|0)<=0){break Q}j=0;if((d|0)!=1){$=d&-2;i=0;while(1){_=j<<2;B=e+108|0;C=t+P(j,36)|0;N[_+B>>2]=N[C+16>>2];S=_;_=e+116|0;N[S+_>>2]=N[C+20>>2];S=B;B=j|1;C=B<<2;B=t+P(B,36)|0;N[S+C>>2]=N[B+16>>2];N[C+_>>2]=N[B+20>>2];j=j+2|0;i=i+2|0;if(($|0)!=(i|0)){continue}break}}if(!(d&1)){break Q}d=(e+108|0)+(j<<2)|0;j=t+P(j,36)|0;N[d>>2]=N[j+16>>2];N[d+8>>2]=N[j+20>>2]}d=J[l+4>>2];Na[J[J[d>>2]+20>>2]](d,u,e+108|0);c=c+1|0;if((c|0)<J[l+36>>2]){continue}break}}kd(o);La=e+128|0;if(J[l+28>>2]>0){while(1){c=J[J[l+8>>2]+(h<<2)>>2];I[c+4>>1]=L[c+4>>1]&65534;R:{if(J[c>>2]!=2){break R}Pd(c);j=J[c+112>>2];if(!j){break R}while(1){c=J[j+4>>2];J[c+4>>2]=J[c+4>>2]&-34;j=J[j+12>>2];if(j){continue}break}}h=h+1|0;if((h|0)<J[l+28>>2]){continue}break}}fc(ja);c=0;if(!K[a+102993|0]){break J}H[a+102994|0]=0;c=8}if((c|0)!=8){continue}}break}fd(l);La=g+272|0;N[a+103024>>2]=0;b=N[D+4>>2]}if(b>Q(0)){N[a+102984>>2]=N[D+8>>2]}S:{if(!K[a+102990|0]){break S}d=J[a+102948>>2];if(!d){break S}while(1){J[d+84>>2]=0;J[d+76>>2]=0;J[d+80>>2]=0;d=J[d+96>>2];if(d){continue}break}}H[a+102989|0]=0;N[a+102996>>2]=0;La=D+32|0}function fb(a){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;l=La-16|0;La=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{l:{m:{n:{if(a>>>0<=244){g=J[6539];h=a>>>0<11?16:a+11&-8;c=h>>>3|0;b=g>>>c|0;if(b&3){c=c+((b^-1)&1)|0;a=c<<3;b=a+26196|0;d=J[a+26204>>2];a=J[d+8>>2];o:{if((b|0)==(a|0)){m=26156,n=nl(c)&g,J[m>>2]=n;break o}J[a+12>>2]=b;J[b+8>>2]=a}a=d+8|0;b=c<<3;J[d+4>>2]=b|3;b=b+d|0;J[b+4>>2]=J[b+4>>2]|1;break a}k=J[6541];if(k>>>0>=h>>>0){break n}if(b){a=2<<c;a=(0-a|a)&b<<c;d=kl(0-a&a);a=d<<3;b=a+26196|0;e=J[a+26204>>2];a=J[e+8>>2];p:{if((b|0)==(a|0)){g=nl(d)&g;J[6539]=g;break p}J[a+12>>2]=b;J[b+8>>2]=a}J[e+4>>2]=h|3;c=e+h|0;a=d<<3;d=a-h|0;J[c+4>>2]=d|1;J[a+e>>2]=d;if(k){b=(k&-8)+26196|0;f=J[6544];a=1<<(k>>>3);q:{if(!(a&g)){J[6539]=a|g;a=b;break q}a=J[b+8>>2]}J[b+8>>2]=f;J[a+12>>2]=f;J[f+12>>2]=b;J[f+8>>2]=a}a=e+8|0;J[6544]=c;J[6541]=d;break a}j=J[6540];if(!j){break n}c=J[(kl(0-j&j)<<2)+26460>>2];f=(J[c+4>>2]&-8)-h|0;b=c;while(1){r:{a=J[b+16>>2];if(!a){a=J[b+20>>2];if(!a){break r}}b=(J[a+4>>2]&-8)-h|0;d=b>>>0<f>>>0;f=d?b:f;c=d?a:c;b=a;continue}break}i=J[c+24>>2];d=J[c+12>>2];if((d|0)!=(c|0)){a=J[c+8>>2];J[a+12>>2]=d;J[d+8>>2]=a;break b}b=c+20|0;a=J[b>>2];if(!a){a=J[c+16>>2];if(!a){break m}b=c+16|0}while(1){e=b;d=a;b=a+20|0;a=J[b>>2];if(a){continue}b=d+16|0;a=J[d+16>>2];if(a){continue}break}J[e>>2]=0;break b}h=-1;if(a>>>0>4294967231){break n}a=a+11|0;h=a&-8;j=J[6540];if(!j){break n}f=0-h|0;g=0;s:{if(h>>>0<256){break s}g=31;if(h>>>0>16777215){break s}a=S(a>>>8|0);g=((h>>>38-a&1)-(a<<1)|0)+62|0}b=J[(g<<2)+26460>>2];t:{u:{v:{if(!b){a=0;break v}a=0;c=h<<((g|0)!=31?25-(g>>>1|0)|0:0);while(1){w:{e=(J[b+4>>2]&-8)-h|0;if(e>>>0>=f>>>0){break w}d=b;f=e;if(e){break w}f=0;a=b;break u}e=J[b+20>>2];b=J[((c>>>29&4)+b|0)+16>>2];a=e?(e|0)==(b|0)?a:e:a;c=c<<1;if(b){continue}break}}if(!(a|d)){d=0;a=2<<g;a=(0-a|a)&j;if(!a){break n}a=J[(kl(a&0-a)<<2)+26460>>2]}if(!a){break t}}while(1){b=(J[a+4>>2]&-8)-h|0;c=b>>>0<f>>>0;f=c?b:f;d=c?a:d;b=J[a+16>>2];if(b){a=b}else{a=J[a+20>>2]}if(a){continue}break}}if(!d|J[6541]-h>>>0<=f>>>0){break n}g=J[d+24>>2];c=J[d+12>>2];if((d|0)!=(c|0)){a=J[d+8>>2];J[a+12>>2]=c;J[c+8>>2]=a;break c}b=d+20|0;a=J[b>>2];if(!a){a=J[d+16>>2];if(!a){break l}b=d+16|0}while(1){e=b;c=a;b=a+20|0;a=J[b>>2];if(a){continue}b=c+16|0;a=J[c+16>>2];if(a){continue}break}J[e>>2]=0;break c}a=J[6541];if(a>>>0>=h>>>0){d=J[6544];b=a-h|0;x:{if(b>>>0>=16){c=d+h|0;J[c+4>>2]=b|1;J[a+d>>2]=b;J[d+4>>2]=h|3;break x}J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;c=0;b=0}J[6541]=b;J[6544]=c;a=d+8|0;break a}i=J[6542];if(i>>>0>h>>>0){b=i-h|0;J[6542]=b;c=J[6545];a=c+h|0;J[6545]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}a=0;j=h+47|0;if(J[6657]){c=J[6659]}else{J[6660]=-1;J[6661]=-1;J[6658]=4096;J[6659]=4096;J[6657]=l+12&-16^1431655768;J[6662]=0;J[6650]=0;c=4096}e=j+c|0;f=0-c|0;b=e&f;if(b>>>0<=h>>>0){break a}d=J[6649];if(d){c=J[6647];g=c+b|0;if(d>>>0<g>>>0|c>>>0>=g>>>0){break a}}y:{if(!(K[26600]&4)){z:{A:{B:{C:{d=J[6545];if(d){a=26604;while(1){c=J[a>>2];if(c>>>0<=d>>>0&d>>>0<c+J[a+4>>2]>>>0){break C}a=J[a+8>>2];if(a){continue}break}}c=Jb(0);if((c|0)==-1){break z}g=b;d=J[6658];a=d-1|0;if(a&c){g=(b-c|0)+(a+c&0-d)|0}if(g>>>0<=h>>>0){break z}d=J[6649];if(d){a=J[6647];f=a+g|0;if(d>>>0<f>>>0|a>>>0>=f>>>0){break z}}a=Jb(g);if((c|0)!=(a|0)){break B}break y}g=f&e-i;c=Jb(g);if((c|0)==(J[a>>2]+J[a+4>>2]|0)){break A}a=c}if((a|0)==-1){break z}if(h+48>>>0<=g>>>0){c=a;break y}c=J[6659];c=c+(j-g|0)&0-c;if((Jb(c)|0)==-1){break z}g=c+g|0;c=a;break y}if((c|0)!=-1){break y}}J[6650]=J[6650]|4}c=Jb(b);a=Jb(0);if((c|0)==-1|(a|0)==-1|a>>>0<=c>>>0){break i}g=a-c|0;if(g>>>0<=h+40>>>0){break i}}a=J[6647]+g|0;J[6647]=a;if(a>>>0>M[6648]){J[6648]=a}D:{e=J[6545];if(e){a=26604;while(1){d=J[a>>2];b=J[a+4>>2];if((d+b|0)==(c|0)){break D}a=J[a+8>>2];if(a){continue}break}break k}a=J[6543];if(!(a>>>0<=c>>>0?a:0)){J[6543]=c}a=0;J[6652]=g;J[6651]=c;J[6547]=-1;J[6548]=J[6657];J[6654]=0;while(1){d=a<<3;b=d+26196|0;J[d+26204>>2]=b;J[d+26208>>2]=b;a=a+1|0;if((a|0)!=32){continue}break}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[6542]=b;a=a+c|0;J[6545]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[6546]=J[6661];break j}if(J[a+12>>2]&8|(c>>>0<=e>>>0|d>>>0>e>>>0)){break k}J[a+4>>2]=b+g;a=e+8&7?-8-e&7:0;c=a+e|0;J[6545]=c;b=J[6542]+g|0;a=b-a|0;J[6542]=a;J[c+4>>2]=a|1;J[(b+e|0)+4>>2]=40;J[6546]=J[6661];break j}d=0;break b}c=0;break c}if(M[6543]>c>>>0){J[6543]=c}b=c+g|0;a=26604;E:{F:{G:{while(1){if((b|0)!=J[a>>2]){a=J[a+8>>2];if(a){continue}break G}break}if(!(K[a+12|0]&8)){break F}}a=26604;while(1){b=J[a>>2];if(b>>>0<=e>>>0){f=b+J[a+4>>2]|0;if(f>>>0>e>>>0){break E}}a=J[a+8>>2];continue}}J[a>>2]=c;J[a+4>>2]=J[a+4>>2]+g;j=(c+8&7?-8-c&7:0)+c|0;J[j+4>>2]=h|3;g=b+(b+8&7?-8-b&7:0)|0;i=h+j|0;a=g-i|0;if((e|0)==(g|0)){J[6545]=i;a=J[6542]+a|0;J[6542]=a;J[i+4>>2]=a|1;break d}if(J[6544]==(g|0)){J[6544]=i;a=J[6541]+a|0;J[6541]=a;J[i+4>>2]=a|1;J[a+i>>2]=a;break d}f=J[g+4>>2];if((f&3)!=1){break e}e=f&-8;if(f>>>0<=255){c=J[g+12>>2];b=J[g+8>>2];if((c|0)==(b|0)){m=26156,n=J[6539]&nl(f>>>3|0),J[m>>2]=n;break f}J[b+12>>2]=c;J[c+8>>2]=b;break f}h=J[g+24>>2];c=J[g+12>>2];if((g|0)!=(c|0)){b=J[g+8>>2];J[b+12>>2]=c;J[c+8>>2]=b;break g}b=g+20|0;f=J[b>>2];if(!f){f=J[g+16>>2];if(!f){break h}b=g+16|0}while(1){d=b;c=f;b=c+20|0;f=J[b>>2];if(f){continue}b=c+16|0;f=J[c+16>>2];if(f){continue}break}J[d>>2]=0;break g}d=g-40|0;a=c+8&7?-8-c&7:0;b=d-a|0;J[6542]=b;a=a+c|0;J[6545]=a;J[a+4>>2]=b|1;J[(c+d|0)+4>>2]=40;J[6546]=J[6661];a=(f+(f-39&7?39-f&7:0)|0)-47|0;d=a>>>0<e+16>>>0?e:a;J[d+4>>2]=27;a=J[6654];J[d+16>>2]=J[6653];J[d+20>>2]=a;a=J[6652];J[d+8>>2]=J[6651];J[d+12>>2]=a;J[6653]=d+8;J[6652]=g;J[6651]=c;J[6654]=0;a=d+24|0;while(1){J[a+4>>2]=7;b=a+8|0;a=a+4|0;if(b>>>0<f>>>0){continue}break}if((d|0)==(e|0)){break j}J[d+4>>2]=J[d+4>>2]&-2;f=d-e|0;J[e+4>>2]=f|1;J[d>>2]=f;if(f>>>0<=255){b=(f&-8)+26196|0;c=J[6539];a=1<<(f>>>3);H:{if(!(c&a)){J[6539]=a|c;a=b;break H}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break j}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+26460|0;I:{d=J[6540];c=1<<a;J:{if(!(d&c)){J[6540]=c|d;J[b>>2]=e;break J}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);d=J[b>>2];while(1){b=d;if((f|0)==(J[b+4>>2]&-8)){break I}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;d=J[c+16>>2];if(d){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break j}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=J[6542];if(a>>>0<=h>>>0){break i}b=a-h|0;J[6542]=b;c=J[6545];a=c+h|0;J[6545]=a;J[a+4>>2]=b|1;J[c+4>>2]=h|3;a=c+8|0;break a}J[6228]=48;a=0;break a}c=0}if(!h){break f}d=J[g+28>>2];b=(d<<2)+26460|0;K:{if(J[b>>2]==(g|0)){J[b>>2]=c;if(c){break K}m=26160,n=J[6540]&nl(d),J[m>>2]=n;break f}J[h+(J[h+16>>2]==(g|0)?16:20)>>2]=c;if(!c){break f}}J[c+24>>2]=h;b=J[g+16>>2];if(b){J[c+16>>2]=b;J[b+24>>2]=c}b=J[g+20>>2];if(!b){break f}J[c+20>>2]=b;J[b+24>>2]=c}a=a+e|0;g=e+g|0;f=J[g+4>>2]}J[g+4>>2]=f&-2;J[i+4>>2]=a|1;J[a+i>>2]=a;if(a>>>0<=255){b=(a&-8)+26196|0;c=J[6539];a=1<<(a>>>3);L:{if(!(c&a)){J[6539]=a|c;a=b;break L}a=J[b+8>>2]}J[b+8>>2]=i;J[a+12>>2]=i;J[i+12>>2]=b;J[i+8>>2]=a;break d}f=31;if(a>>>0<=16777215){b=S(a>>>8|0);f=((a>>>38-b&1)-(b<<1)|0)+62|0}J[i+28>>2]=f;J[i+16>>2]=0;J[i+20>>2]=0;b=(f<<2)+26460|0;M:{d=J[6540];c=1<<f;N:{if(!(d&c)){J[6540]=c|d;J[b>>2]=i;break N}f=a<<((f|0)!=31?25-(f>>>1|0)|0:0);c=J[b>>2];while(1){b=c;if((J[c+4>>2]&-8)==(a|0)){break M}c=f>>>29|0;f=f<<1;d=(c&4)+b|0;c=J[d+16>>2];if(c){continue}break}J[d+16>>2]=i}J[i+24>>2]=b;J[i+12>>2]=i;J[i+8>>2]=i;break d}a=J[b+8>>2];J[a+12>>2]=i;J[b+8>>2]=i;J[i+24>>2]=0;J[i+12>>2]=b;J[i+8>>2]=a}a=j+8|0;break a}O:{if(!g){break O}b=J[d+28>>2];a=(b<<2)+26460|0;P:{if(J[a>>2]==(d|0)){J[a>>2]=c;if(c){break P}j=nl(b)&j;J[6540]=j;break O}J[g+(J[g+16>>2]==(d|0)?16:20)>>2]=c;if(!c){break O}}J[c+24>>2]=g;a=J[d+16>>2];if(a){J[c+16>>2]=a;J[a+24>>2]=c}a=J[d+20>>2];if(!a){break O}J[c+20>>2]=a;J[a+24>>2]=c}Q:{if(f>>>0<=15){a=f+h|0;J[d+4>>2]=a|3;a=a+d|0;J[a+4>>2]=J[a+4>>2]|1;break Q}J[d+4>>2]=h|3;e=d+h|0;J[e+4>>2]=f|1;J[e+f>>2]=f;if(f>>>0<=255){b=(f&-8)+26196|0;c=J[6539];a=1<<(f>>>3);R:{if(!(c&a)){J[6539]=a|c;a=b;break R}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a;break Q}a=31;if(f>>>0<=16777215){a=S(f>>>8|0);a=((f>>>38-a&1)-(a<<1)|0)+62|0}J[e+28>>2]=a;J[e+16>>2]=0;J[e+20>>2]=0;b=(a<<2)+26460|0;S:{c=1<<a;T:{if(!(c&j)){J[6540]=c|j;J[b>>2]=e;break T}a=f<<((a|0)!=31?25-(a>>>1|0)|0:0);h=J[b>>2];while(1){b=h;if((J[b+4>>2]&-8)==(f|0)){break S}c=a>>>29|0;a=a<<1;c=(c&4)+b|0;h=J[c+16>>2];if(h){continue}break}J[c+16>>2]=e}J[e+24>>2]=b;J[e+12>>2]=e;J[e+8>>2]=e;break Q}a=J[b+8>>2];J[a+12>>2]=e;J[b+8>>2]=e;J[e+24>>2]=0;J[e+12>>2]=b;J[e+8>>2]=a}a=d+8|0;break a}U:{if(!i){break U}b=J[c+28>>2];a=(b<<2)+26460|0;V:{if(J[a>>2]==(c|0)){J[a>>2]=d;if(d){break V}m=26160,n=nl(b)&j,J[m>>2]=n;break U}J[i+(J[i+16>>2]==(c|0)?16:20)>>2]=d;if(!d){break U}}J[d+24>>2]=i;a=J[c+16>>2];if(a){J[d+16>>2]=a;J[a+24>>2]=d}a=J[c+20>>2];if(!a){break U}J[d+20>>2]=a;J[a+24>>2]=d}W:{if(f>>>0<=15){a=f+h|0;J[c+4>>2]=a|3;a=a+c|0;J[a+4>>2]=J[a+4>>2]|1;break W}J[c+4>>2]=h|3;d=c+h|0;J[d+4>>2]=f|1;J[d+f>>2]=f;if(k){b=(k&-8)+26196|0;e=J[6544];a=1<<(k>>>3);X:{if(!(a&g)){J[6539]=a|g;a=b;break X}a=J[b+8>>2]}J[b+8>>2]=e;J[a+12>>2]=e;J[e+12>>2]=b;J[e+8>>2]=a}J[6544]=d;J[6541]=f}a=c+8|0}La=l+16|0;return a|0}function Xd(a,b,c){var d=0,e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=0,o=0,p=0,q=0,r=0,s=0,t=Q(0),u=0,v=Q(0),w=0,x=0,y=0,z=Q(0),A=Q(0),B=Q(0),C=0,D=0,E=Q(0),F=Q(0),G=Q(0),M=Q(0),O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=0,V=Q(0),W=0,X=Q(0),Z=Q(0),_=Q(0),$=Q(0);d=La-176|0;La=d;J[6002]=J[6002]+1;r=c- -64|0;w=J[r+4>>2];J[d+168>>2]=J[r>>2];J[d+172>>2]=w;r=J[c+60>>2];J[d+160>>2]=J[c+56>>2];J[d+164>>2]=r;r=J[c+84>>2];J[d+152>>2]=J[c+80>>2];J[d+156>>2]=r;r=J[c+76>>2];J[d+144>>2]=J[c+72>>2];J[d+148>>2]=r;r=c;w=b;c=d+32|0;b=L[b+4>>1];J[c+108>>2]=b;a:{b:{if(!b){break b}while(1){b=c+P(o,36)|0;l=o+w|0;p=K[l+6|0];J[b+28>>2]=p;l=K[l+9|0];J[b+32>>2]=l;l=J[r+44>>2]+(l<<3)|0;e=N[l>>2];f=N[l+4>>2];m=N[d+160>>2];j=N[d+168>>2];l=J[r+16>>2]+(p<<3)|0;g=N[l>>2];h=N[l+4>>2];i=N[d+172>>2];k=Q(Q(Q(j*g)+Q(h*i))+N[d+164>>2]);N[b+4>>2]=k;g=Q(m+Q(Q(i*g)-Q(h*j)));N[b>>2]=g;h=N[d+144>>2];i=N[d+148>>2];m=N[d+152>>2];j=N[d+156>>2];J[b+24>>2]=0;i=Q(i+Q(Q(m*e)+Q(f*j)));N[b+12>>2]=i;e=Q(h+Q(Q(j*e)-Q(f*m)));N[b+8>>2]=e;N[b+20>>2]=i-k;N[b+16>>2]=e-g;o=o+1|0;b=J[c+108>>2];if((o|0)<(b|0)){continue}break}if((b|0)>1){f=N[w>>2];e=Q(0);c:{d:{switch(b-2|0){case 0:e=Q(N[c+16>>2]-N[c+52>>2]);j=Q(e*e);e=Q(N[c+20>>2]-N[c+56>>2]);e=Q(Y(Q(j+Q(e*e))));break c;case 1:break d;default:break c}}e=N[c+16>>2];m=N[c+20>>2];e=Q(Q(Q(N[c+52>>2]-e)*Q(N[c+92>>2]-m))-Q(Q(N[c+88>>2]-e)*Q(N[c+56>>2]-m)))}if(!(Q(f+f)<e|Q(f*Q(.5))>e|e<Q(1.1920928955078125e-7))){break a}J[c+108>>2]=0;break b}if(b){break a}}J[c+28>>2]=0;J[c+32>>2]=0;b=J[r+44>>2];e=N[b>>2];f=N[b+4>>2];m=N[d+160>>2];j=N[d+168>>2];b=J[r+16>>2];g=N[b>>2];h=N[b+4>>2];i=N[d+172>>2];k=Q(Q(Q(j*g)+Q(h*i))+N[d+164>>2]);N[c+4>>2]=k;g=Q(m+Q(Q(i*g)-Q(h*j)));N[c>>2]=g;m=N[d+156>>2];h=N[d+144>>2];i=N[d+148>>2];j=N[d+152>>2];J[c+108>>2]=1;J[c+24>>2]=1065353216;i=Q(i+Q(Q(j*e)+Q(f*m)));N[c+12>>2]=i;e=Q(h+Q(Q(m*e)-Q(f*j)));N[c+8>>2]=e;N[c+20>>2]=i-k;N[c+16>>2]=e-g}v=N[d+156>>2];E=N[d+172>>2];m=N[3070];j=N[3069];C=J[6003];M=N[d+152>>2];V=Q(-M);F=N[d+168>>2];X=Q(-F);c=J[d+140>>2];Z=N[d+148>>2];_=N[d+144>>2];$=N[d+164>>2];O=N[d+160>>2];e:{f:{g:{h:{i:{j:{k:{l:{while(1){W=(c|0)<=0;m:{if(W){break m}b=0;if((c|0)!=1){l=c&-2;o=0;while(1){p=b<<2;n=d+20|0;s=d+32|0;q=s+P(b,36)|0;J[p+n>>2]=J[q+28>>2];x=p;p=d+8|0;J[x+p>>2]=J[q+32>>2];x=n;n=b|1;q=n<<2;n=s+P(n,36)|0;J[x+q>>2]=J[n+28>>2];J[p+q>>2]=J[n+32>>2];b=b+2|0;o=o+2|0;if((l|0)!=(o|0)){continue}break}}if(!(c&1)){break m}o=b<<2;b=(d+32|0)+P(b,36)|0;J[o+(d+20|0)>>2]=J[b+28>>2];J[o+(d+8|0)>>2]=J[b+32>>2]}n:{o:{p:{q:{r:{s:{t:{u:{b=c;switch(b-2|0){case 1:break t;case 0:break u;default:break s}}k=N[d+84>>2];g=N[d+48>>2];e=Q(k-g);t=N[d+88>>2];h=N[d+52>>2];f=Q(t-h);i=Q(Q(g*e)+Q(h*f));if(i>=Q(0)){J[d+140>>2]=1;J[d+56>>2]=1065353216;break o}k=Q(Q(k*e)+Q(t*f));if(!(k<=Q(0))){break r}J[d+140>>2]=1;J[d+92>>2]=1065353216;b=J[d+80>>2];J[d+40>>2]=J[d+76>>2];J[d+44>>2]=b;b=J[d+88>>2];J[d+48>>2]=J[d+84>>2];J[d+52>>2]=b;b=J[d+96>>2];J[d+56>>2]=J[d+92>>2];J[d+60>>2]=b;J[d- -64>>2]=J[d+100>>2];b=J[d+72>>2];J[d+32>>2]=J[d+68>>2];J[d+36>>2]=b;break o}e=N[d+120>>2];f=N[d+48>>2];z=Q(e-f);g=N[d+124>>2];h=N[d+52>>2];B=Q(g-h);i=N[d+84>>2];A=Q(i-f);k=N[d+88>>2];R=Q(k-h);G=Q(Q(f*A)+Q(h*R));t=Q(Q(f*z)+Q(h*B));v:{if(!(!(G>=Q(0))|!(t>=Q(0)))){J[d+140>>2]=1;J[d+56>>2]=1065353216;break v}S=Q(Q(A*B)-Q(z*R));T=Q(Q(Q(f*k)-Q(i*h))*S);A=Q(Q(i*A)+Q(k*R));if(!(!(T<=Q(0))|(!(A>Q(0))|!(G<Q(0))))){J[d+140>>2]=2;e=Q(Q(1)/Q(A-G));N[d+92>>2]=e*Q(-G);N[d+56>>2]=A*e;break v}z=Q(Q(e*z)+Q(g*B));B=Q(S*Q(Q(e*h)-Q(f*g)));if(!(!(t<Q(0))|(!(B<=Q(0))|!(z>Q(0))))){J[d+140>>2]=2;e=Q(Q(1)/Q(z-t));N[d+128>>2]=e*Q(-t);N[d+56>>2]=z*e;J[d+100>>2]=J[d+136>>2];b=J[d+132>>2];J[d+92>>2]=J[d+128>>2];J[d+96>>2]=b;b=J[d+124>>2];J[d+84>>2]=J[d+120>>2];J[d+88>>2]=b;b=J[d+116>>2];J[d+76>>2]=J[d+112>>2];J[d+80>>2]=b;b=J[d+108>>2];J[d+68>>2]=J[d+104>>2];J[d+72>>2]=b;break v}h=Q(e-i);t=Q(g-k);f=Q(Q(i*h)+Q(k*t));if(!(!(A<=Q(0))|!(f>=Q(0)))){J[d+140>>2]=1;J[d+92>>2]=1065353216;b=J[d+72>>2];J[d+32>>2]=J[d+68>>2];J[d+36>>2]=b;b=J[d+80>>2];J[d+40>>2]=J[d+76>>2];J[d+44>>2]=b;b=J[d+88>>2];J[d+48>>2]=J[d+84>>2];J[d+52>>2]=b;b=J[d+96>>2];J[d+56>>2]=J[d+92>>2];J[d+60>>2]=b;J[d+64>>2]=J[d+100>>2];break v}w:{h=Q(Q(e*h)+Q(g*t));if(!(!(z<=Q(0))|!(h<=Q(0)))){J[d+140>>2]=1;J[d+128>>2]=1065353216;break w}e=Q(Q(Q(i*g)-Q(e*k))*S);if(!(!(f<Q(0))|(!(e<=Q(0))|!(h>Q(0))))){J[d+140>>2]=2;e=Q(Q(1)/Q(h-f));N[d+128>>2]=e*Q(-f);N[d+92>>2]=h*e;break w}J[d+140>>2]=3;f=Q(Q(1)/Q(T+Q(e+B)));N[d+128>>2]=T*f;N[d+92>>2]=B*f;N[d+56>>2]=e*f;break v}b=J[d+108>>2];J[d+32>>2]=J[d+104>>2];J[d+36>>2]=b;b=J[d+116>>2];J[d+40>>2]=J[d+112>>2];J[d+44>>2]=b;b=J[d+124>>2];J[d+48>>2]=J[d+120>>2];J[d+52>>2]=b;b=J[d+132>>2];J[d+56>>2]=J[d+128>>2];J[d+60>>2]=b;J[d+64>>2]=J[d+136>>2]}b=J[d+140>>2]}f=j;e=m;x:{switch(b-1|0){case 0:break o;case 2:break p;case 1:break x;default:break n}}h=N[d+52>>2];f=Q(N[d+88>>2]-h);g=N[d+48>>2];e=Q(N[d+84>>2]-g);break q}J[d+140>>2]=2;t=Q(Q(1)/Q(k-i));N[d+92>>2]=t*Q(-i);N[d+56>>2]=k*t}y:{if(Q(Q(g*f)-Q(e*h))>Q(0)){f=Q(-f);break y}e=Q(-e)}b=2;break n}b=J[6004];J[6004]=(b|0)>(u|0)?b:u;b=u;break j}e=Q(-N[d+52>>2]);f=Q(-N[d+48>>2]);b=1}if(Q(Q(f*f)+Q(e*e))<Q(14210854715202004e-30)){break l}l=(d+32|0)+P(b,36)|0;n=J[r+16>>2];p=0;o=0;s=J[r+20>>2];z:{if((s|0)<2){break z}h=Q(Q(E*Q(-f))-Q(F*e));i=Q(Q(F*f)-Q(E*e));g=Q(Q(N[n>>2]*h)+Q(i*N[n+4>>2]));b=1;q=s-1|0;U=q&1;if((s|0)!=2){x=q&-2;s=0;while(1){q=n+(b<<3)|0;k=Q(Q(N[q>>2]*h)+Q(i*N[q+4>>2]));q=k>g;D=b+1|0;y=n+(D<<3)|0;t=Q(Q(N[y>>2]*h)+Q(i*N[y+4>>2]));g=q?k:g;y=t>g;g=y?t:g;o=y?D:q?b:o;b=b+2|0;s=s+2|0;if((x|0)!=(s|0)){continue}break}}if(!U){break z}x=b;b=n+(b<<3)|0;o=Q(Q(N[b>>2]*h)+Q(i*N[b+4>>2]))>g?x:o}J[l+28>>2]=o;b=n+(o<<3)|0;g=N[b>>2];h=N[b+4>>2];i=Q(Q(Q(F*g)+Q(E*h))+$);N[l+4>>2]=i;k=Q(O+Q(Q(E*g)+Q(h*X)));N[l>>2]=k;n=J[r+44>>2];s=J[r+48>>2];A:{if((s|0)<2){break A}h=Q(Q(v*f)+Q(e*M));e=Q(Q(V*f)+Q(e*v));g=Q(Q(N[n>>2]*h)+Q(e*N[n+4>>2]));b=1;q=s-1|0;U=q&1;if((s|0)!=2){x=q&-2;s=0;while(1){q=n+(b<<3)|0;f=Q(Q(N[q>>2]*h)+Q(e*N[q+4>>2]));q=f>g;D=b+1|0;y=n+(D<<3)|0;t=Q(Q(N[y>>2]*h)+Q(e*N[y+4>>2]));f=q?f:g;y=t>f;g=y?t:f;p=y?D:q?b:p;b=b+2|0;s=s+2|0;if((x|0)!=(s|0)){continue}break}}if(!U){break A}x=b;b=n+(b<<3)|0;p=Q(Q(N[b>>2]*h)+Q(e*N[b+4>>2]))>g?x:p}J[l+32>>2]=p;b=n+(p<<3)|0;e=N[b>>2];f=N[b+4>>2];g=Q(Q(Q(M*e)+Q(v*f))+Z);N[l+12>>2]=g;e=Q(_+Q(Q(v*e)+Q(f*V)));N[l+8>>2]=e;N[l+20>>2]=g-i;N[l+16>>2]=e-k;b=0;C=C+1|0;J[6003]=C;u=u+1|0;B:{if(!W){while(1){l=b<<2;if(J[l+(d+20|0)>>2]==(o|0)&J[l+(d+8|0)>>2]==(p|0)){break B}b=b+1|0;if((c|0)!=(b|0)){continue}break}}c=J[d+140>>2]+1|0;J[d+140>>2]=c;b=20;if((u|0)!=20){continue}break k}break}b=J[d+140>>2]}c=b;b=u}u=J[6004];J[6004]=(b|0)<(u|0)?u:b;C:{switch(c-1|0){case 0:break h;case 2:break j;case 1:break C;default:break i}}m=N[d+72>>2];j=N[d+36>>2];e=N[d+56>>2];f=N[d+92>>2];g=Q(Q(e*N[d+32>>2])+Q(f*N[d+68>>2]));N[a>>2]=g;m=Q(Q(e*j)+Q(f*m));N[a+4>>2]=m;j=N[d+76>>2];h=N[d+44>>2];i=N[d+80>>2];k=N[d+40>>2];J[a+20>>2]=b;h=Q(Q(e*h)+Q(f*i));N[a+12>>2]=h;e=Q(Q(e*k)+Q(f*j));N[a+8>>2]=e;e=Q(g-e);j=Q(e*e);e=Q(m-h);N[a+16>>2]=Y(Q(j+Q(e*e)));e=Q(N[d+48>>2]-N[d+84>>2]);j=Q(e*e);e=Q(N[d+52>>2]-N[d+88>>2]);g=Q(Y(Q(j+Q(e*e))));u=a+16|0;b=2;c=2;break g}g=N[d+108>>2];h=N[d+72>>2];f=N[d+128>>2];i=N[d+36>>2];e=N[d+104>>2];k=N[d+32>>2];m=N[d+56>>2];v=N[d+68>>2];j=N[d+92>>2];J[a+20>>2]=b;e=Q(Q(Q(m*k)+Q(j*v))+Q(f*e));N[a+8>>2]=e;N[a>>2]=e;f=Q(Q(Q(m*i)+Q(j*h))+Q(f*g));N[a+12>>2]=f;N[a+4>>2]=f;e=Q(e-e);j=Q(e*e);e=Q(f-f);N[a+16>>2]=Y(Q(j+Q(e*e)));e=N[d+48>>2];f=N[d+52>>2];g=Q(Q(Q(N[d+84>>2]-e)*Q(N[d+124>>2]-f))-Q(Q(N[d+120>>2]-e)*Q(N[d+88>>2]-f)));u=a+16|0;b=3;c=3;break g}J[a+20>>2]=b;e=Q(N[a>>2]-N[a+8>>2]);j=Q(e*e);e=Q(N[a+4>>2]-N[a+12>>2]);N[a+16>>2]=Y(Q(j+Q(e*e)));I[w+4>>1]=c;J[w>>2]=0;u=a+16|0;if((c|0)>0){break f}break e}O=N[d+36>>2];o=J[d+36>>2];e=N[d+32>>2];J[a>>2]=J[d+32>>2];J[a+4>>2]=o;f=N[d+40>>2];u=J[d+40>>2];m=N[d+44>>2];l=J[d+44>>2];J[a+20>>2]=b;J[a+8>>2]=u;J[a+12>>2]=l;e=Q(e-f);j=Q(e*e);e=Q(O-m);N[a+16>>2]=Y(Q(j+Q(e*e)));u=a+16|0;g=Q(0);b=c;c=1}I[w+4>>1]=b;N[w>>2]=g}s=c&1;b=0;if((c|0)!=1){C=c&-2;o=w+6|0;l=w+9|0;c=0;while(1){n=d+32|0;p=n+P(b,36)|0;H[b+o|0]=J[p+28>>2];H[b+l|0]=J[p+32>>2];p=b|1;n=n+P(p,36)|0;H[o+p|0]=J[n+28>>2];H[l+p|0]=J[n+32>>2];b=b+2|0;c=c+2|0;if((C|0)!=(c|0)){continue}break}}if(!s){break e}c=b+w|0;b=(d+32|0)+P(b,36)|0;H[c+6|0]=J[b+28>>2];H[c+9|0]=J[b+32>>2]}D:{if(!K[r+88|0]){break D}e=N[u>>2];f=N[r+24>>2];m=N[r+52>>2];j=Q(f+m);if(!(!(e>j)|!(e>Q(1.1920928955078125e-7)))){N[a+16>>2]=e-j;e=N[a+8>>2];j=N[a>>2];g=Q(e-j);i=N[a+12>>2];k=N[a+4>>2];h=Q(i-k);v=Q(Y(Q(Q(g*g)+Q(h*h))));if(!(v<Q(1.1920928955078125e-7))){v=Q(Q(1)/v);h=Q(h*v);g=Q(g*v)}N[a+12>>2]=i-Q(m*h);N[a+8>>2]=e-Q(m*g);N[a+4>>2]=k+Q(f*h);N[a>>2]=j+Q(f*g);break D}J[a+16>>2]=0;e=Q(Q(N[a+4>>2]+N[a+12>>2])*Q(.5));N[a+12>>2]=e;f=Q(Q(N[a>>2]+N[a+8>>2])*Q(.5));N[a+8>>2]=f;N[a+4>>2]=e;N[a>>2]=f}La=d+176|0}function Vk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=0,g=0,h=0,i=Q(0),j=0,k=0,l=Q(0),m=Q(0),n=Q(0),o=0,p=Q(0),q=0,r=0,s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0);a:{k=a;j=J[b>>2];b:{if((c|0)<=2){break b}a=J[j+4>>2];f=La-96|0;J[f+32>>2]=J[j>>2];J[f+36>>2]=a;g=1;h=(c|0)>=8?8:c;c:{if((h|0)==1){break c}o=J[j+12>>2];i=N[j+12>>2];c=J[j+8>>2];e=N[j+8>>2];a=0;d:{while(1){b=(f+32|0)+(a<<3)|0;d=Q(e-N[b>>2]);p=Q(d*d);d=Q(i-N[b+4>>2]);if(Q(p+Q(d*d))<Q(624999984211172e-20)){break d}a=a+1|0;if((a|0)!=1){continue}break}J[f+44>>2]=o;J[f+40>>2]=c;g=2}if((h|0)==2){break c}o=J[j+20>>2];i=N[j+20>>2];c=J[j+16>>2];e=N[j+16>>2];a=0;e:{while(1){b=(f+32|0)+(a<<3)|0;d=Q(e-N[b>>2]);p=Q(d*d);d=Q(i-N[b+4>>2]);if(Q(p+Q(d*d))<Q(624999984211172e-20)){break e}a=a+1|0;if((g|0)!=(a|0)){continue}break}a=(f+32|0)+(g<<3)|0;J[a+4>>2]=o;J[a>>2]=c;g=g+1|0}if((h|0)==3){break c}e=N[j+28>>2];o=J[j+28>>2];d=N[j+24>>2];c=J[j+24>>2];f:{if((g|0)>0){a=0;while(1){b=(f+32|0)+(a<<3)|0;i=Q(d-N[b>>2]);p=Q(i*i);i=Q(e-N[b+4>>2]);if(Q(p+Q(i*i))<Q(624999984211172e-20)){break f}a=a+1|0;if((g|0)!=(a|0)){continue}break}}a=(f+32|0)+(g<<3)|0;J[a+4>>2]=o;J[a>>2]=c;g=g+1|0}if((h|0)==4){break c}e=N[j+36>>2];o=J[j+36>>2];d=N[j+32>>2];c=J[j+32>>2];g:{if((g|0)>0){a=0;while(1){b=(f+32|0)+(a<<3)|0;i=Q(d-N[b>>2]);p=Q(i*i);i=Q(e-N[b+4>>2]);if(Q(p+Q(i*i))<Q(624999984211172e-20)){break g}a=a+1|0;if((g|0)!=(a|0)){continue}break}}a=(f+32|0)+(g<<3)|0;J[a+4>>2]=o;J[a>>2]=c;g=g+1|0}if((h|0)==5){break c}e=N[j+44>>2];o=J[j+44>>2];d=N[j+40>>2];c=J[j+40>>2];h:{if((g|0)>0){a=0;while(1){b=(f+32|0)+(a<<3)|0;i=Q(d-N[b>>2]);p=Q(i*i);i=Q(e-N[b+4>>2]);if(Q(p+Q(i*i))<Q(624999984211172e-20)){break h}a=a+1|0;if((g|0)!=(a|0)){continue}break}}a=(f+32|0)+(g<<3)|0;J[a+4>>2]=o;J[a>>2]=c;g=g+1|0}if((h|0)==6){break c}e=N[j+52>>2];o=J[j+52>>2];d=N[j+48>>2];c=J[j+48>>2];i:{if((g|0)>0){a=0;while(1){b=(f+32|0)+(a<<3)|0;i=Q(d-N[b>>2]);p=Q(i*i);i=Q(e-N[b+4>>2]);if(Q(p+Q(i*i))<Q(624999984211172e-20)){break i}a=a+1|0;if((g|0)!=(a|0)){continue}break}}a=(f+32|0)+(g<<3)|0;J[a+4>>2]=o;J[a>>2]=c;g=g+1|0}if((h|0)==7){break c}e=N[j+60>>2];o=J[j+60>>2];d=N[j+56>>2];c=J[j+56>>2];if((g|0)>0){a=0;while(1){b=(f+32|0)+(a<<3)|0;i=Q(d-N[b>>2]);p=Q(i*i);i=Q(e-N[b+4>>2]);if(Q(p+Q(i*i))<Q(624999984211172e-20)){break c}a=a+1|0;if((g|0)!=(a|0)){continue}break}}a=(f+32|0)+(g<<3)|0;J[a+4>>2]=o;J[a>>2]=c;g=g+1|0}if((g|0)<3){break b}d=N[f+32>>2];e=N[f+40>>2];j:{if(!(d<e)){h=0;if(!(N[f+44>>2]<N[f+36>>2])|d!=e){break j}}d=e;h=1}k:{if((g|0)==2){break k}e=N[f+48>>2];if(!(!(e>d)&(!(N[f+52>>2]<N[(f+32|h<<3)+4>>2])|d!=e))){h=2;d=e}if((g|0)==3){break k}e=N[f+56>>2];if(!(!(e>d)&(!(N[f+60>>2]<N[((f+32|0)+(h<<3)|0)+4>>2])|d!=e))){h=3;d=e}if((g|0)==4){break k}e=N[f+64>>2];if(!(!(e>d)&(!(N[f+68>>2]<N[((f+32|0)+(h<<3)|0)+4>>2])|d!=e))){h=4;d=e}if((g|0)==5){break k}e=N[f+72>>2];if(!(!(e>d)&(!(N[f+76>>2]<N[((f+32|0)+(h<<3)|0)+4>>2])|d!=e))){h=5;d=e}if((g|0)==6){break k}e=N[f+80>>2];if(!(!(e>d)&(!(N[f+84>>2]<N[((f+32|0)+(h<<3)|0)+4>>2])|d!=e))){h=6;d=e}if((g|0)==7){break k}e=N[f+88>>2];if(!(e>d)&(!(N[f+92>>2]<N[((f+32|0)+(h<<3)|0)+4>>2])|d!=e)){break k}h=7}l:{m:{n:{if((g|0)>=2){D=N[f+92>>2];E=N[f+84>>2];F=N[f+76>>2];G=N[f+68>>2];H=N[f+60>>2];C=N[f+52>>2];b=0;t=N[f+88>>2];u=N[f+80>>2];v=N[f+72>>2];w=N[f+64>>2];x=N[f+56>>2];z=N[f+48>>2];A=N[f+44>>2];B=N[f+40>>2];p=N[f+36>>2];i=N[f+32>>2];y=(g|0)==5;s=(g|0)==6;j=(g|0)==7;a=h;while(1){o=b;c=a;J[(b<<2)+f>>2]=a;q=(f+32|0)+(a<<3)|0;r=q|4;a=1;o:{if(!c){break o}e=N[q>>2];l=Q(i-e);d=N[r>>2];m=Q(A-d);n=Q(B-e);e=Q(p-d);d=Q(Q(l*m)-Q(n*e));a=d<Q(0);if(!(Q(Q(n*n)+Q(m*m))>Q(Q(l*l)+Q(e*e)))|d!=Q(0)){break o}a=1}p:{if((g|0)==2){break p}b=2;q:{if((a|0)==(c|0)){break q}b=a;a=f+32|a<<3;e=N[q>>2];l=Q(N[a>>2]-e);d=N[r>>2];m=Q(C-d);n=Q(z-e);e=Q(N[a+4>>2]-d);d=Q(Q(l*m)-Q(n*e));b=d<Q(0)?2:b;if(!(Q(Q(n*n)+Q(m*m))>Q(Q(l*l)+Q(e*e)))|d!=Q(0)){break q}b=2}if((g|0)==3){a=b;break p}a=3;r:{if((b|0)==(c|0)){break r}a=(f+32|0)+(b<<3)|0;e=N[q>>2];l=Q(N[a>>2]-e);d=N[r>>2];m=Q(H-d);n=Q(x-e);e=Q(N[a+4>>2]-d);d=Q(Q(l*m)-Q(n*e));a=d<Q(0)?3:b;if(!(Q(Q(n*n)+Q(m*m))>Q(Q(l*l)+Q(e*e)))|d!=Q(0)){break r}a=3}if((g|0)==4){break p}b=4;s:{if((a|0)==(c|0)){break s}b=a;a=(f+32|0)+(a<<3)|0;e=N[q>>2];l=Q(N[a>>2]-e);d=N[r>>2];m=Q(G-d);n=Q(w-e);e=Q(N[a+4>>2]-d);d=Q(Q(l*m)-Q(n*e));b=d<Q(0)?4:b;if(!(Q(Q(n*n)+Q(m*m))>Q(Q(l*l)+Q(e*e)))|d!=Q(0)){break s}b=4}if(y){a=b;break p}a=5;t:{if((b|0)==(c|0)){break t}a=(f+32|0)+(b<<3)|0;e=N[q>>2];l=Q(N[a>>2]-e);d=N[r>>2];m=Q(F-d);n=Q(v-e);e=Q(N[a+4>>2]-d);d=Q(Q(l*m)-Q(n*e));a=d<Q(0)?5:b;if(!(Q(Q(n*n)+Q(m*m))>Q(Q(l*l)+Q(e*e)))|d!=Q(0)){break t}a=5}if(s){break p}b=6;u:{if((a|0)==(c|0)){break u}b=a;a=(f+32|0)+(a<<3)|0;e=N[q>>2];l=Q(N[a>>2]-e);d=N[r>>2];m=Q(E-d);n=Q(u-e);e=Q(N[a+4>>2]-d);d=Q(Q(l*m)-Q(n*e));b=d<Q(0)?6:b;if(!(Q(Q(n*n)+Q(m*m))>Q(Q(l*l)+Q(e*e)))|d!=Q(0)){break u}b=6}if(j){a=b;break p}a=7;if((b|0)==(c|0)){break p}a=(f+32|0)+(b<<3)|0;e=N[q>>2];l=Q(N[a>>2]-e);d=N[r>>2];m=Q(D-d);n=Q(t-e);e=Q(N[a+4>>2]-d);d=Q(Q(l*m)-Q(n*e));a=d<Q(0)?7:b;if(!(Q(Q(n*n)+Q(m*m))>Q(Q(l*l)+Q(e*e)))|d!=Q(0)){break p}a=7}b=o+1|0;if((a|0)!=(h|0)){continue}break}if(o>>>0>1){break n}break m}if(!h){break m}a=1;while(1){J[(a<<2)+f>>2]=0;a=a+1|0;continue}}J[k+148>>2]=b;b=o+1|0;r=b&3;g=0;a=0;if((o|0)!=2){j=b&-4;q=k+20|0;y=0;while(1){s=f+32|0;c=s+(J[(a<<2)+f>>2]<<3)|0;b=J[c+4>>2];h=q+(a<<3)|0;J[h>>2]=J[c>>2];J[h+4>>2]=b;b=a|1;h=q+(b<<3)|0;c=s+(J[(b<<2)+f>>2]<<3)|0;b=J[c+4>>2];J[h>>2]=J[c>>2];J[h+4>>2]=b;b=a|2;h=q+(b<<3)|0;c=s+(J[(b<<2)+f>>2]<<3)|0;b=J[c+4>>2];J[h>>2]=J[c>>2];J[h+4>>2]=b;b=a|3;h=q+(b<<3)|0;c=(J[(b<<2)+f>>2]<<3)+s|0;b=J[c+4>>2];J[h>>2]=J[c>>2];J[h+4>>2]=b;a=a+4|0;y=y+4|0;if((j|0)!=(y|0)){continue}break}}if(r){while(1){c=(f+32|0)+(J[(a<<2)+f>>2]<<3)|0;b=J[c+4>>2];h=(a<<3)+k|0;J[h+20>>2]=J[c>>2];J[h+24>>2]=b;a=a+1|0;g=g+1|0;if((r|0)!=(g|0)){continue}break}}s=k+20|0;a=0;while(1){j=a<<3;h=j+s|0;e=N[h>>2];b=a+1|0;c=s+((a>>>0<o>>>0?b:0)<<3)|0;d=N[c>>2];j=j+k|0;i=Q(N[c+4>>2]-N[h+4>>2]);N[j+84>>2]=i;d=Q(d-e);e=Q(-d);N[j+88>>2]=e;d=Q(Y(Q(Q(i*i)+Q(d*d))));if(!(d<Q(1.1920928955078125e-7))){d=Q(Q(1)/d);N[j+84>>2]=i*d;N[j+88>>2]=d*e}c=(a|0)==(o|0);a=b;if(!c){continue}break}h=k+20|0;t=N[k+24>>2];i=Q(t-t);u=N[k+20>>2];e=Q(u-u);a=0;v=Q(0);w=Q(0);x=Q(0);while(1){b=a+1|0;c=h+(a<<3)|0;z=Q(N[c+4>>2]-t);A=Q(N[c>>2]-u);p=e;d=i;if(a>>>0<o>>>0){c=h+(b<<3)|0;d=Q(N[c+4>>2]-t);p=Q(N[c>>2]-u)}B=Q(Q(Q(Q(A-e)*Q(d-i))-Q(Q(p-e)*Q(z-i)))*Q(.5));x=Q(x+B);C=Q(Q(i+z)+d);d=Q(B*Q(.3333333432674408));v=Q(v+Q(C*d));w=Q(w+Q(Q(Q(e+A)+p)*d));c=(a|0)!=(o|0);a=b;if(c){continue}break}d=Q(Q(1)/x);p=Q(t+Q(d*v));e=Q(u+Q(d*w));break l}a=k;J[a+84>>2]=0;J[a+88>>2]=-1082130432;J[a+20>>2]=-1082130432;J[a+24>>2]=-1082130432;J[a+148>>2]=4;J[a+108>>2]=-1082130432;J[a+112>>2]=0;J[a+100>>2]=0;J[a+104>>2]=1065353216;J[a+92>>2]=1065353216;J[a+96>>2]=0;J[a+44>>2]=-1082130432;J[a+48>>2]=1065353216;J[a+36>>2]=1065353216;J[a+40>>2]=1065353216;J[a+28>>2]=1065353216;J[a+32>>2]=-1082130432;p=Q(0);e=Q(0)}N[k+12>>2]=e;N[k+16>>2]=p;break a}J[k+84>>2]=0;J[k+88>>2]=-1082130432;J[k+20>>2]=-1082130432;J[k+24>>2]=-1082130432;J[k+148>>2]=4;J[k+12>>2]=0;J[k+16>>2]=0;J[k+108>>2]=-1082130432;J[k+112>>2]=0;J[k+100>>2]=0;J[k+104>>2]=1065353216;J[k+92>>2]=1065353216;J[k+96>>2]=0;J[k+44>>2]=-1082130432;J[k+48>>2]=1065353216;J[k+36>>2]=1065353216;J[k+40>>2]=1065353216;J[k+28>>2]=1065353216;J[k+32>>2]=-1082130432}}function Gf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),w=Q(0),x=0,y=Q(0);a:{if(K[a+102989|0]){break a}b:{c:{switch(J[b>>2]-1|0){case 2:c=xb(eb(a,176),b);J[c>>2]=12536;d=J[b+24>>2];J[c+80>>2]=J[b+20>>2];J[c+84>>2]=d;d=J[b+32>>2];J[c+88>>2]=J[b+28>>2];J[c+92>>2]=d;N[c+104>>2]=N[b+36>>2];N[c+68>>2]=N[b+40>>2];N[c+72>>2]=N[b+44>>2];J[c+96>>2]=0;J[c+100>>2]=0;J[c+76>>2]=0;break b;case 4:c=xb(eb(a,168),b);J[c>>2]=13120;j=N[b+24>>2];f=J[b+24>>2];g=N[b+20>>2];J[c+76>>2]=J[b+20>>2];J[c+80>>2]=f;d=J[c+52>>2];h=N[d+24>>2];i=Q(j-N[d+16>>2]);l=N[d+20>>2];g=Q(g-N[d+12>>2]);N[c+72>>2]=Q(h*i)-Q(l*g);N[c+68>>2]=Q(h*g)+Q(i*l);N[c+104>>2]=N[b+28>>2];J[c+96>>2]=0;J[c+100>>2]=0;N[c+84>>2]=N[b+32>>2];N[c+88>>2]=N[b+36>>2];J[c+108>>2]=0;J[c+92>>2]=0;break b;case 1:c=xb(eb(a,240),b);J[c>>2]=13316;d=J[b+24>>2];J[c+68>>2]=J[b+20>>2];J[c+72>>2]=d;d=J[b+32>>2];J[c+76>>2]=J[b+28>>2];J[c+80>>2]=d;h=N[b+40>>2];f=J[b+40>>2];g=N[b+36>>2];d=J[b+36>>2];J[c+84>>2]=d;J[c+88>>2]=f;i=Q(Y(Q(Q(g*g)+Q(h*h))));if(!(i<Q(1.1920928955078125e-7))){i=Q(Q(1)/i);h=Q(i*h);N[c+88>>2]=h;g=Q(i*g);N[c+84>>2]=g;d=(C(g),v(2))}J[c+96>>2]=d;N[c+92>>2]=-h;g=N[b+44>>2];J[c+236>>2]=0;N[c+100>>2]=g;J[c+104>>2]=0;J[c+108>>2]=0;J[c+112>>2]=0;J[c+116>>2]=0;J[c+120>>2]=0;N[c+124>>2]=N[b+52>>2];N[c+128>>2]=N[b+56>>2];N[c+132>>2]=N[b+64>>2];N[c+136>>2]=N[b+68>>2];H[c+140|0]=K[b+48|0];d=K[b+60|0];J[c+232>>2]=0;H[c+141|0]=d;J[c+184>>2]=0;J[c+188>>2]=0;J[c+192>>2]=0;J[c+196>>2]=0;break b;case 0:c=xb(eb(a,212),b);J[c>>2]=13488;d=J[b+24>>2];J[c+68>>2]=J[b+20>>2];J[c+72>>2]=d;d=J[b+32>>2];J[c+76>>2]=J[b+28>>2];J[c+80>>2]=d;g=N[b+36>>2];J[c+208>>2]=0;N[c+120>>2]=g;J[c+84>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+96>>2]=0;J[c+100>>2]=0;N[c+124>>2]=N[b+44>>2];N[c+128>>2]=N[b+48>>2];N[c+108>>2]=N[b+60>>2];N[c+112>>2]=N[b+56>>2];H[c+116|0]=K[b+40|0];d=K[b+52|0];J[c+204>>2]=0;H[c+104|0]=d;break b;case 3:c=xb(eb(a,196),b);J[c>>2]=13404;d=J[b+24>>2];J[c+68>>2]=J[b+20>>2];J[c+72>>2]=d;d=J[b+32>>2];J[c+76>>2]=J[b+28>>2];J[c+80>>2]=d;d=J[b+40>>2];J[c+92>>2]=J[b+36>>2];J[c+96>>2]=d;d=J[b+48>>2];J[c+100>>2]=J[b+44>>2];J[c+104>>2]=d;h=N[b+52>>2];N[c+84>>2]=h;i=N[b+56>>2];N[c+88>>2]=i;g=N[b+60>>2];J[c+116>>2]=0;N[c+112>>2]=g;N[c+108>>2]=h+Q(g*i);break b;case 5:c=xb(eb(a,276),b);J[c>>2]=12744;e=J[b+20>>2];J[c+68>>2]=e;p=J[b+24>>2];J[c+72>>2]=p;k=J[e+4>>2];J[c+76>>2]=k;x=J[p+4>>2];J[c+80>>2]=x;d=J[e+48>>2];J[c+84>>2]=d;f=J[e+52>>2];J[c+48>>2]=f;d:{if((k|0)==1){h=N[d+56>>2];i=N[f+56>>2];d=J[e+72>>2];J[c+108>>2]=J[e+68>>2];J[c+112>>2]=d;d=J[e+80>>2];J[c+92>>2]=J[e+76>>2];J[c+96>>2]=d;g=N[e+120>>2];J[c+124>>2]=0;J[c+128>>2]=0;N[c+140>>2]=g;g=Q(Q(i-h)-g);break d}h=N[d+20>>2];i=N[d+24>>2];l=N[f+20>>2];o=N[f+24>>2];q=N[f+16>>2];r=N[d+16>>2];n=N[f+12>>2];j=N[d+12>>2];s=N[e+72>>2];f=J[e+72>>2];m=N[e+68>>2];J[c+108>>2]=J[e+68>>2];J[c+112>>2]=f;t=N[e+80>>2];d=J[e+80>>2];g=N[e+76>>2];k=J[e+76>>2];J[c+92>>2]=k;J[c+96>>2]=d;N[c+140>>2]=N[e+100>>2];u=N[e+84>>2];k=J[e+84>>2];w=N[e+88>>2];e=J[e+88>>2];J[c+124>>2]=k;J[c+128>>2]=e;j=Q(n-j);n=t;j=Q(j+Q(Q(o*g)-Q(l*n)));g=Q(Q(q-r)+Q(Q(l*g)+Q(o*n)));g=Q(Q(Q(Q(Q(i*j)+Q(h*g))-m)*u)+Q(Q(Q(Q(i*g)-Q(h*j))-s)*w))}d=J[p+48>>2];J[c+88>>2]=d;f=J[p+52>>2];J[c+52>>2]=f;e:{if((x|0)==1){i=N[d+56>>2];l=N[f+56>>2];d=J[b+24>>2];f=J[d+72>>2];J[c+116>>2]=J[d+68>>2];J[c+120>>2]=f;f=J[d+80>>2];J[c+100>>2]=J[d+76>>2];J[c+104>>2]=f;h=N[d+120>>2];J[c+132>>2]=0;J[c+136>>2]=0;N[c+144>>2]=h;h=Q(Q(l-i)-h);break e}i=N[d+20>>2];l=N[d+24>>2];o=N[f+20>>2];q=N[f+24>>2];r=N[f+16>>2];n=N[d+16>>2];j=N[f+12>>2];m=N[d+12>>2];e=J[b+24>>2];d=e;u=N[d+68>>2];d=J[d+68>>2];s=N[e+72>>2];f=J[e+72>>2];J[c+116>>2]=d;J[c+120>>2]=f;t=N[e+80>>2];d=J[e+80>>2];h=N[e+76>>2];k=J[e+76>>2];J[c+100>>2]=k;J[c+104>>2]=d;N[c+144>>2]=N[e+100>>2];w=N[e+84>>2];k=J[e+84>>2];y=N[e+88>>2];e=J[e+88>>2];J[c+132>>2]=k;J[c+136>>2]=e;m=Q(j-m);j=t;m=Q(m+Q(Q(q*h)-Q(o*j)));h=Q(Q(r-n)+Q(Q(o*h)+Q(q*j)));h=Q(Q(Q(Q(Q(l*m)+Q(i*h))-u)*w)+Q(Q(Q(Q(l*h)-Q(i*m))-s)*y))}i=N[b+28>>2];J[c+156>>2]=0;N[c+152>>2]=i;N[c+148>>2]=Q(i*h)+g;break b;case 6:c=xb(eb(a,248),b);J[c>>2]=13744;d=J[b+24>>2];J[c+68>>2]=J[b+20>>2];J[c+72>>2]=d;d=J[b+32>>2];J[c+76>>2]=J[b+28>>2];J[c+80>>2]=d;f=J[b+36>>2];d=J[b+40>>2];J[c+100>>2]=0;J[c+104>>2]=0;J[c+96>>2]=f;J[c+84>>2]=f;J[c+88>>2]=d;J[c+108>>2]=0;J[c+112>>2]=0;J[c+116>>2]=0;J[c+224>>2]=0;J[c+228>>2]=0;J[c+232>>2]=0;J[c+236>>2]=0;J[c+92>>2]=d^-2147483648;N[c+124>>2]=N[b+48>>2];N[c+128>>2]=N[b+52>>2];H[c+140|0]=K[b+44|0];N[c+132>>2]=N[b+60>>2];N[c+136>>2]=N[b+64>>2];d=K[b+56|0];J[c+240>>2]=0;J[c+244>>2]=0;H[c+141|0]=d;J[c+192>>2]=0;J[c+196>>2]=0;J[c+200>>2]=0;J[c+204>>2]=0;N[c+144>>2]=N[b+68>>2];N[c+148>>2]=N[b+72>>2];break b;case 7:c=xb(eb(a,208),b);J[c>>2]=13660;d=J[b+24>>2];J[c+80>>2]=J[b+20>>2];J[c+84>>2]=d;d=J[b+32>>2];J[c+88>>2]=J[b+28>>2];J[c+92>>2]=d;N[c+96>>2]=N[b+36>>2];N[c+68>>2]=N[b+40>>2];g=N[b+44>>2];J[c+112>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;N[c+72>>2]=g;break b;case 8:c=xb(eb(a,180),b);J[c>>2]=12828;d=J[b+24>>2];J[c+68>>2]=J[b+20>>2];J[c+72>>2]=d;d=J[b+28>>2];f=J[b+32>>2];J[c+92>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+76>>2]=d;J[c+80>>2]=f;N[c+96>>2]=N[b+36>>2];N[c+100>>2]=N[b+40>>2];break b;case 9:c=xb(eb(a,164),b);J[c>>2]=13576;d=J[b+24>>2];J[c+68>>2]=J[b+20>>2];J[c+72>>2]=d;d=J[b+32>>2];J[c+76>>2]=J[b+28>>2];J[c+80>>2]=d;g=N[b+36>>2];J[c+160>>2]=0;N[c+84>>2]=g;J[c+88>>2]=0;J[c+92>>2]=0;break b;case 10:break c;default:break b}}c=xb(eb(a,192),b);J[c>>2]=13036;d=J[b+24>>2];J[c+68>>2]=J[b+20>>2];J[c+72>>2]=d;g=N[b+28>>2];J[c+88>>2]=0;J[c+80>>2]=0;J[c+84>>2]=0;N[c+76>>2]=g;N[c+92>>2]=N[b+32>>2];N[c+96>>2]=N[b+36>>2];N[c+100>>2]=N[b+40>>2]}J[c+8>>2]=0;d=J[a+102952>>2];J[c+12>>2]=d;if(d){J[d+8>>2]=c}J[a+102952>>2]=c;J[a+102960>>2]=J[a+102960>>2]+1;J[c+24>>2]=0;J[c+20>>2]=c;a=J[c+52>>2];J[c+16>>2]=a;d=J[c+48>>2];f=J[d+108>>2];J[c+28>>2]=f;k=c+16|0;if(f){J[f+8>>2]=k}J[d+108>>2]=k;J[c+40>>2]=0;J[c+32>>2]=d;J[c+36>>2]=c;d=J[a+108>>2];J[c+44>>2]=d;f=c+32|0;if(d){J[d+8>>2]=f}J[a+108>>2]=f;if(K[b+16|0]){break a}a=J[J[b+12>>2]+112>>2];if(!a){break a}b=J[b+8>>2];while(1){if((b|0)==J[a>>2]){d=J[a+4>>2];J[d+4>>2]=J[d+4>>2]|8}a=J[a+12>>2];if(a){continue}break}}return c|0}function Kd(a,b,c,d,e){var f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=0,t=0,u=Q(0),v=Q(0),w=Q(0),y=Q(0),z=Q(0),A=0,B=Q(0),C=0,E=Q(0),F=Q(0),G=0,L=0,M=Q(0),O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=0,V=0,W=0,X=0,Z=Q(0),_=Q(0),$=0;f=La-272|0;La=f;J[a+60>>2]=0;g=N[c+12>>2];i=N[e+12>>2];l=Q(g*i);o=N[e+8>>2];h=N[c+8>>2];y=Q(o*h);z=Q(N[e+4>>2]-N[c+4>>2]);j=Q(g*z);n=Q(N[e>>2]-N[c>>2]);q=Q(h*n);U=J[b+20>>2];V=J[b+12>>2];W=J[b+24>>2];X=J[b+16>>2];M=N[b+20>>2];u=N[b+12>>2];r=Q(M-u);O=N[b+24>>2];v=N[b+16>>2];k=Q(O-v);w=Q(Y(Q(Q(r*r)+Q(k*k))));if(!(w<Q(1.1920928955078125e-7))){w=Q(Q(1)/w);k=Q(k*w);r=Q(r*w)}w=Q(l+y);F=Q(Q(g*o)-Q(i*h));R=Q(j-q);S=Q(Q(g*n)+Q(h*z));C=K[b+44|0];a:{if(C){g=N[d+12>>2];h=N[d+16>>2];if(Q(Q(k*Q(Q(S+Q(Q(w*g)-Q(h*F)))-u))-Q(Q(Q(R+Q(Q(F*g)+Q(w*h)))-v)*r))<Q(0)){break a}}T=Q(-F);z=Q(-r);m=J[d+148>>2];J[f+268>>2]=m;b:{c:{d:{e:{if((m|0)>0){while(1){e=p<<3;c=e+(f+140|0)|0;e=d+e|0;g=N[e+20>>2];h=N[e+24>>2];N[c+4>>2]=R+Q(Q(F*g)+Q(w*h));N[c>>2]=S+Q(Q(w*g)+Q(h*T));g=N[e+84>>2];h=N[e+88>>2];N[c+68>>2]=Q(F*g)+Q(w*h);N[c- -64>>2]=Q(w*g)+Q(h*T);p=p+1|0;if((m|0)!=(p|0)){continue}break}E=Q(N[d+8>>2]+N[b+8>>2]);y=Q(-k);m=J[f+268>>2];if((m|0)<=0){break e}p=m&1;s=m-1|0;f:{if(!s){j=Q(34028234663852886e22);e=0;break f}A=m&-2;j=Q(34028234663852886e22);e=0;c=0;while(1){G=f+140|0;t=e<<3;L=G+(t|8)|0;g=Q(Q(k*Q(N[L>>2]-u))+Q(Q(N[L+4>>2]-v)*z));t=t+G|0;h=Q(Q(k*Q(N[t>>2]-u))+Q(Q(N[t+4>>2]-v)*z));h=h<j?h:j;j=g<h?g:h;e=e+2|0;c=c+2|0;if((A|0)!=(c|0)){continue}break}}if(p){c=(f+140|0)+(e<<3)|0;g=Q(Q(k*Q(N[c>>2]-u))+Q(Q(N[c+4>>2]-v)*z));j=g<j?g:j}if(j>Q(-34028234663852886e22)){break d}A=-1;j=Q(-34028234663852886e22);h=Q(0);g=Q(0);break c}E=Q(N[d+8>>2]+N[b+8>>2]);y=Q(-k)}j=Q(34028234663852886e22);if(E<Q(34028234663852886e22)){break a}i=Q(-34028234663852886e22);p=-1;l=Q(0);h=k;g=z;o=Q(0);e=0;break b}A=0;h=k;g=z}p=m&1;g:{if(!s){i=Q(34028234663852886e22);e=0;break g}s=m&-2;i=Q(34028234663852886e22);e=0;c=0;while(1){G=f+140|0;t=e<<3;L=G+(t|8)|0;l=Q(Q(y*Q(N[L>>2]-u))+Q(r*Q(N[L+4>>2]-v)));t=t+G|0;o=Q(Q(y*Q(N[t>>2]-u))+Q(r*Q(N[t+4>>2]-v)));i=i>o?o:i;i=i>l?l:i;e=e+2|0;c=c+2|0;if((s|0)!=(c|0)){continue}break}}if(p){c=(f+140|0)+(e<<3)|0;l=Q(Q(y*Q(N[c>>2]-u))+Q(r*Q(N[c+4>>2]-v)));i=i>l?l:i}if(i>j){A=1;j=i;h=y;g=r}if(j>E){break a}i=Q(-34028234663852886e22);p=-1;e=0;l=Q(0);o=Q(0);c=0;while(1){s=(f+140|0)+(c<<3)|0;n=Q(-N[s- -64>>2]);q=N[s>>2];Z=N[s+4>>2];B=N[s+68>>2];_=Q(Q(n*Q(q-u))-Q(Q(Z-v)*B));q=Q(Q(n*Q(q-M))-Q(Q(Z-O)*B));q=q>_?_:q;if(q>i){o=Q(-B);l=n;p=c;i=q;e=2}c=c+1|0;if((m|0)!=(c|0)){continue}break}}if(i>E){break a}if(!(Q(Q(Q(j-E)*Q(.9800000190734863))+Q(.0010000000474974513))<Q(i-E))){p=A;o=g;l=h;e=1}h:{i:{j:{k:{if(!C){break k}j=Q(u-N[b+28>>2]);i=Q(v-N[b+32>>2]);n=Q(Y(Q(Q(j*j)+Q(i*i))));if(!(n<Q(1.1920928955078125e-7))){n=Q(Q(1)/n);i=Q(i*n);j=Q(j*n)}n=Q(N[b+36>>2]-M);q=Q(N[b+40>>2]-O);B=Q(Y(Q(Q(n*n)+Q(q*q))));if(!(B<Q(1.1920928955078125e-7))){B=Q(Q(1)/B);q=Q(q*B);n=Q(n*B)}if(Q(Q(l*r)+Q(k*o))<=Q(0)){if(!(Q(Q(j*k)-Q(r*i))>=Q(0))){break j}if(!(Q(Q(l*Q(-j))-Q(i*o))>Q(.10000000149011612))){break k}break a}if(!(Q(Q(r*q)+Q(n*y))>=Q(0))){break j}if(Q(Q(q*o)+Q(l*n))>Q(.10000000149011612)){break a}}if((e|0)==1){break i}J[a+56>>2]=2;A=0;H[f+132|0]=0;J[f+128>>2]=X;I[f+134>>1]=256;H[f+133|0]=p;J[f+124>>2]=V;I[f+122>>1]=256;H[f+121|0]=p;J[f+116>>2]=W;J[f+112>>2]=U;J[f+56>>2]=p;s=f+140|0;c=s+(p<<3)|0;u=N[c>>2];b=J[c>>2];v=N[c+4>>2];e=J[c+4>>2];J[f+64>>2]=b;J[f+68>>2]=e;H[f+120|0]=1;b=p+1|0;b=(b|0)<(m|0)?b:0;J[f+60>>2]=b;m=s+(b<<3)|0;b=m;M=N[b>>2];b=J[b>>2];O=N[m+4>>2];m=J[m+4>>2];J[f+72>>2]=b;J[f+76>>2]=m;c=c- -64|0;k=N[c>>2];b=J[c>>2];z=N[c+4>>2];c=J[c+4>>2];J[f+104>>2]=b;y=Q(-k);N[f+92>>2]=y;J[f+80>>2]=b;J[f+84>>2]=c;J[f+88>>2]=c;r=Q(-z);N[f+100>>2]=r;break h}l=h;o=g}A=1;J[a+56>>2]=1;p=0;c=0;l:{if((m|0)<2){break l}j=Q(Q(l*N[f+204>>2])+Q(o*N[f+208>>2]));e=1;b=m-1|0;G=b&1;if((m|0)!=2){L=b&-2;s=f+204|0;b=0;while(1){C=s+(e<<3)|0;g=Q(Q(l*N[C>>2])+Q(o*N[C+4>>2]));C=g<j;$=e+1|0;t=s+($<<3)|0;h=Q(Q(l*N[t>>2])+Q(o*N[t+4>>2]));g=C?g:j;t=h<g;j=t?h:g;c=t?$:C?e:c;e=e+2|0;b=b+2|0;if((L|0)!=(b|0)){continue}break}}if(!G){break l}b=(f+140|0)+(e<<3)|0;c=Q(Q(l*N[b- -64>>2])+Q(o*N[b+68>>2]))<j?e:c}H[f+132|0]=0;N[f+104>>2]=k;N[f+92>>2]=y;N[f+84>>2]=o;J[f+76>>2]=W;J[f+68>>2]=X;I[f+122>>1]=1;H[f+120|0]=0;I[f+134>>1]=1;N[f+100>>2]=r;N[f+88>>2]=z;N[f+80>>2]=l;J[f+72>>2]=U;J[f+64>>2]=V;J[f+56>>2]=0;J[f+60>>2]=1;H[f+121|0]=c;b=f+140|0;e=b+(c<<3)|0;s=J[e+4>>2];J[f+112>>2]=J[e>>2];J[f+116>>2]=s;c=c+1|0;c=(c|0)<(m|0)?c:0;H[f+133|0]=c;b=b+(c<<3)|0;c=J[b+4>>2];J[f+124>>2]=J[b>>2];J[f+128>>2]=c}N[f+108>>2]=Q(r*M)+Q(k*O);g=Q(Q(z*u)+Q(y*v));N[f+96>>2]=g;if((hc(f+32|0,f+112|0,f+88|0,g,p)|0)<2){break a}if((hc(f,f+32|0,f+100|0,N[f+108>>2],J[f+60>>2])|0)<2){break a}m:{if(A){u=N[f+84>>2];c=J[f+84>>2];g=N[f+80>>2];J[a+40>>2]=J[f+80>>2];J[a+44>>2]=c;b=J[f+64>>2];c=J[f+68>>2];v=(x(2,c),D());i=N[f+64>>2];break m}c=(J[f+56>>2]<<3)+d|0;b=J[c+88>>2];J[a+40>>2]=J[c+84>>2];J[a+44>>2]=b;b=J[c+20>>2];c=J[c+24>>2];u=N[f+84>>2];v=N[f+68>>2];g=N[f+80>>2];i=N[f+64>>2]}J[a+48>>2]=b;J[a+52>>2]=c;e=0;h=N[f>>2];k=N[f+4>>2];if(Q(Q(g*Q(h-i))+Q(Q(k-v)*u))<=E){n:{if(A){h=Q(h-S);k=Q(k-R);N[a+4>>2]=Q(T*h)+Q(w*k);N[a>>2]=Q(w*h)+Q(F*k);J[a+16>>2]=J[f+8>>2];break n}b=J[f+4>>2];J[a>>2]=J[f>>2];J[a+4>>2]=b;H[a+18|0]=K[f+11|0];H[a+19|0]=K[f+10|0];H[a+16|0]=K[f+9|0];H[a+17|0]=K[f+8|0]}e=1}b=a;l=g;g=N[f+12>>2];h=N[f+16>>2];if(Q(Q(l*Q(g-i))+Q(Q(h-v)*u))<=E){a=P(e,20)+a|0;o:{if(!A){c=J[f+16>>2];J[a>>2]=J[f+12>>2];J[a+4>>2]=c;H[a+18|0]=K[f+23|0];H[a+19|0]=K[f+22|0];H[a+16|0]=K[f+21|0];H[a+17|0]=K[f+20|0];break o}g=Q(g-S);h=Q(h-R);N[a+4>>2]=Q(T*g)+Q(w*h);N[a>>2]=Q(w*g)+Q(F*h);J[a+16>>2]=J[f+20>>2]}e=e+1|0}J[b+60>>2]=e}La=f+272|0}function Uc(a,b,c,d,e,f){a=a|0;b=+b;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,q=0,r=0,s=0,t=0,u=0,w=0,x=0,y=0,z=0,B=0,C=0;m=La-560|0;La=m;J[m+44>>2]=0;A(+b);g=v(1)|0;v(0)|0;a:{if((g|0)<0){s=1;y=1326;b=-b;A(+b);g=v(1)|0;v(0)|0;break a}if(e&2048){s=1;y=1329;break a}s=e&1;y=s?1332:1327;z=!s}b:{if((g&2146435072)==2146435072){g=s+3|0;kb(a,32,c,g,e&-65537);jb(a,y,s);d=f&32;jb(a,b!=b?d?3270:5644:d?3772:5650,3);kb(a,32,c,g,e^8192);n=(c|0)<(g|0)?g:c;break b}u=m+16|0;c:{d:{e:{b=_c(b,m+44|0);b=b+b;if(b!=0){g=J[m+44>>2];J[m+44>>2]=g-1;w=f|32;if((w|0)!=97){break e}break c}w=f|32;if((w|0)==97){break c}k=J[m+44>>2];l=(d|0)<0?6:d;break d}k=g-29|0;J[m+44>>2]=k;b=b*268435456;l=(d|0)<0?6:d}q=(m+48|0)+((k|0)>=0?288:0)|0;h=q;while(1){if(b<4294967296&b>=0){d=~~b>>>0}else{d=0}J[h>>2]=d;h=h+4|0;b=(b-+(d>>>0))*1e9;if(b!=0){continue}break}f:{if((k|0)<=0){d=k;g=h;i=q;break f}i=q;d=k;while(1){o=(d|0)>=29?29:d;g=h-4|0;g:{if(i>>>0>g>>>0){break g}d=0;while(1){j=J[g>>2];x=d;d=o&31;if((o&63)>>>0>=32){n=j<<d;d=0}else{n=(1<<d)-1&j>>>32-d;d=j<<d}x=x+d|0;j=n+p|0;d=ml(x,d>>>0>x>>>0?j+1|0:j,1e9);B=g,C=x-ll(d,Ma,1e9,0)|0,J[B>>2]=C;g=g-4|0;if(i>>>0<=g>>>0){continue}break}if(!d){break g}i=i-4|0;J[i>>2]=d}while(1){g=h;if(i>>>0<g>>>0){h=g-4|0;if(!J[h>>2]){continue}}break}d=J[m+44>>2]-o|0;J[m+44>>2]=d;h=g;if((d|0)>0){continue}break}}if((d|0)<0){t=((l+25>>>0)/9|0)+1|0;p=(w|0)==102;while(1){d=0-d|0;n=(d|0)>=9?9:d;h:{if(g>>>0<=i>>>0){h=J[i>>2];break h}o=1e9>>>n|0;j=-1<<n^-1;d=0;h=i;while(1){x=d;d=J[h>>2];J[h>>2]=x+(d>>>n|0);d=P(o,d&j);h=h+4|0;if(h>>>0<g>>>0){continue}break}h=J[i>>2];if(!d){break h}J[g>>2]=d;g=g+4|0}d=n+J[m+44>>2]|0;J[m+44>>2]=d;i=(!h<<2)+i|0;h=p?q:i;g=g-h>>2>(t|0)?h+(t<<2)|0:g;if((d|0)<0){continue}break}}d=0;i:{if(g>>>0<=i>>>0){break i}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break i}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=(l-((w|0)!=102?d:0)|0)-((w|0)==103&(l|0)!=0)|0;if((h|0)<(P(g-q>>2,9)-9|0)){o=h+9216|0;j=(o|0)/9|0;k=((((k|0)<0?4:292)+m|0)+(j<<2)|0)-4048|0;h=10;n=o-P(j,9)|0;if((n|0)<=7){while(1){h=P(h,10);n=n+1|0;if((n|0)!=8){continue}break}}o=J[k>>2];t=(o>>>0)/(h>>>0)|0;p=o-P(h,t)|0;j=k+4|0;j:{if(!p&(j|0)==(g|0)){break j}k:{if(!(t&1)){b=9007199254740992;if(!(H[k-4|0]&1)|((h|0)!=1e9|i>>>0>=k>>>0)){break k}}b=9007199254740994}r=(g|0)==(j|0)?1:1.5;j=h>>>1|0;r=j>>>0>p>>>0?.5:(j|0)==(p|0)?r:1.5;if(!(K[y|0]!=45|z)){r=-r;b=-b}j=o-p|0;J[k>>2]=j;if(b+r==b){break j}d=h+j|0;J[k>>2]=d;if(d>>>0>=1e9){while(1){J[k>>2]=0;k=k-4|0;if(k>>>0<i>>>0){i=i-4|0;J[i>>2]=0}d=J[k>>2]+1|0;J[k>>2]=d;if(d>>>0>999999999){continue}break}}d=P(q-i>>2,9);h=10;j=J[i>>2];if(j>>>0<10){break j}while(1){d=d+1|0;h=P(h,10);if(j>>>0>=h>>>0){continue}break}}h=k+4|0;g=g>>>0>h>>>0?h:g}while(1){j=g;o=g>>>0<=i>>>0;if(!o){g=j-4|0;if(!J[g>>2]){continue}}break}l:{if((w|0)!=103){k=e&8;break l}h=l?l:1;g=(h|0)>(d|0)&(d|0)>-5;l=(g?d^-1:-1)+h|0;f=(g?-1:-2)+f|0;k=e&8;if(k){break l}g=-9;m:{if(o){break m}k=J[j-4>>2];if(!k){break m}n=10;g=0;if((k>>>0)%10|0){break m}while(1){h=g;g=g+1|0;n=P(n,10);if(!((k>>>0)%(n>>>0)|0)){continue}break}g=h^-1}h=P(j-q>>2,9);if((f&-33)==70){k=0;g=(g+h|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g;break l}k=0;g=((d+h|0)+g|0)-9|0;g=(g|0)>0?g:0;l=(g|0)>(l|0)?l:g}n=-1;o=k|l;if(((o?2147483645:2147483646)|0)<(l|0)){break b}p=(((o|0)!=0)+l|0)+1|0;h=f&-33;n:{if((h|0)==70){if((p^2147483647)<(d|0)){break b}g=(d|0)>0?d:0;break n}g=d>>31;g=Kb((g^d)-g|0,0,u);if((u-g|0)<=1){while(1){g=g-1|0;H[g|0]=48;if((u-g|0)<2){continue}break}}t=g-2|0;H[t|0]=f;H[g-1|0]=(d|0)<0?45:43;g=u-t|0;if((g|0)>(p^2147483647)){break b}}d=g+p|0;if((d|0)>(s^2147483647)){break b}p=d+s|0;kb(a,32,c,p,e);jb(a,y,s);kb(a,48,c,p,e^65536);o:{p:{q:{if((h|0)==70){f=m+16|0;d=f|8;k=f|9;h=i>>>0>q>>>0?q:i;i=h;while(1){g=Kb(J[i>>2],0,k);r:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break r}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}break r}if((g|0)!=(k|0)){break r}H[m+24|0]=48;g=d}jb(a,g,k-g|0);i=i+4|0;if(q>>>0>=i>>>0){continue}break}if(o){jb(a,6577,1)}if((l|0)<=0|i>>>0>=j>>>0){break q}while(1){g=Kb(J[i>>2],0,k);if(g>>>0>m+16>>>0){while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}}jb(a,g,(l|0)>=9?9:l);g=l-9|0;i=i+4|0;if(j>>>0<=i>>>0){break p}d=(l|0)>9;l=g;if(d){continue}break}break p}s:{if((l|0)<0){break s}q=i>>>0<j>>>0?j:i+4|0;f=m+16|0;d=f|8;j=f|9;h=i;while(1){g=Kb(J[h>>2],0,j);if((j|0)==(g|0)){H[m+24|0]=48;g=d}t:{if((h|0)!=(i|0)){if(m+16>>>0>=g>>>0){break t}while(1){g=g-1|0;H[g|0]=48;if(m+16>>>0<g>>>0){continue}break}break t}jb(a,g,1);g=g+1|0;if(!(k|l)){break t}jb(a,6577,1)}f=j-g|0;jb(a,g,(f|0)>(l|0)?l:f);l=l-f|0;h=h+4|0;if(q>>>0<=h>>>0){break s}if((l|0)>=0){continue}break}}kb(a,48,l+18|0,18,0);jb(a,t,u-t|0);break o}g=l}kb(a,48,g+9|0,9,0)}kb(a,32,c,p,e^8192);n=(c|0)<(p|0)?p:c;break b}k=(f<<26>>31&9)+y|0;u:{if(d>>>0>11){break u}g=12-d|0;r=16;while(1){r=r*16;g=g-1|0;if(g){continue}break}if(K[k|0]==45){b=-(r+(-b-r));break u}b=b+r-r}g=J[m+44>>2];h=g>>31;g=Kb((g^h)-h|0,0,u);if((u|0)==(g|0)){H[m+15|0]=48;g=m+15|0}q=s|2;i=f&32;h=J[m+44>>2];l=g-2|0;H[l|0]=f+15;H[g-1|0]=(h|0)<0?45:43;g=e&8;h=m+16|0;while(1){f=h;if(R(b)<2147483648){j=~~b}else{j=-2147483648}H[h|0]=i|K[j+18e3|0];b=(b-+(j|0))*16;h=f+1|0;if(!(!((d|0)>0|g)&b==0|(h-(m+16|0)|0)!=1)){H[f+1|0]=46;h=f+2|0}if(b!=0){continue}break}n=-1;g=u-l|0;f=g+q|0;if((2147483645-f|0)<(d|0)){break b}j=f;f=m+16|0;i=h-f|0;d=d?(i-2|0)<(d|0)?d+2|0:i:i;h=j+d|0;kb(a,32,c,h,e);jb(a,k,q);kb(a,48,c,h,e^65536);jb(a,f,i);kb(a,48,d-i|0,0,0);jb(a,l,g);kb(a,32,c,h,e^8192);n=(c|0)<(h|0)?h:c}La=m+560|0;return n|0}function Zc(a,b,c,d,e){var f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;h=La-80|0;La=h;J[h+76>>2]=b;w=h+55|0;r=h+56|0;a:{b:{c:{d:{e:while(1){i=b;if((o^2147483647)<(f|0)){break d}o=f+o|0;f:{g:{h:{f=i;g=K[f|0];if(g){while(1){i:{b=g&255;j:{if(!b){b=f;break j}if((b|0)!=37){break i}g=f;while(1){if(K[g+1|0]!=37){b=g;break j}f=f+1|0;k=K[g+2|0];b=g+2|0;g=b;if((k|0)==37){continue}break}}f=f-i|0;v=o^2147483647;if((f|0)>(v|0)){break d}if(a){jb(a,i,f)}if(f){continue e}J[h+76>>2]=b;f=b+1|0;p=-1;if(!(K[b+2|0]!=36|H[b+1|0]-48>>>0>=10)){p=H[b+1|0]-48|0;s=1;f=b+3|0}J[h+76>>2]=f;m=0;g=H[f|0];b=g-32|0;k:{if(b>>>0>31){l=f;break k}l=f;b=1<<b;if(!(b&75913)){break k}while(1){l=f+1|0;J[h+76>>2]=l;m=b|m;g=H[f+1|0];b=g-32|0;if(b>>>0>=32){break k}f=l;b=1<<b;if(b&75913){continue}break}}l:{if((g|0)==42){m:{if(!(K[l+2|0]!=36|H[l+1|0]-48>>>0>=10)){J[((H[l+1|0]<<2)+e|0)-192>>2]=10;g=l+3|0;s=1;b=J[((H[l+1|0]<<3)+d|0)-384>>2];break m}if(s){break h}g=l+1|0;if(!a){J[h+76>>2]=g;s=0;q=0;break l}b=J[c>>2];J[c>>2]=b+4;s=0;b=J[b>>2]}J[h+76>>2]=g;q=b;if((b|0)>=0){break l}q=0-q|0;m=m|8192;break l}q=Yc(h+76|0);if((q|0)<0){break d}g=J[h+76>>2]}f=0;j=-1;n:{if(K[g|0]!=46){b=g;u=0;break n}if(K[g+1|0]==42){o:{if(!(K[g+3|0]!=36|H[g+2|0]-48>>>0>=10)){J[((H[g+2|0]<<2)+e|0)-192>>2]=10;b=g+4|0;j=J[((H[g+2|0]<<3)+d|0)-384>>2];break o}if(s){break h}b=g+2|0;j=0;if(!a){break o}g=J[c>>2];J[c>>2]=g+4;j=J[g>>2]}J[h+76>>2]=b;u=(j^-1)>>>31|0;break n}J[h+76>>2]=g+1;j=Yc(h+76|0);b=J[h+76>>2];u=1}while(1){n=f;l=28;k=b;f=H[b|0];if(f-123>>>0<4294967238){break c}b=k+1|0;f=K[(f+P(n,58)|0)+17471|0];if(f-1>>>0<8){continue}break}J[h+76>>2]=b;p:{q:{if((f|0)!=27){if(!f){break c}if((p|0)>=0){J[(p<<2)+e>>2]=f;g=(p<<3)+d|0;f=J[g+4>>2];J[h+64>>2]=J[g>>2];J[h+68>>2]=f;break q}if(!a){break f}Xc(h- -64|0,f,c);break p}if((p|0)>=0){break c}}f=0;if(!a){continue e}}g=m&-65537;m=m&8192?g:m;p=0;t=1316;l=r;r:{s:{t:{u:{v:{w:{x:{y:{z:{A:{B:{C:{D:{E:{F:{G:{f=H[k|0];f=n?(f&15)==3?f&-33:f:f;switch(f-88|0){case 11:break r;case 9:case 13:case 14:case 15:break s;case 27:break x;case 12:case 17:break A;case 23:break B;case 0:case 32:break C;case 24:break D;case 22:break E;case 29:break F;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 10:case 16:case 18:case 19:case 20:case 21:case 25:case 26:case 28:case 30:case 31:break g;default:break G}}H:{switch(f-65|0){case 0:case 4:case 5:case 6:break s;case 2:break v;case 1:case 3:break g;default:break H}}if((f|0)==83){break w}break g}g=J[h+64>>2];k=J[h+68>>2];t=1316;break z}f=0;I:{switch(n&255){case 0:J[J[h+64>>2]>>2]=o;continue e;case 1:J[J[h+64>>2]>>2]=o;continue e;case 2:i=J[h+64>>2];J[i>>2]=o;J[i+4>>2]=o>>31;continue e;case 3:I[J[h+64>>2]>>1]=o;continue e;case 4:H[J[h+64>>2]]=o;continue e;case 6:J[J[h+64>>2]>>2]=o;continue e;case 7:break I;default:continue e}}i=J[h+64>>2];J[i>>2]=o;J[i+4>>2]=o>>31;continue e}j=j>>>0<=8?8:j;m=m|8;f=120}i=r;g=J[h+64>>2];k=J[h+68>>2];if(g|k){x=f&32;while(1){i=i-1|0;H[i|0]=x|K[(g&15)+18e3|0];y=!k&g>>>0>15|(k|0)!=0;n=k;k=k>>>4|0;g=(n&15)<<28|g>>>4;if(y){continue}break}}if(!(J[h+64>>2]|J[h+68>>2])|!(m&8)){break y}t=(f>>>4|0)+1316|0;p=2;break y}f=r;i=J[h+68>>2];k=i;g=J[h+64>>2];if(i|g){while(1){f=f-1|0;H[f|0]=g&7|48;n=!k&g>>>0>7|(k|0)!=0;i=k;k=i>>>3|0;g=(i&7)<<29|g>>>3;if(n){continue}break}}i=f;if(!(m&8)){break y}f=r-i|0;j=(f|0)<(j|0)?j:f+1|0;break y}g=J[h+64>>2];f=J[h+68>>2];k=f;if((f|0)<0){i=0-(k+((g|0)!=0)|0)|0;k=i;g=0-g|0;J[h+64>>2]=g;J[h+68>>2]=i;p=1;t=1316;break z}if(m&2048){p=1;t=1317;break z}p=m&1;t=p?1318:1316}i=Kb(g,k,r)}if((j|0)<0?u:0){break d}m=u?m&-65537:m;f=J[h+64>>2];g=J[h+68>>2];if(!(j|(f|g)!=0)){i=r;j=0;break g}f=!(f|g)+(r-i|0)|0;j=(f|0)<(j|0)?j:f;break g}l=j>>>0>=2147483647?2147483647:j;n=l;m=(l|0)!=0;f=J[h+64>>2];i=f?f:6579;f=i;J:{K:{L:{M:{if(!(f&3)|!l){break M}while(1){if(!K[f|0]){break L}n=n-1|0;m=(n|0)!=0;f=f+1|0;if(!(f&3)){break M}if(n){continue}break}}if(!m){break K}if(!(!K[f|0]|n>>>0<4)){while(1){k=J[f>>2];if((k^-1)&k-16843009&-2139062144){break L}f=f+4|0;n=n-4|0;if(n>>>0>3){continue}break}}if(!n){break K}}while(1){if(!K[f|0]){break J}f=f+1|0;n=n-1|0;if(n){continue}break}}f=0}f=f?f-i|0:l;l=f+i|0;if((j|0)>=0){m=g;j=f;break g}m=g;j=f;if(K[l|0]){break d}break g}if(j){g=J[h+64>>2];break u}f=0;kb(a,32,q,0,m);break t}J[h+12>>2]=0;J[h+8>>2]=J[h+64>>2];g=h+8|0;J[h+64>>2]=g;j=-1}f=0;N:{while(1){i=J[g>>2];if(!i){break N}k=Sc(h+4|0,i);i=(k|0)<0;if(!(i|k>>>0>j-f>>>0)){g=g+4|0;f=f+k|0;if(j>>>0>f>>>0){continue}break N}break}if(i){break b}}l=61;if((f|0)<0){break c}kb(a,32,q,f,m);if(!f){f=0;break t}l=0;g=J[h+64>>2];while(1){i=J[g>>2];if(!i){break t}i=Sc(h+4|0,i);l=i+l|0;if(l>>>0>f>>>0){break t}jb(a,h+4|0,i);g=g+4|0;if(f>>>0>l>>>0){continue}break}}kb(a,32,q,f,m^8192);f=(f|0)<(q|0)?q:f;continue e}if((j|0)<0?u:0){break d}l=61;f=Uc(a,O[h+64>>3],q,j,m,f);if((f|0)>=0){continue e}break c}H[h+55|0]=J[h+64>>2];j=1;i=w;m=g;break g}g=K[f+1|0];f=f+1|0;continue}}if(a){break a}if(!s){break f}f=1;while(1){a=J[(f<<2)+e>>2];if(a){Xc((f<<3)+d|0,a,c);o=1;f=f+1|0;if((f|0)!=10){continue}break a}break}o=1;if(f>>>0>=10){break a}while(1){if(J[(f<<2)+e>>2]){break h}f=f+1|0;if((f|0)!=10){continue}break}break a}l=28;break c}k=l-i|0;g=(j|0)>(k|0)?j:k;if((g|0)>(p^2147483647)){break d}l=61;j=g+p|0;f=(j|0)<(q|0)?q:j;if((v|0)<(f|0)){break c}kb(a,32,f,j,m);jb(a,t,p);kb(a,48,f,j,m^65536);kb(a,48,g,k,0);jb(a,i,k);kb(a,32,f,j,m^8192);continue}break}o=0;break a}l=61}J[6228]=l}o=-1}La=h+80|0;return o}function Bf(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=0,n=0,o=0,p=0,q=Q(0),r=0,s=Q(0);b=La+-64|0;La=b;d=J[a+102980>>2];a:{if(!d){break a}p=J[d+4>>2];b:{if(!(p&1)){break b}j=J[a+102948>>2];if(!j){break b}while(1){d=J[j+100>>2];if(d){f=j+12|0;while(1){c:{d:{e:{e=J[j>>2];if((e|0)==2){if(N[j+116>>2]==Q(0)){J[b+8>>2]=0;J[b+12>>2]=1065353216;J[b>>2]=1065353216;J[b+4>>2]=0;break c}c=L[j+4>>1];if(c&32){break e}break d}c=L[j+4>>1];if(!(c&32)){break d}f:{switch(e|0){case 0:J[b+8>>2]=1056964608;J[b+12>>2]=1065353216;J[b>>2]=1056964608;J[b+4>>2]=1063675494;break c;case 1:break f;default:break e}}J[b+8>>2]=1063675494;J[b+12>>2]=1065353216;J[b>>2]=1056964608;J[b+4>>2]=1056964608;break c}if(!(c&2)){J[b+8>>2]=1058642330;J[b+12>>2]=1065353216;J[b>>2]=1058642330;J[b+4>>2]=1058642330;break c}J[b+8>>2]=1060320051;J[b+12>>2]=1065353216;J[b>>2]=1063675494;J[b+4>>2]=1060320051;break c}J[b+8>>2]=1050253722;J[b+12>>2]=1065353216;J[b>>2]=1056964608;J[b+4>>2]=1056964608}c=La-80|0;La=c;g:{h:{i:{j:{k:{e=J[d+12>>2];switch(J[e+4>>2]){case 0:break h;case 2:break i;case 3:break j;case 1:break k;default:break g}}k=N[f>>2];h=N[f+8>>2];i=N[e+12>>2];g=N[f+12>>2];l=N[e+16>>2];q=N[f+4>>2];N[c+4>>2]=Q(Q(h*i)+Q(g*l))+q;N[c>>2]=k+Q(Q(g*i)-Q(l*h));i=N[e+20>>2];l=N[e+24>>2];N[c+76>>2]=q+Q(Q(h*i)+Q(g*l));N[c+72>>2]=k+Q(Q(g*i)-Q(l*h));n=J[a+102980>>2];Na[J[J[n>>2]+24>>2]](n,c,c+72|0,b);if(K[e+44|0]){break g}e=J[a+102980>>2];Na[J[J[e>>2]+32>>2]](e,c,Q(4),b);e=J[a+102980>>2];Na[J[J[e>>2]+32>>2]](e,c+72|0,Q(4),b);break g}n=J[e+16>>2];h=N[f>>2];g=N[f+8>>2];o=J[e+12>>2];k=N[o>>2];i=N[f+12>>2];l=N[o+4>>2];N[c+4>>2]=Q(Q(g*k)+Q(i*l))+N[f+4>>2];N[c>>2]=h+Q(Q(i*k)-Q(l*g));if((n|0)<2){break g}e=1;while(1){h=N[f>>2];g=N[f+8>>2];m=o+(e<<3)|0;k=N[m>>2];i=N[f+12>>2];l=N[m+4>>2];N[c+76>>2]=Q(Q(g*k)+Q(i*l))+N[f+4>>2];N[c+72>>2]=h+Q(Q(i*k)-Q(l*g));m=J[a+102980>>2];Na[J[J[m>>2]+24>>2]](m,c,c+72|0,b);m=J[c+76>>2];J[c>>2]=J[c+72>>2];J[c+4>>2]=m;e=e+1|0;if((n|0)!=(e|0)){continue}break}break g}o=J[e+148>>2];if((o|0)>0){h=N[f+12>>2];g=N[f+4>>2];k=N[f>>2];i=N[f+8>>2];l=Q(-i);n=0;while(1){m=n<<3;r=m+c|0;m=e+m|0;q=N[m+20>>2];s=N[m+24>>2];N[r+4>>2]=Q(Q(i*q)+Q(h*s))+g;N[r>>2]=k+Q(Q(h*q)+Q(s*l));n=n+1|0;if((o|0)!=(n|0)){continue}break}}e=J[a+102980>>2];Na[J[J[e>>2]+12>>2]](e,c,o,b);break g}k=N[f>>2];h=N[f+8>>2];i=N[e+12>>2];g=N[f+12>>2];l=N[e+16>>2];N[c+4>>2]=Q(Q(h*i)+Q(g*l))+N[f+4>>2];N[c>>2]=k+Q(Q(g*i)-Q(l*h));k=N[e+8>>2];N[c+76>>2]=h+Q(g*Q(0));N[c+72>>2]=g-Q(h*Q(0));e=J[a+102980>>2];Na[J[J[e>>2]+20>>2]](e,c,k,c+72|0,b)}La=c+80|0;d=J[d+4>>2];if(d){continue}break}}j=J[j+96>>2];if(j){continue}break}}l:{if(!(p&2)){break l}d=J[a+102952>>2];if(!d){break l}while(1){Na[J[J[d>>2]+24>>2]](d,J[a+102980>>2]);d=J[d+12>>2];if(d){continue}break}}m:{if(!(p&8)){break m}J[b+8>>2]=1063675494;J[b+12>>2]=1065353216;J[b>>2]=1050253722;J[b+4>>2]=1063675494;d=J[a+102928>>2];if(!d){break m}while(1){f=J[d+52>>2];j=J[d+60>>2];c=J[J[d+48>>2]+24>>2]+P(J[d+56>>2],28)|0;h=N[c+4>>2];g=N[c+12>>2];N[b+40>>2]=Q(N[c>>2]+N[c+8>>2])*Q(.5);N[b+44>>2]=Q(h+g)*Q(.5);c=J[f+24>>2]+P(j,28)|0;h=N[c+4>>2];g=N[c+12>>2];N[b+56>>2]=Q(N[c>>2]+N[c+8>>2])*Q(.5);N[b+60>>2]=Q(h+g)*Q(.5);c=J[a+102980>>2];Na[J[J[c>>2]+24>>2]](c,b+40|0,b+56|0,b);d=J[d+12>>2];if(d){continue}break}}n:{if(!(p&4)){break n}J[b+48>>2]=1063675494;J[b+52>>2]=1065353216;J[b+40>>2]=1063675494;J[b+44>>2]=1050253722;c=J[a+102948>>2];if(!c){break n}while(1){o:{if(!(K[c+4|0]&32)){break o}d=J[c+100>>2];if(!d){break o}while(1){if(J[d+28>>2]>0){j=0;while(1){f=J[a+102872>>2]+P(J[(J[d+24>>2]+P(j,28)|0)+24>>2],40)|0;h=N[f+4>>2];g=N[f+8>>2];k=N[f>>2];i=N[f+12>>2];N[b+28>>2]=i;N[b+24>>2]=k;N[b+20>>2]=i;N[b+16>>2]=g;N[b+12>>2]=h;N[b+8>>2]=g;N[b+4>>2]=h;N[b>>2]=k;f=J[a+102980>>2];Na[J[J[f>>2]+8>>2]](f,b,4,b+40|0);j=j+1|0;if((j|0)<J[d+28>>2]){continue}break}}d=J[d+4>>2];if(d){continue}break}}c=J[c+96>>2];if(c){continue}break}}if(!(p&16)){break a}d=J[a+102948>>2];if(!d){break a}while(1){c=J[d+24>>2];J[b+8>>2]=J[d+20>>2];J[b+12>>2]=c;c=J[d+16>>2];J[b>>2]=J[d+12>>2];J[b+4>>2]=c;c=J[d+48>>2];J[b>>2]=J[d+44>>2];J[b+4>>2]=c;c=J[a+102980>>2];Na[J[J[c>>2]+28>>2]](c,b);d=J[d+96>>2];if(d){continue}break}}La=b- -64|0}function fc(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;J[a+52>>2]=0;b=J[a+40>>2];a:{if((b|0)<=0){break a}while(1){f=J[J[a+32>>2]+(i<<2)>>2];J[a+56>>2]=f;if((f|0)!=-1){h=J[a+4>>2]+P(f,40)|0;d=La-1040|0;La=d;J[d+1036>>2]=256;f=d+8|0;J[d+4>>2]=f;J[d+8>>2]=J[a>>2];b=f;c=1;while(1){b:{c=c-1|0;J[d+1032>>2]=c;g=J[(c<<2)+b>>2];c:{if((g|0)==-1){break c}e=J[a+4>>2]+P(g,40)|0;if(Q(N[h>>2]-N[e+8>>2])>Q(0)|Q(N[h+4>>2]-N[e+12>>2])>Q(0)|(Q(N[e>>2]-N[h+8>>2])>Q(0)|Q(N[e+4>>2]-N[h+12>>2])>Q(0))){break c}if(J[e+24>>2]==-1){c=J[a+56>>2];if(!((g|0)==(c|0)|(K[(J[a+4>>2]+P(g,40)|0)+36|0]?(c|0)<(g|0):0))){b=J[a+52>>2];if((b|0)==J[a+48>>2]){c=(b>>1)+b|0;J[a+48>>2]=c;b=J[a+44>>2];c=fb(c<<3);J[a+44>>2]=c;rb(c,b,J[a+52>>2]<<3);ab(b);c=J[a+56>>2];b=J[a+52>>2]}e=J[a+44>>2]+(b<<3)|0;J[e+4>>2]=(c|0)<(g|0)?g:c;J[e>>2]=(c|0)>(g|0)?g:c;J[a+52>>2]=b+1}b=J[d+4>>2];c=J[d+1032>>2];if((c|0)>0){continue}break b}d:{if(J[d+1036>>2]!=(c|0)){break d}J[d+1036>>2]=c<<1;c=fb(c<<3);J[d+4>>2]=c;rb(c,b,J[d+1032>>2]<<2);if((b|0)==(f|0)){break d}ab(b)}b=J[d+4>>2];J[b+(J[d+1032>>2]<<2)>>2]=J[e+24>>2];c=J[d+1032>>2]+1|0;J[d+1032>>2]=c;e:{if((c|0)!=J[d+1036>>2]){break e}J[d+1036>>2]=c<<1;c=fb(c<<3);J[d+4>>2]=c;rb(c,b,J[d+1032>>2]<<2);if((b|0)==(f|0)){break e}ab(b)}b=J[d+4>>2];J[b+(J[d+1032>>2]<<2)>>2]=J[e+28>>2];c=J[d+1032>>2]+1|0;J[d+1032>>2]=c}if((c|0)>0){continue}}break}if((b|0)!=(f|0)){ab(b)}La=d+1040|0;b=J[a+40>>2]}i=i+1|0;if((i|0)<(b|0)){continue}break}if(J[a+52>>2]>0){i=0;while(1){d=J[a+4>>2];f=J[a+44>>2]+(i<<3)|0;c=J[(d+P(J[f>>2],40)|0)+16>>2];b=J[c+16>>2];j=J[b+8>>2];d=J[(d+P(J[f+4>>2],40)|0)+16>>2];f=J[d+16>>2];e=J[f+8>>2];f:{if((j|0)==(e|0)){break f}d=J[d+20>>2];g=J[c+20>>2];c=J[e+112>>2];if(c){while(1){g:{if((j|0)!=J[c>>2]){break g}e=J[c+4>>2];h=J[e+60>>2];k=J[e+56>>2];l=J[e+52>>2];e=J[e+48>>2];if(!((e|0)!=(b|0)|(f|0)!=(l|0)|(g|0)!=(k|0))){if((d|0)==(h|0)){break f}}if((f|0)!=(e|0)|(b|0)!=(l|0)|(d|0)!=(k|0)){break g}if((g|0)==(h|0)){break f}}c=J[c+12>>2];if(c){continue}break}}c=J[a+68>>2];if(c){if(!(Na[J[J[c>>2]+8>>2]](c,b,f)|0)){break f}}c=J[a+76>>2];if(!K[24864]){J[6192]=790;H[24680]=1;J[6169]=791;J[6168]=792;J[6174]=790;J[6180]=793;J[6204]=794;J[6171]=793;H[24776]=1;J[6193]=795;H[24800]=1;J[6199]=796;J[6198]=797;H[24704]=0;J[6175]=795;H[24728]=1;J[6181]=798;H[24824]=1;J[6205]=799;H[24788]=0;J[6196]=800;J[6195]=801;H[24752]=1;J[6187]=800;J[6186]=801;H[24692]=0;J[6172]=798;H[24848]=1;J[6211]=802;J[6210]=803;H[24716]=0;J[6178]=799;J[6177]=794;J[6201]=803;J[6202]=802;H[24812]=0;H[24864]=1}h=(P(J[J[b+12>>2]+4>>2],48)+24672|0)+P(J[J[f+12>>2]+4>>2],12)|0;e=J[h>>2];h:{if(e){if(K[h+8|0]){b=Na[e|0](b,g,f,d,c)|0;break h}b=Na[e|0](f,d,b,g,c)|0}else{b=0}}if(!b){break f}e=J[b+52>>2];f=J[e+8>>2];h=J[b+48>>2];d=J[h+8>>2];J[b+8>>2]=0;c=J[a+60>>2];J[b+12>>2]=c;if(c){J[c+8>>2]=b}J[a+60>>2]=b;J[b+24>>2]=0;J[b+16>>2]=f;J[b+20>>2]=b;c=J[d+112>>2];J[b+28>>2]=c;g=b+16|0;if(c){J[c+8>>2]=g}J[d+112>>2]=g;J[b+40>>2]=0;J[b+32>>2]=d;J[b+36>>2]=b;c=J[f+112>>2];J[b+44>>2]=c;b=b+32|0;if(c){J[c+8>>2]=b}J[f+112>>2]=b;i:{if(K[h+38|0]|K[e+38|0]){break i}if(J[d>>2]){J[d+144>>2]=0;I[d+4>>1]=L[d+4>>1]|2}if(!J[f>>2]){break i}J[f+144>>2]=0;I[f+4>>1]=L[f+4>>1]|2}J[a+64>>2]=J[a+64>>2]+1}i=i+1|0;if((i|0)<J[a+52>>2]){continue}break}b=J[a+40>>2]}if((b|0)<=0){break a}c=b&1;f=J[a+4>>2];d=J[a+32>>2];i=0;if((b|0)!=1){g=b&-2;b=0;while(1){e=i<<2;h=J[e+d>>2];if((h|0)!=-1){H[(f+P(h,40)|0)+36|0]=0}e=J[d+(e|4)>>2];if((e|0)!=-1){H[(f+P(e,40)|0)+36|0]=0}i=i+2|0;b=b+2|0;if((g|0)!=(b|0)){continue}break}}if(!c){break a}b=J[d+(i<<2)>>2];if((b|0)==-1){break a}H[(f+P(b,40)|0)+36|0]=0}J[a+40>>2]=0}function bd(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,w=0,y=0,z=0,A=0;o=La-16|0;La=o;s=(C(a),v(2));e=s&2147483647;a:{if(e>>>0<=1305022426){j=+a;d=j*.6366197723675814+6755399441055744+-6755399441055744;r=j+d*-1.5707963109016418+d*-1.5893254773528196e-8;O[b>>3]=r;c=r<-.7853981852531433;if(R(d)<2147483648){e=~~d}else{e=-2147483648}if(c){d=d+-1;O[b>>3]=j+d*-1.5707963109016418+d*-1.5893254773528196e-8;e=e-1|0;break a}if(!(r>.7853981852531433)){break a}d=d+1;O[b>>3]=j+d*-1.5707963109016418+d*-1.5893254773528196e-8;e=e+1|0;break a}if(e>>>0>=2139095040){O[b>>3]=Q(a-a);e=0;break a}c=e;e=(e>>>23|0)-150|0;O[o+8>>3]=(x(2,c-(e<<23)|0),D());t=o+8|0;g=La-560|0;La=g;c=(e-3|0)/24|0;p=(c|0)>0?c:0;i=e+P(p,-24)|0;l=J[3672];if((l|0)>=0){e=l+1|0;c=p;while(1){O[(g+320|0)+(f<<3)>>3]=(c|0)<0?0:+J[(c<<2)+14704>>2];c=c+1|0;f=f+1|0;if((e|0)!=(f|0)){continue}break}}k=i-24|0;e=0;f=(l|0)>0?l:0;while(1){c=0;d=0;while(1){d=O[(c<<3)+t>>3]*O[(g+320|0)+(e-c<<3)>>3]+d;c=c+1|0;if((c|0)!=1){continue}break}O[(e<<3)+g>>3]=d;c=(e|0)==(f|0);e=e+1|0;if(!c){continue}break}z=47-i|0;u=48-i|0;A=i-25|0;e=l;b:{while(1){d=O[(e<<3)+g>>3];c=0;f=e;n=(e|0)<=0;if(!n){while(1){m=(g+480|0)+(c<<2)|0;j=d*5.960464477539063e-8;c:{if(R(j)<2147483648){h=~~j;break c}h=-2147483648}j=+(h|0);d=j*-16777216+d;d:{if(R(d)<2147483648){h=~~d;break d}h=-2147483648}J[m>>2]=h;f=f-1|0;d=O[(f<<3)+g>>3]+j;c=c+1|0;if((e|0)!=(c|0)){continue}break}}d=cc(d,k);d=d+V(d*.125)*-8;e:{if(R(d)<2147483648){m=~~d;break e}m=-2147483648}d=d-+(m|0);f:{g:{h:{w=(k|0)<=0;i:{if(!w){f=(e<<2)+g|0;h=J[f+476>>2];c=h>>u;q=f;f=h-(c<<u)|0;J[q+476>>2]=f;m=c+m|0;h=f>>z;break i}if(k){break h}h=J[((e<<2)+g|0)+476>>2]>>23}if((h|0)<=0){break f}break g}h=2;if(d>=.5){break g}h=0;break f}c=0;f=0;if(!n){while(1){q=(g+480|0)+(c<<2)|0;n=J[q>>2];y=16777215;j:{k:{if(f){break k}y=16777216;if(n){break k}f=0;break j}J[q>>2]=y-n;f=1}c=c+1|0;if((e|0)!=(c|0)){continue}break}}l:{if(w){break l}c=8388607;m:{switch(A|0){case 1:c=4194303;break;case 0:break m;default:break l}}n=(e<<2)+g|0;J[n+476>>2]=J[n+476>>2]&c}m=m+1|0;if((h|0)!=2){break f}d=1-d;h=2;if(!f){break f}d=d-cc(1,k)}if(d==0){f=0;n:{c=e;if((l|0)>=(e|0)){break n}while(1){c=c-1|0;f=J[(g+480|0)+(c<<2)>>2]|f;if((c|0)>(l|0)){continue}break}if(!f){break n}i=k;while(1){i=i-24|0;e=e-1|0;if(!J[(g+480|0)+(e<<2)>>2]){continue}break}break b}c=1;while(1){f=c;c=c+1|0;if(!J[(g+480|0)+(l-f<<2)>>2]){continue}break}f=e+f|0;while(1){e=e+1|0;O[(g+320|0)+(e<<3)>>3]=J[(e+p<<2)+14704>>2];c=0;d=0;while(1){d=O[(c<<3)+t>>3]*O[(g+320|0)+(e-c<<3)>>3]+d;c=c+1|0;if((c|0)!=1){continue}break}O[(e<<3)+g>>3]=d;if((e|0)<(f|0)){continue}break}e=f;continue}break}d=cc(d,24-i|0);o:{if(d>=16777216){k=(g+480|0)+(e<<2)|0;j=d*5.960464477539063e-8;p:{if(R(j)<2147483648){c=~~j;break p}c=-2147483648}d=+(c|0)*-16777216+d;q:{if(R(d)<2147483648){f=~~d;break q}f=-2147483648}J[k>>2]=f;e=e+1|0;break o}if(R(d)<2147483648){c=~~d}else{c=-2147483648}i=k}J[(g+480|0)+(e<<2)>>2]=c}d=cc(1,i);r:{if((e|0)<0){break r}c=e;while(1){f=c;O[(c<<3)+g>>3]=d*+J[(g+480|0)+(c<<2)>>2];c=c-1|0;d=d*5.960464477539063e-8;if(f){continue}break}if((e|0)<0){break r}f=e;while(1){d=0;c=0;i=e-f|0;k=(i|0)>(l|0)?l:i;if((k|0)>=0){while(1){d=O[(c<<3)+17472>>3]*O[(c+f<<3)+g>>3]+d;p=(c|0)!=(k|0);c=c+1|0;if(p){continue}break}}O[(g+160|0)+(i<<3)>>3]=d;c=(f|0)>0;f=f-1|0;if(c){continue}break}}d=0;if((e|0)>=0){while(1){c=e;e=e-1|0;d=d+O[(g+160|0)+(c<<3)>>3];if(c){continue}break}}O[o>>3]=h?-d:d;La=g+560|0;e=m&7;d=O[o>>3];if((s|0)<0){O[b>>3]=-d;e=0-e|0;break a}O[b>>3]=d}La=o+16|0;return e}function ed(a,b,c,d){var e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=0,m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=0,t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0,D=0;g=N[a+48>>2];h=N[a+68>>2];n=Q(Q(d*Q(N[a+72>>2]-h))+h);h=_a(n);m=N[a+44>>2];n=Za(n);q=N[a+56>>2];x=Q(Q(q+Q(Q(N[a- -64>>2]-q)*d))-Q(Q(n*m)+Q(g*h)));q=N[a+52>>2];u=Q(Q(q+Q(Q(N[a+60>>2]-q)*d))-Q(Q(h*m)-Q(g*n)));q=N[a+12>>2];g=N[a+32>>2];m=Q(Q(d*Q(N[a+36>>2]-g))+g);g=_a(m);r=N[a+8>>2];m=Za(m);i=N[a+20>>2];y=Q(Q(i+Q(Q(N[a+28>>2]-i)*d))-Q(Q(m*r)+Q(q*g)));i=N[a+16>>2];v=Q(Q(i+Q(Q(N[a+24>>2]-i)*d))-Q(Q(g*r)-Q(q*m)));w=Q(-n);q=Q(-m);a:{switch(J[a+80>>2]){case 0:r=N[a+92>>2];i=N[a+96>>2];e=J[a>>2];o=J[e+16>>2];j=J[e+20>>2];b:{if((j|0)<2){break b}k=Q(Q(g*r)+Q(m*i));p=Q(Q(q*r)+Q(g*i));d=Q(Q(N[o>>2]*k)+Q(p*N[o+4>>2]));e=1;f=j-1|0;C=f&1;c:{if((j|0)==2){f=0;break c}B=f&-2;f=0;j=0;while(1){s=o+(e<<3)|0;z=Q(Q(N[s>>2]*k)+Q(p*N[s+4>>2]));s=z>d;D=e+1|0;t=o+(D<<3)|0;A=Q(Q(N[t>>2]*k)+Q(p*N[t+4>>2]));d=s?z:d;t=A>d;d=t?A:d;f=t?D:s?e:f;e=e+2|0;j=j+2|0;if((B|0)!=(j|0)){continue}break}}if(!C){break b}j=e;e=o+(e<<3)|0;f=Q(Q(N[e>>2]*k)+Q(p*N[e+4>>2]))>d?j:f}J[b>>2]=f;a=J[a+4>>2];e=J[a+16>>2];f=J[a+20>>2];d:{if((f|0)<2){break d}k=Q(Q(h*Q(-r))-Q(n*i));p=Q(Q(n*r)-Q(h*i));d=Q(Q(N[e>>2]*k)+Q(p*N[e+4>>2]));a=1;l=f-1|0;t=l&1;e:{if((f|0)==2){l=0;break e}C=l&-2;l=0;f=0;while(1){j=e+(a<<3)|0;z=Q(Q(N[j>>2]*k)+Q(p*N[j+4>>2]));j=z>d;B=a+1|0;s=e+(B<<3)|0;A=Q(Q(N[s>>2]*k)+Q(p*N[s+4>>2]));d=j?z:d;s=A>d;d=s?A:d;l=s?B:j?a:l;a=a+2|0;f=f+2|0;if((C|0)!=(f|0)){continue}break}}if(!t){break d}j=a;a=e+(a<<3)|0;l=Q(Q(N[a>>2]*k)+Q(p*N[a+4>>2]))>d?j:l}J[c>>2]=l;k=u;a=e+(l<<3)|0;d=N[a>>2];u=N[a+4>>2];p=Q(k+Q(Q(h*d)+Q(u*w)));k=v;a=o+(J[b>>2]<<3)|0;w=N[a>>2];v=N[a+4>>2];return Q(Q(Q(p-Q(k+Q(Q(g*w)+Q(v*q))))*r)+Q(i*Q(Q(x+Q(Q(n*d)+Q(h*u)))-Q(y+Q(Q(m*w)+Q(g*v))))));case 1:d=N[a+88>>2];i=N[a+96>>2];k=N[a+84>>2];p=N[a+92>>2];J[b>>2]=-1;r=Q(Q(m*p)+Q(g*i));i=Q(Q(g*p)+Q(i*q));y=Q(y+Q(Q(m*k)+Q(g*d)));q=Q(v+Q(Q(g*k)+Q(d*q)));a=J[a+4>>2];b=J[a+16>>2];f=J[a+20>>2];f:{if((f|0)<2){break f}g=Q(Q(h*Q(-i))-Q(n*r));m=Q(Q(n*i)-Q(h*r));d=Q(Q(N[b>>2]*g)+Q(m*N[b+4>>2]));a=1;e=f-1|0;j=e&1;g:{if((f|0)==2){e=0;break g}s=e&-2;e=0;f=0;while(1){l=b+(a<<3)|0;v=Q(Q(N[l>>2]*g)+Q(m*N[l+4>>2]));l=v>d;t=a+1|0;o=b+(t<<3)|0;k=Q(Q(N[o>>2]*g)+Q(m*N[o+4>>2]));d=l?v:d;o=k>d;d=o?k:d;e=o?t:l?a:e;a=a+2|0;f=f+2|0;if((s|0)!=(f|0)){continue}break}}if(!j){break f}j=a;a=b+(a<<3)|0;e=Q(Q(N[a>>2]*g)+Q(m*N[a+4>>2]))>d?j:e}J[c>>2]=e;a=b+(e<<3)|0;d=N[a>>2];g=N[a+4>>2];return Q(Q(Q(Q(u+Q(Q(h*d)+Q(g*w)))-q)*i)+Q(r*Q(Q(x+Q(Q(n*d)+Q(h*g)))-y)));case 2:d=N[a+88>>2];i=N[a+96>>2];k=N[a+84>>2];p=N[a+92>>2];J[c>>2]=-1;r=Q(Q(n*p)+Q(h*i));i=Q(Q(h*p)+Q(i*w));x=Q(x+Q(Q(n*k)+Q(h*d)));w=Q(u+Q(Q(h*k)+Q(d*w)));a=J[a>>2];c=J[a+16>>2];f=J[a+20>>2];h:{if((f|0)<2){break h}h=Q(Q(g*Q(-i))-Q(m*r));n=Q(Q(m*i)-Q(g*r));d=Q(Q(N[c>>2]*h)+Q(n*N[c+4>>2]));a=1;e=f-1|0;j=e&1;i:{if((f|0)==2){e=0;break i}s=e&-2;e=0;f=0;while(1){l=c+(a<<3)|0;u=Q(Q(N[l>>2]*h)+Q(n*N[l+4>>2]));l=u>d;t=a+1|0;o=c+(t<<3)|0;k=Q(Q(N[o>>2]*h)+Q(n*N[o+4>>2]));d=l?u:d;o=k>d;d=o?k:d;e=o?t:l?a:e;a=a+2|0;f=f+2|0;if((s|0)!=(f|0)){continue}break}}if(!j){break h}j=a;a=c+(a<<3)|0;e=Q(Q(N[a>>2]*h)+Q(n*N[a+4>>2]))>d?j:e}J[b>>2]=e;a=c+(e<<3)|0;d=N[a>>2];h=N[a+4>>2];return Q(Q(Q(Q(v+Q(Q(g*d)+Q(h*q)))-w)*i)+Q(r*Q(Q(y+Q(Q(m*d)+Q(g*h)))-x)));default:break a}}J[b>>2]=-1;J[c>>2]=-1;return Q(0)}function id(a){var b=Q(0),c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=0,D=Q(0),E=0,F=0,G=Q(0),H=0,I=0,L=0,M=0,O=Q(0),R=Q(0);if(J[a+48>>2]>0){q=J[a+28>>2];I=K[23752];while(1){c=J[a+40>>2]+P(F,156)|0;G=N[c+132>>2];A=N[c+124>>2];g=N[c+128>>2];B=N[c+120>>2];l=N[c+72>>2];i=N[c+76>>2];H=P(J[c+116>>2],12);j=H+q|0;o=N[j+8>>2];r=N[j+4>>2];s=N[j>>2];L=P(J[c+112>>2],12);C=L+q|0;b=N[C+8>>2];t=N[C+4>>2];u=N[C>>2];E=J[c+148>>2];M=(E|0)<=0;a:{b:{if(!M){v=N[c+136>>2];d=Q(-l);k=N[c+144>>2];h=Q(-g);q=0;while(1){j=c+P(q,36)|0;e=Q(v*N[j+16>>2]);f=Q(-e);w=N[j+20>>2];n=N[j+12>>2];m=N[j+4>>2];x=N[j+8>>2];y=N[j>>2];z=Q(w-Q(N[j+28>>2]*Q(Q(Q(Q(Q(Q(s-Q(o*n))-u)+Q(b*m))*i)+Q(Q(Q(Q(r+Q(o*x))-t)-Q(b*y))*d))-k)));e=e>z?z:e;e=e<f?f:e;N[j+20>>2]=e;f=Q(e-w);e=Q(f*d);f=Q(i*f);o=Q(Q(G*Q(Q(x*e)-Q(n*f)))+o);b=Q(Q(h*Q(Q(y*e)-Q(f*m)))+b);r=Q(r+Q(A*e));s=Q(s+Q(A*f));t=Q(t-Q(B*e));u=Q(u-Q(B*f));q=q+1|0;if((E|0)!=(q|0)){continue}break}if(I?(E|0)!=1:0){break b}if(M){break a}q=0;while(1){j=c+P(q,36)|0;e=N[j+16>>2];f=N[j+12>>2];g=N[j+4>>2];d=N[j+8>>2];v=N[j>>2];k=Q(e-Q(N[j+24>>2]*Q(Q(Q(Q(Q(Q(s-Q(o*f))-u)+Q(b*g))*l)+Q(i*Q(Q(Q(r+Q(o*d))-t)-Q(b*v))))-N[j+32>>2])));k=k>Q(0)?k:Q(0);N[j+16>>2]=k;m=d;d=Q(k-e);e=Q(i*d);p=f;f=Q(l*d);o=Q(Q(G*Q(Q(m*e)-Q(p*f)))+o);b=Q(Q(h*Q(Q(v*e)-Q(f*g)))+b);r=Q(r+Q(A*e));s=Q(s+Q(A*f));t=Q(t-Q(B*e));u=Q(u-Q(B*f));q=q+1|0;if((E|0)!=(q|0)){continue}break}break a}if(!I){break a}}c:{d:{v=N[c+12>>2];k=N[c+4>>2];w=N[c+8>>2];n=N[c>>2];d=N[c+16>>2];h=N[c+52>>2];O=N[c+104>>2];m=Q(Q(Q(Q(Q(Q(Q(s-Q(o*v))-u)+Q(b*k))*l)+Q(i*Q(Q(Q(r+Q(o*w))-t)-Q(b*n))))-N[c+32>>2])-Q(Q(N[c+96>>2]*d)+Q(h*O)));x=N[c+48>>2];y=N[c+40>>2];z=N[c+44>>2];D=N[c+36>>2];f=N[c+100>>2];p=Q(Q(Q(Q(Q(Q(Q(s-Q(o*x))-u)+Q(b*y))*l)+Q(i*Q(Q(Q(r+Q(o*z))-t)-Q(b*D))))-N[c+68>>2])-Q(Q(f*d)+Q(h*N[c+108>>2])));e=Q(Q(N[c+80>>2]*m)+Q(N[c+88>>2]*p));if(!(e<=Q(0))){break d}R=Q(Q(N[c+84>>2]*m)+Q(p*N[c+92>>2]));if(!(R<=Q(0))){break d}m=b;p=g;e=Q(-e);b=Q(e-d);g=Q(i*b);d=Q(l*b);n=Q(Q(n*g)-Q(d*k));f=Q(-R);b=Q(f-h);h=Q(i*b);k=Q(l*b);b=Q(m-Q(p*Q(n+Q(Q(D*h)-Q(k*y)))));i=Q(g+h);l=Q(d+k);g=Q(Q(w*g)-Q(d*v));d=Q(Q(z*h)-Q(k*x));break c}e=Q(m*Q(-N[c+24>>2]));if(!(!(e>=Q(0))|!(Q(Q(f*e)+p)>=Q(0)))){f=Q(0);m=b;p=g;b=Q(Q(0)-h);g=Q(i*b);h=Q(l*b);b=Q(e-d);d=Q(i*b);i=Q(n*d);n=Q(l*b);b=Q(m-Q(p*Q(Q(Q(D*g)-Q(h*y))+Q(i-Q(n*k)))));i=Q(g+d);l=Q(h+n);g=Q(Q(z*g)-Q(h*x));d=Q(Q(w*d)-Q(n*v));break c}f=Q(p*Q(-N[c+60>>2]));if(!(!(f>=Q(0))|!(Q(Q(O*f)+m)>=Q(0)))){e=Q(0);m=b;p=g;b=Q(Q(0)-d);g=Q(i*b);d=Q(l*b);n=Q(Q(n*g)-Q(d*k));b=Q(f-h);h=Q(i*b);k=Q(l*b);b=Q(m-Q(p*Q(n+Q(Q(D*h)-Q(k*y)))));i=Q(g+h);l=Q(d+k);g=Q(Q(w*g)-Q(d*v));d=Q(Q(z*h)-Q(k*x));break c}if(!(m>=Q(0))|!(p>=Q(0))){break a}e=Q(0);m=b;p=g;b=Q(Q(0)-d);f=Q(i*b);g=Q(l*b);b=Q(Q(0)-h);d=Q(i*b);h=Q(l*b);b=Q(m-Q(p*Q(Q(Q(n*f)-Q(g*k))+Q(Q(D*d)-Q(h*y)))));i=Q(f+d);l=Q(g+h);g=Q(Q(w*f)-Q(g*v));f=Q(0);d=Q(Q(z*d)-Q(h*x))}N[c+52>>2]=f;N[c+16>>2]=e;s=Q(s+Q(A*l));r=Q(r+Q(A*i));u=Q(u-Q(B*l));t=Q(t-Q(B*i));o=Q(Q(G*Q(g+d))+o)}N[C+4>>2]=t;N[C>>2]=u;c=J[a+28>>2];N[(c+L|0)+8>>2]=b;c=c+H|0;N[c+4>>2]=r;N[c>>2]=s;q=J[a+28>>2];N[(H+q|0)+8>>2]=o;F=F+1|0;if((F|0)<J[a+48>>2]){continue}break}}}function wh(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=0,m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=0,D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0),R=Q(0),S=Q(0),T=Q(0),U=Q(0),V=Q(0),W=Q(0),X=Q(0),Y=Q(0),Z=0,_=0,$=Q(0),aa=Q(0);l=J[a+48>>2];C=J[l+8>>2];J[a+160>>2]=C;m=J[a+52>>2];r=J[m+8>>2];J[a+164>>2]=r;k=J[a+84>>2];Z=J[k+8>>2];J[a+168>>2]=Z;c=J[a+88>>2];_=J[c+8>>2];J[a+172>>2]=_;D=N[l+32>>2];e=J[l+32>>2];i=N[l+28>>2];J[a+176>>2]=J[l+28>>2];J[a+180>>2]=e;e=J[m+32>>2];J[a+184>>2]=J[m+28>>2];J[a+188>>2]=e;w=N[k+32>>2];e=J[k+32>>2];n=N[k+28>>2];J[a+192>>2]=J[k+28>>2];J[a+196>>2]=e;$=N[c+32>>2];e=J[c+32>>2];aa=N[c+28>>2];J[a+200>>2]=J[c+28>>2];J[a+204>>2]=e;E=N[l+120>>2];N[a+208>>2]=E;F=N[m+120>>2];N[a+212>>2]=F;G=N[k+120>>2];N[a+216>>2]=G;H=N[c+120>>2];N[a+220>>2]=H;x=N[l+128>>2];N[a+224>>2]=x;y=N[m+128>>2];N[a+228>>2]=y;z=N[k+128>>2];N[a+232>>2]=z;A=N[c+128>>2];N[a+236>>2]=A;l=J[a+76>>2];c=J[b+28>>2];k=P(_,12);e=c+k|0;I=N[e+8>>2];L=N[e+4>>2];M=N[e>>2];m=P(Z,12);e=m+c|0;O=N[e+8>>2];R=N[e+4>>2];S=N[e>>2];r=P(r,12);e=r+c|0;T=N[e+8>>2];U=N[e+4>>2];V=N[e>>2];e=P(C,12);c=e+c|0;W=N[c+8>>2];X=N[c+4>>2];Y=N[c>>2];c=J[b+24>>2];d=N[(c+r|0)+8>>2];f=N[(c+k|0)+8>>2];h=_a(f);g=Za(f);s=_a(d);t=Za(d);a:{if((l|0)==1){o=Q(1);j=Q(1);d=Q(x+z);break a}p=N[a+96>>2];d=N[(c+e|0)+8>>2];o=_a(d);B=N[a+92>>2];j=Za(d);q=N[a+128>>2];i=Q(B-i);p=Q(p-D);f=N[(c+m|0)+8>>2];d=Za(f);u=N[a+124>>2];f=_a(f);v=Q(Q(d*u)+Q(q*f));q=Q(Q(f*u)-Q(q*d));o=Q(Q(Q(Q(o*i)-Q(j*p))*v)-Q(q*Q(Q(j*i)+Q(o*p))));j=Q(N[a+108>>2]-n);i=Q(N[a+112>>2]-w);j=Q(Q(Q(Q(f*j)-Q(d*i))*v)-Q(q*Q(Q(d*j)+Q(f*i))));d=Q(Q(Q(x*o)*o)+Q(Q(Q(z*j)*j)+Q(E+G)))}N[a+264>>2]=j;N[a+256>>2]=o;N[a+240>>2]=q;N[a+244>>2]=v;i=Q(0);n=Q(d+Q(0));b:{if(J[a+80>>2]==1){J[a+248>>2]=0;d=N[a+152>>2];g=Q(Q(Q(d*d)*Q(y+A))+n);h=d;f=Q(0);break b}d=N[a+132>>2];B=N[a+136>>2];p=Q(Q(h*d)-Q(B*g));f=N[a+152>>2];i=Q(p*f);N[a+248>>2]=i;D=n;u=Q(N[a+100>>2]-N[a+184>>2]);w=Q(N[a+104>>2]-N[a+188>>2]);n=Q(Q(g*d)+Q(h*B));d=Q(f*Q(Q(Q(Q(s*u)-Q(w*t))*n)-Q(p*Q(Q(t*u)+Q(s*w)))));s=Q(N[a+116>>2]-aa);t=Q(N[a+120>>2]-$);h=Q(f*Q(Q(Q(Q(h*s)-Q(t*g))*n)-Q(p*Q(Q(g*s)+Q(h*t)))));g=Q(D+Q(Q(Q(y*d)*d)+Q(Q(Q(f*f)*Q(F+H))+Q(h*Q(A*h)))));f=Q(n*f)}N[a+268>>2]=h;N[a+260>>2]=d;N[a+252>>2]=f;N[a+272>>2]=g>Q(0)?Q(Q(1)/g):Q(0);c:{if(K[b+20|0]){g=N[a+156>>2];I=Q(I-Q(Q(g*A)*h));h=Q(H*g);L=Q(L-Q(h*f));M=Q(M-Q(h*i));O=Q(O-Q(Q(g*z)*j));h=Q(G*g);R=Q(R-Q(h*v));S=Q(S-Q(q*h));T=Q(Q(Q(y*g)*d)+T);d=Q(F*g);U=Q(U+Q(d*f));V=Q(V+Q(d*i));W=Q(Q(Q(x*g)*o)+W);d=Q(E*g);X=Q(X+Q(d*v));Y=Q(Y+Q(q*d));break c}J[a+156>>2]=0}c=J[b+28>>2]+P(C,12)|0;N[c+4>>2]=X;N[c>>2]=Y;c=J[b+28>>2];N[(c+P(J[a+160>>2],12)|0)+8>>2]=W;c=c+P(J[a+164>>2],12)|0;N[c+4>>2]=U;N[c>>2]=V;c=J[b+28>>2];N[(c+P(J[a+164>>2],12)|0)+8>>2]=T;c=c+P(J[a+168>>2],12)|0;N[c+4>>2]=R;N[c>>2]=S;c=J[b+28>>2];N[(c+P(J[a+168>>2],12)|0)+8>>2]=O;c=c+P(J[a+172>>2],12)|0;N[c+4>>2]=L;N[c>>2]=M;N[(J[b+28>>2]+P(J[a+172>>2],12)|0)+8>>2]=I}function ab(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;a:{if(!a){break a}d=a-8|0;b=J[a-4>>2];a=b&-8;f=d+a|0;b:{if(b&1){break b}if(!(b&3)){break a}b=J[d>>2];d=d-b|0;if(d>>>0<M[6543]){break a}a=a+b|0;c:{d:{if(J[6544]!=(d|0)){if(b>>>0<=255){e=b>>>3|0;b=J[d+12>>2];c=J[d+8>>2];if((b|0)==(c|0)){i=26156,j=J[6539]&nl(e),J[i>>2]=j;break b}J[c+12>>2]=b;J[b+8>>2]=c;break b}g=J[d+24>>2];b=J[d+12>>2];if((d|0)!=(b|0)){c=J[d+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break c}e=d+20|0;c=J[e>>2];if(!c){c=J[d+16>>2];if(!c){break d}e=d+16|0}while(1){h=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[h>>2]=0;break c}b=J[f+4>>2];if((b&3)!=3){break b}J[6541]=a;J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[f>>2]=a;return}b=0}if(!g){break b}c=J[d+28>>2];e=(c<<2)+26460|0;e:{if(J[e>>2]==(d|0)){J[e>>2]=b;if(b){break e}i=26160,j=J[6540]&nl(c),J[i>>2]=j;break b}J[g+(J[g+16>>2]==(d|0)?16:20)>>2]=b;if(!b){break b}}J[b+24>>2]=g;c=J[d+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[d+20>>2];if(!c){break b}J[b+20>>2]=c;J[c+24>>2]=b}if(d>>>0>=f>>>0){break a}b=J[f+4>>2];if(!(b&1)){break a}f:{g:{h:{i:{if(!(b&2)){if(J[6545]==(f|0)){J[6545]=d;a=J[6542]+a|0;J[6542]=a;J[d+4>>2]=a|1;if(J[6544]!=(d|0)){break a}J[6541]=0;J[6544]=0;return}if(J[6544]==(f|0)){J[6544]=d;a=J[6541]+a|0;J[6541]=a;J[d+4>>2]=a|1;J[a+d>>2]=a;return}a=(b&-8)+a|0;if(b>>>0<=255){e=b>>>3|0;b=J[f+12>>2];c=J[f+8>>2];if((b|0)==(c|0)){i=26156,j=J[6539]&nl(e),J[i>>2]=j;break g}J[c+12>>2]=b;J[b+8>>2]=c;break g}g=J[f+24>>2];b=J[f+12>>2];if((f|0)!=(b|0)){c=J[f+8>>2];J[c+12>>2]=b;J[b+8>>2]=c;break h}e=f+20|0;c=J[e>>2];if(!c){c=J[f+16>>2];if(!c){break i}e=f+16|0}while(1){h=e;b=c;e=b+20|0;c=J[e>>2];if(c){continue}e=b+16|0;c=J[b+16>>2];if(c){continue}break}J[h>>2]=0;break h}J[f+4>>2]=b&-2;J[d+4>>2]=a|1;J[a+d>>2]=a;break f}b=0}if(!g){break g}c=J[f+28>>2];e=(c<<2)+26460|0;j:{if(J[e>>2]==(f|0)){J[e>>2]=b;if(b){break j}i=26160,j=J[6540]&nl(c),J[i>>2]=j;break g}J[g+(J[g+16>>2]==(f|0)?16:20)>>2]=b;if(!b){break g}}J[b+24>>2]=g;c=J[f+16>>2];if(c){J[b+16>>2]=c;J[c+24>>2]=b}c=J[f+20>>2];if(!c){break g}J[b+20>>2]=c;J[c+24>>2]=b}J[d+4>>2]=a|1;J[a+d>>2]=a;if(J[6544]!=(d|0)){break f}J[6541]=a;return}if(a>>>0<=255){b=(a&-8)+26196|0;c=J[6539];a=1<<(a>>>3);k:{if(!(c&a)){J[6539]=a|c;a=b;break k}a=J[b+8>>2]}J[b+8>>2]=d;J[a+12>>2]=d;J[d+12>>2]=b;J[d+8>>2]=a;return}c=31;if(a>>>0<=16777215){b=S(a>>>8|0);c=((a>>>38-b&1)-(b<<1)|0)+62|0}J[d+28>>2]=c;J[d+16>>2]=0;J[d+20>>2]=0;b=(c<<2)+26460|0;l:{m:{e=J[6540];h=1<<c;n:{if(!(e&h)){J[6540]=e|h;J[b>>2]=d;J[d+24>>2]=b;break n}c=a<<((c|0)!=31?25-(c>>>1|0)|0:0);b=J[b>>2];while(1){e=b;if((J[b+4>>2]&-8)==(a|0)){break m}b=c>>>29|0;c=c<<1;h=e+(b&4)|0;b=J[h+16>>2];if(b){continue}break}J[h+16>>2]=d;J[d+24>>2]=e}J[d+12>>2]=d;J[d+8>>2]=d;break l}a=J[e+8>>2];J[a+12>>2]=d;J[e+8>>2]=d;J[d+24>>2]=0;J[d+12>>2]=e;J[d+8>>2]=a}a=J[6547]-1|0;J[6547]=a?a:-1}}function Sf(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=0,x=Q(0),y=Q(0),z=Q(0),A=0,B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0),L=Q(0),M=Q(0),O=Q(0);c=J[a+48>>2];A=J[c+8>>2];J[a+152>>2]=A;m=J[a+52>>2];s=J[m+8>>2];J[a+156>>2]=s;H=N[c+32>>2];h=J[c+32>>2];d=N[c+28>>2];J[a+160>>2]=J[c+28>>2];J[a+164>>2]=h;I=N[m+32>>2];w=J[m+32>>2];o=N[m+28>>2];h=J[m+28>>2];J[a+168>>2]=h;J[a+172>>2]=w;x=N[c+120>>2];N[a+176>>2]=x;y=N[m+120>>2];N[a+180>>2]=y;t=N[c+128>>2];N[a+184>>2]=t;u=N[m+128>>2];N[a+188>>2]=u;k=N[a+96>>2];m=J[b+24>>2];c=P(A,12);h=m+c|0;g=N[h+8>>2];e=_a(g);j=N[a+92>>2];g=Za(g);w=J[b+28>>2];c=c+w|0;B=N[c>>2];C=N[c+4>>2];D=N[c+8>>2];s=P(s,12);c=s+w|0;E=N[c>>2];F=N[c+4>>2];G=N[c+8>>2];l=N[h>>2];c=m+s|0;q=N[c>>2];p=N[h+4>>2];L=N[c+4>>2];M=N[a+72>>2];n=N[c+8>>2];f=N[a+80>>2];O=N[a+68>>2];i=N[a+76>>2];r=Q(Q(g*j)+Q(e*k));N[a+204>>2]=r;z=Q(Q(e*j)-Q(k*g));N[a+200>>2]=z;j=N[a+84>>2];v=N[a+88>>2];k=Q(Q(g*j)+Q(e*v));N[a+196>>2]=k;j=Q(Q(e*j)-Q(v*g));N[a+192>>2]=j;v=_a(n);o=Q(i-o);i=Q(f-I);n=Za(n);f=Q(Q(v*o)-Q(i*n));i=Q(Q(n*o)+Q(v*i));n=Q(Q(f*r)-Q(z*i));N[a+220>>2]=n;o=Q(Q(f*k)-Q(j*i));N[a+212>>2]=o;f=Q(Q(q+f)-l);d=Q(O-d);l=Q(M-H);q=Q(Q(e*d)-Q(g*l));f=Q(f-q);g=Q(Q(g*d)+Q(e*l));e=Q(Q(Q(L+i)-p)-g);i=Q(q+f);d=Q(g+e);g=Q(Q(i*r)-Q(z*d));N[a+216>>2]=g;i=Q(Q(i*k)-Q(j*d));N[a+208>>2]=i;l=Q(x+y);d=Q(Q(Q(u*n)*n)+Q(Q(Q(t*g)*g)+l));N[a+224>>2]=d>Q(0)?Q(Q(1)/d):d;a:{b:{d=Q(Q(Q(u*o)*o)+Q(Q(Q(t*i)*i)+l));if(!(d>Q(0))){J[a+232>>2]=0;J[a+236>>2]=0;J[a+240>>2]=0;J[a+244>>2]=0;break b}J[a+244>>2]=0;J[a+236>>2]=0;J[a+240>>2]=0;N[a+232>>2]=Q(1)/d;l=N[a+144>>2];if(!(l>Q(0))){break b}q=N[b>>2];p=Q(q*Q(Q(q*l)+N[a+148>>2]));p=p>Q(0)?Q(Q(1)/p):p;N[a+244>>2]=p;N[a+240>>2]=Q(l*Q(q*Q(Q(f*j)+Q(e*k))))*p;d=Q(d+p);N[a+236>>2]=d>Q(0)?Q(Q(1)/d):d;break a}J[a+108>>2]=0}c:{if(K[a+140|0]){N[a+120>>2]=Q(j*f)+Q(e*k);break c}J[a+112>>2]=0;J[a+116>>2]=0}d:{if(K[a+141|0]){e=Q(t+u);N[a+228>>2]=e;if(!(e>Q(0))){break d}N[a+228>>2]=Q(1)/e;break d}J[a+104>>2]=0;J[a+228>>2]=0}e:{if(K[b+20|0]){f=N[b+8>>2];e=Q(f*N[a+100>>2]);N[a+100>>2]=e;d=Q(f*N[a+108>>2]);N[a+108>>2]=d;f=Q(f*N[a+104>>2]);N[a+104>>2]=f;l=k;k=Q(Q(d+N[a+112>>2])-N[a+116>>2]);r=Q(Q(r*e)+Q(l*k));F=Q(F+Q(y*r));j=Q(Q(z*e)+Q(j*k));E=Q(E+Q(y*j));C=Q(C-Q(x*r));B=Q(B-Q(x*j));G=Q(Q(u*Q(f+Q(Q(e*n)+Q(o*k))))+G);D=Q(D-Q(t*Q(f+Q(Q(e*g)+Q(i*k)))));break e}J[a+100>>2]=0;J[a+104>>2]=0;J[a+116>>2]=0;J[a+108>>2]=0;J[a+112>>2]=0}h=J[b+28>>2]+P(A,12)|0;N[h+4>>2]=C;N[h>>2]=B;h=J[b+28>>2];N[(h+P(J[a+152>>2],12)|0)+8>>2]=D;h=h+P(J[a+156>>2],12)|0;N[h+4>>2]=F;N[h>>2]=E;N[(J[b+28>>2]+P(J[a+156>>2],12)|0)+8>>2]=G}function Kg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=0,u=0,v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0,D=Q(0),E=Q(0),F=Q(0),G=Q(0),K=0,L=0,M=Q(0),O=Q(0),R=0,S=0;g=J[J[a+48>>2]+12>>2];a=J[J[a+52>>2]+12>>2];f=La-96|0;La=f;l=b;J[b+60>>2]=0;e=N[a+8>>2];k=N[g+8>>2];J[f+92>>2]=0;r=Q(k+e);e=wd(f+92|0,g,c,a,d);a:{if(r<e){break a}J[f+88>>2]=0;k=wd(f+88|0,a,d,g,c);if(k>r){break a}B=k>Q(e+Q(.0005000000237487257));b:{if(B){n=2;b=c;c=g;g=f+88|0;break b}n=1;b=d;d=c;c=a;a=g;g=f+92|0}v=N[b>>2];w=N[b+4>>2];F=N[d>>2];G=N[d+4>>2];k=N[b+12>>2];p=N[b+8>>2];h=N[d+12>>2];m=N[d+8>>2];s=J[g>>2];J[l+56>>2]=n;K=s<<3;x=Q(-p);d=0;n=J[c+148>>2];c:{if((n|0)<=0){break c}b=a+K|0;e=N[b+84>>2];i=N[b+88>>2];j=Q(Q(m*e)+Q(h*i));e=Q(Q(h*e)-Q(i*m));i=Q(Q(k*j)-Q(p*e));j=Q(Q(k*e)+Q(p*j));C=c+84|0;R=n&1;d:{if((n|0)==1){e=Q(34028234663852886e22);g=0;break d}S=n&-2;e=Q(34028234663852886e22);g=0;b=0;while(1){t=(g<<3)+C|0;o=Q(Q(j*N[t>>2])+Q(i*N[t+4>>2]));t=o<e;L=g|1;u=(L<<3)+C|0;q=Q(Q(j*N[u>>2])+Q(i*N[u+4>>2]));e=t?o:e;u=q<e;e=u?q:e;d=u?L:t?g:d;g=g+2|0;b=b+2|0;if((S|0)!=(b|0)){continue}break}}if(!R){break c}b=(g<<3)+C|0;d=Q(Q(j*N[b>>2])+Q(i*N[b+4>>2]))<e?g:d}b=c+20|0;c=b+(d<<3)|0;e=N[c>>2];i=N[c+4>>2];I[f+74>>1]=1;H[f+73|0]=d;H[f+72|0]=s;N[f+68>>2]=w+Q(Q(p*e)+Q(k*i));N[f+64>>2]=v+Q(Q(k*e)+Q(i*x));c=d+1|0;c=(c|0)<(n|0)?c:0;b=b+(c<<3)|0;e=N[b>>2];i=N[b+4>>2];H[f+84|0]=s;N[f+80>>2]=w+Q(Q(p*e)+Q(k*i));I[f+86>>1]=1;H[f+85|0]=c;N[f+76>>2]=v+Q(Q(k*e)+Q(i*x));b=s+1|0;b=(b|0)<J[a+148>>2]?b:0;a=a+20|0;c=(b<<3)+a|0;q=N[c>>2];a=a+K|0;y=N[a>>2];e=Q(q-y);z=N[c+4>>2];A=N[a+4>>2];i=Q(z-A);j=Q(Y(Q(Q(e*e)+Q(i*i))));if(!(j<Q(1.1920928955078125e-7))){j=Q(Q(1)/j);i=Q(i*j);e=Q(e*j)}j=Q(Q(m*e)+Q(h*i));N[f+60>>2]=j;D=Q(-m);o=Q(Q(h*e)+Q(i*D));N[f+56>>2]=o;N[f+4>>2]=-j;E=Q(-o);N[f>>2]=E;M=Q(F+Q(Q(h*y)+Q(A*D)));O=Q(G+Q(Q(m*y)+Q(h*A)));if((hc(f+32|0,f- -64|0,f,Q(r-Q(Q(o*M)+Q(O*j))),s)|0)<2){break a}if((hc(f,f+32|0,f+56|0,Q(r+Q(Q(o*Q(F+Q(Q(h*q)+Q(z*D))))+Q(Q(G+Q(Q(m*q)+Q(h*z)))*j))),b)|0)<2){break a}N[l+48>>2]=Q(y+q)*Q(.5);N[l+40>>2]=i;N[l+52>>2]=Q(A+z)*Q(.5);N[l+44>>2]=-e;g=0;e=N[f>>2];h=N[f+4>>2];m=Q(Q(j*M)-Q(O*o));e:{if(!(Q(Q(Q(j*e)+Q(h*E))-m)<=r)){break e}e=Q(e-v);h=Q(h-w);N[l+4>>2]=Q(x*e)+Q(k*h);N[l>>2]=Q(k*e)+Q(p*h);a=J[f+8>>2];J[l+16>>2]=a;g=1;if(!B){break e}H[l+17|0]=a;H[l+19|0]=a>>>16;H[l+18|0]=a>>>24;H[l+16|0]=a>>>8}e=N[f+12>>2];h=N[f+16>>2];if(Q(Q(Q(j*e)+Q(h*E))-m)<=r){a=P(g,20)+l|0;e=Q(e-v);h=Q(h-w);N[a+4>>2]=Q(x*e)+Q(k*h);N[a>>2]=Q(k*e)+Q(p*h);b=J[f+20>>2];J[a+16>>2]=b;if(B){H[a+17|0]=b;H[a+19|0]=b>>>16;H[a+18|0]=b>>>24;H[a+16|0]=b>>>8}g=g+1|0}J[l+60>>2]=g}La=f+96|0}function Oe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;a:{g=a+16|0;e=J[g>>2];if(!e){break a}c=g;d=e;while(1){f=M[d+16>>2]<b>>>0;c=f?c:d;d=J[(f?d+4|0:d)>>2];if(d){continue}break}if((c|0)==(g|0)|M[c+16>>2]>b>>>0){break a}b=J[c+4>>2];b:{if(!b){b=c;while(1){d=J[b+8>>2];g=J[d>>2]!=(b|0);b=d;if(g){continue}break}break b}while(1){d=b;b=J[b>>2];if(b){continue}break}}if(J[a+12>>2]==(c|0)){J[a+12>>2]=d}J[a+20>>2]=J[a+20>>2]-1;d=e;g=c;c:{d:{b=c;c=J[b>>2];if(c){a=J[g+4>>2];if(!a){break d}while(1){b=a;a=J[a>>2];if(a){continue}break}}c=J[b+4>>2];if(c){break d}c=0;e=1;break c}J[c+8>>2]=J[b+8>>2];e=0}f=J[b+8>>2];a=J[f>>2];e:{if((b|0)==(a|0)){J[f>>2]=c;if((b|0)==(d|0)){a=0;d=c;break e}a=J[f+4>>2];break e}J[f+4>>2]=c}h=!K[b+12|0];if((b|0)!=(g|0)){f=J[g+8>>2];J[b+8>>2]=f;J[f+(((g|0)!=J[J[g+8>>2]>>2])<<2)>>2]=b;f=J[g>>2];J[b>>2]=f;J[f+8>>2]=b;f=J[g+4>>2];J[b+4>>2]=f;if(f){J[f+8>>2]=b}H[b+12|0]=K[g+12|0];d=(d|0)==(g|0)?b:d}f:{if(h|!d){break f}if(e){while(1){b=K[a+12|0];g:{e=J[a+8>>2];if(J[e>>2]!=(a|0)){if(!b){H[a+12|0]=1;H[e+12|0]=0;c=J[e+4>>2];b=J[c>>2];J[e+4>>2]=b;if(b){J[b+8>>2]=e}J[c+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=c;J[c>>2]=e;J[e+8>>2]=c;b=a;a=J[a>>2];d=(a|0)==(d|0)?b:d;a=J[a+4>>2]}h:{i:{b=J[a>>2];j:{if(!(K[b+12|0]?0:b)){c=J[a+4>>2];if(K[c+12|0]?0:c){break j}H[a+12|0]=0;a=J[a+8>>2];k:{if((d|0)==(a|0)){a=d;break k}if(K[a+12|0]){break g}}H[a+12|0]=1;break f}c=J[a+4>>2];if(!c){break i}}if(K[c+12|0]){break i}b=a;break h}H[b+12|0]=1;H[a+12|0]=0;c=J[b+4>>2];J[a>>2]=c;if(c){J[c+8>>2]=a}J[b+8>>2]=J[a+8>>2];c=J[a+8>>2];J[((J[c>>2]!=(a|0))<<2)+c>>2]=b;J[b+4>>2]=a;J[a+8>>2]=b;c=a}d=J[b+8>>2];H[b+12|0]=K[d+12|0];H[d+12|0]=1;H[c+12|0]=1;b=J[d+4>>2];a=J[b>>2];J[d+4>>2]=a;if(a){J[a+8>>2]=d}J[b+8>>2]=J[d+8>>2];a=J[d+8>>2];J[(((d|0)!=J[a>>2])<<2)+a>>2]=b;J[b>>2]=d;J[d+8>>2]=b;break f}if(!b){H[a+12|0]=1;H[e+12|0]=0;b=J[a+4>>2];J[e>>2]=b;if(b){J[b+8>>2]=e}J[a+8>>2]=J[e+8>>2];b=J[e+8>>2];J[(((e|0)!=J[b>>2])<<2)+b>>2]=a;J[a+4>>2]=e;J[e+8>>2]=a;d=(d|0)==(e|0)?a:d;a=J[e>>2]}c=J[a>>2];l:{if(!(!c|K[c+12|0])){b=a;break l}b=J[a+4>>2];if(!(K[b+12|0]?0:b)){H[a+12|0]=0;a=J[a+8>>2];if((a|0)!=(d|0)?K[a+12|0]:0){break g}H[a+12|0]=1;break f}if(c){if(!K[c+12|0]){b=a;break l}b=J[a+4>>2]}H[b+12|0]=1;H[a+12|0]=0;c=J[b>>2];J[a+4>>2]=c;if(c){J[c+8>>2]=a}J[b+8>>2]=J[a+8>>2];c=J[a+8>>2];J[((J[c>>2]!=(a|0))<<2)+c>>2]=b;J[b>>2]=a;J[a+8>>2]=b;c=a}d=J[b+8>>2];H[b+12|0]=K[d+12|0];H[d+12|0]=1;H[c+12|0]=1;b=J[d>>2];a=J[b+4>>2];J[d>>2]=a;if(a){J[a+8>>2]=d}J[b+8>>2]=J[d+8>>2];a=J[d+8>>2];J[(((d|0)!=J[a>>2])<<2)+a>>2]=b;J[b+4>>2]=d;J[d+8>>2]=b;break f}b=a;a=J[a+8>>2];a=J[(((b|0)==J[a>>2])<<2)+a>>2];continue}}H[c+12|0]=1}ab(g)}}function Yf(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=0,g=0,h=Q(0),i=Q(0),j=0,k=0,l=Q(0),m=Q(0),n=0,o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=0,C=0;g=La-48|0;La=g;n=J[a+48>>2];B=J[n+8>>2];J[a+116>>2]=B;j=J[a+52>>2];C=J[j+8>>2];J[a+120>>2]=C;o=N[n+32>>2];f=J[n+32>>2];c=N[n+28>>2];k=J[n+28>>2];J[a+140>>2]=k;J[a+144>>2]=f;s=N[j+32>>2];f=J[j+32>>2];l=N[j+28>>2];J[a+148>>2]=J[j+28>>2];J[a+152>>2]=f;t=N[n+120>>2];N[a+156>>2]=t;u=N[j+120>>2];N[a+160>>2]=u;q=N[n+128>>2];N[a+164>>2]=q;r=N[j+128>>2];N[a+168>>2]=r;i=N[a+84>>2];n=J[b+24>>2];k=P(B,12);p=N[(n+k|0)+8>>2];e=Za(p);h=N[a+80>>2];d=_a(p);j=J[b+28>>2];k=j+k|0;v=N[k>>2];w=N[k+4>>2];x=N[k+8>>2];f=j;j=P(C,12);k=f+j|0;y=N[k>>2];z=N[k+4>>2];A=N[k+8>>2];m=N[(j+n|0)+8>>2];h=Q(h-c);i=Q(i-o);c=Q(Q(d*h)-Q(e*i));N[a+124>>2]=c;i=Q(Q(e*h)+Q(d*i));N[a+128>>2]=i;e=N[a+92>>2];d=Za(m);h=N[a+88>>2];o=_a(m);l=Q(h-l);h=Q(e-s);e=Q(Q(o*l)-Q(d*h));N[a+132>>2]=e;d=Q(Q(d*l)+Q(o*h));N[a+136>>2]=d;h=Q(Q(c*q)+Q(r*e));N[g+40>>2]=h;l=Q(q+r);N[g+44>>2]=l;N[g+32>>2]=h;h=Q(t+u);N[g+28>>2]=Q(r*Q(e*e))+Q(Q(q*Q(c*c))+h);o=Q(-i);s=Q(Q(q*o)-Q(r*d));N[g+36>>2]=s;N[g+20>>2]=s;c=Q(Q(q*Q(c*o))-Q(r*Q(e*d)));N[g+24>>2]=c;N[g+12>>2]=Q(r*Q(d*d))+Q(Q(q*Q(i*i))+h);N[g+16>>2]=c;a:{if(N[a+68>>2]>Q(0)){Ud(g+12|0,a+172|0);c=N[b>>2];d=N[a+68>>2];e=Q(c*Q(Q(c*d)+N[a+72>>2]));e=e!=Q(0)?Q(Q(1)/e):Q(0);N[a+100>>2]=e;N[a+76>>2]=Q(d*Q(c*Q(Q(m-p)-N[a+96>>2])))*e;c=Q(l+e);N[a+204>>2]=c!=Q(0)?Q(Q(1)/c):Q(0);break a}f=a+172|0;if(l==Q(0)){Ud(g+12|0,f);J[a+76>>2]=0;J[a+100>>2]=0;break a}m=N[g+24>>2];e=N[g+40>>2];p=N[g+28>>2];d=N[g+36>>2];h=Q(Q(m*e)-Q(p*d));i=N[g+12>>2];l=N[g+44>>2];o=Q(p*l);c=N[g+32>>2];s=Q(l*Q(-m));c=Q(Q(N[g+20>>2]*h)+Q(Q(i*Q(o-Q(e*c)))+Q(N[g+16>>2]*Q(Q(c*d)+s))));c=c!=Q(0)?Q(Q(1)/c):c;N[f+32>>2]=Q(Q(i*p)-Q(m*m))*c;m=Q(c*Q(Q(d*m)-Q(e*i)));N[f+28>>2]=m;p=Q(h*c);N[f+24>>2]=p;N[f+20>>2]=m;N[f+16>>2]=c*Q(Q(i*l)-Q(d*d));d=Q(c*Q(Q(d*e)+s));N[f+12>>2]=d;N[f+8>>2]=p;N[f+4>>2]=d;N[f>>2]=c*Q(o-Q(e*e));J[a+76>>2]=0;J[a+100>>2]=0}b:{if(K[b+20|0]){d=N[b+8>>2];c=Q(d*N[a+104>>2]);N[a+104>>2]=c;e=Q(d*N[a+108>>2]);N[a+108>>2]=e;d=Q(d*N[a+112>>2]);N[a+112>>2]=d;A=Q(Q(r*Q(d+Q(Q(N[a+132>>2]*e)-Q(c*N[a+136>>2]))))+A);x=Q(x-Q(q*Q(d+Q(Q(N[a+124>>2]*e)-Q(c*N[a+128>>2])))));y=Q(y+Q(u*c));v=Q(v-Q(t*c));z=Q(z+Q(u*e));w=Q(w-Q(t*e));break b}J[a+104>>2]=0;J[a+108>>2]=0;J[a+112>>2]=0}f=J[b+28>>2]+P(J[a+116>>2],12)|0;N[f+4>>2]=w;N[f>>2]=v;f=J[b+28>>2];N[(f+P(J[a+116>>2],12)|0)+8>>2]=x;f=f+P(J[a+120>>2],12)|0;N[f+4>>2]=z;N[f>>2]=y;N[(J[b+28>>2]+P(J[a+120>>2],12)|0)+8>>2]=A;La=g+48|0}function uh(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=0,H=Q(0),I=Q(0),K=Q(0),L=Q(0),M=Q(0),O=Q(0),R=Q(0),S=Q(0);f=J[a+76>>2];k=J[b+24>>2];G=k+P(J[a+172>>2],12)|0;H=N[G+4>>2];I=N[G>>2];o=k+P(J[a+168>>2],12)|0;u=N[o+8>>2];K=N[o+4>>2];L=N[o>>2];o=k+P(J[a+164>>2],12)|0;M=N[o+4>>2];O=N[o>>2];k=k+P(J[a+160>>2],12)|0;v=N[k+8>>2];R=N[k+4>>2];S=N[k>>2];w=N[o+8>>2];x=N[G+8>>2];r=_a(x);s=Za(x);g=_a(w);n=Za(w);a:{if((f|0)==1){y=N[a+224>>2];z=N[a+232>>2];p=Q(y+z);A=Q(1);B=Q(1);c=Q(Q(v-u)-N[a+140>>2]);break a}q=N[a+124>>2];l=_a(u);j=N[a+128>>2];m=Za(u);d=N[a+180>>2];c=N[a+96>>2];i=_a(v);e=Q(N[a+92>>2]-N[a+176>>2]);h=Za(v);c=Q(c-d);d=Q(Q(i*e)-Q(h*c));C=Q(Q(m*q)+Q(l*j));D=Q(Q(l*q)-Q(j*m));c=Q(Q(h*e)+Q(i*c));A=Q(Q(d*C)-Q(D*c));y=N[a+224>>2];e=Q(N[a+108>>2]-N[a+192>>2]);h=Q(N[a+112>>2]-N[a+196>>2]);B=Q(Q(Q(Q(l*e)-Q(m*h))*C)-Q(D*Q(Q(m*e)+Q(l*h))));z=N[a+232>>2];p=Q(Q(Q(y*A)*A)+Q(Q(Q(B*z)*B)+Q(N[a+216>>2]+N[a+208>>2])));d=Q(Q(S-L)+d);c=Q(Q(R-K)+c);c=Q(Q(q*Q(Q(Q(l*d)+Q(m*c))-e))+Q(j*Q(Q(Q(l*c)-Q(m*d))-h)))}j=Q(0);d=Q(p+Q(0));b:{if(J[a+80>>2]==1){i=Q(Q(w-x)-N[a+144>>2]);e=N[a+152>>2];E=N[a+228>>2];F=N[a+236>>2];t=Q(Q(Q(e*e)*Q(E+F))+d);h=e;p=e;d=Q(0);break b}t=d;E=N[a+228>>2];e=N[a+152>>2];h=Q(N[a+100>>2]-N[a+184>>2]);d=Q(N[a+104>>2]-N[a+188>>2]);i=Q(Q(g*h)-Q(d*n));l=N[a+132>>2];m=N[a+136>>2];q=Q(Q(s*l)+Q(r*m));j=Q(Q(r*l)-Q(m*s));d=Q(Q(n*h)+Q(g*d));h=Q(e*Q(Q(i*q)-Q(j*d)));g=Q(N[a+116>>2]-N[a+200>>2]);n=Q(N[a+120>>2]-N[a+204>>2]);p=Q(e*Q(Q(Q(Q(r*g)-Q(n*s))*q)-Q(j*Q(Q(s*g)+Q(r*n)))));F=N[a+236>>2];t=Q(t+Q(Q(Q(E*h)*h)+Q(Q(Q(e*e)*Q(N[a+220>>2]+N[a+212>>2]))+Q(p*Q(p*F)))));i=Q(Q(O-I)+i);d=Q(Q(M-H)+d);i=Q(Q(Q(Q(Q(r*i)+Q(s*d))-g)*l)+Q(m*Q(Q(Q(r*d)-Q(s*i))-n)));j=Q(j*e);d=Q(q*e)}g=Q(0);g=t>Q(0)?Q(Q(-Q(Q(Q(e*i)+c)-N[a+148>>2]))/t):g;n=N[a+220>>2];i=N[a+216>>2];e=N[a+212>>2];c=Q(g*N[a+208>>2]);N[k+4>>2]=R+Q(C*c);N[k>>2]=S+Q(D*c);f=J[b+24>>2];N[(f+P(J[a+160>>2],12)|0)+8>>2]=Q(Q(g*y)*A)+v;f=f+P(J[a+164>>2],12)|0;c=Q(g*e);N[f+4>>2]=M+Q(d*c);N[f>>2]=O+Q(j*c);f=J[b+24>>2];N[(f+P(J[a+164>>2],12)|0)+8>>2]=Q(Q(g*E)*h)+w;f=f+P(J[a+168>>2],12)|0;c=Q(g*i);N[f+4>>2]=K-Q(C*c);N[f>>2]=L-Q(D*c);f=J[b+24>>2];N[(f+P(J[a+168>>2],12)|0)+8>>2]=u-Q(Q(g*z)*B);f=f+P(J[a+172>>2],12)|0;c=Q(g*n);N[f+4>>2]=H-Q(d*c);N[f>>2]=I-Q(j*c);N[(J[b+24>>2]+P(J[a+172>>2],12)|0)+8>>2]=x-Q(Q(g*F)*p);return 1}function Rd(a,b){var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=0,h=0,i=0,j=0,k=0,l=0,m=Q(0),n=Q(0),o=0,p=0,q=0,r=0,s=Q(0),t=0,u=0,v=0,w=0,x=0;k=J[a+4>>2];h=k+P(b,40)|0;p=J[h+24>>2];if((p|0)==-1){return b}if(J[h+32>>2]<2){return b}j=P(b,40)+k|0;q=J[j+28>>2];g=P(q,40)+k|0;t=J[g+32>>2];l=P(p,40)+k|0;u=J[l+32>>2];i=t-u|0;a:{if((i|0)>=2){o=J[g+24>>2];J[g+24>>2]=b;J[g+20>>2]=J[j+20>>2];r=J[g+28>>2];J[j+20>>2]=q;t=P(r,40);v=t+k|0;p=P(o,40);w=p+k|0;i=J[g+20>>2];if((i|0)!=-1){a=J[a+4>>2]+P(i,40)|0;a=J[a+24>>2]==(b|0)?a+24|0:a+28|0}J[a>>2]=q;t=k+t|0;a=J[t+32>>2];p=k+p|0;i=J[p+32>>2];b:{if((a|0)<(i|0)){x=p+32|0;J[g+28>>2]=o;J[j+28>>2]=r;J[t+20>>2]=b;f=N[v>>2];e=N[l>>2];d=N[l+4>>2];c=N[v+4>>2];m=c>d?d:c;N[h+4>>2]=m;n=e<f?e:f;N[h>>2]=n;s=N[v+8>>2];e=N[l+8>>2];d=N[l+12>>2];c=N[v+12>>2];f=c<d?d:c;N[h+12>>2]=f;e=e>s?e:s;N[h+8>>2]=e;d=N[w>>2];c=N[w+4>>2];N[g+4>>2]=c>m?m:c;N[g>>2]=d>n?n:d;c=N[w+12>>2];d=c<f?f:c;c=N[w+8>>2];c=c<e?e:c;break b}x=t+32|0;J[g+28>>2]=r;J[j+28>>2]=o;J[p+20>>2]=b;f=N[w>>2];e=N[l>>2];d=N[l+4>>2];c=N[w+4>>2];m=c>d?d:c;N[h+4>>2]=m;n=e<f?e:f;N[h>>2]=n;s=N[w+8>>2];e=N[l+8>>2];d=N[l+12>>2];c=N[w+12>>2];f=c<d?d:c;N[h+12>>2]=f;e=e>s?e:s;N[h+8>>2]=e;d=N[v>>2];c=N[v+4>>2];N[g+4>>2]=c>m?m:c;N[g>>2]=d>n?n:d;c=N[v+12>>2];d=c<f?f:c;a=i;c=N[v+8>>2];c=c<e?e:c}i=g+32|0;N[g+8>>2]=c;a=(a|0)<(u|0)?u:a;break a}if((i|0)>-2){return b}r=P(p,40)+k|0;u=J[r+24>>2];J[r+24>>2]=b;i=P(b,40)+k|0;J[r+20>>2]=J[i+20>>2];q=J[r+28>>2];J[i+20>>2]=p;i=J[r+20>>2];if((i|0)!=-1){a=J[a+4>>2]+P(i,40)|0;a=J[a+24>>2]==(b|0)?a+24|0:a+28|0}J[a>>2]=p;j=P(q,40)+k|0;a=J[j+32>>2];o=P(u,40)+k|0;i=J[o+32>>2];c:{if((a|0)<(i|0)){x=o+32|0;J[r+28>>2]=u;J[h+24>>2]=q;J[(P(q,40)+k|0)+20>>2]=b;f=N[j>>2];e=N[g>>2];d=N[g+4>>2];c=N[j+4>>2];m=c>d?d:c;N[h+4>>2]=m;n=e<f?e:f;N[h>>2]=n;s=N[j+8>>2];e=N[g+8>>2];d=N[g+12>>2];c=N[j+12>>2];f=c<d?d:c;N[h+12>>2]=f;e=e>s?e:s;N[h+8>>2]=e;d=N[o>>2];c=N[o+4>>2];N[l+4>>2]=c>m?m:c;N[l>>2]=d>n?n:d;c=N[o+12>>2];d=c<f?f:c;c=N[o+8>>2];c=c<e?e:c;break c}x=j+32|0;J[r+28>>2]=q;J[h+24>>2]=u;J[(P(u,40)+k|0)+20>>2]=b;f=N[o>>2];e=N[g>>2];d=N[g+4>>2];c=N[o+4>>2];m=c>d?d:c;N[h+4>>2]=m;n=e<f?e:f;N[h>>2]=n;s=N[o+8>>2];e=N[g+8>>2];d=N[g+12>>2];c=N[o+12>>2];f=c<d?d:c;N[h+12>>2]=f;e=e>s?e:s;N[h+8>>2]=e;d=N[j>>2];c=N[j+4>>2];N[l+4>>2]=c>m?m:c;N[l>>2]=d>n?n:d;c=N[j+12>>2];d=c<f?f:c;a=i;c=N[j+8>>2];c=c<e?e:c}i=l+32|0;N[l+8>>2]=c;q=p;a=(a|0)<(t|0)?t:a}b=a+1|0;J[h+32>>2]=b;a=J[x>>2];N[(P(q,40)+k|0)+12>>2]=d;J[i>>2]=((a|0)<(b|0)?b:a)+1;return q}function Jg(a,b){a=a|0;b=b|0;var c=Q(0),d=0,e=Q(0),f=0,g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=0,G=Q(0),H=Q(0),I=0,L=Q(0),M=Q(0),O=Q(0);f=J[a+48>>2];y=J[f+8>>2];J[a+144>>2]=y;h=J[a+52>>2];F=J[h+8>>2];J[a+148>>2]=F;G=N[f+32>>2];d=J[f+32>>2];n=N[f+28>>2];J[a+152>>2]=J[f+28>>2];J[a+156>>2]=d;H=N[h+32>>2];I=J[h+32>>2];m=N[h+28>>2];d=J[h+28>>2];J[a+160>>2]=d;J[a+164>>2]=I;v=N[f+120>>2];N[a+168>>2]=v;w=N[h+120>>2];N[a+172>>2]=w;o=N[f+128>>2];N[a+176>>2]=o;t=N[h+128>>2];N[a+180>>2]=t;f=P(y,12);h=J[b+28>>2];d=f+h|0;z=N[d>>2];A=N[d+4>>2];B=N[d+8>>2];d=h;h=P(F,12);d=d+h|0;C=N[d>>2];D=N[d+4>>2];E=N[d+8>>2];d=f;f=J[b+24>>2];d=d+f|0;k=N[d>>2];f=f+h|0;j=N[f>>2];x=N[d+4>>2];L=N[f+4>>2];M=N[a+72>>2];l=N[f+8>>2];i=N[a+80>>2];p=N[a+88>>2];c=N[d+8>>2];O=N[a+68>>2];g=N[a+76>>2];q=N[a+84>>2];e=Q(o+t);N[a+228>>2]=e==Q(0)?Q(1):e;e=_a(c);c=Za(c);u=Q(Q(q*c)+Q(e*p));N[a+188>>2]=u;p=Q(Q(e*q)-Q(p*c));N[a+184>>2]=p;r=N[a+92>>2];s=N[a+96>>2];q=Q(Q(c*r)+Q(e*s));N[a+196>>2]=q;r=Q(Q(e*r)-Q(s*c));N[a+192>>2]=r;s=_a(l);m=Q(g-m);g=Q(i-H);l=Za(l);i=Q(Q(s*m)-Q(g*l));g=Q(Q(l*m)+Q(s*g));l=Q(Q(i*u)-Q(p*g));N[a+212>>2]=l;m=Q(Q(i*q)-Q(r*g));N[a+204>>2]=m;s=Q(Q(j-k)+i);i=Q(O-n);k=Q(M-G);j=Q(Q(e*i)-Q(c*k));n=Q(s-j);c=Q(Q(c*i)+Q(e*k));e=Q(Q(Q(L-x)+g)-c);g=Q(j+n);c=Q(c+e);i=Q(Q(g*u)-Q(p*c));N[a+208>>2]=i;g=Q(Q(g*q)-Q(r*c));N[a+200>>2]=g;c=Q(o*g);k=Q(t*m);j=Q(c+k);N[a+224>>2]=j;N[a+220>>2]=j;j=Q(c*g);c=Q(v+w);N[a+216>>2]=Q(k*m)+Q(j+c);c=Q(Q(Q(t*l)*l)+Q(Q(Q(o*i)*i)+c));N[a+236>>2]=c>Q(0)?Q(Q(1)/c):c;a:{if(K[a+140|0]){N[a+232>>2]=Q(p*n)+Q(u*e);break a}J[a+116>>2]=0;J[a+120>>2]=0}if(!K[a+141|0]){J[a+112>>2]=0}b:{if(K[b+20|0]){e=N[b+8>>2];c=Q(e*N[a+104>>2]);N[a+104>>2]=c;k=Q(e*N[a+112>>2]);N[a+112>>2]=k;j=Q(e*N[a+116>>2]);N[a+116>>2]=j;x=Q(e*N[a+120>>2]);N[a+120>>2]=x;n=Q(e*N[a+108>>2]);N[a+108>>2]=n;e=Q(Q(k+j)-x);E=Q(Q(t*Q(Q(e*l)+Q(Q(c*m)+n)))+E);B=Q(B-Q(o*Q(Q(e*i)+Q(Q(c*g)+n))));o=Q(Q(q*c)+Q(u*e));D=Q(D+Q(w*o));e=Q(Q(r*c)+Q(p*e));C=Q(C+Q(w*e));A=Q(A-Q(v*o));z=Q(z-Q(v*e));break b}J[a+104>>2]=0;J[a+108>>2]=0;J[a+120>>2]=0;J[a+112>>2]=0;J[a+116>>2]=0}d=J[b+28>>2]+P(y,12)|0;N[d+4>>2]=A;N[d>>2]=z;d=J[b+28>>2];N[(d+P(J[a+144>>2],12)|0)+8>>2]=B;d=d+P(J[a+148>>2],12)|0;N[d+4>>2]=D;N[d>>2]=C;N[(J[b+28>>2]+P(J[a+148>>2],12)|0)+8>>2]=E}function Hg(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0);e=La+-64|0;La=e;h=N[a+156>>2];u=N[a+72>>2];v=J[b+24>>2];m=v+P(J[a+144>>2],12)|0;x=N[m+8>>2];c=_a(x);n=N[a+152>>2];o=N[a+68>>2];k=Za(x);r=N[a+164>>2];j=N[a+80>>2];v=v+P(J[a+148>>2],12)|0;y=N[v+8>>2];l=_a(y);s=N[a+160>>2];f=N[a+76>>2];p=Za(y);w=N[a+92>>2];t=N[a+96>>2];z=Q(Q(c*w)-Q(k*t));D=N[v>>2];f=Q(f-s);j=Q(j-r);r=Q(Q(l*f)-Q(p*j));E=N[m>>2];n=Q(o-n);h=Q(u-h);o=Q(Q(c*n)-Q(k*h));d=Q(Q(Q(D+r)-E)-o);s=Q(Q(k*w)+Q(c*t));F=N[v+4>>2];l=Q(Q(p*f)+Q(l*j));G=N[m+4>>2];p=Q(Q(k*n)+Q(c*h));g=Q(Q(Q(F+l)-G)-p);f=Q(Q(z*d)+Q(s*g));w=Q(-f);u=f>Q(0)?f:w;h=Q(o+d);n=Q(p+g);p=Q(Q(h*s)-Q(z*n));j=h;h=N[a+84>>2];o=N[a+88>>2];t=Q(Q(k*h)+Q(c*o));A=Q(Q(c*h)-Q(o*k));n=Q(Q(j*t)-Q(A*n));h=Q(Q(r*s)-Q(z*l));r=Q(Q(r*t)-Q(A*l));B=Q(Q(y-x)-N[a+100>>2]);C=Q(-B);k=N[a+180>>2];l=N[a+176>>2];o=N[a+172>>2];j=N[a+168>>2];a:{b:{if(!K[a+140|0]){break b}c=Q(Q(A*d)+Q(t*g));g=N[a+128>>2];d=N[a+124>>2];i=Q(g-d);c:{if((i>Q(0)?i:Q(-i))<Q(.009999999776482582)){q=c>Q(0)?c:Q(-c);break c}if(c<=d){q=Q(d-c);c=Q(c-d);c=c<Q(0)?c:Q(0);break c}if(!(c>=g)){break b}q=Q(c-g);c=q>Q(0)?q:Q(0)}f=Q(l*n);d=Q(k*r);g=Q(f+d);N[e+56>>2]=g;N[e+48>>2]=g;g=Q(l+k);N[e+44>>2]=g==Q(0)?Q(1):g;g=Q(j+o);N[e+60>>2]=Q(d*r)+Q(Q(f*n)+g);f=Q(l*p);d=Q(k*h);i=Q(f+d);N[e+40>>2]=i;N[e+32>>2]=i;i=Q(Q(f*n)+Q(r*d));N[e+52>>2]=i;N[e+36>>2]=i;N[e+28>>2]=Q(d*h)+Q(Q(f*p)+g);N[e+12>>2]=-c;N[e+8>>2]=C;N[e+4>>2]=w;u=q<u?u:q;Wd(e+16|0,e+28|0,e+4|0);q=N[e+24>>2];f=N[e+20>>2];c=N[e+16>>2];break a}c=Q(k*h);d=Q(l*p);g=Q(Q(c*h)+Q(Q(d*p)+Q(j+o)));i=Q(l+k);i=i==Q(0)?Q(1):i;c=Q(d+c);d=Q(Q(g*i)-Q(c*c));d=d!=Q(0)?Q(Q(1)/d):d;f=Q(Q(Q(g*C)+Q(f*c))*d);c=Q(Q(Q(i*w)+Q(B*c))*d)}m=J[b+24>>2]+P(J[a+144>>2],12)|0;s=Q(Q(s*c)+Q(t*q));N[m+4>>2]=G-Q(j*s);d=j;j=Q(Q(z*c)+Q(A*q));N[m>>2]=E-Q(d*j);m=J[b+24>>2];N[(m+P(J[a+144>>2],12)|0)+8>>2]=x-Q(l*Q(Q(q*n)+Q(Q(c*p)+f)));m=m+P(J[a+148>>2],12)|0;N[m+4>>2]=F+Q(o*s);N[m>>2]=D+Q(o*j);N[(J[b+24>>2]+P(J[a+148>>2],12)|0)+8>>2]=Q(k*Q(Q(q*r)+Q(Q(c*h)+f)))+y;La=e- -64|0;return(B>Q(0)?B:C)<=Q(.03490658849477768)&u<=Q(.004999999888241291)}function Cf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=0,y=Q(0),z=Q(0);f=La-32|0;La=f;J[f+28>>2]=b;p=a+102868|0;J[f+24>>2]=p;J[f+16>>2]=1065353216;a=J[c+4>>2];J[f>>2]=J[c>>2];J[f+4>>2]=a;a=J[d+4>>2];J[f+8>>2]=J[d>>2];J[f+12>>2]=a;a=La-1088|0;La=a;i=N[f>>2];m=Q(N[f+8>>2]-i);n=m;j=N[f+4>>2];o=Q(N[f+12>>2]-j);e=o;g=Q(Y(Q(Q(m*m)+Q(e*e))));if(!(g<Q(1.1920928955078125e-7))){g=Q(Q(1)/g);e=Q(o*g);n=Q(m*g)}g=N[f+16>>2];J[a+1064>>2]=256;d=a+36|0;J[a+32>>2]=d;J[a+36>>2]=J[p>>2];k=Q(j+Q(o*g));t=j>k?j:k;l=Q(i+Q(m*g));u=i>l?i:l;v=j<k?j:k;k=i<l?i:l;y=n>Q(0)?n:Q(-n);w=Q(-e);z=e<Q(0)?w:e;c=1;while(1){a:{c=c-1|0;J[a+1060>>2]=c;h=J[a+32>>2];b=J[h+(c<<2)>>2];b:{if((b|0)==-1){break b}x=P(b,40);b=x+J[p+4>>2]|0;e=N[b+8>>2];if(Q(k-e)>Q(0)){break b}l=N[b+12>>2];if(Q(v-l)>Q(0)){break b}q=N[b>>2];if(Q(q-u)>Q(0)){break b}r=N[b+4>>2];if(Q(r-t)>Q(0)){break b}s=Q(Q(w*Q(i-Q(Q(e+q)*Q(.5))))+Q(n*Q(j-Q(Q(l+r)*Q(.5)))));if(Q((s>Q(0)?s:Q(-s))-Q(Q(z*Q(Q(e-q)*Q(.5)))+Q(y*Q(Q(l-r)*Q(.5)))))>Q(0)){break b}if(J[b+24>>2]==-1){b=J[f+4>>2];J[a+8>>2]=J[f>>2];J[a+12>>2]=b;b=J[f+12>>2];c=J[f+8>>2];N[a+24>>2]=g;J[a+16>>2]=c;J[a+20>>2]=b;c=J[(J[J[f+24>>2]+4>>2]+x|0)+16>>2];b=J[c+16>>2];h=J[b+12>>2];c:{if(Na[J[J[h>>2]+20>>2]](h,a+1076|0,a+8|0,J[b+8>>2]+12|0,J[c+20>>2])|0){e=N[a+1084>>2];l=Q(Q(1)-e);N[a+1072>>2]=Q(l*N[a+12>>2])+Q(e*N[a+20>>2]);N[a+1068>>2]=Q(l*N[a+8>>2])+Q(e*N[a+16>>2]);c=J[f+28>>2];e=Q(Na[J[J[c>>2]+8>>2]](c,b,a+1068|0,a+1076|0,e));break c}e=N[a+24>>2]}if(e>Q(0)){g=Q(j+Q(o*e));t=g<j?j:g;k=Q(i+Q(m*e));u=i>k?i:k;v=g>j?j:g;k=i<k?i:k;g=e}if(e==Q(0)){break a}c=J[a+1060>>2];break b}d:{if(J[a+1064>>2]!=(c|0)){break d}J[a+1064>>2]=c<<1;c=fb(c<<3);J[a+32>>2]=c;rb(c,h,J[a+1060>>2]<<2);if((d|0)==(h|0)){break d}ab(h)}c=J[a+32>>2];J[c+(J[a+1060>>2]<<2)>>2]=J[b+24>>2];h=J[a+1060>>2]+1|0;J[a+1060>>2]=h;e:{if((h|0)!=J[a+1064>>2]){break e}J[a+1064>>2]=h<<1;h=fb(h<<3);J[a+32>>2]=h;rb(h,c,J[a+1060>>2]<<2);if((c|0)==(d|0)){break e}ab(c)}J[J[a+32>>2]+(J[a+1060>>2]<<2)>>2]=J[b+28>>2];c=J[a+1060>>2]+1|0;J[a+1060>>2]=c}if((c|0)>0){continue}}break}b=J[a+32>>2];if((b|0)!=(d|0)){ab(b)}La=a+1088|0;La=f+32|0}function jd(a){var b=0,c=Q(0),d=0,e=Q(0),f=Q(0),g=Q(0),h=0,i=0,j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=0,s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=0;h=La+-64|0;La=h;if(J[a+48>>2]>0){while(1){b=J[a+40>>2]+P(s,156)|0;o=N[b+132>>2];p=N[b+128>>2];q=N[b+124>>2];z=N[b+120>>2];i=J[a+28>>2];j=P(J[b+116>>2],12);d=i+j|0;t=N[d+8>>2];A=N[d+4>>2];B=N[d>>2];r=P(J[b+112>>2],12);d=r+i|0;u=N[d+8>>2];C=N[d+4>>2];D=N[d>>2];d=J[a+36>>2]+P(s,88)|0;E=N[d+80>>2];F=N[d+76>>2];G=J[J[a+44>>2]+(J[b+152>>2]<<2)>>2];i=j;j=J[a+24>>2];i=i+j|0;v=N[i>>2];w=N[i+4>>2];c=N[d+56>>2];g=N[d+60>>2];j=j+r|0;x=N[j>>2];y=N[j+4>>2];f=N[d+48>>2];l=N[d+52>>2];k=N[i+8>>2];m=N[j+8>>2];n=_a(m);N[h+60>>2]=n;m=Za(m);N[h+56>>2]=m;e=_a(k);N[h+44>>2]=e;k=Za(k);N[h+40>>2]=k;N[h+52>>2]=y-Q(Q(m*f)+Q(l*n));N[h+48>>2]=x-Q(Q(n*f)-Q(l*m));N[h+36>>2]=w-Q(Q(k*c)+Q(g*e));N[h+32>>2]=v-Q(Q(e*c)-Q(g*k));Yd(h,G- -64|0,h+48|0,F,h+32|0,E);d=J[h+4>>2];J[b+72>>2]=J[h>>2];J[b+76>>2]=d;r=J[b+148>>2];a:{if((r|0)<=0){break a}g=Q(z+q);i=0;while(1){j=(i<<3)+h|0;c=N[j+8>>2];d=P(i,36)+b|0;l=Q(N[j+12>>2]-y);N[d+4>>2]=l;k=Q(c-x);N[d>>2]=k;c=N[j+8>>2];n=Q(N[j+12>>2]-w);N[d+12>>2]=n;m=Q(c-v);N[d+8>>2]=m;f=N[b+76>>2];c=N[b+72>>2];J[d+32>>2]=0;e=Q(Q(m*f)-Q(c*n));q=Q(Q(o*e)*e);e=Q(Q(k*f)-Q(c*l));e=Q(q+Q(Q(Q(p*e)*e)+g));N[d+24>>2]=e>Q(0)?Q(Q(1)/e):Q(0);e=Q(-c);q=Q(Q(m*e)-Q(f*n));e=Q(Q(k*e)-Q(f*l));e=Q(Q(Q(o*q)*q)+Q(Q(Q(p*e)*e)+g));N[d+28>>2]=e>Q(0)?Q(Q(1)/e):Q(0);f=Q(Q(c*Q(Q(u*l)+Q(Q(B-Q(t*n))-D)))+Q(f*Q(Q(Q(A+Q(t*m))-C)-Q(u*k))));if(f<Q(-1)){N[d+32>>2]=f*Q(-N[b+140>>2])}i=i+1|0;if((r|0)!=(i|0)){continue}break}if(!K[23752]|J[b+148>>2]!=2){break a}l=N[b+76>>2];f=Q(Q(N[b+8>>2]*l)-Q(c*N[b+12>>2]));k=Q(o*f);e=Q(k*f);f=Q(Q(N[b>>2]*l)-Q(c*N[b+4>>2]));n=Q(p*f);f=Q(e+Q(Q(n*f)+g));e=o;o=Q(Q(N[b+44>>2]*l)-Q(c*N[b+48>>2]));c=Q(Q(N[b+36>>2]*l)-Q(c*N[b+40>>2]));p=Q(Q(Q(e*o)*o)+Q(Q(Q(p*c)*c)+g));c=Q(Q(k*o)+Q(Q(n*c)+g));g=Q(Q(f*p)-Q(c*c));if(Q(f*f)<Q(g*Q(1e3))){N[b+96>>2]=f;N[b+108>>2]=p;N[b+104>>2]=c;N[b+100>>2]=c;g=g!=Q(0)?Q(Q(1)/g):g;N[b+92>>2]=f*g;N[b+80>>2]=p*g;c=Q(c*Q(-g));N[b+88>>2]=c;N[b+84>>2]=c;break a}J[b+148>>2]=1}s=s+1|0;if((s|0)<J[a+48>>2]){continue}break}}La=h- -64|0}function Yd(a,b,c,d,e,f){var g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=0,t=Q(0);a:{if(!J[b+60>>2]){break a}b:{switch(J[b+56>>2]){case 0:J[a>>2]=1065353216;J[a+4>>2]=0;h=N[c+12>>2];g=N[b+48>>2];j=N[b+52>>2];k=N[c+8>>2];i=Q(N[c>>2]+Q(Q(h*g)-Q(j*k)));o=N[e+12>>2];m=N[b>>2];n=N[b+4>>2];q=N[e+8>>2];l=Q(N[e>>2]+Q(Q(o*m)-Q(n*q)));r=Q(i-l);j=Q(Q(Q(k*g)+Q(h*j))+N[c+4>>2]);k=Q(Q(Q(q*m)+Q(o*n))+N[e+4>>2]);h=Q(j-k);c:{if(!(Q(Q(r*r)+Q(h*h))>Q(14210854715202004e-30))){h=Q(1);g=Q(0);break c}g=Q(k-j);N[a+4>>2]=g;h=Q(l-i);N[a>>2]=h;o=Q(Y(Q(Q(h*h)+Q(g*g))));if(o<Q(1.1920928955078125e-7)){break c}o=Q(Q(1)/o);g=Q(g*o);N[a+4>>2]=g;h=Q(h*o);N[a>>2]=h}j=Q(j+Q(g*d));k=Q(k-Q(g*f));N[a+12>>2]=Q(j+k)*Q(.5);d=Q(i+Q(h*d));f=Q(l-Q(h*f));N[a+8>>2]=Q(d+f)*Q(.5);N[a+24>>2]=Q(Q(f-d)*h)+Q(g*Q(k-j));return;case 1:g=N[c+8>>2];i=N[b+40>>2];l=N[c+12>>2];j=N[b+44>>2];h=Q(Q(g*i)+Q(l*j));N[a+4>>2]=h;g=Q(Q(l*i)-Q(j*g));N[a>>2]=g;if(J[b+60>>2]<=0){break a}i=N[c+8>>2];l=N[b+48>>2];j=N[c+12>>2];k=N[b+52>>2];o=Q(Q(Q(i*l)+Q(j*k))+N[c+4>>2]);l=Q(N[c>>2]+Q(Q(j*l)-Q(k*i)));j=Q(h*f);k=Q(g*f);while(1){c=(p<<3)+a|0;i=N[e+8>>2];s=P(p,20)+b|0;m=N[s>>2];n=N[e+12>>2];q=N[s+4>>2];f=Q(Q(Q(i*m)+Q(n*q))+N[e+4>>2]);r=Q(f-j);t=f;i=Q(N[e>>2]+Q(Q(n*m)-Q(q*i)));f=Q(d-Q(Q(Q(i-l)*g)+Q(Q(f-o)*h)));m=Q(t+Q(h*f));N[c+12>>2]=Q(r+m)*Q(.5);n=Q(i-k);f=Q(i+Q(g*f));N[c+8>>2]=Q(n+f)*Q(.5);N[((p<<2)+a|0)+24>>2]=Q(Q(n-f)*g)+Q(h*Q(r-m));p=p+1|0;if((p|0)<J[b+60>>2]){continue}break};break a;case 2:break b;default:break a}}g=N[e+8>>2];i=N[b+40>>2];l=N[e+12>>2];j=N[b+44>>2];h=Q(Q(g*i)+Q(l*j));N[a+4>>2]=h;g=Q(Q(l*i)-Q(j*g));N[a>>2]=g;if(J[b+60>>2]>0){i=N[e+8>>2];l=N[b+48>>2];j=N[e+12>>2];k=N[b+52>>2];o=Q(Q(Q(i*l)+Q(j*k))+N[e+4>>2]);l=Q(N[e>>2]+Q(Q(j*l)-Q(k*i)));j=Q(h*d);k=Q(g*d);while(1){e=(p<<3)+a|0;i=N[c+8>>2];s=P(p,20)+b|0;m=N[s>>2];n=N[c+12>>2];q=N[s+4>>2];d=Q(Q(Q(i*m)+Q(n*q))+N[c+4>>2]);r=Q(d-j);t=d;i=Q(N[c>>2]+Q(Q(n*m)-Q(q*i)));d=Q(f-Q(Q(Q(i-l)*g)+Q(Q(d-o)*h)));m=Q(t+Q(h*d));N[e+12>>2]=Q(r+m)*Q(.5);n=Q(i-k);d=Q(i+Q(g*d));N[e+8>>2]=Q(n+d)*Q(.5);N[((p<<2)+a|0)+24>>2]=Q(Q(n-d)*g)+Q(h*Q(r-m));p=p+1|0;if((p|0)<J[b+60>>2]){continue}break}}N[a+4>>2]=-h;N[a>>2]=-g}}function zc(a,b){var 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;e=La+-64|0;La=e;c=J[a+124>>2];J[e+56>>2]=J[a+120>>2];J[e+60>>2]=c;c=J[a+116>>2];J[e+48>>2]=J[a+112>>2];J[e+52>>2]=c;c=J[a+108>>2];J[e+40>>2]=J[a+104>>2];J[e+44>>2]=c;c=J[a+100>>2];J[e+32>>2]=J[a+96>>2];J[e+36>>2]=c;c=J[a+92>>2];J[e+24>>2]=J[a+88>>2];J[e+28>>2]=c;c=J[a+84>>2];J[e+16>>2]=J[a+80>>2];J[e+20>>2]=c;c=J[a+76>>2];J[e+8>>2]=J[a+72>>2];J[e+12>>2]=c;c=J[a+68>>2];J[e>>2]=J[a+64>>2];J[e+4>>2]=c;c=J[a+4>>2];J[a+4>>2]=c|4;n=c&2;h=J[a+52>>2];l=J[h+8>>2];g=l+12|0;j=J[a+48>>2];m=J[j+8>>2];c=m+12|0;o=K[h+38|0]|K[j+38|0];a:{if(o){l=J[j+12>>2];m=J[a+56>>2];h=J[h+12>>2];i=J[a+60>>2];d=La-128|0;La=d;J[d+88>>2]=0;J[d+80>>2]=0;J[d+84>>2]=0;J[d+60>>2]=0;J[d+52>>2]=0;J[d+56>>2]=0;j=d+36|0;gc(j,l,m);gc(d- -64|0,h,i);i=J[c+12>>2];J[d+100>>2]=J[c+8>>2];J[d+104>>2]=i;i=J[c+4>>2];J[d+92>>2]=J[c>>2];J[d+96>>2]=i;c=J[g+12>>2];J[d+116>>2]=J[g+8>>2];J[d+120>>2]=c;c=J[g+4>>2];J[d+108>>2]=J[g>>2];J[d+112>>2]=c;H[d+124|0]=1;I[d+28>>1]=0;Xd(d,d+24|0,j);La=d+128|0;f=N[d+16>>2]<Q(11920928955078125e-22);J[a+124>>2]=0;break a}d=a- -64|0;Na[J[J[a>>2]>>2]](a,d,c,g);h=J[a+124>>2];b:{if((h|0)<=0){break b}g=J[e+60>>2];if((g|0)>0){while(1){j=d+P(k,20)|0;c=j;J[c+8>>2]=0;J[c+12>>2]=0;c=J[c+16>>2];f=0;c:{while(1){i=P(f,20)+e|0;if(J[i+16>>2]!=(c|0)){f=f+1|0;if((g|0)!=(f|0)){continue}break c}break}N[j+8>>2]=N[i+8>>2];N[j+12>>2]=N[i+12>>2]}k=k+1|0;if((h|0)!=(k|0)){continue}break}break b}if(h>>>0>=4){g=h&-4;while(1){c=d+P(f,20)|0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+P(f|1,20)|0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+P(f|2,20)|0;J[c+8>>2]=0;J[c+12>>2]=0;c=d+P(f|3,20)|0;J[c+8>>2]=0;J[c+12>>2]=0;f=f+4|0;k=k+4|0;if((g|0)!=(k|0)){continue}break}}g=h&3;if(!g){break b}while(1){c=d+P(f,20)|0;J[c+8>>2]=0;J[c+12>>2]=0;f=f+1|0;i=i+1|0;if((g|0)!=(i|0)){continue}break}}f=(h|0)>0;if((f|0)==(n>>>1|0)){break a}if(J[m>>2]){J[m+144>>2]=0;I[m+4>>1]=L[m+4>>1]|2}if(!J[l>>2]){break a}J[l+144>>2]=0;I[l+4>>1]=L[l+4>>1]|2}k=2;J[a+4>>2]=J[a+4>>2]&-3|(f?2:0);c=(b|0)!=0&f;d:{if(!(c&!n)){if(!n){break d}k=3;if(!b|f){break d}}Na[J[J[b>>2]+(k<<2)>>2]](b,a)}if(!(!c|(o|0)!=0)){Na[J[J[b>>2]+16>>2]](b,a,e)}La=e- -64|0}function Qf(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=0,B=Q(0),C=Q(0);A=J[b+24>>2];h=A+P(J[a+156>>2],12)|0;s=N[h+8>>2];u=N[h+4>>2];v=N[h>>2];h=P(J[a+152>>2],12)+A|0;t=N[h+8>>2];p=N[h+4>>2];w=N[h>>2];a:{if(!K[a+140|0]){m=Q(N[a+80>>2]-N[a+172>>2]);n=Q(N[a+72>>2]-N[a+164>>2]);o=Q(N[a+76>>2]-N[a+168>>2]);l=Q(N[a+68>>2]-N[a+160>>2]);break a}n=N[a+164>>2];e=N[a+72>>2];c=_a(t);l=N[a+160>>2];f=N[a+68>>2];d=Za(t);m=N[a+172>>2];i=N[a+80>>2];g=_a(s);o=N[a+168>>2];k=N[a+76>>2];j=Za(s);q=N[a+84>>2];r=N[a+88>>2];x=Q(Q(c*q)-Q(d*r));o=Q(k-o);m=Q(i-m);i=Q(Q(g*o)-Q(j*m));l=Q(f-l);n=Q(e-n);k=Q(Q(c*l)-Q(d*n));y=Q(Q(Q(v-w)+i)-k);q=Q(Q(d*q)+Q(c*r));r=Q(Q(j*o)+Q(g*m));z=Q(Q(d*l)+Q(c*n));B=Q(Q(Q(u-p)+r)-z);c=Q(Q(x*y)+Q(q*B));g=N[a+192>>2];j=N[a+196>>2];e=N[a+128>>2];f=N[a+124>>2];d=Q(e-f);b:{if((d>Q(0)?d:Q(-d))<Q(.009999999776482582)){break b}if(c<=f){d=Q(0);c=Q(c-f);if(c<Q(0)){break b}break a}d=Q(0);if(!(c>=e)){break a}c=Q(c-e);if(!(c>Q(0))){break a}}if(c==Q(0)){d=Q(0);break a}C=Q(-c);e=Q(Q(i*j)-Q(g*r));i=N[a+188>>2];g=Q(Q(Q(k+y)*j)-Q(g*Q(z+B)));k=N[a+184>>2];j=N[a+176>>2];f=N[a+180>>2];d=Q(Q(e*Q(e*i))+Q(Q(Q(g*k)*g)+Q(j+f)));d=d!=Q(0)?Q(C/d):Q(0);s=Q(Q(i*Q(e*d))+s);e=Q(q*d);u=Q(u+Q(f*e));i=f;f=Q(x*d);v=Q(v+Q(i*f));t=Q(t-Q(k*Q(g*d)));p=Q(p-Q(j*e));w=Q(w-Q(j*f));d=c>Q(0)?c:C}c=_a(t);g=Za(t);f=_a(s);i=Za(s);e=N[a+92>>2];k=N[a+96>>2];j=Q(Q(g*e)+Q(c*k));q=Q(Q(f*o)-Q(m*i));r=Q(Q(c*l)-Q(n*g));x=Q(Q(Q(v-w)+q)-r);e=Q(Q(c*e)-Q(k*g));f=Q(Q(i*o)+Q(f*m));g=Q(Q(g*l)+Q(c*n));i=Q(Q(Q(u-p)+f)-g);m=Q(Q(x*e)+Q(j*i));k=Q(-m);y=N[a+188>>2];c=N[a+220>>2];l=Q(Q(y*c)*c);z=N[a+184>>2];c=N[a+216>>2];n=N[a+176>>2];o=N[a+180>>2];c=Q(l+Q(Q(Q(z*c)*c)+Q(n+o)));c=c!=Q(0)?Q(k/c):Q(0);l=Q(j*c);N[h+4>>2]=p-Q(n*l);p=Q(e*c);N[h>>2]=w-Q(n*p);h=J[b+24>>2];N[(h+P(J[a+152>>2],12)|0)+8>>2]=t-Q(z*Q(Q(Q(Q(r+x)*j)-Q(e*Q(g+i)))*c));h=h+P(J[a+156>>2],12)|0;N[h+4>>2]=u+Q(o*l);N[h>>2]=v+Q(o*p);N[(J[b+24>>2]+P(J[a+156>>2],12)|0)+8>>2]=Q(y*Q(Q(Q(q*j)-Q(e*f))*c))+s;c=m>Q(0)?m:k;return(c<d?d:c)<=Q(.004999999888241291)|0}function Tc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=b;b=J[b>>2]+7&-8;J[c>>2]=b+16;o=a;i=J[b>>2];d=J[b+4>>2];a=J[b+12>>2];m=a;g=La-32|0;La=g;a=a&2147483647;h=a;e=a-1006698496|0;a=a-1140785152|0;c=J[b+8>>2];b=c;a:{if((e|0)==(a|0)&b>>>0<b>>>0|a>>>0>e>>>0){a=c;c=m<<4|a>>>28;b=a<<4|d>>>28;a=c;d=d&268435455;if((d|0)==134217728&(i|0)!=0|d>>>0>134217728){a=a+1073741824|0;b=b+1|0;a=b?a:a+1|0;break a}a=a+1073741824|0;if(i|(d|0)!=134217728){break a}d=b&1;b=d+b|0;a=b>>>0<d>>>0?a+1|0:a;break a}if(!(!b&(h|0)==2147418112?!(d|i):h>>>0<2147418112)){a=c;c=m<<4|a>>>28;b=a<<4|d>>>28;a=c&524287|2146959360;break a}b=0;a=2146435072;if(h>>>0>1140785151){break a}a=0;n=h>>>16|0;if(n>>>0<15249){break a}b=i;a=d;e=m&65535|65536;h=e;l=c;f=c;j=n-15233|0;b:{if(j&64){c=b;e=j+-64|0;b=e&31;if((e&63)>>>0>=32){a=c<<b;f=0}else{a=(1<<b)-1&c>>>32-b|a<<b;f=c<<b}e=a;b=0;a=0;break b}if(!j){break b}k=f;f=j&31;if((j&63)>>>0>=32){c=k<<f;f=0}else{c=(1<<f)-1&k>>>32-f|e<<f;f=k<<f}e=c;p=f;k=b;c=64-j|0;f=c&31;if((c&63)>>>0>=32){c=0;b=a>>>f|0}else{c=a>>>f|0;b=((1<<f)-1&a)<<32-f|k>>>f}f=p|b;e=c|e;b=j&31;if((j&63)>>>0>=32){c=k<<b;b=0}else{c=(1<<b)-1&k>>>32-b|a<<b;b=k<<b}a=c}J[g+16>>2]=b;J[g+20>>2]=a;J[g+24>>2]=f;J[g+28>>2]=e;b=15361-n|0;c:{if(b&64){d=l;b=b+-64|0;a=b&31;if((b&63)>>>0>=32){c=0;i=h>>>a|0}else{c=h>>>a|0;i=((1<<a)-1&h)<<32-a|d>>>a}d=c;l=0;h=0;break c}if(!b){break c}e=l;a=64-b|0;c=a&31;if((a&63)>>>0>=32){a=e<<c;f=0}else{a=(1<<c)-1&e>>>32-c|h<<c;f=e<<c}e=i;i=b&31;if((b&63)>>>0>=32){c=0;e=d>>>i|0}else{c=d>>>i|0;e=((1<<i)-1&d)<<32-i|e>>>i}i=f|e;d=a|c;e=l;c=b&31;if((b&63)>>>0>=32){a=0;l=h>>>c|0}else{a=h>>>c|0;l=((1<<c)-1&h)<<32-c|e>>>c}h=a}J[g>>2]=i;J[g+4>>2]=d;J[g+8>>2]=l;J[g+12>>2]=h;b=J[g+8>>2];a=J[g+12>>2]<<4|b>>>28;b=b<<4;c=J[g>>2];h=J[g+4>>2];b=h>>>28|b;d=h&268435455;c=c|(J[g+16>>2]|J[g+24>>2]|(J[g+20>>2]|J[g+28>>2]))!=0;if((d|0)==134217728&(c|0)!=0|d>>>0>134217728){b=b+1|0;a=b?a:a+1|0;break a}if(c|(d|0)!=134217728){break a}c=b;b=b+(b&1)|0;a=c>>>0>b>>>0?a+1|0:a}La=g+32|0;x(0,b|0);x(1,m&-2147483648|a);q=o,r=+z(),O[q>>3]=r}function Sd(a,b){var c=0,d=Q(0),e=Q(0),f=0,g=0,h=Q(0),i=0,j=Q(0),k=0,l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=0,y=Q(0);J[a+24>>2]=J[a+24>>2]+1;c=J[a>>2];if((c|0)==-1){J[a>>2]=b;J[(J[a+4>>2]+P(b,40)|0)+20>>2]=-1;return}i=J[a+4>>2];g=i+P(b,40)|0;n=N[g+12>>2];o=N[g+8>>2];p=N[g+4>>2];q=N[g>>2];while(1){k=c;c=i+P(c,40)|0;g=J[c+24>>2];if((g|0)!=-1){m=N[c+8>>2];j=N[c>>2];h=N[c+12>>2];d=N[c+4>>2];e=Q(Q((o<m?m:o)-(j<q?j:q))+Q((h>n?h:n)-(d<p?d:p)));r=Q(e+e);e=Q(Q(m-j)+Q(h-d));e=Q(r-Q(e+e));e=Q(e+e);f=i+P(g,40)|0;s=N[f+8>>2];t=o>s?o:s;u=N[f+4>>2];v=p<u?p:u;m=N[f>>2];j=q<m?q:m;h=N[f+12>>2];d=h<n?n:h;c=J[c+28>>2];a:{if(J[f+24>>2]==-1){d=Q(Q(t-j)+Q(d-v));h=Q(d+d);break a}d=Q(Q(t-j)+Q(d-v));w=Q(d+d);d=Q(Q(s-m)+Q(h-u));h=Q(w-Q(d+d))}y=Q(r+r);f=i+P(c,40)|0;r=N[f+8>>2];s=o>r?o:r;t=N[f+4>>2];u=p<t?p:t;v=N[f>>2];m=q<v?q:v;j=N[f+12>>2];d=j<n?n:j;h=Q(e+h);b:{if(J[f+24>>2]==-1){d=Q(Q(s-m)+Q(d-u));w=Q(d+d);break b}d=Q(Q(s-m)+Q(d-u));w=Q(d+d);d=Q(Q(r-v)+Q(j-t));w=Q(w-Q(d+d))}e=Q(e+w);c=h<e?g:c;if(!(h>y)|!(e>y)){continue}}break}f=P(k,40);i=J[(f+i|0)+20>>2];x=Td(a);g=P(x,40);J[(g+J[a+4>>2]|0)+20>>2]=i;c=J[a+4>>2];l=c+g|0;J[l+16>>2]=0;c=c+f|0;d=N[c>>2];e=N[c+4>>2];N[l+4>>2]=e>p?p:e;N[l>>2]=d>q?q:d;d=N[c+8>>2];e=N[c+12>>2];N[l+12>>2]=e<n?n:e;N[l+8>>2]=d<o?o:d;c=J[a+4>>2];l=c+g|0;g=c+f|0;J[l+32>>2]=J[g+32>>2]+1;c:{if((i|0)!=-1){c=c+P(i,40)|0;J[((k|0)==J[c+24>>2]?c+24|0:c+28|0)>>2]=x;J[l+28>>2]=b;J[l+24>>2]=k;J[g+20>>2]=x;c=(J[a+4>>2]+P(b,40)|0)+20|0;break c}J[l+28>>2]=b;J[l+24>>2]=k;J[g+20>>2]=x;J[(J[a+4>>2]+P(b,40)|0)+20>>2]=x;c=a}J[c>>2]=x;c=J[(J[a+4>>2]+P(b,40)|0)+20>>2];if((c|0)!=-1){while(1){b=Rd(a,c);k=J[a+4>>2];c=P(b,40);i=k+c|0;f=P(J[i+24>>2],40)+k|0;g=J[f+32>>2];k=k+P(J[i+28>>2],40)|0;b=J[k+32>>2];J[i+32>>2]=((b|0)<(g|0)?g:b)+1;j=N[k>>2];h=N[f>>2];d=N[f+4>>2];e=N[k+4>>2];N[i+4>>2]=d<e?d:e;N[i>>2]=h<j?h:j;j=N[f+8>>2];h=N[k+8>>2];d=N[f+12>>2];e=N[k+12>>2];N[i+12>>2]=d>e?d:e;N[i+8>>2]=h<j?j:h;c=J[(c+J[a+4>>2]|0)+20>>2];if((c|0)!=-1){continue}break}}}function Ig(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0;y=J[b+28>>2];i=y+P(J[a+148>>2],12)|0;l=N[i+8>>2];m=N[i+4>>2];n=N[i>>2];i=P(J[a+144>>2],12)+y|0;d=N[i+8>>2];g=N[i+4>>2];f=N[i>>2];w=N[a+180>>2];x=N[a+176>>2];r=N[a+172>>2];s=N[a+168>>2];if(K[a+141|0]){c=Q(N[b>>2]*N[a+132>>2]);h=Q(-c);j=N[a+112>>2];k=N[a+212>>2];o=N[a+184>>2];e=N[a+188>>2];p=N[a+208>>2];t=Q(j+Q(N[a+236>>2]*Q(N[a+136>>2]-Q(Q(Q(k*l)+Q(Q(o*Q(n-f))+Q(Q(m-g)*e)))-Q(p*d)))));c=c>t?t:c;c=c<h?h:c;N[a+112>>2]=c;c=Q(c-j);l=Q(Q(w*Q(k*c))+l);h=Q(e*c);m=Q(m+Q(r*h));j=Q(o*c);n=Q(n+Q(r*j));g=Q(g-Q(s*h));f=Q(f-Q(s*j));d=Q(d-Q(x*Q(p*c)))}if(K[a+140|0]){o=N[a+116>>2];e=N[a+236>>2];p=N[a+232>>2];c=Q(p-N[a+124>>2]);t=N[b+4>>2];q=Q((c>Q(0)?c:Q(0))*t);c=N[a+212>>2];h=N[a+184>>2];j=N[a+188>>2];k=N[a+208>>2];u=Q(o-Q(e*Q(q+Q(Q(Q(c*l)+Q(Q(h*Q(n-f))+Q(Q(m-g)*j)))-Q(k*d)))));u=u>Q(0)?u:Q(0);N[a+116>>2]=u;v=N[a+120>>2];q=e;e=Q(N[a+128>>2]-p);p=Q(t*(e>Q(0)?e:Q(0)));e=d;d=Q(u-o);o=Q(e-Q(x*Q(k*d)));e=f;f=Q(h*d);e=Q(e-Q(s*f));n=Q(n+Q(r*f));f=g;g=Q(j*d);f=Q(f-Q(s*g));m=Q(m+Q(r*g));l=Q(Q(w*Q(c*d))+l);d=Q(v-Q(q*Q(p+Q(Q(Q(k*o)+Q(Q(h*Q(e-n))+Q(j*Q(f-m))))-Q(c*l)))));d=d>Q(0)?d:Q(0);N[a+120>>2]=d;d=Q(d-v);l=Q(l-Q(w*Q(c*d)));g=Q(j*d);m=Q(m-Q(r*g));c=Q(h*d);n=Q(n-Q(r*c));g=Q(f+Q(s*g));f=Q(e+Q(s*c));d=Q(Q(x*Q(k*d))+o)}j=N[a+216>>2];k=N[a+228>>2];o=N[a+220>>2];e=N[a+224>>2];c=Q(Q(j*k)-Q(o*e));h=c!=Q(0)?Q(Q(1)/c):c;p=Q(l-d);c=Q(p*e);q=k;k=N[a+204>>2];e=N[a+192>>2];t=N[a+196>>2];u=N[a+200>>2];v=Q(Q(Q(k*l)+Q(Q(e*Q(n-f))+Q(Q(m-g)*t)))-Q(u*d));c=Q(Q(c-Q(q*v))*h);N[a+104>>2]=N[a+104>>2]+c;h=Q(Q(Q(v*o)-Q(j*p))*h);N[a+108>>2]=N[a+108>>2]+h;q=g;g=Q(t*c);N[i+4>>2]=q-Q(s*g);q=f;f=Q(e*c);N[i>>2]=q-Q(s*f);i=J[b+28>>2];N[(i+P(J[a+144>>2],12)|0)+8>>2]=Q(Q(-x)*Q(Q(c*u)+h))+d;i=i+P(J[a+148>>2],12)|0;N[i+4>>2]=m+Q(r*g);N[i>>2]=n+Q(r*f);N[(J[b+28>>2]+P(J[a+148>>2],12)|0)+8>>2]=Q(w*Q(Q(c*k)+h))+l}function xg(a,b){a=a|0;b=b|0;var c=Q(0),d=0,e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=0,l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=0,r=0,s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=0,x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0);d=J[a+48>>2];w=J[d+8>>2];J[a+120>>2]=w;k=J[a+52>>2];q=J[k+8>>2];J[a+124>>2]=q;o=N[d+32>>2];h=J[d+32>>2];c=N[d+28>>2];r=J[d+28>>2];J[a+160>>2]=r;J[a+164>>2]=h;s=N[k+32>>2];h=J[k+32>>2];j=N[k+28>>2];J[a+168>>2]=J[k+28>>2];J[a+172>>2]=h;t=N[d+120>>2];N[a+176>>2]=t;u=N[k+120>>2];N[a+180>>2]=u;x=N[d+128>>2];N[a+184>>2]=x;y=N[k+128>>2];N[a+188>>2]=y;p=N[a+96>>2];k=J[b+24>>2];d=P(w,12);r=k+d|0;e=N[r+8>>2];g=Za(e);l=N[a+92>>2];e=_a(e);h=J[b+28>>2];d=d+h|0;z=N[d>>2];A=N[d+4>>2];B=N[d+8>>2];q=P(q,12);d=q+h|0;C=N[d>>2];D=N[d+4>>2];E=N[d+8>>2];d=k+q|0;m=N[d>>2];f=N[d+4>>2];n=N[r>>2];v=N[r+4>>2];i=N[d+8>>2];c=Q(l-c);l=Q(p-o);p=Q(Q(e*c)-Q(g*l));N[a+144>>2]=p;l=Q(Q(g*c)+Q(e*l));N[a+148>>2]=l;e=N[a+104>>2];g=Za(i);c=N[a+100>>2];i=_a(i);c=Q(c-j);e=Q(e-s);j=Q(Q(i*c)-Q(g*e));N[a+152>>2]=j;o=Q(Q(g*c)+Q(i*e));N[a+156>>2]=o;m=Q(Q(m+j)-N[a+76>>2]);f=Q(Q(f+o)-N[a+80>>2]);s=Q(Y(Q(Q(m*m)+Q(f*f))));g=Q(0);e=Q(0);i=Q(0);c=Q(Q(n+p)-N[a+68>>2]);n=Q(Q(v+l)-N[a+72>>2]);v=Q(Y(Q(Q(c*c)+Q(n*n))));if(v>Q(.04999999701976776)){e=Q(Q(1)/v);i=Q(n*e);e=Q(c*e)}N[a+132>>2]=i;N[a+128>>2]=e;c=Q(0);if(s>Q(.04999999701976776)){g=Q(Q(1)/s);c=Q(f*g);g=Q(m*g)}N[a+140>>2]=c;N[a+136>>2]=g;m=N[a+112>>2];f=Q(Q(j*c)-Q(g*o));n=Q(Q(m*m)*Q(Q(Q(y*f)*f)+u));f=Q(Q(p*i)-Q(e*l));f=Q(n+Q(Q(Q(x*f)*f)+t));N[a+192>>2]=f>Q(0)?Q(Q(1)/f):f;a:{if(K[b+20|0]){f=Q(N[b+8>>2]*N[a+116>>2]);N[a+116>>2]=f;n=j;j=c;c=Q(f*Q(-m));j=Q(j*c);g=Q(g*c);E=Q(Q(y*Q(Q(n*j)+Q(g*Q(-o))))+E);c=i;i=Q(-f);c=Q(c*i);e=Q(e*i);B=Q(Q(x*Q(Q(p*c)+Q(e*Q(-l))))+B);D=Q(D+Q(u*j));C=Q(C+Q(u*g));A=Q(A+Q(t*c));z=Q(z+Q(t*e));break a}J[a+116>>2]=0}h=J[b+28>>2]+P(w,12)|0;N[h+4>>2]=A;N[h>>2]=z;h=J[b+28>>2];N[(h+P(J[a+120>>2],12)|0)+8>>2]=B;h=h+P(J[a+124>>2],12)|0;N[h+4>>2]=D;N[h>>2]=C;N[(J[b+28>>2]+P(J[a+124>>2],12)|0)+8>>2]=E}function Af(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=Q(0);g=La-48|0;La=g;if(!K[a+102989|0]){h=La-16|0;La=h;a:{b:{if(!Lb(5234,H[1373])){J[6228]=28;break b}b=2;if(!Lb(1373,43)){b=K[1373]!=114}b=Lb(1373,120)?b|128:b;b=Lb(1373,101)?b|524288:b;e=b;d=b|64;b=K[1373];d=(b|0)==114?e:d;d=(b|0)==119?d|512:d;J[h>>2]=438;J[h+4>>2]=0;b=Ga(-100,3319,((b|0)==97?d|1024:d)|32768,h|0)|0;if(b>>>0>=4294963201){J[6228]=0-b;b=-1}if((b|0)<0){break a}d=La-32|0;La=d;c:{d:{e:{if(!Lb(5234,H[1373])){J[6228]=28;break e}c=fb(1176);if(c){break d}}c=0;break c}Db(c,0,144);if(!Lb(1373,43)){J[c>>2]=K[1373]==114?8:4}f:{if(K[1373]!=97){e=J[c>>2];break f}e=sa(b|0,3,0)|0;if(!(e&1024)){e=e|1024;J[d+16>>2]=e;J[d+20>>2]=e>>31;sa(b|0,4,d+16|0)|0}e=J[c>>2]|128;J[c>>2]=e}J[c+80>>2]=-1;J[c+48>>2]=1024;J[c+60>>2]=b;J[c+44>>2]=c+152;g:{if(e&8){break g}J[d>>2]=d+24;J[d+4>>2]=0;if(Fa(b|0,21523,d|0)|0){break g}J[c+80>>2]=10}J[c+40>>2]=928;J[c+36>>2]=929;J[c+32>>2]=930;J[c+12>>2]=931;if(!K[24917]){J[c+76>>2]=-1}J[c+56>>2]=J[6244];e=J[6244];if(e){J[e+52>>2]=c}J[6244]=c}La=d+32|0;if(c){break a}qa(b|0)|0}c=0}La=h+16|0;J[6166]=c;i=N[a+102964>>2];O[g+40>>3]=N[a+102968>>2];O[g+32>>3]=i;Ya(8534,g+32|0);Ya(8557,0);J[g+16>>2]=J[a+102956>>2];Ya(9202,g+16|0);J[g>>2]=J[a+102960>>2];Ya(9262,g);b=J[a+102948>>2];if(b){while(1){J[b+8>>2]=f;Nd(b);f=f+1|0;b=J[b+96>>2];if(b){continue}break}}c=J[a+102952>>2];h:{if(!c){break h}b=0;f=c;while(1){J[f+56>>2]=b;b=b+1|0;f=J[f+12>>2];if(f){continue}break}if(!c){break h}while(1){if(J[c+4>>2]!=6){Ya(6623,0);Na[J[J[c>>2]+16>>2]](c);Ya(6618,0)}c=J[c+12>>2];if(c){continue}break}b=J[a+102952>>2];if(!b){break h}while(1){if(J[b+4>>2]==6){Ya(6623,0);Na[J[J[b>>2]+16>>2]](b);Ya(6618,0)}b=J[b+12>>2];if(b){continue}break}}Ya(7919,0);Ya(7936,0);Ya(6626,0);Ya(6645,0);a=J[6166];dc(a);Na[J[a+12>>2]](a)|0;if(!(H[a|0]&1)){c=J[a+52>>2];if(c){J[c+56>>2]=J[a+56>>2]}f=J[a+56>>2];if(f){J[f+52>>2]=c}if((a|0)==J[6244]){J[6244]=f}ab(J[a+96>>2]);ab(a)}J[6166]=0}La=g+48|0}function Jh(a,b){a=a|0;b=b|0;var c=Q(0),d=0,e=Q(0),f=Q(0),g=0,h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=0,q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=0,v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0);d=J[a+48>>2];u=J[d+8>>2];J[a+108>>2]=u;i=J[a+52>>2];o=J[i+8>>2];J[a+112>>2]=o;E=N[d+32>>2];g=J[d+32>>2];m=N[d+28>>2];p=J[d+28>>2];J[a+140>>2]=p;J[a+144>>2]=g;F=N[i+32>>2];g=J[i+32>>2];n=N[i+28>>2];J[a+148>>2]=J[i+28>>2];J[a+152>>2]=g;s=N[d+120>>2];N[a+156>>2]=s;t=N[i+120>>2];N[a+160>>2]=t;v=N[d+128>>2];N[a+164>>2]=v;w=N[i+128>>2];N[a+168>>2]=w;j=N[a+84>>2];i=J[b+24>>2];d=P(u,12);p=i+d|0;e=N[p+8>>2];f=Za(e);h=N[a+80>>2];e=_a(e);g=J[b+28>>2];d=d+g|0;x=N[d>>2];y=N[d+4>>2];z=N[d+8>>2];o=P(o,12);d=o+g|0;A=N[d>>2];B=N[d+4>>2];C=N[d+8>>2];k=N[p>>2];d=i+o|0;q=N[d>>2];r=N[p+4>>2];l=N[d+4>>2];c=N[d+8>>2];h=Q(h-m);j=Q(j-E);m=Q(Q(e*h)-Q(f*j));N[a+124>>2]=m;j=Q(Q(f*h)+Q(e*j));N[a+128>>2]=j;e=N[a+92>>2];f=Za(c);h=N[a+88>>2];c=_a(c);h=Q(h-n);e=Q(e-F);n=Q(Q(c*h)-Q(f*e));N[a+132>>2]=n;h=Q(Q(f*h)+Q(c*e));N[a+136>>2]=h;f=Q(0);e=Q(0);c=Q(Q(Q(q+n)-k)-m);k=Q(Q(Q(l+h)-r)-j);q=Q(Y(Q(Q(c*c)+Q(k*k))));if(q>Q(.004999999888241291)){f=Q(Q(1)/q);e=Q(k*f);f=Q(c*f)}N[a+120>>2]=e;N[a+116>>2]=f;c=Q(Q(n*e)-Q(f*h));l=Q(Q(w*c)*c);c=Q(Q(m*e)-Q(f*j));c=Q(l+Q(t+Q(Q(Q(v*c)*c)+s)));k=N[a+68>>2];if(k>Q(0)){l=c;r=N[b>>2];c=Q(r*Q(Q(r*k)+N[a+72>>2]));D=c!=Q(0)?Q(Q(1)/c):Q(0);c=Q(l+D);l=Q(Q(k*Q(Q(q-N[a+104>>2])*r))*D)}else{l=Q(0)}N[a+76>>2]=l;N[a+96>>2]=D;N[a+172>>2]=c!=Q(0)?Q(Q(1)/c):Q(0);a:{if(K[b+20|0]){c=Q(N[b+8>>2]*N[a+100>>2]);N[a+100>>2]=c;e=Q(e*c);f=Q(f*c);C=Q(Q(w*Q(Q(n*e)+Q(f*Q(-h))))+C);z=Q(z-Q(v*Q(Q(m*e)+Q(f*Q(-j)))));B=Q(B+Q(t*e));A=Q(A+Q(t*f));y=Q(y-Q(s*e));x=Q(x-Q(s*f));break a}J[a+100>>2]=0}g=J[b+28>>2]+P(u,12)|0;N[g+4>>2]=y;N[g>>2]=x;g=J[b+28>>2];N[(g+P(J[a+108>>2],12)|0)+8>>2]=z;g=g+P(J[a+112>>2],12)|0;N[g+4>>2]=B;N[g>>2]=A;N[(J[b+28>>2]+P(J[a+112>>2],12)|0)+8>>2]=C}function rg(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=0,u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=0,B=0,C=Q(0);f=J[a+48>>2];t=J[f+8>>2];J[a+132>>2]=t;c=J[a+52>>2];A=J[c+8>>2];J[a+136>>2]=A;n=N[f+32>>2];B=J[f+32>>2];l=N[f+28>>2];o=J[f+28>>2];J[a+156>>2]=o;J[a+160>>2]=B;C=N[c+32>>2];o=J[c+32>>2];i=N[c+28>>2];J[a+164>>2]=J[c+28>>2];J[a+168>>2]=o;r=N[f+120>>2];N[a+172>>2]=r;s=N[c+120>>2];N[a+176>>2]=s;p=N[f+128>>2];N[a+180>>2]=p;k=N[c+128>>2];N[a+184>>2]=k;d=N[a+72>>2];o=J[b+24>>2];c=P(t,12);q=N[(o+c|0)+8>>2];j=Za(q);g=N[a+68>>2];h=_a(q);f=J[b+28>>2];c=c+f|0;u=N[c>>2];v=N[c+4>>2];w=N[c+8>>2];c=f;f=P(A,12);c=c+f|0;x=N[c>>2];y=N[c+4>>2];z=N[c+8>>2];e=N[(f+o|0)+8>>2];g=Q(g-l);d=Q(d-n);l=Q(Q(h*g)-Q(j*d));N[a+140>>2]=l;d=Q(Q(j*g)+Q(h*d));N[a+144>>2]=d;g=Q(p+k);c=g>Q(0);N[a+208>>2]=c?Q(Q(1)/g):g;j=N[a+80>>2];h=Za(e);m=N[a+76>>2];n=_a(e);i=Q(m-i);m=Q(j-C);j=Q(Q(n*i)-Q(h*m));N[a+148>>2]=j;h=Q(Q(h*i)+Q(n*m));N[a+152>>2]=h;i=Q(r+s);N[a+188>>2]=Q(k*Q(h*h))+Q(Q(p*Q(d*d))+i);m=Q(-d);d=Q(Q(p*Q(l*m))-Q(k*Q(j*h)));N[a+196>>2]=d;N[a+192>>2]=d;N[a+200>>2]=Q(k*Q(j*j))+Q(Q(p*Q(l*l))+i);N[a+204>>2]=Q(e-q)-N[a+120>>2];if(!(K[a+116|0]?c:0)){J[a+96>>2]=0;J[a+100>>2]=0}if(!(K[a+104|0]?g>Q(0):0)){J[a+92>>2]=0}a:{if(K[b+20|0]){e=N[b+8>>2];d=Q(e*N[a+84>>2]);N[a+84>>2]=d;g=Q(e*N[a+92>>2]);N[a+92>>2]=g;q=Q(e*N[a+96>>2]);N[a+96>>2]=q;i=Q(e*N[a+100>>2]);N[a+100>>2]=i;e=Q(e*N[a+88>>2]);N[a+88>>2]=e;n=k;k=Q(Q(g+q)-i);z=Q(Q(n*Q(k+Q(Q(j*e)+Q(d*Q(-h)))))+z);w=Q(w-Q(p*Q(k+Q(Q(l*e)+Q(d*m)))));x=Q(x+Q(s*d));u=Q(u-Q(r*d));y=Q(y+Q(s*e));v=Q(v-Q(r*e));break a}J[a+84>>2]=0;J[a+88>>2]=0;J[a+100>>2]=0;J[a+92>>2]=0;J[a+96>>2]=0}c=J[b+28>>2]+P(t,12)|0;N[c+4>>2]=v;N[c>>2]=u;c=J[b+28>>2];N[(c+P(J[a+132>>2],12)|0)+8>>2]=w;c=c+P(J[a+136>>2],12)|0;N[c+4>>2]=y;N[c>>2]=x;N[(J[b+28>>2]+P(J[a+136>>2],12)|0)+8>>2]=z}function Vf(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0);c=La-80|0;La=c;h=J[b+24>>2];o=h+P(J[a+116>>2],12)|0;w=N[o>>2];h=h+P(J[a+120>>2],12)|0;x=N[h>>2];y=N[o+4>>2];z=N[h+4>>2];q=N[o+8>>2];j=N[a+144>>2];l=N[a+84>>2];r=N[h+8>>2];i=N[a+152>>2];s=N[a+92>>2];u=N[a+160>>2];v=N[a+156>>2];m=N[a+140>>2];p=N[a+80>>2];n=N[a+148>>2];t=N[a+88>>2];k=N[a+164>>2];e=N[a+168>>2];A=Q(k+e);N[c+76>>2]=A;g=Za(r);f=_a(r);d=Za(q);B=_a(q);m=Q(p-m);p=Q(l-j);l=Q(Q(B*m)-Q(d*p));n=Q(t-n);t=Q(s-i);j=Q(Q(f*n)-Q(g*t));i=Q(Q(k*l)+Q(e*j));N[c+72>>2]=i;N[c- -64>>2]=i;C=Q(v+u);N[c+60>>2]=Q(e*Q(j*j))+Q(Q(k*Q(l*l))+C);i=Q(Q(d*m)+Q(B*p));s=Q(-i);d=Q(Q(g*n)+Q(f*t));g=Q(Q(k*s)-Q(e*d));N[c+68>>2]=g;N[c+52>>2]=g;g=Q(Q(k*Q(l*s))-Q(e*Q(j*d)));N[c+56>>2]=g;N[c+44>>2]=Q(e*Q(d*d))+Q(Q(k*Q(i*i))+C);N[c+48>>2]=g;g=Q(Q(Q(z+d)-y)-i);f=Q(Q(Q(x+j)-w)-l);a:{if(N[a+68>>2]>Q(0)){N[c+24>>2]=f;N[c+28>>2]=g;Vd(c+12|0,c+44|0,c+24|0);n=e;m=d;d=N[c+12>>2];e=N[c+16>>2];j=Q(Q(n*Q(Q(m*d)-Q(j*e)))+r);k=Q(q-Q(k*Q(Q(i*d)-Q(l*e))));i=Q(Y(Q(Q(f*f)+Q(g*g))));e=Q(-e);f=Q(-d);o=1;break a}m=Q(-d);N[c+40>>2]=g;N[c+36>>2]=f;d=N[a+96>>2];N[c+28>>2]=g;N[c+24>>2]=f;d=Q(Q(r-q)-d);N[c+32>>2]=d;p=d>Q(0)?d:Q(-d);i=Q(Y(Q(Q(f*f)+Q(g*g))));n=e;b:{if(A>Q(0)){Wd(c+12|0,c+44|0,c+24|0);d=Q(-N[c+20>>2]);f=Q(-N[c+12>>2]);e=Q(-N[c+16>>2]);break b}Vd(c+12|0,c+44|0,c+36|0);f=Q(-N[c+12>>2]);d=Q(0);e=Q(-N[c+16>>2])}j=Q(Q(n*Q(Q(Q(j*e)+Q(f*m))+d))+r);k=Q(q-Q(k*Q(Q(Q(l*e)+Q(f*s))+d)));o=p<=Q(.03490658849477768)}h=J[b+24>>2]+P(J[a+116>>2],12)|0;N[h+4>>2]=y-Q(v*e);N[h>>2]=w-Q(v*f);h=J[b+24>>2];N[(h+P(J[a+116>>2],12)|0)+8>>2]=k;h=h+P(J[a+120>>2],12)|0;N[h+4>>2]=z+Q(u*e);N[h>>2]=x+Q(u*f);N[(J[b+24>>2]+P(J[a+120>>2],12)|0)+8>>2]=j;La=c+80|0;return o&i<=Q(.004999999888241291)}function Rf(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=0,z=Q(0);n=N[a+176>>2];s=N[a+180>>2];u=N[a+188>>2];t=N[a+184>>2];c=N[a+108>>2];f=N[a+212>>2];h=J[b+28>>2];y=h+P(J[a+156>>2],12)|0;i=N[y+8>>2];k=N[a+192>>2];d=N[y>>2];h=h+P(J[a+152>>2],12)|0;g=N[h>>2];o=N[y+4>>2];q=N[h+4>>2];l=N[a+196>>2];m=N[a+208>>2];p=N[h+8>>2];j=Q(Q(Q(c*N[a+244>>2])+Q(Q(Q(Q(f*i)+Q(Q(k*Q(d-g))+Q(Q(o-q)*l)))-Q(m*p))+N[a+240>>2]))*Q(-N[a+236>>2]));N[a+108>>2]=c+j;c=Q(N[b>>2]*N[a+132>>2]);e=Q(-c);v=N[a+104>>2];i=Q(i+Q(u*Q(f*j)));p=Q(p-Q(t*Q(m*j)));r=Q(v-Q(N[a+228>>2]*Q(Q(i-p)-N[a+136>>2])));c=c>r?r:c;c=c<e?e:c;N[a+104>>2]=c;e=Q(c-v);c=Q(Q(u*e)+i);i=Q(p-Q(t*e));p=Q(l*j);o=Q(o+Q(s*p));e=Q(k*j);j=Q(d+Q(s*e));d=Q(q-Q(n*p));g=Q(g-Q(n*e));p=Q(-t);if(K[a+140|0]){q=N[a+112>>2];e=N[a+232>>2];v=N[a+120>>2];r=Q(v-N[a+124>>2]);w=r>Q(0)?r:Q(0);r=N[b+4>>2];x=Q(q-Q(e*Q(Q(w*r)+Q(Q(Q(-m)*i)+Q(Q(f*c)+Q(Q(k*Q(j-g))+Q(l*Q(o-d))))))));x=x>Q(0)?x:Q(0);N[a+112>>2]=x;z=N[a+116>>2];w=e;e=Q(N[a+128>>2]-v);r=Q(r*(e>Q(0)?e:Q(0)));q=Q(x-q);i=Q(Q(p*Q(m*q))+i);e=g;g=Q(k*q);e=Q(e-Q(n*g));j=Q(j+Q(s*g));g=d;d=Q(l*q);g=Q(g-Q(n*d));o=Q(o+Q(s*d));c=Q(Q(u*Q(f*q))+c);d=Q(z-Q(w*Q(r+Q(Q(Q(m*i)+Q(Q(k*Q(e-j))+Q(l*Q(g-o))))-Q(f*c)))));d=d>Q(0)?d:Q(0);N[a+116>>2]=d;w=f;f=Q(d-z);c=Q(c-Q(u*Q(w*f)));l=Q(l*f);o=Q(o-Q(s*l));k=Q(k*f);j=Q(j-Q(s*k));d=Q(g+Q(n*l));g=Q(e+Q(n*k));i=Q(Q(t*Q(m*f))+i)}k=N[a+220>>2];l=N[a+200>>2];m=N[a+204>>2];t=N[a+216>>2];f=Q(Q(Q(Q(k*c)+Q(Q(l*Q(j-g))+Q(Q(o-d)*m)))-Q(t*i))*Q(-N[a+224>>2]));N[a+100>>2]=N[a+100>>2]+f;m=Q(m*f);N[h+4>>2]=d-Q(n*m);d=n;n=Q(l*f);N[h>>2]=g-Q(d*n);h=J[b+28>>2];N[(h+P(J[a+152>>2],12)|0)+8>>2]=Q(p*Q(t*f))+i;h=h+P(J[a+156>>2],12)|0;N[h+4>>2]=o+Q(s*m);N[h>>2]=j+Q(s*n);N[(J[b+28>>2]+P(J[a+156>>2],12)|0)+8>>2]=Q(u*Q(k*f))+c}function lh(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=0,w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=0,F=Q(0);e=J[a+48>>2];v=J[e+8>>2];J[a+104>>2]=v;j=J[a+52>>2];p=J[j+8>>2];J[a+108>>2]=p;D=N[e+32>>2];c=J[e+32>>2];f=N[e+28>>2];J[a+128>>2]=J[e+28>>2];J[a+132>>2]=c;k=N[j+32>>2];E=J[j+32>>2];i=N[j+28>>2];c=J[j+28>>2];J[a+136>>2]=c;J[a+140>>2]=E;r=N[e+120>>2];N[a+156>>2]=r;s=N[j+120>>2];N[a+160>>2]=s;d=N[e+128>>2];N[a+164>>2]=d;q=N[j+128>>2];N[a+168>>2]=q;e=J[b+28>>2];j=P(p,12);c=e+j|0;w=N[c+8>>2];x=N[c+4>>2];y=N[c>>2];p=P(v,12);c=e+p|0;z=N[c+8>>2];A=N[c+4>>2];B=N[c>>2];e=J[b+24>>2];c=e+p|0;o=N[c>>2];e=e+j|0;t=N[e>>2];u=N[c+4>>2];F=N[e+4>>2];g=N[c+8>>2];n=N[e+8>>2];l=Q(d+q);N[a+188>>2]=l>Q(0)?Q(Q(1)/l):l;h=_a(n);m=Za(n);l=Q(Q(m*Q(-i))-Q(h*k));N[a+124>>2]=l;m=Q(Q(m*k)-Q(h*i));N[a+120>>2]=m;i=N[a+72>>2];h=_a(g);k=N[a+68>>2];C=Za(g);f=Q(k-f);k=Q(i-D);i=Q(Q(C*f)+Q(h*k));N[a+116>>2]=i;h=Q(Q(h*f)-Q(k*C));N[a+112>>2]=h;N[a+148>>2]=Q(Q(F+l)-u)-i;N[a+144>>2]=Q(Q(t+m)-o)-h;f=Q(r+s);o=Q(Q(Q(q*l)*l)+Q(Q(Q(d*i)*i)+f));k=o;o=Q(q*m);t=Q(Q(o*m)+Q(Q(Q(d*h)*h)+f));u=Q(-d);d=Q(Q(Q(h*u)*i)-Q(l*o));f=Q(Q(k*t)-Q(d*d));f=f!=Q(0)?Q(Q(1)/f):f;N[a+184>>2]=k*f;N[a+172>>2]=t*f;d=Q(d*Q(-f));N[a+180>>2]=d;N[a+176>>2]=d;N[a+152>>2]=Q(n-g)-N[a+76>>2];a:{if(K[b+20|0]){g=N[b+8>>2];d=Q(g*N[a+80>>2]);N[a+80>>2]=d;n=Q(g*N[a+88>>2]);N[a+88>>2]=n;g=Q(g*N[a+84>>2]);N[a+84>>2]=g;w=Q(Q(q*Q(Q(Q(m*g)-Q(d*l))+n))+w);z=Q(Q(u*Q(Q(Q(h*g)-Q(d*i))+n))+z);y=Q(y+Q(s*d));B=Q(B-Q(r*d));x=Q(x+Q(s*g));A=Q(A-Q(r*g));break a}J[a+88>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0}c=J[b+28>>2]+P(v,12)|0;N[c+4>>2]=A;N[c>>2]=B;c=J[b+28>>2];N[(c+P(J[a+104>>2],12)|0)+8>>2]=z;c=c+P(J[a+108>>2],12)|0;N[c+4>>2]=x;N[c>>2]=y;N[(J[b+28>>2]+P(J[a+108>>2],12)|0)+8>>2]=w}function Mg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=0,p=0,q=Q(0),r=0,s=0,t=0;g=J[J[a+48>>2]+12>>2];p=J[J[a+52>>2]+12>>2];J[b+60>>2]=0;e=N[c+12>>2];f=N[d+8>>2];h=N[p+12>>2];l=N[d+12>>2];m=N[p+16>>2];n=Q(Q(Q(Q(f*h)+Q(l*m))+N[d+4>>2])-N[c+4>>2]);i=N[c+8>>2];f=Q(Q(N[d>>2]+Q(Q(l*h)-Q(m*f)))-N[c>>2]);q=Q(Q(e*n)-Q(i*f));n=Q(Q(e*f)+Q(n*i));d=g+84|0;o=g+20|0;e=Q(N[g+8>>2]+N[p+8>>2]);a=1;c=0;g=J[g+148>>2];a:{if((g|0)>0){f=Q(-34028234663852886e22);a=0;while(1){j=a<<3;r=j+d|0;j=j+o|0;h=Q(Q(N[r>>2]*Q(n-N[j>>2]))+Q(Q(q-N[j+4>>2])*N[r+4>>2]));if(h>e){break a}j=f<h;f=j?h:f;c=j?a:c;a=a+1|0;if((g|0)!=(a|0)){continue}break}a=f<Q(1.1920928955078125e-7)}j=c+1|0;g=o+(((g|0)>(j|0)?j:0)<<3)|0;j=J[g+4>>2];f=N[g+4>>2];r=J[g>>2];h=N[g>>2];g=o;o=c<<3;g=g+o|0;s=J[g+4>>2];l=N[g+4>>2];t=J[g>>2];m=N[g>>2];b:{if(a){J[b+56>>2]=1;J[b+60>>2]=1;a=d+o|0;c=J[a>>2];a=J[a+4>>2];N[b+52>>2]=Q(l+f)*Q(.5);N[b+48>>2]=Q(m+h)*Q(.5);J[b+40>>2]=c;J[b+44>>2]=a;break b}i=Q(n-m);k=Q(q-l);if(Q(Q(i*Q(h-m))+Q(k*Q(f-l)))<=Q(0)){f=Q(e*e);e=Q(Q(i*i)+Q(k*k));if(f<e){break a}J[b+56>>2]=1;J[b+60>>2]=1;N[b+40>>2]=i;N[b+44>>2]=k;e=Q(Y(e));if(!(e<Q(1.1920928955078125e-7))){e=Q(Q(1)/e);N[b+44>>2]=k*e;N[b+40>>2]=i*e}J[b+48>>2]=t;J[b+52>>2]=s;break b}i=Q(n-h);k=Q(q-f);if(Q(Q(i*Q(m-h))+Q(k*Q(l-f)))<=Q(0)){f=Q(e*e);e=Q(Q(i*i)+Q(k*k));if(f<e){break a}J[b+56>>2]=1;J[b+60>>2]=1;N[b+40>>2]=i;N[b+44>>2]=k;e=Q(Y(e));if(!(e<Q(1.1920928955078125e-7))){e=Q(Q(1)/e);N[b+44>>2]=k*e;N[b+40>>2]=i*e}J[b+48>>2]=r;J[b+52>>2]=j;break b}h=Q(Q(m+h)*Q(.5));a=d+(c<<3)|0;f=Q(Q(l+f)*Q(.5));if(e<Q(Q(Q(n-h)*N[a>>2])+Q(Q(q-f)*N[a+4>>2]))){break a}J[b+56>>2]=1;J[b+60>>2]=1;c=J[a+4>>2];a=J[a>>2];N[b+52>>2]=f;N[b+48>>2]=h;J[b+40>>2]=a;J[b+44>>2]=c}a=J[p+16>>2];c=J[p+12>>2];J[b+16>>2]=0;J[b>>2]=c;J[b+4>>2]=a}}function ld(a,b){var c=0,d=0,e=0,f=0,g=Q(0),h=0,i=0,j=Q(0),k=0,l=Q(0),m=0,n=0,o=0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;c=J[b+20>>2];J[a+16>>2]=J[b+16>>2];J[a+20>>2]=c;c=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=c;c=J[b+40>>2];J[a+32>>2]=c;d=J[b+28>>2];J[a+48>>2]=d;n=a,o=Fb(c,P(d,88)),J[n+36>>2]=o;n=a,o=Fb(J[a+32>>2],P(J[a+48>>2],156)),J[n+40>>2]=o;J[a+24>>2]=J[b+32>>2];J[a+28>>2]=J[b+36>>2];J[a+44>>2]=J[b+24>>2];if(J[a+48>>2]>0){while(1){b=J[J[a+44>>2]+(h<<2)>>2];c=J[b+48>>2];j=N[J[c+12>>2]+8>>2];d=J[b+52>>2];g=N[J[d+12>>2]+8>>2];k=J[b+124>>2];e=J[d+8>>2];f=J[c+8>>2];c=J[a+40>>2]+P(h,156)|0;N[c+136>>2]=N[b+136>>2];N[c+140>>2]=N[b+140>>2];N[c+144>>2]=N[b+144>>2];J[c+112>>2]=J[f+8>>2];J[c+116>>2]=J[e+8>>2];N[c+120>>2]=N[f+120>>2];N[c+124>>2]=N[e+120>>2];N[c+128>>2]=N[f+128>>2];l=N[e+128>>2];J[c+152>>2]=h;N[c+132>>2]=l;J[c+148>>2]=k;J[c+80>>2]=0;J[c+84>>2]=0;J[c+88>>2]=0;J[c+92>>2]=0;J[c+96>>2]=0;J[c+100>>2]=0;J[c+104>>2]=0;J[c+108>>2]=0;d=J[a+36>>2]+P(h,88)|0;J[d+32>>2]=J[f+8>>2];J[d+36>>2]=J[e+8>>2];N[d+40>>2]=N[f+120>>2];N[d+44>>2]=N[e+120>>2];i=J[f+32>>2];J[d+48>>2]=J[f+28>>2];J[d+52>>2]=i;i=J[e+32>>2];J[d+56>>2]=J[e+28>>2];J[d+60>>2]=i;N[d+64>>2]=N[f+128>>2];N[d+68>>2]=N[e+128>>2];e=J[b+108>>2];J[d+16>>2]=J[b+104>>2];J[d+20>>2]=e;e=J[b+116>>2];f=J[b+112>>2];J[d+84>>2]=k;J[d+24>>2]=f;J[d+28>>2]=e;N[d+80>>2]=g;N[d+76>>2]=j;J[d+72>>2]=J[b+120>>2];if((k|0)>0){i=b- -64|0;e=0;while(1){b=c+P(e,36)|0;f=P(e,20)+i|0;a:{if(!K[a+20|0]){j=Q(0);g=Q(0);break a}g=N[a+8>>2];j=Q(g*N[f+12>>2]);g=Q(g*N[f+8>>2])}J[b+32>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;N[b+20>>2]=j;N[b+16>>2]=g;J[b+8>>2]=0;J[b+12>>2]=0;J[b>>2]=0;J[b+4>>2]=0;m=J[f+4>>2];b=d+(e<<3)|0;J[b>>2]=J[f>>2];J[b+4>>2]=m;e=e+1|0;if((k|0)!=(e|0)){continue}break}}h=h+1|0;if((h|0)<J[a+48>>2]){continue}break}}return a}function bg(a,b){a=a|0;b=b|0;var c=Q(0),d=0,e=Q(0),f=0,g=Q(0),h=Q(0),i=0,j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=0,o=Q(0),p=0,q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0);d=J[a+48>>2];s=J[d+8>>2];J[a+96>>2]=s;i=J[a+52>>2];n=J[i+8>>2];J[a+100>>2]=n;o=N[d+32>>2];f=J[d+32>>2];l=N[d+28>>2];p=J[d+28>>2];J[a+128>>2]=p;J[a+132>>2]=f;A=N[i+32>>2];f=J[i+32>>2];h=N[i+28>>2];J[a+136>>2]=J[i+28>>2];J[a+140>>2]=f;q=N[d+120>>2];N[a+144>>2]=q;r=N[i+120>>2];N[a+148>>2]=r;t=N[d+128>>2];N[a+152>>2]=t;u=N[i+128>>2];N[a+156>>2]=u;e=N[a+72>>2];i=J[b+24>>2];d=P(s,12);p=i+d|0;m=N[p+8>>2];k=Za(m);c=N[a+68>>2];g=_a(m);f=J[b+28>>2];d=d+f|0;m=N[d>>2];v=N[d+4>>2];w=N[d+8>>2];n=P(n,12);d=n+f|0;x=N[d>>2];y=N[d+4>>2];z=N[d+8>>2];B=N[p>>2];d=i+n|0;C=N[d>>2];D=N[p+4>>2];E=N[d+4>>2];j=N[d+8>>2];c=Q(c-l);e=Q(e-o);l=Q(Q(g*c)-Q(k*e));N[a+112>>2]=l;k=Q(Q(k*c)+Q(g*e));N[a+116>>2]=k;g=N[a+80>>2];e=Za(j);c=N[a+76>>2];j=_a(j);h=Q(c-h);c=Q(g-A);g=Q(Q(j*h)-Q(e*c));N[a+120>>2]=g;j=Q(Q(e*h)+Q(j*c));N[a+124>>2]=j;h=Q(Q(Q(C+g)-B)-l);e=Q(Q(Q(E+j)-D)-k);c=Q(Y(Q(Q(h*h)+Q(e*e))));N[a+88>>2]=c;if(c>Q(.004999999888241291)){c=Q(Q(1)/c);e=Q(e*c);N[a+108>>2]=e;h=Q(h*c);N[a+104>>2]=h;c=Q(Q(g*e)-Q(h*j));o=Q(Q(u*c)*c);c=Q(Q(l*e)-Q(h*k));c=Q(o+Q(r+Q(Q(Q(t*c)*c)+q)));N[a+160>>2]=c!=Q(0)?Q(Q(1)/c):Q(0);a:{if(K[b+20|0]){c=Q(N[b+8>>2]*N[a+92>>2]);N[a+92>>2]=c;o=g;g=Q(e*c);e=Q(h*c);z=Q(Q(u*Q(Q(o*g)+Q(e*Q(-j))))+z);w=Q(w-Q(t*Q(Q(l*g)+Q(e*Q(-k)))));y=Q(y+Q(r*g));x=Q(x+Q(r*e));v=Q(v-Q(q*g));m=Q(m-Q(q*e));break a}J[a+92>>2]=0}f=J[b+28>>2]+P(s,12)|0;N[f+4>>2]=v;N[f>>2]=m;f=J[b+28>>2];N[(f+P(J[a+96>>2],12)|0)+8>>2]=w;f=f+P(J[a+100>>2],12)|0;N[f+4>>2]=y;N[f>>2]=x;N[(J[b+28>>2]+P(J[a+100>>2],12)|0)+8>>2]=z;return}J[a+160>>2]=0;J[a+104>>2]=0;J[a+108>>2]=0;J[a+92>>2]=0}function _i(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;d=J[a>>2];g=J[a+4>>2]-d>>3;if(g>>>0<b>>>0){d=b-g|0;g=a;a:{e=J[a+8>>2];b=J[a+4>>2];if(d>>>0<=e-b>>3>>>0){b:{if(!d){break b}a=b;f=d&7;if(f){e=0;while(1){i=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=i;a=a+8|0;e=e+1|0;if((f|0)!=(e|0)){continue}break}}b=(d<<3)+b|0;if((d-1&536870911)>>>0<7){break b}while(1){d=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=d;d=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=d;d=J[c+4>>2];J[a+16>>2]=J[c>>2];J[a+20>>2]=d;d=J[c+4>>2];J[a+24>>2]=J[c>>2];J[a+28>>2]=d;d=J[c+4>>2];J[a+32>>2]=J[c>>2];J[a+36>>2]=d;d=J[c+4>>2];J[a+40>>2]=J[c>>2];J[a+44>>2]=d;d=J[c+4>>2];J[a+48>>2]=J[c>>2];J[a+52>>2]=d;d=J[c+4>>2];J[a+56>>2]=J[c>>2];J[a+60>>2]=d;a=a- -64|0;if((b|0)!=(a|0)){continue}break}}J[g+4>>2]=b;break a}c:{f=J[g>>2];h=b-f>>3;a=h+d|0;if(a>>>0<536870912){e=e-f|0;f=e>>2;f=e>>>0>=2147483640?536870911:a>>>0<f>>>0?f:a;if(f){if(f>>>0>=536870912){break c}i=Xa(f<<3)}e=(h<<3)+i|0;a=e;h=d&7;if(h){while(1){j=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=j;a=a+8|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}h=(d<<3)+e|0;if((d-1&536870911)>>>0>=7){while(1){d=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=d;d=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=d;d=J[c+4>>2];J[a+16>>2]=J[c>>2];J[a+20>>2]=d;d=J[c+4>>2];J[a+24>>2]=J[c>>2];J[a+28>>2]=d;d=J[c+4>>2];J[a+32>>2]=J[c>>2];J[a+36>>2]=d;d=J[c+4>>2];J[a+40>>2]=J[c>>2];J[a+44>>2]=d;d=J[c+4>>2];J[a+48>>2]=J[c>>2];J[a+52>>2]=d;d=J[c+4>>2];J[a+56>>2]=J[c>>2];J[a+60>>2]=d;a=a- -64|0;if((h|0)!=(a|0)){continue}break}}c=J[g>>2];if((c|0)!=(b|0)){while(1){b=b-8|0;a=b;j=J[a+4>>2];e=e-8|0;d=e;J[d>>2]=J[a>>2];J[d+4>>2]=j;if((a|0)!=(c|0)){continue}break}b=J[g>>2]}J[g+8>>2]=(f<<3)+i;J[g+4>>2]=h;J[g>>2]=e;if(b){ab(b)}break a}ma();B()}Ub();B()}return}if(b>>>0<g>>>0){J[a+4>>2]=d+(b<<3)}}function og(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0);e=J[b+24>>2];l=e+P(J[a+136>>2],12)|0;m=N[l+8>>2];u=N[l+4>>2];v=N[l>>2];e=e+P(J[a+132>>2],12)|0;n=N[e+8>>2];k=N[e+4>>2];w=N[e>>2];l=1;o=N[a+180>>2];p=N[a+184>>2];if(!(!K[a+116|0]|Q(o+p)==Q(0))){d=Q(Q(m-n)-N[a+120>>2]);g=N[a+128>>2];f=N[a+124>>2];c=Q(g-f);a:{if((c>Q(0)?c:Q(-c))<Q(.06981317698955536)){c=Q(d-f);c=c<Q(.13962635397911072)?c:Q(.13962635397911072);c=c<Q(-.13962635397911072)?Q(-.13962635397911072):c;break a}if(d<=f){c=Q(Q(d-f)+Q(.03490658849477768));c=c<Q(0)?c:Q(0);c=c<Q(-.13962635397911072)?Q(-.13962635397911072):c;break a}c=Q(0);if(!(d>=g)){break a}c=Q(Q(d-g)+Q(-.03490658849477768));c=c<Q(.13962635397911072)?c:Q(.13962635397911072);c=c<Q(0)?Q(0):c}l=(c>Q(0)?c:Q(-c))<=Q(.03490658849477768);c=Q(c*Q(-N[a+208>>2]));m=Q(Q(p*c)+m);n=Q(n-Q(o*c))}h=N[a+168>>2];i=N[a+80>>2];x=Za(m);d=N[a+164>>2];f=N[a+76>>2];y=_a(m);g=N[a+160>>2];c=N[a+72>>2];j=Q(f-d);h=Q(i-h);q=Q(Q(x*j)+Q(y*h));i=Za(n);d=Q(N[a+68>>2]-N[a+156>>2]);f=_a(n);c=Q(c-g);r=Q(Q(i*d)+Q(f*c));s=N[a+172>>2];t=N[a+176>>2];g=Q(s+t);z=Q(Q(Q(q*p)*q)+Q(Q(Q(r*o)*r)+g));A=k;k=Q(Q(Q(u+q)-k)-r);h=Q(Q(y*j)-Q(h*x));j=Q(Q(f*d)-Q(c*i));i=Q(Q(Q(v+h)-w)-j);c=Q(h*p);d=Q(Q(Q(j*Q(-o))*r)-Q(q*c));g=Q(Q(c*h)+Q(Q(Q(j*o)*j)+g));c=Q(Q(z*g)-Q(d*d));c=Q(-(c!=Q(0)?Q(Q(1)/c):c));f=Q(Q(Q(z*k)-Q(i*d))*c);N[e+4>>2]=A-Q(s*f);c=Q(Q(Q(g*i)-Q(k*d))*c);N[e>>2]=w-Q(s*c);e=J[b+24>>2];N[(e+P(J[a+132>>2],12)|0)+8>>2]=n-Q(o*Q(Q(j*f)-Q(c*r)));e=e+P(J[a+136>>2],12)|0;N[e+4>>2]=u+Q(t*f);N[e>>2]=v+Q(t*c);N[(J[b+24>>2]+P(J[a+136>>2],12)|0)+8>>2]=Q(p*Q(Q(h*f)-Q(c*q)))+m;return Q(Y(Q(Q(i*i)+Q(k*k))))<=Q(.004999999888241291)&l}function nd(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=Q(0),l=0;c=La-128|0;La=c;l=J[a+52>>2];i=J[a+48>>2];g=N[i+12>>2];f=N[i+20>>2];d=N[a+68>>2];e=N[i+24>>2];h=N[a+72>>2];N[c+124>>2]=Q(Q(f*d)+Q(e*h))+N[i+16>>2];N[c+120>>2]=g+Q(Q(e*d)-Q(h*f));g=N[l+12>>2];d=N[l+20>>2];h=N[a+76>>2];j=N[l+24>>2];k=N[a+80>>2];N[c+116>>2]=Q(Q(d*h)+Q(j*k))+N[l+16>>2];N[c+112>>2]=g+Q(Q(j*h)-Q(k*d));d=N[a+88>>2];h=N[a+84>>2];J[c+104>>2]=1060320051;J[c+108>>2]=1065353216;J[c+96>>2]=1060320051;J[c+100>>2]=1060320051;J[c+88>>2]=1050253722;J[c+92>>2]=1065353216;J[c+80>>2]=1050253722;J[c+84>>2]=1063675494;J[c+72>>2]=1050253722;J[c+76>>2]=1065353216;J[c+64>>2]=1063675494;J[c+68>>2]=1050253722;J[c+56>>2]=1063675494;J[c+60>>2]=1065353216;J[c+48>>2]=1050253722;J[c+52>>2]=1050253722;J[c+40>>2]=1053609165;J[c+44>>2]=1065353216;J[c+32>>2]=1053609165;J[c+36>>2]=1053609165;Na[J[J[b>>2]+24>>2]](b,c+120|0,c+112|0,c+32|0);g=Q(Q(f*h)+Q(e*d));f=Q(Q(e*h)-Q(d*f));a:{if(K[a+140|0]){e=N[a+124>>2];d=N[c+124>>2];N[c+28>>2]=Q(g*e)+d;h=N[c+120>>2];N[c+24>>2]=h+Q(f*e);e=g;g=N[a+128>>2];N[c+20>>2]=d+Q(e*g);N[c+16>>2]=h+Q(f*g);f=N[a+96>>2];e=N[i+20>>2];d=N[a+92>>2];h=N[i+24>>2];Na[J[J[b>>2]+24>>2]](b,c+24|0,c+16|0,c+96|0);j=N[c+28>>2];g=Q(Q(Q(e*d)+Q(h*f))*Q(.5));N[c+12>>2]=j-g;k=N[c+24>>2];f=Q(Q(Q(h*d)-Q(f*e))*Q(.5));N[c+8>>2]=k-f;N[c+4>>2]=g+j;N[c>>2]=f+k;a=c+8|0;Na[J[J[b>>2]+24>>2]](b,a,c,c+80|0);e=N[c+20>>2];N[c+12>>2]=e-g;d=N[c+16>>2];N[c+8>>2]=d-f;N[c+4>>2]=g+e;N[c>>2]=f+d;Na[J[J[b>>2]+24>>2]](b,a,c,c- -64|0);break a}e=N[c+124>>2];N[c+28>>2]=e-g;d=N[c+120>>2];N[c+24>>2]=d-f;N[c+20>>2]=g+e;N[c+16>>2]=f+d;Na[J[J[b>>2]+24>>2]](b,c+24|0,c+16|0,c+96|0)}Na[J[J[b>>2]+32>>2]](b,c+120|0,Q(5),c+96|0);Na[J[J[b>>2]+32>>2]](b,c+112|0,Q(5),c+48|0);La=c+128|0}function qh(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=0,l=0,m=Q(0),n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=0,v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0);j=J[a+48>>2];u=J[j+8>>2];J[a+104>>2]=u;k=J[a+52>>2];o=J[k+8>>2];J[a+108>>2]=o;q=N[j+32>>2];f=J[j+32>>2];n=N[j+28>>2];l=J[j+28>>2];J[a+128>>2]=l;J[a+132>>2]=f;r=N[k+32>>2];f=J[k+32>>2];g=N[k+28>>2];J[a+136>>2]=J[k+28>>2];J[a+140>>2]=f;s=N[j+120>>2];N[a+144>>2]=s;t=N[k+120>>2];N[a+148>>2]=t;d=N[j+128>>2];N[a+152>>2]=d;p=N[k+128>>2];N[a+156>>2]=p;h=N[a+72>>2];j=P(u,12);k=J[b+24>>2];e=N[(j+k|0)+8>>2];m=_a(e);i=N[a+68>>2];e=Za(e);f=J[b+28>>2];o=P(o,12);l=f+o|0;v=N[l+8>>2];w=N[l+4>>2];x=N[l>>2];l=j+f|0;y=N[l+8>>2];z=N[l+4>>2];A=N[l>>2];c=N[(k+o|0)+8>>2];i=Q(i-n);h=Q(h-q);n=Q(Q(e*i)+Q(m*h));N[a+116>>2]=n;m=Q(Q(m*i)-Q(h*e));N[a+112>>2]=m;e=Q(d+p);N[a+176>>2]=e>Q(0)?Q(Q(1)/e):e;e=N[a+80>>2];h=_a(c);i=N[a+76>>2];c=Za(c);g=Q(i-g);i=Q(e-r);e=Q(Q(c*g)+Q(h*i));N[a+124>>2]=e;h=Q(Q(h*g)-Q(i*c));N[a+120>>2]=h;c=Q(s+t);g=Q(Q(Q(p*e)*e)+Q(Q(Q(d*n)*n)+c));q=g;g=Q(p*h);i=Q(Q(g*h)+Q(Q(Q(d*m)*m)+c));r=Q(-d);d=Q(Q(Q(m*r)*n)-Q(e*g));c=Q(Q(q*i)-Q(d*d));c=c!=Q(0)?Q(Q(1)/c):c;N[a+172>>2]=q*c;N[a+160>>2]=i*c;d=Q(d*Q(-c));N[a+168>>2]=d;N[a+164>>2]=d;a:{if(K[b+20|0]){c=N[b+8>>2];d=Q(c*N[a+84>>2]);N[a+84>>2]=d;g=Q(c*N[a+92>>2]);N[a+92>>2]=g;c=Q(c*N[a+88>>2]);N[a+88>>2]=c;v=Q(Q(p*Q(g+Q(Q(h*c)-Q(d*e))))+v);y=Q(Q(r*Q(g+Q(Q(m*c)-Q(d*n))))+y);x=Q(x+Q(t*d));A=Q(A-Q(s*d));w=Q(w+Q(t*c));z=Q(z-Q(s*c));break a}J[a+92>>2]=0;J[a+84>>2]=0;J[a+88>>2]=0}f=J[b+28>>2]+P(u,12)|0;N[f+4>>2]=z;N[f>>2]=A;f=J[b+28>>2];N[(f+P(J[a+104>>2],12)|0)+8>>2]=y;f=f+P(J[a+108>>2],12)|0;N[f+4>>2]=w;N[f>>2]=x;N[(J[b+28>>2]+P(J[a+108>>2],12)|0)+8>>2]=v}function Gd(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=0,f=0;c=La-416|0;La=c;Ya(7754,0);O[c+400>>3]=N[a+16>>2];Ya(6877,c+400|0);O[c+384>>3]=N[a+20>>2];Ya(6849,c+384|0);O[c+368>>3]=N[a>>2];Ya(6664,c+368|0);J[c+352>>2]=K[a+38|0];Ya(8789,c+352|0);J[c+336>>2]=L[a+32>>1];Ya(9027,c+336|0);J[c+320>>2]=L[a+34>>1];Ya(9069,c+320|0);J[c+304>>2]=I[a+36>>1];Ya(9107,c+304|0);a:{b:{c:{d:{e:{f:{a=J[a+12>>2];switch(J[a+4>>2]){case 0:break c;case 3:break d;case 2:break e;case 1:break f;default:break a}}Ya(7489,0);O[c+128>>3]=N[a+8>>2];Ya(6746,c+128|0);d=N[a+28>>2];O[c+120>>3]=N[a+32>>2];O[c+112>>3]=d;Ya(8496,c+112|0);d=N[a+12>>2];O[c+104>>3]=N[a+16>>2];O[c+96>>3]=d;Ya(8458,c+96|0);d=N[a+20>>2];O[c+88>>3]=N[a+24>>2];O[c+80>>3]=d;Ya(8420,c+80|0);d=N[a+36>>2];O[c+72>>3]=N[a+40>>2];O[c+64>>3]=d;Ya(8382,c- -64|0);J[c+48>>2]=K[a+44|0];Ya(8964,c+48|0);break b}Ya(7411,0);J[c+192>>2]=8;Ya(7793,c+192|0);e=J[a+148>>2];if((e|0)>0){while(1){e=a+(f<<3)|0;d=N[e+20>>2];O[c+176>>3]=N[e+24>>2];J[c+160>>2]=f;O[c+168>>3]=d;Ya(8173,c+160|0);f=f+1|0;e=J[a+148>>2];if((f|0)<(e|0)){continue}break}}J[c+144>>2]=e;Ya(9146,c+144|0);break b}Ya(7438,0);J[c+288>>2]=J[a+16>>2];Ya(7793,c+288|0);e=J[a+16>>2];if((e|0)>0){while(1){e=J[a+12>>2]+(f<<3)|0;d=N[e>>2];O[c+272>>3]=N[e+4>>2];J[c+256>>2]=f;O[c+264>>3]=d;Ya(8173,c+256|0);f=f+1|0;e=J[a+16>>2];if((f|0)<(e|0)){continue}break}}J[c+240>>2]=e;Ya(9170,c+240|0);d=N[a+20>>2];O[c+232>>3]=N[a+24>>2];O[c+224>>3]=d;Ya(7991,c+224|0);d=N[a+28>>2];O[c+216>>3]=N[a+32>>2];O[c+208>>3]=d;Ya(8032,c+208|0);break b}Ya(7463,0);O[c+32>>3]=N[a+8>>2];Ya(6746,c+32|0);d=N[a+12>>2];O[c+24>>3]=N[a+16>>2];O[c+16>>3]=d;Ya(8109,c+16|0)}Ya(9409,0);Ya(7387,0);Ya(9409,0);J[c>>2]=b;Ya(8625,c)}La=c+416|0}function cg(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=0,g=Q(0),h=0,i=Q(0),j=Q(0),k=0,l=0,m=0,n=Q(0);c=La-112|0;La=c;h=J[a+52>>2];f=J[a+48>>2];d=N[f+12>>2];e=N[f+20>>2];g=N[a+68>>2];i=N[f+24>>2];j=N[a+72>>2];N[c+108>>2]=Q(Q(e*g)+Q(i*j))+N[f+16>>2];N[c+104>>2]=d+Q(Q(i*g)-Q(j*e));d=N[h+12>>2];e=N[h+20>>2];g=N[a+76>>2];i=N[h+24>>2];j=N[a+80>>2];N[c+100>>2]=Q(Q(e*g)+Q(i*j))+N[h+16>>2];N[c+96>>2]=d+Q(Q(i*g)-Q(j*e));J[c+88>>2]=1060320051;J[c+92>>2]=1065353216;J[c+80>>2]=1060320051;J[c+84>>2]=1060320051;J[c+72>>2]=1050253722;J[c+76>>2]=1065353216;J[c+64>>2]=1050253722;J[c+68>>2]=1063675494;J[c+56>>2]=1050253722;J[c+60>>2]=1065353216;J[c+48>>2]=1063675494;J[c+52>>2]=1050253722;J[c+40>>2]=1063675494;J[c+44>>2]=1065353216;J[c+32>>2]=1050253722;J[c+36>>2]=1050253722;J[c+24>>2]=1053609165;J[c+28>>2]=1065353216;J[c+16>>2]=1053609165;J[c+20>>2]=1053609165;Na[J[J[b>>2]+32>>2]](b,c+104|0,Q(5),c+32|0);k=c+96|0;Na[J[J[b>>2]+32>>2]](b,k,Q(5),c+16|0);d=Q(Q(N[J[a+52>>2]+56>>2]-N[J[a+48>>2]+56>>2])-N[a+120>>2]);m=c,n=Q(Q(Za(d)*Q(.5))+N[c+100>>2]),N[m+4>>2]=n;d=_a(d);N[c>>2]=N[c+96>>2]+Q(d*Q(.5));l=c+80|0;Na[J[J[b>>2]+24>>2]](b,k,c,l);Na[J[J[b>>2]+16>>2]](b,k,Q(.5),l);if(K[a+116|0]){e=N[a+124>>2];g=Za(e);d=N[a+128>>2];N[c+4>>2]=Q(g*Q(.5))+N[c+100>>2];m=c,n=Q(Q(_a(e)*Q(.5))+N[c+96>>2]),N[m>>2]=n;a=c+96|0;Na[J[J[b>>2]+24>>2]](b,a,c,c- -64|0);m=c,n=Q(Q(Za(d)*Q(.5))+N[c+100>>2]),N[m+4>>2]=n;m=c,n=Q(Q(_a(d)*Q(.5))+N[c+96>>2]),N[m>>2]=n;Na[J[J[b>>2]+24>>2]](b,a,c,c+48|0)}J[c+8>>2]=1061997773;J[c+12>>2]=1065353216;J[c>>2]=1056964608;J[c+4>>2]=1061997773;a=c+104|0;Na[J[J[b>>2]+24>>2]](b,f+12|0,a,c);f=a;a=c+96|0;Na[J[J[b>>2]+24>>2]](b,f,a,c);Na[J[J[b>>2]+24>>2]](b,h+12|0,a,c);La=c+112|0}function hd(a,b,c,d,e){var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0);a:{switch(J[b+72>>2]){case 0:g=N[d>>2];f=N[c>>2];h=N[d+8>>2];i=N[b>>2];k=N[d+12>>2];m=N[b+4>>2];n=Q(Q(Q(h*i)+Q(k*m))+N[d+4>>2]);o=N[c+8>>2];p=N[b+24>>2];l=N[c+12>>2];q=N[b+28>>2];r=Q(Q(Q(o*p)+Q(l*q))+N[c+4>>2]);j=Q(n-r);N[a+4>>2]=j;h=Q(g+Q(Q(k*i)-Q(m*h)));i=Q(f+Q(Q(l*p)-Q(q*o)));g=Q(h-i);N[a>>2]=g;f=Q(Q(g*g)+Q(j*j));k=Q(Y(f));if(!(k<Q(1.1920928955078125e-7))){f=Q(Q(1)/k);k=Q(j*f);N[a+4>>2]=k;f=Q(g*f);N[a>>2]=f;f=Q(Q(g*f)+Q(j*k))}N[a+12>>2]=Q(r+n)*Q(.5);N[a+8>>2]=Q(i+h)*Q(.5);N[a+16>>2]=Q(f-N[b+76>>2])-N[b+80>>2];return;case 1:j=N[c+8>>2];g=N[b+16>>2];f=N[c+12>>2];h=N[b+20>>2];i=Q(Q(j*g)+Q(f*h));N[a+4>>2]=i;k=Q(Q(f*g)-Q(h*j));N[a>>2]=k;j=N[b+28>>2];g=N[c+12>>2];m=N[b+80>>2];n=N[b+76>>2];o=N[c>>2];p=N[c+4>>2];f=N[c+8>>2];h=N[b+24>>2];l=N[d>>2];q=N[d+8>>2];b=(e<<3)+b|0;r=N[b>>2];t=N[d+12>>2];u=N[b+4>>2];s=Q(Q(Q(q*r)+Q(t*u))+N[d+4>>2]);N[a+12>>2]=s;l=Q(l+Q(Q(t*r)-Q(u*q)));N[a+8>>2]=l;N[a+16>>2]=Q(Q(Q(Q(l-Q(o+Q(Q(g*h)-Q(j*f))))*k)+Q(Q(s-Q(p+Q(Q(f*h)+Q(g*j))))*i))-n)-m;return;case 2:g=N[d+8>>2];f=N[b+16>>2];h=N[d+12>>2];i=N[b+20>>2];j=Q(Q(g*f)+Q(h*i));N[a+4>>2]=j;g=Q(Q(h*f)-Q(i*g));N[a>>2]=g;f=N[b+28>>2];h=N[d+12>>2];e=(e<<3)+b|0;i=N[e>>2];k=N[e+4>>2];m=N[c+12>>2];l=N[b+80>>2];q=N[b+76>>2];r=N[d>>2];t=N[d+4>>2];n=N[d+8>>2];o=N[b+24>>2];u=N[c>>2];s=N[c+4>>2];p=N[c+8>>2];N[a+4>>2]=-j;N[a>>2]=-g;s=Q(s+Q(Q(p*i)+Q(m*k)));N[a+12>>2]=s;i=Q(u+Q(Q(m*i)-Q(k*p)));N[a+8>>2]=i;N[a+16>>2]=Q(Q(Q(Q(i-Q(r+Q(Q(h*o)-Q(f*n))))*g)+Q(Q(s-Q(t+Q(Q(n*o)+Q(h*f))))*j))-q)-l;break;default:break a}}}function ec(a,b,c,d){var e=0,f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0);f=La-48|0;La=f;if(J[a+28>>2]>0){while(1){g=J[a+12>>2];e=J[a+24>>2]+P(q,28)|0;Na[J[J[g>>2]+24>>2]](g,f+32|0,c,J[e+20>>2]);g=J[a+12>>2];Na[J[J[g>>2]+24>>2]](g,f+16|0,d,J[e+20>>2]);h=N[f+16>>2];j=N[f+32>>2];i=N[f+36>>2];k=N[f+20>>2];N[e+4>>2]=i<k?i:k;N[e>>2]=h>j?j:h;h=N[f+24>>2];j=N[f+40>>2];i=N[f+44>>2];k=N[f+28>>2];N[e+12>>2]=i>k?i:k;N[e+8>>2]=h<j?j:h;N[f+12>>2]=Q(Q(N[f+20>>2]+N[f+28>>2])*Q(.5))-Q(Q(N[f+36>>2]+N[f+44>>2])*Q(.5));N[f+8>>2]=Q(Q(N[f+16>>2]+N[f+24>>2])*Q(.5))-Q(Q(N[f+32>>2]+N[f+40>>2])*Q(.5));h=Q(N[f+12>>2]*Q(4));g=h<Q(0);n=N[e+12>>2];j=Q(Q(n+Q(.10000000149011612))+(g?Q(-0):h));o=N[e+4>>2];h=Q(Q(o+Q(-.10000000149011612))+(g?h:Q(-0)));i=Q(N[f+8>>2]*Q(4));g=i<Q(0);p=N[e+8>>2];k=Q(Q(p+Q(.10000000149011612))+(g?Q(-0):i));l=N[e>>2];i=Q(Q(l+Q(-.10000000149011612))+(g?i:Q(-0)));g=J[e+24>>2];m=P(g,40);e=m+J[b+4>>2]|0;r=N[e>>2];a:{b:{if(!(l>=r)){break b}l=o;o=N[e+4>>2];if(!(l>=o)){break b}l=p;p=N[e+8>>2];if(!(l<=p)){break b}l=n;n=N[e+12>>2];if(!(l<=n)|!(Q(i+Q(-.4000000059604645))<=r)|(!(o>=Q(h+Q(-.4000000059604645)))|!(p<=Q(k+Q(.4000000059604645))))){break b}e=0;if(n<=Q(j+Q(.4000000059604645))){break a}}Qd(b,g);e=m+J[b+4>>2]|0;N[e+12>>2]=j;N[e+8>>2]=k;N[e+4>>2]=h;N[e>>2]=i;Sd(b,g);H[(m+J[b+4>>2]|0)+36|0]=1;e=1}if(e){e=J[b+40>>2];if((e|0)==J[b+36>>2]){J[b+36>>2]=e<<1;m=J[b+32>>2];e=fb(e<<3);J[b+32>>2]=e;rb(e,m,J[b+40>>2]<<2);ab(m);e=J[b+40>>2]}J[J[b+32>>2]+(e<<2)>>2]=g;J[b+40>>2]=J[b+40>>2]+1}q=q+1|0;if((q|0)<J[a+28>>2]){continue}break}}La=f+48|0}function pg(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=0,r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0);q=J[b+28>>2];f=q+P(J[a+136>>2],12)|0;g=N[f+8>>2];r=N[f+4>>2];s=N[f>>2];f=P(J[a+132>>2],12)+q|0;d=N[f+8>>2];t=N[f+4>>2];u=N[f>>2];l=N[a+180>>2];m=N[a+184>>2];e=Q(l+m);if(!(!K[a+104|0]|e==Q(0))){c=Q(N[b>>2]*N[a+108>>2]);n=Q(-c);o=N[a+92>>2];i=Q(o-Q(N[a+208>>2]*Q(Q(g-d)-N[a+112>>2])));c=c>i?i:c;c=c<n?n:c;N[a+92>>2]=c;c=Q(c-o);g=Q(Q(m*c)+g);d=Q(d-Q(l*c))}n=N[a+176>>2];o=N[a+172>>2];if(!(!K[a+116|0]|e==Q(0))){e=N[a+96>>2];c=N[a+208>>2];i=N[a+204>>2];h=Q(i-N[a+124>>2]);p=h>Q(0)?h:Q(0);h=N[b+4>>2];j=Q(e-Q(c*Q(Q(p*h)+Q(g-d))));j=j>Q(0)?j:Q(0);N[a+96>>2]=j;k=N[a+100>>2];p=c;c=Q(N[a+128>>2]-i);i=d;d=Q(j-e);e=Q(i-Q(l*d));g=Q(Q(m*d)+g);d=Q(k-Q(p*Q(Q(h*(c>Q(0)?c:Q(0)))+Q(e-g))));d=d>Q(0)?d:Q(0);N[a+100>>2]=d;d=Q(d-k);g=Q(g-Q(m*d));d=Q(Q(l*d)+e)}i=N[a+188>>2];h=N[a+200>>2];j=N[a+192>>2];k=N[a+196>>2];e=Q(Q(i*h)-Q(j*k));c=e!=Q(0)?Q(Q(1)/e):e;v=N[a+148>>2];w=N[a+140>>2];x=Q(Q(Q(r+Q(g*v))-t)-Q(d*w));e=Q(x*k);p=h;h=N[a+152>>2];k=N[a+144>>2];y=Q(Q(Q(s-Q(g*h))-u)+Q(d*k));e=Q(Q(e-Q(p*y))*c);N[a+84>>2]=N[a+84>>2]+e;c=Q(Q(Q(y*j)-Q(i*x))*c);N[a+88>>2]=N[a+88>>2]+c;N[f+4>>2]=t-Q(o*c);N[f>>2]=u-Q(o*e);f=J[b+28>>2];N[(f+P(J[a+132>>2],12)|0)+8>>2]=Q(Q(-l)*Q(Q(w*c)-Q(e*k)))+d;f=f+P(J[a+136>>2],12)|0;N[f+4>>2]=r+Q(n*c);N[f>>2]=s+Q(n*e);N[(J[b+28>>2]+P(J[a+136>>2],12)|0)+8>>2]=Q(m*Q(Q(v*c)-Q(e*h)))+g}function wd(a,b,c,d,e){var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=0,n=0,o=0,p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=0,y=0,z=0,A=0;j=J[b+148>>2];if((j|0)<=0){J[a>>2]=0;return Q(-34028234663852886e22)}a:{b:{c:{o=J[d+148>>2];if((o|0)<=0){c=j&3;if(j>>>0>=4){break c}g=Q(-34028234663852886e22);b=0;break b}g=N[e+12>>2];k=Q(N[c+4>>2]-N[e+4>>2]);f=N[e+8>>2];h=Q(N[c>>2]-N[e>>2]);v=Q(Q(g*k)-Q(f*h));w=Q(Q(g*h)+Q(f*k));h=N[c+12>>2];i=N[c+8>>2];k=Q(Q(g*h)+Q(i*f));d=d+20|0;x=b+20|0;y=b+84|0;p=Q(Q(g*i)-Q(h*f));r=Q(-p);z=o&-2;A=o&1;g=Q(-34028234663852886e22);c=0;while(1){b=c<<3;e=b+y|0;f=N[e>>2];i=N[e+4>>2];h=Q(Q(p*f)+Q(k*i));i=Q(Q(k*f)+Q(i*r));b=b+x|0;f=N[b>>2];l=N[b+4>>2];q=Q(v+Q(Q(p*f)+Q(k*l)));l=Q(w+Q(Q(k*f)+Q(l*r)));f=Q(34028234663852886e22);b=0;e=0;if((o|0)!=1){while(1){n=b<<3;s=d+(n|8)|0;t=Q(Q(i*Q(N[s>>2]-l))+Q(h*Q(N[s+4>>2]-q)));n=d+n|0;u=Q(Q(i*Q(N[n>>2]-l))+Q(h*Q(N[n+4>>2]-q)));f=f>u?u:f;f=f>t?t:f;b=b+2|0;e=e+2|0;if((z|0)!=(e|0)){continue}break}}if(A){b=d+(b<<3)|0;h=Q(Q(i*Q(N[b>>2]-l))+Q(h*Q(N[b+4>>2]-q)));f=f>h?h:f}b=f>g;m=b?c:m;g=b?f:g;c=c+1|0;if((j|0)!=(c|0)){continue}break}break a}d=j&-4;g=Q(-34028234663852886e22);b=0;e=0;while(1){j=g<Q(34028234663852886e22);m=j?b:m;g=j?Q(34028234663852886e22):g;b=b+4|0;e=e+4|0;if((d|0)!=(e|0)){continue}break}}if(!c){break a}e=0;while(1){d=g<Q(34028234663852886e22);m=d?b:m;g=d?Q(34028234663852886e22):g;b=b+1|0;e=e+1|0;if((c|0)!=(e|0)){continue}break}}J[a>>2]=m;return g}function vg(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0);r=N[a+164>>2];k=N[a+96>>2];p=J[b+24>>2];g=p+P(J[a+120>>2],12)|0;u=N[g+8>>2];j=_a(u);l=N[a+160>>2];n=N[a+92>>2];h=Za(u);w=N[g+4>>2];t=N[a+72>>2];x=N[g>>2];m=N[a+68>>2];d=N[a+172>>2];c=N[a+104>>2];p=p+P(J[a+124>>2],12)|0;v=N[p+8>>2];i=_a(v);s=N[a+168>>2];e=N[a+100>>2];f=Za(v);y=N[p>>2];q=Q(e-s);d=Q(c-d);s=Q(Q(i*q)-Q(f*d));e=Q(Q(y+s)-N[a+76>>2]);z=N[p+4>>2];q=Q(Q(f*q)+Q(i*d));o=Q(Q(z+q)-N[a+80>>2]);i=Q(Y(Q(Q(e*e)+Q(o*o))));f=Q(0);d=Q(0);c=Q(0);l=Q(n-l);n=Q(k-r);r=Q(Q(j*l)-Q(h*n));k=Q(Q(x+r)-m);l=Q(Q(h*l)+Q(j*n));j=Q(Q(w+l)-t);h=Q(Y(Q(Q(k*k)+Q(j*j))));if(h>Q(.04999999701976776)){d=Q(Q(1)/h);c=Q(j*d);d=Q(k*d)}j=Q(0);if(i>Q(.04999999701976776)){f=Q(Q(1)/i);j=Q(o*f);f=Q(e*f)}A=c;m=Q(N[a+108>>2]-h);h=N[a+112>>2];i=Q(m-Q(h*i));e=Q(Q(s*j)-Q(f*q));k=N[a+188>>2];m=Q(Q(e*k)*e);e=N[a+180>>2];o=N[a+176>>2];c=Q(Q(r*c)-Q(d*l));n=N[a+184>>2];c=Q(Q(Q(h*h)*Q(m+e))+Q(o+Q(Q(c*n)*c)));t=Q(i*Q(-(c>Q(0)?Q(Q(1)/c):c)));m=Q(-t);c=Q(A*m);N[g+4>>2]=w+Q(o*c);d=Q(d*m);N[g>>2]=x+Q(o*d);g=J[b+24>>2];N[(g+P(J[a+120>>2],12)|0)+8>>2]=Q(n*Q(Q(r*c)-Q(d*l)))+u;g=g+P(J[a+124>>2],12)|0;d=Q(t*Q(-h));c=Q(j*d);N[g+4>>2]=z+Q(e*c);f=Q(f*d);N[g>>2]=y+Q(e*f);N[(J[b+24>>2]+P(J[a+124>>2],12)|0)+8>>2]=Q(k*Q(Q(s*c)-Q(f*q)))+v;return(i>Q(0)?i:Q(-i))<Q(.004999999888241291)|0}function Wf(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=0,t=Q(0),u=Q(0),v=Q(0),w=Q(0);s=J[b+28>>2];c=s+P(J[a+120>>2],12)|0;e=N[c+8>>2];m=N[c+4>>2];n=N[c>>2];c=P(J[a+116>>2],12)+s|0;f=N[c+8>>2];o=N[c+4>>2];p=N[c>>2];q=N[a+168>>2];r=N[a+164>>2];t=N[a+160>>2];u=N[a+156>>2];a:{if(N[a+68>>2]>Q(0)){d=N[a+112>>2];g=Q(Q(Q(d*N[a+100>>2])+Q(Q(e-f)+N[a+76>>2]))*Q(-N[a+204>>2]));N[a+112>>2]=d+g;f=Q(f-Q(r*g));h=N[a+128>>2];i=N[a+136>>2];e=Q(Q(q*g)+e);d=Q(Q(f*h)+Q(Q(n-Q(i*e))-p));j=N[a+132>>2];k=N[a+124>>2];l=Q(Q(Q(m+Q(j*e))-o)-Q(f*k));g=Q(Q(N[a+172>>2]*d)+Q(N[a+184>>2]*l));N[a+104>>2]=N[a+104>>2]-g;d=Q(Q(N[a+176>>2]*d)+Q(l*N[a+188>>2]));N[a+108>>2]=N[a+108>>2]-d;f=Q(f-Q(r*Q(Q(h*g)-Q(k*d))));e=Q(Q(q*Q(Q(i*g)-Q(j*d)))+e);break a}k=N[a+136>>2];l=N[a+128>>2];h=Q(Q(Q(n-Q(e*k))-p)+Q(f*l));v=N[a+132>>2];w=N[a+124>>2];i=Q(Q(Q(m+Q(e*v))-o)-Q(f*w));j=Q(e-f);g=Q(Q(Q(h*N[a+172>>2])+Q(i*N[a+184>>2]))+Q(j*N[a+196>>2]));N[a+104>>2]=N[a+104>>2]-g;d=Q(Q(Q(h*N[a+176>>2])+Q(i*N[a+188>>2]))+Q(j*N[a+200>>2]));N[a+108>>2]=N[a+108>>2]-d;h=Q(Q(Q(h*N[a+180>>2])+Q(i*N[a+192>>2]))+Q(j*N[a+204>>2]));N[a+112>>2]=N[a+112>>2]-h;f=Q(f-Q(r*Q(Q(Q(l*g)-Q(w*d))-h)));e=Q(Q(q*Q(Q(Q(k*g)-Q(v*d))-h))+e)}N[c+4>>2]=o+Q(u*d);N[c>>2]=p+Q(u*g);c=J[b+28>>2];N[(c+P(J[a+116>>2],12)|0)+8>>2]=f;c=c+P(J[a+120>>2],12)|0;N[c+4>>2]=m-Q(t*d);N[c>>2]=n-Q(t*g);N[(J[b+28>>2]+P(J[a+120>>2],12)|0)+8>>2]=e}function el(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0;c=Xa(103028);b=c;J[b+4>>2]=0;J[b+8>>2]=128;d=fb(1024);J[b>>2]=d;Db(d,0,J[b+8>>2]<<3);J[b+60>>2]=0;J[b+64>>2]=0;J[b+52>>2]=0;J[b+56>>2]=0;J[b+44>>2]=0;J[b+48>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+12>>2]=0;J[b+16>>2]=0;b=b+68|0;J[b+102796>>2]=0;J[b+102408>>2]=0;J[b+102400>>2]=0;J[b+102404>>2]=0;b=c+102868|0;J[b>>2]=-1;J[b+8>>2]=0;J[b+12>>2]=16;d=fb(640);J[b+4>>2]=d;Db(d,0,P(J[b+12>>2],40));d=J[b+12>>2];a:{if((d|0)<=1){e=d-1|0;d=J[b+4>>2];break a}d=J[b+4>>2];while(1){e=P(f,40);f=f+1|0;J[(e+d|0)+20>>2]=f;d=J[b+4>>2];J[(e+d|0)+32>>2]=-1;e=J[b+12>>2]-1|0;if((e|0)>(f|0)){continue}break}}J[(P(e,40)+d|0)+20>>2]=-1;J[(J[b+4>>2]+P(J[b+12>>2],40)|0)-8>>2]=-1;J[b+24>>2]=0;J[b+16>>2]=0;J[b+20>>2]=0;J[b+48>>2]=16;J[b+52>>2]=0;J[b+28>>2]=0;d=fb(128);J[b+36>>2]=16;J[b+40>>2]=0;J[b+44>>2]=d;g=b,h=fb(64),J[g+32>>2]=h;J[b+76>>2]=0;J[b+72>>2]=23748;J[b+68>>2]=23744;J[b+60>>2]=0;J[b+64>>2]=0;J[c+102948>>2]=0;J[c+102952>>2]=0;J[c+102976>>2]=0;J[c+102980>>2]=0;b=c+102956|0;J[b>>2]=0;J[b+4>>2]=0;H[c+102991|0]=1;H[c+102992|0]=1;H[c+102993|0]=0;H[c+102994|0]=1;H[c+102972|0]=1;b=J[a+4>>2];a=J[a>>2];H[c+102990|0]=1;I[c+102988>>1]=0;J[c+102964>>2]=a;J[c+102968>>2]=b;J[c+102984>>2]=0;J[c+102996>>2]=0;J[c+103e3>>2]=0;J[c+102944>>2]=c;a=c+103004|0;J[a>>2]=0;J[a+4>>2]=0;a=c+103012|0;J[a>>2]=0;J[a+4>>2]=0;a=c+103020|0;J[a>>2]=0;J[a+4>>2]=0;return c|0}function Ld(a,b,c,d,e){var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=0,r=0,s=Q(0),t=0,u=Q(0),v=0,w=0;J[a+60>>2]=0;t=J[b+24>>2];q=J[b+16>>2];f=N[c+12>>2];g=N[e+12>>2];h=N[d+12>>2];i=N[d+16>>2];k=N[e+8>>2];l=Q(Q(N[e>>2]+Q(Q(g*h)-Q(i*k)))-N[c>>2]);h=Q(Q(Q(Q(k*h)+Q(g*i))+N[e+4>>2])-N[c+4>>2]);m=N[c+8>>2];i=Q(Q(f*l)+Q(h*m));e=J[b+12>>2];c=J[b+20>>2];r=K[b+44|0];k=N[b+24>>2];j=N[b+16>>2];g=Q(k-j);n=N[b+12>>2];o=Q(i-n);l=Q(Q(f*h)-Q(m*l));p=Q(l-j);m=N[b+20>>2];f=Q(m-n);u=Q(Q(g*o)-Q(p*f));a:{if(u<Q(0)?r:0){break a}h=Q(N[b+8>>2]+N[d+8>>2]);s=Q(Q(f*o)+Q(p*g));b:{if(s<=Q(0)){if(Q(Q(o*o)+Q(p*p))>Q(h*h)){break a}if(!r){g=Q(0);f=Q(0);break b}g=Q(0);f=Q(0);if(!(Q(Q(Q(n-N[b+28>>2])*Q(n-i))+Q(Q(j-l)*Q(j-N[b+32>>2])))>Q(0))){break b}break a}o=Q(Q(f*Q(m-i))+Q(g*Q(k-l)));if(o<=Q(0)){i=Q(i-m);j=Q(l-k);if(Q(Q(i*i)+Q(j*j))>Q(h*h)){break a}v=1;if(!r){g=Q(0);f=Q(0);e=c;q=t;break b}g=Q(0);f=Q(0);e=c;q=t;if(!(Q(Q(Q(N[b+36>>2]-m)*i)+Q(j*Q(N[b+40>>2]-k)))>Q(0))){break b}break a}p=i;i=Q(Q(1)/Q(Q(f*f)+Q(g*g)));n=Q(p-Q(i*Q(Q(o*n)+Q(s*m))));i=Q(l-Q(i*Q(Q(o*j)+Q(s*k))));if(Q(Q(n*n)+Q(i*i))>Q(h*h)){break a}v=65536;w=1;b=u<Q(0);g=b?Q(-g):g;f=b?f:Q(-f);h=Q(Y(Q(Q(g*g)+Q(f*f))));if(h<Q(1.1920928955078125e-7)){break b}h=Q(Q(1)/h);f=Q(f*h);g=Q(g*h)}J[a+56>>2]=w;J[a+60>>2]=1;J[a+48>>2]=e;N[a+40>>2]=g;J[a+16>>2]=v;J[a+52>>2]=q;N[a+44>>2]=f;b=J[d+16>>2];J[a>>2]=J[d+12>>2];J[a+4>>2]=b}}function Pe(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;e=a+16|0;d=e;c=J[a+16>>2];a:{b:{if(!c){break b}while(1){d=c;c=J[c+16>>2];if(c>>>0>b>>>0){e=d;c=J[d>>2];if(c){continue}break b}if(b>>>0<=c>>>0){break a}c=J[d+4>>2];if(c){continue}break}e=d+4|0}c=Xa(20);J[c+8>>2]=d;J[c>>2]=0;J[c+4>>2]=0;J[c+16>>2]=b;J[e>>2]=c;b=J[J[a+12>>2]>>2];if(b){J[a+12>>2]=b;b=J[e>>2]}else{b=c}f=J[a+16>>2];d=(f|0)==(b|0);H[b+12|0]=d;c:{if(d){break c}while(1){c=J[b+8>>2];if(K[c+12|0]){break c}d:{d=J[c+8>>2];e=J[d>>2];if((e|0)==(c|0)){e=J[d+4>>2];if(!(!e|K[e+12|0])){break d}e:{if(J[c>>2]==(b|0)){b=c;break e}b=J[c+4>>2];e=J[b>>2];J[c+4>>2]=e;if(e){J[e+8>>2]=c;d=J[c+8>>2]}J[b+8>>2]=d;d=J[c+8>>2];J[((J[d>>2]!=(c|0))<<2)+d>>2]=b;J[b>>2]=c;J[c+8>>2]=b;d=J[b+8>>2];c=J[d>>2]}H[b+12|0]=1;H[d+12|0]=0;b=J[c+4>>2];J[d>>2]=b;if(b){J[b+8>>2]=d}J[c+8>>2]=J[d+8>>2];b=J[d+8>>2];J[((J[b>>2]!=(d|0))<<2)+b>>2]=c;J[c+4>>2]=d;J[d+8>>2]=c;break c}if(!(K[e+12|0]|!e)){break d}f:{if(J[c>>2]!=(b|0)){b=c;break f}e=J[b+4>>2];J[c>>2]=e;if(e){J[e+8>>2]=c;d=J[c+8>>2]}J[b+8>>2]=d;d=J[c+8>>2];J[((J[d>>2]!=(c|0))<<2)+d>>2]=b;J[b+4>>2]=c;J[c+8>>2]=b;d=J[b+8>>2]}H[b+12|0]=1;H[d+12|0]=0;b=J[d+4>>2];c=J[b>>2];J[d+4>>2]=c;if(c){J[c+8>>2]=d}J[b+8>>2]=J[d+8>>2];c=J[d+8>>2];J[((J[c>>2]!=(d|0))<<2)+c>>2]=b;J[b>>2]=d;J[d+8>>2]=b;break c}H[c+12|0]=1;H[d+12|0]=(d|0)==(f|0);H[e+12|0]=1;b=d;if((f|0)!=(d|0)){continue}break}}J[a+20>>2]=J[a+20>>2]+1}}function vh(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0),z=Q(0),A=Q(0),B=Q(0),C=Q(0),D=Q(0),E=Q(0),F=Q(0),G=Q(0),H=Q(0),I=Q(0);g=N[a+240>>2];e=J[b+28>>2];c=e+P(J[a+160>>2],12)|0;i=N[c>>2];j=e+P(J[a+168>>2],12)|0;n=N[j>>2];f=N[c+4>>2];o=N[j+4>>2];h=N[a+244>>2];k=N[a+248>>2];l=e+P(J[a+164>>2],12)|0;p=N[l>>2];e=e+P(J[a+172>>2],12)|0;q=N[e>>2];r=N[l+4>>2];s=N[e+4>>2];m=N[a+252>>2];t=N[a+256>>2];u=N[c+8>>2];v=N[j+8>>2];w=N[a+264>>2];x=N[a+260>>2];y=N[l+8>>2];z=N[e+8>>2];A=N[a+268>>2];d=Q(Q(Q(Q(Q(g*Q(i-n))+Q(Q(f-o)*h))+Q(Q(k*Q(p-q))+Q(Q(r-s)*m)))+Q(Q(Q(t*u)-Q(v*w))+Q(Q(x*y)-Q(z*A))))*Q(-N[a+272>>2]));N[a+156>>2]=N[a+156>>2]+d;B=N[a+236>>2];C=N[a+220>>2];D=N[a+232>>2];E=N[a+216>>2];F=N[a+228>>2];G=N[a+212>>2];H=N[a+224>>2];I=f;f=Q(N[a+208>>2]*d);N[c+4>>2]=I+Q(h*f);N[c>>2]=i+Q(g*f);c=J[b+28>>2];N[(c+P(J[a+160>>2],12)|0)+8>>2]=u+Q(t*Q(H*d));c=c+P(J[a+164>>2],12)|0;i=Q(d*G);N[c+4>>2]=r+Q(m*i);N[c>>2]=p+Q(k*i);c=J[b+28>>2];N[(c+P(J[a+164>>2],12)|0)+8>>2]=y+Q(x*Q(d*F));c=c+P(J[a+168>>2],12)|0;f=h;h=Q(d*E);N[c+4>>2]=o-Q(f*h);N[c>>2]=n-Q(g*h);c=J[b+28>>2];N[(c+P(J[a+168>>2],12)|0)+8>>2]=v-Q(w*Q(d*D));c=c+P(J[a+172>>2],12)|0;g=Q(d*C);N[c+4>>2]=s-Q(m*g);N[c>>2]=q-Q(k*g);N[(J[b+28>>2]+P(J[a+172>>2],12)|0)+8>>2]=z-Q(A*Q(d*B))}function Wg(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=0,n=Q(0),o=0,p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0);j=J[a+52>>2];o=J[j+8>>2];J[a+116>>2]=o;s=N[j+32>>2];m=J[j+32>>2];e=N[j+28>>2];f=J[j+28>>2];J[a+128>>2]=f;J[a+132>>2]=m;k=N[j+120>>2];N[a+136>>2]=k;l=N[j+128>>2];N[a+140>>2]=l;m=P(o,12);f=m+J[b+28>>2]|0;p=N[f+4>>2];q=N[f>>2];t=N[f+8>>2];f=J[b+24>>2]+m|0;u=N[f>>2];v=N[f+4>>2];i=N[f+8>>2];g=N[b>>2];d=N[j+116>>2];c=Q(N[a+84>>2]*Q(6.2831854820251465));h=Q(g*Q(d*Q(c*c)));d=Q(g*Q(h+Q(c*Q(Q(d+d)*N[a+88>>2]))));c=d!=Q(0)?Q(Q(1)/d):d;N[a+108>>2]=c;h=Q(h*c);N[a+92>>2]=h;g=N[a+72>>2];d=Za(i);n=N[a+68>>2];r=_a(i);e=Q(n-e);g=Q(g-s);i=Q(Q(r*e)-Q(d*g));N[a+120>>2]=i;d=Q(Q(d*e)+Q(r*g));N[a+124>>2]=d;g=Q(c+Q(k+Q(Q(l*i)*i)));n=Q(c+Q(k+Q(Q(l*d)*d)));e=Q(d*Q(i*Q(-l)));c=Q(Q(g*n)-Q(e*e));c=c!=Q(0)?Q(Q(1)/c):c;N[a+144>>2]=g*c;N[a+156>>2]=n*c;c=Q(e*Q(-c));N[a+148>>2]=c;N[a+152>>2]=c;N[a+164>>2]=h*Q(Q(v+d)-N[a+80>>2]);N[a+160>>2]=h*Q(Q(u+i)-N[a+76>>2]);c=Q(t*Q(.9800000190734863));a:{if(K[b+20|0]){e=N[b+8>>2];h=Q(e*N[a+96>>2]);N[a+96>>2]=h;e=Q(e*N[a+100>>2]);N[a+100>>2]=e;c=Q(Q(l*Q(Q(i*e)-Q(h*d)))+c);q=Q(q+Q(k*h));p=Q(p+Q(k*e));break a}J[a+96>>2]=0;J[a+100>>2]=0}f=J[b+28>>2]+P(o,12)|0;N[f+4>>2]=p;N[f>>2]=q;N[(J[b+28>>2]+P(J[a+116>>2],12)|0)+8>>2]=c}function kf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;f=La+-64|0;La=f;a:{if(gb(b,18416,0)){J[c>>2]=0;d=1;break a}b:{if(K[a+8|0]&24){e=1}else{if(!b){break b}e=sb(b,18148);if(!e){break b}e=(K[e+8|0]&24)!=0}g=gb(a,b,e)}if(g){d=1;a=J[c>>2];if(!a){break a}J[c>>2]=J[a>>2];break a}c:{if(!b){break c}e=sb(b,18196);if(!e){break a}b=J[c>>2];if(b){J[c>>2]=J[b>>2]}g=J[e+8>>2];b=J[a+8>>2];if(g&(b^-1)&7|b&(g^-1)&96){break a}d=1;if(gb(J[a+12>>2],J[e+12>>2],0)){break a}if(gb(J[a+12>>2],18404,0)){a=J[e+12>>2];if(!a){break a}d=!sb(a,18248);break a}g=J[a+12>>2];if(!g){break c}d=0;b=sb(g,18196);if(b){if(!(H[a+8|0]&1)){break a}a=J[e+12>>2];c=0;d:{e:{while(1){d=0;if(!a){break d}a=sb(a,18196);if(!a|J[a+8>>2]&(J[b+8>>2]^-1)){break e}d=1;if(gb(J[b+12>>2],J[a+12>>2],0)){break d}if(!(H[b+8|0]&1)){break e}d=J[b+12>>2];if(!d){break e}b=sb(d,18196);if(b){a=J[a+12>>2];continue}break}b=sb(d,18308);if(!b){break e}c=Pc(b,J[a+12>>2])}d=c}break a}b=sb(g,18308);if(b){if(!(H[a+8|0]&1)){break a}d=Pc(b,J[e+12>>2]);break a}b=sb(g,18100);if(!b){break a}a=J[e+12>>2];if(!a){break a}a=sb(a,18100);if(!a){break a}Db(f+12|0,0,52);J[f+56>>2]=1;J[f+20>>2]=-1;J[f+16>>2]=b;J[f+8>>2]=a;Na[J[J[a>>2]+28>>2]](a,f+8|0,J[c>>2],1);a=J[f+32>>2];if(!(!J[c>>2]|(a|0)!=1)){J[c>>2]=J[f+24>>2]}d=(a|0)==1;break a}d=0}La=f- -64|0;return d|0}function kh(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=0,g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0);h=J[b+28>>2];f=h+P(J[a+104>>2],12)|0;m=N[f>>2];h=h+P(J[a+108>>2],12)|0;n=N[h>>2];o=N[f+4>>2];p=N[h+4>>2];q=N[a+160>>2];r=N[a+156>>2];s=N[a+168>>2];t=N[a+164>>2];g=N[b>>2];c=Q(g*N[a+96>>2]);i=Q(-c);j=N[a+88>>2];d=Q(N[b+4>>2]*N[a+100>>2]);e=N[h+8>>2];k=N[f+8>>2];l=Q(j-Q(N[a+188>>2]*Q(Q(d*N[a+152>>2])+Q(e-k))));c=c>l?l:c;c=c<i?i:c;N[a+88>>2]=c;l=N[a+80>>2];u=N[a+116>>2];c=Q(c-j);i=Q(k-Q(t*c));k=N[a+124>>2];j=Q(e+Q(s*c));e=Q(Q(d*N[a+144>>2])+Q(Q(u*i)+Q(Q(n-Q(k*j))-m)));v=N[a+120>>2];w=N[a+112>>2];d=Q(Q(d*N[a+148>>2])+Q(Q(Q(p+Q(v*j))-o)-Q(w*i)));c=Q(l-Q(Q(N[a+172>>2]*e)+Q(N[a+180>>2]*d)));N[a+80>>2]=c;x=N[a+84>>2];d=Q(x-Q(Q(N[a+176>>2]*e)+Q(N[a+184>>2]*d)));N[a+84>>2]=d;e=Q(Q(c*c)+Q(d*d));g=Q(g*N[a+92>>2]);if(e>Q(g*g)){e=Q(Y(e));if(!(e<Q(1.1920928955078125e-7))){e=Q(Q(1)/e);d=Q(d*e);c=Q(c*e)}d=Q(g*d);N[a+84>>2]=d;c=Q(g*c);N[a+80>>2]=c}d=Q(d-x);N[f+4>>2]=o-Q(r*d);c=Q(c-l);N[f>>2]=m-Q(r*c);f=J[b+28>>2];N[(f+P(J[a+104>>2],12)|0)+8>>2]=Q(Q(-t)*Q(Q(w*d)-Q(c*u)))+i;f=f+P(J[a+108>>2],12)|0;N[f+4>>2]=p+Q(q*d);N[f>>2]=n+Q(q*c);N[(J[b+28>>2]+P(J[a+108>>2],12)|0)+8>>2]=Q(s*Q(Q(v*d)-Q(c*k)))+j}function gj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0;e=J[a>>2];f=J[a+4>>2]-e>>2;if(f>>>0<b>>>0){e=b-f|0;f=a;a:{d=J[a+8>>2];b=J[a+4>>2];if(e>>>0<=d-b>>2>>>0){b:{if(!e){break b}a=b;g=e&7;if(g){d=0;while(1){J[a>>2]=J[c>>2];a=a+4|0;d=d+1|0;if((g|0)!=(d|0)){continue}break}}b=(e<<2)+b|0;if((e-1&1073741823)>>>0<7){break b}while(1){J[a>>2]=J[c>>2];J[a+4>>2]=J[c>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=J[c>>2];J[a+16>>2]=J[c>>2];J[a+20>>2]=J[c>>2];J[a+24>>2]=J[c>>2];J[a+28>>2]=J[c>>2];a=a+32|0;if((b|0)!=(a|0)){continue}break}}J[f+4>>2]=b;break a}c:{g=J[f>>2];h=b-g>>2;a=h+e|0;if(a>>>0<1073741824){d=d-g|0;i=d>>1;i=d>>>0>=2147483644?1073741823:a>>>0<i>>>0?i:a;if(i){if(i>>>0>=1073741824){break c}j=Xa(i<<2)}d=(h<<2)+j|0;a=d;h=e&7;if(h){while(1){J[a>>2]=J[c>>2];a=a+4|0;k=k+1|0;if((h|0)!=(k|0)){continue}break}}h=(e<<2)+d|0;if((e-1&1073741823)>>>0>=7){while(1){J[a>>2]=J[c>>2];J[a+4>>2]=J[c>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=J[c>>2];J[a+16>>2]=J[c>>2];J[a+20>>2]=J[c>>2];J[a+24>>2]=J[c>>2];J[a+28>>2]=J[c>>2];a=a+32|0;if((h|0)!=(a|0)){continue}break}}if((b|0)!=(g|0)){while(1){d=d-4|0;b=b-4|0;J[d>>2]=J[b>>2];if((b|0)!=(g|0)){continue}break}}J[f+8>>2]=(i<<2)+j;J[f+4>>2]=h;J[f>>2]=d;if(g){ab(g)}break a}ma();B()}Ub();B()}return}if(b>>>0<f>>>0){J[a+4>>2]=e+(b<<2)}}function Hh(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0);if(N[a+68>>2]>Q(0)){a=1}else{d=N[a+144>>2];i=N[a+84>>2];j=J[b+24>>2];f=j+P(J[a+108>>2],12)|0;q=N[f+8>>2];c=_a(q);k=N[a+140>>2];n=N[a+80>>2];e=Za(q);g=N[a+152>>2];o=N[a+92>>2];j=j+P(J[a+112>>2],12)|0;r=N[j+8>>2];h=_a(r);l=N[a+148>>2];p=N[a+88>>2];m=Za(r);s=N[j>>2];l=Q(p-l);g=Q(o-g);o=Q(Q(h*l)-Q(m*g));p=N[f>>2];k=Q(n-k);i=Q(i-d);n=Q(Q(c*k)-Q(e*i));d=Q(Q(Q(s+o)-p)-n);t=N[j+4>>2];m=Q(Q(m*l)+Q(h*g));g=N[f+4>>2];i=Q(Q(e*k)+Q(c*i));c=Q(Q(Q(t+m)-g)-i);e=Q(Y(Q(Q(d*d)+Q(c*c))));a:{if(e<Q(1.1920928955078125e-7)){e=Q(0);break a}h=Q(Q(1)/e);c=Q(c*h);d=Q(d*h)}k=N[a+168>>2];h=N[a+160>>2];l=N[a+164>>2];v=g;g=N[a+156>>2];w=c;c=Q(e-N[a+104>>2]);c=c<Q(.20000000298023224)?c:Q(.20000000298023224);c=c<Q(-.20000000298023224)?Q(-.20000000298023224):c;u=Q(c*Q(-N[a+172>>2]));e=Q(w*u);N[f+4>>2]=v-Q(g*e);d=Q(d*u);N[f>>2]=p-Q(g*d);f=J[b+24>>2];N[(f+P(J[a+108>>2],12)|0)+8>>2]=q-Q(l*Q(Q(n*e)-Q(d*i)));f=f+P(J[a+112>>2],12)|0;N[f+4>>2]=t+Q(h*e);N[f>>2]=s+Q(h*d);N[(J[b+24>>2]+P(J[a+112>>2],12)|0)+8>>2]=Q(k*Q(Q(o*e)-Q(d*m)))+r;a=(c>Q(0)?c:Q(-c))<Q(.004999999888241291)}return a|0}function ph(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=0,f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0);h=J[b+28>>2];e=h+P(J[a+104>>2],12)|0;m=N[e>>2];h=h+P(J[a+108>>2],12)|0;n=N[h>>2];o=N[e+4>>2];p=N[h+4>>2];q=N[a+148>>2];r=N[a+144>>2];s=N[a+156>>2];t=N[a+152>>2];g=N[b>>2];c=Q(g*N[a+100>>2]);d=Q(-c);i=N[a+92>>2];j=N[h+8>>2];k=N[e+8>>2];l=Q(i-Q(Q(j-k)*N[a+176>>2]));c=c>l?l:c;c=c<d?d:c;N[a+92>>2]=c;l=N[a+84>>2];u=N[a+116>>2];c=Q(c-i);i=Q(k-Q(t*c));k=N[a+124>>2];j=Q(j+Q(s*c));d=Q(Q(u*i)+Q(Q(n-Q(k*j))-m));v=N[a+120>>2];w=N[a+112>>2];f=Q(Q(Q(p+Q(v*j))-o)-Q(w*i));c=Q(l-Q(Q(N[a+160>>2]*d)+Q(N[a+168>>2]*f)));N[a+84>>2]=c;x=N[a+88>>2];d=Q(x-Q(Q(N[a+164>>2]*d)+Q(N[a+172>>2]*f)));N[a+88>>2]=d;f=Q(Q(c*c)+Q(d*d));g=Q(g*N[a+96>>2]);if(f>Q(g*g)){f=Q(Y(f));if(!(f<Q(1.1920928955078125e-7))){f=Q(Q(1)/f);d=Q(d*f);c=Q(c*f)}d=Q(g*d);N[a+88>>2]=d;c=Q(g*c);N[a+84>>2]=c}d=Q(d-x);N[e+4>>2]=o-Q(r*d);c=Q(c-l);N[e>>2]=m-Q(r*c);e=J[b+28>>2];N[(e+P(J[a+104>>2],12)|0)+8>>2]=Q(Q(-t)*Q(Q(w*d)-Q(c*u)))+i;e=e+P(J[a+108>>2],12)|0;N[e+4>>2]=p+Q(q*d);N[e>>2]=n+Q(q*c);N[(J[b+28>>2]+P(J[a+108>>2],12)|0)+8>>2]=Q(s*Q(Q(v*d)-Q(c*k)))+j}function $f(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=0,f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=0,k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0);d=N[a+132>>2];i=N[a+72>>2];j=J[b+24>>2];e=j+P(J[a+96>>2],12)|0;q=N[e+8>>2];c=_a(q);k=N[a+128>>2];n=N[a+68>>2];f=Za(q);g=N[a+140>>2];o=N[a+80>>2];j=j+P(J[a+100>>2],12)|0;r=N[j+8>>2];h=_a(r);l=N[a+136>>2];p=N[a+76>>2];m=Za(r);s=N[j>>2];l=Q(p-l);g=Q(o-g);o=Q(Q(h*l)-Q(m*g));p=N[e>>2];k=Q(n-k);i=Q(i-d);n=Q(Q(c*k)-Q(f*i));d=Q(Q(Q(s+o)-p)-n);t=N[j+4>>2];m=Q(Q(m*l)+Q(h*g));g=N[e+4>>2];i=Q(Q(f*k)+Q(c*i));c=Q(Q(Q(t+m)-g)-i);f=Q(Y(Q(Q(d*d)+Q(c*c))));a:{if(f<Q(1.1920928955078125e-7)){f=Q(0);break a}h=Q(Q(1)/f);c=Q(c*h);d=Q(d*h)}N[a+88>>2]=f;k=N[a+156>>2];h=N[a+148>>2];l=N[a+152>>2];u=g;g=N[a+144>>2];v=c;c=Q(f-N[a+84>>2]);c=c<Q(.20000000298023224)?c:Q(.20000000298023224);f=Q((c<Q(0)?Q(0):c)*Q(-N[a+160>>2]));c=Q(v*f);N[e+4>>2]=u-Q(g*c);d=Q(d*f);N[e>>2]=p-Q(g*d);e=J[b+24>>2];N[(e+P(J[a+96>>2],12)|0)+8>>2]=q-Q(l*Q(Q(n*c)-Q(d*i)));e=e+P(J[a+100>>2],12)|0;N[e+4>>2]=t+Q(h*c);N[e>>2]=s+Q(h*d);N[(J[b+24>>2]+P(J[a+100>>2],12)|0)+8>>2]=Q(k*Q(Q(o*c)-Q(d*m)))+r;return Q(N[a+88>>2]-N[a+84>>2])<Q(.004999999888241291)|0}function jf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;if(gb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(gb(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;if(J[b+44>>2]!=4){f=a+16|0;h=f+(J[a+12>>2]<<3)|0;d=0;b:{c:{while(1){d:{if(f>>>0>=h>>>0){break d}I[b+52>>1]=0;oc(f,b,c,c,1,e);if(K[b+54|0]){break d}e:{if(!K[b+53|0]){break e}if(K[b+52|0]){d=1;if(J[b+24>>2]==1){break c}g=1;if(K[a+8|0]&2){break e}break c}g=1;if(!(H[a+8|0]&1)){break c}}f=f+8|0;continue}break}a=4;if(!g){break b}}a=3}J[b+44>>2]=a;if(d&1){break a}}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}g=J[a+12>>2];h=a+16|0;bc(h,b,c,d,e);f=a+24|0;g=h+(g<<3)|0;if(f>>>0>=g>>>0){break a}a=J[a+8>>2];if(!(!(a&2)&J[b+36>>2]!=1)){while(1){if(K[b+54|0]){break a}bc(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break}break a}if(!(a&1)){while(1){if(K[b+54|0]|J[b+36>>2]==1){break a}bc(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break a}}while(1){if(K[b+54|0]|J[b+36>>2]==1&J[b+24>>2]==1){break a}bc(f,b,c,d,e);f=f+8|0;if(g>>>0>f>>>0){continue}break}}}function Od(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=Q(0);e=J[a+88>>2];if(!K[e+102989|0]){c=eb(e,44);J[c+40>>2]=0;J[c+32>>2]=-65535;J[c+24>>2]=0;J[c+28>>2]=0;J[c>>2]=0;J[c+4>>2]=0;I[c+36>>1]=0;J[c+8>>2]=0;J[c+12>>2]=0;J[c+40>>2]=J[b+4>>2];N[c+16>>2]=N[b+8>>2];j=N[b+12>>2];J[c+8>>2]=a;N[c+20>>2]=j;J[c+4>>2]=0;d=L[b+22>>1]|L[b+24>>1]<<16;I[c+32>>1]=d;I[c+34>>1]=d>>>16;I[c+36>>1]=L[b+26>>1];H[c+38|0]=K[b+20|0];d=J[b>>2];d=Na[J[J[d>>2]+8>>2]](d,e)|0;J[c+12>>2]=d;g=Na[J[J[d>>2]+12>>2]](d)|0;d=eb(e,P(g,28));J[c+24>>2]=d;a:{if((g|0)<=0){break a}e=0;if(g>>>0>=4){i=g&-4;while(1){f=d+P(e,28)|0;J[f+24>>2]=-1;J[f+16>>2]=0;f=d+P(e|1,28)|0;J[f+24>>2]=-1;J[f+16>>2]=0;f=d+P(e|2,28)|0;J[f+24>>2]=-1;J[f+16>>2]=0;f=d+P(e|3,28)|0;J[f+24>>2]=-1;J[f+16>>2]=0;e=e+4|0;h=h+4|0;if((i|0)!=(h|0)){continue}break}}g=g&3;if(!g){break a}h=0;while(1){i=d+P(e,28)|0;J[i+24>>2]=-1;J[i+16>>2]=0;e=e+1|0;h=h+1|0;if((g|0)!=(h|0)){continue}break}}J[c+28>>2]=0;N[c>>2]=N[b+16>>2];if(K[a+4|0]&32){Hd(c,J[a+88>>2]+102868|0,a+12|0)}J[c+4>>2]=J[a+100>>2];J[a+100>>2]=c;J[a+104>>2]=J[a+104>>2]+1;J[c+8>>2]=a;if(N[c>>2]>Q(0)){Tb(a)}H[J[a+88>>2]+102988|0]=1}return c|0}function nh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=La-80|0;La=c;d=J[a+52>>2];e=J[a+48>>2];f=J[e+16>>2];J[c+72>>2]=J[e+12>>2];J[c+76>>2]=f;e=J[d+16>>2];J[c+64>>2]=J[d+12>>2];J[c+68>>2]=e;Na[J[J[a>>2]>>2]](c+56|0,a);Na[J[J[a>>2]+4>>2]](c+48|0,a);J[c+40>>2]=1061997773;J[c+44>>2]=1065353216;J[c+32>>2]=1056964608;J[c+36>>2]=1061997773;a:{b:{switch(J[a+4>>2]-3|0){case 0:Na[J[J[b>>2]+24>>2]](b,c+56|0,c+48|0,c+32|0);break a;case 1:f=J[a+72>>2];e=c+8|0;d=e;J[d>>2]=J[a+68>>2];J[d+4>>2]=f;f=J[a+80>>2];d=c+24|0;J[d>>2]=J[a+76>>2];J[d+4>>2]=f;a=c+32|0;Na[J[J[b>>2]+24>>2]](b,e,c+56|0,a);Na[J[J[b>>2]+24>>2]](b,d,c+48|0,a);Na[J[J[b>>2]+24>>2]](b,e,d,a);break a;case 2:J[c+16>>2]=0;J[c+20>>2]=1065353216;J[c+8>>2]=0;J[c+12>>2]=1065353216;d=c+56|0;a=c+8|0;Na[J[J[b>>2]+32>>2]](b,d,Q(4),a);e=c+48|0;Na[J[J[b>>2]+32>>2]](b,e,Q(4),a);J[c+16>>2]=1061997773;J[c+20>>2]=1065353216;J[c+8>>2]=1061997773;J[c+12>>2]=1061997773;Na[J[J[b>>2]+24>>2]](b,d,e,a);break a;default:break b}}d=c+56|0;a=c+32|0;Na[J[J[b>>2]+24>>2]](b,c+72|0,d,a);e=d;d=c+48|0;Na[J[J[b>>2]+24>>2]](b,e,d,a);Na[J[J[b>>2]+24>>2]](b,c- -64|0,d,a)}La=c+80|0}function rb(a,b,c){var d=0,e=0,f=0;if(c>>>0>=512){Ha(a|0,b|0,c|0);return a}e=a+c|0;a:{if(!((a^b)&3)){b:{if(!(a&3)){c=a;break b}if(!c){c=a;break b}c=a;while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if(!(c&3)){break b}if(c>>>0<e>>>0){continue}break}}d=e&-4;c:{if(d>>>0<64){break c}f=d+-64|0;if(f>>>0<c>>>0){break c}while(1){J[c>>2]=J[b>>2];J[c+4>>2]=J[b+4>>2];J[c+8>>2]=J[b+8>>2];J[c+12>>2]=J[b+12>>2];J[c+16>>2]=J[b+16>>2];J[c+20>>2]=J[b+20>>2];J[c+24>>2]=J[b+24>>2];J[c+28>>2]=J[b+28>>2];J[c+32>>2]=J[b+32>>2];J[c+36>>2]=J[b+36>>2];J[c+40>>2]=J[b+40>>2];J[c+44>>2]=J[b+44>>2];J[c+48>>2]=J[b+48>>2];J[c+52>>2]=J[b+52>>2];J[c+56>>2]=J[b+56>>2];J[c+60>>2]=J[b+60>>2];b=b- -64|0;c=c- -64|0;if(f>>>0>=c>>>0){continue}break}}if(c>>>0>=d>>>0){break a}while(1){J[c>>2]=J[b>>2];b=b+4|0;c=c+4|0;if(d>>>0>c>>>0){continue}break}break a}if(e>>>0<4){c=a;break a}d=e-4|0;if(d>>>0<a>>>0){c=a;break a}c=a;while(1){H[c|0]=K[b|0];H[c+1|0]=K[b+1|0];H[c+2|0]=K[b+2|0];H[c+3|0]=K[b+3|0];b=b+4|0;c=c+4|0;if(d>>>0>=c>>>0){continue}break}}if(c>>>0<e>>>0){while(1){H[c|0]=K[b|0];b=b+1|0;c=c+1|0;if((e|0)!=(c|0)){continue}break}}return a}function Df(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;g=La-16|0;La=g;J[g+12>>2]=b;h=a+102868|0;J[g+8>>2]=h;d=La-1040|0;La=d;J[d+1036>>2]=256;b=d+8|0;J[d+4>>2]=b;J[d+8>>2]=J[h>>2];a=b;e=1;while(1){a:{e=e-1|0;J[d+1032>>2]=e;f=J[(e<<2)+a>>2];b:{if((f|0)==-1){break b}i=P(f,40);f=i+J[h+4>>2]|0;if(Q(N[c>>2]-N[f+8>>2])>Q(0)|Q(N[c+4>>2]-N[f+12>>2])>Q(0)|(Q(N[f>>2]-N[c+8>>2])>Q(0)|Q(N[f+4>>2]-N[c+12>>2])>Q(0))){break b}if(J[f+24>>2]==-1){a=J[g+12>>2];e=Na[J[J[a>>2]+8>>2]](a,J[J[(J[J[g+8>>2]+4>>2]+i|0)+16>>2]+16>>2])|0;a=J[d+4>>2];if(!e){break a}e=J[d+1032>>2];if((e|0)>0){continue}break a}c:{if(J[d+1036>>2]!=(e|0)){break c}J[d+1036>>2]=e<<1;e=fb(e<<3);J[d+4>>2]=e;rb(e,a,J[d+1032>>2]<<2);if((a|0)==(b|0)){break c}ab(a)}a=J[d+4>>2];J[a+(J[d+1032>>2]<<2)>>2]=J[f+24>>2];e=J[d+1032>>2]+1|0;J[d+1032>>2]=e;d:{if((e|0)!=J[d+1036>>2]){break d}J[d+1036>>2]=e<<1;e=fb(e<<3);J[d+4>>2]=e;rb(e,a,J[d+1032>>2]<<2);if((a|0)==(b|0)){break d}ab(a)}a=J[d+4>>2];J[a+(J[d+1032>>2]<<2)>>2]=J[f+28>>2];e=J[d+1032>>2]+1|0;J[d+1032>>2]=e}if((e|0)>0){continue}}break}if((a|0)!=(b|0)){ab(a)}La=d+1040|0;La=g+16|0}
|
|
function Tb(a){a=a|0;var b=Q(0),c=Q(0),d=Q(0),e=Q(0),f=0,g=0,h=Q(0),i=0,j=Q(0),k=Q(0);g=La-16|0;La=g;J[a+116>>2]=0;J[a+120>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;a:{if(M[a>>2]<=1){f=J[a+16>>2];i=J[a+12>>2];J[a+44>>2]=i;J[a+48>>2]=f;J[a+36>>2]=i;J[a+40>>2]=f;N[a+52>>2]=N[a+56>>2];break a}c=N[3070];d=N[3069];b:{c:{f=J[a+100>>2];if(!f){break c}while(1){b=N[f>>2];if(b!=Q(0)){i=J[f+12>>2];Na[J[J[i>>2]+28>>2]](i,g,b);b=N[g>>2];e=Q(b+N[a+116>>2]);N[a+116>>2]=e;j=N[g+4>>2];k=N[g+8>>2];h=Q(N[g+12>>2]+N[a+124>>2]);N[a+124>>2]=h;d=Q(d+Q(b*j));c=Q(c+Q(b*k))}f=J[f+4>>2];if(f){continue}break}if(e>Q(0)){b=Q(Q(1)/e);N[a+120>>2]=b;d=Q(d*b);c=Q(c*b)}if(!(h>Q(0))|K[a+4|0]&16){break c}e=Q(h-Q(e*Q(Q(d*d)+Q(c*c))));N[a+124>>2]=e;b=Q(Q(1)/e);break b}J[a+124>>2]=0;b=Q(0)}N[a+128>>2]=b;N[a+32>>2]=c;N[a+28>>2]=d;b=N[a+44>>2];h=N[a+24>>2];j=N[a+20>>2];e=Q(N[a+12>>2]+Q(Q(h*d)-Q(c*j)));N[a+44>>2]=e;k=N[a+48>>2];c=Q(Q(Q(j*d)+Q(h*c))+N[a+16>>2]);N[a+48>>2]=c;N[a+40>>2]=c;N[a+36>>2]=e;d=N[a+72>>2];N[a+64>>2]=N[a+64>>2]-Q(d*Q(c-k));N[a+68>>2]=Q(d*Q(e-b))+N[a+68>>2]}La=g+16|0}function If(a,b){a=a|0;b=b|0;var c=0,d=0,e=Q(0),f=0,g=0,h=Q(0);if(!K[a+102989|0]){c=eb(a,152);d=K[b+39|0];I[c+4>>1]=((d|0)!=0)<<3;d=d<<3;if(K[b+38|0]){d=d|16;I[c+4>>1]=d}if(K[b+36|0]){d=d|4;I[c+4>>1]=d}if(!(!K[b+37|0]|!J[b>>2])){d=d|2;I[c+4>>1]=d}if(K[b+40|0]){I[c+4>>1]=d|32}J[c+88>>2]=a;f=J[b+8>>2];d=J[b+4>>2];J[c+12>>2]=d;J[c+16>>2]=f;e=N[b+12>>2];J[c+44>>2]=d;J[c+48>>2]=f;J[c+36>>2]=d;J[c+40>>2]=f;J[c+28>>2]=0;J[c+32>>2]=0;g=c,h=_a(e),N[g+24>>2]=h;g=c,h=Za(e),N[g+20>>2]=h;e=N[b+12>>2];J[c+108>>2]=0;J[c+112>>2]=0;J[c+60>>2]=0;N[c+56>>2]=e;N[c+52>>2]=e;J[c+92>>2]=0;J[c+96>>2]=0;d=J[b+20>>2];J[c+64>>2]=J[b+16>>2];J[c+68>>2]=d;N[c+72>>2]=N[b+24>>2];N[c+132>>2]=N[b+28>>2];N[c+136>>2]=N[b+32>>2];e=N[b+48>>2];J[c+144>>2]=0;J[c+84>>2]=0;J[c+76>>2]=0;J[c+80>>2]=0;N[c+140>>2]=e;d=J[b>>2];J[c+124>>2]=0;J[c+128>>2]=0;J[c>>2]=d;e=(d|0)==2?Q(1):Q(0);N[c+120>>2]=e;N[c+116>>2]=e;b=J[b+44>>2];J[c+100>>2]=0;J[c+104>>2]=0;J[c+148>>2]=b;d=c;J[c+92>>2]=0;b=J[a+102948>>2];J[c+96>>2]=b;if(b){J[b+92>>2]=d}J[a+102948>>2]=d;J[a+102956>>2]=J[a+102956>>2]+1}return d|0}function Qd(a,b){var c=0,d=0,e=0,f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=0;if(J[a>>2]==(b|0)){J[a>>2]=-1;return}f=J[a+4>>2];d=J[(f+P(b,40)|0)+20>>2];e=P(d,40)+f|0;c=J[e+20>>2];k=b;b=J[e+24>>2];if((k|0)==(b|0)){b=J[e+28>>2]}a:{if((c|0)!=-1){e=f+P(c,40)|0;J[((d|0)==J[e+24>>2]?e+24|0:e+28|0)>>2]=b;J[(f+P(b,40)|0)+20>>2]=c;b=P(d,40);J[(b+J[a+4>>2]|0)+20>>2]=J[a+16>>2];J[(b+J[a+4>>2]|0)+32>>2]=-1;J[a+16>>2]=d;J[a+8>>2]=J[a+8>>2]-1;while(1){b=Rd(a,c);c=J[a+4>>2];e=P(b,40);b=c+e|0;f=P(J[b+28>>2],40);d=c+f|0;g=N[d>>2];k=P(J[b+24>>2],40);c=k+c|0;h=N[c>>2];i=N[c+4>>2];j=N[d+4>>2];N[b+4>>2]=i<j?i:j;N[b>>2]=g>h?h:g;g=N[c+8>>2];h=N[d+8>>2];i=N[c+12>>2];j=N[d+12>>2];N[b+12>>2]=i>j?i:j;N[b+8>>2]=g>h?g:h;b=J[a+4>>2];d=b+e|0;c=J[(b+k|0)+32>>2];b=J[(b+f|0)+32>>2];J[d+32>>2]=((b|0)<(c|0)?c:b)+1;c=J[d+20>>2];if((c|0)!=-1){continue}break}break a}J[a>>2]=b;J[(f+P(b,40)|0)+20>>2]=-1;b=P(d,40);J[(b+J[a+4>>2]|0)+20>>2]=J[a+16>>2];J[(b+J[a+4>>2]|0)+32>>2]=-1;J[a+16>>2]=d;J[a+8>>2]=J[a+8>>2]-1}}function wg(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=0,n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0),w=Q(0),x=Q(0),y=Q(0);k=Q(-N[a+112>>2]);l=N[a+136>>2];m=J[b+28>>2];c=m+P(J[a+124>>2],12)|0;n=N[c>>2];j=N[c+8>>2];o=N[a+156>>2];p=N[c+4>>2];q=N[a+152>>2];r=N[a+140>>2];f=N[a+128>>2];c=P(J[a+120>>2],12)+m|0;s=N[c>>2];d=N[c+8>>2];t=N[a+148>>2];g=N[c+4>>2];u=N[a+144>>2];h=N[a+132>>2];e=Q(Q(Q(k*Q(Q(l*Q(n-Q(j*o)))+Q(Q(p+Q(j*q))*r)))-Q(Q(f*Q(s-Q(d*t)))+Q(Q(g+Q(d*u))*h)))*Q(-N[a+192>>2]));N[a+116>>2]=N[a+116>>2]+e;w=N[a+188>>2];v=N[a+180>>2];x=N[a+184>>2];y=g;g=N[a+176>>2];i=h;h=Q(-e);i=Q(i*h);N[c+4>>2]=y+Q(g*i);f=Q(f*h);N[c>>2]=s+Q(g*f);c=J[b+28>>2];N[(c+P(J[a+120>>2],12)|0)+8>>2]=d+Q(x*Q(Q(u*i)-Q(f*t)));c=c+P(J[a+124>>2],12)|0;d=Q(e*k);e=Q(r*d);N[c+4>>2]=p+Q(v*e);d=Q(l*d);N[c>>2]=n+Q(v*d);N[(J[b+28>>2]+P(J[a+124>>2],12)|0)+8>>2]=j+Q(w*Q(Q(q*e)-Q(d*o)))}function ni(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0);j=N[d+12>>2];g=N[d+4>>2];f=Q(N[c+4>>2]-g);k=N[d+8>>2];i=N[d>>2];h=Q(N[c>>2]-i);o=Q(Q(j*f)-Q(k*h));p=Q(Q(j*h)+Q(f*k));q=N[a+12>>2];m=Q(N[a+20>>2]-q);l=Q(-m);n=N[c+12>>2];u=N[c+8>>2];d=0;e=K[a+44|0];r=N[a+16>>2];h=Q(N[a+24>>2]-r);s=Q(Q(h*h)+Q(m*m));f=Q(Y(s));a:{if(f<Q(1.1920928955078125e-7)){f=h;break a}f=Q(Q(1)/f);l=Q(f*l);f=Q(h*f)}t=Q(Q(f*Q(q-p))+Q(Q(r-o)*l));b:{if(t>Q(0)?e:0){break b}i=Q(u-i);g=Q(n-g);n=Q(Q(Q(j*i)+Q(k*g))-p);i=Q(Q(Q(j*g)-Q(k*i))-o);g=Q(Q(f*n)+Q(i*l));if(g==Q(0)){break b}g=Q(t/g);if(g<Q(0)|g>N[c+16>>2]|s==Q(0)){break b}h=Q(Q(Q(Q(Q(p+Q(n*g))-q)*m)+Q(h*Q(Q(o+Q(i*g))-r)))/s);if(h<Q(0)|h>Q(1)){break b}N[b+8>>2]=g;h=Q(Q(k*f)+Q(j*l));a=t>Q(0);N[b+4>>2]=a?Q(-h):h;f=Q(Q(j*f)+Q(l*Q(-k)));N[b>>2]=a?Q(-f):f;d=1}return d|0}function ag(a,b){a=a|0;b=b|0;var c=Q(0),d=0,e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0),v=Q(0);e=N[a+92>>2];c=Q(N[a+88>>2]-N[a+84>>2]);k=N[a+104>>2];d=J[b+28>>2];h=d+P(J[a+100>>2],12)|0;l=N[h>>2];i=N[h+8>>2];m=N[a+124>>2];d=d+P(J[a+96>>2],12)|0;n=N[d>>2];j=N[d+8>>2];o=N[a+116>>2];p=N[h+4>>2];q=N[a+120>>2];f=N[d+4>>2];r=N[a+112>>2];s=N[a+108>>2];g=Q(Q(k*Q(Q(l-Q(i*m))-Q(n-Q(j*o))))+Q(Q(Q(p+Q(i*q))-Q(f+Q(j*r)))*s));c=Q(e-Q(N[a+160>>2]*(c<Q(0)?Q(Q(N[b+4>>2]*c)+g):g)));c=c>Q(0)?Q(0):c;N[a+92>>2]=c;t=N[a+156>>2];g=N[a+148>>2];u=N[a+152>>2];v=f;f=N[a+144>>2];c=Q(c-e);e=Q(s*c);N[d+4>>2]=v-Q(f*e);c=Q(k*c);N[d>>2]=n-Q(f*c);d=J[b+28>>2];N[(d+P(J[a+96>>2],12)|0)+8>>2]=j-Q(u*Q(Q(r*e)-Q(c*o)));d=d+P(J[a+100>>2],12)|0;N[d+4>>2]=p+Q(g*e);N[d>>2]=l+Q(g*c);N[(J[b+28>>2]+P(J[a+100>>2],12)|0)+8>>2]=i+Q(t*Q(Q(q*e)-Q(c*m)))}function ei(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0);l=J[a+148>>2];if((l|0)<=0){return 0}g=N[d+4>>2];f=Q(N[c+12>>2]-g);h=N[d>>2];i=Q(N[c+8>>2]-h);j=N[d+12>>2];k=Q(N[c+4>>2]-g);g=N[d+8>>2];h=Q(N[c>>2]-h);m=Q(Q(j*k)-Q(g*h));p=Q(Q(Q(j*f)-Q(g*i))-m);n=Q(Q(j*h)+Q(k*g));q=Q(Q(Q(j*i)+Q(g*f))-n);r=Q(-g);k=N[c+16>>2];e=-1;d=0;h=Q(0);a:{while(1){c=(d<<3)+a|0;f=N[c+84>>2];o=N[c+88>>2];i=Q(Q(f*Q(N[c+20>>2]-n))+Q(Q(N[c+24>>2]-m)*o));f=Q(Q(f*q)+Q(p*o));b:{if(f==Q(0)){if(!(i<Q(0))){break b}return 0}if(!(!(f<Q(0))|!(i<Q(h*f)))){h=Q(i/f);e=d;break b}if(!(f>Q(0))|!(i<Q(k*f))){break b}k=Q(i/f)}if(!(h>k)){d=d+1|0;if((l|0)==(d|0)){break a}continue}break}return 0}if((e|0)>=0){N[b+8>>2]=h;a=(e<<3)+a|0;f=N[a+84>>2];h=Q(g*f);g=N[a+88>>2];N[b+4>>2]=h+Q(j*g);N[b>>2]=Q(j*f)+Q(g*r);a=1}else{a=0}return a|0}function ri(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=0;g=N[c+12>>2];f=N[c+4>>2];d=N[c>>2];e=Q(N[c+8>>2]-d);a:{b:{if((e>Q(0)?e:Q(-e))<Q(1.1920928955078125e-7)){if(d<N[a>>2]|d>N[a+8>>2]){break a}e=Q(34028234663852886e22);d=Q(-34028234663852886e22);break b}e=Q(Q(1)/e);h=Q(e*Q(N[a+8>>2]-d));d=Q(e*Q(N[a>>2]-d));i=h<d;e=i?d:h;e=e>Q(34028234663852886e22)?Q(34028234663852886e22):e;d=i?h:d;d=d>Q(-34028234663852886e22)?d:Q(-34028234663852886e22);if(e<d){break a}h=i?Q(1):Q(-1)}g=Q(g-f);c:{if(!((g>Q(0)?g:Q(-g))<Q(1.1920928955078125e-7))){j=Q(Q(1)/g);g=Q(j*Q(N[a+12>>2]-f));f=Q(j*Q(N[a+4>>2]-f));a=g<f;j=a?g:f;i=j>d;d=i?j:d;f=a?f:g;if(d>(e<f?e:f)){break a}e=i?a?Q(1):Q(-1):Q(0);h=i?Q(0):h;break c}if(f<N[a+4>>2]){break a}e=Q(0);if(f>N[a+12>>2]){break a}}if(d<Q(0)|N[c+16>>2]<d){break a}N[b+4>>2]=e;N[b>>2]=h;N[b+8>>2]=d;k=1}return k|0}function dd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0;a:{if(K[a+102989|0]){break a}g=K[b+61|0];c=J[b+8>>2];if(c){J[c+12>>2]=J[b+12>>2]}d=J[b+12>>2];if(d){J[d+8>>2]=c}if(J[a+102952>>2]==(b|0)){J[a+102952>>2]=d}c=J[b+52>>2];d=J[b+48>>2];if(J[d>>2]){J[d+144>>2]=0;I[d+4>>1]=L[d+4>>1]|2}if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}e=J[b+24>>2];if(e){J[e+12>>2]=J[b+28>>2]}f=J[b+28>>2];if(f){J[f+8>>2]=e}if(J[d+108>>2]==(b+16|0)){J[d+108>>2]=f}J[b+24>>2]=0;J[b+28>>2]=0;e=J[b+40>>2];if(e){J[e+12>>2]=J[b+44>>2]}f=J[b+44>>2];if(f){J[f+8>>2]=e}if(J[c+108>>2]==(b+32|0)){J[c+108>>2]=f}J[b+40>>2]=0;J[b+44>>2]=0;Na[J[J[b>>2]+28>>2]](b)|0;e=J[b+4>>2]-1|0;if(e>>>0<=10){Ib(a,b,J[(e<<2)+12984>>2])}J[a+102960>>2]=J[a+102960>>2]-1;if(g){break a}b=J[c+112>>2];if(!b){break a}while(1){if((d|0)==J[b>>2]){a=J[b+4>>2];J[a+4>>2]=J[a+4>>2]|8}b=J[b+12>>2];if(b){continue}break}}}function eb(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!b){return 0}if((b|0)>=641){return fb(b)}d=K[b+24020|0];g=(d<<2)+a|0;b=J[g+12>>2];if(b){J[g+12>>2]=J[b>>2];return b}b=J[a+4>>2];if((b|0)==J[a+8>>2]){c=b+128|0;J[a+8>>2]=c;b=J[a>>2];c=fb(c<<3);J[a>>2]=c;rb(c,b,J[a+4>>2]<<3);Db(J[a>>2]+(J[a+4>>2]<<3)|0,0,1024);ab(b);b=J[a+4>>2]}h=J[a>>2]+(b<<3)|0;c=fb(16384);J[h+4>>2]=c;d=J[(d<<2)+12176>>2];J[h>>2]=d;e=16384/(d|0)|0;i=e-1|0;a:{if((e|0)<2){break a}b=0;if(e-2>>>0>=3){l=i&-4;e=0;while(1){f=c+P(d,b|1)|0;J[c+P(b,d)>>2]=f;j=f;f=c+P(d,b|2)|0;J[j>>2]=f;j=f;f=c+P(d,b|3)|0;J[j>>2]=f;b=b+4|0;J[f>>2]=c+P(d,b);e=e+4|0;if((l|0)!=(e|0)){continue}break}}e=i&3;if(!e){break a}while(1){f=c+P(b,d)|0;b=b+1|0;J[f>>2]=c+P(d,b);k=k+1|0;if((e|0)!=(k|0)){continue}break}}J[c+P(d,i)>>2]=0;J[g+12>>2]=J[c>>2];J[a+4>>2]=J[a+4>>2]+1;return J[h+4>>2]}function ml(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{if(b){if(!c){break j}break i}Ma=0;a=(a>>>0)/(c>>>0)|0;break a}if(!a){break h}break g}if(!(c-1&c)){break f}f=(S(c)+33|0)-S(b)|0;g=0-f|0;break d}Ma=0;a=(b>>>0)/0|0;break a}d=32-S(b)|0;if(d>>>0<31){break e}break c}if((c|0)==1){break b}f=kl(c);c=f&31;if((f&63)>>>0>=32){a=b>>>c|0}else{d=b>>>c|0;a=((1<<c)-1&b)<<32-c|a>>>c}Ma=d;break a}f=d+1|0;g=63-d|0}d=f&63;e=d&31;if(d>>>0>=32){d=0;h=b>>>e|0}else{d=b>>>e|0;h=((1<<e)-1&b)<<32-e|a>>>e}g=g&63;e=g&31;if(g>>>0>=32){b=a<<e;a=0}else{b=(1<<e)-1&a>>>32-e|b<<e;a=a<<e}if(f){g=c-1|0;l=(g|0)==-1?-1:0;while(1){i=d<<1|h>>>31;d=h<<1|b>>>31;e=l-(i+(d>>>0>g>>>0)|0)>>31;j=c&e;h=d-j|0;d=i-(d>>>0<j>>>0)|0;b=b<<1|a>>>31;a=k|a<<1;k=e&1;f=f-1|0;if(f){continue}break}}Ma=b<<1|a>>>31;a=k|a<<1;break a}a=0;b=0}Ma=b}return a}function Ih(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0),u=Q(0);f=N[a+100>>2];l=N[a+116>>2];c=J[b+28>>2];g=c+P(J[a+112>>2],12)|0;m=N[g>>2];h=N[g+8>>2];n=N[a+136>>2];c=c+P(J[a+108>>2],12)|0;o=N[c>>2];i=N[c+8>>2];p=N[a+128>>2];e=N[a+120>>2];q=N[g+4>>2];r=N[a+132>>2];d=N[c+4>>2];s=N[a+124>>2];j=Q(Q(Q(f*N[a+96>>2])+Q(N[a+76>>2]+Q(Q(l*Q(Q(m-Q(h*n))-Q(o-Q(i*p))))+Q(e*Q(Q(q+Q(h*r))-Q(d+Q(i*s)))))))*Q(-N[a+172>>2]));N[a+100>>2]=f+j;u=N[a+168>>2];t=N[a+160>>2];f=N[a+164>>2];k=d;d=N[a+156>>2];e=Q(e*j);N[c+4>>2]=k-Q(d*e);k=d;d=Q(l*j);N[c>>2]=o-Q(k*d);c=J[b+28>>2];N[(c+P(J[a+108>>2],12)|0)+8>>2]=i-Q(f*Q(Q(s*e)-Q(d*p)));c=c+P(J[a+112>>2],12)|0;N[c+4>>2]=q+Q(e*t);N[c>>2]=m+Q(d*t);N[(J[b+28>>2]+P(J[a+112>>2],12)|0)+8>>2]=h+Q(u*Q(Q(r*e)-Q(d*n)))}function Nd(a){a=a|0;var b=0,c=Q(0),d=0;b=La-224|0;La=b;d=J[a+8>>2];Ya(6623,0);Ya(7776,0);J[b+208>>2]=J[a>>2];Ya(8998,b+208|0);c=N[a+12>>2];O[b+200>>3]=N[a+16>>2];O[b+192>>3]=c;Ya(8141,b+192|0);O[b+176>>3]=N[a+56>>2];Ya(7141,b+176|0);c=N[a+64>>2];O[b+168>>3]=N[a+68>>2];O[b+160>>3]=c;Ya(7953,b+160|0);O[b+144>>3]=N[a+72>>2];Ya(6688,b+144|0);O[b+128>>3]=N[a+132>>2];Ya(7060,b+128|0);O[b+112>>3]=N[a+136>>2];Ya(7031,b+112|0);J[b+96>>2]=L[a+4>>1]&4;Ya(8818,b+96|0);J[b+80>>2]=L[a+4>>1]&2;Ya(8879,b+80|0);J[b+64>>2]=L[a+4>>1]&16;Ya(8847,b- -64|0);J[b+48>>2]=L[a+4>>1]&8;Ya(8734,b+48|0);J[b+32>>2]=L[a+4>>1]&32;Ya(8938,b+32|0);O[b+16>>3]=N[a+140>>2];Ya(7240,b+16|0);J[b>>2]=J[a+8>>2];Ya(8662,b);Ya(9409,0);a=J[a+100>>2];if(a){while(1){Ya(6621,0);Gd(a,d);Ya(6616,0);a=J[a+4>>2];if(a){continue}break}}Ya(6618,0);La=b+224|0}function cd(){Ka(18404,4986);Ja(18428,3314,1,1,0);ha(18440,2790,1,-128,127);ha(18464,2783,1,-128,127);ha(18452,2781,1,0,255);ha(18476,1481,2,-32768,32767);ha(18488,1472,2,0,65535);ha(18500,1867,4,-2147483648,2147483647);ha(18512,1858,4,0,-1);ha(18524,3531,4,-2147483648,2147483647);ha(18536,3522,4,0,-1);Nc(18548,2137,-2147483648,2147483647);Nc(18560,2136,0,-1);ua(18572,2130,4);ua(18584,4700,8);ta(19640,3549);ta(13932,6367);pa(14004,4,3536);pa(14080,2,3561);pa(14156,4,3576);Ia(19220,3334);ea(14196,0,6298);ea(14236,0,6400);ea(14276,1,6328);ea(14316,2,5863);ea(14356,3,5894);ea(14396,4,5934);ea(14436,5,5963);ea(14476,4,6437);ea(14516,5,6467);ea(14236,0,6065);ea(14276,1,6032);ea(14316,2,6131);ea(14356,3,6097);ea(14396,4,6265);ea(14436,5,6231);ea(14556,8,6198);ea(14596,9,6164);ea(14636,6,6001);ea(14676,7,6506)}function Xh(a,b){a=a|0;b=b|0;var c=0,d=0;a:{if(K[J[a+88>>2]+102989|0]|J[a>>2]==(b|0)){break a}J[a>>2]=b;Tb(a);b:{if(!J[a>>2]){J[a+72>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;N[a+52>>2]=N[a+56>>2];b=J[a+48>>2];J[a+36>>2]=J[a+44>>2];J[a+40>>2]=b;I[a+4>>1]=L[a+4>>1]&65533;b=J[a+100>>2];if(!b){break b}d=J[a+88>>2]+102868|0;c=a+12|0;while(1){ec(b,d,c,c);b=J[b+4>>2];if(b){continue}break}if(!J[a>>2]){break b}}J[a+144>>2]=0;I[a+4>>1]=L[a+4>>1]|2}J[a+84>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;b=J[a+112>>2];if(b){while(1){c=J[b+12>>2];Sb(J[a+88>>2]+102868|0,J[b+4>>2]);b=c;if(b){continue}break}}J[a+112>>2]=0;c=J[a+100>>2];if(!c){break a}a=J[a+88>>2]+102868|0;while(1){d=J[c+28>>2];if((d|0)>0){b=0;while(1){Ac(a,J[(J[c+24>>2]+P(b,28)|0)+24>>2]);b=b+1|0;if((d|0)!=(b|0)){continue}break}}c=J[c+4>>2];if(c){continue}break}}}function Sb(a,b){var c=0,d=0,e=0,f=0;f=J[J[b+52>>2]+8>>2];d=J[J[b+48>>2]+8>>2];c=J[a+72>>2];if(!(!c|!(K[b+4|0]&2))){Na[J[J[c>>2]+12>>2]](c,b)}c=J[b+8>>2];if(c){J[c+12>>2]=J[b+12>>2]}e=J[b+12>>2];if(e){J[e+8>>2]=c}if(J[a+60>>2]==(b|0)){J[a+60>>2]=e}c=J[b+24>>2];if(c){J[c+12>>2]=J[b+28>>2]}e=J[b+28>>2];if(e){J[e+8>>2]=c}if(J[d+112>>2]==(b+16|0)){J[d+112>>2]=e}d=J[b+40>>2];if(d){J[d+12>>2]=J[b+44>>2]}c=J[b+44>>2];if(c){J[c+8>>2]=d}if(J[f+112>>2]==(b+32|0)){J[f+112>>2]=c}e=J[a+76>>2];f=J[b+52>>2];d=J[b+48>>2];a:{if(K[f+38|0]|(K[d+38|0]|J[b+124>>2]<=0)){break a}c=J[d+8>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[f+8>>2];if(!J[c>>2]){break a}J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}Na[J[((P(J[J[d+12>>2]+4>>2],48)+24672|0)+P(J[J[f+12>>2]+4>>2],12)|0)+4>>2]](b,e);J[a+64>>2]=J[a+64>>2]-1}function tf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;f=La-32|0;La=f;d=J[a+28>>2];J[f+16>>2]=d;g=J[a+20>>2];J[f+28>>2]=c;J[f+24>>2]=b;b=g-d|0;J[f+20>>2]=b;g=b+c|0;i=2;a:{b:{b=f+16|0;d=ra(J[a+60>>2],b|0,2,f+12|0)|0;if(d){J[6228]=d;d=-1}else{d=0}c:{d:{if(d){d=b;break d}while(1){e=J[f+12>>2];if((e|0)==(g|0)){break c}if((e|0)<0){d=b;break b}h=J[b+4>>2];j=h>>>0<e>>>0;d=(j<<3)+b|0;h=e-(j?h:0)|0;J[d>>2]=h+J[d>>2];b=(j?12:4)+b|0;J[b>>2]=J[b>>2]-h;g=g-e|0;b=d;i=i-j|0;e=ra(J[a+60>>2],b|0,i|0,f+12|0)|0;if(e){J[6228]=e;e=-1}else{e=0}if(!e){continue}break}}if((g|0)!=-1){break b}}b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];a=c;break a}J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a>>2]=J[a>>2]|32;a=0;if((i|0)==2){break a}a=c-J[d+4>>2]|0}La=f+32|0;return a|0}function _a(a){var b=Q(0),c=0,d=0,e=0,f=0;c=La-16|0;La=c;e=(C(a),v(2));d=e&2147483647;a:{if(d>>>0<=1061752794){b=Q(1);if(d>>>0<964689920){break a}b=wb(+a);break a}if(d>>>0<=1081824209){if(d>>>0>=1075235812){b=Q(-wb(((e|0)<0?3.141592653589793:-3.141592653589793)+ +a));break a}f=+a;if((e|0)<0){b=vb(f+1.5707963267948966);break a}b=vb(1.5707963267948966-f);break a}if(d>>>0<=1088565717){if(d>>>0>=1085271520){b=wb(((e|0)<0?6.283185307179586:-6.283185307179586)+ +a);break a}if((e|0)<0){b=vb(-4.71238898038469-+a);break a}b=vb(+a+-4.71238898038469);break a}b=Q(a-a);if(d>>>0>=2139095040){break a}b:{switch(bd(a,c+8|0)&3){case 0:b=wb(O[c+8>>3]);break a;case 1:b=vb(-O[c+8>>3]);break a;case 2:b=Q(-wb(O[c+8>>3]));break a;default:break b}}b=vb(O[c+8>>3])}a=b;La=c+16|0;return a}function Hd(a,b,c){var d=0,e=0,f=0,g=0,h=0,i=Q(0);e=J[a+12>>2];e=Na[J[J[e>>2]+12>>2]](e)|0;J[a+28>>2]=e;if((e|0)>0){while(1){g=J[a+12>>2];e=J[a+24>>2]+P(h,28)|0;Na[J[J[g>>2]+24>>2]](g,e,c,h);g=Td(b);i=N[e>>2];d=P(g,40);f=d+J[b+4>>2]|0;N[f+4>>2]=N[e+4>>2]+Q(-.10000000149011612);N[f>>2]=i+Q(-.10000000149011612);i=N[e+12>>2];f=d+J[b+4>>2]|0;N[f+8>>2]=N[e+8>>2]+Q(.10000000149011612);N[f+12>>2]=i+Q(.10000000149011612);d=d+J[b+4>>2]|0;H[d+36|0]=1;J[d+32>>2]=0;J[d+16>>2]=e;Sd(b,g);J[b+28>>2]=J[b+28>>2]+1;d=J[b+40>>2];if((d|0)==J[b+36>>2]){J[b+36>>2]=d<<1;f=J[b+32>>2];d=fb(d<<3);J[b+32>>2]=d;rb(d,f,J[b+40>>2]<<2);ab(f);d=J[b+40>>2]}J[J[b+32>>2]+(d<<2)>>2]=g;J[b+40>>2]=J[b+40>>2]+1;J[e+20>>2]=h;J[e+16>>2]=a;J[e+24>>2]=g;h=h+1|0;if((h|0)<J[a+28>>2]){continue}break}}}function Za(a){var b=0,c=0,d=0,e=0;b=La-16|0;La=b;e=(C(a),v(2));c=e&2147483647;a:{if(c>>>0<=1061752794){if(c>>>0<964689920){break a}a=vb(+a);break a}if(c>>>0<=1081824209){d=+a;if(c>>>0<=1075235811){if((e|0)<0){a=Q(-wb(d+1.5707963267948966));break a}a=wb(d+-1.5707963267948966);break a}a=vb(-(((e|0)>=0?-3.141592653589793:3.141592653589793)+d));break a}if(c>>>0<=1088565717){if(c>>>0<=1085271519){d=+a;if((e|0)<0){a=wb(d+4.71238898038469);break a}a=Q(-wb(d+-4.71238898038469));break a}a=vb(((e|0)<0?6.283185307179586:-6.283185307179586)+ +a);break a}if(c>>>0>=2139095040){a=Q(a-a);break a}b:{switch(bd(a,b+8|0)&3){case 0:a=vb(O[b+8>>3]);break a;case 1:a=wb(O[b+8>>3]);break a;case 2:a=vb(-O[b+8>>3]);break a;default:break b}}a=Q(-wb(O[b+8>>3]))}La=b+16|0;return a}function ci(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=0,j=Q(0),k=Q(0),l=0,m=Q(0),n=0,o=0,p=0,q=0,r=Q(0),s=Q(0),t=Q(0);n=a+24|0;j=N[n>>2];k=N[a+20>>2];l=J[a+148>>2];if((l|0)>0){a=a+20|0;while(1){o=a+(i<<3)|0;g=Q(N[o>>2]-k);i=i+1|0;p=a+(i<<3)|0;q=(i|0)<(l|0);d=Q(N[(q?p+4|0:n)>>2]-j);e=Q(N[(q?p:a)>>2]-k);f=Q(N[o+4>>2]-j);h=Q(Q(g*d)-Q(e*f));r=Q(Q(Q(h*Q(.0833333358168602))*Q(Q(Q(d*d)+Q(Q(f*f)+Q(f*d)))+Q(Q(e*e)+Q(Q(g*g)+Q(g*e)))))+r);h=Q(h*Q(.5));m=Q(m+h);f=Q(f+d);d=Q(h*Q(.3333333432674408));s=Q(s+Q(f*d));t=Q(t+Q(Q(g+e)*d));if((i|0)!=(l|0)){continue}break}}h=Q(m*c);N[b>>2]=h;e=Q(Q(1)/m);g=Q(s*e);d=Q(j+g);N[b+8>>2]=d;e=Q(t*e);f=Q(k+e);N[b+4>>2]=f;N[b+12>>2]=Q(h*Q(Q(Q(f*f)+Q(d*d))-Q(Q(e*e)+Q(g*g))))+Q(r*c)}function Hf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;if(!K[a+102989|0]){c=J[b+108>>2];if(c){while(1){d=J[c+12>>2];e=J[a+102976>>2];if(e){Na[J[J[e>>2]+8>>2]](e,J[c+4>>2])}dd(a,J[c+4>>2]);J[b+108>>2]=d;c=d;if(c){continue}break}}J[b+108>>2]=0;c=J[b+112>>2];if(c){e=a+102868|0;while(1){d=J[c+12>>2];Sb(e,J[c+4>>2]);c=d;if(c){continue}break}}J[b+112>>2]=0;c=J[b+100>>2];if(c){f=a+102868|0;while(1){d=J[c+4>>2];e=J[a+102976>>2];if(e){Na[J[J[e>>2]+12>>2]](e,c)}wc(c,f);xc(c,a);Ib(a,c,44);J[b+100>>2]=d;J[b+104>>2]=J[b+104>>2]-1;c=d;if(c){continue}break}}J[b+100>>2]=0;J[b+104>>2]=0;c=J[b+92>>2];if(c){J[c+96>>2]=J[b+96>>2]}d=J[b+96>>2];if(d){J[d+92>>2]=c}if(J[a+102948>>2]==(b|0)){J[a+102948>>2]=d}J[a+102956>>2]=J[a+102956>>2]-1;Ib(a,b,152)}}function yg(a){a=a|0;var b=0,c=Q(0),d=0,e=0;b=La-224|0;La=b;d=J[J[a+52>>2]+8>>2];e=J[J[a+48>>2]+8>>2];Ya(7727,0);J[b+208>>2]=e;Ya(7893,b+208|0);J[b+192>>2]=d;Ya(7867,b+192|0);J[b+176>>2]=K[a+61|0];Ya(8903,b+176|0);c=N[a+68>>2];O[b+168>>3]=N[a+72>>2];O[b+160>>3]=c;Ya(8309,b+160|0);c=N[a+76>>2];O[b+152>>3]=N[a+80>>2];O[b+144>>3]=c;Ya(8202,b+144|0);c=N[a+84>>2];O[b+136>>3]=N[a+88>>2];O[b+128>>3]=c;Ya(8275,b+128|0);O[b+112>>3]=N[a+100>>2];Ya(7211,b+112|0);J[b+96>>2]=K[a+140|0];Ya(8704,b+96|0);O[b+80>>3]=N[a+124>>2];Ya(6902,b+80|0);O[b+64>>3]=N[a+128>>2];Ya(6933,b- -64|0);J[b+48>>2]=K[a+141|0];Ya(8759,b+48|0);O[b+32>>3]=N[a+136>>2];Ya(7318,b+32|0);O[b+16>>3]=N[a+132>>2];Ya(7290,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+224|0}function ui(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0);e=0;k=N[c>>2];i=Q(N[c+8>>2]-k);l=N[c+4>>2];f=Q(N[c+12>>2]-l);h=Q(Q(i*i)+Q(f*f));a:{if(h<Q(1.1920928955078125e-7)){break a}g=N[d+12>>2];j=N[a+12>>2];n=N[a+16>>2];m=N[d+8>>2];k=Q(k-Q(N[d>>2]+Q(Q(g*j)-Q(n*m))));l=Q(l-Q(N[d+4>>2]+Q(Q(m*j)+Q(g*n))));g=Q(Q(k*i)+Q(l*f));j=N[a+8>>2];j=Q(Q(g*g)-Q(Q(Q(Q(k*k)+Q(l*l))-Q(j*j))*h));if(j<Q(0)){break a}g=Q(g+Q(Y(j)));if(!(g<=Q(0))){break a}g=Q(-g);if(!(g<=Q(h*N[c+16>>2]))){break a}h=Q(g/h);N[b+8>>2]=h;f=Q(l+Q(f*h));N[b+4>>2]=f;i=Q(k+Q(i*h));N[b>>2]=i;e=1;h=Q(Y(Q(Q(i*i)+Q(f*f))));if(h<Q(1.1920928955078125e-7)){break a}m=f;f=Q(Q(1)/h);N[b+4>>2]=m*f;N[b>>2]=i*f}return e|0}function Xc(a,b,c){a:{switch(b-9|0){case 0:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];return;case 6:b=J[c>>2];J[c>>2]=b+4;b=I[b>>1];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 7:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=L[b>>1];J[a+4>>2]=0;return;case 8:b=J[c>>2];J[c>>2]=b+4;b=H[b|0];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 9:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=K[b|0];J[a+4>>2]=0;return;case 16:b=J[c>>2]+7&-8;J[c>>2]=b+8;O[a>>3]=O[b>>3];return;case 17:Tc(a,c);default:return;case 1:case 4:case 14:b=J[c>>2];J[c>>2]=b+4;b=J[b>>2];J[a>>2]=b;J[a+4>>2]=b>>31;return;case 2:case 5:case 11:case 15:b=J[c>>2];J[c>>2]=b+4;J[a>>2]=J[b>>2];J[a+4>>2]=0;return;case 3:case 10:case 12:case 13:break a}}b=J[c>>2]+7&-8;J[c>>2]=b+8;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c}function sb(a,b){var c=0,d=0,e=0;c=La+-64|0;La=c;d=J[a>>2];e=J[d-4>>2];d=J[d-8>>2];J[c+32>>2]=0;J[c+36>>2]=0;J[c+40>>2]=0;J[c+44>>2]=0;J[c+48>>2]=0;J[c+52>>2]=0;H[c+55|0]=0;H[c+56|0]=0;H[c+57|0]=0;H[c+58|0]=0;H[c+59|0]=0;H[c+60|0]=0;H[c+61|0]=0;H[c+62|0]=0;J[c+24>>2]=0;J[c+28>>2]=0;J[c+20>>2]=0;J[c+16>>2]=18052;J[c+12>>2]=a;J[c+8>>2]=b;a=a+d|0;d=0;a:{if(gb(e,b,0)){J[c+56>>2]=1;Na[J[J[e>>2]+20>>2]](e,c+8|0,a,a,1,0);d=J[c+32>>2]==1?a:0;break a}Na[J[J[e>>2]+24>>2]](e,c+8|0,a,1,0);b:{switch(J[c+44>>2]){case 0:d=J[c+48>>2]==1?J[c+36>>2]==1?J[c+40>>2]==1?J[c+28>>2]:0:0:0;break a;case 1:break b;default:break a}}if(J[c+32>>2]!=1){if(J[c+48>>2]|J[c+36>>2]!=1|J[c+40>>2]!=1){break a}}d=J[c+24>>2]}La=c- -64|0;return d}function Vg(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0);g=J[b+28>>2]+P(J[a+116>>2],12)|0;j=N[g>>2];h=N[g+8>>2];k=N[a+124>>2];c=N[a+108>>2];i=N[a+96>>2];d=Q(-Q(Q(Q(j-Q(h*k))+N[a+160>>2])+Q(c*i)));l=N[g+4>>2];m=N[a+120>>2];f=N[a+100>>2];e=Q(Q(Q(l+Q(h*m))+N[a+164>>2])+Q(c*f));c=Q(f+Q(Q(N[a+148>>2]*d)-Q(N[a+156>>2]*e)));N[a+100>>2]=c;d=Q(i+Q(Q(N[a+144>>2]*d)-Q(N[a+152>>2]*e)));N[a+96>>2]=d;n=Q(Q(d*d)+Q(c*c));e=Q(N[b>>2]*N[a+104>>2]);if(n>Q(e*e)){e=Q(e/Q(Y(n)));c=Q(c*e);N[a+100>>2]=c;d=Q(d*e);N[a+96>>2]=d}e=N[a+140>>2];c=Q(c-f);f=N[a+136>>2];N[g+4>>2]=l+Q(c*f);d=Q(d-i);N[g>>2]=j+Q(f*d);N[(J[b+28>>2]+P(J[a+116>>2],12)|0)+8>>2]=Q(e*Q(Q(m*c)-Q(d*k)))+h}function gi(a,b,c,d,e){a=a|0;b=Q(b);c=Q(c);d=d|0;e=Q(e);var f=Q(0),g=Q(0),h=0,i=0,j=Q(0),k=Q(0);J[a+84>>2]=0;J[a+88>>2]=-1082130432;J[a+148>>2]=4;J[a+108>>2]=-1082130432;J[a+112>>2]=0;J[a+100>>2]=0;J[a+104>>2]=1065353216;J[a+92>>2]=1065353216;J[a+96>>2]=0;N[a+48>>2]=c;f=Q(-b);N[a+44>>2]=f;N[a+40>>2]=c;N[a+36>>2]=b;c=Q(-c);N[a+32>>2]=c;N[a+28>>2]=b;N[a+24>>2]=c;N[a+20>>2]=f;i=J[d+4>>2];J[a+12>>2]=J[d>>2];J[a+16>>2]=i;c=Za(e);f=Q(-c);j=N[d+4>>2];k=N[d>>2];b=_a(e);while(1){d=(h<<3)+a|0;e=N[d+84>>2];g=N[d+88>>2];N[d+84>>2]=Q(b*e)+Q(g*f);N[d+88>>2]=Q(c*e)+Q(b*g);e=N[d+20>>2];g=N[d+24>>2];N[d+24>>2]=j+Q(Q(c*e)+Q(b*g));N[d+20>>2]=k+Q(Q(b*e)+Q(g*f));h=h+1|0;if((h|0)<J[a+148>>2]){continue}break}}function Db(a,b,c){var d=0,e=0;a:{if(!c){break a}H[a|0]=b;d=a+c|0;H[d-1|0]=b;if(c>>>0<3){break a}H[a+2|0]=b;H[a+1|0]=b;H[d-3|0]=b;H[d-2|0]=b;if(c>>>0<7){break a}H[a+3|0]=b;H[d-4|0]=b;if(c>>>0<9){break a}d=0-a&3;e=d+a|0;a=P(b&255,16843009);J[e>>2]=a;c=c-d&-4;b=c+e|0;J[b-4>>2]=a;if(c>>>0<9){break a}J[e+8>>2]=a;J[e+4>>2]=a;J[b-8>>2]=a;J[b-12>>2]=a;if(c>>>0<25){break a}J[e+24>>2]=a;J[e+20>>2]=a;J[e+16>>2]=a;J[e+12>>2]=a;J[b-16>>2]=a;J[b-20>>2]=a;J[b-24>>2]=a;J[b-28>>2]=a;b=e&4|24;c=c-b|0;if(c>>>0<32){break a}a=ll(a,0,1,1);d=Ma;b=b+e|0;while(1){J[b+24>>2]=a;J[b+28>>2]=d;J[b+16>>2]=a;J[b+20>>2]=d;J[b+8>>2]=a;J[b+12>>2]=d;J[b>>2]=a;J[b+4>>2]=d;b=b+32|0;c=c-32|0;if(c>>>0>31){continue}break}}}function Dg(a){a=a|0;var b=0,c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0);b=J[a+52>>2];f=N[b+20>>2];g=Q(N[a+76>>2]-N[b+28>>2]);i=N[b+24>>2];j=Q(N[a+80>>2]-N[b+32>>2]);k=Q(Q(f*g)+Q(i*j));c=J[a+48>>2];d=N[c+20>>2];l=Q(N[a+68>>2]-N[c+28>>2]);e=N[c+24>>2];m=Q(N[a+72>>2]-N[c+32>>2]);n=Q(Q(d*l)+Q(e*m));o=N[a+84>>2];p=N[a+88>>2];q=Q(Q(e*o)-Q(p*d));h=N[c+72>>2];f=Q(Q(i*g)-Q(j*f));g=Q(Q(e*l)-Q(m*d));d=Q(Q(d*o)+Q(e*p));e=N[b+72>>2];return Q(Q(Q(Q(Q(Q(k+N[b+48>>2])-Q(n+N[c+48>>2]))*Q(q*h))-Q(Q(Q(f+N[b+44>>2])-Q(g+N[c+44>>2]))*Q(d*h)))+Q(Q(q*Q(Q(n*h)+Q(Q(N[b+64>>2]-Q(k*e))-N[c+64>>2])))+Q(d*Q(Q(Q(N[b+68>>2]+Q(f*e))-N[c+68>>2])-Q(g*h))))))}function ck(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0);if(!(K[J[a+88>>2]+102989|0]|J[a>>2]!=2)){J[a+124>>2]=0;J[a+128>>2]=0;c=N[b>>2];c=c<=Q(0)?Q(1):c;N[a+116>>2]=c;N[a+120>>2]=Q(1)/c;e=N[b+12>>2];if(!(!(e>Q(0))|K[a+4|0]&16)){f=c;c=N[b+4>>2];d=Q(c*c);c=N[b+8>>2];c=Q(e-Q(f*Q(d+Q(c*c))));N[a+124>>2]=c;N[a+128>>2]=Q(1)/c}f=N[b+8>>2];h=J[b+8>>2];c=N[b+4>>2];b=J[b+4>>2];J[a+28>>2]=b;J[a+32>>2]=h;i=N[a+48>>2];d=N[a+20>>2];g=N[a+24>>2];e=Q(Q(Q(d*c)+Q(g*f))+N[a+16>>2]);N[a+48>>2]=e;j=N[a+44>>2];c=Q(N[a+12>>2]+Q(Q(g*c)-Q(f*d)));N[a+44>>2]=c;N[a+40>>2]=e;N[a+36>>2]=c;d=N[a+72>>2];N[a+64>>2]=N[a+64>>2]-Q(d*Q(e-i));N[a+68>>2]=Q(d*Q(c-j))+N[a+68>>2]}}function dg(a){a=a|0;var b=0,c=Q(0),d=0,e=0;b=La-208|0;La=b;d=J[J[a+52>>2]+8>>2];e=J[J[a+48>>2]+8>>2];Ya(7631,0);J[b+192>>2]=e;Ya(7893,b+192|0);J[b+176>>2]=d;Ya(7867,b+176|0);J[b+160>>2]=K[a+61|0];Ya(8903,b+160|0);c=N[a+68>>2];O[b+152>>3]=N[a+72>>2];O[b+144>>3]=c;Ya(8309,b+144|0);c=N[a+76>>2];O[b+136>>3]=N[a+80>>2];O[b+128>>3]=c;Ya(8202,b+128|0);O[b+112>>3]=N[a+120>>2];Ya(7211,b+112|0);J[b+96>>2]=K[a+116|0];Ya(8704,b+96|0);O[b+80>>3]=N[a+124>>2];Ya(7161,b+80|0);O[b+64>>3]=N[a+128>>2];Ya(7186,b- -64|0);J[b+48>>2]=K[a+104|0];Ya(8759,b+48|0);O[b+32>>3]=N[a+112>>2];Ya(7318,b+32|0);O[b+16>>3]=N[a+108>>2];Ya(7112,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+208|0}function Lf(a){a=a|0;var b=0,c=Q(0),d=0,e=0;b=La-192|0;La=b;d=J[J[a+52>>2]+8>>2];e=J[J[a+48>>2]+8>>2];Ya(7608,0);J[b+176>>2]=e;Ya(7893,b+176|0);J[b+160>>2]=d;Ya(7867,b+160|0);J[b+144>>2]=K[a+61|0];Ya(8903,b+144|0);c=N[a+68>>2];O[b+136>>3]=N[a+72>>2];O[b+128>>3]=c;Ya(8309,b+128|0);c=N[a+76>>2];O[b+120>>3]=N[a+80>>2];O[b+112>>3]=c;Ya(8202,b+112|0);c=N[a+84>>2];O[b+104>>3]=N[a+88>>2];O[b+96>>3]=c;Ya(8275,b+96|0);J[b+80>>2]=K[a+141|0];Ya(8759,b+80|0);O[b+64>>3]=N[a+136>>2];Ya(7318,b- -64|0);O[b+48>>3]=N[a+132>>2];Ya(7112,b+48|0);O[b+32>>3]=N[a+144>>2];Ya(6774,b+32|0);O[b+16>>3]=N[a+148>>2];Ya(7009,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+192|0}function tg(a){a=a|0;var b=0,c=Q(0),d=0,e=0;b=La-176|0;La=b;d=J[J[a+52>>2]+8>>2];e=J[J[a+48>>2]+8>>2];Ya(7513,0);J[b+160>>2]=e;Ya(7893,b+160|0);J[b+144>>2]=d;Ya(7867,b+144|0);J[b+128>>2]=K[a+61|0];Ya(8903,b+128|0);c=N[a+68>>2];O[b+120>>3]=N[a+72>>2];O[b+112>>3]=c;Ya(8345,b+112|0);c=N[a+76>>2];O[b+104>>3]=N[a+80>>2];O[b+96>>3]=c;Ya(8238,b+96|0);c=N[a+92>>2];O[b+88>>3]=N[a+96>>2];O[b+80>>3]=c;Ya(8309,b+80|0);c=N[a+100>>2];O[b+72>>3]=N[a+104>>2];O[b+64>>3]=c;Ya(8202,b- -64|0);O[b+48>>3]=N[a+84>>2];Ya(7365,b+48|0);O[b+32>>3]=N[a+88>>2];Ya(7343,b+32|0);O[b+16>>3]=N[a+112>>2];Ya(6829,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+176|0}function Ph(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0);f=J[J[a+48>>2]+12>>2];a=J[J[a+52>>2]+12>>2];J[b+60>>2]=0;e=N[d+12>>2];g=N[a+12>>2];h=N[a+16>>2];i=N[d+8>>2];j=N[c+12>>2];k=N[f+12>>2];l=N[f+16>>2];m=N[c+8>>2];n=Q(Q(N[d>>2]+Q(Q(e*g)-Q(h*i)))-Q(N[c>>2]+Q(Q(j*k)-Q(l*m))));e=Q(Q(Q(Q(i*g)+Q(e*h))+N[d+4>>2])-Q(Q(Q(m*k)+Q(j*l))+N[c+4>>2]));g=Q(Q(n*n)+Q(e*e));e=Q(N[f+8>>2]+N[a+8>>2]);if(!(g>Q(e*e))){J[b+56>>2]=0;c=J[f+12>>2];d=J[f+16>>2];J[b+60>>2]=1;J[b+40>>2]=0;J[b+44>>2]=0;J[b+48>>2]=c;J[b+52>>2]=d;c=J[a+12>>2];a=J[a+16>>2];J[b+16>>2]=0;J[b>>2]=c;J[b+4>>2]=a}}function Wd(a,b,c){var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=Q(0),q=Q(0),r=Q(0),s=Q(0),t=Q(0);l=N[b+8>>2];g=N[b+12>>2];h=N[b+28>>2];i=N[b+24>>2];d=N[b+16>>2];p=Q(Q(g*h)-Q(i*d));m=N[b>>2];j=N[b+32>>2];k=N[b+20>>2];q=Q(Q(d*j)-Q(h*k));n=N[b+4>>2];r=Q(Q(k*i)-Q(j*g));e=Q(Q(l*p)+Q(Q(m*q)+Q(n*r)));o=e!=Q(0)?Q(Q(1)/e):e;e=N[c+4>>2];f=N[c>>2];s=Q(l*Q(Q(g*e)-Q(f*d)));t=d;d=N[c+8>>2];N[a+8>>2]=o*Q(s+Q(Q(m*Q(Q(t*d)-Q(e*k)))+Q(n*Q(Q(k*f)-Q(d*g)))));N[a+4>>2]=o*Q(Q(l*Q(Q(f*h)-Q(i*e)))+Q(Q(m*Q(Q(e*j)-Q(h*d)))+Q(n*Q(Q(d*i)-Q(j*f)))));N[a>>2]=o*Q(Q(d*p)+Q(Q(f*q)+Q(r*e)))}function Td(a){var b=0,c=0,d=0;b=J[a+4>>2];c=J[a+16>>2];if((c|0)==-1){c=J[a+12>>2];J[a+12>>2]=c<<1;c=fb(P(c,80));J[a+4>>2]=c;rb(c,b,P(J[a+8>>2],40));ab(b);c=J[a+4>>2];b=J[a+8>>2];d=J[a+12>>2]-1|0;if((b|0)<(d|0)){while(1){d=P(b,40);b=b+1|0;J[(d+c|0)+20>>2]=b;c=J[a+4>>2];J[(d+c|0)+32>>2]=-1;d=J[a+12>>2]-1|0;if((d|0)>(b|0)){continue}break}}J[(P(d,40)+c|0)+20>>2]=-1;b=J[a+4>>2];J[(b+P(J[a+12>>2],40)|0)-8>>2]=-1;c=J[a+8>>2];J[a+16>>2]=c}d=b;b=P(c,40);d=d+b|0;J[a+16>>2]=J[d+20>>2];J[d+20>>2]=-1;b=b+J[a+4>>2]|0;J[b+32>>2]=0;J[b+24>>2]=-1;J[b+28>>2]=-1;H[b+36|0]=0;J[b+16>>2]=0;J[a+8>>2]=J[a+8>>2]+1;return c}function ff(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 g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(gb(a,J[b+8>>2],f)){pc(b,c,d,e);return}g=K[b+53|0];j=J[a+12>>2];H[b+53|0]=0;h=K[b+52|0];H[b+52|0]=0;m=a+16|0;oc(m,b,c,d,e,f);k=K[b+53|0];g=g|k;l=K[b+52|0];h=h|l;i=a+24|0;j=(j<<3)+m|0;a:{if(i>>>0>=j>>>0){break a}while(1){if(K[b+54|0]){break a}b:{if(l){if(J[b+24>>2]==1){break a}if(K[a+8|0]&2){break b}break a}if(!k){break b}if(!(H[a+8|0]&1)){break a}}I[b+52>>1]=0;oc(i,b,c,d,e,f);k=K[b+53|0];g=k|g;l=K[b+52|0];h=l|h;i=i+8|0;if(j>>>0>i>>>0){continue}break}}H[b+53|0]=(g&255)!=0;H[b+52|0]=(h&255)!=0}function $i(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;c=J[a+4>>2];if((c|0)!=J[a+8>>2]){e=J[b+4>>2];J[c>>2]=J[b>>2];J[c+4>>2]=e;J[a+4>>2]=c+8;return}a:{h=J[a>>2];e=c-h|0;g=e>>3;d=g+1|0;if(d>>>0<536870912){f=e>>2;f=e>>>0>=2147483640?536870911:d>>>0<f>>>0?f:d;if(f){if(f>>>0>=536870912){break a}e=Xa(f<<3)}else{e=0}d=e+(g<<3)|0;g=J[b+4>>2];J[d>>2]=J[b>>2];J[d+4>>2]=g;b=d+8|0;if((c|0)!=(h|0)){while(1){c=c-8|0;g=J[c+4>>2];d=d-8|0;J[d>>2]=J[c>>2];J[d+4>>2]=g;if((c|0)!=(h|0)){continue}break}c=J[a>>2]}J[a+8>>2]=e+(f<<3);J[a+4>>2]=b;J[a>>2]=d;if(c){ab(c)}return}ma();B()}Ub();B()}function di(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0),o=Q(0),p=0,q=Q(0);j=N[c+8>>2];f=N[a+20>>2];k=N[c+12>>2];e=N[a+24>>2];n=N[c+4>>2];h=Q(Q(Q(j*f)+Q(k*e))+n);o=N[c>>2];i=Q(o+Q(Q(k*f)-Q(e*j)));c=1;p=J[a+148>>2];a:{if((p|0)<=1){f=i;e=h;break a}m=Q(-j);e=h;f=i;while(1){d=(c<<3)+a|0;q=N[d+20>>2];g=N[d+24>>2];l=Q(n+Q(Q(j*q)+Q(k*g)));e=e>l?e:l;g=Q(o+Q(Q(k*q)+Q(g*m)));f=f>g?f:g;h=h<l?h:l;i=i<g?i:g;c=c+1|0;if((p|0)!=(c|0)){continue}break}}m=e;e=N[a+8>>2];N[b+12>>2]=m+e;N[b+8>>2]=f+e;N[b+4>>2]=h-e;N[b>>2]=i-e}function hc(a,b,c,d,e){var f=Q(0),g=Q(0),h=Q(0),i=0,j=0,k=0,l=Q(0),m=Q(0);f=N[c>>2];g=N[c+4>>2];h=Q(Q(Q(f*N[b+12>>2])+Q(g*N[b+16>>2]))-d);c=0;d=Q(Q(Q(f*N[b>>2])+Q(g*N[b+4>>2]))-d);if(d<=Q(0)){c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;J[a+8>>2]=J[b+8>>2];c=1}if(h<=Q(0)){i=b+12|0;k=J[i+4>>2];j=P(c,12)+a|0;J[j>>2]=J[i>>2];J[j+4>>2]=k;J[j+8>>2]=J[i+8>>2];c=c+1|0}if(Q(d*h)<Q(0)){f=N[b>>2];l=N[b+12>>2];g=N[b+4>>2];m=N[b+16>>2];a=P(c,12)+a|0;H[a+8|0]=e;d=Q(d/Q(d-h));N[a+4>>2]=g+Q(d*Q(m-g));N[a>>2]=f+Q(d*Q(l-f));b=K[b+9|0];I[a+10>>1]=256;H[a+9|0]=b;c=c+1|0}return c}function hf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(gb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(gb(a,J[b>>2],e)){if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+32>>2]=d;b:{if(J[b+44>>2]==4){break b}I[b+52>>1]=0;a=J[a+8>>2];Na[J[J[a>>2]+20>>2]](a,b,c,c,1,e);if(K[b+53|0]){J[b+44>>2]=3;if(!K[b+52|0]){break b}break a}J[b+44>>2]=4}J[b+20>>2]=c;J[b+40>>2]=J[b+40>>2]+1;if(J[b+36>>2]!=1|J[b+24>>2]!=2){break a}H[b+54|0]=1;return}a=J[a+8>>2];Na[J[J[a>>2]+24>>2]](a,b,c,d,e)}}function Vc(a,b,c){var d=0,e=0,f=0;d=La-208|0;La=d;J[d+204>>2]=c;c=d+160|0;Db(c,0,40);J[d+200>>2]=J[d+204>>2];a:{if((Zc(0,b,d+200|0,d+80|0,c)|0)<0){break a}f=J[a+76>>2]>=0;c=J[a>>2];if(J[a+72>>2]<=0){J[a>>2]=c&-33}b:{c:{d:{if(!J[a+48>>2]){J[a+48>>2]=80;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;e=J[a+44>>2];J[a+44>>2]=d;break d}if(J[a+16>>2]){break c}}if($c(a)){break b}}Zc(a,b,d+200|0,d+80|0,d+160|0)}if(e){Na[J[a+36>>2]](a,0,0)|0;J[a+48>>2]=0;J[a+44>>2]=e;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0}J[a>>2]=J[a>>2]|c&32;if(!f){break a}}La=d+208|0}function Ki(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=La-16|0;La=h;f=a+16|0;g=J[f>>2];a:{if(!g){break a}j=J[b+48>>2];e=f;d=g;while(1){i=M[d+16>>2]<j>>>0;e=i?e:d;d=J[(i?d+4|0:d)>>2];if(d){continue}break}if(!((e|0)!=(f|0)&M[e+16>>2]<=j>>>0)){i=J[b+52>>2];d=f;while(1){e=i>>>0>M[g+16>>2];d=e?d:g;e=J[(e?g+4|0:g)>>2];g=e;if(e){continue}break}if((d|0)==(f|0)|i>>>0<M[d+16>>2]){break a}}f=J[a+8>>2];if(!(H[23964]&1)){a=ba(3,20140)|0;H[23964]=1;J[5990]=a}a=J[5990];J[h+8>>2]=c;J[h>>2]=b;da(a|0,f|0,3980,h|0)}La=h+16|0}function Ji(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0,j=0;h=La-16|0;La=h;f=a+16|0;g=J[f>>2];a:{if(!g){break a}j=J[b+48>>2];e=f;d=g;while(1){i=M[d+16>>2]<j>>>0;e=i?e:d;d=J[(i?d+4|0:d)>>2];if(d){continue}break}if(!((e|0)!=(f|0)&M[e+16>>2]<=j>>>0)){i=J[b+52>>2];d=f;while(1){e=i>>>0>M[g+16>>2];d=e?d:g;e=J[(e?g+4|0:g)>>2];g=e;if(e){continue}break}if((d|0)==(f|0)|i>>>0<M[d+16>>2]){break a}}f=J[a+8>>2];if(!(H[23964]&1)){a=ba(3,20140)|0;H[23964]=1;J[5990]=a}a=J[5990];J[h+8>>2]=c;J[h>>2]=b;da(a|0,f|0,3970,h|0)}La=h+16|0}function Mi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=La-16|0;La=h;e=a+16|0;f=J[e>>2];a:{if(!f){break a}i=J[b+48>>2];d=e;c=f;while(1){g=M[c+16>>2]<i>>>0;d=g?d:c;c=J[(g?c+4|0:c)>>2];if(c){continue}break}if(!((d|0)!=(e|0)&M[d+16>>2]<=i>>>0)){g=J[b+52>>2];c=e;while(1){d=g>>>0>M[f+16>>2];c=d?c:f;d=J[(d?f+4|0:f)>>2];f=d;if(d){continue}break}if((c|0)==(e|0)|g>>>0<M[c+16>>2]){break a}}e=J[a+8>>2];if(!(H[23956]&1)){a=ba(2,20132)|0;H[23956]=1;J[5988]=a}a=J[5988];J[h+8>>2]=b;da(a|0,e|0,2106,h+8|0)}La=h+16|0}function Li(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0;h=La-16|0;La=h;e=a+16|0;f=J[e>>2];a:{if(!f){break a}i=J[b+48>>2];d=e;c=f;while(1){g=M[c+16>>2]<i>>>0;d=g?d:c;c=J[(g?c+4|0:c)>>2];if(c){continue}break}if(!((d|0)!=(e|0)&M[d+16>>2]<=i>>>0)){g=J[b+52>>2];c=e;while(1){d=g>>>0>M[f+16>>2];c=d?c:f;d=J[(d?f+4|0:f)>>2];f=d;if(d){continue}break}if((c|0)==(e|0)|g>>>0<M[c+16>>2]){break a}}e=J[a+8>>2];if(!(H[23956]&1)){a=ba(2,20132)|0;H[23956]=1;J[5988]=a}a=J[5988];J[h+8>>2]=b;da(a|0,e|0,2119,h+8|0)}La=h+16|0}function Uh(a,b,c){a=a|0;b=b|0;c=Q(c);var d=0,e=Q(0),f=Q(0),g=Q(0),h=0,i=Q(0),j=Q(0);d=J[a+88>>2];if(!K[d+102989|0]){f=_a(c);N[a+24>>2]=f;g=Za(c);N[a+20>>2]=g;j=N[b+4>>2];h=J[b+4>>2];e=N[b>>2];b=J[b>>2];J[a+12>>2]=b;J[a+16>>2]=h;N[a+56>>2]=c;N[a+52>>2]=c;c=N[a+28>>2];i=N[a+32>>2];e=Q(Q(Q(f*c)-Q(g*i))+e);N[a+44>>2]=e;N[a+36>>2]=e;c=Q(Q(Q(g*c)+Q(f*i))+j);N[a+48>>2]=c;N[a+40>>2]=c;b=J[a+100>>2];if(b){h=d+102868|0;d=a+12|0;while(1){ec(b,h,d,d);b=J[b+4>>2];if(b){continue}break}d=J[a+88>>2]}fc(d+102868|0)}}function Vh(a,b){a=a|0;b=b|0;var c=0,d=0;if(!(K[J[a+88>>2]+102989|0]|!b)){c=J[a+100>>2];a:{if(!c){break a}if((b|0)==(c|0)){d=a+100|0}else{while(1){d=c;c=J[c+4>>2];if(!c){break a}if((b|0)!=(c|0)){continue}break}d=d+4|0}J[d>>2]=J[b+4>>2]}c=J[a+112>>2];if(c){while(1){d=J[c+4>>2];c=J[c+12>>2];if(!(J[d+48>>2]!=(b|0)&J[d+52>>2]!=(b|0))){Sb(J[a+88>>2]+102868|0,d)}if(c){continue}break}}d=J[a+88>>2];if(K[a+4|0]&32){wc(b,d+102868|0)}J[b+4>>2]=0;J[b+8>>2]=0;xc(b,d);Ib(d,b,44);J[a+104>>2]=J[a+104>>2]-1;Tb(a)}}function ij(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0,g=0,h=0;e=J[a+4>>2];if((e|0)!=J[a+8>>2]){J[e>>2]=J[b>>2];J[a+4>>2]=e+4;return}a:{g=J[a>>2];f=e-g|0;c=f>>2;d=c+1|0;if(d>>>0<1073741824){h=c<<2;c=f>>1;c=f>>>0>=2147483644?1073741823:c>>>0>d>>>0?c:d;if(c){if(c>>>0>=1073741824){break a}f=Xa(c<<2)}else{f=0}d=h+f|0;J[d>>2]=J[b>>2];b=d+4|0;if((e|0)!=(g|0)){while(1){d=d-4|0;e=e-4|0;J[d>>2]=J[e>>2];if((e|0)!=(g|0)){continue}break}}J[a+8>>2]=f+(c<<2);J[a+4>>2]=b;J[a>>2]=d;if(g){ab(g)}return}ma();B()}Ub();B()}function Eh(a){a=a|0;var b=0,c=Q(0),d=0,e=0;b=La-144|0;La=b;d=J[J[a+52>>2]+8>>2];e=J[J[a+48>>2]+8>>2];Ya(7679,0);J[b+128>>2]=e;Ya(7893,b+128|0);J[b+112>>2]=d;Ya(7867,b+112|0);J[b+96>>2]=K[a+61|0];Ya(8903,b+96|0);c=N[a+80>>2];O[b+88>>3]=N[a+84>>2];O[b+80>>3]=c;Ya(8309,b+80|0);c=N[a+88>>2];O[b+72>>3]=N[a+92>>2];O[b+64>>3]=c;Ya(8202,b- -64|0);O[b+48>>3]=N[a+104>>2];Ya(6964,b+48|0);O[b+32>>3]=N[a+68>>2];Ya(6774,b+32|0);O[b+16>>3]=N[a+72>>2];Ya(7009,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+144|0}function Tf(a){a=a|0;var b=0,c=Q(0),d=0,e=0;b=La-144|0;La=b;d=J[J[a+52>>2]+8>>2];e=J[J[a+48>>2]+8>>2];Ya(7705,0);J[b+128>>2]=e;Ya(7893,b+128|0);J[b+112>>2]=d;Ya(7867,b+112|0);J[b+96>>2]=K[a+61|0];Ya(8903,b+96|0);c=N[a+80>>2];O[b+88>>3]=N[a+84>>2];O[b+80>>3]=c;Ya(8309,b+80|0);c=N[a+88>>2];O[b+72>>3]=N[a+92>>2];O[b+64>>3]=c;Ya(8202,b- -64|0);O[b+48>>3]=N[a+96>>2];Ya(7211,b+48|0);O[b+32>>3]=N[a+68>>2];Ya(6774,b+32|0);O[b+16>>3]=N[a+72>>2];Ya(7009,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+144|0}function $e(a,b,c){a=a|0;b=Q(b);c=Q(c);var d=0,e=Q(0),f=Q(0),g=0;d=La-16|0;La=d;b=Q(b*Q(6.2831854820251465));f=N[J[a+48>>2]+116>>2];g=f>Q(0);e=N[J[a+52>>2]+116>>2];a:{if(!(!g|!(e>Q(0)))){e=Q(Q(f*e)/Q(f+e));break a}e=g?f:e}N[d+12>>2]=b*Q(b*e);N[d+8>>2]=b*Q(Q(e+e)*c);b:{c:{switch(J[a+4>>2]-3|0){case 0:N[a+68>>2]=N[d+12>>2];N[a+72>>2]=N[d+8>>2];break b;case 5:N[a+68>>2]=N[d+12>>2];N[a+72>>2]=N[d+8>>2];break b;case 4:break c;default:break b}}N[a+144>>2]=N[d+12>>2];N[a+148>>2]=N[d+8>>2]}La=d+16|0}function bi(a){a=a|0;var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=Q(0),k=Q(0),l=0,m=Q(0),n=Q(0);f=1;c=J[a+148>>2];a:{if((c|0)<=0){break a}l=c-1|0;h=a+20|0;f=0;while(1){g=d+1|0;i=(d|0)<(l|0)?g:0;b=(i<<3)+h|0;e=(d<<3)+h|0;j=N[e>>2];m=Q(N[b>>2]-j);k=N[e+4>>2];n=Q(-Q(N[b+4>>2]-k));b=0;while(1){if(!((b|0)==(d|0)|(b|0)==(i|0))){e=(b<<3)+a|0;if(Q(Q(m*Q(N[e+24>>2]-k))+Q(Q(N[e+20>>2]-j)*n))<Q(0)){break a}}b=b+1|0;if((c|0)!=(b|0)){continue}break}f=(c|0)<=(g|0);d=g;if((c|0)!=(d|0)){continue}break}}return f|0}function fi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=Q(0),f=0,g=0,h=Q(0),i=Q(0),j=Q(0),k=Q(0);g=J[a+148>>2];d=1;a:{if((g|0)<=0){break a}e=N[b+12>>2];h=Q(N[c>>2]-N[b>>2]);i=Q(N[c+4>>2]-N[b+4>>2]);j=N[b+8>>2];k=Q(Q(e*h)+Q(i*j));e=Q(Q(e*i)-Q(j*h));d=0;if(Q(Q(N[a+84>>2]*Q(k-N[a+20>>2]))+Q(Q(e-N[a+24>>2])*N[a+88>>2]))>Q(0)){break a}while(1){f=f+1|0;if((g|0)!=(f|0)){b=(f<<3)+a|0;if(!(Q(Q(N[b+84>>2]*Q(k-N[b+20>>2]))+Q(Q(e-N[b+24>>2])*N[b+88>>2]))>Q(0))){continue}}break}d=(f|0)>=(g|0)}return d|0}function dc(a){var b=0,c=0,d=0;if(!a){if(J[5976]){b=dc(J[5976])}if(J[6227]){b=dc(J[6227])|b}a=J[6244];if(a){while(1){if(J[a+20>>2]!=J[a+28>>2]){b=dc(a)|b}a=J[a+56>>2];if(a){continue}break}}return b}d=J[a+76>>2]>=0;a:{b:{if(J[a+20>>2]==J[a+28>>2]){break b}Na[J[a+36>>2]](a,0,0)|0;if(J[a+20>>2]){break b}b=-1;break a}b=J[a+8>>2];c=J[a+4>>2];if((b|0)!=(c|0)){b=c-b|0;Na[J[a+40>>2]](a,b,b>>31,1)|0}b=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;if(!d){break a}}return b}function Pd(a){var b=0,c=0,d=Q(0),e=Q(0),f=0,g=Q(0),h=Q(0),i=Q(0);c=La-16|0;La=c;f=J[a+88>>2]+102868|0;a:{if(K[a+4|0]&2){d=N[a+52>>2];e=_a(d);N[c+12>>2]=e;d=Za(d);N[c+8>>2]=d;i=N[a+36>>2];g=N[a+28>>2];h=N[a+32>>2];N[c+4>>2]=N[a+40>>2]-Q(Q(d*g)+Q(e*h));N[c>>2]=i-Q(Q(e*g)-Q(h*d));b=J[a+100>>2];if(!b){break a}a=a+12|0;while(1){ec(b,f,c,a);b=J[b+4>>2];if(b){continue}break}break a}b=J[a+100>>2];if(!b){break a}a=a+12|0;while(1){ec(b,f,a,a);b=J[b+4>>2];if(b){continue}break}}La=c+16|0}function sf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0;e=La-32|0;La=e;J[e+16>>2]=b;d=J[a+48>>2];J[e+20>>2]=c-((d|0)!=0);f=J[a+44>>2];J[e+28>>2]=d;J[e+24>>2]=f;a:{b:{d=Ea(J[a+60>>2],e+16|0,2,e+12|0)|0;if(d){J[6228]=d;d=-1}else{d=0}if(d){b=32}else{d=J[e+12>>2];if((d|0)>0){break b}b=d?32:16}J[a>>2]=b|J[a>>2];break a}g=d;f=J[e+20>>2];if(f>>>0>=d>>>0){break a}d=J[a+44>>2];J[a+4>>2]=d;J[a+8>>2]=d+(g-f|0);if(J[a+48>>2]){J[a+4>>2]=d+1;H[(b+c|0)-1|0]=K[d|0]}g=c}La=e+32|0;return g|0}function Zg(a){a=a|0;var b=0,c=0,d=0,e=Q(0);b=La-144|0;La=b;c=J[J[a+52>>2]+8>>2];d=J[J[a+48>>2]+8>>2];Ya(7537,0);J[b+128>>2]=d;Ya(7893,b+128|0);J[b+112>>2]=c;Ya(7867,b+112|0);J[b+96>>2]=K[a+61|0];Ya(8903,b+96|0);e=N[a+68>>2];O[b+88>>3]=N[a+72>>2];O[b+80>>3]=e;Ya(8073,b+80|0);O[b+64>>3]=N[a+76>>2];Ya(6718,b- -64|0);O[b+48>>3]=N[a+92>>2];Ya(7267,b+48|0);O[b+32>>3]=N[a+96>>2];Ya(7088,b+32|0);O[b+16>>3]=N[a+100>>2];Ya(6798,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+144|0}function wc(a,b){var c=0,d=0,e=0,f=0,g=0,h=0,i=0;if(J[a+28>>2]>0){while(1){g=J[a+24>>2]+P(e,28)|0;d=J[g+24>>2];c=0;f=J[b+40>>2];if((f|0)>0){i=J[b+32>>2];while(1){h=(c<<2)+i|0;if(J[h>>2]==(d|0)){J[h>>2]=-1;f=J[b+40>>2]}c=c+1|0;if((f|0)>(c|0)){continue}break}}J[b+28>>2]=J[b+28>>2]-1;Qd(b,d);c=P(d,40);J[(c+J[b+4>>2]|0)+20>>2]=J[b+16>>2];J[(c+J[b+4>>2]|0)+32>>2]=-1;J[b+16>>2]=d;J[b+8>>2]=J[b+8>>2]-1;J[g+24>>2]=-1;e=e+1|0;if((e|0)<J[a+28>>2]){continue}break}}J[a+28>>2]=0}function Th(a,b){a=a|0;b=b|0;var c=0,d=0;c=L[a+4>>1];if(((c&32)>>>5|0)!=(b|0)){if(b){I[a+4>>1]=c|32;c=J[a+88>>2];b=J[a+100>>2];if(b){c=c+102868|0;d=a+12|0;while(1){Hd(b,c,d);b=J[b+4>>2];if(b){continue}break}c=J[a+88>>2]}H[c+102988|0]=1;return}I[a+4>>1]=c&65503;b=J[a+100>>2];if(b){c=J[a+88>>2]+102868|0;while(1){wc(b,c);b=J[b+4>>2];if(b){continue}break}}b=J[a+112>>2];if(b){while(1){c=J[b+12>>2];Sb(J[a+88>>2]+102868|0,J[b+4>>2]);b=c;if(b){continue}break}}J[a+112>>2]=0}}function Sc(a,b){if(!a){return 0}a:{b:{if(a){if(b>>>0<=127){break b}c:{if(!J[J[6530]>>2]){if((b&-128)==57216){break b}break c}if(b>>>0<=2047){H[a+1|0]=b&63|128;H[a|0]=b>>>6|192;a=2;break a}if(!((b&-8192)!=57344&b>>>0>=55296)){H[a+2|0]=b&63|128;H[a|0]=b>>>12|224;H[a+1|0]=b>>>6&63|128;a=3;break a}if(b-65536>>>0<=1048575){H[a+3|0]=b&63|128;H[a|0]=b>>>18|240;H[a+2|0]=b>>>6&63|128;H[a+1|0]=b>>>12&63|128;a=4;break a}}J[6228]=25;a=-1}else{a=1}break a}H[a|0]=b;a=1}return a}function oh(a){a=a|0;var b=0,c=Q(0),d=0,e=0;b=La-128|0;La=b;d=J[J[a+52>>2]+8>>2];e=J[J[a+48>>2]+8>>2];Ya(7582,0);J[b+112>>2]=e;Ya(7893,b+112|0);J[b+96>>2]=d;Ya(7867,b+96|0);J[b+80>>2]=K[a+61|0];Ya(8903,b+80|0);c=N[a+68>>2];O[b+72>>3]=N[a+72>>2];O[b+64>>3]=c;Ya(8309,b- -64|0);c=N[a+76>>2];O[b+56>>3]=N[a+80>>2];O[b+48>>3]=c;Ya(8202,b+48|0);O[b+32>>3]=N[a+96>>2];Ya(7267,b+32|0);O[b+16>>3]=N[a+100>>2];Ya(7088,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+128|0}function Lb(a,b){var c=0,d=0;d=b&255;a:{if(d){if(a&3){while(1){c=K[a|0];if(!c|(c|0)==(b&255)){break a}a=a+1|0;if(a&3){continue}break}}c=J[a>>2];b:{if((c^-1)&c-16843009&-2139062144){break b}d=P(d,16843009);while(1){c=c^d;if((c^-1)&c-16843009&-2139062144){break b}c=J[a+4>>2];a=a+4|0;if(!(c-16843009&(c^-1)&-2139062144)){continue}break}}while(1){c=a;d=K[a|0];if(d){a=c+1|0;if((d|0)!=(b&255)){continue}}break}a=c;break a}a=ad(a)+a|0}return K[a|0]==(b&255)?a:0}function vd(a){a=a|0;var b=0,c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0);b=J[a+52>>2];f=N[b+24>>2];c=J[a+48>>2];d=N[c+24>>2];g=N[a+76>>2];h=N[a+80>>2];i=N[b+20>>2];j=N[a+68>>2];k=N[a+72>>2];e=N[c+20>>2];l=N[a+84>>2];m=N[a+88>>2];return Q(Q(Q(Q(Q(N[b+12>>2]+Q(Q(f*g)-Q(h*i)))-Q(N[c+12>>2]+Q(Q(d*j)-Q(k*e))))*Q(Q(d*l)-Q(m*e)))+Q(Q(Q(Q(Q(i*g)+Q(f*h))+N[b+16>>2])-Q(Q(Q(e*j)+Q(d*k))+N[c+16>>2]))*Q(Q(e*l)+Q(d*m)))))}function zh(a,b){a=a|0;b=b|0;var c=0,d=0;c=L[b>>1]|L[b+2>>1]<<16;I[a+32>>1]=c;I[a+34>>1]=c>>>16;I[a+36>>1]=L[b+4>>1];d=J[a+8>>2];a:{if(!d){break a}b=J[d+112>>2];if(b){while(1){c=J[b+4>>2];if(!(J[c+48>>2]!=(a|0)&J[c+52>>2]!=(a|0))){J[c+4>>2]=J[c+4>>2]|8}b=J[b+12>>2];if(b){continue}break}}b=J[d+88>>2];if(!b|J[a+28>>2]<=0){break a}c=b+102868|0;b=0;while(1){Ac(c,J[(J[a+24>>2]+P(b,28)|0)+24>>2]);b=b+1|0;if((b|0)<J[a+28>>2]){continue}break}}}function Bi(a,b,c,d,e){a=a|0;b=b|0;c=Q(c);d=d|0;e=e|0;var f=0,g=0,h=0,i=0;f=La-32|0;La=f;g=J[a+12>>2];if(!(H[23988]&1)){a=ba(5,20576)|0;H[23988]=1;J[5996]=a}h=J[5996];a=Xa(8);i=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=i;N[f+8>>2]=c;J[f>>2]=a;a=Xa(8);b=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=b;J[f+16>>2]=a;a=Xa(16);b=J[e+12>>2];J[a+8>>2]=J[e+8>>2];J[a+12>>2]=b;b=J[e+4>>2];J[a>>2]=J[e>>2];J[a+4>>2]=b;J[f+24>>2]=a;da(h|0,g|0,4684,f|0);La=f+32|0}function pi(a,b){a=a|0;b=b|0;var c=0;b=eb(b,48);J[b+4>>2]=1;J[b+8>>2]=1008981770;J[b>>2]=12040;J[b+28>>2]=0;J[b+32>>2]=0;J[b+36>>2]=0;J[b+40>>2]=0;H[b+44|0]=0;c=J[a+8>>2];J[b+4>>2]=J[a+4>>2];J[b+8>>2]=c;c=J[a+16>>2];J[b+12>>2]=J[a+12>>2];J[b+16>>2]=c;c=J[a+24>>2];J[b+20>>2]=J[a+20>>2];J[b+24>>2]=c;c=J[a+32>>2];J[b+28>>2]=J[a+28>>2];J[b+32>>2]=c;c=J[a+40>>2];J[b+36>>2]=J[a+36>>2];J[b+40>>2]=c;H[b+44|0]=K[a+44|0];return b|0}function Ai(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0;e=La-32|0;La=e;f=J[a+12>>2];if(!(H[23996]&1)){a=ba(4,20608)|0;H[23996]=1;J[5998]=a}g=J[5998];a=Xa(8);h=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=h;J[e+8>>2]=a;a=Xa(8);b=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=b;J[e+16>>2]=a;a=Xa(16);b=J[d+12>>2];J[a+8>>2]=J[d+8>>2];J[a+12>>2]=b;b=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=b;J[e+24>>2]=a;da(g|0,f|0,1871,e+8|0);La=e+32|0}function Zf(a){a=a|0;var b=0,c=Q(0),d=0,e=0;b=La-112|0;La=b;d=J[J[a+52>>2]+8>>2];e=J[J[a+48>>2]+8>>2];Ya(7657,0);J[b+96>>2]=e;Ya(7893,b+96|0);J[b+80>>2]=d;Ya(7867,b+80|0);J[b+64>>2]=K[a+61|0];Ya(8903,b- -64|0);c=N[a+68>>2];O[b+56>>3]=N[a+72>>2];O[b+48>>3]=c;Ya(8309,b+48|0);c=N[a+76>>2];O[b+40>>3]=N[a+80>>2];O[b+32>>3]=c;Ya(8202,b+32|0);O[b+16>>3]=N[a+84>>2];Ya(6985,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+112|0}function Ue(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0,g=0,h=0,i=0;d=La-32|0;La=d;e=J[b>>2];if(e>>>0<2147483632){a:{if(e>>>0<=10){H[d+27|0]=e;f=d+16|0;break a}g=(e|15)+1|0;f=Xa(g);J[d+24>>2]=g|-2147483648;J[d+16>>2]=f;J[d+20>>2]=e}h=rb(f,b+4|0,e)+e|0,i=0,H[h|0]=i;J[d+12>>2]=c;Na[a|0](d+28|0,d+16|0,d+12|0);ya(J[d+28>>2]);a=J[d+28>>2];ga(a|0);ga(J[d+12>>2]);if(H[d+27|0]<0){ab(J[d+16>>2])}La=d+32|0;return a|0}ma();B()}function mi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0),l=Q(0),m=Q(0),n=Q(0);k=N[c>>2];h=N[a+8>>2];e=N[c+8>>2];f=N[a+12>>2];i=N[c+12>>2];l=N[a+16>>2];g=N[c+4>>2];j=Q(Q(Q(e*f)+Q(i*l))+g);m=N[a+20>>2];n=N[a+24>>2];g=Q(g+Q(Q(e*m)+Q(i*n)));N[b+12>>2]=h+(g<j?j:g);f=Q(k+Q(Q(i*f)-Q(l*e)));e=Q(k+Q(Q(i*m)-Q(n*e)));N[b+8>>2]=h+(e<f?f:e);N[b+4>>2]=(g>j?j:g)-h;N[b>>2]=(e>f?f:e)-h}function gc(a,b,c){var d=0,e=0;a:{b:{c:{d:{switch(J[b+4>>2]){case 0:J[a+16>>2]=b+12;c=1;break b;case 2:J[a+16>>2]=b+20;c=J[b+148>>2];break b;case 3:d=J[b+12>>2]+(c<<3)|0;e=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=e;c=c+1|0;c=J[b+12>>2]+(((c|0)<J[b+16>>2]?c:0)<<3)|0;d=J[c+4>>2];J[a+8>>2]=J[c>>2];J[a+12>>2]=d;J[a+16>>2]=a;break c;case 1:break d;default:break a}}J[a+16>>2]=b+12}c=2}J[a+20>>2]=c;N[a+24>>2]=N[b+8>>2]}}function Md(a,b,c){var d=0,e=0,f=0;J[b+4>>2]=1;N[b+8>>2]=N[a+8>>2];f=c<<3;d=f+J[a+12>>2]|0;e=J[d+4>>2];J[b+12>>2]=J[d>>2];J[b+16>>2]=e;d=J[a+12>>2]+f|0;e=J[d+8>>2];d=J[d+12>>2];H[b+44|0]=1;J[b+20>>2]=e;J[b+24>>2]=d;d=(c|0)>0?(J[a+12>>2]+f|0)-8|0:a+20|0;e=J[d+4>>2];J[b+28>>2]=J[d>>2];J[b+32>>2]=e;a=(J[a+16>>2]-2|0)>(c|0)?(J[a+12>>2]+f|0)+16|0:a+28|0;c=J[a+4>>2];J[b+36>>2]=J[a>>2];J[b+40>>2]=c}function xc(a,b){var c=0,d=0;c=J[a+12>>2];c=Na[J[J[c>>2]+12>>2]](c)|0;Ib(b,J[a+24>>2],P(c,28));J[a+24>>2]=0;a:{b:{c:{d:{e:{f:{c=J[a+12>>2];switch(J[c+4>>2]){case 3:break c;case 2:break d;case 1:break e;case 0:break f;default:break a}}Na[J[J[c>>2]>>2]](c)|0;d=20;break b}Na[J[J[c>>2]>>2]](c)|0;d=48;break b}Na[J[J[c>>2]>>2]](c)|0;d=152;break b}Na[J[J[c>>2]>>2]](c)|0;d=36}Ib(b,c,d)}J[a+12>>2]=0}function rh(a){a=a|0;var b=0,c=0,d=0,e=0,f=0;b=La-112|0;La=b;c=J[J[a+72>>2]+56>>2];d=J[J[a+68>>2]+56>>2];e=J[J[a+52>>2]+8>>2];f=J[J[a+48>>2]+8>>2];Ya(7560,0);J[b+96>>2]=f;Ya(7893,b+96|0);J[b+80>>2]=e;Ya(7867,b+80|0);J[b+64>>2]=K[a+61|0];Ya(8903,b- -64|0);J[b+48>>2]=d;Ya(7840,b+48|0);J[b+32>>2]=c;Ya(7813,b+32|0);O[b+16>>3]=N[a+152>>2];Ya(6829,b+16|0);J[b>>2]=J[a+56>>2];Ya(8582,b);La=b+112|0}function jb(a,b,c){var d=0,e=0,f=0;if(!(K[a|0]&32)){a:{d=b;b=a;a=J[b+16>>2];b:{if(!a){if($c(b)){break b}a=J[b+16>>2]}f=J[b+20>>2];if(a-f>>>0<c>>>0){Na[J[b+36>>2]](b,d,c)|0;break a}c:{if(J[b+80>>2]<0){break c}a=c;while(1){e=a;if(!a){break c}a=e-1|0;if(K[d+a|0]!=10){continue}break}if(Na[J[b+36>>2]](b,d,e)>>>0<e>>>0){break b}d=d+e|0;c=c-e|0;f=J[b+20>>2]}rb(f,d,c);J[b+20>>2]=J[b+20>>2]+c}}}}function Pi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=Q(e);var f=0,g=0,h=0,i=0;f=La-48|0;La=f;g=J[a+8>>2];if(!(H[23948]&1)){a=ba(5,19856)|0;H[23948]=1;J[5986]=a}h=J[5986];J[f+16>>2]=b;a=Xa(8);b=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=b;J[f+24>>2]=a;a=Xa(8);b=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=b;N[f+40>>2]=e;J[f+32>>2]=a;i=+wa(h|0,g|0,4360,f+12|0,f+16|0);va(J[f+12>>2]);La=f+48|0;return Q(Q(i))}function Gb(a,b,c,d,e){var f=Q(0),g=Q(0);J[a+60>>2]=e;J[a+56>>2]=c;J[a+52>>2]=d;J[a+48>>2]=b;J[a+4>>2]=4;J[a+8>>2]=0;J[a+12>>2]=0;J[a+124>>2]=0;J[a+128>>2]=0;J[a>>2]=12464;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;N[a+136>>2]=Y(Q(N[b+16>>2]*N[d+16>>2]));f=N[d+20>>2];g=N[b+20>>2];J[a+144>>2]=0;N[a+140>>2]=f<g?g:f;return a}function vj(){var a=0;a=Xa(64);J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=1;J[a+56>>2]=0;J[a+60>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+44>>2]=0;J[a+48>>2]=0;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0;H[a+13|0]=0;H[a+14|0]=0;H[a+15|0]=0;H[a+16|0]=0;J[a+28>>2]=0;J[a+32>>2]=0;H[a+33|0]=0;H[a+34|0]=0;H[a+35|0]=0;H[a+36|0]=0;H[a+37|0]=0;H[a+38|0]=0;H[a+39|0]=0;H[a+40|0]=0;H[a+52|0]=0;return a|0}function gl(a){a=a|0;var b=0,c=0,d=0;if(a){b=a;c=J[a+102948>>2];if(c){while(1){a=J[c+100>>2];c=J[c+96>>2];if(a){while(1){J[a+28>>2]=0;d=J[a+4>>2];xc(a,b);a=d;if(a){continue}break}}if(c){continue}break}}a=b+102868|0;ab(J[a+32>>2]);ab(J[a+44>>2]);ab(J[a+4>>2]);a=0;if(J[b+4>>2]>0){while(1){ab(J[(J[b>>2]+(a<<3)|0)+4>>2]);a=a+1|0;if((a|0)<J[b+4>>2]){continue}break}}ab(J[b>>2]);ab(b)}}function ik(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=0,g=Q(0);a:{if(J[a>>2]!=2){break a}f=!d;d=L[a+4>>1];if(!(f|d&2)){J[a+144>>2]=0;d=d|2;I[a+4>>1]=d}if(!(d&2)){break a}g=N[b+4>>2];e=N[a+120>>2];N[a+64>>2]=Q(e*N[b>>2])+N[a+64>>2];N[a+68>>2]=Q(e*g)+N[a+68>>2];N[a+72>>2]=Q(N[a+128>>2]*Q(Q(Q(N[c>>2]-N[a+44>>2])*N[b+4>>2])-Q(N[b>>2]*Q(N[c+4>>2]-N[a+48>>2]))))+N[a+72>>2]}}function xi(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=d|0;var e=0,f=0,g=0,h=0;e=La-32|0;La=e;f=J[a+12>>2];if(!(H[23980]&1)){a=ba(4,20560)|0;H[23980]=1;J[5994]=a}g=J[5994];a=Xa(8);h=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=h;N[e+16>>2]=c;J[e+8>>2]=a;a=Xa(16);b=J[d+12>>2];J[a+8>>2]=J[d+8>>2];J[a+12>>2]=b;b=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=b;J[e+24>>2]=a;da(g|0,f|0,1607,e+8|0);La=e+32|0}function Ci(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=d|0;var e=0,f=0,g=0,h=0;e=La-32|0;La=e;f=J[a+12>>2];if(!(H[23980]&1)){a=ba(4,20560)|0;H[23980]=1;J[5994]=a}g=J[5994];a=Xa(8);h=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=h;N[e+16>>2]=c;J[e+8>>2]=a;a=Xa(16);b=J[d+12>>2];J[a+8>>2]=J[d+8>>2];J[a+12>>2]=b;b=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=b;J[e+24>>2]=a;da(g|0,f|0,4673,e+8|0);La=e+32|0}function zf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;a=J[c+8>>2];e=J[b+8>>2];if(!(J[a>>2]|J[e>>2])){return 0}a=J[a+108>>2];a:{if(a){while(1){d=0;if(!(K[J[a+4>>2]+61|0]|(e|0)!=J[a>>2])){break a}a=J[a+12>>2];if(a){continue}break}}d=1}if(d){a=I[b+36>>1];if(!(!a|L[c+36>>1]!=(a&65535))){return(a|0)>0|0}a=(L[c+32>>1]&L[b+34>>1])!=0&(L[c+34>>1]&L[b+32>>1])!=0}else{a=0}return a|0}function yh(a){a=a|0;var b=0,c=0,d=0;a:{d=J[a+8>>2];if(!d){break a}b=J[d+112>>2];if(b){while(1){c=J[b+4>>2];if(!(J[c+48>>2]!=(a|0)&J[c+52>>2]!=(a|0))){J[c+4>>2]=J[c+4>>2]|8}b=J[b+12>>2];if(b){continue}break}}b=J[d+88>>2];if(!b|J[a+28>>2]<=0){break a}c=b+102868|0;b=0;while(1){Ac(c,J[(J[a+24>>2]+P(b,28)|0)+24>>2]);b=b+1|0;if((b|0)<J[a+28>>2]){continue}break}}}function kj(){var a=0;a=Xa(76);J[a+4>>2]=0;J[a+8>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a>>2]=7;J[a+48>>2]=0;J[a+52>>2]=0;H[a+44|0]=0;J[a+36>>2]=1065353216;J[a+40>>2]=0;J[a+60>>2]=0;J[a+64>>2]=0;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0;H[a+13|0]=0;H[a+14|0]=0;H[a+15|0]=0;H[a+16|0]=0;J[a+28>>2]=0;J[a+32>>2]=0;H[a+56|0]=0;J[a+68>>2]=0;J[a+72>>2]=0;return a|0}function gf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;if(gb(a,J[b+8>>2],e)){if(!(J[b+28>>2]==1|J[b+4>>2]!=(c|0))){J[b+28>>2]=d}return}a:{if(!gb(a,J[b>>2],e)){break a}if(!(J[b+16>>2]!=(c|0)&J[b+20>>2]!=(c|0))){if((d|0)!=1){break a}J[b+32>>2]=1;return}J[b+20>>2]=c;J[b+32>>2]=d;J[b+40>>2]=J[b+40>>2]+1;if(!(J[b+36>>2]!=1|J[b+24>>2]!=2)){H[b+54|0]=1}J[b+44>>2]=4}}function ji(a,b,c){a=a|0;b=Q(b);c=Q(c);var d=Q(0);J[a+84>>2]=0;J[a+88>>2]=-1082130432;J[a+148>>2]=4;J[a+12>>2]=0;J[a+16>>2]=0;J[a+108>>2]=-1082130432;J[a+112>>2]=0;J[a+100>>2]=0;J[a+104>>2]=1065353216;J[a+92>>2]=1065353216;J[a+96>>2]=0;N[a+48>>2]=c;d=Q(-b);N[a+44>>2]=d;N[a+40>>2]=c;N[a+36>>2]=b;c=Q(-c);N[a+32>>2]=c;N[a+28>>2]=b;N[a+24>>2]=c;N[a+20>>2]=d}function Fb(a,b){var c=0,d=0,e=0,f=0;f=a+102412|0;c=J[a+102796>>2];J[(f+P(c,12)|0)+4>>2]=b;d=J[a+102400>>2];e=d+b|0;a:{if((e|0)>=102401){e=1;d=fb(b);break a}J[a+102400>>2]=e;e=0;d=a+d|0}c=f+P(c,12)|0;H[c+8|0]=e;J[c>>2]=d;b=J[a+102404>>2]+b|0;J[a+102404>>2]=b;J[a+102796>>2]=J[a+102796>>2]+1;c=a;a=J[a+102408>>2];J[c+102408>>2]=(a|0)>(b|0)?a:b;return d}function xj(){var a=0;a=Xa(72);J[a+4>>2]=0;J[a+8>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a>>2]=2;J[a+64>>2]=0;J[a+68>>2]=0;J[a+36>>2]=1065353216;J[a+52>>2]=0;J[a+56>>2]=0;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0;H[a+13|0]=0;H[a+14|0]=0;H[a+15|0]=0;H[a+16|0]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;H[a+48|0]=0;H[a+60|0]=0;return a|0}function pc(a,b,c,d){H[a+53|0]=1;a:{if(J[a+4>>2]!=(c|0)){break a}H[a+52|0]=1;c=J[a+16>>2];b:{if(!c){J[a+36>>2]=1;J[a+24>>2]=d;J[a+16>>2]=b;if((d|0)!=1){break a}if(J[a+48>>2]==1){break b}break a}if((b|0)==(c|0)){c=J[a+24>>2];if((c|0)==2){J[a+24>>2]=d;c=d}if(J[a+48>>2]!=1){break a}if((c|0)==1){break b}break a}J[a+36>>2]=J[a+36>>2]+1}H[a+54|0]=1}}function gd(a,b,c,d,e,f){var g=0,h=0;J[a+48>>2]=d;J[a+44>>2]=c;J[a+40>>2]=b;J[a+36>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+4>>2]=f;J[a>>2]=e;g=a,h=Fb(e,b<<2),J[g+8>>2]=h;g=a,h=Fb(J[a>>2],c<<2),J[g+12>>2]=h;g=a,h=Fb(J[a>>2],d<<2),J[g+16>>2]=h;g=a,h=Fb(J[a>>2],P(J[a+40>>2],12)),J[g+24>>2]=h;g=a,h=Fb(J[a>>2],P(J[a+40>>2],12)),J[g+20>>2]=h;return a}function cc(a,b){a:{if((b|0)>=1024){a=a*898846567431158e293;if(b>>>0<2047){b=b-1023|0;break a}a=a*898846567431158e293;b=((b|0)>=3069?3069:b)-2046|0;break a}if((b|0)>-1023){break a}a=a*2004168360008973e-307;if(b>>>0>4294965304){b=b+969|0;break a}a=a*2004168360008973e-307;b=((b|0)<=-2960?-2960:b)+1938|0}x(0,0);x(1,b+1023<<20);return a*+z()}function of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=La+-64|0;La=d;e=1;a:{if(gb(a,b,0)){break a}e=0;if(!b){break a}b=sb(b,18100);e=0;if(!b){break a}Db(d+12|0,0,52);J[d+56>>2]=1;J[d+20>>2]=-1;J[d+16>>2]=a;J[d+8>>2]=b;Na[J[J[b>>2]+28>>2]](b,d+8|0,J[c>>2],1);a=J[d+32>>2];if((a|0)==1){J[c>>2]=J[d+24>>2]}e=(a|0)==1}a=e;La=d- -64|0;return a|0}function ze(){var a=0,b=0;J[5981]=0;J[5980]=727;re();J[5981]=J[6224];J[6224]=23920;H[24020]=0;a=1;while(1){b=(J[(b<<2)+12176>>2]<(a|0))+b|0;H[a+24020|0]=b;b=b+(J[(b<<2)+12176>>2]<=(a|0))|0;H[a+24021|0]=b;a=a+2|0;if((a|0)!=641){continue}break}J[6225]=927;J[6226]=0;cd();J[6226]=J[6224];J[6224]=24900;J[6530]=24948;J[6512]=42}function Ee(a){a=a|0;var b=Q(0),c=Q(0),d=Q(0),e=Q(0),f=0;c=N[a+8>>2];b=N[a>>2];a:{if(!(Q(c-b)>=Q(0))){break a}d=N[a+12>>2];e=N[a+4>>2];if(!(Q(d-e)>=Q(0))){break a}b=Q(R(b));if(!(b>Q(Infinity)|b<Q(Infinity))){break a}b=Q(R(e));if(!(b>Q(Infinity)|b<Q(Infinity))){break a}f=Q(R(c))<Q(Infinity)&Q(R(d))<Q(Infinity)}return f|0}function xb(a,b){var c=0;J[a>>2]=12916;c=J[b>>2];J[a+8>>2]=0;J[a+12>>2]=0;J[a+4>>2]=c;J[a+48>>2]=J[b+8>>2];c=J[b+12>>2];J[a+56>>2]=0;J[a+52>>2]=c;c=K[b+16|0];H[a+60|0]=0;H[a+61|0]=c;b=J[b+4>>2];J[a+16>>2]=0;J[a+20>>2]=0;J[a+64>>2]=b;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;return a}function Ei(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=La-32|0;La=e;f=J[a+12>>2];if(!(H[23972]&1)){a=ba(4,20544)|0;H[23972]=1;J[5992]=a}g=J[5992];J[e+16>>2]=c;J[e+8>>2]=b;a=Xa(16);b=J[d+12>>2];J[a+8>>2]=J[d+8>>2];J[a+12>>2]=b;b=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=b;J[e+24>>2]=a;da(g|0,f|0,3233,e+8|0);La=e+32|0}function Di(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0;e=La-32|0;La=e;f=J[a+12>>2];if(!(H[23972]&1)){a=ba(4,20544)|0;H[23972]=1;J[5992]=a}g=J[5992];J[e+16>>2]=c;J[e+8>>2]=b;a=Xa(16);b=J[d+12>>2];J[a+8>>2]=J[d+8>>2];J[a+12>>2]=b;b=J[d+4>>2];J[a>>2]=J[d>>2];J[a+4>>2]=b;J[e+24>>2]=a;da(g|0,f|0,3245,e+8|0);La=e+32|0}function mk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;a:{if(J[a>>2]!=2){break a}e=!d;d=L[a+4>>1];if(!(e|d&2)){J[a+144>>2]=0;d=d|2;I[a+4>>1]=d}if(!(d&2)){break a}N[a+76>>2]=N[b>>2]+N[a+76>>2];N[a+80>>2]=N[b+4>>2]+N[a+80>>2];N[a+84>>2]=N[a+84>>2]+Q(Q(Q(N[c>>2]-N[a+44>>2])*N[b+4>>2])-Q(N[b>>2]*Q(N[c+4>>2]-N[a+48>>2])))}}function Xj(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0);i=N[b+48>>2];j=N[b+16>>2];k=N[b+64>>2];d=N[b+72>>2];e=N[b+24>>2];f=N[c>>2];g=N[c+4>>2];h=N[b+20>>2];N[a+4>>2]=Q(d*Q(Q(N[b+12>>2]+Q(Q(e*f)-Q(g*h)))-N[b+44>>2]))+N[b+68>>2];N[a>>2]=k-Q(d*Q(Q(j+Q(Q(h*f)+Q(e*g)))-i))}function ad(a){var b=0,c=0,d=0;a:{b:{b=a;if(!(b&3)){break b}if(!K[a|0]){return 0}while(1){b=b+1|0;if(!(b&3)){break b}if(K[b|0]){continue}break}break a}while(1){c=b;b=b+4|0;d=J[c>>2];if(!((d^-1)&d-16843009&-2139062144)){continue}break}while(1){b=c;c=b+1|0;if(K[b|0]){continue}break}}return b-a|0}function ti(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0),k=Q(0);e=N[c>>2];g=N[c+8>>2];h=N[a+12>>2];i=N[c+12>>2];j=N[a+16>>2];k=Q(N[c+4>>2]+Q(Q(g*h)+Q(i*j)));f=N[a+8>>2];N[b+12>>2]=k+f;e=Q(e+Q(Q(i*h)-Q(j*g)));N[b+8>>2]=f+e;N[b+4>>2]=k-f;N[b>>2]=e-f}function zi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=La-16|0;La=c;e=J[a+12>>2];if(!(H[24004]&1)){a=ba(2,20624)|0;H[24004]=1;J[6e3]=a}f=J[6e3];a=Xa(16);d=J[b+12>>2];J[a+8>>2]=J[b+8>>2];J[a+12>>2]=d;d=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=d;J[c+8>>2]=a;da(f|0,e|0,3274,c+8|0);La=c+16|0}function Ud(a,b){var c=Q(0),d=Q(0),e=Q(0),f=Q(0),g=Q(0);c=N[a+16>>2];d=N[a>>2];e=N[a+4>>2];f=N[a+12>>2];J[b+8>>2]=0;J[b+20>>2]=0;J[b+24>>2]=0;J[b+28>>2]=0;J[b+32>>2]=0;g=c;c=Q(Q(d*c)-Q(e*f));c=c!=Q(0)?Q(Q(1)/c):c;N[b>>2]=g*c;N[b+16>>2]=d*c;c=Q(-c);N[b+12>>2]=f*c;N[b+4>>2]=e*c}function Bj(){var a=0;a=Xa(44);J[a+4>>2]=0;J[a+8>>2]=0;J[a+36>>2]=1065353216;J[a+40>>2]=1050253722;J[a+28>>2]=0;J[a+32>>2]=1065353216;J[a+20>>2]=0;J[a+24>>2]=0;J[a>>2]=11;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0;H[a+13|0]=0;H[a+14|0]=0;H[a+15|0]=0;H[a+16|0]=0;return a|0}function gb(a,b,c){var d=0;if(!c){return J[a+4>>2]==J[b+4>>2]}if((a|0)==(b|0)){return 1}d=J[a+4>>2];a=K[d|0];c=J[b+4>>2];b=K[c|0];a:{if(!a|(b|0)!=(a|0)){break a}while(1){b=K[c+1|0];a=K[d+1|0];if(!a){break a}c=c+1|0;d=d+1|0;if((a|0)==(b|0)){continue}break}}return(a|0)==(b|0)}function si(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=0,f=Q(0),g=Q(0);d=N[a+8>>2];c=Q(d*Q(d*Q(c*Q(3.1415927410125732))));N[b>>2]=c;e=J[a+16>>2];J[b+4>>2]=J[a+12>>2];J[b+8>>2]=e;d=c;c=N[a+8>>2];f=Q(Q(c*Q(.5))*c);c=N[a+12>>2];g=Q(c*c);c=N[a+16>>2];N[b+12>>2]=d*Q(f+Q(g+Q(c*c)))}function Dj(){var a=0;a=Xa(48);J[a+4>>2]=0;J[a+8>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a>>2]=3;J[a+44>>2]=0;J[a+36>>2]=1065353216;J[a+40>>2]=0;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0;H[a+13|0]=0;H[a+14|0]=0;H[a+15|0]=0;H[a+16|0]=0;J[a+28>>2]=0;J[a+32>>2]=0;return a|0}function Nh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=La-48|0;La=e;f=J[J[a+48>>2]+12>>2];J[e+36>>2]=0;J[e+40>>2]=0;H[e+44|0]=0;J[e+28>>2]=0;J[e+32>>2]=0;J[e+4>>2]=1;J[e+8>>2]=1008981770;J[e>>2]=12040;Md(f,e,J[a+56>>2]);Ld(b,e,c,J[J[a+52>>2]+12>>2],d);La=e+48|0}function Lh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=La-48|0;La=e;f=J[J[a+48>>2]+12>>2];J[e+36>>2]=0;J[e+40>>2]=0;H[e+44|0]=0;J[e+28>>2]=0;J[e+32>>2]=0;J[e+4>>2]=1;J[e+8>>2]=1008981770;J[e>>2]=12040;Md(f,e,J[a+56>>2]);Kd(b,e,c,J[J[a+52>>2]+12>>2],d);La=e+48|0}function lf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;if(gb(a,J[b+8>>2],0)){qc(b,c,d);return}e=J[a+12>>2];f=a+16|0;Qc(f,b,c,d);a=a+24|0;e=(e<<3)+f|0;a:{if(a>>>0>=e>>>0){break a}while(1){Qc(a,b,c,d);if(K[b+54|0]){break a}a=a+8|0;if(e>>>0>a>>>0){continue}break}}}function vi(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);d=N[b+12>>2];e=N[a+12>>2];f=N[a+16>>2];g=N[b+8>>2];h=Q(N[c>>2]-Q(N[b>>2]+Q(Q(d*e)-Q(f*g))));d=Q(N[c+4>>2]-Q(N[b+4>>2]+Q(Q(g*e)+Q(d*f))));e=Q(Q(h*h)+Q(d*d));d=N[a+8>>2];return e<=Q(d*d)|0}function Ag(a,b,c){a=a|0;b=Q(b);c=Q(c);var d=0;if(!(N[a+124>>2]==b&N[a+128>>2]==c)){d=J[a+48>>2];if(J[d>>2]){J[d+144>>2]=0;I[d+4>>1]=L[d+4>>1]|2}d=J[a+52>>2];if(J[d>>2]){J[d+144>>2]=0;I[d+4>>1]=L[d+4>>1]|2}N[a+128>>2]=c;N[a+124>>2]=b;J[a+116>>2]=0;J[a+120>>2]=0}}function mj(){var a=0;a=Xa(48);J[a+4>>2]=0;J[a+8>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a>>2]=8;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0;H[a+13|0]=0;H[a+14|0]=0;H[a+15|0]=0;H[a+16|0]=0;J[a+28>>2]=0;J[a+32>>2]=0;J[a+36>>2]=0;J[a+40>>2]=0;J[a+44>>2]=0;return a|0}function eg(a,b,c){a=a|0;b=Q(b);c=Q(c);var d=0;if(!(N[a+124>>2]==b&N[a+128>>2]==c)){d=J[a+48>>2];if(J[d>>2]){J[d+144>>2]=0;I[d+4>>1]=L[d+4>>1]|2}d=J[a+52>>2];if(J[d>>2]){J[d+144>>2]=0;I[d+4>>1]=L[d+4>>1]|2}N[a+128>>2]=c;N[a+124>>2]=b;J[a+96>>2]=0;J[a+100>>2]=0}}function hk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=0,f=Q(0);a:{if(J[a>>2]!=2){break a}e=!c;c=L[a+4>>1];if(!(e|c&2)){J[a+144>>2]=0;c=c|2;I[a+4>>1]=c}if(!(c&2)){break a}f=N[b+4>>2];d=N[a+120>>2];N[a+64>>2]=Q(d*N[b>>2])+N[a+64>>2];N[a+68>>2]=Q(d*f)+N[a+68>>2]}}function qj(){var a=0;a=Xa(40);J[a+4>>2]=0;J[a+8>>2]=0;J[a+36>>2]=0;J[a+28>>2]=1065353216;J[a+32>>2]=0;J[a+20>>2]=-1082130432;J[a+24>>2]=0;J[a>>2]=10;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0;H[a+13|0]=0;H[a+14|0]=0;H[a+15|0]=0;H[a+16|0]=0;return a|0}function Kb(a,b,c){var d=0,e=0,f=0,g=0;if(b){while(1){c=c-1|0;e=a;a=ml(a,b,10);d=Ma;f=c,g=e-ll(a,d,10,0)|48,H[f|0]=g;e=b>>>0>9;b=d;if(e){continue}break}}if(a){while(1){c=c-1|0;b=(a>>>0)/10|0;H[c|0]=a-P(b,10)|48;d=a>>>0>9;a=b;if(d){continue}break}}return c}function zj(){var a=0;a=Xa(40);J[a+4>>2]=0;J[a+8>>2]=0;J[a+36>>2]=1060320051;J[a+28>>2]=0;J[a+32>>2]=1084227584;J[a+20>>2]=0;J[a+24>>2]=0;J[a>>2]=5;H[a+9|0]=0;H[a+10|0]=0;H[a+11|0]=0;H[a+12|0]=0;H[a+13|0]=0;H[a+14|0]=0;H[a+15|0]=0;H[a+16|0]=0;return a|0}function ah(a,b){a=a|0;b=b|0;var c=0;if(!(N[b>>2]==N[a+68>>2]&N[b+4>>2]==N[a+72>>2])){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[b+4>>2];J[a+68>>2]=J[b>>2];J[a+72>>2]=c}}function _c(a,b){var c=0,d=0,e=0;A(+a);d=v(1)|0;e=v(0)|0;c=d>>>20&2047;if((c|0)!=2047){if(!c){if(a==0){c=0}else{a=_c(a*0x10000000000000000,b);c=J[b>>2]+-64|0}J[b>>2]=c;return a}J[b>>2]=c-1022;x(0,e|0);x(1,d&-2146435073|1071644672);a=+z()}return a}function Ne(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;d=a+16|0;a=J[d>>2];a:{b:{if(!a){break b}c=d;while(1){e=M[a+16>>2]<b>>>0;c=e?c:a;a=J[(e?a+4|0:a)>>2];if(a){continue}break}if((c|0)==(d|0)){break b}if(M[c+16>>2]<=b>>>0){break a}}c=d}return(c|0)!=(d|0)|0}function Vd(a,b,c){var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0),i=Q(0),j=Q(0);e=N[b>>2];f=N[b+16>>2];g=N[b+4>>2];h=N[b+12>>2];d=Q(Q(e*f)-Q(g*h));d=d!=Q(0)?Q(Q(1)/d):d;j=e;e=N[c+4>>2];i=N[c>>2];N[a+4>>2]=d*Q(Q(j*e)-Q(i*g));N[a>>2]=d*Q(Q(f*i)-Q(e*h))}function Wh(a,b,c){a=a|0;b=b|0;c=Q(c);var d=0;d=La-32|0;La=d;I[d+30>>1]=0;H[d+24|0]=0;J[d+16>>2]=0;J[d+20>>2]=0;I[d+26>>1]=1;I[d+28>>1]=65535;J[d+8>>2]=0;J[d+12>>2]=1045220557;J[d+4>>2]=b;N[d+20>>2]=c;a=Od(a,d+4|0);La=d+32|0;return a|0}function Eb(a,b){var c=0,d=0,e=0;c=J[a+102796>>2];d=P(c,12)+a|0;e=d+102412|0;a:{if(K[d+102408|0]){ab(b);b=J[e-8>>2];c=J[a+102796>>2];break a}b=J[e-8>>2];J[a+102400>>2]=J[a+102400>>2]-b}J[a+102796>>2]=c-1;J[a+102404>>2]=J[a+102404>>2]-b}function il(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0);d=N[c>>2];e=N[b>>2];f=N[b+4>>2];g=N[c+4>>2];N[a+4>>2]=f<g?f:g;N[a>>2]=d>e?e:d;d=N[c+8>>2];e=N[b+8>>2];f=N[b+12>>2];g=N[c+12>>2];N[a+12>>2]=f>g?f:g;N[a+8>>2]=d<e?e:d}function Gg(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=Q(0),f=Q(0),g=Q(0);f=N[b+184>>2];g=N[b+192>>2];d=N[b+104>>2];e=Q(Q(N[b+112>>2]+N[b+116>>2])+N[b+120>>2]);N[a+4>>2]=Q(Q(d*N[b+196>>2])+Q(e*N[b+188>>2]))*c;N[a>>2]=Q(Q(d*g)+Q(f*e))*c}function Yc(a){var b=0,c=0,d=0;if(H[J[a>>2]]-48>>>0>=10){return 0}while(1){d=J[a>>2];c=-1;if(b>>>0<=214748364){c=H[d|0]-48|0;b=P(b,10);c=(c|0)>(b^2147483647)?-1:c+b|0}J[a>>2]=d+1;b=c;if(H[d+1|0]-48>>>0<10){continue}break}return b}function xk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){d=J[d+J[b>>2]>>2]}a=Na[d|0](b,c)|0;b=Xa(16);c=J[a+12>>2];J[b+8>>2]=J[a+8>>2];J[b+12>>2]=c;c=J[a+4>>2];J[b>>2]=J[a>>2];J[b+4>>2]=c;return b|0}function Yi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=La-16|0;La=d;e=a;a=J[b>>2];if(J[b+4>>2]-a>>3>>>0>c>>>0){b=Xa(8);c=a+(c<<3)|0;a=J[c+4>>2];J[b>>2]=J[c>>2];J[b+4>>2]=a;J[d+8>>2]=b;a=za(19004,d+8|0)|0}else{a=1}J[e>>2]=a;La=d+16|0}function se(a,b,c){a=a|0;b=b|0;c=Q(c);var d=0,e=0,f=0;d=La-16|0;La=d;e=J[a>>2];f=d+8|0;a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}Na[e|0](f,b,c);a=Xa(8);b=J[d+12>>2];J[a>>2]=J[d+8>>2];J[a+4>>2]=b;La=d+16|0;return a|0}function ak(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,f=0;d=La-16|0;La=d;e=J[a>>2];f=d+8|0;a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}Na[e|0](f,b,c);a=Xa(8);b=J[d+12>>2];J[a>>2]=J[d+8>>2];J[a+4>>2]=b;La=d+16|0;return a|0}function Bg(a,b){a=a|0;b=b|0;var c=0;if(K[a+140|0]!=(b|0)){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}J[a+116>>2]=0;J[a+120>>2]=0;H[a+140|0]=b}}function fg(a,b){a=a|0;b=b|0;var c=0;if(K[a+116|0]!=(b|0)){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}J[a+96>>2]=0;J[a+100>>2]=0;H[a+116|0]=b}}function Ff(a,b){a=a|0;b=b|0;a:{if(K[a+102972|0]==(b|0)){break a}H[a+102972|0]=b;if(b){break a}b=J[a+102948>>2];if(!b){break a}while(1){if(J[b>>2]){J[b+144>>2]=0;I[b+4>>1]=L[b+4>>1]|2}b=J[b+96>>2];if(b){continue}break}}}function sk(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){c=J[c+J[b>>2]>>2]}a=Na[c|0](b)|0;b=Xa(16);c=J[a+12>>2];J[b+8>>2]=J[a+8>>2];J[b+12>>2]=c;c=J[a+4>>2];J[b>>2]=J[a>>2];J[b+4>>2]=c;return b|0}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=La-16|0;La=c;a=J[a+8>>2];if(!(H[23940]&1)){d=ba(2,19620)|0;H[23940]=1;J[5984]=d}d=J[5984];J[c+8>>2]=b;e=+wa(d|0,a|0,4360,c+4|0,c+8|0);va(J[c+4>>2]);La=c+16|0;return e!=0|0}function Ae(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0);d=N[b>>2];c=N[a+4>>2];e=N[b+4>>2];N[a+4>>2]=c<e?c:e;c=N[a>>2];N[a>>2]=c<d?c:d;d=N[b+8>>2];c=N[a+12>>2];e=N[b+12>>2];N[a+12>>2]=c>e?c:e;c=N[a+8>>2];N[a+8>>2]=c>d?c:d}function Ed(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);c=J[b+52>>2];h=N[c+12>>2];d=N[c+20>>2];e=N[b+100>>2];f=N[c+24>>2];g=N[b+104>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[c+16>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function vk(){var a=0;a=Xa(52);J[a+4>>2]=0;J[a+8>>2]=0;J[a+44>>2]=0;J[a+48>>2]=1065353216;J[a+36>>2]=257;H[a+40|0]=1;J[a>>2]=0;J[a+12>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+32>>2]=0;return a|0}function ll(a,b,c,d){var e=0,f=0,g=0,h=0,i=0,j=0;e=c>>>16|0;f=a>>>16|0;j=P(e,f);g=c&65535;h=a&65535;i=P(g,h);f=(i>>>16|0)+P(f,g)|0;e=(f&65535)+P(e,h)|0;Ma=(P(b,c)+j|0)+P(a,d)+(f>>>16)+(e>>>16)|0;return i&65535|e<<16}function wi(a,b){a=a|0;b=b|0;var c=0;b=eb(b,20);J[b+4>>2]=0;J[b+8>>2]=0;J[b>>2]=11972;J[b+12>>2]=0;J[b+16>>2]=0;c=J[a+8>>2];J[b+4>>2]=J[a+4>>2];J[b+8>>2]=c;c=J[a+16>>2];J[b+12>>2]=J[a+12>>2];J[b+16>>2]=c;return b|0}function lk(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;a:{if(J[a>>2]!=2){break a}d=!c;c=L[a+4>>1];if(!(d|c&2)){J[a+144>>2]=0;c=c|2;I[a+4>>1]=c}if(!(c&2)){break a}N[a+76>>2]=N[b>>2]+N[a+76>>2];N[a+80>>2]=N[b+4>>2]+N[a+80>>2]}}function Tg(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);c=J[b+52>>2];h=N[c+12>>2];d=N[c+20>>2];e=N[b+68>>2];f=N[c+24>>2];g=N[b+72>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[c+16>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function Rb(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);c=J[b+48>>2];h=N[c+12>>2];d=N[c+20>>2];e=N[b+68>>2];f=N[c+24>>2];g=N[b+72>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[c+16>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function Qb(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);c=J[b+52>>2];h=N[c+12>>2];d=N[c+20>>2];e=N[b+76>>2];f=N[c+24>>2];g=N[b+80>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[c+16>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function Jd(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);c=J[b+48>>2];h=N[c+12>>2];d=N[c+20>>2];e=N[b+80>>2];f=N[c+24>>2];g=N[b+84>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[c+16>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function Id(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);c=J[b+52>>2];h=N[c+12>>2];d=N[c+20>>2];e=N[b+88>>2];f=N[c+24>>2];g=N[b+92>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[c+16>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function Fd(a,b){a=a|0;b=b|0;var c=0,d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);c=J[b+48>>2];h=N[c+12>>2];d=N[c+20>>2];e=N[b+92>>2];f=N[c+24>>2];g=N[b+96>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[c+16>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function mc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=La-16|0;La=c;d=J[a>>2];e=c+8|0;a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){d=J[d+J[b>>2]>>2]}Na[d|0](e,b);a=Xa(8);b=J[c+12>>2];J[a>>2]=J[c+8>>2];J[a+4>>2]=b;La=c+16|0;return a|0}function ki(a,b){a=a|0;b=b|0;var c=0;b=eb(b,152);J[b+148>>2]=0;J[b+4>>2]=2;J[b+8>>2]=1008981770;J[b>>2]=12108;J[b+12>>2]=0;J[b+16>>2]=0;c=J[a+8>>2];J[b+4>>2]=J[a+4>>2];J[b+8>>2]=c;rb(b+12|0,a+12|0,140);return b|0}function Rj(a,b){a=a|0;b=b|0;var c=0;if(J[a>>2]){c=L[a+4>>1];if(b){J[a+144>>2]=0;I[a+4>>1]=c|2;return}J[a+144>>2]=0;J[a+64>>2]=0;J[a+68>>2]=0;I[a+4>>1]=c&65533;J[a+72>>2]=0;J[a+76>>2]=0;J[a+80>>2]=0;J[a+84>>2]=0}}function Oi(a){a=a|0;var b=0,c=0;J[a>>2]=20076;ic(a+12|0,J[a+16>>2]);J[a>>2]=20108;if(K[a+4|0]){b=J[a+8>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+8>>2]);return a|0}function qc(a,b,c){var d=0;d=J[a+16>>2];if(!d){J[a+36>>2]=1;J[a+24>>2]=c;J[a+16>>2]=b;return}a:{if((b|0)==(d|0)){if(J[a+24>>2]!=2){break a}J[a+24>>2]=c;return}H[a+54|0]=1;J[a+24>>2]=2;J[a+36>>2]=J[a+36>>2]+1}}function Ac(a,b){var c=0,d=0;c=J[a+40>>2];if((c|0)==J[a+36>>2]){J[a+36>>2]=c<<1;d=J[a+32>>2];c=fb(c<<3);J[a+32>>2]=c;rb(c,d,J[a+40>>2]<<2);ab(d);c=J[a+40>>2]}J[J[a+32>>2]+(c<<2)>>2]=b;J[a+40>>2]=J[a+40>>2]+1}function dk(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=Q(0),f=0;c=N[a+116>>2];N[b>>2]=c;d=c;c=N[a+28>>2];e=Q(c*c);c=N[a+32>>2];N[b+12>>2]=Q(d*Q(e+Q(c*c)))+N[a+124>>2];f=J[a+32>>2];J[b+4>>2]=J[a+28>>2];J[b+8>>2]=f}function Ni(a){a=a|0;var b=0,c=0;J[a>>2]=20076;ic(a+12|0,J[a+16>>2]);J[a>>2]=20108;if(K[a+4|0]){b=J[a+8>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+8>>2]);ab(a)}function kb(a,b,c,d,e){var f=0;f=La-256|0;La=f;if(!(e&73728|(c|0)<=(d|0))){d=c-d|0;c=d>>>0<256;Db(f,b&255,c?d:256);if(!c){while(1){jb(a,f,256);d=d-256|0;if(d>>>0>255){continue}break}}jb(a,f,d)}La=f+256|0}function Jk(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){c=J[c+J[b>>2]>>2]}a=Na[c|0](b)|0;b=Xa(6);I[b+4>>1]=L[a+4>>1];a=L[a>>1]|L[a+2>>1]<<16;I[b>>1]=a;I[b+2>>1]=a>>>16;return b|0}function bk(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);h=N[b+12>>2];d=N[b+20>>2];e=N[c>>2];f=N[b+24>>2];g=N[c+4>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[b+16>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function Pf(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=Q(0),f=Q(0),g=Q(0);f=N[b+204>>2];g=N[b+196>>2];d=N[b+100>>2];e=N[b+108>>2];N[a>>2]=Q(Q(d*N[b+200>>2])+Q(e*N[b+192>>2]))*c;N[a+4>>2]=Q(Q(d*f)+Q(e*g))*c}function Qe(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0),h=Q(0);h=N[b>>2];d=N[b+8>>2];e=N[c>>2];f=N[b+12>>2];g=N[c+4>>2];N[a+4>>2]=Q(Q(d*e)+Q(f*g))+N[b+4>>2];N[a>>2]=h+Q(Q(f*e)-Q(g*d))}function ok(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0),e=0;if(J[a>>2]){c=N[b>>2];d=Q(c*c);c=N[b+4>>2];if(Q(d+Q(c*c))>Q(0)){J[a+144>>2]=0;I[a+4>>1]=L[a+4>>1]|2}e=J[b+4>>2];J[a+64>>2]=J[b>>2];J[a+68>>2]=e}}function rd(a,b){a=a|0;b=b|0;var c=0;if(K[a+141|0]!=(b|0)){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}H[a+141|0]=b}}function jg(a,b){a=a|0;b=b|0;var c=0;if(K[a+104|0]!=(b|0)){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}H[a+104|0]=b}}function qd(a,b){a=a|0;b=Q(b);var c=0;if(N[a+136>>2]!=b){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}N[a+136>>2]=b}}function pd(a,b){a=a|0;b=Q(b);var c=0;if(N[a+132>>2]!=b){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}N[a+132>>2]=b}}function ig(a,b){a=a|0;b=Q(b);var c=0;if(N[a+112>>2]!=b){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}N[a+112>>2]=b}}function hg(a,b){a=a|0;b=Q(b);var c=0;if(N[a+108>>2]!=b){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}N[a+108>>2]=b}}function gk(a,b,c){a=a|0;b=Q(b);c=c|0;var d=0;a:{if(J[a>>2]!=2){break a}d=!c;c=L[a+4>>1];if(!(d|c&2)){J[a+144>>2]=0;c=c|2;I[a+4>>1]=c}if(!(c&2)){break a}N[a+72>>2]=Q(N[a+128>>2]*b)+N[a+72>>2]}}function Yg(a,b){a=a|0;b=b|0;var c=0;if(!(N[b>>2]==N[a+76>>2]&N[b+4>>2]==N[a+80>>2])){c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[b+4>>2];J[a+76>>2]=J[b>>2];J[a+80>>2]=c}}function $g(a,b){a=a|0;b=Q(b);var c=0;if(N[a+76>>2]!=b){c=J[a+48>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}c=J[a+52>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}N[a+76>>2]=b}}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=La-16|0;La=e;a=Ba(J[a+60>>2],b|0,c|0,d&255,e+8|0)|0;if(a){J[6228]=a;a=-1}else{a=0}La=e+16|0;Ma=a?-1:J[e+12>>2];return(a?-1:J[e+8>>2])|0}function _j(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0);d=N[b+24>>2];e=Q(N[c+4>>2]-N[b+16>>2]);f=N[b+20>>2];g=Q(N[c>>2]-N[b+12>>2]);N[a+4>>2]=Q(d*e)-Q(f*g);N[a>>2]=Q(d*g)+Q(e*f)}function Yj(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0);e=N[b+48>>2];f=N[b+64>>2];g=N[c+4>>2];d=N[b+72>>2];N[a+4>>2]=Q(d*Q(N[c>>2]-N[b+44>>2]))+N[b+68>>2];N[a>>2]=f-Q(d*Q(g-e))}function $c(a){var b=0;b=J[a+72>>2];J[a+72>>2]=b-1|b;b=J[a>>2];if(b&8){J[a>>2]=b|32;return-1}J[a+4>>2]=0;J[a+8>>2]=0;b=J[a+44>>2];J[a+28>>2]=b;J[a+20>>2]=b;J[a+16>>2]=b+J[a+48>>2];return 0}function li(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=Q(0),f=Q(0);J[b>>2]=0;c=N[a+24>>2];d=N[a+16>>2];e=N[a+20>>2];f=N[a+12>>2];J[b+12>>2]=0;N[b+8>>2]=Q(d+c)*Q(.5);N[b+4>>2]=Q(f+e)*Q(.5)}function dj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=La-16|0;La=d;e=J[b+4>>2];b=J[b>>2];if(e-b>>2>>>0>c>>>0){J[d+8>>2]=J[b+(c<<2)>>2];b=za(18500,d+8|0)|0}else{b=1}J[a>>2]=b;La=d+16|0}function kk(a,b,c){a=a|0;b=Q(b);c=c|0;var d=0;a:{if(J[a>>2]!=2){break a}d=!c;c=L[a+4>>1];if(!(d|c&2)){J[a+144>>2]=0;c=c|2;I[a+4>>1]=c}if(!(c&2)){break a}N[a+84>>2]=N[a+84>>2]+b}}function Pc(a,b){var c=0;a:{if(!b){break a}b=sb(b,18308);if(!b|J[b+8>>2]&(J[a+8>>2]^-1)){break a}if(!gb(J[a+12>>2],J[b+12>>2],0)){break a}c=gb(J[a+16>>2],J[b+16>>2],0)}return c}function Gi(a){a=a|0;var b=0,c=0;J[a>>2]=20496;if(K[a+8|0]){b=J[a+12>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+12>>2]);return a|0}function Vi(a){a=a|0;var b=0,c=0;J[a>>2]=19604;if(K[a+4|0]){b=J[a+8>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+8>>2]);return a|0}function Si(a){a=a|0;var b=0,c=0;J[a>>2]=19840;if(K[a+4|0]){b=J[a+8>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+8>>2]);return a|0}function Ii(a){a=a|0;var b=0,c=0;J[a>>2]=20108;if(K[a+4|0]){b=J[a+8>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+8>>2]);return a|0}function fj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=La-16|0;La=e;f=J[a+4>>2];b=(f>>1)+b|0;a=J[a>>2];a=f&1?J[J[b>>2]+a>>2]:a;J[e+12>>2]=d;Na[a|0](b,c,e+12|0);La=e+16|0}function Jb(a){var b=0,c=0;b=J[5977];c=a+7&-8;a=b+c|0;a:{if(a>>>0<=b>>>0?c:0){break a}if(a>>>0>Oa()<<16>>>0){if(!(Da(a|0)|0)){break a}}J[5977]=a;return b}J[6228]=48;return-1}function Fi(a){a=a|0;var b=0,c=0;J[a>>2]=20496;if(K[a+8|0]){b=J[a+12>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+12>>2]);ab(a)}function Ab(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){c=J[c+J[b>>2]>>2]}a=Na[c|0](b)|0;b=Xa(8);c=J[a+4>>2];J[b>>2]=J[a>>2];J[b+4>>2]=c;return b|0}function Ui(a){a=a|0;var b=0,c=0;J[a>>2]=19604;if(K[a+4|0]){b=J[a+8>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+8>>2]);ab(a)}function Ri(a){a=a|0;var b=0,c=0;J[a>>2]=19840;if(K[a+4|0]){b=J[a+8>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+8>>2]);ab(a)}function Hi(a){a=a|0;var b=0,c=0;J[a>>2]=20108;if(K[a+4|0]){b=J[a+8>>2];if(!(H[23932]&1)){c=ba(1,19616)|0;H[23932]=1;J[5982]=c}da(J[5982],b|0,2095,0)}ga(J[a+8>>2]);ab(a)}function Ek(a,b){a=a|0;b=Q(b);var c=0,d=0;c=(C(b),v(2));d=c&2147483647;if(!(!d|c-1>>>0<8388607|d-8388608>>>0<2130706432&(c|0)>=0)){Aa(3925,3460,300,1066);B()}N[a>>2]=b}function Sk(){var a=0;a=Xa(28);I[a+22>>1]=1;I[a+24>>1]=65535;J[a+12>>2]=0;J[a+16>>2]=0;J[a+8>>2]=1045220557;J[a>>2]=0;J[a+4>>2]=0;I[a+26>>1]=0;H[a+20|0]=0;return a|0}function hj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=La-16|0;La=d;e=J[a+4>>2];b=(e>>1)+b|0;a=J[a>>2];a=e&1?J[J[b>>2]+a>>2]:a;J[d+12>>2]=c;Na[a|0](b,d+12|0);La=d+16|0}function Zj(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0);d=N[b+24>>2];e=N[c+4>>2];f=N[b+20>>2];g=N[c>>2];N[a+4>>2]=Q(d*e)-Q(f*g);N[a>>2]=Q(d*g)+Q(f*e)}function Te(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=Q(f);var g=0;g=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){g=J[g+J[b>>2]>>2]}return Q(Q(Na[g|0](b,c,d,e,f)))}function $j(a,b,c){a=a|0;b=b|0;c=c|0;var d=Q(0),e=Q(0),f=Q(0),g=Q(0);d=N[b+20>>2];e=N[c>>2];f=N[b+24>>2];g=N[c+4>>2];N[a+4>>2]=Q(d*e)+Q(f*g);N[a>>2]=Q(f*e)-Q(g*d)}function Qc(a,b,c,d){var e=0,f=0;e=J[a+4>>2];f=J[a>>2];a=0;a:{if(!c){break a}a=e>>8;if(!(e&1)){break a}a=J[a+J[c>>2]>>2]}Na[J[J[f>>2]+28>>2]](f,b,a+c|0,e&2?d:2)}function kc(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 g=0;g=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){g=J[g+J[b>>2]>>2]}return Na[g|0](b,c,d,e,f)|0}function Qi(a,b){a=a|0;b=b|0;var c=0,d=0;c=b;d=a- -64|0;b=J[a+48>>2];a=J[a+52>>2];Yd(c,d,J[b+8>>2]+12|0,N[J[b+12>>2]+8>>2],J[a+8>>2]+12|0,N[J[a+12>>2]+8>>2])}function vb(a){var b=0,c=0;b=a*a;c=b*a;return Q(c*(b*b)*(b*2718311493989822e-21+-.00019839334836096632)+(c*(b*.008333329385889463+-.16666666641626524)+a))}function sg(a,b){a=a|0;b=b|0;N[a+68>>2]=N[a+68>>2]-N[b>>2];N[a+72>>2]=N[a+72>>2]-N[b+4>>2];N[a+76>>2]=N[a+76>>2]-N[b>>2];N[a+80>>2]=N[a+80>>2]-N[b+4>>2]}function Uk(a,b,c,d,e,f){a=a|0;b=b|0;c=Q(c);d=Q(d);e=e|0;f=Q(f);var g=0;g=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){g=J[g+J[b>>2]>>2]}Na[g|0](b,c,d,e,f)}function Xe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=La-16|0;La=d;Na[a|0](d+8|0,b,c);a=Xa(8);b=J[d+12>>2];J[a>>2]=J[d+8>>2];J[a+4>>2]=b;La=d+16|0;return a|0}function hl(a,b){a=a|0;b=b|0;var c=0;if(!(!(N[b+8>>2]<=N[a+8>>2])|(!(N[a>>2]<=N[b>>2])|!(N[a+4>>2]<=N[b+4>>2])))){c=N[b+12>>2]<=N[a+12>>2]}return c|0}function Je(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=Q(d);e=e|0;f=f|0;var g=0;g=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){g=J[g+J[b>>2]>>2]}Na[g|0](b,c,d,e,f)}function ef(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(gb(a,J[b+8>>2],f)){pc(b,c,d,e);return}a=J[a+8>>2];Na[J[J[a>>2]+20>>2]](a,b,c,d,e,f)}function Gk(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){f=J[f+J[b>>2]>>2]}return Na[f|0](b,c,d,e)|0}function Me(a){a=a|0;var b=0;b=Xa(24);H[b+4|0]=0;J[b+8>>2]=J[a>>2];J[a>>2]=0;a=b+16|0;J[a>>2]=0;J[a+4>>2]=0;J[b>>2]=20076;J[b+12>>2]=a;return b|0}function Ok(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=Xa(6);b=b+c|0;c=L[b>>1]|L[b+2>>1]<<16;I[a>>1]=c;I[a+2>>1]=c>>>16;I[a+4>>1]=L[b+4>>1];return a|0}function wb(a){var b=0;a=a*a;b=a*a;return Q(a*b*(a*2439044879627741e-20+-.001388676377460993)+(b*.04166662332373906+(a*-.499999997251031+1)))}function ae(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=La-16|0;La=d;Na[J[a>>2]](d+12|0,b,c);ya(J[d+12>>2]);a=J[d+12>>2];ga(a|0);La=d+16|0;return a|0}function Ng(){var a=0;a=Xa(32);J[a>>2]=0;J[a+4>>2]=0;J[a+24>>2]=0;J[a+28>>2]=0;J[a+16>>2]=0;J[a+20>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function cl(a,b,c,d,e){a=a|0;b=b|0;c=Q(c);d=d|0;e=e|0;var f=0;f=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){f=J[f+J[b>>2]>>2]}Na[f|0](b,c,d,e)}function Ke(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=Q(d);e=e|0;var f=0;f=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){f=J[f+J[b>>2]>>2]}Na[f|0](b,c,d,e)}function tk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);var e=0;e=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}return Na[e|0](b,c,d)|0}function dl(a,b){a=a|0;b=b|0;var c=0,d=0;c=La-16|0;La=c;d=J[b+4>>2];J[c+8>>2]=J[b>>2];J[c+12>>2]=d;a=Na[a|0](c+8|0)|0;La=c+16|0;return a|0}function Tj(a,b){a=a|0;b=b|0;var c=0;c=L[a+4>>1];if(b){I[a+4>>1]=c|4;return}b=c&65531;I[a+4>>1]=b;if(J[a>>2]){J[a+144>>2]=0;I[a+4>>1]=b|2}}function Bb(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0;f=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){f=J[f+J[b>>2]>>2]}Na[f|0](b,c,d,e)}function Zb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}return Na[e|0](b,c,d)|0}function oc(a,b,c,d,e,f){var g=0,h=0;g=J[a+4>>2];h=g>>8;a=J[a>>2];if(g&1){h=J[J[d>>2]+h>>2]}Na[J[J[a>>2]+20>>2]](a,b,c,d+h|0,g&2?e:2,f)}function bj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=La-16|0;La=e;a=J[a>>2];J[e+12>>2]=d;a=Na[a|0](b,c,e+12|0)|0;La=e+16|0;return a|0}function Xb(a,b,c){a=a|0;b=b|0;c=Q(c);var d=0;d=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){d=J[d+J[b>>2]>>2]}return Q(Q(Na[d|0](b,c)))}function bc(a,b,c,d,e){var f=0,g=0;f=J[a+4>>2];g=f>>8;a=J[a>>2];if(f&1){g=J[J[c>>2]+g>>2]}Na[J[J[a>>2]+24>>2]](a,b,c+g|0,f&2?d:2,e)}function xh(a,b){a=a|0;b=b|0;var c=0;if(K[a+38|0]!=(b|0)){c=J[a+8>>2];if(J[c>>2]){J[c+144>>2]=0;I[c+4>>1]=L[c+4>>1]|2}H[a+38|0]=b}}function Xa(a){var b=0;a=a>>>0<=1?1:a;a:{while(1){b=fb(a);if(b){break a}b=J[6663];if(b){Na[b|0]();continue}break}ma();B()}return b}function Gc(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=Q(d);var e=0;e=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}Na[e|0](b,c,d)}function ug(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=Q(0);e=N[b+140>>2];d=N[b+116>>2];N[a>>2]=Q(d*N[b+136>>2])*c;N[a+4>>2]=Q(d*e)*c}function th(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0),e=Q(0);e=N[b+244>>2];d=N[b+156>>2];N[a>>2]=Q(d*N[b+240>>2])*c;N[a+4>>2]=Q(d*e)*c}function jk(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=d|0;var e=0;e=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}Na[e|0](b,c,d)}function Yb(a,b,c,d){a=a|0;b=b|0;c=c|0;d=Q(d);var e=0;e=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}Na[e|0](b,c,d)}function Wk(){var a=0;a=Xa(152);J[a+148>>2]=0;J[a+4>>2]=2;J[a+8>>2]=1008981770;J[a>>2]=12108;J[a+12>>2]=0;J[a+16>>2]=0;return a|0}function De(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0);c=N[b+12>>2];d=N[b+4>>2];N[a>>2]=Q(N[b>>2]+N[b+8>>2])*Q(.5);N[a+4>>2]=Q(d+c)*Q(.5)}function Ce(a,b){a=a|0;b=b|0;var c=Q(0),d=Q(0);c=N[b+12>>2];d=N[b+4>>2];N[a>>2]=Q(N[b+8>>2]-N[b>>2])*Q(.5);N[a+4>>2]=Q(c-d)*Q(.5)}function fd(a){Eb(J[a>>2],J[a+20>>2]);Eb(J[a>>2],J[a+24>>2]);Eb(J[a>>2],J[a+16>>2]);Eb(J[a>>2],J[a+12>>2]);Eb(J[a>>2],J[a+8>>2])}function _b(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){e=J[e+J[b>>2]>>2]}Na[e|0](b,c,d)}function He(a){a=a|0;var b=0;b=Xa(16);J[b+4>>2]=0;J[b>>2]=12240;H[b+8|0]=0;J[b+12>>2]=J[a>>2];J[a>>2]=0;J[b>>2]=20452;return b|0}function yb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){d=J[d+J[b>>2]>>2]}return Na[d|0](b,c)|0}function mf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(gb(a,J[b+8>>2],0)){qc(b,c,d);return}a=J[a+8>>2];Na[J[J[a>>2]+28>>2]](a,b,c,d)}function ek(a){a=a|0;var b=Q(0),c=Q(0);b=N[a+28>>2];c=Q(b*b);b=N[a+32>>2];return Q(Q(Q(N[a+116>>2]*Q(c+Q(b*b)))+N[a+124>>2]))}function ub(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){c=J[c+J[b>>2]>>2]}return Q(Q(Na[c|0](b)))}function Qh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;b=eb(e,148);f=Gb(b,a,0,c,0),g=12292,J[f>>2]=g;return b|0}function Pk(a,b,c){a=a|0;b=b|0;c=c|0;a=J[a>>2]+b|0;b=L[c>>1]|L[c+2>>1]<<16;I[a>>1]=b;I[a+2>>1]=b>>>16;I[a+4>>1]=L[c+4>>1]}function Oh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;e=eb(e,148);f=Gb(e,a,b,c,d),g=12344,J[f>>2]=g;return e|0}function Og(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;b=eb(e,148);f=Gb(b,a,0,c,0),g=13204,J[f>>2]=g;return b|0}function Mh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;e=eb(e,148);f=Gb(e,a,b,c,d),g=12404,J[f>>2]=g;return e|0}function Lg(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;b=eb(e,148);f=Gb(b,a,0,c,0),g=13264,J[f>>2]=g;return b|0}function Dh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;b=eb(e,148);f=Gb(b,a,0,c,0),g=12624,J[f>>2]=g;return b|0}function Bh(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;b=eb(e,148);f=Gb(b,a,0,c,0),g=12684,J[f>>2]=g;return b|0}function $b(a,b){a=a|0;b=b|0;var c=0;c=La-16|0;La=c;J[c+12>>2]=b;a=Na[a|0](c+12|0)|0;ga(J[c+12>>2]);La=c+16|0;return a|0}function zb(a,b,c){a=a|0;b=b|0;c=Q(c);var d=0;d=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){d=J[d+J[b>>2]>>2]}Na[d|0](b,c)}function Hk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=J[a+12>>2];return Na[J[J[e>>2]+20>>2]](e,b,c,J[a+8>>2]+12|0,d)|0}function db(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){d=J[d+J[b>>2]>>2]}Na[d|0](b,c)}function cb(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){c=J[c+J[b>>2]>>2]}return Na[c|0](b)|0}function Gh(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0);d=N[b+116>>2];c=Q(N[b+100>>2]*c);N[a+4>>2]=c*N[b+120>>2];N[a>>2]=c*d}function zk(a,b){a=a|0;b=b|0;if(!(J[a+28>>2]>(b|0)&(b|0)>=0)){Aa(1491,3460,346,5741);B()}return J[a+24>>2]+P(b,28)|0}function _f(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0);d=N[b+104>>2];c=Q(N[b+92>>2]*c);N[a+4>>2]=c*N[b+108>>2];N[a>>2]=c*d}function pb(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=Xa(8);b=b+c|0;c=J[b+4>>2];J[a>>2]=J[b>>2];J[a+4>>2]=c;return a|0}function Sh(a,b){a=a|0;b=b|0;var c=0;c=L[a+4>>1];if(!(!(c&16)^b)){J[a+72>>2]=0;I[a+4>>1]=c&65519|(b?16:0);Tb(a)}}function Ve(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a,e=na((H[b+11|0]<0?J[b>>2]:b)|0,19516,J[c>>2])|0,J[d>>2]=e}function Re(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a,e=na((H[b+11|0]<0?J[b>>2]:b)|0,19752,J[c>>2])|0,J[d>>2]=e}function Le(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a,e=na((H[b+11|0]<0?J[b>>2]:b)|0,19984,J[c>>2])|0,J[d>>2]=e}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;d=a,e=na((H[b+11|0]<0?J[b>>2]:b)|0,20384,J[c>>2])|0,J[d>>2]=e}function Ib(a,b,c){if(c){if((c|0)>=641){ab(b);return}a=(K[c+24020|0]<<2)+a|0;J[b>>2]=J[a+12>>2];J[a+12>>2]=b}}function tb(a,b){a=a|0;b=b|0;var c=0;c=J[a>>2];a=J[a+4>>2];b=(a>>1)+b|0;if(a&1){c=J[c+J[b>>2]>>2]}Na[c|0](b)}function nk(a,b){a=a|0;b=Q(b);if(J[a>>2]){if(Q(b*b)>Q(0)){J[a+144>>2]=0;I[a+4>>1]=L[a+4>>1]|2}N[a+72>>2]=b}}function Xk(){var a=0;a=Xa(20);J[a+4>>2]=0;J[a+8>>2]=0;J[a>>2]=11972;J[a+12>>2]=0;J[a+16>>2]=0;return a|0}function Xi(a,b,c){a=a|0;b=b|0;c=c|0;a=J[a>>2]+(b<<3)|0;b=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=b;return 1}function yf(a){a=a|0;var b=0,c=0;a=J[a+4>>2];b=ad(a)+1|0;c=fb(b);if(c){a=rb(c,a,b)}else{a=0}return a|0}function nj(a){a=a|0;var b=Q(0),c=Q(0);b=N[J[a+48>>2]+20>>2];c=N[J[a+52>>2]+20>>2];N[a+140>>2]=b>c?b:c}function bf(){var a=0;a=Xa(20);J[a>>2]=0;J[a+4>>2]=0;J[a+16>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function We(a){a=a|0;var b=0;b=Xa(12);H[b+4|0]=0;J[b+8>>2]=J[a>>2];J[a>>2]=0;J[b>>2]=19584;return b|0}function Se(a){a=a|0;var b=0;b=Xa(12);H[b+4|0]=0;J[b+8>>2]=J[a>>2];J[a>>2]=0;J[b>>2]=19820;return b|0}function Jj(){var a=0;a=Xa(20);J[a>>2]=0;J[a+4>>2]=0;H[a+16|0]=0;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function Ik(a,b){a=a|0;b=b|0;var c=0;c=J[a+12>>2];return Na[J[J[c>>2]+16>>2]](c,J[a+8>>2]+12|0,b)|0}function Uf(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0);d=N[b+108>>2];N[a>>2]=N[b+104>>2]*c;N[a+4>>2]=d*c}function Be(a){a=a|0;var b=Q(0);b=Q(Q(N[a+8>>2]-N[a>>2])+Q(N[a+12>>2]-N[a+4>>2]));return Q(Q(b+b))}function Sg(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0);d=N[b+100>>2];N[a>>2]=N[b+96>>2]*c;N[a+4>>2]=d*c}function hh(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0);d=N[b+84>>2];N[a>>2]=N[b+80>>2]*c;N[a+4>>2]=d*c}function Cd(a,b,c){a=a|0;b=b|0;c=Q(c);var d=Q(0);d=N[b+88>>2];N[a>>2]=N[b+84>>2]*c;N[a+4>>2]=d*c}function xf(){var a=0;a=J[6224];if(a){while(1){Na[J[a>>2]]();a=J[a+4>>2];if(a){continue}break}}}function df(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;if(gb(a,J[b+8>>2],f)){pc(b,c,d,e)}}function Ch(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ld(b,J[J[a+48>>2]+12>>2],c,J[J[a+52>>2]+12>>2],d)}function Ah(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Kd(b,J[J[a+48>>2]+12>>2],c,J[J[a+52>>2]+12>>2],d)}function jh(a,b){a=a|0;b=b|0;var c=0;b=J[b+48>>2];c=J[b+16>>2];J[a>>2]=J[b+12>>2];J[a+4>>2]=c}function ih(a,b){a=a|0;b=b|0;var c=0;b=J[b+52>>2];c=J[b+16>>2];J[a>>2]=J[b+12>>2];J[a+4>>2]=c}function qb(a,b,c){a=a|0;b=b|0;c=c|0;a=J[a>>2]+b|0;b=J[c+4>>2];J[a>>2]=J[c>>2];J[a+4>>2]=b}function Ya(a,b){var c=0;c=La-16|0;La=c;if(J[6166]){J[c+12>>2]=b;Vc(J[6166],a,b)}La=c+16|0}function Qg(a,b){a=a|0;b=b|0;N[a+76>>2]=N[a+76>>2]-N[b>>2];N[a+80>>2]=N[a+80>>2]-N[b+4>>2]}function mg(a){a=a|0;return Q(Q(Q(N[J[a+52>>2]+56>>2]-N[J[a+48>>2]+56>>2])-N[a+120>>2]))}function al(a,b){a=a|0;b=b|0;var c=0;c=J[b+4>>2];J[a+102964>>2]=J[b>>2];J[a+102968>>2]=c}function Mc(){var a=0;a=Xa(16);J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;J[a+12>>2]=0;return a|0}function $k(a,b){a=a|0;b=b|0;var c=0;c=J[b+102968>>2];J[a>>2]=J[b+102964>>2];J[a+4>>2]=c}function Fk(a,b){a=a|0;b=b|0;var c=0;c=J[a+12>>2];Na[J[J[c>>2]+28>>2]](c,b,N[a>>2])}function Ug(a,b){a=a|0;b=b|0;var c=0;c=J[b+80>>2];J[a>>2]=J[b+76>>2];J[a+4>>2]=c}function cf(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;return Na[a|0](b,c,d,e)|0}function _e(){var a=0;a=Xa(6);I[a+4>>1]=0;I[a>>1]=1;I[a+2>>1]=65535;return a|0}function Gj(a){a=a|0;N[a+136>>2]=Y(Q(N[J[a+48>>2]+16>>2]*N[J[a+52>>2]+16>>2]))}function nf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(gb(a,J[b+8>>2],0)){qc(b,c,d)}}function nl(a){var b=0;b=a&31;a=0-a&31;return(-1>>>b&-2)<<b|(-1<<a&-2)>>>a}
|
|
function de(a){a=a|0;var b=0;if(a){b=J[a>>2];if(b){J[a+4>>2]=b;ab(b)}ab(a)}}function ce(){var a=0;a=Xa(12);J[a+8>>2]=0;J[a>>2]=0;J[a+4>>2]=0;return a|0}function af(){var a=0;a=Xa(12);J[a>>2]=0;J[a+4>>2]=0;J[a+8>>2]=0;return a|0}function Pg(a){a=a|0;a=La-16|0;La=a;J[a+12>>2]=0;Vc(23760,9372,0);La=a+16|0}function cj(a,b,c){a=a|0;b=b|0;c=c|0;J[J[a>>2]+(b<<2)>>2]=J[c>>2];return 1}function lg(a){a=a|0;return Q(Q(N[J[a+52>>2]+72>>2]-N[J[a+48>>2]+72>>2]))}function Wi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Na[J[a>>2]](b,c,d)|0}function sh(a,b){a=a|0;b=Q(b);return Q(Q(Q(N[a+156>>2]*N[a+256>>2])*b))}function ng(a,b){a=a|0;b=Q(b);return Q(Q(Q(N[a+96>>2]+N[a+100>>2])*b))}function kd(a){Eb(J[a+32>>2],J[a+40>>2]);Eb(J[a+32>>2],J[a+36>>2])}function Hb(a,b){a=a|0;b=b|0;Na[J[J[a>>2]+4>>2]](a)|0;Ib(b,a,148)}function ye(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Na[J[a>>2]](b,c,d)}function ii(a,b,c){a=a|0;b=b|0;c=c|0;return Q(Q(Na[a|0](b,c)))}function Vj(a,b){a=a|0;b=b|0;I[a+4>>1]=L[a+4>>1]&65527|(b?8:0)}function wf(a,b,c,d){a=a|0;b=b|0;c=Q(c);d=Q(d);Na[a|0](b,c,d)}function zg(a,b){a=a|0;b=b|0;return Q(N[((b<<3)+a|0)+12>>2])}function qg(a,b){a=a|0;b=b|0;return Q(N[((b<<2)+a|0)+24>>2])}function jl(a,b){a=a|0;b=b|0;J[a+4>>2]=J[a+4>>2]&-5|(b?4:0)}function ic(a,b){if(b){ic(a,J[b>>2]);ic(a,J[b+4>>2]);ab(b)}}function Xf(a,b){a=a|0;b=b|0;return Q(N[((b<<2)+a|0)+8>>2])}function Eg(a,b){a=a|0;b=b|0;return Q(N[((b<<3)+a|0)+8>>2])}function pf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ma=0;return 0}function hi(a,b,c){a=a|0;b=b|0;c=c|0;return Na[a|0](b,c)|0}function od(a,b){a=a|0;b=Q(b);return Q(Q(N[a+112>>2]*b))}function md(a,b){a=a|0;b=Q(b);return Q(Q(N[a+104>>2]*b))}function Yk(a,b){a=a|0;b=b|0;return Q(Q(Na[J[a>>2]](b)))}function Fg(a,b){a=a|0;b=Q(b);return Q(Q(N[a+108>>2]*b))}function mb(a,b,c){a=a|0;b=b|0;c=Q(c);N[J[a>>2]+b>>2]=c}function gh(a,b){a=a|0;b=Q(b);return Q(Q(N[a+88>>2]*b))}function Zh(a,b){a=a|0;b=b|0;J[a+4>>2]=J[a+4>>2]&(b^-1)}function Rc(a,b,c){a=a|0;b=b|0;c=c|0;return gb(a,b,0)|0}function Bd(a,b){a=a|0;b=Q(b);return Q(Q(N[a+92>>2]*b))}function lb(a,b){a=a|0;b=b|0;return Q(N[J[a>>2]+b>>2])}function Zk(a,b,c){a=a|0;b=b|0;c=Q(c);Na[J[a>>2]](b,c)}function Lc(a,b,c){a=a|0;b=b|0;c=c|0;I[J[a>>2]+b>>1]=c}function Ic(a,b,c){a=a|0;b=b|0;c=c|0;J[J[a>>2]+b>>2]=c}function yd(a,b){a=a|0;b=b|0;return Q(N[(b<<2)+a>>2])}function lc(a,b,c){a=a|0;b=b|0;c=c|0;Na[J[a>>2]](b,c)}function Ob(a,b,c){a=a|0;b=b|0;c=c|0;H[J[a>>2]+b|0]=c}function yk(a,b){a=a|0;b=b|0;return Q(Q(Na[a|0](b)))}function Fc(a,b){a=a|0;b=b|0;return Na[J[a>>2]](b)|0}function pj(a){a=a|0;if(a){Na[J[J[a>>2]+32>>2]](a)}}function kl(a){if(a){return 31-S(a-1^a)|0}return 32}function Ze(a,b){a=a|0;b=b|0;return L[J[a>>2]+b>>1]}function Ye(a,b){a=a|0;b=b|0;return I[J[a>>2]+b>>1]}function Hc(a,b){a=a|0;b=b|0;return J[J[a>>2]+b>>2]}function Qk(a,b,c){a=a|0;b=b|0;c=Q(c);Na[a|0](b,c)}function Nb(a,b){a=a|0;b=b|0;return K[J[a>>2]+b|0]}function Cb(a){a=a|0;if(a){Na[J[J[a>>2]+4>>2]](a)}}function $h(a,b){a=a|0;b=b|0;J[a+4>>2]=J[a+4>>2]|b}function Rg(a,b){a=a|0;b=Q(b);return Q(Q(b*Q(0)))}function Kc(a,b,c){a=a|0;b=b|0;c=c|0;Na[a|0](b,c)}function ej(a){a=a|0;return J[a+4>>2]-J[a>>2]>>2}function Zi(a){a=a|0;return J[a+4>>2]-J[a>>2]>>3}function Jc(a,b){a=a|0;b=b|0;return Na[a|0](b)|0}function _h(a,b){a=a|0;b=b|0;return P(b,20)+a|0}function Nc(a,b,c,d){Ca(a|0,b|0,8,0,c|0,-1,d|0)}function Qj(a){a=a|0;return(K[a+4|0]&32)>>>5|0}function Oj(a){a=a|0;return(K[a+4|0]&16)>>>4|0}function Mk(a){a=a|0;return J[J[a+12>>2]+4>>2]}function xe(a){a=a|0;return(K[a+4|0]&2)>>>1|0}function oi(a,b,c){a=a|0;b=b|0;c=c|0;return 0}function Uj(a){a=a|0;return(K[a+4|0]&8)>>>3|0}function Sj(a){a=a|0;return(K[a+4|0]&4)>>>2|0}function Kf(a,b){a=a|0;b=b|0;J[a+102940>>2]=b}function Jf(a,b){a=a|0;b=b|0;J[a+102980>>2]=b}function yc(a,b){a=a|0;b=Q(b);return Q(Q(0))}function rf(a){a=a|0;return qa(J[a+60>>2])|0}function we(a,b){a=a|0;b=Q(b);N[a+144>>2]=b}function te(a,b){a=a|0;b=Q(b);N[a+136>>2]=b}function oe(a,b){a=a|0;b=Q(b);N[a+104>>2]=b}function je(a,b){a=a|0;b=Q(b);N[a+140>>2]=b}function hb(a){a=a|0;return J[J[a>>2]-4>>2]}function bh(a,b){a=a|0;b=Q(b);N[a+100>>2]=b}function ac(a,b){a=a|0;b=b|0;Na[J[a>>2]](b)}function Wj(a,b){a=a|0;b=Q(b);N[a+132>>2]=b}function Of(a,b){a=a|0;b=Q(b);N[a+148>>2]=b}function uj(a){a=a|0;return Q(N[a+120>>2])}function ue(a){a=a|0;return Q(N[a+144>>2])}function ud(a){a=a|0;return Q(N[a+124>>2])}function tj(a){a=a|0;return Q(N[a+112>>2])}function td(a){a=a|0;return Q(N[a+128>>2])}function sj(a){a=a|0;return Q(N[a+108>>2])}function ne(a){a=a|0;return Q(N[a+104>>2])}function me(a,b){a=a|0;b=Q(b);N[a+68>>2]=b}function ke(a,b){a=a|0;b=Q(b);N[a+72>>2]=b}function jc(a){a=a|0;return Q(N[a+136>>2])}function he(a){a=a|0;return Q(N[a+100>>2])}function ge(a){a=a|0;return Q(N[a+140>>2])}function fk(a){a=a|0;return Q(N[a+116>>2])}function fh(a,b){a=a|0;b=Q(b);N[a+92>>2]=b}function fe(a,b){a=a|0;b=Q(b);N[a+84>>2]=b}function ch(a,b){a=a|0;b=Q(b);N[a+96>>2]=b}function Xg(a,b){a=a|0;b=Q(b);N[a+88>>2]=b}function Mf(a){a=a|0;return Q(N[a+148>>2])}function Dc(a){a=a|0;return Q(N[a+132>>2])}function Ck(a,b){a=a|0;b=Q(b);N[a+16>>2]=b}function Ak(a,b){a=a|0;b=Q(b);N[a+20>>2]=b}function zd(a){a=a|0;return Q(N[a+84>>2])}function xd(a){a=a|0;return Q(N[a+88>>2])}function rk(a){a=a|0;return Q(N[a+56>>2])}function le(a){a=a|0;return Q(N[a+68>>2])}function eh(a){a=a|0;return Q(N[a+12>>2])}function ee(a){a=a|0;return Q(N[a+96>>2])}function dh(a){a=a|0;return Q(N[a+92>>2])}function bl(a){a=a|0;return K[a+102972|0]}function _k(a,b){a=a|0;b=Q(b);N[a+8>>2]=b}function _g(a){a=a|0;return Q(N[a+76>>2])}function Yh(a){a=a|0;return Q(N[a+48>>2])}function Rh(a){a=a|0;return Q(N[a+52>>2])}function Kh(a){a=a|0;return Q(N[a+40>>2])}function Hj(a,b){a=a|0;b=b|0;J[a+12>>2]=b}function Fh(a){a=a|0;return Q(N[a+44>>2])}function Ec(a){a=a|0;return Q(N[a+72>>2])}function Dk(a){a=a|0;return Q(N[a+16>>2])}function Bk(a){a=a|0;return Q(N[a+20>>2])}function ai(a,b){a=a|0;b=b|0;J[a+4>>2]=b}function Ij(a,b){a=a|0;b=b|0;J[a+8>>2]=b}function Dd(a){a=a|0;return Q(N[a+4>>2])}function Ad(a){a=a|0;return Q(N[a+8>>2])}function nb(a){a=a|0;return Na[a|0]()|0}function Pj(a,b){a=a|0;b=b|0;Na[a|0](b)}function Nj(a){a=a|0;return J[a+100>>2]}function Mj(a){a=a|0;return J[a+108>>2]}function yi(a){a=a|0;return J[a+56>>2]}function vc(a){a=a|0;return Q(N[a>>2])}function sd(a){a=a|0;return K[a+141|0]}function rc(a){a=a|0;return J[a+12>>2]}function qi(a){a=a|0;return J[a+60>>2]}function kg(a){a=a|0;return K[a+104|0]}function gg(a){a=a|0;return K[a+116|0]}function be(a){a=a|0;return J[a+48>>2]}function Rk(a,b){a=a|0;b=b|0;J[a>>2]=b}function Nf(a){a=a|0;return J[a+16>>2]}function Lj(a){a=a|0;return J[a+88>>2]}function Cg(a){a=a|0;return K[a+140|0]}function $d(a){a=a|0;return J[a+52>>2]}function uc(a,b){a=a|0;b=b|0;return 1}function sc(a){a=a|0;return J[a+8>>2]}function Pb(a){a=a|0;return J[a+4>>2]}function Lk(a){a=a|0;return K[a+38|0]}function Fj(a){a=a|0;return K[a+61|0]}function _d(a){a=a|0;return a- -64|0}function Zd(a,b,c){a=a|0;b=b|0;c=c|0}function tc(a){a=a|0;return J[a>>2]}function ve(a){a=a|0;return a+12|0}function qk(a){a=a|0;return a+44|0}function qe(a){a=a|0;return a+80|0}function pk(a){a=a|0;return a+28|0}function pe(a){a=a|0;return a+88|0}function ie(a){a=a|0;return a+84|0}function Wb(a){a=a|0;return a+68|0}function Vb(a){a=a|0;return a+76|0}function Kk(a){a=a|0;return a+32|0}function yj(a){a=a|0;return 22976}function wk(a){a=a|0;return 20900}function wj(a){a=a|0;return 23152}function uk(a){a=a|0;return 20876}function rj(a){a=a|0;return 23328}function oj(a){a=a|0;return 23468}function lj(a){a=a|0;return 23584}function jj(a){a=a|0;return 19128}function ib(a){a=a|0;if(a){ab(a)}}function fl(a){a=a|0;return 20784}function aj(a){a=a|0;return 19248}function Tk(a){a=a|0;return 21880}function Nk(a){a=a|0;return 21944}function Kj(a){a=a|0;return 20948}function Fe(a){a=a|0;return 20632}function Ej(a){a=a|0;return 22604}function Cj(a){a=a|0;return 22720}function Aj(a){a=a|0;return 22848}function nc(a){a=a|0;H[a+4|0]=1}function mh(a){a=a|0;Ya(9325,0)}function Ie(a){a=a|0;H[a+8|0]=1}function $a(a){a=a|0;return a|0}function qf(a){a=a|0;return 0}function Oc(){return Xa(16)|0}function Bc(a){a=a|0;return 1}function Wc(){return Xa(8)|0}function Cc(a,b){a=a|0;b=b|0}function vf(){return 24912}function bb(a){a=a|0;ab(a)}function Mb(a){a=a|0;B()}function Ub(){ma();B()}function ob(a){a=a|0}
|
|
// EMSCRIPTEN_END_FUNCS
|
|
e=K;p(q);var Na=c([null,ii,yd,wf,$e,Xe,Qe,Kc,jl,Jc,xe,Qk,we,yk,ue,te,jc,Pj,Gj,je,ge,nj,Jc,be,$d,Kc,Qi,_d,yi,qi,hi,_h,Yh,Rh,Kh,Fh,vc,Dd,Ad,eh,nb,Ng,Eg,zg,qg,vc,Dd,ib,yd,Xf,Jc,Nf,tc,Pb,sc,rc,ib,Wc,mb,lb,ib,Wc,mb,lb,ib,Oc,qb,pb,qb,pb,ib,Oc,mb,lb,ib,bf,qb,pb,mb,lb,ib,af,qb,pb,mb,lb,ib,Mc,mb,lb,qb,pb,ib,_e,Lc,Ze,Lc,Ye,Cb,hb,yb,Cb,$a,$a,hb,nc,ac,We,$b,Ve,Ue,Cb,hb,Te,Cb,$a,$a,hb,nc,ac,Se,$b,Re,Cb,hb,db,_b,Pe,db,Oe,Ne,yb,Cb,$a,$a,hb,nc,ac,Me,$b,Le,Cb,hb,ai,db,Pb,cb,$h,Zh,Bb,Ke,Je,Bb,db,Cb,$a,$a,hb,Ie,ac,He,$b,Ge,ib,Fe,Mc,nb,Ee,cb,De,mc,Ce,Be,ub,Ae,lc,il,ye,hl,yb,ri,Zb,qb,pb,gl,fl,el,dl,Kf,db,Jf,db,Bf,tb,If,yb,Hf,db,Gf,yb,dd,db,Ef,cl,Df,_b,Cf,Bb,Ff,db,bl,cb,al,db,$k,mc,Af,ob,hb,Ic,Hc,mb,lb,Pb,cb,cb,Zb,kc,Bb,Yb,_k,Zk,Ad,Yk,ob,$a,$a,hb,Xk,nb,qb,pb,yb,cb,Zb,kc,Bb,Yb,ob,$a,$a,hb,yb,cb,Zb,kc,Bb,Yb,ob,$a,$a,hb,Wk,nb,yb,cb,Vk,ye,Zb,kc,Bb,Yb,bi,cb,ji,Gc,gi,Uk,ob,Tk,Sk,nb,Rk,lc,tc,Fc,mb,lb,Ob,Nb,Pk,Ok,ib,Nk,Mk,cb,rc,cb,xh,db,Lk,cb,zh,db,Kk,Jk,yh,tb,sc,cb,Pb,cb,Ik,yb,Hk,Gk,Fk,db,Ek,zb,vc,ub,Dk,Ck,Bk,Ak,zk,xk,Gd,db,ob,wk,vk,nb,Ic,Hc,qb,pb,mb,lb,Ob,Nb,ob,uk,Od,yb,Wh,tk,Vh,db,Uh,Yb,ve,sk,ve,Ab,rk,ub,qk,pk,ok,db,_d,nk,zb,Ec,mk,Bb,lk,_b,kk,jk,ik,hk,gk,fk,ek,dk,db,ck,lc,Tb,tb,bk,ak,$j,_j,Zj,Yj,Xj,Dc,Wj,jc,te,ge,je,Xh,db,tc,cb,Vj,db,Uj,cb,Tj,Sj,Rj,xe,Th,Qj,Sh,Oj,Nj,cb,Mj,Fc,Lj,cb,Nd,ib,Kj,Jj,nb,Ic,Hc,Ij,lc,sc,Fc,Hj,rc,Ob,Nb,ob,hb,Pb,cb,be,cb,$d,mc,se,Xb,Fj,cb,tb,ib,$a,$a,Ej,Dj,nb,qb,pb,mb,lb,ob,$a,$a,hb,qe,Ab,pe,oe,zb,ne,ub,me,le,ke,Ec,tb,ib,$a,$a,Cj,Bj,nb,qb,pb,mb,lb,ob,$a,$a,hb,ah,db,Wb,Ab,$g,zb,_g,ub,fh,dh,ch,ee,bh,he,tb,ib,$a,$a,Aj,zj,nb,qb,pb,mb,lb,ob,$a,$a,hb,Yg,db,Vb,Ab,oe,zb,ne,ub,fe,zd,Xg,xd,tb,ib,$a,$a,yj,xj,nb,qb,pb,mb,lb,Ob,Nb,ob,$a,$a,hb,Wb,Ab,Vb,ie,he,ub,vd,Dg,Cg,cb,Bg,db,ud,td,Ag,Gc,sd,rd,qd,zb,jc,pd,Dc,od,Xb,tb,ib,$a,$a,wj,vj,nb,qb,pb,mb,lb,Ob,Nb,ob,$a,$a,hb,Wb,Ab,Vb,uj,ub,mg,lg,gg,cb,fg,db,ud,td,eg,Gc,kg,jg,ig,zb,tj,hg,sj,Bd,Xb,tb,ib,$a,$a,rj,qj,nb,qb,pb,mb,lb,pj,$a,$a,hb,Wb,Ab,Vb,se,Xb,fe,zb,zd,ub,xd,tb,ib,$a,$a,oj,mj,nb,qb,pb,mb,lb,ob,$a,$a,hb,qe,Ab,pe,ee,ub,me,zb,le,ke,Ec,tb,ib,$a,$a,lj,kj,nb,qb,pb,Ob,Nb,mb,lb,ob,$a,$a,hb,Wb,Ab,Vb,ie,vd,ub,sd,cb,rd,db,qd,zb,jc,pd,Dc,md,Xb,we,ue,Of,Mf,tb,de,jj,ce,nb,ij,hj,gj,fj,ej,cb,dj,ae,cj,bj,de,aj,ce,nb,$i,db,_i,_b,Zi,cb,Yi,ae,Xi,Wi,re,Vi,Ui,Ti,Mb,Ub,Si,Ri,Pi,Mb,Oi,Ni,Mi,Li,Ki,Ji,Ii,Hi,Cc,Cc,Zd,Zd,Gi,Fi,Ei,Di,Ci,Bi,Ai,zi,xi,Mb,$a,bb,wi,Bc,vi,ui,ti,si,bb,pi,Bc,oi,ni,mi,li,bb,ki,Bc,fi,ei,di,ci,$a,Mb,Ph,$a,bb,Nh,bb,Lh,bb,Og,Hb,Qh,Dh,Oh,Hb,Hb,Lg,Hb,Hb,Hb,Bh,Hb,Mh,Mb,$a,bb,Jd,Id,Gh,yc,Eh,Cc,nh,$a,bb,Jh,Ih,Hh,Ch,bb,Ah,bb,Fd,Ed,th,sh,rh,bb,wh,vh,uh,Rb,Qb,Cd,Bd,oh,bb,qh,ph,uc,mh,Mb,jh,ih,hh,gh,Zg,bb,lh,kh,uc,Ug,Tg,Sg,Rg,Pg,Qg,bb,Wg,Vg,uc,Mg,bb,Kg,bb,Rb,Qb,Gg,Fg,yg,nd,bb,Jg,Ig,Hg,Fd,Ed,ug,yc,tg,sg,bb,xg,wg,vg,Rb,Qb,Cd,ng,dg,cg,bb,rg,pg,og,Rb,Qb,_f,yc,Zf,bb,bg,ag,$f,Jd,Id,Uf,od,Tf,bb,Yf,Wf,Vf,Rb,Qb,Pf,md,Lf,nd,bb,Sf,Rf,Qf,$a,bb,zf,cd,uf,tf,sf,rf,Uc,Tc,qf,pf,$a,bb,ob,ob,Rc,bb,Rc,bb,of,df,gf,nf,bb,ef,hf,mf,bb,ff,jf,lf,bb,kf]);function Oa(){return G.byteLength/65536|0}function Ta(Ua){Ua=Ua|0;var Pa=Oa()|0;var Qa=Pa+Ua|0;if(Pa<Qa&&Qa<65536){var Ra=new ArrayBuffer(P(Qa,65536));var Sa=new Int8Array(Ra);Sa.set(H);H=new Int8Array(Ra);I=new Int16Array(Ra);J=new Int32Array(Ra);K=new Uint8Array(Ra);L=new Uint16Array(Ra);M=new Uint32Array(Ra);N=new Float32Array(Ra);O=new Float64Array(Ra);G=Ra;F.buffer=G;e=K}return Pa}return{"P":ze,"Q":Na,"R":fb,"S":ab,"T":yf,"U":xf,"V":vf,"W":cf}}return Va(Wa)}
|
|
// EMSCRIPTEN_END_ASM
|
|
|
|
|
|
)(info)},instantiate:function(binary,info){return{then:function(ok){var module=new WebAssembly.Module(binary);ok({"instance":new WebAssembly.Instance(module,info)})}}},RuntimeError:Error};wasmBinary=[];if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateMemoryViews(){var b=wasmMemory.buffer;Module["HEAP8"]=HEAP8=new Int8Array(b);Module["HEAP16"]=HEAP16=new Int16Array(b);Module["HEAP32"]=HEAP32=new Int32Array(b);Module["HEAPU8"]=HEAPU8=new Uint8Array(b);Module["HEAPU16"]=HEAPU16=new Uint16Array(b);Module["HEAPU32"]=HEAPU32=new Uint32Array(b);Module["HEAPF32"]=HEAPF32=new Float32Array(b);Module["HEAPF64"]=HEAPF64=new Float64Array(b)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||16777216;assert(INITIAL_MEMORY>=65536,"INITIAL_MEMORY should be larger than STACK_SIZE, was "+INITIAL_MEMORY+"! (STACK_SIZE="+65536+")");if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":2147483648/65536})}updateMemoryViews();INITIAL_MEMORY=wasmMemory.buffer.byteLength;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}var wasmBinaryFile;wasmBinaryFile="<<< WASM_BINARY_FILE >>>";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}var binary=tryParseAsDataURI(file);if(binary){return binary}if(readBinary){return readBinary(file)}throw"both async and sync fetching of the wasm failed"}catch(err){abort(err)}}function getBinaryPromise(binaryFile){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{if(!response["ok"]){throw"failed to load wasm binary file at '"+binaryFile+"'"}return response["arrayBuffer"]()}).catch(()=>getBinary(binaryFile))}}return Promise.resolve().then(()=>getBinary(binaryFile))}function instantiateArrayBuffer(binaryFile,imports,receiver){return getBinaryPromise(binaryFile).then(binary=>{return WebAssembly.instantiate(binary,imports)}).then(instance=>{return instance}).then(receiver,reason=>{err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(binary,binaryFile,imports,callback){if(!binary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(binaryFile)&&typeof fetch=="function"){return fetch(binaryFile,{credentials:"same-origin"}).then(response=>{var result=WebAssembly.instantiateStreaming(response,imports);return result.then(callback,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(binaryFile,imports,callback)})})}else{return instantiateArrayBuffer(binaryFile,imports,callback)}}function createWasm(){var info={"a":wasmImports};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["Q"];addOnInit(Module["asm"]["P"]);removeRunDependency("wasm-instantiate");return exports}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}if(Module["instantiateWasm"]){try{return Module["instantiateWasm"](info,receiveInstance)}catch(e){err("Module.instantiateWasm callback failed with error: "+e);readyPromiseReject(e)}}instantiateAsync(wasmBinary,wasmBinaryFile,info,receiveInstantiationResult).catch(readyPromiseReject);return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str="";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function ___assert_fail(condition,filename,line,func){abort(`Assertion failed: ${UTF8ToString(condition)}, at: `+[filename?UTF8ToString(filename):"unknown filename",line,func?UTF8ToString(func):"unknown function"])}function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function initRandomFill(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){return view=>crypto.getRandomValues(view)}else abort("initRandomDevice")}function randomFill(view){return(randomFill=initRandomFill())(view)}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start<arr.length;start++){if(arr[start]!=="")break}var end=arr.length-1;for(;end>=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i<length;i++){if(fromParts[i]!==toParts[i]){samePartsLength=i;break}}var outputParts=[];for(var i=samePartsLength;i<fromParts.length;i++){outputParts.push("..")}outputParts=outputParts.concat(toParts.slice(samePartsLength));return outputParts.join("/")}};function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}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}var TTY={ttys:[],init:function(){},shutdown:function(){},register:function(dev,ops){TTY.ttys[dev]={input:[],output:[],ops:ops};FS.registerDevice(dev,TTY.stream_ops)},stream_ops:{open:function(stream){var tty=TTY.ttys[stream.node.rdev];if(!tty){throw new FS.ErrnoError(43)}stream.tty=tty;stream.seekable=false},close:function(stream){stream.tty.ops.fsync(stream.tty)},fsync:function(stream){stream.tty.ops.fsync(stream.tty)},read:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.get_char){throw new FS.ErrnoError(60)}var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=stream.tty.ops.get_char(stream.tty)}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:function(stream,buffer,offset,length,pos){if(!stream.tty||!stream.tty.ops.put_char){throw new FS.ErrnoError(60)}try{for(var i=0;i<length;i++){stream.tty.ops.put_char(stream.tty,buffer[offset+i])}}catch(e){throw new FS.ErrnoError(29)}if(length){stream.node.timestamp=Date.now()}return i}},default_tty_ops:{get_char:function(tty){if(!tty.input.length){var result=null;if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},fsync:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity<CAPACITY_DOUBLING_MAX?2:1.125)>>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i<size;i++)buffer[offset+i]=contents[position+i]}return size},write:function(stream,buffer,offset,length,position,canOwn){if(buffer.buffer===HEAP8.buffer){canOwn=false}if(!length)return 0;var node=stream.node;node.timestamp=Date.now();if(buffer.subarray&&(!node.contents||node.contents.subarray)){if(canOwn){node.contents=buffer.subarray(offset,offset+length);node.usedBytes=length;return length}else if(node.usedBytes===0&&position===0){node.contents=buffer.slice(offset,offset+length);node.usedBytes=length;return length}else if(position+length<=node.usedBytes){node.contents.set(buffer.subarray(offset,offset+length),position);return length}}MEMFS.expandFileStorage(node,position+length);if(node.contents.subarray&&buffer.subarray){node.contents.set(buffer.subarray(offset,offset+length),position)}else{for(var i=0;i<length;i++){node.contents[position+i]=buffer[offset+i]}}node.usedBytes=Math.max(node.usedBytes,position+length);return length},llseek:function(stream,offset,whence){var position=offset;if(whence===1){position+=stream.position}else if(whence===2){if(FS.isFile(stream.node.mode)){position+=stream.node.usedBytes}}if(position<0){throw new FS.ErrnoError(28)}return position},allocate:function(stream,offset,length){MEMFS.expandFileStorage(stream.node,offset+length);stream.node.usedBytes=Math.max(stream.node.usedBytes,offset+length)},mmap:function(stream,length,position,prot,flags){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}var ptr;var allocated;var contents=stream.node.contents;if(!(flags&2)&&contents.buffer===HEAP8.buffer){allocated=false;ptr=contents.byteOffset}else{if(position>0||position+length<contents.length){if(contents.subarray){contents=contents.subarray(position,position+length)}else{contents=Array.prototype.slice.call(contents,position,position+length)}}allocated=true;ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}HEAP8.set(contents,ptr)}return{ptr:ptr,allocated:allocated}},msync:function(stream,buffer,offset,length,mmapFlags){MEMFS.stream_ops.write(stream,buffer,0,length,offset,false);return 0}}};function asyncLoad(url,onload,onerror,noRunDep){var dep=!noRunDep?getUniqueRunDependency(`al ${url}`):"";readAsync(url,arrayBuffer=>{assert(arrayBuffer,`Loading data file "${url}" failed (no arrayBuffer).`);onload(new Uint8Array(arrayBuffer));if(dep)removeRunDependency(dep)},event=>{if(onerror){onerror()}else{throw`Loading data file "${url}" failed.`}});if(dep)addRunDependency(dep)}var preloadPlugins=Module["preloadPlugins"]||[];function FS_handledByPreloadPlugin(byteArray,fullname,finish,onerror){if(typeof Browser!="undefined")Browser.init();var handled=false;preloadPlugins.forEach(function(plugin){if(handled)return;if(plugin["canHandle"](fullname)){plugin["handle"](byteArray,fullname,finish,onerror);handled=true}});return handled}function FS_createPreloadedFile(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish){var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency(`cp ${fullname}`);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(FS_handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}}function FS_modeStringToFlags(str){var flagModes={"r":0,"r+":2,"w":512|64|1,"w+":512|64|2,"a":1024|64|1,"a+":1024|64|2};var flags=flagModes[str];if(typeof flags=="undefined"){throw new Error(`Unknown file open mode: ${str}`)}return flags}function FS_getMode(canRead,canWrite){var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode}var FS={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:false,ignorePermissions:true,ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,lookupPath:(path,opts={})=>{path=PATH_FS.resolve(path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=path.split("/").filter(p=>!!p);var current=FS.root;var current_path="/";for(var i=0;i<parts.length;i++){var islast=i===parts.length-1;if(islast&&opts.parent){break}current=FS.lookupNode(current,parts[i]);current_path=PATH.join2(current_path,parts[i]);if(FS.isMountpoint(current)){if(!islast||islast&&opts.follow_mount){current=current.mounted.root}}if(!islast||opts.follow){var count=0;while(FS.isLink(current.mode)){var link=FS.readlink(current_path);current_path=PATH_FS.resolve(PATH.dirname(current_path),link);var lookup=FS.lookupPath(current_path,{recurse_count:opts.recurse_count+1});current=lookup.node;if(count++>40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?`${mount}/${path}`:mount+path}path=path?`${node.name}/${path}`:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i<name.length;i++){hash=(hash<<5)-hash+name.charCodeAt(i)|0}return(parentid+hash>>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:()=>{for(var fd=0;fd<=FS.MAX_OPEN_FDS;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd=-1)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);if(fd==-1){fd=FS.nextfd()}stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err(`warning: ${FS.syncFSRequests} FS.syncfs operations in flight at once, probably just doing extra work`)}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i<dirs.length;++i){if(!dirs[i])continue;d+="/"+dirs[i];try{FS.mkdir(d,mode)}catch(e){if(e.errno!=20)throw e}}},mkdev:(path,mode,dev)=>{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS_modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error(`Invalid encoding type "${opts.encoding}"`)}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var randomBuffer=new Uint8Array(1024),randomLeft=0;var randomByte=()=>{if(randomLeft===0){randomLeft=randomFill(randomBuffer).byteLength}return randomBuffer[--randomLeft]};FS.createDevice("/dev","random",randomByte);FS.createDevice("/dev","urandom",randomByte);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.name="ErrnoError";this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack="<generic error, no stack>"})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i<FS.streams.length;i++){var stream=FS.streams[i];if(!stream){continue}FS.close(stream)}},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(!ret.exists){return null}return ret.object},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS_getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i<len;++i)arr[i]=data.charCodeAt(i);data=arr}FS.chmod(node,mode|146);var stream=FS.open(node,577);FS.write(stream,data,0,data.length,0,canOwn);FS.close(stream);FS.chmod(node,mode)}return node},createDevice:(parent,name,input,output)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS_getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i<length;i++){var result;try{result=input()}catch(e){throw new FS.ErrnoError(29)}if(result===undefined&&bytesRead===0){throw new FS.ErrnoError(6)}if(result===null||result===undefined)break;bytesRead++;buffer[offset+i]=result}if(bytesRead){stream.node.timestamp=Date.now()}return bytesRead},write:(stream,buffer,offset,length,pos)=>{for(var i=0;i<length;i++){try{output(buffer[offset+i])}catch(e){throw new FS.ErrnoError(29)}}if(length){stream.node.timestamp=Date.now()}return i}});return FS.mkdev(path,mode,dev)},forceLoadFile:obj=>{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}return intArrayFromString(xhr.responseText||"",true)};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i<size;i++){buffer[offset+i]=contents[position+i]}}else{for(var i=0;i<size;i++){buffer[offset+i]=contents.get(position+i)}}return size}stream_ops.read=(stream,buffer,offset,length,position)=>{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=SYSCALLS.getStreamFromFD(dirfd);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAPU32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;var atime=stat.atime.getTime();var mtime=stat.mtime.getTime();var ctime=stat.ctime.getTime();tempI64=[Math.floor(atime/1e3)>>>0,(tempDouble=Math.floor(atime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+56>>2]=tempI64[0],HEAP32[buf+60>>2]=tempI64[1];HEAPU32[buf+64>>2]=atime%1e3*1e3;tempI64=[Math.floor(mtime/1e3)>>>0,(tempDouble=Math.floor(mtime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+72>>2]=tempI64[0],HEAP32[buf+76>>2]=tempI64[1];HEAPU32[buf+80>>2]=mtime%1e3*1e3;tempI64=[Math.floor(ctime/1e3)>>>0,(tempDouble=Math.floor(ctime/1e3),+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+88>>2]=tempI64[0],HEAP32[buf+92>>2]=tempI64[1];HEAPU32[buf+96>>2]=ctime%1e3*1e3;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+104>>2]=tempI64[0],HEAP32[buf+108>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){if(!FS.isFile(stream.node.mode)){throw new FS.ErrnoError(43)}if(flags&2){return 0}var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function ___syscall_fcntl64(fd,cmd,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(cmd){case 0:{var arg=SYSCALLS.get();if(arg<0){return-28}var newStream;newStream=FS.createStream(stream,arg);return newStream.fd}case 1:case 2:return 0;case 3:return stream.flags;case 4:{var arg=SYSCALLS.get();stream.flags|=arg;return 0}case 5:{var arg=SYSCALLS.get();var offset=0;HEAP16[arg+offset>>1]=2;return 0}case 6:case 7:return 0;case 16:case 8:return-28;case 9:setErrNo(28);return-1;default:{return-28}}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_ioctl(fd,op,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(fd);switch(op){case 21509:case 21505:{if(!stream.tty)return-59;return 0}case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:{if(!stream.tty)return-59;return 0}case 21519:{if(!stream.tty)return-59;var argp=SYSCALLS.get();HEAP32[argp>>2]=0;return 0}case 21520:{if(!stream.tty)return-59;return-28}case 21531:{var argp=SYSCALLS.get();return FS.ioctl(stream,op,argp)}case 21523:{if(!stream.tty)return-59;return 0}case 21524:{if(!stream.tty)return-59;return 0}default:return-28}}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}function ___syscall_openat(dirfd,path,flags,varargs){SYSCALLS.varargs=varargs;try{path=SYSCALLS.getStr(path);path=SYSCALLS.calculateAt(dirfd,path);var mode=varargs?SYSCALLS.get():0;return FS.open(path,flags,mode).fd}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return-e.errno}}var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return"_unknown"}name=name.replace(/[^a-zA-Z0-9_]/g,"$");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return`_${name}`}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return{[name]:function(){return body.apply(this,arguments)}}[name]}function HandleAllocator(){this.allocated=[undefined];this.freelist=[];this.get=function(id){return this.allocated[id]};this.has=function(id){return this.allocated[id]!==undefined};this.allocate=function(handle){var id=this.freelist.pop()||this.allocated.length;this.allocated[id]=handle;return id};this.free=function(id){this.allocated[id]=undefined;this.freelist.push(id)}}var emval_handles=new HandleAllocator;function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+"\n"+stack.replace(/^Error(:[^\n]*)?\n/,"")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return`${this.name}: ${this.message}`}};return errorClass}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function count_emval_handles(){var count=0;for(var i=emval_handles.reserved;i<emval_handles.allocated.length;++i){if(emval_handles.allocated[i]!==undefined){++count}}return count}function init_emval(){emval_handles.allocated.push({value:undefined},{value:null},{value:true},{value:false});emval_handles.reserved=emval_handles.allocated.length;Module["count_emval_handles"]=count_emval_handles}var Emval={toValue:handle=>{if(!handle){throwBindingError("Cannot use deleted val. handle = "+handle)}return emval_handles.get(handle).value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{return emval_handles.allocate({refcount:1,value:value})}}}};var PureVirtualError=undefined;function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret="";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj["delete"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module["getInheritedInstanceCount"]=getInheritedInstanceCount;Module["getLiveInheritedInstances"]=getLiveInheritedInstances;Module["flushPendingDeletes"]=flushPendingDeletes;Module["setDelayFunction"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError("ptr should not be undefined")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function registerInheritedInstance(class_,ptr,instance){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){throwBindingError(`Tried to register registered instance: ${ptr}`)}else{registeredInstances[ptr]=instance}}var registeredTypes={};function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+" has unknown type "+getTypeName(rawType))}return impl}function unregisterInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);if(registeredInstances.hasOwnProperty(ptr)){delete registeredInstances[ptr]}else{throwBindingError(`Tried to unregister unregistered instance: ${ptr}`)}}function detachFinalizer(handle){}var finalizationRegistry=false;function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError("makeClassHandle requires ptr and ptrType")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError("Both smartPtrType and smartPtr must be specified")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance["clone"]()}else{var rv=registeredInstance["clone"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if("undefined"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function __embind_create_inheriting_constructor(constructorName,wrapperType,properties){constructorName=readLatin1String(constructorName);wrapperType=requireRegisteredType(wrapperType,"wrapper");properties=Emval.toValue(properties);var arraySlice=[].slice;var registeredClass=wrapperType.registeredClass;var wrapperPrototype=registeredClass.instancePrototype;var baseClass=registeredClass.baseClass;var baseClassPrototype=baseClass.instancePrototype;var baseConstructor=registeredClass.baseClass.constructor;var ctor=createNamedFunction(constructorName,function(){registeredClass.baseClass.pureVirtualFunctions.forEach(function(name){if(this[name]===baseClassPrototype[name]){throw new PureVirtualError(`Pure virtual function ${name} must be implemented in JavaScript`)}}.bind(this));Object.defineProperty(this,"__parent",{value:wrapperPrototype});this["__construct"].apply(this,arraySlice.call(arguments))});wrapperPrototype["__construct"]=function __construct(){if(this===wrapperPrototype){throwBindingError("Pass correct 'this' to __construct")}var inner=baseConstructor["implement"].apply(undefined,[this].concat(arraySlice.call(arguments)));detachFinalizer(inner);var $$=inner.$$;inner["notifyOnDestruction"]();$$.preservePointerOnDelete=true;Object.defineProperties(this,{$$:{value:$$}});attachFinalizer(this);registerInheritedInstance(registeredClass,$$.ptr,this)};wrapperPrototype["__destruct"]=function __destruct(){if(this===wrapperPrototype){throwBindingError("Pass correct 'this' to __destruct")}detachFinalizer(this);unregisterInheritedInstance(registeredClass,this.$$.ptr)};ctor.prototype=Object.create(wrapperPrototype);for(var p in properties){ctor.prototype[p]=properties[p]}return Emval.toHandle(ctor)}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this["fromWireType"](HEAP32[pointer>>2])}var awaitingDependencies={};var typeDependencies={};function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError("Mismatched type converter count")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType["fromWireType"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,"fromWireType":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},"toWireType":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError(`Missing field: "${fieldName}"`)}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(`Unknown type size: ${size}`)}}function registerType(rawType,registeredInstance,options={}){if(!("argPackAdvance"in registeredInstance)){throw new TypeError("registerType registeredInstance requires argPackAdvance")}var name=registeredInstance.name;if(!rawType){throwBindingError(`type "${name}" must have a positive integer typeid pointer`)}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(`Cannot register type '${name}' twice`)}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(wt){return!!wt},"toWireType":function(destructors,o){return o?trueValue:falseValue},"argPackAdvance":8,"readValueFromPointer":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError("Unknown boolean type size: "+name)}return this["fromWireType"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+" instance already deleted")}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError("Object already scheduled for deletion")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype["isAliasOf"]=ClassHandle_isAliasOf;ClassHandle.prototype["clone"]=ClassHandle_clone;ClassHandle.prototype["delete"]=ClassHandle_delete;ClassHandle.prototype["isDeleted"]=ClassHandle_isDeleted;ClassHandle.prototype["deleteLater"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(`Function '${humanName}' called with an invalid number of arguments (${arguments.length}) - expects one of (${proto[methodName].overloadTable})!`)}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(`Cannot register public name '${name}' twice`)}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(`Cannot register multiple overloads of a function with the same number of arguments (${numArguments})!`)}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(`Expected null or instance of ${desiredClass.name}, got an instance of ${ptrClass.name}`)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError("Passing raw pointer to smart pointer is illegal")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(`Cannot convert argument of type ${handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name} to parameter type ${this.name}`)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle["clone"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle["delete"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError("Unsupporting sharing policy")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(`null is not a valid ${this.name}`)}return 0}if(!handle.$$){throwBindingError(`Cannot pass "${embindRepr(handle)}" as a ${this.name}`)}if(!handle.$$.ptr){throwBindingError(`Cannot pass deleted object as a pointer of type ${this.name}`)}if(handle.$$.ptrType.isConst){throwBindingError(`Cannot convert argument of type ${handle.$$.ptrType.name} to parameter type ${this.name}`)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle["delete"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype["argPackAdvance"]=8;RegisteredPointer.prototype["readValueFromPointer"]=simpleReadValueFromPointer;RegisteredPointer.prototype["deleteObject"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype["fromWireType"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this["toWireType"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this["toWireType"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this["toWireType"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError("Replacing nonexistant public symbol")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module["dynCall_"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes("j")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes("j")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!="function"){throwBindingError(`unknown function pointer with signature ${signature}: ${rawFunction}`)}return fp}var UnboundTypeError=undefined;function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(`${message}: `+unboundTypes.map(getTypeName).join([", "]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(`Cannot construct ${name} due to unbound types`,[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError("Use 'new' to construct "+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+" has no accessible constructor")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(`Tried to invoke ctor of ${name} with invalid number of parameters (${arguments.length}) - expected (${Object.keys(registeredClass.constructor_body).toString()}) parameters instead!`)}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);if(registeredClass.baseClass){if(registeredClass.baseClass.__derivedClasses===undefined){registeredClass.baseClass.__derivedClasses=[]}registeredClass.baseClass.__derivedClasses.push(registeredClass)}var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+"*",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+" const*",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc,isAsync){var argCount=argTypes.length;if(argCount<2){throwBindingError("argTypes array size mismatch! Must at least get return value and 'this' types!")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!=="void";var expectedArgCount=argCount-2;var argsWired=new Array(expectedArgCount);var invokerFuncArgs=[];var destructors=[];return function(){if(arguments.length!==expectedArgCount){throwBindingError(`function ${humanName} called with ${arguments.length} arguments, expected ${expectedArgCount} args!`)}destructors.length=0;var thisWired;invokerFuncArgs.length=isClassMethodFunc?2:1;invokerFuncArgs[0]=cppTargetFunc;if(isClassMethodFunc){thisWired=argTypes[1]["toWireType"](destructors,this);invokerFuncArgs[1]=thisWired}for(var i=0;i<expectedArgCount;++i){argsWired[i]=argTypes[i+2]["toWireType"](destructors,arguments[i]);invokerFuncArgs.push(argsWired[i])}var rv=cppInvokerFunc.apply(null,invokerFuncArgs);function onDone(rv){if(needsDestructorStack){runDestructors(destructors)}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;i++){var param=i===1?thisWired:argsWired[i-2];if(argTypes[i].destructorFunction!==null){argTypes[i].destructorFunction(param)}}}if(returns){return argTypes[0]["fromWireType"](rv)}}return onDone(rv)}}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array}function __embind_register_class_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,fn,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}var proto=classType.registeredClass.constructor;if(undefined===proto[methodName]){unboundTypesHandler.argCount=argCount-1;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-1]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));var func=craftInvokerFunction(humanName,invokerArgsArray,null,rawInvoker,fn,isAsync);if(undefined===proto[methodName].overloadTable){func.argCount=argCount-1;proto[methodName]=func}else{proto[methodName].overloadTable[argCount-1]=func}if(classType.registeredClass.__derivedClasses){for(const derivedClass of classType.registeredClass.__derivedClasses){if(!derivedClass.constructor.hasOwnProperty(methodName)){derivedClass.constructor[methodName]=func}}}return[]});return[]})}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`constructor ${classType.name}`;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(`Cannot register multiple constructors with identical number of parameters (${argCount-1}) for class '${classType.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`)}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(`Cannot construct ${classType.name} due to unbound types`,rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual,isAsync){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=`${classType.name}.${methodName}`;if(methodName.startsWith("@@")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(`Cannot call ${humanName} due to unbound types`,rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context,isAsync);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}function validateThis(this_,classType,humanName){if(!(this_ instanceof Object)){throwBindingError(`${humanName} with invalid "this": ${this_}`)}if(!(this_ instanceof classType.registeredClass.constructor)){throwBindingError(`${humanName} incompatible with "this" of type ${this_.constructor.name}`)}if(!this_.$$.ptr){throwBindingError(`cannot call emscripten binding method ${humanName} on deleted object`)}return upcastPointer(this_.$$.ptr,this_.$$.ptrType.registeredClass,classType.registeredClass)}function __embind_register_class_property(classType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){fieldName=readLatin1String(fieldName);getter=embind__requireFunction(getterSignature,getter);whenDependentTypesAreResolved([],[classType],function(classType){classType=classType[0];var humanName=`${classType.name}.${fieldName}`;var desc={get:function(){throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])},enumerable:true,configurable:true};if(setter){desc.set=()=>{throwUnboundTypeError(`Cannot access ${humanName} due to unbound types`,[getterReturnType,setterArgumentType])}}else{desc.set=v=>{throwBindingError(humanName+" is a read-only property")}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);whenDependentTypesAreResolved([],setter?[getterReturnType,setterArgumentType]:[getterReturnType],function(types){var getterReturnType=types[0];var desc={get:function(){var ptr=validateThis(this,classType,humanName+" getter");return getterReturnType["fromWireType"](getter(getterContext,ptr))},enumerable:true};if(setter){setter=embind__requireFunction(setterSignature,setter);var setterArgumentType=types[1];desc.set=function(v){var ptr=validateThis(this,classType,humanName+" setter");var destructors=[];setter(setterContext,ptr,setterArgumentType["toWireType"](destructors,v));runDestructors(destructors)}}Object.defineProperty(classType.registeredClass.instancePrototype,fieldName,desc);return[]});return[]})}function __embind_register_constant(name,type,value){name=readLatin1String(name);whenDependentTypesAreResolved([],[type],function(type){type=type[0];Module[name]=type["fromWireType"](value);return[]})}function __emval_decref(handle){if(handle>=emval_handles.reserved&&0===--emval_handles.get(handle).refcount){emval_handles.free(handle)}}function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},"toWireType":function(destructors,value){return Emval.toHandle(value)},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:null})}function enumReadValueFromPointer(name,shift,signed){switch(shift){case 0:return function(pointer){var heap=signed?HEAP8:HEAPU8;return this["fromWireType"](heap[pointer])};case 1:return function(pointer){var heap=signed?HEAP16:HEAPU16;return this["fromWireType"](heap[pointer>>1])};case 2:return function(pointer){var heap=signed?HEAP32:HEAPU32;return this["fromWireType"](heap[pointer>>2])};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_enum(rawType,name,size,isSigned){var shift=getShiftFromSize(size);name=readLatin1String(name);function ctor(){}ctor.values={};registerType(rawType,{name:name,constructor:ctor,"fromWireType":function(c){return this.constructor.values[c]},"toWireType":function(destructors,c){return c.value},"argPackAdvance":8,"readValueFromPointer":enumReadValueFromPointer(name,shift,isSigned),destructorFunction:null});exposePublicSymbol(name,ctor)}function __embind_register_enum_value(rawEnumType,name,enumValue){var enumType=requireRegisteredType(rawEnumType,"enum");name=readLatin1String(name);var Enum=enumType.constructor;var Value=Object.create(enumType.constructor.prototype,{value:{value:enumValue},constructor:{value:createNamedFunction(`${enumType.name}_${name}`,function(){})}});Enum.values[enumValue]=Value;Enum[name]=Value}function embindRepr(v){if(v===null){return"null"}var t=typeof v;if(t==="object"||t==="array"||t==="function"){return v.toString()}else{return""+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this["fromWireType"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this["fromWireType"](HEAPF64[pointer>>3])};default:throw new TypeError("Unknown float type: "+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":function(value){return value},"toWireType":function(destructors,value){return value},"argPackAdvance":8,"readValueFromPointer":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn,isAsync){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(`Cannot call ${name} due to unbound types`,argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn,isAsync),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError("Unknown integer type: "+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift}var isUnsignedType=name.includes("unsigned");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,"fromWireType":fromWireType,"toWireType":toWireType,"argPackAdvance":8,"readValueFromPointer":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(heap.buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,"fromWireType":decodeMemoryView,"argPackAdvance":8,"readValueFromPointer":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name==="std::string";registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[payload+i])}str=a.join("")}_free(value);return str},"toWireType":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value=="string";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError("Cannot pass non-string to std::string")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError("String has UTF-16 code units that do not fit in 8 bits")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+i]=value[i]}}}if(destructors!==null){destructors.push(_free,base)}return base},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}var UTF16Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf-16le"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str="";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str="";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,"fromWireType":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},"toWireType":function(destructors,value){if(!(typeof value=="string")){throwBindingError(`Cannot pass non-string to C++ string type ${name}`)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},"argPackAdvance":8,"readValueFromPointer":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,"argPackAdvance":0,"fromWireType":function(){return undefined},"toWireType":function(destructors,o){return undefined}})}function emval_allocateDestructors(destructorsRef){var destructors=[];HEAPU32[destructorsRef>>2]=Emval.toHandle(destructors);return destructors}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}var emval_methodCallers=[];function __emval_call_method(caller,handle,methodName,destructorsRef,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);return caller(handle,methodName,emval_allocateDestructors(destructorsRef),args)}function __emval_call_void_method(caller,handle,methodName,args){caller=emval_methodCallers[caller];handle=Emval.toValue(handle);methodName=getStringOrSymbol(methodName);caller(handle,methodName,null,args)}function emval_addMethodCaller(caller){var id=emval_methodCallers.length;emval_methodCallers.push(caller);return id}function emval_lookupTypes(argCount,argTypes){var a=new Array(argCount);for(var i=0;i<argCount;++i){a[i]=requireRegisteredType(HEAPU32[argTypes+i*4>>2],"parameter "+i)}return a}var emval_registeredMethods=[];function __emval_get_method_caller(argCount,argTypes){var types=emval_lookupTypes(argCount,argTypes);var retType=types[0];var signatureName=retType.name+"_$"+types.slice(1).map(function(t){return t.name}).join("_")+"$";var returnId=emval_registeredMethods[signatureName];if(returnId!==undefined){return returnId}var argN=new Array(argCount-1);var invokerFunction=(handle,name,destructors,args)=>{var offset=0;for(var i=0;i<argCount-1;++i){argN[i]=types[i+1]["readValueFromPointer"](args+offset);offset+=types[i+1]["argPackAdvance"]}var rv=handle[name].apply(handle,argN);for(var i=0;i<argCount-1;++i){if(types[i+1].deleteObject){types[i+1].deleteObject(argN[i])}}if(!retType.isVoid){return retType["toWireType"](destructors,rv)}};returnId=emval_addMethodCaller(invokerFunction);emval_registeredMethods[signatureName]=returnId;return returnId}function __emval_incref(handle){if(handle>4){emval_handles.get(handle).refcount+=1}}function __emval_run_destructors(handle){var destructors=Emval.toValue(handle);runDestructors(destructors);__emval_decref(handle)}function __emval_take_value(type,arg){type=requireRegisteredType(type,"_emval_take_value");var v=type["readValueFromPointer"](arg);return Emval.toHandle(v)}function _abort(){abort("")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){var b=wasmMemory.buffer;var pages=size-b.byteLength+65535>>>16;try{wasmMemory.grow(pages);updateMemoryViews();return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}var alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr<len)break;if(typeof offset!=="undefined"){offset+=curr}}return ret}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doReadv(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?+Math.floor(tempDouble/4294967296)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(typeof offset!=="undefined"){offset+=curr}}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e.name==="ErrnoError"))throw e;return e.errno}}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.createPreloadedFile=FS_createPreloadedFile;FS.staticInit();BindingError=Module["BindingError"]=extendError(Error,"BindingError");init_emval();PureVirtualError=Module["PureVirtualError"]=extendError(Error,"PureVirtualError");embind_init_charCodes();init_embind();InternalError=Module["InternalError"]=extendError(Error,"InternalError");init_ClassHandle();init_RegisteredPointer();UnboundTypeError=Module["UnboundTypeError"]=extendError(Error,"UnboundTypeError");var decodeBase64=typeof atob=="function"?atob:function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output};function intArrayFromBase64(s){try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}var wasmImports={"E":___assert_fail,"w":___syscall_fcntl64,"J":___syscall_ioctl,"K":___syscall_openat,"r":__embind_create_inheriting_constructor,"n":__embind_finalize_value_object,"G":__embind_register_bigint,"N":__embind_register_bool,"e":__embind_register_class,"m":__embind_register_class_class_function,"j":__embind_register_class_constructor,"b":__embind_register_class_function,"c":__embind_register_class_property,"s":__embind_register_constant,"M":__embind_register_emval,"B":__embind_register_enum,"p":__embind_register_enum_value,"y":__embind_register_float,"d":__embind_register_function,"l":__embind_register_integer,"i":__embind_register_memory_view,"x":__embind_register_std_string,"t":__embind_register_std_wstring,"o":__embind_register_value_object,"g":__embind_register_value_object_field,"O":__embind_register_void,"A":__emval_call_method,"h":__emval_call_void_method,"k":__emval_decref,"f":__emval_get_method_caller,"C":__emval_incref,"z":__emval_run_destructors,"D":__emval_take_value,"q":_abort,"L":_emscripten_memcpy_big,"H":_emscripten_resize_heap,"u":_fd_close,"I":_fd_read,"F":_fd_seek,"v":_fd_write,"a":wasmMemory};var asm=createWasm();var ___wasm_call_ctors=function(){return(___wasm_call_ctors=Module["asm"]["P"]).apply(null,arguments)};var _malloc=function(){return(_malloc=Module["asm"]["R"]).apply(null,arguments)};var _free=function(){return(_free=Module["asm"]["S"]).apply(null,arguments)};var ___getTypeName=function(){return(___getTypeName=Module["asm"]["T"]).apply(null,arguments)};var __embind_initialize_bindings=Module["__embind_initialize_bindings"]=function(){return(__embind_initialize_bindings=Module["__embind_initialize_bindings"]=Module["asm"]["U"]).apply(null,arguments)};var ___errno_location=function(){return(___errno_location=Module["asm"]["V"]).apply(null,arguments)};var dynCall_jiji=Module["dynCall_jiji"]=function(){return(dynCall_jiji=Module["dynCall_jiji"]=Module["asm"]["W"]).apply(null,arguments)};var calledRun;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(){if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();readyPromiseResolve(Module);if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
|
|
|
|
|
|
return BOX2D.ready
|
|
}
|
|
|
|
);
|
|
})();
|
|
if (typeof exports === 'object' && typeof module === 'object')
|
|
module.exports = BOX2D;
|
|
else if (typeof define === 'function' && define['amd'])
|
|
define([], function() { return BOX2D; });
|
|
else if (typeof exports === 'object')
|
|
exports["BOX2D"] = BOX2D;
|