ammojs-typed
Version:
Ammo.js with type definitions
26 lines (22 loc) • 1.88 MB
JavaScript
// This is ammo.js, a port of Bullet Physics to JavaScript. zlib licensed.
var Ammo = (function() {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(Ammo) {
Ammo = Ammo || {};
var b;b||(b=typeof Ammo !== 'undefined' ? Ammo : {});
var Promise=function(){function a(){}function c(v,J){return function(){v.apply(J,arguments)}}function d(v){if(!(this instanceof d))throw new TypeError("Promises must be constructed via new");if("function"!==typeof v)throw new TypeError("not a function");this.m=0;this.ia=!1;this.o=void 0;this.s=[];ma(v,this)}function e(v,J){for(;3===v.m;)v=v.o;0===v.m?v.s.push(J):(v.ia=!0,d.ja(function(){var ba=1===v.m?J.Vc:J.Wc;if(null===ba)(1===v.m?g:n)(J.Y,v.o);else{try{var za=ba(v.o)}catch(ub){n(J.Y,ub);return}g(J.Y,
za)}}))}function g(v,J){try{if(J===v)throw new TypeError("A promise cannot be resolved with itself.");if(J&&("object"===typeof J||"function"===typeof J)){var ba=J.then;if(J instanceof d){v.m=3;v.o=J;D(v);return}if("function"===typeof ba){ma(c(ba,J),v);return}}v.m=1;v.o=J;D(v)}catch(za){n(v,za)}}function n(v,J){v.m=2;v.o=J;D(v)}function D(v){2===v.m&&0===v.s.length&&d.ja(function(){v.ia||d.ka(v.o)});for(var J=0,ba=v.s.length;J<ba;J++)e(v,v.s[J]);v.s=null}function Y(v,J,ba){this.Vc="function"===typeof v?
v:null;this.Wc="function"===typeof J?J:null;this.Y=ba}function ma(v,J){var ba=!1;try{v(function(za){ba||(ba=!0,g(J,za))},function(za){ba||(ba=!0,n(J,za))})}catch(za){ba||(ba=!0,n(J,za))}}d.prototype["catch"]=function(v){return this.then(null,v)};d.prototype.then=function(v,J){var ba=new this.constructor(a);e(this,new Y(v,J,ba));return ba};d.all=function(v){return new d(function(J,ba){function za(Cc,Ub){try{if(Ub&&("object"===typeof Ub||"function"===typeof Ub)){var Dc=Ub.then;if("function"===typeof Dc){Dc.call(Ub,
function(rc){za(Cc,rc)},ba);return}}ub[Cc]=Ub;0===--wC&&J(ub)}catch(rc){ba(rc)}}if(!Array.isArray(v))return ba(new TypeError("Promise.all accepts an array"));var ub=Array.prototype.slice.call(v);if(0===ub.length)return J([]);for(var wC=ub.length,dc=0;dc<ub.length;dc++)za(dc,ub[dc])})};d.resolve=function(v){return v&&"object"===typeof v&&v.constructor===d?v:new d(function(J){J(v)})};d.reject=function(v){return new d(function(J,ba){ba(v)})};d.race=function(v){return new d(function(J,ba){if(!Array.isArray(v))return ba(new TypeError("Promise.race accepts an array"));
for(var za=0,ub=v.length;za<ub;za++)d.resolve(v[za]).then(J,ba)})};d.ja="function"===typeof setImmediate&&function(v){setImmediate(v)}||function(v){setTimeout(v,0)};d.ka=function(v){"undefined"!==typeof console&&console&&console.warn("Possible Unhandled Promise Rejection:",v)};return d}(),aa;b.ready=new Promise(function(a){aa=a});var ca={},da;for(da in b)b.hasOwnProperty(da)&&(ca[da]=b[da]);var ea=!1,fa=!1,ha=!1,ia=!1;ea="object"===typeof window;fa="function"===typeof importScripts;
ha="object"===typeof process&&"object"===typeof process.versions&&"string"===typeof process.versions.node;ia=!ea&&!ha&&!fa;var ja="",ka,la,na,oa;
if(ha)ja=fa?require("path").dirname(ja)+"/":__dirname+"/",ka=function(a,c){var d=pa(a);if(d)return c?d:d.toString();na||(na=require("fs"));oa||(oa=require("path"));a=oa.normalize(a);return na.readFileSync(a,c?null:"utf8")},la=function(a){a=ka(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a},1<process.argv.length&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),process.on("uncaughtException",function(a){throw a;}),process.on("unhandledRejection",qa),b.inspect=function(){return"[Emscripten Module object]"};
else if(ia)"undefined"!=typeof read&&(ka=function(a){var c=pa(a);return c?ra(c):read(a)}),la=function(a){var c;if(c=pa(a))return c;if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));c=read(a,"binary");assert("object"===typeof c);return c},"undefined"!==typeof print&&("undefined"===typeof console&&(console={}),console.log=print,console.warn=console.error="undefined"!==typeof printErr?printErr:print);else if(ea||fa)fa?ja=self.location.href:document.currentScript&&(ja=document.currentScript.src),
_scriptDir&&(ja=_scriptDir),ja=0!==ja.indexOf("blob:")?ja.substr(0,ja.lastIndexOf("/")+1):"",ka=function(a){try{var c=new XMLHttpRequest;c.open("GET",a,!1);c.send(null);return c.responseText}catch(d){if(a=pa(a))return ra(a);throw d;}},fa&&(la=function(a){try{var c=new XMLHttpRequest;c.open("GET",a,!1);c.responseType="arraybuffer";c.send(null);return new Uint8Array(c.response)}catch(d){if(a=pa(a))return a;throw d;}});var sa=b.print||console.log.bind(console),ta=b.printErr||console.warn.bind(console);
for(da in ca)ca.hasOwnProperty(da)&&(b[da]=ca[da]);ca=null;var ua;b.wasmBinary&&(ua=b.wasmBinary);var noExitRuntime;b.noExitRuntime&&(noExitRuntime=b.noExitRuntime);function va(){return{buffer:new ArrayBuffer(wa/65536*65536),grow:function(a){return xa(a)}}}function ya(){return{exports:(
// EMSCRIPTEN_START_ASM
function a(asmLibraryArg,wasmMemory,wasmTable){var scratchBuffer=new ArrayBuffer(8);var b=new Int32Array(scratchBuffer);var c=new Float32Array(scratchBuffer);var d=new Float64Array(scratchBuffer);function e(index,value){b[index]=value}function f(){return d[0]}function g(value){c[0]=value}function h(index){return b[index]}function i(){return c[0]}function j(global,env,buffer){var k=env.memory;var l=wasmTable;var m=new global.Int8Array(buffer);var n=new global.Int16Array(buffer);var o=new global.Int32Array(buffer);var p=new global.Uint8Array(buffer);var q=new global.Uint16Array(buffer);var r=new global.Uint32Array(buffer);var s=new global.Float32Array(buffer);var t=new global.Float64Array(buffer);var u=global.Math.imul;var v=global.Math.fround;var w=global.Math.abs;var x=global.Math.clz32;var y=global.Math.min;var z=global.Math.max;var A=global.Math.floor;var B=global.Math.ceil;var C=global.Math.sqrt;var D=env.abort;var E=global.NaN;var F=global.Infinity;var G=env.emscripten_asm_const_iii;var H=env.gettimeofday;var I=env.emscripten_asm_const_dii;var J=env.emscripten_memcpy_big;var K=env.emscripten_resize_heap;var L=env.abort;var M=5274432;var N=0;
// EMSCRIPTEN_START_FUNCS
function Ly(a,b,c){var d=0,e=0,f=v(0),g=v(0),h=v(0),i=0,j=0,k=0,n=v(0),q=v(0),r=v(0),t=v(0),w=v(0),x=0,y=v(0),z=v(0),A=v(0),B=v(0),D=v(0),E=0,F=v(0),G=v(0),H=0,I=0,J=v(0),K=0,L=0,O=v(0),P=v(0),Q=v(0),R=v(0),S=v(0),T=v(0),U=v(0),V=v(0);d=M-176|0;M=d;o[d+152>>2]=0;o[d+156>>2]=0;o[d+144>>2]=0;o[d+148>>2]=0;o[d+136>>2]=1065353216;o[d+140>>2]=0;o[d+128>>2]=1065353216;o[d+132>>2]=1065353216;o[d+120>>2]=0;o[d+124>>2]=0;o[d+112>>2]=1065353216;o[d+116>>2]=0;a:{if(c&256){o[7720]=1805;o[7721]=0;k=o[a+1112>>2];if((k|0)<1){break a}while(1){E=I<<2;if(p[o[E+o[a+1120>>2]>>2]+377|0]){e=tL(o[7720],o[7721],1284865837,1481765933)+1|0;i=N;i=e>>>0<1?i+1|0:i;o[7720]=e;o[7721]=i;k=i>>>1|0;e=tL(o[7720],o[7721],1284865837,1481765933)+1|0;i=N;i=e>>>0<1?i+1|0:i;o[7720]=e;o[7721]=i;x=i>>>1|0;e=tL(o[7720],o[7721],1284865837,1481765933)+1|0;j=N;j=e>>>0<1?j+1|0:j;o[7720]=e;o[7721]=j;f=v(v(j>>>1|0)*v(4.656612873077393e-10));h=v(v(k|0)*v(4.656612873077393e-10));n=v(v(x|0)*v(4.656612873077393e-10));g=v(v(1)/v(C(v(v(f*f)+v(v(h*h)+v(n*n))))));s[d+168>>2]=v(f*g)*v(.75);s[d+164>>2]=v(n*g)*v(.75);s[d+160>>2]=v(h*g)*v(.75);o[d+172>>2]=0;e=o[o[E+o[a+1120>>2]>>2]+24>>2];b:{if((e|0)<=0){x=0;break b}k=0;o[7717]=o[7717]+1;x=l[o[6606]](e<<4,16)|0;while(1){H=o[d+52>>2];i=(k<<4)+x|0;j=i;o[j>>2]=o[d+48>>2];o[j+4>>2]=H;j=o[d+60>>2];o[i+8>>2]=o[d+56>>2];o[i+12>>2]=j;k=k+1|0;if((e|0)!=(k|0)){continue}break}k=0;if((e|0)<1){break b}while(1){i=o[o[o[E+o[a+1120>>2]>>2]+32>>2]+(k<<2)>>2];H=o[i+12>>2];j=(k<<4)+x|0;o[j>>2]=o[i+8>>2];o[j+4>>2]=H;H=o[i+20>>2];o[j+8>>2]=o[i+16>>2];o[j+12>>2]=H;k=k+1|0;if((e|0)!=(k|0)){continue}break}}H=0;o[d+60>>2]=0;m[d+64|0]=1;m[d+84|0]=1;o[d+52>>2]=0;o[d+56>>2]=0;o[d+80>>2]=0;m[d+104|0]=1;o[d+72>>2]=0;o[d+76>>2]=0;o[d+100>>2]=0;o[d+92>>2]=0;o[d+96>>2]=0;lf(d+48|0,x,e);i=o[d+92>>2];if((i|0)>0){while(1){E=o[d+80>>2]+u(o[o[d+100>>2]+(H<<2)>>2],12)|0;e=u(o[E+4>>2],12)+E|0;k=u(o[e>>2],12)+e|0;if((k|0)!=(E|0)){i=o[e+8>>2];e=o[E+8>>2];while(1){j=o[d+60>>2];K=j+(i<<4)|0;L=(e<<4)+j|0;i=j;j=o[k+8>>2];l[o[o[b>>2]+28>>2]](b,K,L,i+(j<<4)|0,d+160|0,v(1));i=e;e=j;j=u(o[k+4>>2],12)+k|0;k=u(o[j>>2],12)+j|0;if((E|0)!=(k|0)){continue}break}i=o[d+92>>2]}H=H+1|0;if((H|0)<(i|0)){continue}break}}e=o[d+100>>2];if(e){if(p[d+104|0]){if(e){o[7718]=o[7718]+1;l[o[6607]](e)}}o[d+100>>2]=0}o[d+100>>2]=0;m[d+104|0]=1;o[d+92>>2]=0;o[d+96>>2]=0;e=o[d+80>>2];if(e){if(p[d+84|0]){if(e){o[7718]=o[7718]+1;l[o[6607]](e)}}o[d+80>>2]=0}o[d+80>>2]=0;m[d+84|0]=1;o[d+72>>2]=0;o[d+76>>2]=0;e=o[d+60>>2];if(e){if(p[d+64|0]){if(e){o[7718]=o[7718]+1;l[o[6607]](e)}}o[d+60>>2]=0}if(x){if(x){o[7718]=o[7718]+1;l[o[6607]](x)}}k=o[a+1112>>2]}I=I+1|0;if((I|0)<(k|0)){continue}break}break a}c:{if(!(c&1)){break c}i=o[a+712>>2];if((i|0)<1){break c}while(1){j=o[a+720>>2]+u(e,104)|0;if(m[o[j+4>>2]+16|0]&1){g=s[j+8>>2];i=o[j+16>>2];o[d+52>>2]=o[j+12>>2];o[d+56>>2]=i;o[d+60>>2]=0;s[d+48>>2]=g+v(-.10000000149011612);g=s[j+8>>2];f=s[j+12>>2];h=s[j+16>>2];o[d+172>>2]=0;s[d+168>>2]=h+v(0);s[d+164>>2]=f+v(0);s[d+160>>2]=g+v(.10000000149011612);o[d+40>>2]=0;o[d+44>>2]=0;o[d+32>>2]=1065353216;o[d+36>>2]=0;l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+32|0);g=s[j+12>>2];i=o[j+8>>2];x=o[j+16>>2];o[d+60>>2]=0;o[d+56>>2]=x;o[d+48>>2]=i;s[d+52>>2]=g+v(-.10000000149011612);g=s[j+8>>2];f=s[j+12>>2];h=s[j+16>>2];o[d+172>>2]=0;s[d+168>>2]=h+v(0);s[d+164>>2]=f+v(.10000000149011612);s[d+160>>2]=g+v(0);o[d+40>>2]=0;o[d+44>>2]=0;o[d+32>>2]=0;o[d+36>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+32|0);g=s[j+16>>2];i=o[j+12>>2];x=o[j+8>>2];o[d+60>>2]=0;o[d+48>>2]=x;o[d+52>>2]=i;s[d+56>>2]=g+v(-.10000000149011612);g=s[j+8>>2];f=s[j+12>>2];h=s[j+16>>2];o[d+172>>2]=0;s[d+168>>2]=h+v(.10000000149011612);s[d+164>>2]=f+v(0);s[d+160>>2]=g+v(0);o[d+40>>2]=1065353216;o[d+44>>2]=0;o[d+32>>2]=0;o[d+36>>2]=0;l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+32|0);i=o[a+712>>2]}e=e+1|0;if((e|0)<(i|0)){continue}break}}d:{if(!(c&2)){break d}i=o[a+732>>2];if((i|0)<1){break d}while(1){e=o[a+740>>2]+u(k,52)|0;if(m[o[e+4>>2]+16|0]&1){l[o[o[b>>2]+8>>2]](b,o[e+8>>2]+8|0,o[e+12>>2]+8|0,d+144|0);i=o[a+732>>2]}k=k+1|0;if((k|0)<(i|0)){continue}break}}e:{if(!(c&16)){break e}i=o[a+712>>2];if((i|0)<1){break e}e=0;while(1){j=o[a+720>>2]+u(e,104)|0;if(m[o[j+4>>2]+16|0]&1){g=s[j+72>>2];f=s[j+76>>2];h=s[j+80>>2];n=s[j+8>>2];q=s[j+12>>2];r=s[j+16>>2];o[d+60>>2]=0;h=v(h*v(.5));s[d+56>>2]=r+h;f=v(f*v(.5));s[d+52>>2]=q+f;g=v(g*v(.5));s[d+48>>2]=n+g;i=j+8|0;l[o[o[b>>2]+8>>2]](b,i,d+48|0,d+128|0);n=s[j+8>>2];q=s[j+12>>2];r=s[j+16>>2];o[d+60>>2]=0;s[d+56>>2]=r-h;s[d+52>>2]=q-f;s[d+48>>2]=n-g;o[d+172>>2]=0;s[d+168>>2]=s[d+136>>2]*v(.5);s[d+164>>2]=s[d+132>>2]*v(.5);s[d+160>>2]=s[d+128>>2]*v(.5);l[o[o[b>>2]+8>>2]](b,i,d+48|0,d+160|0);i=o[a+712>>2]}e=e+1|0;if((e|0)<(i|0)){continue}break}}f:{if(!(c&32)){break f}g:{if(m[30816]&1){break g}if(!da(30816)){break g}o[7693]=0;o[7694]=0;o[7692]=1065353216;o[7695]=0;o[7696]=0;o[7698]=0;o[7699]=0;o[7697]=1065353216;o[7700]=0;o[7701]=0;o[7702]=1065353216;o[7703]=0;ca(30816)}if(o[a+812>>2]<1){break f}e=0;while(1){i=o[a+820>>2]+u(e,104)|0;w=s[i+20>>2];g=s[i+12>>2];j=o[i+24>>2];f=s[j+16>>2];h=s[i+8>>2];n=s[j+12>>2];q=s[i+4>>2];r=s[j+8>>2];o[d+60>>2]=0;J=q;q=v(w+v(v(v(r*q)+v(n*h))+v(f*g)));r=v(r-v(J*q));s[d+48>>2]=r;w=v(n-v(h*q));s[d+52>>2]=w;q=v(f-v(g*q));s[d+56>>2]=q;g=s[i+4>>2];f=s[i+12>>2];h=s[i+8>>2];j=(g<h?(g<f^1)<<1:h<f?1:2)<<4;n=s[j+30772>>2];y=s[j+30768>>2];z=s[j+30776>>2];o[d+172>>2]=0;t=v(v(g*n)-v(h*y));A=v(v(h*z)-v(f*n));y=v(v(f*y)-v(g*z));n=v(v(1)/v(C(v(v(t*t)+v(v(A*A)+v(y*y))))));z=v(t*n);t=v(z*v(.5));s[d+168>>2]=q-t;y=v(y*n);B=v(y*v(.5));s[d+164>>2]=w-B;n=v(A*n);A=v(n*v(.5));s[d+160>>2]=r-A;o[d+44>>2]=0;s[d+40>>2]=q+t;s[d+36>>2]=w+B;s[d+32>>2]=r+A;l[o[o[b>>2]+8>>2]](b,d+160|0,d+32|0,d+112|0);o[d+172>>2]=0;q=v(v(h*n)-v(g*y));h=v(v(f*y)-v(h*z));f=v(v(g*z)-v(f*n));g=v(v(1)/v(C(v(v(q*q)+v(v(h*h)+v(f*f))))));n=s[d+56>>2];q=v(v(q*g)*v(.5));s[d+168>>2]=n-q;r=s[d+52>>2];f=v(v(f*g)*v(.5));s[d+164>>2]=r-f;w=s[d+48>>2];g=v(v(h*g)*v(.5));s[d+160>>2]=w-g;o[d+44>>2]=0;s[d+40>>2]=q+n;s[d+36>>2]=f+r;s[d+32>>2]=w+g;l[o[o[b>>2]+8>>2]](b,d+160|0,d+32|0,d+112|0);g=s[i+4>>2];f=s[i+8>>2];h=s[i+12>>2];o[d+172>>2]=0;s[d+168>>2]=v(v(h*v(.5))*v(3))+s[d+56>>2];s[d+164>>2]=v(v(f*v(.5))*v(3))+s[d+52>>2];s[d+160>>2]=v(v(g*v(.5))*v(3))+s[d+48>>2];o[d+40>>2]=0;o[d+44>>2]=0;o[d+32>>2]=1065353216;o[d+36>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+32|0);e=e+1|0;if((e|0)<o[a+812>>2]){continue}break}}h:{if(!(c&4)){break h}o[d+56>>2]=0;o[d+60>>2]=0;o[d+48>>2]=0;o[d+52>>2]=1060320051;i=o[a+752>>2];if((i|0)<1){break h}k=0;while(1){e=o[a+760>>2]+u(k,44)|0;if(m[o[e+4>>2]+16|0]&1){i=o[e+16>>2];n=s[i+12>>2];j=o[e+8>>2];q=s[j+12>>2];e=o[e+12>>2];r=s[e+12>>2];w=s[i+16>>2];h=s[j+16>>2];y=s[e+16>>2];z=s[i+8>>2];f=s[j+8>>2];t=s[e+8>>2];o[d+172>>2]=0;g=v(v(z+v(f+t))*v(.3333333432674408));s[d+160>>2]=g+v(v(f-g)*v(.800000011920929));f=v(v(w+v(h+y))*v(.3333333432674408));s[d+168>>2]=f+v(v(h-f)*v(.800000011920929));h=v(v(n+v(q+r))*v(.3333333432674408));s[d+164>>2]=h+v(v(q-h)*v(.800000011920929));o[d+44>>2]=0;s[d+40>>2]=f+v(v(y-f)*v(.800000011920929));s[d+36>>2]=h+v(v(r-h)*v(.800000011920929));s[d+32>>2]=g+v(v(t-g)*v(.800000011920929));o[d+28>>2]=0;s[d+24>>2]=f+v(v(w-f)*v(.800000011920929));s[d+20>>2]=h+v(v(n-h)*v(.800000011920929));s[d+16>>2]=g+v(v(z-g)*v(.800000011920929));l[o[o[b>>2]+28>>2]](b,d+160|0,d+32|0,d+16|0,d+48|0,v(1));i=o[a+752>>2]}k=k+1|0;if((k|0)<(i|0)){continue}break}}if(!(c&8)){break a}o[d+56>>2]=1060320051;o[d+60>>2]=0;o[d+48>>2]=1050253722;o[d+52>>2]=1050253722;i=o[a+772>>2];if((i|0)<1){break a}k=0;while(1){e=o[a+780>>2]+u(k,104)|0;if(m[o[e+4>>2]+16|0]&1){i=o[e+20>>2];n=s[i+12>>2];j=o[e+16>>2];q=s[j+12>>2];x=o[e+8>>2];r=s[x+12>>2];e=o[e+12>>2];w=s[e+12>>2];y=s[i+16>>2];z=s[j+16>>2];h=s[x+16>>2];t=s[e+16>>2];A=s[i+8>>2];B=s[j+8>>2];f=s[x+8>>2];D=s[e+8>>2];o[d+172>>2]=0;g=v(v(A+v(B+v(f+D)))*v(.25));F=v(g+v(v(f-g)*v(.800000011920929)));s[d+160>>2]=F;f=v(v(y+v(z+v(h+t)))*v(.25));G=v(f+v(v(h-f)*v(.800000011920929)));s[d+168>>2]=G;h=v(v(n+v(q+v(r+w)))*v(.25));r=v(h+v(v(r-h)*v(.800000011920929)));s[d+164>>2]=r;o[d+44>>2]=0;t=v(f+v(v(t-f)*v(.800000011920929)));s[d+40>>2]=t;w=v(h+v(v(w-h)*v(.800000011920929)));s[d+36>>2]=w;D=v(g+v(v(D-g)*v(.800000011920929)));s[d+32>>2]=D;o[d+28>>2]=0;z=v(f+v(v(z-f)*v(.800000011920929)));s[d+24>>2]=z;q=v(h+v(v(q-h)*v(.800000011920929)));s[d+20>>2]=q;B=v(g+v(v(B-g)*v(.800000011920929)));s[d+16>>2]=B;l[o[o[b>>2]+28>>2]](b,d+160|0,d+32|0,d+16|0,d+48|0,v(1));o[d+172>>2]=0;s[d+168>>2]=G;s[d+164>>2]=r;s[d+160>>2]=F;o[d+44>>2]=0;s[d+40>>2]=t;s[d+36>>2]=w;s[d+32>>2]=D;o[d+28>>2]=0;f=v(f+v(v(y-f)*v(.800000011920929)));s[d+24>>2]=f;h=v(h+v(v(n-h)*v(.800000011920929)));s[d+20>>2]=h;g=v(g+v(v(A-g)*v(.800000011920929)));s[d+16>>2]=g;l[o[o[b>>2]+28>>2]](b,d+160|0,d+32|0,d+16|0,d+48|0,v(1));o[d+172>>2]=0;s[d+168>>2]=t;s[d+164>>2]=w;s[d+160>>2]=D;o[d+44>>2]=0;s[d+40>>2]=z;s[d+36>>2]=q;s[d+32>>2]=B;o[d+28>>2]=0;s[d+24>>2]=f;s[d+20>>2]=h;s[d+16>>2]=g;l[o[o[b>>2]+28>>2]](b,d+160|0,d+32|0,d+16|0,d+48|0,v(1));o[d+172>>2]=0;s[d+168>>2]=z;s[d+164>>2]=q;s[d+160>>2]=B;o[d+44>>2]=0;s[d+40>>2]=G;s[d+36>>2]=r;s[d+32>>2]=F;o[d+28>>2]=0;s[d+24>>2]=f;s[d+20>>2]=h;s[d+16>>2]=g;l[o[o[b>>2]+28>>2]](b,d+160|0,d+32|0,d+16|0,d+48|0,v(1));i=o[a+772>>2]}k=k+1|0;if((k|0)<(i|0)){continue}break}}i:{if(!(c&64)){break i}if(o[a+792>>2]>=1){i=0;while(1){j=o[a+800>>2]+u(i,96)|0;e=o[j+20>>2];n=s[e+52>>2];q=s[e+12>>2];r=s[e+8>>2];w=s[e+4>>2];y=s[e+56>>2];z=s[e+28>>2];t=s[e+20>>2];A=s[e+24>>2];B=s[e+60>>2];g=s[j+12>>2];D=s[e+44>>2];f=s[j+4>>2];F=s[e+36>>2];h=s[j+8>>2];G=s[e+40>>2];o[d+44>>2]=0;s[d+40>>2]=B+v(v(v(f*F)+v(h*G))+v(g*D));s[d+36>>2]=y+v(v(v(f*t)+v(h*A))+v(g*z));s[d+32>>2]=n+v(v(v(f*w)+v(h*r))+v(g*q));e=o[j>>2];o[d+24>>2]=0;o[d+28>>2]=0;o[d+16>>2]=1065353216;o[d+20>>2]=0;g=s[e+8>>2];f=s[e+12>>2];h=s[e+16>>2];o[d+60>>2]=0;s[d+56>>2]=h;s[d+52>>2]=f;s[d+48>>2]=g+v(-.25);o[d+172>>2]=0;s[d+168>>2]=h+v(0);s[d+164>>2]=f+v(0);s[d+160>>2]=g+v(.25);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+16|0);g=s[e+12>>2];f=s[e+8>>2];h=s[e+16>>2];o[d+60>>2]=0;s[d+56>>2]=h;s[d+48>>2]=f;s[d+52>>2]=g+v(-.25);o[d+172>>2]=0;s[d+168>>2]=h+v(0);s[d+164>>2]=g+v(.25);s[d+160>>2]=f+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+16|0);g=s[e+16>>2];f=s[e+8>>2];h=s[e+12>>2];o[d+60>>2]=0;s[d+52>>2]=h;s[d+48>>2]=f;s[d+56>>2]=g+v(-.25);o[d+172>>2]=0;s[d+168>>2]=g+v(.25);s[d+164>>2]=h+v(0);s[d+160>>2]=f+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+16|0);o[d+24>>2]=0;o[d+28>>2]=0;o[d+16>>2]=0;o[d+20>>2]=1065353216;o[d+60>>2]=0;g=s[d+40>>2];s[d+56>>2]=g;f=s[d+36>>2];s[d+52>>2]=f;h=s[d+32>>2];s[d+48>>2]=h+v(-.25);o[d+172>>2]=0;s[d+168>>2]=g+v(0);s[d+164>>2]=f+v(0);s[d+160>>2]=h+v(.25);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+16|0);o[d+60>>2]=0;g=s[d+40>>2];s[d+56>>2]=g;f=s[d+36>>2];s[d+52>>2]=f+v(-.25);h=s[d+32>>2];s[d+48>>2]=h;o[d+172>>2]=0;s[d+168>>2]=g+v(0);s[d+164>>2]=f+v(.25);s[d+160>>2]=h+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+16|0);o[d+60>>2]=0;g=s[d+40>>2];s[d+56>>2]=g+v(-.25);f=s[d+36>>2];s[d+52>>2]=f;h=s[d+32>>2];s[d+48>>2]=h;o[d+172>>2]=0;s[d+168>>2]=g+v(.25);s[d+164>>2]=f+v(0);s[d+160>>2]=h+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+16|0);e=o[j>>2];o[d+56>>2]=1065353216;o[d+60>>2]=0;o[d+48>>2]=1065353216;o[d+52>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,e+8|0,d+32|0,d+48|0);i=i+1|0;if((i|0)<o[a+792>>2]){continue}break}}i=o[a+712>>2];if((i|0)<1){break i}k=0;while(1){e=o[a+720>>2]+u(k,104)|0;if(!(!(m[o[e+4>>2]+16|0]&1)|s[e+88>>2]<=v(0)^1)){o[d+40>>2]=0;o[d+44>>2]=0;o[d+32>>2]=1065353216;o[d+36>>2]=0;g=s[e+8>>2];f=s[e+12>>2];h=s[e+16>>2];o[d+60>>2]=0;s[d+56>>2]=h;s[d+52>>2]=f;s[d+48>>2]=g+v(-.25);o[d+172>>2]=0;s[d+168>>2]=h+v(0);s[d+164>>2]=f+v(0);s[d+160>>2]=g+v(.25);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+32|0);g=s[e+12>>2];f=s[e+8>>2];h=s[e+16>>2];o[d+60>>2]=0;s[d+56>>2]=h;s[d+48>>2]=f;s[d+52>>2]=g+v(-.25);o[d+172>>2]=0;s[d+168>>2]=h+v(0);s[d+164>>2]=g+v(.25);s[d+160>>2]=f+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+32|0);g=s[e+16>>2];f=s[e+8>>2];h=s[e+12>>2];o[d+60>>2]=0;s[d+52>>2]=h;s[d+48>>2]=f;s[d+56>>2]=g+v(-.25);o[d+172>>2]=0;s[d+168>>2]=g+v(.25);s[d+164>>2]=h+v(0);s[d+160>>2]=f+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d+32|0);i=o[a+712>>2]}k=k+1|0;if((k|0)<(i|0)){continue}break}}if(!(!(c&128)|o[a+692>>2]<1)){i=0;while(1){e=o[a+700>>2]+u(i,60)|0;j=o[e+20>>2];o[d+56>>2]=o[e+16>>2];o[d+60>>2]=j;j=o[e+12>>2];o[d+48>>2]=o[e+8>>2];o[d+52>>2]=j;x=o[e+24>>2];if((x|0)>=1){k=0;g=s[d+56>>2];f=s[d+52>>2];h=s[d+48>>2];while(1){E=e+(k<<2)|0;j=o[E+28>>2];q=s[j+12>>2];r=s[j+16>>2];n=s[E+44>>2];h=v(v(s[j+8>>2]*n)+h);s[d+48>>2]=h;g=v(v(n*r)+g);s[d+56>>2]=g;f=v(v(n*q)+f);s[d+52>>2]=f;k=k+1|0;if((x|0)!=(k|0)){continue}break}}l[o[o[b>>2]+40>>2]](b,d+48|0,o[e+4>>2]);i=i+1|0;if((i|0)<o[a+692>>2]){continue}break}}if(c&512){e=o[a+928>>2];o[d+56>>2]=1065353216;o[d+60>>2]=0;o[d+48>>2]=1065353216;o[d+52>>2]=0;o[d+168>>2]=1065353216;o[d+172>>2]=0;o[d+160>>2]=1065353216;o[d+164>>2]=1065353216;nb(b,e,0,d+48|0,d+160|0,0,-1)}if(c&1024){e=o[a+988>>2];o[d+56>>2]=0;o[d+60>>2]=0;o[d+48>>2]=0;o[d+52>>2]=1065353216;o[d+168>>2]=0;o[d+172>>2]=0;o[d+160>>2]=1065353216;o[d+164>>2]=0;nb(b,e,0,d+48|0,d+160|0,0,-1)}if(c&2048){e=o[a+1048>>2];o[d+56>>2]=1065353216;o[d+60>>2]=0;o[d+48>>2]=0;o[d+52>>2]=1065353216;o[d+168>>2]=0;o[d+172>>2]=0;o[d+160>>2]=1065353216;o[d+164>>2]=0;nb(b,e,0,d+48|0,d+160|0,0,-1)}if(!(!(c&4096)|o[a+852>>2]<1)){i=0;while(1){j:{k:{l:{c=o[o[a+860>>2]+(i<<2)>>2];switch(l[o[o[c>>2]+20>>2]](c)|0){case 1:break k;case 0:break l;default:break j}}j=c+4|0;e=Ja(j);n=s[e+52>>2];q=s[e+16>>2];r=s[e+20>>2];w=s[e+24>>2];y=s[e+56>>2];z=s[e+32>>2];t=s[e+36>>2];A=s[e+40>>2];B=s[e+48>>2];D=s[e>>2];F=s[e+4>>2];g=s[c+32>>2];G=s[e+8>>2];f=s[c+36>>2];h=s[c+28>>2];o[d+44>>2]=0;s[d+32>>2]=B+v(v(v(h*D)+v(g*F))+v(f*G));s[d+40>>2]=y+v(v(v(h*z)+v(g*t))+v(f*A));s[d+36>>2]=n+v(v(v(h*q)+v(g*r))+v(f*w));k=c+16|0;e=Ja(k);n=s[e+52>>2];q=s[e+24>>2];r=s[e+20>>2];w=s[e+16>>2];y=s[e+56>>2];z=s[e+40>>2];t=s[e+36>>2];A=s[e+32>>2];B=s[e+48>>2];D=s[e+8>>2];g=s[c+52>>2];F=s[e>>2];f=s[c+44>>2];G=s[e+4>>2];h=s[c+48>>2];o[d+28>>2]=0;s[d+16>>2]=B+v(v(v(f*F)+v(h*G))+v(g*D));s[d+24>>2]=y+v(v(v(f*A)+v(h*t))+v(g*z));s[d+20>>2]=n+v(v(v(f*w)+v(h*r))+v(g*q));c=Ja(j);o[d+56>>2]=0;o[d+60>>2]=0;o[d+48>>2]=1065353216;o[d+52>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,c+48|0,d+32|0,d+48|0);c=Ja(k);o[d+56>>2]=1065353216;o[d+60>>2]=0;o[d+48>>2]=0;o[d+52>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,c+48|0,d+16|0,d+48|0);o[d+8>>2]=0;o[d+12>>2]=0;o[d>>2]=1065353216;o[d+4>>2]=1065353216;o[d+60>>2]=0;g=s[d+40>>2];s[d+56>>2]=g;f=s[d+36>>2];s[d+52>>2]=f;h=s[d+32>>2];s[d+48>>2]=h+v(-.25);o[d+172>>2]=0;s[d+168>>2]=g+v(0);s[d+164>>2]=f+v(0);s[d+160>>2]=h+v(.25);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d);o[d+60>>2]=0;g=s[d+40>>2];s[d+56>>2]=g;f=s[d+36>>2];s[d+52>>2]=f+v(-.25);h=s[d+32>>2];s[d+48>>2]=h;o[d+172>>2]=0;s[d+168>>2]=g+v(0);s[d+164>>2]=f+v(.25);s[d+160>>2]=h+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d);o[d+60>>2]=0;g=s[d+40>>2];s[d+56>>2]=g+v(-.25);f=s[d+36>>2];s[d+52>>2]=f;h=s[d+32>>2];s[d+48>>2]=h;o[d+172>>2]=0;s[d+168>>2]=g+v(.25);s[d+164>>2]=f+v(0);s[d+160>>2]=h+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d);o[d+8>>2]=1065353216;o[d+12>>2]=0;o[d>>2]=0;o[d+4>>2]=1065353216;o[d+60>>2]=0;g=s[d+24>>2];s[d+56>>2]=g;f=s[d+20>>2];s[d+52>>2]=f;h=s[d+16>>2];s[d+48>>2]=h+v(-.25);o[d+172>>2]=0;s[d+168>>2]=g+v(0);s[d+164>>2]=f+v(0);s[d+160>>2]=h+v(.25);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d);o[d+60>>2]=0;g=s[d+24>>2];s[d+56>>2]=g;f=s[d+20>>2];s[d+52>>2]=f+v(-.25);h=s[d+16>>2];s[d+48>>2]=h;o[d+172>>2]=0;s[d+168>>2]=g+v(0);s[d+164>>2]=f+v(.25);s[d+160>>2]=h+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d);o[d+60>>2]=0;g=s[d+24>>2];s[d+56>>2]=g+v(-.25);f=s[d+20>>2];s[d+52>>2]=f;h=s[d+16>>2];s[d+48>>2]=h;o[d+172>>2]=0;s[d+168>>2]=g+v(.25);s[d+164>>2]=f+v(0);s[d+160>>2]=h+v(0);l[o[o[b>>2]+8>>2]](b,d+48|0,d+160|0,d);break j}j=c+4|0;e=Ja(j);k=o[e+60>>2];o[d+56>>2]=o[e+56>>2];o[d+60>>2]=k;k=o[e+52>>2];o[d+48>>2]=o[e+48>>2];o[d+52>>2]=k;k=c+16|0;e=Ja(k);x=o[e+60>>2];o[d+168>>2]=o[e+56>>2];o[d+172>>2]=x;x=o[e+52>>2];o[d+160>>2]=o[e+48>>2];o[d+164>>2]=x;e=Ja(j);w=s[e+16>>2];y=s[e+20>>2];z=s[e+24>>2];t=s[e+32>>2];A=s[e+36>>2];B=s[e+40>>2];D=s[e>>2];g=s[c+32>>2];F=s[e+4>>2];f=s[c+36>>2];G=s[e+8>>2];h=s[c+28>>2];e=Ja(k);O=s[e+8>>2];P=s[e>>2];Q=s[e+4>>2];R=s[e+24>>2];S=s[e+20>>2];T=s[e+16>>2];n=s[c+52>>2];U=s[e+40>>2];q=s[c+48>>2];V=s[e+36>>2];J=s[e+32>>2];r=s[c+44>>2];o[d+44>>2]=0;D=v(v(v(v(D*h)+v(F*g))+v(G*f))*v(10));s[d+32>>2]=D+s[d+48>>2];t=v(v(v(v(h*t)+v(g*A))+v(f*B))*v(10));s[d+40>>2]=t+s[d+56>>2];g=v(v(v(v(h*w)+v(g*y))+v(f*z))*v(10));s[d+36>>2]=g+s[d+52>>2];o[d+24>>2]=0;o[d+28>>2]=0;o[d+16>>2]=1065353216;o[d+20>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,d+48|0,d+32|0,d+16|0);o[d+44>>2]=0;f=v(v(v(v(r*J)+v(q*V))+v(n*U))*v(10));s[d+40>>2]=f+s[d+56>>2];h=v(v(v(v(r*T)+v(q*S))+v(n*R))*v(10));s[d+36>>2]=h+s[d+52>>2];n=v(v(v(v(P*r)+v(Q*q))+v(O*n))*v(10));s[d+32>>2]=n+s[d+48>>2];o[d+24>>2]=0;o[d+28>>2]=0;o[d+16>>2]=1065353216;o[d+20>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,d+48|0,d+32|0,d+16|0);o[d+44>>2]=0;s[d+40>>2]=t+s[d+168>>2];s[d+36>>2]=g+s[d+164>>2];s[d+32>>2]=D+s[d+160>>2];o[d+24>>2]=1065353216;o[d+28>>2]=0;o[d+16>>2]=0;o[d+20>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,d+160|0,d+32|0,d+16|0);o[d+44>>2]=0;s[d+40>>2]=f+s[d+168>>2];s[d+36>>2]=h+s[d+164>>2];s[d+32>>2]=n+s[d+160>>2];o[d+24>>2]=1065353216;o[d+28>>2]=0;o[d+16>>2]=0;o[d+20>>2]=1065353216;l[o[o[b>>2]+8>>2]](b,d+160|0,d+32|0,d+16|0)}i=i+1|0;if((i|0)<o[a+852>>2]){continue}break}}M=d+176|0}function ND(a,b){var c=0,d=0,e=0,f=0,g=v(0),h=v(0),i=0,j=v(0),k=v(0),m=v(0),n=v(0),q=v(0),r=0,t=v(0),u=v(0),w=v(0),x=v(0),y=v(0),z=v(0),A=v(0),B=v(0),C=v(0),D=v(0),E=v(0),F=v(0),G=v(0),H=v(0),I=v(0),J=v(0),K=v(0),L=v(0),N=0,O=v(0),P=0,Q=v(0),R=v(0);c=M-176|0;M=c;d=l[o[o[a>>2]+20>>2]](a)|0;i=l[o[o[d>>2]+48>>2]](d)|0;d=l[o[o[a>>2]+20>>2]](a)|0;d=l[o[o[d>>2]+48>>2]](d)|0;L=s[b+40>>2];a:{if(L<=v(0)){break a}e=i&2048;N=d&4096;b:{switch(o[b+4>>2]+ -3|0){case 0:o[c+124>>2]=0;o[c+128>>2]=0;o[c+136>>2]=0;o[c+140>>2]=0;o[c+132>>2]=1065353216;o[c+156>>2]=0;o[c+160>>2]=0;o[c+152>>2]=1065353216;o[c+164>>2]=0;o[c+168>>2]=0;o[c+172>>2]=0;o[c+116>>2]=0;o[c+120>>2]=0;o[c+112>>2]=1065353216;o[c+144>>2]=0;o[c+148>>2]=0;d=o[b+28>>2];I=s[d+52>>2];t=s[d+8>>2];C=s[d+12>>2];D=s[d+56>>2];F=s[d+28>>2];k=s[d+20>>2];m=s[d+24>>2];n=s[d+60>>2];E=s[b+308>>2];j=s[d+44>>2];G=s[b+300>>2];q=s[d+36>>2];H=s[b+304>>2];g=s[d+40>>2];h=s[d+4>>2];o[c+172>>2]=0;s[c+168>>2]=n+v(v(v(G*q)+v(H*g))+v(E*j));s[c+164>>2]=D+v(v(v(G*k)+v(H*m))+v(E*F));s[c+160>>2]=I+v(v(v(G*h)+v(H*t))+v(E*C));d=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[d>>2]+56>>2]](d,c+112|0,L);d=o[b+32>>2];I=s[d+52>>2];t=s[d+8>>2];C=s[d+12>>2];D=s[d+56>>2];F=s[d+28>>2];k=s[d+20>>2];m=s[d+24>>2];n=s[d+60>>2];E=s[b+324>>2];j=s[d+44>>2];G=s[b+316>>2];q=s[d+36>>2];H=s[b+320>>2];g=s[d+40>>2];h=s[d+4>>2];o[c+172>>2]=0;s[c+168>>2]=n+v(v(v(G*q)+v(H*g))+v(E*j));s[c+164>>2]=D+v(v(v(G*k)+v(H*m))+v(E*F));s[c+160>>2]=I+v(v(v(G*h)+v(H*t))+v(E*C));if(!e){break a}a=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[a>>2]+56>>2]](a,c+112|0,L);break a;case 1:d=o[b+28>>2];q=s[d+52>>2];w=s[d+8>>2];x=s[d+12>>2];E=s[b+584>>2];G=s[b+552>>2];H=s[b+568>>2];g=s[d+56>>2];h=s[d+60>>2];I=s[b+608>>2];t=s[b+600>>2];C=s[b+604>>2];u=s[d+28>>2];y=s[d+20>>2];z=s[d+24>>2];D=s[b+588>>2];F=s[b+556>>2];k=s[b+572>>2];m=s[b+592>>2];A=s[d+44>>2];n=s[b+560>>2];B=s[d+36>>2];j=s[b+576>>2];J=s[d+40>>2];K=s[d+4>>2];o[c+172>>2]=0;o[c+156>>2]=0;o[c+140>>2]=0;s[c+152>>2]=v(v(n*B)+v(j*J))+v(m*A);s[c+148>>2]=v(v(F*B)+v(k*J))+v(D*A);s[c+136>>2]=v(v(n*y)+v(j*z))+v(m*u);s[c+132>>2]=v(v(F*y)+v(k*z))+v(D*u);s[c+168>>2]=h+v(v(v(B*t)+v(J*C))+v(A*I));s[c+164>>2]=g+v(v(v(y*t)+v(z*C))+v(u*I));o[c+124>>2]=0;s[c+144>>2]=v(v(G*B)+v(H*J))+v(E*A);s[c+128>>2]=v(v(G*y)+v(H*z))+v(E*u);s[c+120>>2]=v(v(K*n)+v(w*j))+v(x*m);s[c+116>>2]=v(v(K*F)+v(w*k))+v(x*D);s[c+112>>2]=v(v(G*K)+v(H*w))+v(E*x);s[c+160>>2]=q+v(v(v(K*t)+v(w*C))+v(x*I));c:{if(e){d=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[d>>2]+56>>2]](d,c+112|0,L);d=o[b+32>>2];q=s[d+52>>2];g=s[d+56>>2];h=s[d+60>>2];E=s[b+672>>2];G=s[b+664>>2];H=s[b+668>>2];w=s[d+8>>2];x=s[d+12>>2];u=s[d+28>>2];y=s[d+20>>2];z=s[d+24>>2];I=s[b+648>>2];t=s[b+616>>2];C=s[b+632>>2];D=s[b+652>>2];F=s[b+620>>2];k=s[b+636>>2];m=s[b+656>>2];A=s[d+44>>2];n=s[b+624>>2];B=s[d+36>>2];j=s[b+640>>2];J=s[d+40>>2];K=s[d+4>>2];o[c+172>>2]=0;o[c+156>>2]=0;o[c+140>>2]=0;o[c+124>>2]=0;s[c+152>>2]=v(v(n*B)+v(j*J))+v(m*A);s[c+148>>2]=v(v(F*B)+v(k*J))+v(D*A);s[c+144>>2]=v(v(t*B)+v(C*J))+v(I*A);s[c+136>>2]=v(v(n*y)+v(j*z))+v(m*u);s[c+132>>2]=v(v(F*y)+v(k*z))+v(D*u);s[c+128>>2]=v(v(t*y)+v(C*z))+v(I*u);s[c+120>>2]=v(v(K*n)+v(w*j))+v(x*m);s[c+116>>2]=v(v(K*F)+v(w*k))+v(x*D);s[c+112>>2]=v(v(t*K)+v(C*w))+v(I*x);s[c+168>>2]=h+v(v(v(B*G)+v(J*H))+v(A*E));s[c+164>>2]=g+v(v(v(y*G)+v(z*H))+v(u*E));s[c+160>>2]=q+v(v(v(K*G)+v(w*H))+v(x*E));d=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[d>>2]+56>>2]](d,c+112|0,L);break c}d=o[b+32>>2];q=s[d+52>>2];g=s[d+56>>2];h=s[d+60>>2];E=s[b+672>>2];G=s[b+664>>2];H=s[b+668>>2];w=s[d+8>>2];x=s[d+12>>2];u=s[d+28>>2];y=s[d+20>>2];z=s[d+24>>2];I=s[b+648>>2];t=s[b+616>>2];C=s[b+632>>2];D=s[b+652>>2];F=s[b+620>>2];k=s[b+636>>2];m=s[b+656>>2];A=s[d+44>>2];n=s[b+624>>2];B=s[d+36>>2];j=s[b+640>>2];J=s[d+40>>2];K=s[d+4>>2];o[c+172>>2]=0;o[c+156>>2]=0;o[c+140>>2]=0;o[c+124>>2]=0;s[c+152>>2]=v(v(n*B)+v(j*J))+v(m*A);s[c+148>>2]=v(v(F*B)+v(k*J))+v(D*A);s[c+144>>2]=v(v(t*B)+v(C*J))+v(I*A);s[c+136>>2]=v(v(n*y)+v(j*z))+v(m*u);s[c+132>>2]=v(v(F*y)+v(k*z))+v(D*u);s[c+128>>2]=v(v(t*y)+v(C*z))+v(I*u);s[c+120>>2]=v(v(K*n)+v(w*j))+v(x*m);s[c+116>>2]=v(v(K*F)+v(w*k))+v(x*D);s[c+112>>2]=v(v(t*K)+v(C*w))+v(I*x);s[c+168>>2]=h+v(v(v(B*G)+v(J*H))+v(A*E));s[c+164>>2]=g+v(v(v(y*G)+v(z*H))+v(u*E));s[c+160>>2]=q+v(v(v(K*G)+v(w*H))+v(x*E))}b=b+688|0;g=Jd(b);h=Kd(b);if(!N|g==h){break a}o[c+96>>2]=o[c+120>>2];o[c+100>>2]=o[c+136>>2];o[c+108>>2]=0;o[c+104>>2]=o[c+152>>2];o[c+80>>2]=o[c+112>>2];o[c+84>>2]=o[c+128>>2];o[c+92>>2]=0;o[c+88>>2]=o[c+144>>2];b=l[o[o[a>>2]+20>>2]](a)|0;o[c+72>>2]=0;o[c+76>>2]=0;o[c+64>>2]=0;o[c+68>>2]=0;a=g>h;l[o[o[b>>2]+60>>2]](b,c+160|0,c+96|0,c+80|0,L,L,a?v(0):g,a?v(6.2831854820251465):h,c- -64|0,a^1,v(10));break a;case 2:d=o[b+28>>2];q=s[d+52>>2];w=s[d+8>>2];x=s[d+12>>2];E=s[b+332>>2];G=s[b+300>>2];H=s[b+316>>2];g=s[d+56>>2];h=s[d+60>>2];I=s[b+356>>2];t=s[b+348>>2];C=s[b+352>>2];u=s[d+28>>2];y=s[d+20>>2];z=s[d+24>>2];D=s[b+336>>2];F=s[b+304>>2];k=s[b+320>>2];m=s[b+340>>2];A=s[d+44>>2];n=s[b+308>>2];B=s[d+36>>2];j=s[b+324>>2];J=s[d+40>>2];K=s[d+4>>2];o[c+172>>2]=0;o[c+156>>2]=0;o[c+140>>2]=0;s[c+152>>2]=v(v(n*B)+v(j*J))+v(m*A);s[c+148>>2]=v(v(F*B)+v(k*J))+v(D*A);s[c+136>>2]=v(v(n*y)+v(j*z))+v(m*u);s[c+132>>2]=v(v(F*y)+v(k*z))+v(D*u);s[c+168>>2]=h+v(v(v(B*t)+v(J*C))+v(A*I));s[c+164>>2]=g+v(v(v(y*t)+v(z*C))+v(u*I));o[c+124>>2]=0;s[c+144>>2]=v(v(G*B)+v(H*J))+v(E*A);s[c+128>>2]=v(v(G*y)+v(H*z))+v(E*u);s[c+120>>2]=v(v(K*n)+v(w*j))+v(x*m);s[c+116>>2]=v(v(K*F)+v(w*k))+v(x*D);s[c+112>>2]=v(v(G*K)+v(H*w))+v(E*x);s[c+160>>2]=q+v(v(v(K*t)+v(w*C))+v(x*I));d:{if(e){d=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[d>>2]+56>>2]](d,c+112|0,L);d=o[b+32>>2];q=s[d+52>>2];g=s[d+56>>2];h=s[d+60>>2];E=s[b+420>>2];G=s[b+412>>2];H=s[b+416>>2];w=s[d+8>>2];x=s[d+12>>2];u=s[d+28>>2];y=s[d+20>>2];z=s[d+24>>2];I=s[b+396>>2];t=s[b+364>>2];C=s[b+380>>2];D=s[b+400>>2];F=s[b+368>>2];k=s[b+384>>2];m=s[b+404>>2];A=s[d+44>>2];n=s[b+372>>2];B=s[d+36>>2];j=s[b+388>>2];J=s[d+40>>2];K=s[d+4>>2];o[c+172>>2]=0;o[c+156>>2]=0;o[c+140>>2]=0;o[c+124>>2]=0;s[c+152>>2]=v(v(n*B)+v(j*J))+v(m*A);s[c+148>>2]=v(v(F*B)+v(k*J))+v(D*A);s[c+144>>2]=v(v(t*B)+v(C*J))+v(I*A);s[c+136>>2]=v(v(n*y)+v(j*z))+v(m*u);s[c+132>>2]=v(v(F*y)+v(k*z))+v(D*u);s[c+128>>2]=v(v(t*y)+v(C*z))+v(I*u);s[c+120>>2]=v(v(K*n)+v(w*j))+v(x*m);s[c+116>>2]=v(v(K*F)+v(w*k))+v(x*D);s[c+112>>2]=v(v(t*K)+v(C*w))+v(I*x);s[c+168>>2]=h+v(v(v(B*G)+v(J*H))+v(A*E));s[c+164>>2]=g+v(v(v(y*G)+v(z*H))+v(u*E));s[c+160>>2]=q+v(v(v(K*G)+v(w*H))+v(x*E));d=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[d>>2]+56>>2]](d,c+112|0,L);break d}d=o[b+32>>2];q=s[d+52>>2];g=s[d+56>>2];h=s[d+60>>2];E=s[b+420>>2];G=s[b+412>>2];H=s[b+416>>2];w=s[d+8>>2];x=s[d+12>>2];u=s[d+28>>2];y=s[d+20>>2];z=s[d+24>>2];I=s[b+396>>2];t=s[b+364>>2];C=s[b+380>>2];D=s[b+400>>2];F=s[b+368>>2];k=s[b+384>>2];m=s[b+404>>2];A=s[d+44>>2];n=s[b+372>>2];B=s[d+36>>2];j=s[b+388>>2];J=s[d+40>>2];K=s[d+4>>2];o[c+172>>2]=0;o[c+156>>2]=0;o[c+140>>2]=0;o[c+124>>2]=0;s[c+152>>2]=v(v(n*B)+v(j*J))+v(m*A);s[c+148>>2]=v(v(F*B)+v(k*J))+v(D*A);s[c+144>>2]=v(v(t*B)+v(C*J))+v(I*A);s[c+136>>2]=v(v(n*y)+v(j*z))+v(m*u);s[c+132>>2]=v(v(F*y)+v(k*z))+v(D*u);s[c+128>>2]=v(v(t*y)+v(C*z))+v(I*u);s[c+120>>2]=v(v(K*n)+v(w*j))+v(x*m);s[c+116>>2]=v(v(K*F)+v(w*k))+v(x*D);s[c+112>>2]=v(v(t*K)+v(C*w))+v(I*x);s[c+168>>2]=h+v(v(v(B*G)+v(J*H))+v(A*E));s[c+164>>2]=g+v(v(v(y*G)+v(z*H))+v(u*E));s[c+160>>2]=q+v(v(v(K*G)+v(w*H))+v(x*E))}if(!N){break a}oj(c+96|0,b,v(6.0868353843688965),L);o[c+108>>2]=0;q=s[c+96>>2];g=s[c+100>>2];h=s[c+104>>2];s[c+104>>2]=v(v(v(q*s[c+144>>2])+v(g*s[c+148>>2]))+v(h*s[c+152>>2]))+s[c+168>>2];s[c+100>>2]=v(v(v(q*s[c+128>>2])+v(g*s[c+132>>2]))+v(h*s[c+136>>2]))+s[c+164>>2];s[c+96>>2]=v(v(v(q*s[c+112>>2])+v(g*s[c+116>>2]))+v(h*s[c+120>>2]))+s[c+160>>2];d=c+160|0;while(1){oj(c+80|0,b,v(v(v(r|0)*v(6.283185005187988))*v(.03125)),L);o[c+92>>2]=0;q=s[c+80>>2];g=s[c+84>>2];h=s[c+88>>2];s[c+88>>2]=v(v(v(q*s[c+144>>2])+v(g*s[c+148>>2]))+v(h*s[c+152>>2]))+s[c+168>>2];s[c+84>>2]=v(v(v(q*s[c+128>>2])+v(g*s[c+132>>2]))+v(h*s[c+136>>2]))+s[c+164>>2];s[c+80>>2]=v(v(v(q*s[c+112>>2])+v(g*s[c+116>>2]))+v(h*s[c+120>>2]))+s[c+160>>2];i=l[o[o[a>>2]+20>>2]](a)|0;o[c+72>>2]=0;o[c+76>>2]=0;o[c+64>>2]=0;o[c+68>>2]=0;l[o[o[i>>2]+8>>2]](i,c+96|0,c+80|0,c- -64|0);if(!(r&3)){i=l[o[o[a>>2]+20>>2]](a)|0;o[c+72>>2]=0;o[c+76>>2]=0;o[c+64>>2]=0;o[c+68>>2]=0;l[o[o[i>>2]+8>>2]](i,d,c+80|0,c- -64|0)}i=o[c+92>>2];o[c+104>>2]=o[c+88>>2];o[c+108>>2]=i;i=o[c+84>>2];o[c+96>>2]=o[c+80>>2];o[c+100>>2]=i;r=r+1|0;if((r|0)!=32){continue}break}J=s[b+512>>2];K=s[b+452>>2];r=o[b+32>>2];e:{if(s[r+344>>2]>v(0)){O=s[r+36>>2];g=s[b+412>>2];t=s[r+40>>2];h=s[b+416>>2];E=v(v(O*g)+v(t*h));w=s[r+20>>2];x=s[r+24>>2];u=s[r+28>>2];C=s[b+420>>2];G=v(v(v(w*g)+v(x*h))+v(u*C));y=s[r+4>>2];z=s[r+8>>2];A=s[r+12>>2];H=v(v(v(y*g)+v(z*h))+v(A*C));D=s[b+372>>2];F=s[b+388>>2];k=s[b+404>>2];B=s[r+44>>2];I=v(v(v(D*O)+v(F*t))+v(k*B));m=s[b+368>>2];n=s[b+384>>2];j=s[b+400>>2];Q=v(v(v(m*O)+v(n*t))+v(j*B));q=s[b+364>>2];g=s[b+380>>2];h=s[b+396>>2];R=v(v(v(q*O)+v(g*t))+v(h*B));t=v(v(v(D*w)+v(F*x))+v(k*u));O=v(v(v(m*w)+v(n*x))+v(j*u));u=v(v(v(q*w)+v(g*x))+v(h*u));k=v(v(v(y*D)+v(z*F))+v(A*k));m=v(v(v(y*m)+v(z*n))+v(A*j));n=v(v(v(q*y)+v(g*z))+v(h*A));j=v(B*C);break e}r=o[b+28>>2];O=s[r+36>>2];g=s[b+348>>2];t=s[r+40>>2];h=s[b+352>>2];E=v(v(O*g)+v(t*h));w=s[r+20>>2];x=s[r+24>>2];u=s[r+28>>2];C=s[b+356>>2];G=v(v(v(w*g)+v(x*h))+v(u*C));y=s[r+4>>2];z=s[r+8>>2];A=s[r+12>>2];H=v(v(v(y*g)+v(z*h))+v(A*C));D=s[b+308>>2];F=s[b+324>>2];k=s[b+340>>2];B=s[r+44>>2];I=v(v(v(D*O)+v(F*t))+v(k*B));m=s[b+304>>2];n=s[b+320>>2];j=s[b+336>>2];Q=v(v(v(m*O)+v(n*t))+v(j*B));q=s[b+300>>2];g=s[b+316>>2];h=s[b+332>>2];R=v(v(v(q*O)+v(g*t))+v(h*B));t=v(v(v(D*w)+v(F*x))+v(k*u));O=v(v(v(m*w)+v(n*x))+v(j*u));u=v(v(v(q*w)+v(g*x))+v(h*u));k=v(v(v(y*D)+v(z*F))+v(A*k));m=v(v(v(y*m)+v(z*n))+v(A*j));n=v(v(v(q*y)+v(g*z))+v(h*A));j=v(B*C)}q=s[r+52>>2];g=s[r+56>>2];h=s[r+60>>2];o[c+172>>2]=0;o[c+156>>2]=0;s[c+152>>2]=I;s[c+148>>2]=Q;s[c+144>>2]=R;o[c+140>>2]=0;s[c+136>>2]=t;s[c+132>>2]=O;s[c+128>>2]=u;o[c+124>>2]=0;s[c+120>>2]=k;s[c+116>>2]=m;s[c+112>>2]=n;s[c+168>>2]=h+v(E+j);s[c+164>>2]=G+g;s[c+160>>2]=q+H;b=o[d+12>>2];o[c+88>>2]=o[d+8>>2];o[c+92>>2]=b;b=o[d+4>>2];o[c+80>>2]=o[d>>2];o[c+84>>2]=b;o[c+76>>2]=0;s[c+72>>2]=R;s[c+68>>2]=u;s[c+64>>2]=n;o[c+60>>2]=0;s[c+56>>2]=Q;s[c+52>>2]=O;s[c+48>>2]=m;a=l[o[o[a>>2]+20>>2]](a)|0;o[c+40>>2]=0;o[c+44>>2]=0;o[c+32>>2]=0;o[c+36>>2]=0;l[o[o[a>>2]+60>>2]](a,c+80|0,c- -64|0,c+48|0,L,L,v(v(-J)-K),v(K-J),c+32|0,1,v(10));break a;case 3:case 6:i=b+1072|0;d=o[i+4>>2];o[c+120>>2]=o[i>>2];o[c+124>>2]=d;P=b+1064|0;i=P;d=o[i+4>>2];o[c+112>>2]=o[i>>2];o[c+116>>2]=d;i=b+1088|0;d=o[i+4>>2];o[c+136>>2]=o[i>>2];o[c+140>>2]=d;r=b+1080|0;i=r;d=o[i+4>>2];o[c+128>>2]=o[i>>2];o[c+132>>2]=d;i=b+1104|0;d=o[i+4>>2];o[c+152>>2]=o[i>>2];o[c+156>>2]=d;i=b+1096|0;f=i;d=o[f+4>>2];o[c+144>>2]=o[f>>2];o[c+148>>2]=d;f=b+1120|0;d=o[f+4>>2];o[c+168>>2]=o[f>>2];o[c+172>>2]=d;d=b+1112|0;f=o[d+4>>2];o[c+160>>2]=o[d>>2];o[c+164>>2]=f;f:{if(e){f=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[f>>2]+56>>2]](f,c+112|0,L);e=b+1136|0;f=o[e+4>>2];o[c+120>>2]=o[e>>2];o[c+124>>2]=f;e=b+1128|0;f=o[e+4>>2];o[c+112>>2]=o[e>>2];o[c+116>>2]=f;e=b+1152|0;f=o[e+4>>2];o[c+136>>2]=o[e>>2];o[c+140>>2]=f;e=b+1144|0;f=o[e+4>>2];o[c+128>>2]=o[e>>2];o[c+132>>2]=f;e=b+1168|0;f=o[e+4>>2];o[c+152>>2]=o[e>>2];o[c+156>>2]=f;e=b+1160|0;f=o[e+4>>2];o[c+144>>2]=o[e>>2];o[c+148>>2]=f;e=b+1184|0;f=o[e+4>>2];o[c+168>>2]=o[e>>2];o[c+172>>2]=f;e=b+1176|0;f=o[e+4>>2];o[c+160>>2]=o[e>>2];o[c+164>>2]=f;f=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[f>>2]+56>>2]](f,c+112|0,L);break f}e=b+1136|0;f=o[e+4>>2];o[c+120>>2]=o[e>>2];o[c+124>>2]=f;e=b+1128|0;f=o[e+4>>2];o[c+112>>2]=o[e>>2];o[c+116>>2]=f;e=b+1152|0;f=o[e+4>>2];o[c+136>>2]=o[e>>2];o[c+140>>2]=f;e=b+1144|0;f=o[e+4>>2];o[c+128>>2]=o[e>>2];o[c+132>>2]=f;e=b+1168|0;f=o[e+4>>2];o[c+152>>2]=o[e>>2];o[c+156>>2]=f;e=b+1160|0;f=o[e+4>>2];o[c+144>>2]=o[e>>2];o[c+148>>2]=f;e=b+1184|0;f=o[e+4>>2];o[c+168>>2]=o[e>>2];o[c+172>>2]=f;e=b+1176|0;f=o[e+4>>2];o[c+160>>2]=o[e>>2];o[c+164>>2]=f}if(!N){break a}f=P;e=o[f+12>>2];o[c+120>>2]=o[f+8>>2];o[c+124>>2]=e;e=o[f+4>>2];o[c+112>>2]=o[f>>2];o[c+116>>2]=e;f=r;e=o[f+12>>2];o[c+136>>2]=o[f+8>>2];o[c+140>>2]=e;e=o[f+4>>2];o[c+128>>2]=o[f>>2];o[c+132>>2]=e;f=i;e=o[f+12>>2];o[c+152>>2]=o[f+8>>2];o[c+156>>2]=e;e=o[f+4>>2];o[c+144>>2]=o[f>>2];o[c+148>>2]=e;e=o[d+12>>2];o[c+168>>2]=o[d+8>>2];o[c+172>>2]=e;e=o[d+4>>2];o[c+160>>2]=o[d>>2];o[c+164>>2]=e;o[c+96>>2]=o[c+120>>2];o[c+100>>2]=o[c+136>>2];o[c+108>>2]=0;o[c+104>>2]=o[c+152>>2];o[c+80>>2]=o[c+112>>2];o[c+84>>2]=o[c+128>>2];o[c+92>>2]=0;o[c+88>>2]=o[c+144>>2];j=s[b+1e3>>2];q=s[b+996>>2];g=s[b+936>>2];h=s[b+932>>2];f=l[o[o[a>>2]+20>>2]](a)|0;o[c+72>>2]=0;o[c+76>>2]=0;o[c+64>>2]=0;o[c+68>>2]=0;N=b+1176|0;l[o[o[f>>2]+64>>2]](f,N,c+96|0,c+80|0,v(L*v(.8999999761581421)),h,g,q,j,c- -64|0,v(10),1);o[c+92>>2]=0;o[c+88>>2]=o[c+148>>2];o[c+84>>2]=o[c+132>>2];o[c+80>>2]=o[c+116>>2];g=s[b+1196>>2];k=s[c+80>>2];h=s[b+1200>>2];m=qa(h);n=s[c+84>>2];j=ra(h);s[c+68>>2]=v(n*j)-v(m*k);q=qa(g);h=s[c+88>>2];g=ra(g);s[c+72>>2]=v(v(k*v(j*q))+v(n*v(q*m)))+v(h*g);s[c+64>>2]=v(v(k*v(g*j))+v(n*v(g*m)))-v(q*h);e=b+1136|0;f=o[e+4>>2];o[c+120>>2]=o[e>>2];o[c+124>>2]=f;e=b+1128|0;f=o[e+4>>2];o[c+112>>2]=o[e>>2];o[c+116>>2]=f;e=b+1152|0;f=o[e+4>>2];o[c+136>>2]=o[e>>2];o[c+140>>2]=f;e=b+1144|0;f=o[e+4>>2];o[c+128>>2]=o[e>>2];o[c+132>>2]=f;e=b+1168|0;f=o[e+4>>2];o[c+152>>2]=o[e>>2];o[c+156>>2]=f;e=b+1160|0;f=o[e+4>>2];o[c+144>>2]=o[e>>2];o[c+148>>2]=f;f=o[N+4>>2];o[c+160>>2]=o[N>>2];o[c+164>>2]=f;e=b+1184|0;f=o[e+4>>2];o[c+168>>2]=o[e>>2];o[c+172>>2]=f;o[c+60>>2]=0;s[c+56>>2]=-s[c+144>>2];s[c+52>>2]=-s[c+128>>2];s[c+48>>2]=-s[c+112>>2];g=s[b+868>>2];h=s[b+872>>2];g:{if(!!(g>h)){f=l[o[o[a>>2]+20>>2]](a)|0;o[c+40>>2]=0;o[c+44>>2]=0;o[c+32>>2]=0;o[c+36>>2]=0;l[o[o[f>>2]+60>>2]](f,N,c+48|0,c- -64|0,L,L,v(-3.1415927410125732),v(3.1415927410125732),c+32|0,0,v(10));break g}if(!(g<h)){break g}f=l[o[o[a>>2]+20>>2]](a)|0;o[c+40>>2]=0;o[c+44>>2]=0;o[c+32>>2]=0;o[c+36>>2]=0;l[o[o[f>>2]+60>>2]](f,N,c+48|0,c- -64|0,L,L,g,h,c+32|0,1,v(10))}f=o[P+12>>2];o[c+120>>2]=o[P+8>>2];o[c+124>>2]=f;f=o[P+4>>2];o[c+112>>2]=o[P>>2];o[c+116>>2]=f;P=o[r+12>>2];o[c+136>>2]=o[r+8>>2];o[c+140>>2]=P;P=o[r+4>>2];o[c+128>>2]=o[r>>2];o[c+132>>2]=P;r=o[i+12>>2];o[c+152>>2]=o[i+8>>2];o[c+156>>2]=r;r=o[i+4>>2];o[c+144>>2]=o[i>>2];o[c+148>>2]=r;i=o[d+12>>2];o[c+168>>2]=o[d+8>>2];o[c+172>>2]=i;i=o[d+4>>2];o[c+160>>2]=o[d>>2];o[c+164>>2]=i;d=o[b+692>>2];o[c+40>>2]=o[b+688>>2];o[c+44>>2]=d;d=o[b+684>>2];o[c+32>>2]=o[b+680>>2];o[c+36>>2]=d;d=o[b+708>>2];o[c+24>>2]=o[b+704>>2];o[c+28>>2]=d;d=o[b+700>>2];o[c+16>>2]=o[b+696>>2];o[c+20>>2]=d;a=l[o[o[a>>2]+20>>2]](a)|0;o[c+8>>2]=0;o[c+12>>2]=0;o[c>>2]=0;o[c+4>>2]=0;l[o[o[a>>2]+72>>2]](a,c+32|0,c+16|0,c+112|0,c);break a;case 4:break b;default:break a}}d=o[b+836>>2];o[c+120>>2]=o[b+832>>2];o[c+124>>2]=d;r=b+824|0;i=r;d=o[i+4>>2];o[c+112>>2]=o[i>>2];o[c+116>>2]=d;d=o[b+852>>2];o[c+136>>2]=o[b+848>>2];o[c+140>>2]=d;d=o[b+844>>2];o[c+128>>2]=o[b+840>>2];o[c+132>>2]=d;d=o[b+868>>2];o[c+152>>2]=o[b+864>>2];o[c+156>>2]=d;d=o[b+860>>2];o[c+144>>2]=o[b+856>>2];o[c+148>>2]=d;d=o[b+884>>2];o[c+168>>2]=o[b+880>>2];o[c+172>>2]=d;d=o[b+876>>2];o[c+160>>2]=o[b+872>>2];o[c+164>>2]=d;h:{if(e){d=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[d>>2]+56>>2]](d,c+112|0,L);d=o[b+900>>2];o[c+120>>2]=o[b+896>>2];o[c+124>>2]=d;d=o[b+892>>2];o[c+112>>2]=o[b+888>>2];o[c+116>>2]=d;d=o[b+916>>2];o[c+136>>2]=o[b+912>>2];o[c+140>>2]=d;d=o[b+908>>2];o[c+128>>2]=o[b+904>>2];o[c+132>>2]=d;d=o[b+932>>2];o[c+152>>2]=o[b+928>>2];o[c+156>>2]=d;d=o[b+924>>2];o[c+144>>2]=o[b+920>>2];o[c+148>>2]=d;d=o[b+948>>2];o[c+168>>2]=o[b+944>>2];o[c+172>>2]=d;d=o[b+940>>2];o[c+160>>2]=o[b+936>>2];o[c+164>>2]=d;d=l[o[o[a>>2]+20>>2]](a)|0;l[o[o[d>>2]+56>>2]](d,c+112|0,L);break h}d=o[b+900>>2];o[c+120>>2]=o[b+896>>2];o[c+124>>2]=d;d=o[b+892>>2];o[c+112>>2]=o[b+888>>2];o[c+116>>2]=d;d=o[b+916>>2];o[c+136>>2]=o[b+912>>2];o[c+140>>2]=d;d=o[b+908>>2];o[c+128>>2]=o[b+904>>2];o[c+132>>2]=d;d=o[b+932>>2];o[c+152>>2]=o[b+928>>2];o[c+156>>2]=d;d=o[b+924>>2];o[c+144>>2]=o[b+920>>2];o[c+148>>2]=d;d=o[b+948>>2];o[c+168>>2]=o[b+944>>2];o[c+172>>2]=d;d=o[b+940>>2];o[c+160>>2]=o[b+936>>2];o[c+164>>2]=d}if(!N){break a}d=p[b+180|0];i=d?r:b+888|0;G=s[i+48>>2];F=s[i+8>>2];k=s[i+4>>2];e=o[i+4>>2];H=s[i+52>>2];j=s[i+24>>2];I=s[i+16>>2];f=o[i+16>>2];q=s[i+20>>2];P=o[i+20>>2];t=s[i+56>>2];g=s[i+40>>2];C=s[i+32>>2];r=o[i+32>>2];h=s[i+36>>2];i=o[i+36>>2];d=(d?824:888)+b|0;D=s[d>>2];d=o[d>>2];E=s[b+184>>2];o[c+108>>2]=0;m=v(g*v(0));n=v(h*v(0));s[c+104>>2]=t+v(m+v(n+v(E*C)));j=v(j*v(0));q=v(q*v(0));s[c+100>>2]=H+v(j+v(q+v(E*I)));g=v(F*v(0));h=v(k*v(0));s[c+96>>2]=G+v(g+v(h+v(E*D)));k=s[b+188>>2];o[c+92>>2]=0;s[c+88>>2]=t+v(m+v(n+v(k*C)));s[c+84>>2]=H+v(j+v(q+v(k*I)));s[c+80>>2]=G+v(g+v(h+v(k*D)));N=l[o[o[a>>2]+20>>2]](a)|0;o[c+72>>2]=0;o[c+76>>2]=0;o[c+64>>2]=0;o[c+68>>2]=0;l[o[o[N>>2]+8>>2]](N,c+96|0,c+80|0,c- -64|0);o[c+76>>2]=0;o[c+72>>2]=r;o[c+68>>2]=f;o[c+64>>2]=d;o[c+60>>2]=0;o[c+56>>2]=i;o[c+52>>2]=P;o[c+48>>2]=e;g=s[b+196>>2];h=s[b+192>>2];a=l[o[o[a>>2]+20>>2]](a)|0;o[c+40>>2]=0;o[c+44>>2]=0;o[c+32>>2]=0;o[c+36>>2]=0;l[o[o[a>>2]+60>>2]](a,b+936|0,c- -64|0,c+48|0,L,L,h,g,c+32|0,1,v(10))}M=c+176|0}function dC(a,b,c,d){a=a|0;b=b|0;c=c|0;d=v(d);var e=0,f=v(0),g=v(0),h=v(0),i=v(0),j=0,k=v(0),l=0,m=v(0),n=v(0),q=v(0),r=v(0),t=v(0),w=v(0),x=v(0),y=v(0),z=v(0),A=v(0),B=0,D=v(0),E=v(0),F=v(0),G=v(0),H=v(0),I=v(0),J=v(0),K=v(0),L=v(0),N=v(0),O=v(0),P=v(0),Q=v(0),R=v(0),S=v(0),T=v(0),U=v(0),V=v(0),W=v(0),X=v(0),Y=v(0),Z=v(0),_=v(0),$=v(0),aa=v(0),ba=v(0),ca=v(0),da=v(0),ea=0,fa=0,ga=0,ha=v(0),ia=v(0),ja=v(0);e=M-464|0;M=e;a:{if(!p[a+527|0]){break a}j=o[a+32>>2];l=o[a+28>>2];if(!p[a+524|0]){f=s[a+348>>2];g=s[a+352>>2];h=s[a+356>>2];i=s[l+56>>2];r=v(v(v(v(f*s[l+20>>2])+v(g*s[l+24>>2]))+v(h*s[l+28>>2]))+i);k=v(r-i);t=v(s[b+192>>2]+s[b+80>>2]);i=s[l+52>>2];z=v(v(v(v(f*s[l+4>>2])+v(g*s[l+8>>2]))+v(h*s[l+12>>2]))+i);n=v(z-i);A=v(s[b+196>>2]+s[b+84>>2]);i=s[a+412>>2];w=s[a+416>>2];m=s[a+420>>2];q=s[j+56>>2];D=v(v(v(v(i*s[j+20>>2])+v(w*s[j+24>>2]))+v(m*s[j+28>>2]))+q);q=v(D-q);F=v(s[c+192>>2]+s[c+80>>2]);x=s[j+52>>2];E=v(v(v(v(i*s[j+4>>2])+v(w*s[j+8>>2]))+v(m*s[j+12>>2]))+x);x=v(E-x);H=v(s[c+196>>2]+s[c+84>>2]);I=v(v(v(s[b+184>>2]+s[b+72>>2])+v(v(k*t)-v(n*A)))-v(v(s[c+184>>2]+s[c+72>>2])+v(v(q*F)-v(x*H))));J=v(s[b+200>>2]+s[b+88>>2]);h=v(v(v(f*s[l+36>>2])+v(g*s[l+40>>2]))+v(h*s[l+44>>2]));f=s[l+60>>2];g=v(h+f);y=v(g-f);f=v(s[c+200>>2]+s[c+88>>2]);h=s[j+60>>2];i=v(v(v(v(i*s[j+36>>2])+v(w*s[j+40>>2]))+v(m*s[j+44>>2]))+h);w=v(i-h);F=v(v(v(s[b+180>>2]+s[b+68>>2])+v(v(n*J)-v(y*t)))-v(v(s[c+180>>2]+s[c+68>>2])+v(v(x*f)-v(w*F))));A=v(v(v(s[b+176>>2]+s[b+64>>2])+v(v(y*A)-v(k*J)))-v(v(s[c+176>>2]+s[c+64>>2])+v(v(w*H)-v(q*f))));H=v(g-i);D=v(r-D);z=v(z-E);fa=o[c+240>>2];ga=o[b+240>>2];while(1){B=u(ea,84)+a|0;f=v(v(1)/s[B+128>>2]);g=s[B+48>>2];h=s[B+52>>2];i=s[B+56>>2];f=v(v(f*v(v(v(v(v(z*g)+v(D*h))+v(H*i))*v(-.30000001192092896))/d))-v(f*v(v(v(A*g)+v(F*h))+v(I*i))));s[a+36>>2]=s[a+36>>2]+f;g=s[B+48>>2];h=s[B+52>>2];i=s[B+56>>2];if(ga){E=s[l+304>>2];J=s[l+296>>2];K=s[l+300>>2];L=s[l+288>>2];Q=s[l+280>>2];G=s[l+284>>2];t=s[l+272>>2];r=s[l+264>>2];O=s[l+268>>2];m=s[l+344>>2];s[b+64>>2]=v(v(f*v(g*m))*s[b+112>>2])+s[b+64>>2];s[b+68>>2]=v(v(f*v(h*m))*s[b+116>>2])+s[b+68>>2];s[b+72>>2]=v(v(f*v(i*m))*s[b+120>>2])+s[b+72>>2];m=v(v(k*i)-v(y*h));N=v(r*m);r=v(v(y*g)-v(n*i));P=t;t=v(v(n*h)-v(k*g));s[b+80>>2]=v(v(v(N+v(O*r))+v(P*t))*v(f*s[b+96>>2]))+s[b+80>>2];O=s[b+104>>2];s[b+84>>2]=v(v(v(v(m*Q)+v(r*G))+v(t*L))*v(f*s[b+100>>2]))+s[b+84>>2];s[b+88>>2]=v(v(v(v(m*J)+v(r*K))+v(t*E))*v(f*O))+s[b+88>>2]}if(fa){r=s[j+304>>2];t=s[j+296>>2];E=s[j+300>>2];J=s[j+288>>2];K=s[j+280>>2];L=s[j+284>>2];Q=s[j+272>>2];G=s[j+264>>2];O=s[j+268>>2];aa=s[B+56>>2];$=s[B+52>>2];m=s[j+344>>2];f=v(-f);s[c+64>>2]=v(s[c+112>>2]*v(v(m*s[B+48>>2])*f))+s[c+64>>2];s[c+68>>2]=v(v(v(m*$)*f)*s[c+116>>2])+s[c+68>>2];s[c+72>>2]=v(v(v(m*aa)*f)*s[c+120>>2])+s[c+72>>2];m=v(v(q*i)-v(w*h));i=v(v(w*g)-v(x*i));g=v(v(x*h)-v(q*g));s[c+80>>2]=v(v(v(v(G*m)+v(O*i))+v(Q*g))*v(s[c+96>>2]*f))+s[c+80>>2];h=s[c+104>>2];s[c+84>>2]=v(v(v(v(m*K)+v(i*L))+v(g*J))*v(s[c+100>>2]*f))+s[c+84>>2];s[c+88>>2]=v(v(v(v(m*t)+v(i*E))+v(g*r))*v(h*f))+s[c+88>>2]}ea=ea+1|0;if((ea|0)!=3){continue}break}}b:{if(p[a+552|0]){B=o[l+16>>2];o[e+384>>2]=o[l+12>>2];o[e+388>>2]=B;B=o[l+8>>2];o[e+376>>2]=o[l+4>>2];o[e+380>>2]=B;B=o[l+32>>2];o[e+400>>2]=o[l+28>>2];o[e+404>>2]=B;B=o[l+24>>2];o[e+392>>2]=o[l+20>>2];o[e+396>>2]=B;B=o[l+48>>2];o[e+416>>2]=o[l+44>>2];o[e+420>>2]=B;B=o[l+40>>2];o[e+408>>2]=o[l+36>>2];o[e+412>>2]=B;B=o[l+64>>2];o[e+432>>2]=o[l+60>>2];o[e+436>>2]=B;B=o[l+56>>2];o[e+424>>2]=o[l+52>>2];o[e+428>>2]=B;l=o[j+16>>2];o[e+320>>2]=o[j+12>>2];o[e+324>>2]=l;l=o[j+8>>2];o[e+312>>2]=o[j+4>>2];o[e+316>>2]=l;l=o[j+32>>2];o[e+336>>2]=o[j+28>>2];o[e+340>>2]=l;l=o[j+24>>2];o[e+328>>2]=o[j+20>>2];o[e+332>>2]=l;l=o[j+48>>2];o[e+352>>2]=o[j+44>>2];o[e+356>>2]=l;l=o[j+40>>2];o[e+344>>2]=o[j+36>>2];o[e+348>>2]=l;l=o[j+64>>2];o[e+368>>2]=o[j+60>>2];o[e+372>>2]=l;l=o[j+56>>2];o[e+360>>2]=o[j+52>>2];o[e+364>>2]=l;f=s[b+84>>2];g=s[b+196>>2];h=s[b+88>>2];i=s[b+200>>2];k=s[b+80>>2];n=s[b+192>>2];o[e+308>>2]=0;s[e+304>>2]=i+h;s[e+300>>2]=g+f;s[e+296>>2]=n+k;f=s[c+84>>2];g=s[c+196>>2];h=s[c+88>>2];i=s[c+200>>2];k=s[c+80>>2];n=s[c+192>>2];o[e+292>>2]=0;s[e+288>>2]=i+h;s[e+284>>2]=g+f;s[e+280>>2]=n+k;o[e+228>>2]=0;o[e+232>>2]=0;o[e+240>>2]=0;o[e+244>>2]=0;o[e+236>>2]=1065353216;o[e+260>>2]=0;o[e+264>>2]=0;o[e+256>>2]=1065353216;o[e+268>>2]=0;o[e+272>>2]=0;o[e+276>>2]=0;o[e+220>>2]=0;o[e+224>>2]=0;o[e+216>>2]=1065353216;o[e+248>>2]=0;o[e+252>>2]=0;o[e+208>>2]=0;o[e+212>>2]=0;o[e+200>>2]=0;o[e+204>>2]=0;rb(e+376|0,e+200|0,e+296|0,d,e+216|0);o[e+148>>2]=0;o[e+152>>2]=0;o[e+160>>2]=0;o[e+164>>2]=0;o[e+156>>2]=1065353216;o[e+180>>2]=0;o[e+184>>2]=0;o[e+176>>2]=1065353216;o[e+188>>2]=0;o[e+192>>2]=0;o[e+196>>2]=0;o[e+140>>2]=0;o[e+144>>2]=0;o[e+136>>2]=1065353216;o[e+168>>2]=0;o[e+172>>2]=0;rb(e+312|0,e+200|0,e+280|0,d,e+136|0);y=s[a+308>>2];r=s[a+304>>2];i=s[a+324>>2];n=s[a+316>>2];w=s[a+320>>2];m=s[a+404>>2];t=s[a+400>>2];z=s[a+396>>2];A=s[a+372>>2];D=s[a+368>>2];F=s[a+340>>2];E=s[a+332>>2];H=s[a+336>>2];I=s[a+388>>2];J=s[a+384>>2];K=s[a+380>>2];g=s[a+568>>2];k=s[a+564>>2];h=s[a+560>>2];ha=s[a+420>>2];P=s[a+412>>2];ia=s[a+416>>2];L=s[a+300>>2];O=s[a+356>>2];ja=s[a+352>>2];aa=s[a+348>>2];Q=s[a+364>>2];f=s[a+556>>2];o[e+132>>2]=0;o[e+116>>2]=0;o[e+100>>2]=0;x=v(v(2)/v(v(v(v(f*f)+v(h*h))+v(k*k))+v(g*g)));q=v(k*x);U=v(f*q);G=v(h*x);V=v(g*G);N=v(U-V);W=v(f*G);X=v(g*q);R=v(W+X);Y=v(h*G);G=v(k*q);k=v(v(1)-v(Y+G));$=v(v(A*N)+v(v(D*R)+v(Q*k)));Z=v(h*q);h=g;g=v(f*x);_=v(h*g);h=v(Z+_);q=v(W-X);f=v(f*g);x=v(v(1)-v(f+G));W=v(v(A*h)+v(v(Q*q)+v(D*x)));G=v(U+V);S=v(Z-_);T=v(v(1)-v(f+Y));U=v(v(v(Q*G)+v(D*S))+v(A*T));f=v(v(v(E*$)+v(H*W))+v(F*U));V=s[e+168>>2];X=v(v(N*I)+v(v(J*R)+v(K*k)));Y=v(v(h*I)+v(v(K*q)+v(J*x)));Z=v(v(v(K*G)+v(J*S))+v(I*T));g=v(v(v(E*X)+v(H*Y))+v(F*Z));_=s[e+172>>2];N=v(v(v(k*z)+v(R*t))+v(N*m));R=v(v(v(q*z)+v(x*t))+v(h*m));S=v(v(v(G*z)+v(S*t))+v(T*m));h=v(v(v(E*N)+v(H*R))+v(F*S));T=s[e+176>>2];s[e+112>>2]=v(v(f*V)+v(g*_))+v(h*T);q=v(v(v($*n)+v(W*w))+v(U*i));x=v(v(v(X*n)+v(Y*w))+v(Z*i));k=v(v(v(N*n)+v(R*w))+v(S*i));s[e+108>>2]=v(v(V*q)+v(_*x))+v(T*k);ba=s[e+152>>2];ca=s[e+156>>2];da=s[e+160>>2];s[e+96>>2]=v(v(f*ba)+v(g*ca))+v(h*da);s[e+92>>2]=v(v(q*ba)+v(x*ca))+v(k*da);G=v(0);A=v(P+v(v(v(Q*v(0))+v(D*v(0)))+v(A*v(0))));P=i;i=v(-ja);D=v(v(v(P*i)-v(y*aa))-v(F*O));n=v(v(v(n*i)-v(L*aa))-v(E*O));i=v(v(v(w*i)-v(r*aa))-v(H*O));w=v(A+v(v(U*D)+v(v($*n)+v(W*i))));A=v(v(ia+v(v(v(K*v(0))+v(J*v(0)))+v(I*v(0))))+v(v(Z*D)+v(v(X*n)+v(Y*i))));m=v(v(ha+v(v(v(z*v(0))+v(t*v(0)))+v(m*v(0))))+v(v(S*D)+v(v(N*n)+v(R*i))));J=v(v(v(v(V*w)+v(_*A))+v(T*m))+s[e+192>>2]);s[e+128>>2]=J;K=v(v(v(v(ba*w)+v(A*ca))+v(m*da))+s[e+188>>2]);s[e+124>>2]=K;o[e+84>>2]=0;n=v(v(v($*L)+v(W*r))+v(U*y));i=v(v(v(X*L)+v(Y*r))+v(Z*y));y=v(v(v(N*L)+v(R*r))+v(S*y));s[e+104>>2]=v(v(V*n)+v(_*i))+v(T*y);s[e+88>>2]=v(v(n*ba)+v(i*ca))+v(y*da);r=s[e+136>>2];t=s[e+140>>2];z=s[e+144>>2];s[e+80>>2]=v(v(f*r)+v(g*t))+v(h*z);s[e+76>>2]=v(v(q*r)+v(x*t))+v(k*z);s[e+72>>2]=v(v(n*r)+v(i*t))+v(y*z);L=v(v(v(z*m)+v(v(r*w)+v(t*A)))+s[e+184>>2]);s[e+120>>2]=L;o[e+68>>2]=0;o[e+52>>2]=0;o[e+36>>2]=0;r=s[e+248>>2];t=s[e+252>>2];z=s[e+256>>2];s[e+48>>2]=v(v(y*r)+v(k*t))+v(h*z);s[e+44>>2]=v(v(i*r)+v(x*t))+v(g*z);D=s[e+232>>2];F=s[e+236>>2];E=s[e+240>>2];s[e+32>>2]=v(v(y*D)+v(k*F))+v(h*E);s[e+28>>2]=v(v(i*D)+v(x*F))+v(g*E);A=v(-A);H=v(v(v(i*A)-v(n*w))-v(y*m));I=v(v(v(x*A)-v(q*w))-v(k*m));w=v(v(v(g*A)-v(f*w))-v(h*m));m=v(v(v(v(r*H)+v(t*I))+v(z*w))+s[e+272>>2]);s[e- -64>>2]=m;A=v(v(v(v(H*D)+v(I*F))+v(w*E))+s[e+268>>2]);s[e+60>>2]=A;o[e+20>>2]=0;s[e+40>>2]=v(v(n*r)+v(q*t))+v(f*z);s[e+24>>2]=v(v(n*D)+v(q*F))+v(f*E);t=y;y=s[e+216>>2];P=k;k=s[e+220>>2];E=h;h=s[e+224>>2];s[e+16>>2]=v(v(t*y)+v(P*k))+v(E*h);s[e+12>>2]=v(v(i*y)+v(x*k))+v(g*h);s[e+8>>2]=v(v(n*y)+v(q*k))+v(f*h);g=v(v(v(v(H*y)+v(I*k))+v(w*h))+s[e+264>>2]);s[e+56>>2]=g;o[e+212>>2]=0;f=v(v(1)/d);s[e+208>>2]=f*v(J-s[e+432>>2]);s[e+200>>2]=f*v(L-s[e+424>>2]);s[e+204>>2]=f*v(K-s[e+428>>2]);tb(e+376|0,e+72|0,e+448|0,e+444|0);o[e+212>>2]=0;s[e+208>>2]=f*v(m-s[e+368>>2]);s[e+204>>2]=f*v(A-s[e+364>>2]);s[e+200>>2]=f*v(g-s[e+360>>2]);q=s[e+452>>2];g=s[e+444>>2];t=s[e+456>>2];m=s[e+448>>2];tb(e+312|0,e+8|0,e+448|0,e+444|0);h=s[e+444>>2];x=v(v(f*v(h*s[e+456>>2]))-s[e+288>>2]);y=v(v(f*v(h*s[e+452>>2]))-s[e+284>>2]);w=v(v(f*v(s[e+448>>2]*h))-s[e+280>>2]);h=v(0);m=v(v(f*v(m*g))-s[e+296>>2]);r=v(v(f*v(g*q))-s[e+300>>2]);t=v(v(f*v(g*t))-s[e+304>>2]);f=v(v(v(m*m)+v(r*r))+v(t*t));if(!!(f>v(1.1920928955078125e-7))){f=v(v(1)/v(C(f)));n=v(m*f);j=o[a+28>>2];i=v(r*f);k=v(t*f);h=v(v(v(n*v(v(v(n*s[j+264>>2])+v(i*s[j+280>>2]))+v(k*s[j+296>>2])))+v(i*v(v(v(n*s[j+268>>2])+v(i*s[j+284>>2]))+v(k*s[j+300>>2]))))+v(k*v(v(v(n*s[j+272>>2])+v(i*s[j+288>>2]))+v(k*s[j+304>>2]))))}z=v(v(v(w*w)+v(y*y))+v(x*x));if(!!(z>v(1.1920928955078125e-7))){q=v(v(1)/v(C(z)));f=v(w*q);j=o[a+32>>2];g=v(y*q);q=v(x*q);G=v(v(v(f*v(v(v(f*s[j+264>>2])+v(g*s[j+280>>2]))+v(q*s[j+296>>2])))+v(g*v(v(v(f*s[j+268>>2])+v(g*s[j+284>>2]))+v(q*s[j+300>>2]))))+v(q*v(v(v(f*s[j+272>>2])+v(g*s[j+288>>2]))+v(q*s[j+304>>2]))))}f=v(v(h*n)+v(G*f));g=v(v(h*i)+v(G*g));h=v(v(h*k)+v(G*q));i=v(v(v(f*f)+v(g*g))+v(h*h));if(!(i>v(1.1920928955078125e-7))){break b}i=v(v(1)/v(C(i)));f=v(f*i);j=o[a+28>>2];g=v(g*i);h=v(h*i);n=v(v(v(f*v(v(v(f*s[j+264>>2])+v(g*s[j+280>>2]))+v(h*s[j+296>>2])))+v(g*v(v(v(f*s[j+268>>2])+v(g*s[j+284>>2]))+v(h*s[j+300>>2]))))+v(h*v(v(v(f*s[j+272>>2])+v(g*s[j+288>>2]))+v(h*s[j+304>>2]))));l=o[a+32>>2];g=v(v(v(f*v(v(v(f*s[l+264>