UNPKG

pathkit-asmjs

Version:

A asm.js version of Skia's PathOps toolkit

85 lines (82 loc) 671 kB
var PathKitInit = (function() { var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined; return ( function(PathKitInit) { PathKitInit = PathKitInit || {}; var e;e||(e=typeof PathKitInit !== 'undefined' ? PathKitInit : {}); (function(a){var b={};a.loadCmdsTypedArray=function(c){for(var d=0,f=0;f<c.length;f++)d+=c[f].length;if(b[d])var g=b[d];else g=new Float32Array(d),b[d]=g;var h=0;for(f=0;f<c.length;f++)for(var k=0;k<c[f].length;k++){var x=c[f][k];"string"===typeof x&&(x=a.SkBits2FloatUnsigned(parseInt(x)));g[h]=x;h++}c=a._malloc(g.length*g.BYTES_PER_ELEMENT);a.HEAPF32.set(g,c/g.BYTES_PER_ELEMENT);return[c,d]};a.FromCmds=function(b){b=a.loadCmdsTypedArray(b);var c=a._FromCmds(b[0],b[1]);a._free(b[0]);return c};var c, d,f,g,k;a.cubicYFromX=function(b,n,m,p,u){c&&d===b&&f===n&&g===m&&k===p||(c&&c.delete(),c=new a._SkCubicMap([b,n],[m,p]),d=b,f=n,g=m,k=p);return c.computeYFromX(u)};a.cubicPtFromT=function(b,n,m,p,u){c&&d===b&&f===n&&g===m&&k===p||(c&&c.delete(),c=new a._SkCubicMap([b,n],[m,p]),d=b,f=n,g=m,k=p);return c.computePtFromT(u)}})(e); (function(a){a.onRuntimeInitialized=function(){a.SkPath.prototype.addPath=function(){var a=arguments[0];if(1===arguments.length)this._addPath(a,1,0,0,0,1,0,0,0,1);else if(2===arguments.length){var c=arguments[1];this._addPath(a,c.a,c.c,c.e,c.b,c.d,c.f,0,0,1)}else if(7===arguments.length)c=arguments,this._addPath(a,c[1],c[3],c[5],c[2],c[4],c[6],0,0,1);else if(10===arguments.length)c=arguments,this._addPath(a,c[1],c[2],c[3],c[4],c[5],c[6],c[7],c[8],c[9]);else return console.La("addPath expected to take 1, 2, 7, or 10 args. Got "+ arguments.length),null;return this};a.SkPath.prototype.arc=function(a,c,d,f,g,k){this._arc(a,c,d,f,g,!!k);return this};a.SkPath.prototype.arcTo=function(a,c,d,f,g){this._arcTo(a,c,d,f,g);return this};a.SkPath.prototype.bezierCurveTo=function(a,c,d,f,g,k){this._cubicTo(a,c,d,f,g,k);return this};a.SkPath.prototype.close=function(){this._close();return this};a.SkPath.prototype.closePath=function(){this._close();return this};a.SkPath.prototype.conicTo=function(a,c,d,f,g){this._conicTo(a,c,d,f,g);return this}; a.SkPath.prototype.cubicTo=function(a,c,d,f,g,k){this._cubicTo(a,c,d,f,g,k);return this};a.SkPath.prototype.dash=function(a,c,d){return this._dash(a,c,d)?this:null};a.SkPath.prototype.ellipse=function(a,c,d,f,g,k,h,n){this._ellipse(a,c,d,f,g,k,h,!!n);return this};a.SkPath.prototype.lineTo=function(a,c){this._lineTo(a,c);return this};a.SkPath.prototype.moveTo=function(a,c){this._moveTo(a,c);return this};a.SkPath.prototype.op=function(a,c){return this._op(a,c)?this:null};a.SkPath.prototype.quadraticCurveTo= function(a,c,d,f){this._quadTo(a,c,d,f);return this};a.SkPath.prototype.quadTo=function(a,c,d,f){this._quadTo(a,c,d,f);return this};a.SkPath.prototype.rect=function(a,c,d,f){this._rect(a,c,d,f);return this};a.SkPath.prototype.simplify=function(){return this._simplify()?this:null};a.SkPath.prototype.stroke=function(b){b=b||{};b.width=b.width||1;b.miter_limit=b.miter_limit||4;b.cap=b.cap||a.StrokeCap.BUTT;b.join=b.join||a.StrokeJoin.MITER;return this._stroke(b)?this:null};a.SkPath.prototype.transform= function(){if(1===arguments.length)this._transform(arguments[0]);else if(9===arguments.length){var a=arguments;this._transform(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8])}else return console.La("transform expected to take 1 or 9 arguments. Got "+arguments.length),null;return this};a.SkPath.prototype.trim=function(a,c,d){return this._trim(a,c,!!d)?this:null}}})(e);var l={},q;for(q in e)e.hasOwnProperty(q)&&(l[q]=e[q]);e.arguments=[];e.thisProgram="./this.program";e.quit=function(a,b){throw b;}; e.preRun=[];e.postRun=[];var aa=!1,r=!1,ba=!1,ca=!1;aa="object"===typeof window;r="function"===typeof importScripts;ba="object"===typeof process&&"function"===typeof require&&!aa&&!r;ca=!aa&&!ba&&!r;var t=""; if(ba){t=__dirname+"/";var da,ea;e.read=function(a,b){da||(da=require("fs"));ea||(ea=require("path"));a=ea.normalize(a);a=da.readFileSync(a);return b?a:a.toString()};e.readBinary=function(a){a=e.read(a,!0);a.buffer||(a=new Uint8Array(a));a.buffer||v("Assertion failed: undefined");return a};1<process.argv.length&&(e.thisProgram=process.argv[1].replace(/\\/g,"/"));e.arguments=process.argv.slice(2);process.on("uncaughtException",function(a){if(!(a instanceof fa))throw a;});process.on("unhandledRejection", v);e.quit=function(a){process.exit(a)};e.inspect=function(){return"[Emscripten Module object]"}}else if(ca)"undefined"!=typeof read&&(e.read=function(a){return read(a)}),e.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");"object"===typeof a||v("Assertion failed: undefined");return a},"undefined"!=typeof scriptArgs?e.arguments=scriptArgs:"undefined"!=typeof arguments&&(e.arguments=arguments),"function"===typeof quit&&(e.quit=function(a){quit(a)}); else if(aa||r)r?t=self.location.href:document.currentScript&&(t=document.currentScript.src),_scriptDir&&(t=_scriptDir),0!==t.indexOf("blob:")?t=t.substr(0,t.lastIndexOf("/")+1):t="",e.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},r&&(e.readBinary=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),e.readAsync=function(a,b,c){var d=new XMLHttpRequest;d.open("GET",a,!0); d.responseType="arraybuffer";d.onload=function(){200==d.status||0==d.status&&d.response?b(d.response):c()};d.onerror=c;d.send(null)},e.setWindowTitle=function(a){document.title=a};var ha=e.print||("undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null),ia=e.printErr||("undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||ha);for(q in l)l.hasOwnProperty(q)&&(e[q]=l[q]);l=void 0; var ja=0,ka=!1,la="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0; function ma(a,b,c){var d=b+c;for(c=b;a[c]&&!(c>=d);)++c;if(16<c-b&&a.subarray&&la)return la.decode(a.subarray(b,c));for(d="";b<c;){var f=a[b++];if(f&128){var g=a[b++]&63;if(192==(f&224))d+=String.fromCharCode((f&31)<<6|g);else{var k=a[b++]&63;f=224==(f&240)?(f&15)<<12|g<<6|k:(f&7)<<18|g<<12|k<<6|a[b++]&63;65536>f?d+=String.fromCharCode(f):(f-=65536,d+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else d+=String.fromCharCode(f)}return d} function na(a,b,c){var d=w;if(0<c){c=b+c-1;for(var f=0;f<a.length;++f){var g=a.charCodeAt(f);if(55296<=g&&57343>=g){var k=a.charCodeAt(++f);g=65536+((g&1023)<<10)|k&1023}if(127>=g){if(b>=c)break;d[b++]=g}else{if(2047>=g){if(b+1>=c)break;d[b++]=192|g>>6}else{if(65535>=g){if(b+2>=c)break;d[b++]=224|g>>12}else{if(b+3>=c)break;d[b++]=240|g>>18;d[b++]=128|g>>12&63}d[b++]=128|g>>6&63}d[b++]=128|g&63}}d[b]=0}}"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le"); function oa(a){0<a%16777216&&(a+=16777216-a%16777216);return a}var buffer,y,w,z,A,B,C,pa,qa;function ra(){e.HEAP8=y=new Int8Array(buffer);e.HEAP16=z=new Int16Array(buffer);e.HEAP32=B=new Int32Array(buffer);e.HEAPU8=w=new Uint8Array(buffer);e.HEAPU16=A=new Uint16Array(buffer);e.HEAPU32=C=new Uint32Array(buffer);e.HEAPF32=pa=new Float32Array(buffer);e.HEAPF64=qa=new Float64Array(buffer)}var D=e.TOTAL_MEMORY||16777216;5242880>D&&ia("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+D+"! (TOTAL_STACK=5242880)"); e.buffer?buffer=e.buffer:(buffer=new ArrayBuffer(D),e.buffer=buffer);ra();B[2108]=5251568;function sa(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.Ia;"number"===typeof c?void 0===b.wa?e.dynCall_v(c):e.dynCall_vi(c,b.wa):c(void 0===b.wa?null:b.wa)}}}var ta=[],ua=[],va=[],wa=[],xa=!1;function ya(){var a=e.preRun.shift();ta.unshift(a)}var za=Math.abs,E=0,Ba=null,F=null;e.preloadedImages={};e.preloadedAudios={};var G=null;ua.push({Ia:function(){Ca()}},{Ia:function(){Da()}}); G="pathkit.js.mem";var Ea=[null,[],[]];function Fa(a,b){var c=Ea[a];0===b||10===b?((1===a?ha:ia)(ma(c,0)),c.length=0):c.push(b)}var H=0;function I(){H+=4;return B[H-4>>2]}var Ga={},Ha={};function J(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function K(a){return this.fromWireType(C[a>>2])}var L={},M={},Ia={};function Ja(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a} function Ka(a,b){a=Ja(a);return(new Function("body","return function "+a+'() {\n "use strict"; return body.apply(this, arguments);\n};\n'))(b)}function La(a,b){var c=Ka(b,function(a){this.name=b;this.message=a;a=Error(a).stack;void 0!==a&&(this.stack=this.toString()+"\n"+a.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Ma=void 0; function Na(a){throw new Ma(a);}function N(a,b,c){function d(b){b=c(b);b.length!==a.length&&Na("Mismatched type converter count");for(var d=0;d<a.length;++d)O(a[d],b[d])}a.forEach(function(a){Ia[a]=b});var f=Array(b.length),g=[],k=0;b.forEach(function(a,b){M.hasOwnProperty(a)?f[b]=M[a]:(g.push(a),L.hasOwnProperty(a)||(L[a]=[]),L[a].push(function(){f[b]=M[a];++k;k===g.length&&d(f)}))});0===g.length&&d(f)}var Oa={}; function Pa(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}function Qa(){for(var a=Array(256),b=0;256>b;++b)a[b]=String.fromCharCode(b);Ra=a}var Ra=void 0;function P(a){for(var b="";w[a];)b+=Ra[w[a++]];return b}var Q=void 0;function R(a){throw new Q(a);} function O(a,b,c){c=c||{};if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var d=b.name;a||R('type "'+d+'" must have a positive integer typeid pointer');if(M.hasOwnProperty(a)){if(c.Sa)return;R("Cannot register type '"+d+"' twice")}M[a]=b;delete Ia[a];L.hasOwnProperty(a)&&(b=L[a],delete L[a],b.forEach(function(a){a()}))} function Sa(a){if(!(this instanceof S&&a instanceof S))return!1;var b=this.da.ga.ea,c=this.da.fa,d=a.da.ga.ea;for(a=a.da.fa;b.ma;)c=b.sa(c),b=b.ma;for(;d.ma;)a=d.sa(a),d=d.ma;return b===d&&c===a}function Ta(a){return{count:a.count,oa:a.oa,qa:a.qa,fa:a.fa,ga:a.ga,ja:a.ja,la:a.la}}function Ua(a){R(a.da.ga.ea.name+" instance already deleted")} function Va(){this.da.fa||Ua(this);if(this.da.qa)return this.da.count.value+=1,this;var a=Object.create(Object.getPrototypeOf(this),{da:{value:Ta(this.da)}});a.da.count.value+=1;a.da.oa=!1;return a}function Wa(a){a=a.da;a.ja?a.la.ka(a.ja):a.ga.ea.ka(a.fa)}function Xa(){this.da.fa||Ua(this);this.da.oa&&!this.da.qa&&R("Object already scheduled for deletion");--this.da.count.value;0===this.da.count.value&&Wa(this);this.da.qa||(this.da.ja=void 0,this.da.fa=void 0)}function Ya(){return!this.da.fa} var Za=void 0,$a=[];function ab(){for(;$a.length;){var a=$a.pop();a.da.oa=!1;a["delete"]()}}function bb(){this.da.fa||Ua(this);this.da.oa&&!this.da.qa&&R("Object already scheduled for deletion");$a.push(this);1===$a.length&&Za&&Za(ab);this.da.oa=!0;return this}function cb(){S.prototype.isAliasOf=Sa;S.prototype.clone=Va;S.prototype["delete"]=Xa;S.prototype.isDeleted=Ya;S.prototype.deleteLater=bb}function S(){}var db={}; function eb(a,b,c){if(void 0===a[b].ha){var d=a[b];a[b]=function(){a[b].ha.hasOwnProperty(arguments.length)||R("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].ha+")!");return a[b].ha[arguments.length].apply(this,arguments)};a[b].ha=[];a[b].ha[d.ta]=d}} function fb(a,b,c){e.hasOwnProperty(a)?((void 0===c||void 0!==e[a].ha&&void 0!==e[a].ha[c])&&R("Cannot register public name '"+a+"' twice"),eb(e,a,a),e.hasOwnProperty(c)&&R("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),e[a].ha[c]=b):(e[a]=b,void 0!==c&&(e[a].Za=c))}function gb(a,b,c,d,f,g,k,h){this.name=a;this.constructor=b;this.pa=c;this.ka=d;this.ma=f;this.Oa=g;this.sa=k;this.Ma=h;this.Va=[]} function hb(a,b,c){for(;b!==c;)b.sa||R("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.sa(a),b=b.ma;return a}function ib(a,b){if(null===b)return this.Aa&&R("null is not a valid "+this.name),0;b.da||R('Cannot pass "'+T(b)+'" as a '+this.name);b.da.fa||R("Cannot pass deleted object as a pointer of type "+this.name);return hb(b.da.fa,b.da.ga.ea,this.ea)} function jb(a,b){if(null===b){this.Aa&&R("null is not a valid "+this.name);if(this.va){var c=this.ra();null!==a&&a.push(this.ka,c);return c}return 0}b.da||R('Cannot pass "'+T(b)+'" as a '+this.name);b.da.fa||R("Cannot pass deleted object as a pointer of type "+this.name);!this.ua&&b.da.ga.ua&&R("Cannot convert argument of type "+(b.da.la?b.da.la.name:b.da.ga.name)+" to parameter type "+this.name);c=hb(b.da.fa,b.da.ga.ea,this.ea);if(this.va)switch(void 0===b.da.ja&&R("Passing raw pointer to smart pointer is illegal"), this.Xa){case 0:b.da.la===this?c=b.da.ja:R("Cannot convert argument of type "+(b.da.la?b.da.la.name:b.da.ga.name)+" to parameter type "+this.name);break;case 1:c=b.da.ja;break;case 2:if(b.da.la===this)c=b.da.ja;else{var d=b.clone();c=this.Wa(c,U(function(){d["delete"]()}));null!==a&&a.push(this.ka,c)}break;default:R("Unsupporting sharing policy")}return c} function kb(a,b){if(null===b)return this.Aa&&R("null is not a valid "+this.name),0;b.da||R('Cannot pass "'+T(b)+'" as a '+this.name);b.da.fa||R("Cannot pass deleted object as a pointer of type "+this.name);b.da.ga.ua&&R("Cannot convert argument of type "+b.da.ga.name+" to parameter type "+this.name);return hb(b.da.fa,b.da.ga.ea,this.ea)}function lb(a){this.Ja&&(a=this.Ja(a));return a}function mb(a){this.ka&&this.ka(a)}function nb(a){if(null!==a)a["delete"]()} function ob(a,b,c){if(b===c)return a;if(void 0===c.ma)return null;a=ob(a,b,c.ma);return null===a?null:c.Ma(a)}function pb(){return Object.keys(qb).length}function rb(){var a=[],b;for(b in qb)qb.hasOwnProperty(b)&&a.push(qb[b]);return a}function sb(a){Za=a;$a.length&&Za&&Za(ab)}function tb(){e.getInheritedInstanceCount=pb;e.getLiveInheritedInstances=rb;e.flushPendingDeletes=ab;e.setDelayFunction=sb}var qb={}; function ub(a,b){for(void 0===b&&R("ptr should not be undefined");a.ma;)b=a.sa(b),a=a.ma;return b}function vb(a,b){b=ub(a,b);return qb[b]}function wb(a,b){b.ga&&b.fa||Na("makeClassHandle requires ptr and ptrType");!!b.la!==!!b.ja&&Na("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Object.create(a,{da:{value:b}})} function xb(a){function b(){return this.va?wb(this.ea.pa,{ga:this.Ua,fa:c,la:this,ja:a}):wb(this.ea.pa,{ga:this,fa:a})}var c=this.Pa(a);if(!c)return this.Fa(a),null;var d=vb(this.ea,c);if(void 0!==d){if(0===d.da.count.value)return d.da.fa=c,d.da.ja=a,d.clone();d=d.clone();this.Fa(a);return d}d=this.ea.Oa(c);d=db[d];if(!d)return b.call(this);d=this.ua?d.Ka:d.pointerType;var f=ob(c,this.ea,d.ea);return null===f?b.call(this):this.va?wb(d.ea.pa,{ga:d,fa:f,la:this,ja:a}):wb(d.ea.pa,{ga:d,fa:f})} function yb(){V.prototype.Pa=lb;V.prototype.Fa=mb;V.prototype.argPackAdvance=8;V.prototype.readValueFromPointer=K;V.prototype.deleteObject=nb;V.prototype.fromWireType=xb}function V(a,b,c,d,f,g,k,h,n,m,p){this.name=a;this.ea=b;this.Aa=c;this.ua=d;this.va=f;this.Ua=g;this.Xa=k;this.Ja=h;this.ra=n;this.Wa=m;this.ka=p;f||void 0!==b.ma?this.toWireType=jb:(this.toWireType=d?ib:kb,this.ia=null)} function zb(a,b,c){e.hasOwnProperty(a)||Na("Replacing nonexistant public symbol");void 0!==e[a].ha&&void 0!==c?e[a].ha[c]=b:(e[a]=b,e[a].ta=c)} function W(a,b){a=P(a);if(void 0!==e["FUNCTION_TABLE_"+a])var c=e["FUNCTION_TABLE_"+a][b];else if("undefined"!==typeof FUNCTION_TABLE)c=FUNCTION_TABLE[b];else{c=e["dynCall_"+a];void 0===c&&(c=e["dynCall_"+a.replace(/f/g,"d")],void 0===c&&R("No dynCall invoker for signature: "+a));for(var d=[],f=1;f<a.length;++f)d.push("a"+f);f="return function "+("dynCall_"+a+"_"+b)+"("+d.join(", ")+") {\n";f+=" return dynCall(rawFunction"+(d.length?", ":"")+d.join(", ")+");\n";c=(new Function("dynCall","rawFunction", f+"};\n"))(c,b)}"function"!==typeof c&&R("unknown function pointer with signature "+a+": "+b);return c}var Ab=void 0;function Bb(a){a=Cb(a);var b=P(a);X(a);return b}function Db(a,b){function c(a){f[a]||M[a]||(Ia[a]?Ia[a].forEach(c):(d.push(a),f[a]=!0))}var d=[],f={};b.forEach(c);throw new Ab(a+": "+d.map(Bb).join([", "]));}function Eb(a,b){for(var c=[],d=0;d<a;d++)c.push(B[(b>>2)+d]);return c} function Fb(a,b){if(!(a instanceof Function))throw new TypeError("new_ called with constructor type "+typeof a+" which is not a function");var c=Ka(a.name||"unknownFunctionName",function(){});c.prototype=a.prototype;c=new c;a=a.apply(c,b);return a instanceof Object?a:c} function Gb(a,b,c,d,f){var g=b.length;2>g&&R("argTypes array size mismatch! Must at least get return value and 'this' types!");var k=null!==b[1]&&null!==c,h=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void 0===b[c].ia){h=!0;break}var n="void"!==b[0].name,m="",p="";for(c=0;c<g-2;++c)m+=(0!==c?", ":"")+"arg"+c,p+=(0!==c?", ":"")+"arg"+c+"Wired";a="return function "+Ja(a)+"("+m+") {\nif (arguments.length !== "+(g-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+ (g-2)+" args!');\n}\n";h&&(a+="var destructors = [];\n");var u=h?"destructors":"null";m="throwBindingError invoker fn runDestructors retType classParam".split(" ");d=[R,d,f,J,b[0],b[1]];k&&(a+="var thisWired = classParam.toWireType("+u+", this);\n");for(c=0;c<g-2;++c)a+="var arg"+c+"Wired = argType"+c+".toWireType("+u+", arg"+c+"); // "+b[c+2].name+"\n",m.push("argType"+c),d.push(b[c+2]);k&&(p="thisWired"+(0<p.length?", ":"")+p);a+=(n?"var rv = ":"")+"invoker(fn"+(0<p.length?", ":"")+p+");\n";if(h)a+= "runDestructors(destructors);\n";else for(c=k?1:2;c<b.length;++c)g=1===c?"thisWired":"arg"+(c-2)+"Wired",null!==b[c].ia&&(a+=g+"_dtor("+g+"); // "+b[c].name+"\n",m.push(g+"_dtor"),d.push(b[c].ia));n&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n");m.push(a+"}\n");return Fb(Function,m).apply(null,d)}var Hb=[],Y=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Ib(a){4<a&&0===--Y[a].Ba&&(Y[a]=void 0,Hb.push(a))} function Jb(){for(var a=0,b=5;b<Y.length;++b)void 0!==Y[b]&&++a;return a}function Kb(){for(var a=5;a<Y.length;++a)if(void 0!==Y[a])return Y[a];return null}function Lb(){e.count_emval_handles=Jb;e.get_first_emval=Kb}function U(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=Hb.length?Hb.pop():Y.length;Y[b]={Ba:1,value:a};return b}} function Mb(a,b,c){switch(b){case 0:return function(a){return this.fromWireType((c?y:w)[a])};case 1:return function(a){return this.fromWireType((c?z:A)[a>>1])};case 2:return function(a){return this.fromWireType((c?B:C)[a>>2])};default:throw new TypeError("Unknown integer type: "+a);}}function Nb(a,b){var c=M[a];void 0===c&&R(b+" has unknown type "+Bb(a));return c}function T(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a} function Ob(a,b){switch(b){case 2:return function(a){return this.fromWireType(pa[a>>2])};case 3:return function(a){return this.fromWireType(qa[a>>3])};default:throw new TypeError("Unknown float type: "+a);}} function Pb(a,b,c){switch(b){case 0:return c?function(a){return y[a]}:function(a){return w[a]};case 1:return c?function(a){return z[a>>1]}:function(a){return A[a>>1]};case 2:return c?function(a){return B[a>>2]}:function(a){return C[a>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var Qb={};function Rb(a){var b=Qb[a];return void 0===b?P(a):b}var Sb=[];function Tb(a){a||R("Cannot use deleted val. handle = "+a);return Y[a].value}function Ub(){return Function("return this")()} function Vb(a){var b=Sb.length;Sb.push(a);return b}function Wb(a,b){for(var c=Array(a),d=0;d<a;++d)c[d]=Nb(B[(b>>2)+d],"parameter "+d);return c} function Xb(a){for(var b="",c=0;c<a;++c)b+=(0!==c?", ":"")+"arg"+c;var d="return function emval_allocator_"+a+"(constructor, argTypes, args) {\n";for(c=0;c<a;++c)d+="var argType"+c+" = requireRegisteredType(Module['HEAP32'][(argTypes >> 2) + "+c+'], "parameter '+c+'");\nvar arg'+c+" = argType"+c+".readValueFromPointer(args);\nargs += argType"+c+"['argPackAdvance'];\n";return(new Function("requireRegisteredType","Module","__emval_register",d+("var obj = new constructor("+b+");\nreturn __emval_register(obj);\n}\n")))(Nb, e,U)}var Yb={};function Zb(a){try{var b=new ArrayBuffer(a);if(b.byteLength!=a)return!1;(new Int8Array(b)).set(y)}catch(c){return!1}e._emscripten_replace_memory(b);y=new Int8Array(b);z=new Int16Array(b);B=new Int32Array(b);w=new Uint8Array(b);A=new Uint16Array(b);C=new Uint32Array(b);pa=new Float32Array(b);qa=new Float64Array(b);return buffer=b}Ma=e.InternalError=La(Error,"InternalError");Qa();Q=e.BindingError=La(Error,"BindingError");cb();yb();tb();Ab=e.UnboundTypeError=La(Error,"UnboundTypeError"); Lb(); var $b={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:Infinity},bc={a:v,b:function(a){ja=a},c:function(){return ja},d:S,e:Va,f:Xa,g:bb,h:Sa,i:Ya,j:gb,k:V,l:nb,m:mb,n:xb,o:lb,p:function(a){e.___errno_location&&(B[e.___errno_location()>>2]=a);return a},q:function(a,b){H=b;try{var c=Ga.Qa();I();var d=I(),f=I(),g=I();(void 0).Ya(c,d,g);B[f>>2]=c.position;c.Ra&& 0===d&&0===g&&(c.Ra=null);return 0}catch(k){return v(k),-k.Ga}},r:function(a,b){H=b;try{var c=I(),d=I(),f=I();for(b=a=0;b<f;b++){for(var g=B[d+8*b>>2],k=B[d+(8*b+4)>>2],h=0;h<k;h++)Fa(c,w[g+h]);a+=k}return a}catch(n){return v(n),-n.Ga}},s:function(a,b){H=b;try{var c=Ga.Qa();(void 0).close(c);return 0}catch(d){return v(d),-d.Ga}},t:function(a){var b=Ha[a];delete Ha[a];var c=b.elements,d=c.length,f=c.map(function(a){return a.za}).concat(c.map(function(a){return a.Da})),g=b.ra,k=b.ka;N([a],f,function(a){c.forEach(function(b, c){var f=a[c],g=b.xa,h=b.ya,k=a[c+d],m=b.Ca,n=b.Ea;b.read=function(a){return f.fromWireType(g(h,a))};b.write=function(a,b){var c=[];m(n,a,k.toWireType(c,b));J(c)}});return[{name:b.name,fromWireType:function(a){for(var b=Array(d),f=0;f<d;++f)b[f]=c[f].read(a);k(a);return b},toWireType:function(a,f){if(d!==f.length)throw new TypeError("Incorrect number of tuple elements for "+b.name+": expected="+d+", actual="+f.length);for(var h=g(),m=0;m<d;++m)c[m].write(h,f[m]);null!==a&&a.push(k,h);return h},argPackAdvance:8, readValueFromPointer:K,ia:k}]})},u:function(a){var b=Oa[a];delete Oa[a];var c=b.ra,d=b.ka,f=b.Ha,g=f.map(function(a){return a.za}).concat(f.map(function(a){return a.Da}));N([a],g,function(a){var g={};f.forEach(function(b,c){var d=a[c],h=b.xa,k=b.ya,m=a[c+f.length],n=b.Ca,ic=b.Ea;g[b.Na]={read:function(a){return d.fromWireType(h(k,a))},write:function(a,b){var c=[];n(ic,a,m.toWireType(c,b));J(c)}}});return[{name:b.name,fromWireType:function(a){var b={},c;for(c in g)b[c]=g[c].read(a);d(a);return b}, toWireType:function(a,b){for(var f in g)if(!(f in b))throw new TypeError("Missing field");var h=c();for(f in g)g[f].write(h,b[f]);null!==a&&a.push(d,h);return h},argPackAdvance:8,readValueFromPointer:K,ia:d}]})},v:function(a,b,c,d,f){var g=Pa(c);b=P(b);O(a,{name:b,fromWireType:function(a){return!!a},toWireType:function(a,b){return b?d:f},argPackAdvance:8,readValueFromPointer:function(a){if(1===c)var d=y;else if(2===c)d=z;else if(4===c)d=B;else throw new TypeError("Unknown boolean type size: "+b); return this.fromWireType(d[a>>g])},ia:null})},w:function(a,b,c,d,f,g,k,h,n,m,p,u,Aa){p=P(p);g=W(f,g);h&&(h=W(k,h));m&&(m=W(n,m));Aa=W(u,Aa);var x=Ja(p);fb(x,function(){Db("Cannot construct "+p+" due to unbound types",[d])});N([a,b,c],d?[d]:[],function(b){b=b[0];if(d){var c=b.ea;var f=c.pa}else f=S.prototype;b=Ka(x,function(){if(Object.getPrototypeOf(this)!==k)throw new Q("Use 'new' to construct "+p);if(void 0===n.na)throw new Q(p+" has no accessible constructor");var a=n.na[arguments.length];if(void 0=== a)throw new Q("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(n.na).toString()+") parameters instead!");return a.apply(this,arguments)});var k=Object.create(f,{constructor:{value:b}});b.prototype=k;var n=new gb(p,b,k,Aa,c,g,h,m);c=new V(p,n,!0,!1,!1);f=new V(p+"*",n,!1,!1,!1);var u=new V(p+" const*",n,!1,!0,!1);db[a]={pointerType:f,Ka:u};zb(x,b);return[c,f,u]})},x:function(a,b,c,d,f,g){var k=Eb(b,c);f=W(d,f);N([],[a],function(a){a= a[0];var c="constructor "+a.name;void 0===a.ea.na&&(a.ea.na=[]);if(void 0!==a.ea.na[b-1])throw new Q("Cannot register multiple constructors with identical number of parameters ("+(b-1)+") for class '"+a.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");a.ea.na[b-1]=function(){Db("Cannot construct "+a.name+" due to unbound types",k)};N([],k,function(d){a.ea.na[b-1]=function(){arguments.length!==b-1&&R(c+" called with "+arguments.length+" arguments, expected "+ (b-1));var a=[],k=Array(b);k[0]=g;for(var h=1;h<b;++h)k[h]=d[h].toWireType(a,arguments[h-1]);k=f.apply(null,k);J(a);return d[0].fromWireType(k)};return[]});return[]})},y:function(a,b,c,d,f,g,k,h){var n=Eb(c,d);b=P(b);g=W(f,g);N([],[a],function(a){function d(){Db("Cannot call "+f+" due to unbound types",n)}a=a[0];var f=a.name+"."+b;h&&a.ea.Va.push(b);var m=a.ea.pa,x=m[b];void 0===x||void 0===x.ha&&x.className!==a.name&&x.ta===c-2?(d.ta=c-2,d.className=a.name,m[b]=d):(eb(m,b,f),m[b].ha[c-2]=d);N([], n,function(d){d=Gb(f,d,a,g,k);void 0===m[b].ha?(d.ta=c-2,m[b]=d):m[b].ha[c-2]=d;return[]});return[]})},z:function(a,b,c){a=P(a);N([],[b],function(b){b=b[0];e[a]=b.fromWireType(c);return[]})},A:function(a,b){b=P(b);O(a,{name:b,fromWireType:function(a){var b=Y[a].value;Ib(a);return b},toWireType:function(a,b){return U(b)},argPackAdvance:8,readValueFromPointer:K,ia:null})},B:function(a,b,c,d){function f(){}c=Pa(c);b=P(b);f.values={};O(a,{name:b,constructor:f,fromWireType:function(a){return this.constructor.values[a]}, toWireType:function(a,b){return b.value},argPackAdvance:8,readValueFromPointer:Mb(b,c,d),ia:null});fb(b,f)},C:function(a,b,c){var d=Nb(a,"enum");b=P(b);a=d.constructor;d=Object.create(d.constructor.prototype,{value:{value:c},constructor:{value:Ka(d.name+"_"+b,function(){})}});a.values[c]=d;a[b]=d},D:function(a,b,c){c=Pa(c);b=P(b);O(a,{name:b,fromWireType:function(a){return a},toWireType:function(a,b){if("number"!==typeof b&&"boolean"!==typeof b)throw new TypeError('Cannot convert "'+T(b)+'" to '+ this.name);return b},argPackAdvance:8,readValueFromPointer:Ob(b,c),ia:null})},E:function(a,b,c,d,f,g){var k=Eb(b,c);a=P(a);f=W(d,f);fb(a,function(){Db("Cannot call "+a+" due to unbound types",k)},b-1);N([],k,function(c){c=[c[0],null].concat(c.slice(1));zb(a,Gb(a,c,null,f,g),b-1);return[]})},F:function(a,b,c,d,f){function g(a){return a}b=P(b);-1===f&&(f=4294967295);var k=Pa(c);if(0===d){var h=32-8*c;g=function(a){return a<<h>>>h}}var n=-1!=b.indexOf("unsigned");O(a,{name:b,fromWireType:g,toWireType:function(a, c){if("number"!==typeof c&&"boolean"!==typeof c)throw new TypeError('Cannot convert "'+T(c)+'" to '+this.name);if(c<d||c>f)throw new TypeError('Passing a number "'+T(c)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+d+", "+f+"]!");return n?c>>>0:c|0},argPackAdvance:8,readValueFromPointer:Pb(b,k,0!==d),ia:null})},G:function(a,b,c){function d(a){a>>=2;var b=C;return new f(b.buffer,b[a+1],b[a])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array, Uint32Array,Float32Array,Float64Array][b];c=P(c);O(a,{name:c,fromWireType:d,argPackAdvance:8,readValueFromPointer:d},{Sa:!0})},H:function(a,b){b=P(b);var c="std::string"===b;O(a,{name:b,fromWireType:function(a){var b=C[a>>2];if(c){var d=w[a+4+b],k=0;0!=d&&(k=d,w[a+4+b]=0);var h=a+4;for(d=0;d<=b;++d){var n=a+4+d;if(0==w[n]){h=h?ma(w,h,void 0):"";if(void 0===m)var m=h;else m+=String.fromCharCode(0),m+=h;h=n+1}}0!=k&&(w[a+4+b]=k)}else{m=Array(b);for(d=0;d<b;++d)m[d]=String.fromCharCode(w[a+4+d]);m=m.join("")}X(a); return m},toWireType:function(a,b){b instanceof ArrayBuffer&&(b=new Uint8Array(b));var d="string"===typeof b;d||b instanceof Uint8Array||b instanceof Uint8ClampedArray||b instanceof Int8Array||R("Cannot pass non-string to std::string");var f=(c&&d?function(){for(var a=0,c=0;c<b.length;++c){var d=b.charCodeAt(c);55296<=d&&57343>=d&&(d=65536+((d&1023)<<10)|b.charCodeAt(++c)&1023);127>=d?++a:a=2047>=d?a+2:65535>=d?a+3:a+4}return a}:function(){return b.length})(),h=ac(4+f+1);C[h>>2]=f;if(c&&d)na(b,h+ 4,f+1);else if(d)for(d=0;d<f;++d){var n=b.charCodeAt(d);255<n&&(X(h),R("String has UTF-16 code units that do not fit in 8 bits"));w[h+4+d]=n}else for(d=0;d<f;++d)w[h+4+d]=b[d];null!==a&&a.push(X,h);return h},argPackAdvance:8,readValueFromPointer:K,ia:function(a){X(a)}})},I:function(a,b,c){c=P(c);if(2===b){var d=function(){return A};var f=1}else 4===b&&(d=function(){return C},f=2);O(a,{name:c,fromWireType:function(a){for(var b=d(),c=C[a>>2],g=Array(c),m=a+4>>f,p=0;p<c;++p)g[p]=String.fromCharCode(b[m+ p]);X(a);return g.join("")},toWireType:function(a,c){var g=d(),k=c.length,m=ac(4+k*b);C[m>>2]=k;for(var p=m+4>>f,u=0;u<k;++u)g[p+u]=c.charCodeAt(u);null!==a&&a.push(X,m);return m},argPackAdvance:8,readValueFromPointer:K,ia:function(a){X(a)}})},J:function(a,b,c,d,f,g){Ha[a]={name:P(b),ra:W(c,d),ka:W(f,g),elements:[]}},K:function(a,b,c,d,f,g,k,h,n){Ha[a].elements.push({za:b,xa:W(c,d),ya:f,Da:g,Ca:W(k,h),Ea:n})},L:function(a,b,c,d,f,g){Oa[a]={name:P(b),ra:W(c,d),ka:W(f,g),Ha:[]}},M:function(a,b,c,d, f,g,k,h,n,m){Oa[a].Ha.push({Na:P(b),za:c,xa:W(d,f),ya:g,Da:k,Ca:W(h,n),Ea:m})},N:function(a,b){b=P(b);O(a,{Ta:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},O:Vb,P:function(a){var b=[];B[a>>2]=U(b);return b},Q:function(a,b,c,d){a=Sb[a];b=Tb(b);c=Rb(c);a(b,c,null,d)},R:Ib,S:function(a){if(0===a)return U(Ub());a=Rb(a);return U(Ub()[a])},T:function(a,b){b=Wb(a,b);for(var c=b[0],d=c.name+"_$"+b.slice(1).map(function(a){return a.name}).join("_")+"$",f=["retType"],g=[c], k="",h=0;h<a-1;++h)k+=(0!==h?", ":"")+"arg"+h,f.push("argType"+h),g.push(b[1+h]);d="return function "+Ja("methodCaller_"+d)+"(handle, name, destructors, args) {\n";var n=0;for(h=0;h<a-1;++h)d+=" var arg"+h+" = argType"+h+".readValueFromPointer(args"+(n?"+"+n:"")+");\n",n+=b[h+1].argPackAdvance;d+=" var rv = handle[name]("+k+");\n";for(h=0;h<a-1;++h)b[h+1].deleteObject&&(d+=" argType"+h+".deleteObject(arg"+h+");\n");c.Ta||(d+=" return retType.toWireType(destructors, rv);\n");f.push(d+"};\n"); a=Fb(Function,f).apply(null,g);return Vb(a)},U:function(a){4<a&&(Y[a].Ba+=1)},V:Wb,W:function(a,b,c,d){a=Tb(a);var f=Yb[b];f||(f=Xb(b),Yb[b]=f);return f(a,c,d)},X:function(){return U([])},Y:function(a){return U(Rb(a))},Z:U,_:function(a,b){a=Nb(a,"_emval_take_value");a=a.readValueFromPointer(b);return U(a)},$:function(){e.abort()},aa:T,ab:function(){return D},ac:function(a,b,c){w.set(w.subarray(b,b+c),a)},ad:function(a){if(2130706432<a)return!1;for(var b=Math.max(D,16777216);b<a;)536870912>=b?b=oa(2* b):b=Math.min(oa((3*b+2147483648)/4),2130706432);var c=Zb(b);if(!c||c.byteLength!=b)return!1;e.buffer=buffer=c;ra();D=b;C[2108]=a;return!0},ae:function(a,b){return 0>b||0===b&&0>1/b?-za(a):za(a)},af:function(a,b){return 0>b||0===b&&0>1/b?-za(a):za(a)},ag:function(){},ah:function(){},ai:function(){},aj:function(){},ak:function(a){v("Cannot enlarge memory arrays to size "+a+" bytes. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+D+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}, al:ib,am:Jb,an:Xb,ao:Gb,ap:Ka,aq:ob,ar:W,as:Qa,at:Zb,au:Ub,av:eb,aw:Mb,ax:fb,ay:La,az:Ob,aA:ab,aB:function(){var a=e._fflush;a&&a(0);Ea[1].length&&Fa(1,10);Ea[2].length&&Fa(2,10)},aC:jb,aD:ub,aE:vb,aF:pb,aG:rb,aH:Pa,aI:Rb,aJ:Bb,aK:Kb,aL:Eb,aM:cb,aN:yb,aO:tb,aP:Lb,aQ:Pb,aR:wb,aS:Ja,aT:Fb,aU:kb,aV:P,aW:O,aX:zb,aY:Tb,aZ:Nb,a_:Wa,a$:J,ba:sb,bb:Ta,bc:K,bd:R,be:Ua,bf:Na,bg:Db,bh:hb,bi:N,bj:8672,bk:8432};// EMSCRIPTEN_START_ASM var Z=(/** @suppress {uselessCode} */ function(global,env,buffer) { "almost asm";var a=new global.Int8Array(buffer),b=new global.Int16Array(buffer),c=new global.Int32Array(buffer),d=new global.Uint8Array(buffer),e=new global.Uint16Array(buffer),f=new global.Float32Array(buffer),g=new global.Float64Array(buffer),h=env.bj|0,i=env.bk|0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0.0,r=global.NaN,s=global.Infinity,t=global.Math.floor,u=global.Math.abs,v=global.Math.sqrt,w=global.Math.pow,x=global.Math.cos,y=global.Math.sin,z=global.Math.tan,A=global.Math.acos,B=global.Math.atan2,C=global.Math.ceil,D=global.Math.imul,E=global.Math.clz32,F=env.a,G=env.b,H=env.c,I=env.d,J=env.e,K=env.f,L=env.g,M=env.h,N=env.i,O=env.j,P=env.k,Q=env.l,R=env.m,S=env.n,T=env.o,U=env.p,V=env.q,W=env.r,X=env.s,Y=env.t,Z=env.u,_=env.v,$=env.w,aa=env.x,ba=env.y,ca=env.z,da=env.A,ea=env.B,fa=env.C,ga=env.D,ha=env.E,ia=env.F,ja=env.G,ka=env.H,la=env.I,ma=env.J,na=env.K,oa=env.L,pa=env.M,qa=env.N,ra=env.O,sa=env.P,ta=env.Q,ua=env.R,va=env.S,wa=env.T,xa=env.U,ya=env.V,za=env.W,Aa=env.X,Ba=env.Y,Ca=env.Z,Da=env._,Ea=env.$,Fa=env.aa,Ga=env.ab,Ha=env.ac,Ia=env.ad,Ja=env.ae,Ka=env.af,La=env.ag,Ma=env.ah,Na=env.ai,Oa=env.aj,Pa=env.ak,Qa=env.al,Ra=env.am,Sa=env.an,Ta=env.ao,Ua=env.ap,Va=env.aq,Wa=env.ar,Xa=env.as,Ya=env.at,Za=env.au,_a=env.av,$a=env.aw,ab=env.ax,bb=env.ay,cb=env.az,db=env.aA,eb=env.aB,fb=env.aC,gb=env.aD,hb=env.aE,ib=env.aF,jb=env.aG,kb=env.aH,lb=env.aI,mb=env.aJ,nb=env.aK,ob=env.aL,pb=env.aM,qb=env.aN,rb=env.aO,sb=env.aP,tb=env.aQ,ub=env.aR,vb=env.aS,wb=env.aT,xb=env.aU,yb=env.aV,zb=env.aW,Ab=env.aX,Bb=env.aY,Cb=env.aZ,Db=env.a_,Eb=env.a$,Fb=env.ba,Gb=env.bb,Hb=env.bc,Ib=env.bd,Jb=env.be,Kb=env.bf,Lb=env.bg,Mb=env.bh,Nb=env.bi,Ob=8688,Pb=5251568,Qb=0.0;function Rb(newBuffer){a=new Int8Array(newBuffer);d=new Uint8Array(newBuffer);b=new Int16Array(newBuffer);e=new Uint16Array(newBuffer);c=new Int32Array(newBuffer);f=new Float32Array(newBuffer);g=new Float64Array(newBuffer);buffer=newBuffer;return true} // EMSCRIPTEN_START_FUNCS function ag(b,d,e,h,i){b=b|0;d=d|0;e=e|0;h=h|0;i=i|0;var j=0.0,k=0.0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;q=c[(c[d+16>>2]|0)+32>>2]|0;n=c[(c[h+16>>2]|0)+32>>2]|0;l=c[q+196>>2]|0;m=c[n+196>>2]|0;a:do if((l|0)>=(m|0)){r=e;o=l;p=n;while(1){b:do if((o|0)<=(m|0)){n=(o-(o+1>>2)<<1)+2|0;if((n|0)<=0){e=r;break a}m=0;l=c[p+164>>2]|0;e=c[q+164>>2]|0;while(1){j=+f[e>>2];k=+f[l>>2];if(j<k){e=r;break a}if(j>k)break b;m=m+1|0;if((m|0)>=(n|0)){e=r;break a}else{l=l+4|0;e=e+4|0}}}while(0);q=+g[h>>3]<+g[i>>3];l=q?h:i;e=q?i:h;h=q?d:r;i=q?r:d;q=c[(c[l+16>>2]|0)+32>>2]|0;p=c[(c[h+16>>2]|0)+32>>2]|0;o=c[q+196>>2]|0;m=c[p+196>>2]|0;if((o|0)<(m|0)){d=l;break}else{d=l;r=e}}}while(0);o=c[d+16>>2]|0;n=c[e+16>>2]|0;m=c[h+16>>2]|0;e=c[i+16>>2]|0;h=c[c[b+8>>2]>>2]|0;l=h+4|0;i=c[l>>2]|0;d=0-i&3;if((d|20)>>>0>((c[h+8>>2]|0)-i|0)>>>0){ni(h,20);i=c[l>>2]|0;d=0-i&3}r=i+d|0;c[l>>2]=r+20;c[r>>2]=c[b>>2];c[r+4>>2]=o;a[o+26>>0]=1;c[r+12>>2]=m;a[m+26>>0]=1;c[r+8>>2]=n;a[n+26>>0]=1;c[r+16>>2]=e;a[e+26>>0]=1;c[b>>2]=r;return}function bg(d,e,h){d=d|0;e=e|0;h=h|0;var i=0.0,j=0.0,k=0,l=0,m=0,n=0,o=0.0,p=0,q=0,r=0,s=0,t=0.0,u=0.0,v=0.0,w=0.0,x=0.0,y=0.0,z=0;p=Ob;Ob=Ob+960|0;k=p+928|0;m=p+464|0;n=p;q=d+208|0;z=c[q>>2]|0;r=c[z+32>>2]|0;s=c[r+196>>2]|0;l=d+212|0;d=c[l>>2]|0;t=+f[z+8>>2];i=t;w=+f[z+12>>2];j=w;u=+f[d+8>>2];y=(t+u)*.5;g[k>>3]=y;x=+f[d+12>>2];v=(w+x)*.5;g[k+8>>3]=v;g[k+16>>3]=y+(x-w);g[k+24>>3]=v-(u-t);a[m+457>>0]=0;b[m+452>>1]=0;ij(m|0,0,448)|0;a[m+456>>0]=1;a[m+454>>0]=0;c[m+448>>2]=0;a[m+455>>0]=0;sc[c[1392+(s<<2)>>2]&15](c[r+164>>2]|0,+f[r+184>>2],k,m);l=ck(m,+g[c[q>>2]>>3],+g[c[l>>2]>>3],i,j)|0;if((l|0)<0){z=0;Ob=p;return z|0}d=e+208|0;z=c[(c[d>>2]|0)+32>>2]|0;s=c[z+196>>2]|0;a[n+457>>0]=0;b[n+452>>1]=0;ij(n|0,0,448)|0;a[n+456>>0]=1;a[n+454>>0]=0;c[n+448>>2]=0;a[n+455>>0]=0;sc[c[1392+(s<<2)>>2]&15](c[z+164>>2]|0,+f[z+184>>2],k,n);d=ck(n,+g[c[d>>2]>>3],+g[c[e+212>>2]>>3],i,j)|0;if((d|0)>=0?(y=(+g[m+(l<<4)>>3]-i)*(+g[n+(d<<4)+8>>3]-j),o=(+g[m+(l<<4)+8>>3]-j)*(+g[n+(d<<4)>>3]-i),z=pm(y,o)|0,o=z?0.0:y-o,o!=0.0):0){a[h>>0]=o<0.0&1;d=1}else d=0;z=d;Ob=p;return z|0}function cg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,h=0,i=0,j=0,k=0,l=0.0;e=b>>>1;if(e|0)do{h=e;e=e+-1|0;f=a+(e<<2)|0;k=c[f>>2]|0;i=h<<1;a:do if(i>>>0<=b>>>0){l=+g[d+(k<<3)>>3];while(1){if(i>>>0<b>>>0)j=i|+g[d+(c[a+(i+-1<<2)>>2]<<3)>>3]<+g[d+(c[a+(i<<2)>>2]<<3)>>3];else j=i;f=a+(j+-1<<2)|0;i=c[f>>2]|0;h=a+(h+-1<<2)|0;if(!(l<+g[d+(i<<3)>>3])){f=h;break a}c[h>>2]=i;i=j<<1;if(i>>>0>b>>>0)break;else h=j}}while(0);c[f>>2]=k}while((e|0)!=0);e=b+-1|0;if(!e)return;while(1){b=a+(e<<2)|0;k=c[a>>2]|0;c[a>>2]=c[b>>2];c[b>>2]=k;b=c[a>>2]|0;if((e|0)==1){e=12;break}h=1;i=2;while(1){if(i>>>0<e>>>0)j=i|+g[d+(c[a+(i+-1<<2)>>2]<<3)>>3]<+g[d+(c[a+(i<<2)>>2]<<3)>>3];else j=i;f=a+(j+-1<<2)|0;c[a+(h+-1<<2)>>2]=c[f>>2];i=j<<1;if(i>>>0>e>>>0)break;else h=j}h=j>>>1;b:do if(h){l=+g[d+(b<<3)>>3];k=h;while(1){f=a+(k+-1<<2)|0;i=c[f>>2]|0;h=a+(j+-1<<2)|0;if(!(+g[d+(i<<3)>>3]<l)){f=h;break b}c[h>>2]=i;h=k>>>1;if(!h)break;else{j=k;k=h}}}while(0);c[f>>2]=b;e=e+-1|0;if(!e){e=12;break}}if((e|0)==12)return}function dg(b,d){b=b|0;d=d|0;var e=0,g=0,h=0.0,i=0.0,j=0,k=0,l=0,m=0,n=0,o=0;n=Ob;Ob=Ob+16|0;j=n;k=b+24|0;if(+f[k>>2]==+f[d>>2]?+f[b+28>>2]==+f[d+4>>2]:0){m=1;Ob=n;return m|0}g=d;m=c[g+4>>2]|0;l=k;c[l>>2]=c[g>>2];c[l+4>>2]=m;l=b+8|0;m=b+16|0;h=+f[m>>2];if(+f[l>>2]==h?(i=+f[b+20>>2],+f[b+12>>2]==i):0){o=d;g=c[o+4>>2]|0;j=b;c[j>>2]=c[o>>2];c[j+4>>2]=g;a[b+46>>0]=(+f[d>>2]==h?1:+f[d+4>>2]==i)&1}else e=6;a:do if((e|0)==6){g=fg(b)|0;switch(g|0){case 2:case 1:{d=b+32|0;e=c[d>>2]|0;if((e|0)==6){c[d>>2]=g;c[b+36>>2]=(g|0)!=2&1;break a}if((g|0)==(e|0))break a;c[b+36>>2]=2;o=0;Ob=n;return o|0}case 6:{c[j>>2]=6328;c[j+4>>2]=2777;c[j+8>>2]=6354;Mq(6597,j);break a}case 4:{c[b+36>>2]=2;o=0;Ob=n;return o|0}case 5:{j=b+40|0;o=c[j>>2]|0;c[j>>2]=o+1;if((o|0)<2)break a;else d=0;Ob=n;return d|0}case 0:{a[b+44>>0]=0;o=0;Ob=n;return o|0}default:break a}}while(0);j=m;o=c[j+4>>2]|0;c[l>>2]=c[j>>2];c[l+4>>2]=o;l=c[k+4>>2]|0;o=m;c[o>>2]=c[k>>2];c[o+4>>2]=l;a[b+45>>0]=a[b+46>>0]|0;o=1;Ob=n;return o|0}function eg(a,b,d){a=a|0;b=b|0;d=+d;var e=0,f=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0;if(d==.5){c[a>>2]=c[b>>2];c[a+4>>2]=c[b+4>>2];c[a+8>>2]=c[b+8>>2];c[a+12>>2]=c[b+12>>2];d=+g[b>>3];k=+g[b+16>>3];g[a+16>>3]=(d+k)*.5;l=+g[b+8>>3];j=+g[b+24>>3];g[a+24>>3]=(l+j)*.5;i=+g[b+32>>3];g[a+32>>3]=(d+k*2.0+i)*.25;f=+g[b+40>>3];g[a+40>>3]=(l+j*2.0+f)*.25;e=b+48|0;h=+g[e>>3];g[a+48>>3]=(d+(k+i)*3.0+h)*.125;d=+g[b+56>>3];g[a+56>>3]=(l+(j+f)*3.0+d)*.125;g[a+64>>3]=(k+i*2.0+h)*.25;g[a+72>>3]=(j+f*2.0+d)*.25;g[a+80>>3]=(i+h)*.5;g[a+88>>3]=(f+d)*.5;b=a+96|0;c[b>>2]=c[e>>2];c[b+4>>2]=c[e+4>>2];c[b+8>>2]=c[e+8>>2];c[b+12>>2]=c[e+12>>2];return}else{i=+g[b>>3];h=+g[b+16>>3];l=i+(h-i)*d;j=+g[b+32>>3];h=h+(j-h)*d;f=+g[b+48>>3];j=j+(f-j)*d;k=l+(h-l)*d;h=h+(j-h)*d;g[a>>3]=i;g[a+16>>3]=l;g[a+32>>3]=k;g[a+48>>3]=k+(h-k)*d;g[a+64>>3]=h;g[a+80>>3]=j;g[a+96>>3]=f;b=b+8|0;e=a+8|0;f=+g[b>>3];j=+g[b+16>>3];h=f+(j-f)*d;k=+g[b+32>>3];j=j+(k-j)*d;l=+g[b+48>>3];k=k+(l-k)*d;i=h+(j-h)*d;j=j+(k-j)*d;g[e>>3]=f;g[e+16>>3]=h;g[e+32>>3]=i;g[e+48>>3]=i+(j-i)*d;g[e+64>>3]=j;g[e+80>>3]=k;g[e+96>>3]=l;return}}function fg(b){b=b|0;var d=0,e=0.0,g=0.0,i=0,j=0,k=0.0,l=0.0,m=0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0.0;m=b+24|0;s=+f[m>>2];j=b+16|0;q=+f[j>>2];i=s==q;if(i)d=1;else d=+f[b+28>>2]==+f[b+20>>2];a[b+46>>0]=d&1;if((a[b+45>>0]|0)==0|d^1){n=q-+f[b+8>>2];i=b+20|0;g=+f[i>>2];o=g-+f[b+12>>2];p=s-q;d=b+28|0;e=+f[d>>2];k=e-g;l=n*k-p*o;if(((f[h>>2]=l,c[h>>2]|0)&2139095040|0)==2139095040){r=0;return r|0}b=q<g?j:i;b=e<+f[b>>2]?d:b;j=g<q?j:i;d=+f[j>>2]<e?d:j;d=c[(+f[d>>2]<s?m:d)>>2]|0;e=-+f[(s<+f[b>>2]?m:b)>>2];m=e<(c[h>>2]=d,+f[h>>2]);d=m?d:(f[h>>2]=e,c[h>>2]|0);if(((d&2139095040|0)!=2139095040?(r=(f[h>>2]=l+(c[h>>2]=d,+f[h>>2]),c[h>>2]|0),(r&2139095040|0)!=2139095040):0)?(m=(d|0)<0?0-(d&2147483647)|0:d,r=(r|0)<0?0-(r&2147483647)|0:r,(r|0)<(m+16|0)&(m|0)<(r+16|0)):0){r=p*n+o*k<0.0?5:3;return r|0}r=l>0.0?2:1;return r|0}e=+f[b+28>>2];g=+f[b+20>>2];if(e==g)d=g==+f[b+12>>2];else d=0;if(i?q==+f[b+8>>2]:0){if(d){r=3;return r|0}r=g<e^+f[b+12>>2]<g?5:3;return r|0}if(d){r=q<s^+f[b+8>>2]<q?5:3;return r|0}if(s!=q)d=s>q^g>+f[b+12>>2];else d=e>g^q>+f[b+8>>2]^1;r=d?2:1;return r|0}function gg(b,d,e,f,h,i){b=b|0;d=d|0;e=e|0;f=f|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;t=Ob;Ob=Ob+16|0;p=t+4|0;q=t+8|0;r=t;c[p>>2]=d;o=+g[d>>3]<+g[e>>3];d=o?d:e;c[q>>2]=d;o=o?1:-1;if(!(a[d+88>>0]|0)){Fo(d,f);Go(d,h);n=1}else n=0;c[r>>2]=0;d=lg(p,o,q,r)|0;a:do if(d|0){m=b+152|0;l=1e5;while(1){l=l+-1|0;if(!l){d=0;s=21;break}k=c[q>>2]|0;e=c[k+68>>2]|0;b=c[m>>2]|0;j=(a[b+253>>0]|0)!=0^(a[(c[d+152>>2]|0)+253>>0]|0)!=0;if((e|0)!=-2147483647)break;d=(a[k+88>>0]|0)==0;if(j){if(d){Fo(k,h);Go(k,f)}}else if(d){Fo(k,f);Go(k,h)}d=lg(p,o,q,r)|0;if(!d)break a}if((s|0)==21){Ob=t;return d|0}if(j){if((e|0)!=(h|0)){s=0;Ob=t;return s|0}if((c[k+72>>2]|0)==(f|0))break;else d=0;Ob=t;return d|0}else{if((e|0)==(f|0)?(c[k+72>>2]|0)==(h|0):0)break;a[(c[b>>2]|0)+17>>0]=1;s=1;Ob=t;return s|0}}while(0);if(!i){s=n;Ob=t;return s|0}c[i>>2]=c[r>>2];s=n;Ob=t;return s|0}function hg(d,e){d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0.0,n=0.0,o=0,p=0,q=0,s=0,t=0,u=0,v=0;c[d>>2]=e;i=d+4|0;gk(i,d+36|0);k=d+1064|0;j=d+1072|0;c[k>>2]=0;c[k+4>>2]=0;c[k+8>>2]=0;b[k+12>>1]=0;a[k+14>>0]=0;k=c[d>>2]|0;l=d+8|0;f=c[l>>2]|0;h=0-f&7;if((h|152)>>>0>((c[d+12>>2]|0)-f|0)>>>0){ni(i,152);f=c[l>>2]|0;h=0-f&7}h=f+h|0;c[l>>2]=h+152;v=h+24|0;g[v>>3]=-1.0;u=h+32|0;a[u>>0]=0;t=h+16|0;g[t>>3]=r;s=h+8|0;g[s>>3]=r;q=h+56|0;g[q>>3]=-1.0;p=h+64|0;a[p>>0]=0;o=h+48|0;g[o>>3]=r;f=h+40|0;g[f>>3]=r;i=$b[c[(c[k>>2]|0)+56>>2]&31](k,i)|0;c[h>>2]=i;k=h+145|0;a[k>>0]=0;l=h+148|0;a[l>>0]=0;c[j>>2]=(c[j>>2]|0)+1;c[d+1060>>2]=h;c[h+80>>2]=0;c[h+76>>2]=0;g[h+120>>3]=0.0;g[h+128>>3]=1.0;c[h+72>>2]=0;a[h+147>>0]=0;a[h+146>>0]=0;rc[c[(c[e>>2]|0)+84>>2]&15](e,0.0,1.0,i);j=h+88|0;i=c[h>>2]|0;tc[c[(c[i>>2]|0)+80>>2]&31](i,j);g[v>>3]=-1.0;a[u>>0]=0;g[t>>3]=r;g[s>>3]=r;g[q>>3]=-1.0;a[p>>0]=0;g[o>>3]=r;g[f>>3]=r;n=+g[h+104>>3]-+g[j>>3];m=+g[h+112>>3]-+g[h+96>>3];g[h+136>>3]=m<n?n:m;j=c[h>>2]|0;j=(Xb[c[(c[j>>2]|0)+16>>2]&63](j)|0)&1;a[h+144>>0]=j;a[k>>0]=0;a[l>>0]=0;return}function ig(a,b){a=a|0;b=b|0;var d=0,e=0,f=0,h=0,i=0,j=0.0,k=0;d=b>>>1;if(d|0)do{f=d;d=d+-1|0;e=a+(d<<2)|0;k=c[e>>2]|0;h=f<<1;a:do if(h>>>0<=b>>>0){j=+g[k+40>>3];while(1){if(h>>>0<b>>>0)i=h|+g[(c[a+(h+-1<<2)>>2]|0)+40>>3]<+g[(c[a+(h<<2)>>2]|0)+40>>3];else i=h;e=a+(i+-1<<2)|0;h=c[e>>2]|0;if(!(j<+g[h+40>>3]))break;c[a+(f+-1<<2)>>2]=h;h=i<<1;if(h>>>0>b>>>0)break a;else f=i}e=a+(f+-1<<2)|0}while(0);c[e>>2]=k}while((d|0)!=0);d=b+-1|0;if(!d)return;while(1){k=a+(d<<2)|0;b=c[a>>2]|0;c[a>>2]=c[k>>2];c[k>>2]=b;k=c[a>>2]|0;if((d|0)==1){d=13;break}f=1;h=2;while(1){if(h>>>0<d>>>0)i=h|+g[(c[a+(h+-1<<2)>>2]|0)+40>>3]<+g[(c[a+(h<<2)>>2]|0)+40>>3];else i=h;e=a+(i+-1<<2)|0;c[a+(f+-1<<2)>>2]=c[e>>2];h=i<<1;if(h>>>0>d>>>0)break;else f=i}f=i>>>1;b:do if(f){j=+g[k+40>>3];h=f;while(1){e=a+(h+-1<<2)|0;f=c[e>>2]|0;if(!(+g[f+40>>3]<j))break;c[a+(i+-1<<2)>>2]=f;f=h>>>1;if(!f)break b;else{i=h;h=f}}e=a+(i+-1<<2)|0}while(0);c[e>>2]=k;d=d+-1|0;if(!d){d=13;break}}if((d|0)==13)return}function jg(d,e,h){d=d|0;e=+e;h=h|0;var i=0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0,p=0,q=0,r=0,s=0,t=0,w=0;r=Ob;Ob=Ob+528|0;p=r+512|0;i=r+496|0;s=r+464|0;q=r;w=d+196|0;t=d+164|0;o=d+184|0;vc[c[720+(c[w>>2]<<2)>>2]&63](p,c[t>>2]|0,+f[o>>2],e);vc[c[752+(c[w>>2]<<2)>>2]&63](i,c[t>>2]|0,+f[o>>2],e);c[s>>2]=c[p>>2];c[s+4>>2]=c[p+4>>2];c[s+8>>2]=c[p+8>>2];c[s+12>>2]=c[p+12>>2];g[s+16>>3]=+g[p>>3]+ +g[i+8>>3];o=p+8|0;g[s+24>>3]=+g[o>>3]-+g[i>>3];a[q+457>>0]=0;b[q+452>>1]=0;ij(q|0,0,448)|0;a[q+456>>0]=1;i=q+454|0;a[i>>0]=0;c[q+448>>2]=0;a[q+455>>0]=0;sc[c[784+(c[h+196>>2]<<2)>>2]&15](c[h+164>>2]|0,+f[h+184>>2],s,q);i=a[i>>0]|0;h=i&255;if(!(i<<24>>24)){w=0;Ob=r;return w|0}d=0;while(1){e=+g[p>>3];i=q+(d<<4)|0;j=+g[i>>3];k=e-j;w=+u(+k)<7.62939453125e-06;l=+g[o>>3];m=+g[q+(d<<4)+8>>3];n=l-m;if(w&+u(+n)<7.62939453125e-06){d=1;h=6;break}k=+v(+(k*k+n*n));n=+g[(e<j?p:i)>>3];n=n<l?n:l;j=+g[(j<e?p:i)>>3];l=l<j?j:l;l=m<l?l:m;n=-(n<m?n:m);n=l>n?l:n;d=d+1|0;if(um(n,k+n)|0){d=1;h=6;break}if(d>>>0>=h>>>0){d=0;h=6;break}}if((h|0)==6){Ob=r;return d|0}return 0}function kg(a,b,d,e,g,i,j,k,l){a=a|0;b=b|0;d=d|0;e=e|0;g=g|0;i=+i;j=+j;k=k|0;l=l|0;var m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0,s=0,t=0,v=0;v=Ob;Ob=Ob+192|0;s=v+144|0;r=v+152|0;t=v;l=a;n=+f[g>>2];p=+f[g+4>>2];q=+f[d>>2]*n+ +f[d+4>>2]*p;if(q>=0.0?+u(+(1.0-q))<=.000244140625:0){Ob=v;return}a=c[d>>2]|0;d=c[d+4>>2]|0;k=s;c[k>>2]=a;c[k+4>>2]=d;j=(c[h>>2]=a,+f[h>>2]);m=(c[h>>2]=d,+f[h>>2]);o=+f[g>>2];q=+f[g+4>>2];if(j*q>m*o){k=0;d=b;j=p;m=q}else{q=-q;o=-o;f[s>>2]=-j;f[s+4>>2]=-m;k=1;d=l;n=o;l=b;j=q;m=q}f[r>>2]=i;f[r+16>>2]=i;f[r+32>>2]=1.0;f[r+28>>2]=0.0;f[r+24>>2]=0.0;f[r+12>>2]=0.0;f[r+4>>2]=0.0;f[r+20>>2]=0.0;f[r+8>>2]=0.0;c[r+36>>2]=i==1.0?16:18;b=e+4|0;Gi(r,+f[e>>2],+f[b>>2]);a=Je(s,n,j,k,r,t)|0;if((a|0)>0){k=0;do{sh(l,+f[t+(k*28|0)+8>>2],+f[t+(k*28|0)+12>>2],+f[t+(k*28|0)+16>>2],+f[t+(k*28|0)+20>>2],+f[t+(k*28|0)+24>>2])|0;k=k+1|0}while((k|0)!=(a|0));t=d;Mi(t,+f[e>>2],+f[b>>2])|0;Mi(t,+f[e>>2]-o*i,+f[b>>2]-m*i)|0}Ob=v;return}function lg(a,b,d,e){a=a|0;b=b|0;d=d|0;e=e|0;var f=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;m=c[a>>2]|0;h=(b|0)>0;if(h){j=c[m+64>>2]|0;f=j+40|0}else{j=c[m+44>>2]|0;f=j+60|0}i=c[f>>2]|0;do if(!i){n=+g[j>>3];if(n!=0.0&n!=1.0){e=0;return e|0}f=c[(c[j+20>>2]|0)+16>>2]|0;i=c[f+32>>2]|0;if(!h){k=j;l=f;f=f+44|0;j=i;break}if((f|0)==0|+g[f>>3]==1.0){e=0;return e|0}else{k=j;l=f;f=f+64|0;j=i;break}}else{f=i;h=0;while(1){f=c[f+200>>2]|0;if((f|0)==0|(f|0)==(i|0))break;else h=h+1|0}if(h>>>0<=1){f=c[i+200>>2]|0;if(!f){e=0;return e|0}else{j=c[f+208>>2]|0;k=j;l=j;f=f+212|0;j=c[j+32>>2]|0;break}}if(!e){e=0;return e|0}c[e>>2]=j;e=0;return e|0}while(0);f=c[f>>2]|0;if(!f){e=0;return e|0}i=+g[l>>3]<+g[f>>3];if(((i?1:-1)|0)!=(b|0)){if(!e){e=0;return e|0}c[e>>2]=k;e=0;return e|0}if((b|0)<0)h=c[m+44>>2]|0;else h=m;f=i?l:f;if((c[f+76>>2]|0)==(c[h+76>>2]|0)?(c[f+80>>2]|0)==(c[h+80>>2]|0):0){c[a>>2]=l;if(!d){e=j;return e|0}c[d>>2]=f;e=j;return e|0}if(!e){e=0;return e|0}c[e>>2]=k;e=0;return e|0}function mg(a,b,d){a=a|0;b=b|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;e=b>>>1;if(e|0)do{g=e;e=e+-1|0;f=a+(e<<2)|0;j=c[f>>2]|0;h=g<<1;a:do if(h>>>0<=b>>>0){while(1){if(h>>>0<b>>>0)i=h|($b[d&31](c[a+(h+-1<<2)>>2]|0,c[a+(h<<2)>>2]|0)|0)&1;else i=h;f=a+(i+-1<<2)|0;if(!($b[d&31](j,c[f>>2]|0)|0))break;c[a+(g+-1<<2)>>2]=c[f>>2];h=i<<1;if(h>>>0>b>>>0)break a;else g=i}f=a+(g+-1<<2)|0}while(0);c[f>>2]=j}while((e|0)!=0);e=b+-1|0;if(!e)return;while(1){j=a+(e<<2)|0;b=c[a>>2]|0;c[a>>2]=c[j>>2];c[j>>2]=b;j=c[a>>2]|0;if((e|0)==1){e=13;break}g=1;h=2;while(1){if(h>>>0<e>>>0)i=h|($b[d&31](c[a+(h+-1<<2)>>2]|0,c[a+(h<<2)>>2]|0)|0)&1;else i=h;f=a+(i+-1<<2)|0;c[a+(g+-1<<2)>>2]=c[f>>2];h=i<<1;if(h>>>0>e>>>0)break;else g=i}h=i>>>1;b:do if(h){g=i;while(1){f=a+(h+-1<<2)|0;if(!($b[d&31](c[f>>2]|0,j)|0))break;c[a+(g+-1<<2)>>2]=c[f>>2];g=h>>>1;if(!g)break b;else{b=h;h=g;g=b}}f=a+(g+-1<<2)|0}while(0);c[f>>2]=j;e=e+-1|0;if(!e){e=13;break}}if((e|0)==13)return}function ng(b,d,e,f){b=b|0;d=d|0;e=e|0;f=f|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;n=b+56|0;i=c[n>>2]|0;o=i;h=i;do{if((c[h+32>>2]|0)==(d|0)){k=1;m=23;break}h=c[h+56>>2]|0}while((h|0)!=(b|0));if((m|0)==23)return k|0;h=c[b+20>>2]|0;if((h|0)==(b|0)){o=1;return o|0}j=h;while(1){h=c[j+16>>2]|0;if((c[h+32>>2]|0)==(d|0))break;j=c[j+20>>2]|0;if((j|0)==(b|0)){k=1;m=23;break}}if((m|0)==23)return k|0;do if(f)if(e){h=c[h+44>>2]|0;if(!h)k=0;else break;return k|0}else{if((h|0)!=0&+g[h>>3]!=1.0)break;else k=0;return k|0}else{f=c[b+64>>2]|0;j=c[f+20>>2]|0;if((j|0)==(f|0)){o=0;return o|0}while(1){if((a[j+24>>0]|0)==0?(l=c[j+16>>2]|0,(l|0)==(j|0)?(c[l+32>>2]|0)==(d|0):0):0)break;e=c[j+20>>2]|0;if((e|0)==(f|0)){k=0;m=23;break}else j=e}if((m|0)==23)return k|0;h=c[(+g[h>>3]<+g[l>>3]?h:j)+16>>2]|0;if(!((h|0)!=0&+g[h>>3]!=1.0)){o=0;return o|0}}while(0);a:do if((i|0)!=(b|0)){while(1){if((i|0)==(h|0)){k=1;break}i=c[i+56>>2]|0;if((i|0)==(b|0))break a}return k|0}while(0);m=h+56|0;b=c[m>>2]|0;c[m>>2]=o;c[n>>2]=b;o=1;return o|0}function og(a,b,c,d){a=a|0;b=b|0;c=+c;d=+d;var e=0.0,h=0.0,i=0.0,j=0.0,k=0.0,l=0.0,m=0.0,n=0.0,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=0.0,u=0.0,w=0;do if(!(c==0.0))if(c!=1.0){u=+f[b+48>>2];e=+g[b>>3];q=+g[b+32>>3];t=u;s=+g[b+16>>3]*t;w=b+8|0;k=+g[w>>3];n=+g[w+32>>3];t=+g[w+16>>3]*t;u=(u+-1.0)*2.0;s=e+((s-e)*2.0+(e+(q-s*2.0))*c)*c;t=k+((t-k)*2.0+(k+(n-t*2.0))*c)*c;u=(u-u*c)*c+1.0;break}else{q=+g[b+32>>3];n=+g[b+40>>3];s=q;t=n;u=1.0;k=+g[b+8>>3];e=+g[b>>3];break}else{e=+g[b>>3];w=b+8|0;k=+g[w>>3];s=e;t=k;u=1.0;q=+g[b+32>>3];n=+g[w+32>>3]}while(0);p=(c+d)*.5;c=+f[b+48>>2];i=c;m=+g[b+16>>3]*i;l=e+(q-m*2.0);m=(m-e)*2.0;r=e+p*(m+p*l);i=+g[b+8+16>>3]*i;h=k+(n-i*2.0);i=(i-k)*2.0;o=k+p*(i+p*h);c=(c+-1.0)*2.0;p=p*(c-p*c)+1.0;if(!(d==1.0))if(d!=0.0){j=(c-c*d)*d+1.0;c=k+(i+h*d)*d;e=e+(m+l*d)*d}else{j=1.0;c=k}else{j=1.0;c=n;e=q}q=p*2.0-(u+j)*.5;q=q!=0.0?q:1.0;g[a>>3]=s/u;g[a+8>>3]=t/u;g[a+16>>3]=(r*2.0-(s+e)*.5)/q;g[a+24>>3]=(o*2.0-(t+c)*.5)/q;g[a+32>>3]=e/j;g[a+40>>3]=c/j;u=q/+v(+(u*j));f[a+48>>2]=u;return}function pg(b,d,e){b=b|0;d=d|0;e=+e;var h=0.0,i=0.0,j=0,k=0.0,l=0.0,m=0.0,n=0,o=0,p=0;if(e==0.0){b=0;return b|0}k=+g[b+128>>3];m=+g[d+128>>3];h=+g[b+136>>3];l=+g[d+136>>3];i=k*m+h*l;if(!(i!=0.0)){b=1;return b|0}e=e/i;h=e*+v(+(k*k+h*h));k=e*+v(+(m*m+l*l));if(+u(+h)<+u(+k)){p=c[(c[b+208>>2]|0)+32>>2]|0;o=c[p+196>>2]|0;d=o+1|0;j=d>>2;o=o-j|0;p=c[p+164>>2]|0;if((o|0)>0){n=d-j|0;d=0;i=0.0;do{e=+f[p+(d<<3)>>2];k=+f[p+(d<<3)+4>>2];d=d+1|0;j=d;do{l=+f[p+(j<<3)>>2]-e;m=+f[p+(j<<3)+4>>2]-k;m=l*l+m*m;i=m<i?i:m;j=j+1|0}while((j|0)!=(n|0))}while((d|0)!=(o|0))}else i=0.0}else{p=c[(c[d+208>>2]|0)+32>>2]|0;o=c[p+196>>2]|0;d=o+1|0;j=d>>2;o=o-j|0;p=c[p+164>>2]|0;if((o|0)>0){n=d-j|0;d=0;i=0.0;do{h=+f[p+(d<<3)>>