ctsa
Version:
Univariate ARIMA model
5 lines • 240 kB
JavaScript
var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){var ret=tryParseAsDataURI(filename);if(ret){return binary?ret:ret.toString()}if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}readBinary=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];var WebAssembly={Memory:function(opts){return{buffer:new ArrayBuffer(opts["initial"]*65536),grow:function(amount){var ret=__growWasmMemory(amount);return ret}}},Table:function(opts){var ret=new Array(opts["initial"]);ret.grow=function(by){if(ret.length>=9+0){abort("Unable to grow wasm table. Use a higher value for RESERVED_FUNCTION_POINTERS or set ALLOW_TABLE_GROWTH.")}ret.push(null)};ret.set=function(i,func){ret[i]=func};ret.get=function(i){return ret[i]};return ret},Module:function(binary){return{}},Instance:function(module,info){var 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){return b[index]}function f(index,value){b[index]=value}function g(){return d[0]}function h(value){d[0]=value}function i(low,high){b[0]=low;b[1]=high}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.exit;var H=env.fd_write;var I=env.emscripten_memcpy_big;var J=env.emscripten_resize_heap;var K=5256208;var L=0;
// EMSCRIPTEN_START_FUNCS
function fa(a,b,c,d,e,h,i){var j=0,k=0,l=0,m=0,n=0,p=0,q=0,r=0,s=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,ba=0,ca=0,da=0,ea=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;U=(e|0)>=2?o[((i<<2)+c|0)+8>>2]:U;a:{b:{switch(e+ -1|0){case 0:c=o[b+4>>2];o[a>>2]=o[b>>2];o[a+4>>2]=c;c=o[b+12>>2];o[a+8>>2]=o[b+8>>2];o[a+12>>2]=c;return;case 1:i=o[b+4>>2];d=o[b>>2];o[a>>2]=d;o[a+4>>2]=i;e=o[b+12>>2];c=o[b+8>>2];o[a+8>>2]=c;o[a+12>>2]=e;b=(h<<4)+b|0;m=t[b>>3];f(0,c|0);f(1,e|0);j=+g();l=t[b+8>>3];t[a+24>>3]=j-l;f(0,d|0);f(1,i|0);k=+g();t[a+16>>3]=k-m;t[a+8>>3]=l+j;t[a>>3]=m+k;return;case 2:y=o[b+4>>2];q=o[b>>2];o[a>>2]=q;o[a+4>>2]=y;E=o[b+12>>2];i=o[b+8>>2];o[a+8>>2]=i;o[a+12>>2]=E;c=(h<<4)+b|0;H=o[c+4>>2];e=o[c>>2];o[a+16>>2]=e;o[a+20>>2]=H;s=o[c+12>>2];c=o[c+8>>2];o[a+24>>2]=c;o[a+28>>2]=s;b=(h<<5)+b|0;l=t[b>>3];w=t[b+8>>3];f(0,c|0);f(1,s|0);v=+g();r=w+v;f(0,i|0);f(1,E|0);p=+g();t[a+8>>3]=r+p;f(0,e|0);f(1,H|0);k=+g();n=l+k;f(0,q|0);f(1,y|0);j=+g();t[a>>3]=n+j;m=+(d|0)*.86602540378;l=m*(k-l);k=p-r*.5;t[a+40>>3]=l+k;j=j-n*.5;m=m*(v-w);t[a+32>>3]=j-m;t[a+24>>3]=k-l;break a;case 3:x=o[b+4>>2];H=o[b>>2];o[a>>2]=H;o[a+4>>2]=x;G=o[b+12>>2];s=o[b+8>>2];o[a+8>>2]=s;o[a+12>>2]=G;c=(h<<4)+b|0;L=o[c+4>>2];q=o[c>>2];o[a+16>>2]=q;o[a+20>>2]=L;C=o[c+12>>2];i=o[c+8>>2];o[a+24>>2]=i;o[a+28>>2]=C;c=(h<<5)+b|0;y=o[c+4>>2];e=o[c>>2];o[a+32>>2]=e;o[a+36>>2]=y;E=o[c+12>>2];c=o[c+8>>2];o[a+40>>2]=c;o[a+44>>2]=E;b=u(h,48)+b|0;D=t[b>>3];f(0,s|0);f(1,G|0);J=+g();f(0,c|0);f(1,E|0);z=+g();w=J+z;v=t[b+8>>3];f(0,i|0);f(1,C|0);r=+g();n=v+r;t[a+40>>3]=w-n;f(0,H|0);f(1,x|0);p=+g();f(0,e|0);f(1,y|0);m=+g();j=p+m;f(0,q|0);f(1,L|0);l=+g();k=D+l;t[a+32>>3]=j-k;t[a+8>>3]=w+n;t[a>>3]=j+k;n=J-z;j=l-D;l=+(d|0);k=j*l;t[a+56>>3]=n+k;j=p-m;m=(r-v)*l;t[a+48>>3]=j-m;t[a+24>>3]=n-k;break a;case 4:V=o[b+4>>2];y=o[b>>2];o[a>>2]=y;o[a+4>>2]=V;W=o[b+12>>2];E=o[b+8>>2];o[a+8>>2]=E;o[a+12>>2]=W;c=(h<<4)+b|0;X=o[c+4>>2];H=o[c>>2];o[a+16>>2]=H;o[a+20>>2]=X;_=o[c+12>>2];s=o[c+8>>2];o[a+24>>2]=s;o[a+28>>2]=_;c=(h<<5)+b|0;Z=o[c+4>>2];q=o[c>>2];o[a+32>>2]=q;o[a+36>>2]=Z;x=o[c+12>>2];i=o[c+8>>2];o[a+40>>2]=i;o[a+44>>2]=x;c=u(h,48)+b|0;G=o[c+4>>2];e=o[c>>2];o[a+48>>2]=e;o[a+52>>2]=G;L=o[c+12>>2];c=o[c+8>>2];o[a+56>>2]=c;o[a+60>>2]=L;C=(h<<6)+b|0;h=o[C+4>>2];b=o[C>>2];o[a+64>>2]=b;o[a+68>>2]=h;B=t[C+8>>3];t[a+72>>3]=B;f(0,H|0);f(1,X|0);w=+g();f(0,b|0);f(1,h|0);v=+g();A=w+v;f(0,q|0);f(1,Z|0);r=+g();f(0,e|0);f(1,G|0);p=+g();D=r+p;n=A*.30901699437-D*.80901699437;f(0,s|0);f(1,_|0);m=+g();J=B+m;f(0,i|0);f(1,x|0);j=+g();f(0,c|0);f(1,L|0);l=+g();z=j+l;k=J*.30901699437-z*.80901699437;F=r-p;I=j-l;v=w-v;w=m-B;f(0,y|0);f(1,V|0);r=+g();f(0,E|0);f(1,W|0);p=+g();b=a;c:{if((d|0)==1){S=w*.95105651629+I*.58778525229;j=v*.95105651629+F*.58778525229;break c}S=w*-.95105651629-I*.58778525229;j=v*-.95105651629-F*.58778525229}l=k+p;t[b+72>>3]=j+l;k=n+r;t[a+64>>3]=k-S;t[a+24>>3]=l-j;t[a+16>>3]=S+k;l=z*.30901699437-J*.80901699437;k=D*.30901699437-A*.80901699437;n=F*.95105651629;j=v*.58778525229;d:{if((d|0)==1){F=I*.95105651629;n=j-n;m=w*.58778525229;break d}F=w*.58778525229;n=n-j;m=I*.95105651629}j=l+p;t[a+56>>3]=j+n;l=k+r;k=m-F;t[a+48>>3]=l-k;t[a+40>>3]=j-n;t[a+32>>3]=l+k;t[a+8>>3]=J+z+p;t[a>>3]=A+D+r;return;case 6:c=o[b+4>>2];o[a>>2]=o[b>>2];o[a+4>>2]=c;c=o[b+12>>2];o[a+8>>2]=o[b+8>>2];o[a+12>>2]=c;c=(h<<4)+b|0;ja=o[c+4>>2];L=o[c>>2];o[a+16>>2]=L;o[a+20>>2]=ja;ka=o[c+12>>2];C=o[c+8>>2];o[a+24>>2]=C;o[a+28>>2]=ka;c=(h<<5)+b|0;U=o[c+4>>2];y=o[c>>2];o[a+32>>2]=y;o[a+36>>2]=U;Y=o[c+12>>2];E=o[c+8>>2];o[a+40>>2]=E;o[a+44>>2]=Y;c=u(h,48)+b|0;V=o[c+4>>2];H=o[c>>2];o[a+48>>2]=H;o[a+52>>2]=V;W=o[c+12>>2];s=o[c+8>>2];o[a+56>>2]=s;o[a+60>>2]=W;c=(h<<6)+b|0;X=o[c+4>>2];q=o[c>>2];o[a+64>>2]=q;o[a+68>>2]=X;_=o[c+12>>2];i=o[c+8>>2];o[a+72>>2]=i;o[a+76>>2]=_;c=u(h,80)+b|0;Z=o[c+4>>2];e=o[c>>2];o[a+80>>2]=e;o[a+84>>2]=Z;x=o[c+12>>2];c=o[c+8>>2];o[a+88>>2]=c;o[a+92>>2]=x;G=u(h,96)+b|0;h=o[G+4>>2];b=o[G>>2];o[a+96>>2]=b;o[a+100>>2]=h;B=t[G+8>>3];t[a+104>>3]=B;f(0,C|0);f(1,ka|0);D=+g();P=B+D;T=t[a+8>>3];f(0,E|0);f(1,Y|0);J=+g();f(0,c|0);f(1,x|0);z=+g();Q=J+z;f(0,s|0);f(1,W|0);w=+g();f(0,i|0);f(1,_|0);v=+g();M=w+v;A=P*.62348980185+T-Q*.22252093395-M*.9009688679;f(0,L|0);f(1,ja|0);r=+g();f(0,b|0);f(1,h|0);p=+g();N=r+p;O=t[a>>3];f(0,y|0);f(1,U|0);n=+g();f(0,e|0);f(1,Z|0);m=+g();I=n+m;f(0,H|0);f(1,V|0);j=+g();f(0,q|0);f(1,X|0);k=+g();F=j+k;l=N*.62348980185+O-I*.22252093395-F*.9009688679;K=j-k;R=w-v;v=n-m;w=J-z;p=r-p;r=D-B;b=a;k=l;e:{if((d|0)==1){m=r*-.78183148246-w*.97492791218-R*.43388373911;j=p*-.78183148246-v*.97492791218-K*.43388373911;break e}m=r*.78183148246+w*.97492791218+R*.43388373911;j=p*.78183148246+v*.97492791218+K*.43388373911}t[b+96>>3]=k+m;t[a+16>>3]=l-m;t[a+104>>3]=A-j;t[a+24>>3]=A+j;n=M*.62348980185+(T-P*.22252093395-Q*.9009688679);m=v*.43388373911;j=p*.97492791218;b=a;l=F*.62348980185+(O-N*.22252093395-I*.9009688679);k=l;f:{if((d|0)==1){m=m-j+K*.78183148246;j=w*.43388373911+r*-.97492791218+R*.78183148246;break f}m=j-m-K*.78183148246;j=r*.97492791218+w*-.43388373911-R*.78183148246}t[b+80>>3]=k+j;t[a+32>>3]=l-j;t[a+88>>3]=n-m;t[a+40>>3]=n+m;n=Q*.62348980185+(T-P*.9009688679)-M*.22252093395;m=v*.78183148246;j=p*.43388373911;b=a;l=I*.62348980185+(O-N*.9009688679)-F*.22252093395;k=l;g:{if((d|0)==1){S=m-j-K*.97492791218;j=w*.78183148246+r*-.43388373911-R*.97492791218;break g}S=j-m+K*.97492791218;j=r*.43388373911+w*-.78183148246+R*.97492791218}t[b+64>>3]=k+j;t[a+48>>3]=l-j;t[a+72>>3]=n-S;t[a+56>>3]=n+S;t[a+8>>3]=T+(P+Q+M);t[a>>3]=N+I+F+O;return;case 7:c=o[b+4>>2];o[a>>2]=o[b>>2];o[a+4>>2]=c;c=o[b+12>>2];o[a+8>>2]=o[b+8>>2];o[a+12>>2]=c;c=(h<<4)+b|0;sa=o[c+4>>2];x=o[c>>2];o[a+16>>2]=x;o[a+20>>2]=sa;ta=o[c+12>>2];G=o[c+8>>2];o[a+24>>2]=G;o[a+28>>2]=ta;c=(h<<5)+b|0;ua=o[c+4>>2];L=o[c>>2];o[a+32>>2]=L;o[a+36>>2]=ua;va=o[c+12>>2];C=o[c+8>>2];o[a+40>>2]=C;o[a+44>>2]=va;c=u(h,48)+b|0;ja=o[c+4>>2];y=o[c>>2];o[a+48>>2]=y;o[a+52>>2]=ja;ka=o[c+12>>2];E=o[c+8>>2];o[a+56>>2]=E;o[a+60>>2]=ka;c=(h<<6)+b|0;U=o[c+4>>2];H=o[c>>2];o[a+64>>2]=H;o[a+68>>2]=U;Y=o[c+12>>2];s=o[c+8>>2];o[a+72>>2]=s;o[a+76>>2]=Y;c=u(h,80)+b|0;V=o[c+4>>2];q=o[c>>2];o[a+80>>2]=q;o[a+84>>2]=V;W=o[c+12>>2];i=o[c+8>>2];o[a+88>>2]=i;o[a+92>>2]=W;c=u(h,96)+b|0;X=o[c+4>>2];e=o[c>>2];o[a+96>>2]=e;o[a+100>>2]=X;_=o[c+12>>2];c=o[c+8>>2];o[a+104>>2]=c;o[a+108>>2]=_;Z=u(h,112)+b|0;h=o[Z+4>>2];b=o[Z>>2];o[a+112>>2]=b;o[a+116>>2]=h;ba=t[Z+8>>3];t[a+120>>3]=ba;F=t[a+8>>3];f(0,s|0);f(1,Y|0);B=+g();S=F+B;f(0,G|0);f(1,ta|0);A=+g();K=ba+A;f(0,E|0);f(1,ka|0);D=+g();f(0,i|0);f(1,W|0);w=+g();R=D+w;f(0,C|0);f(1,va|0);J=+g();f(0,c|0);f(1,_|0);z=+g();P=J+z;t[a+72>>3]=S-K-R+P;v=t[a>>3];f(0,H|0);f(1,U|0);r=+g();T=v+r;f(0,x|0);f(1,sa|0);p=+g();f(0,b|0);f(1,h|0);n=+g();Q=p+n;f(0,y|0);f(1,ja|0);m=+g();f(0,q|0);f(1,V|0);j=+g();M=m+j;f(0,L|0);f(1,ua|0);l=+g();f(0,e|0);f(1,X|0);k=+g();N=l+k;t[a+64>>3]=T-Q-M+N;t[a+8>>3]=S+K+R+P;t[a>>3]=T+Q+M+N;O=p-n;I=m-j;n=O+I;A=A-ba;D=D-w;ba=A+D;w=v-r;v=(Q-M)*.7071067811865476;j=w+v;M=l-k;z=J-z;b=a;r=F-B;p=(K-R)*.7071067811865476;l=r+p;k=l;h:{if((d|0)==1){m=n*.7071067811865476;K=ba*-.7071067811865476-z;n=n*-.7071067811865476-M;break h}K=ba*.7071067811865476+z;m=n*.7071067811865476;n=m+M}t[b+120>>3]=k-n;t[a+112>>3]=j+K;t[a+24>>3]=l+n;t[a+16>>3]=j-K;n=S-P;b=(d|0)==1;j=b?I-O:O-I;t[a+104>>3]=n-j;l=b?D-A:A-D;k=T-N;t[a+96>>3]=l+k;t[a+40>>3]=j+n;t[a+32>>3]=k-l;l=r-p;k=b?M-m:m-M;t[a+88>>3]=l-k;t[a+56>>3]=l+k;l=w-v;k=ba*.7071067811865476;k=(b?z:k)-(b?k:z);t[a+80>>3]=l+k;t[a+48>>3]=l-k;return;default:break b}}i:{j:{switch(U+ -2|0){case 0:s=(e|0)/2|0;q=h<<1;i=i+1|0;fa(a,b,c,d,s,q,i);fa((s<<4)+a|0,(h<<4)+b|0,c,d,s,q,i);if((e|0)<2){break i}b=0;while(1){h=(b<<4)+a|0;r=t[h+8>>3];e=b+s<<4;d=e+c|0;p=t[d+264>>3];e=a+e|0;n=t[e>>3];m=t[d+256>>3];k=t[e+8>>3];j=p*n+m*k;t[h+8>>3]=r+j;l=t[h>>3];k=m*n-p*k;t[h>>3]=l+k;t[e+8>>3]=r-j;t[e>>3]=l-k;b=b+1|0;if((s|0)!=(b|0)){continue}break}break i;case 1:s=(e|0)/3|0;q=u(h,3);i=i+1|0;fa(a,b,c,d,s,q,i);fa((s<<4)+a|0,(h<<4)+b|0,c,d,s,q,i);fa((s<<5)+a|0,(h<<5)+b|0,c,d,s,q,i);if((e|0)<3){break i}B=+(d|0)*.86602540378;b=0;while(1){i=(b<<4)+a|0;A=t[i+8>>3];h=(s+(b<<1)<<4)+c|0;D=t[h+264>>3];d=b+s|0;e=(d<<4)+a|0;J=t[e>>3];z=t[h+256>>3];j=t[e+8>>3];w=D*J+z*j;v=t[h+280>>3];d=(d+s<<4)+a|0;r=t[d>>3];l=t[h+272>>3];k=t[d+8>>3];p=v*r+l*k;m=w+p;t[i+8>>3]=A+m;n=t[i>>3];j=z*J-D*j;l=l*r-v*k;k=j+l;t[i>>3]=n+k;m=A-m*.5;j=B*(j-l);t[e+8>>3]=m-j;l=B*(w-p);k=n-k*.5;t[e>>3]=l+k;t[d+8>>3]=j+m;t[d>>3]=k-l;b=b+1|0;if((s|0)!=(b|0)){continue}break}break i;case 2:y=(e|0)/4|0;q=h<<2;i=i+1|0;fa(a,b,c,d,y,q,i);E=(y<<4)+a|0;fa(E,(h<<4)+b|0,c,d,y,q,i);H=(y<<5)+a|0;fa(H,(h<<5)+b|0,c,d,y,q,i);s=u(y,48)+a|0;fa(s,u(h,48)+b|0,c,d,y,q,i);A=t[H>>3];D=t[s>>3];J=t[E>>3];j=t[a+8>>3];l=t[H+8>>3];z=j+l;w=t[E+8>>3];v=t[s+8>>3];r=w+v;t[a+8>>3]=z+r;k=t[a>>3];p=A+k;n=J+D;t[a>>3]=p+n;m=j-l;Q=+(d|0);j=(J-D)*Q;t[E+8>>3]=m-j;l=k-A;k=(w-v)*Q;t[E>>3]=l+k;t[H+8>>3]=z-r;t[H>>3]=p-n;t[s+8>>3]=m+j;t[s>>3]=l-k;if((e|0)<8){break i}e=(y|0)>2?y:2;h=1;while(1){q=(h<<4)+a|0;N=t[q+8>>3];s=(y+u(h,3)<<4)+c|0;O=t[s+280>>3];d=h+y|0;b=d+y|0;i=(b<<4)+a|0;I=t[i>>3];r=t[s+272>>3];p=t[i+8>>3];F=O*I+r*p;M=N+F;B=t[s+264>>3];d=(d<<4)+a|0;A=t[d>>3];D=t[s+256>>3];l=t[d+8>>3];J=B*A+D*l;n=t[s+296>>3];b=(b+y<<4)+a|0;m=t[b>>3];j=t[s+288>>3];k=t[b+8>>3];z=n*m+j*k;w=J+z;t[q+8>>3]=M+w;v=t[q>>3];r=r*I-O*p;p=v+r;l=D*A-B*l;k=j*m-n*k;n=l+k;t[q>>3]=p+n;m=N-F;j=(l-k)*Q;t[d+8>>3]=m-j;l=v-r;k=(J-z)*Q;t[d>>3]=l+k;t[i+8>>3]=M-w;t[i>>3]=p-n;t[b+8>>3]=m+j;t[b>>3]=l-k;h=h+1|0;if((e|0)!=(h|0)){continue}break}break i;case 3:C=(e|0)/5|0;y=u(h,5);E=i+1|0;fa(a,b,c,d,C,y,E);H=(C<<4)+a|0;fa(H,(h<<4)+b|0,c,d,C,y,E);s=(C<<5)+a|0;fa(s,(h<<5)+b|0,c,d,C,y,E);q=u(C,48)+a|0;fa(q,u(h,48)+b|0,c,d,C,y,E);i=(C<<6)+a|0;fa(i,(h<<6)+b|0,c,d,C,y,E);I=t[i>>3];r=t[H>>3];j=t[q>>3];l=t[s>>3];w=t[s+8>>3];p=t[q+8>>3];F=w+p;B=t[a+8>>3];n=t[H+8>>3];k=t[i+8>>3];A=n+k;t[a+8>>3]=F+(B+A);D=l+j;J=t[a>>3];z=r+I;t[a>>3]=D+(J+z);m=B+(A*.30901699437-F*.80901699437);v=l-j;r=r-I;I=+(d|0);j=(v*.58778525229+r*.95105651629)*I;t[H+8>>3]=m-j;l=J+(z*.30901699437-D*.80901699437);p=w-p;n=n-k;k=(p*.58778525229+n*.95105651629)*I;t[H>>3]=l+k;t[i+8>>3]=j+m;t[i>>3]=l-k;m=B+(F*.30901699437-A*.80901699437);j=(r*.58778525229-v*.95105651629)*I;t[s+8>>3]=m-j;l=J+(D*.30901699437-z*.80901699437);k=(n*.58778525229-p*.95105651629)*I;t[s>>3]=l+k;t[q+8>>3]=j+m;t[q>>3]=l-k;if((e|0)<10){break i}i=(C|0)>2?C:2;h=1;while(1){E=(h<<4)+a|0;K=t[E>>3];y=(C+(h<<2)<<4)+c|0;Q=t[y+280>>3];e=h+C|0;b=e+C|0;H=(b<<4)+a|0;M=t[H>>3];N=t[y+272>>3];p=t[H+8>>3];O=Q*M+N*p;I=t[y+296>>3];b=b+C|0;s=(b<<4)+a|0;F=t[s>>3];B=t[y+288>>3];n=t[s+8>>3];A=I*F+B*n;R=O+A;P=t[E+8>>3];D=t[y+264>>3];q=(e<<4)+a|0;J=t[q>>3];z=t[y+256>>3];m=t[q+8>>3];w=D*J+z*m;v=t[y+312>>3];e=(b+C<<4)+a|0;j=t[e>>3];l=t[y+304>>3];k=t[e+8>>3];r=v*j+l*k;T=w+r;t[E+8>>3]=R+(P+T);p=N*M-Q*p;n=B*F-I*n;B=p+n;m=z*J-D*m;l=l*j-v*k;v=m+l;t[E>>3]=B+(K+v);j=T*.30901699437-R*.80901699437;k=v*.30901699437-B*.80901699437;z=O-A;n=p-n;r=w-r;p=m-l;b=(d|0)!=1;k:{if(!b){F=z*.58778525229+r*.95105651629;m=n*.58778525229+p*.95105651629;break k}F=r*-.95105651629-z*.58778525229;m=p*-.95105651629-n*.58778525229}l=K+k;t[q>>3]=l+F;k=P+j;t[q+8>>3]=k-m;t[e>>3]=l-F;t[e+8>>3]=k+m;m=R*.30901699437-T*.80901699437;k=B*.30901699437-v*.80901699437;n=n*.95105651629;j=p*.58778525229;l:{if(!b){S=z*.95105651629;n=j-n;l=r*.58778525229;break l}S=r*.58778525229;n=n-j;l=z*.95105651629}j=K+k;l=l-S;t[H>>3]=j+l;k=P+m;t[H+8>>3]=k-n;t[s>>3]=j-l;t[s+8>>3]=k+n;h=h+1|0;if((i|0)!=(h|0)){continue}break}break i;case 5:x=(e|0)/7|0;L=u(h,7);C=i+1|0;fa(a,b,c,d,x,L,C);y=(x<<4)+a|0;fa(y,(h<<4)+b|0,c,d,x,L,C);q=(x<<5)+a|0;fa(q,(h<<5)+b|0,c,d,x,L,C);i=u(x,48)+a|0;fa(i,u(h,48)+b|0,c,d,x,L,C);E=(x<<6)+a|0;fa(E,(h<<6)+b|0,c,d,x,L,C);H=u(x,80)+a|0;fa(H,u(h,80)+b|0,c,d,x,L,C);s=u(x,96)+a|0;fa(s,u(h,96)+b|0,c,d,x,L,C);B=t[E>>3];A=t[i>>3];D=t[s>>3];J=t[y>>3];z=t[H>>3];w=t[q>>3];p=t[i+8>>3];n=t[E+8>>3];P=p+n;m=t[q+8>>3];j=t[H+8>>3];T=m+j;Q=t[a+8>>3];l=t[y+8>>3];k=t[s+8>>3];M=l+k;t[a+8>>3]=P+(T+(Q+M));N=A+B;O=w+z;I=t[a>>3];F=J+D;t[a>>3]=N+(O+(I+F));v=Q+M*.62348980185-T*.22252093395-P*.9009688679;r=I+F*.62348980185-O*.22252093395-N*.9009688679;R=p-n;B=A-B;A=m-j;w=w-z;z=l-k;p=J-D;m:{if((d|0)==1){K=z*-.78183148246-A*.97492791218-R*.43388373911;k=p*-.78183148246-w*.97492791218-B*.43388373911;break m}K=R*.43388373911+(A*.97492791218+z*.78183148246);k=B*.43388373911+(w*.97492791218+p*.78183148246)}t[y>>3]=r-K;t[y+8>>3]=v+k;t[s>>3]=r+K;t[s+8>>3]=v-k;n=P*.62348980185+(Q-M*.22252093395-T*.9009688679);m=w*.43388373911;j=p*.97492791218;b=q;l=N*.62348980185+(I-F*.22252093395-O*.9009688679);k=l;n:{if((d|0)==1){m=B*.78183148246+(m-j);j=R*.78183148246+(A*.43388373911+z*-.97492791218);break n}m=j-m-B*.78183148246;j=z*.97492791218+A*-.43388373911-R*.78183148246}t[b>>3]=k-j;t[q+8>>3]=n+m;t[H>>3]=l+j;t[H+8>>3]=n-m;n=T*.62348980185+(Q-M*.9009688679)-P*.22252093395;m=w*.78183148246;j=p*.43388373911;b=i;l=O*.62348980185+(I-F*.9009688679)-N*.22252093395;k=l;o:{if((d|0)==1){v=m-j-B*.97492791218;j=A*.78183148246+z*-.43388373911-R*.97492791218;break o}v=B*.97492791218+(j-m);j=R*.97492791218+(z*.43388373911+A*-.78183148246)}t[b>>3]=k-j;t[i+8>>3]=n+v;t[E>>3]=l+j;t[E+8>>3]=n-v;if((e|0)<14){break i}H=(x|0)>2?x:2;h=1;while(1){L=(h<<4)+a|0;da=t[L>>3];G=(x+u(h,6)<<4)+c|0;ca=t[G+296>>3];s=h+x|0;e=s+x|0;b=e+x|0;q=(b<<4)+a|0;la=t[q>>3];ma=t[G+288>>3];p=t[q+8>>3];na=ca*la+ma*p;ba=t[G+312>>3];b=b+x|0;C=(b<<4)+a|0;S=t[C>>3];K=t[G+304>>3];n=t[C+8>>3];R=ba*S+K*n;ea=na+R;P=t[G+280>>3];i=(e<<4)+a|0;T=t[i>>3];Q=t[G+272>>3];m=t[i+8>>3];M=P*T+Q*m;N=t[G+328>>3];b=b+x|0;y=(b<<4)+a|0;O=t[y>>3];I=t[G+320>>3];j=t[y+8>>3];F=N*O+I*j;ga=M+F;ha=t[L+8>>3];B=t[G+264>>3];e=(s<<4)+a|0;A=t[e>>3];D=t[G+256>>3];l=t[e+8>>3];J=B*A+D*l;z=t[G+344>>3];E=(b+x<<4)+a|0;w=t[E>>3];v=t[G+336>>3];k=t[E+8>>3];r=z*w+v*k;ia=J+r;t[L+8>>3]=ea+(ga+(ha+ia));p=ma*la-ca*p;n=K*S-ba*n;K=p+n;m=Q*T-P*m;j=I*O-N*j;I=m+j;l=D*A-B*l;k=v*w-z*k;w=l+k;t[L>>3]=K+(I+(da+w));v=ha+ia*.62348980185-ga*.22252093395-ea*.9009688679;B=na-R;A=p-n;D=M-F;z=m-j;r=J-r;p=l-k;b=e;l=da+w*.62348980185-I*.22252093395-K*.9009688679;k=l;s=(d|0)!=1;p:{if(!s){m=r*-.78183148246-D*.97492791218-B*.43388373911;j=p*-.78183148246-z*.97492791218-A*.43388373911;break p}m=B*.43388373911+(D*.97492791218+r*.78183148246);j=A*.43388373911+(z*.97492791218+p*.78183148246)}t[b>>3]=k-m;t[e+8>>3]=v+j;t[E>>3]=l+m;t[E+8>>3]=v-j;n=ea*.62348980185+(ha-ia*.22252093395-ga*.9009688679);m=z*.43388373911;j=p*.97492791218;b=i;l=K*.62348980185+(da-w*.22252093395-I*.9009688679);k=l;q:{if(!s){m=A*.78183148246+(m-j);j=B*.78183148246+(D*.43388373911+r*-.97492791218);break q}m=j-m-A*.78183148246;j=r*.97492791218+D*-.43388373911-B*.78183148246}t[b>>3]=k-j;t[i+8>>3]=n+m;t[y>>3]=l+j;t[y+8>>3]=n-m;n=ga*.62348980185+(ha-ia*.9009688679)-ea*.22252093395;m=z*.78183148246;j=p*.43388373911;b=q;l=I*.62348980185+(da-w*.9009688679)-K*.22252093395;k=l;r:{if(!s){v=m-j-A*.97492791218;j=D*.78183148246+r*-.43388373911-B*.97492791218;break r}v=A*.97492791218+(j-m);j=B*.97492791218+(r*.43388373911+D*-.78183148246)}t[b>>3]=k-j;t[q+8>>3]=n+v;t[C>>3]=l+j;t[C+8>>3]=n-v;h=h+1|0;if((H|0)!=(h|0)){continue}break}break i;case 6:x=(e|0)/8|0;q=h<<3;i=i+1|0;fa(a,b,c,d,x,q,i);fa((x<<4)+a|0,(h<<4)+b|0,c,d,x,q,i);fa((x<<5)+a|0,(h<<5)+b|0,c,d,x,q,i);fa(u(x,48)+a|0,u(h,48)+b|0,c,d,x,q,i);fa((x<<6)+a|0,(h<<6)+b|0,c,d,x,q,i);fa(u(x,80)+a|0,u(h,80)+b|0,c,d,x,q,i);fa(u(x,96)+a|0,u(h,96)+b|0,c,d,x,q,i);fa(u(x,112)+a|0,u(h,112)+b|0,c,d,x,q,i);if((e|0)<8){break i}h=0;H=(d|0)!=1;while(1){L=(h<<4)+a|0;wa=t[L>>3];G=(x+u(h,7)<<4)+c|0;xa=t[G+280>>3];s=h+x|0;b=s+x|0;C=(b<<4)+a|0;da=t[C>>3];ea=t[G+272>>3];z=t[C+8>>3];ga=xa*da+ea*z;ha=t[G+344>>3];q=b+x|0;i=q+x|0;e=i+x|0;b=e+x|0;y=(b<<4)+a|0;ia=t[y>>3];ca=t[G+336>>3];w=t[y+8>>3];la=ha*ia+ca*w;oa=ga+la;ma=t[G+296>>3];E=(q<<4)+a|0;na=t[E>>3];ba=t[G+288>>3];n=t[E+8>>3];S=ma*na+ba*n;K=t[G+328>>3];q=(e<<4)+a|0;R=t[q>>3];P=t[G+320>>3];m=t[q+8>>3];T=K*R+P*m;pa=S+T;Q=t[L+8>>3];M=t[G+312>>3];i=(i<<4)+a|0;N=t[i>>3];O=t[G+304>>3];j=t[i+8>>3];I=M*N+O*j;qa=Q+I;F=t[G+264>>3];e=(s<<4)+a|0;B=t[e>>3];A=t[G+256>>3];l=t[e+8>>3];D=F*B+A*l;J=t[G+360>>3];b=(b+x<<4)+a|0;v=t[b>>3];r=t[G+352>>3];k=t[b+8>>3];p=J*v+r*k;ra=D+p;t[L+8>>3]=oa+(pa+(qa+ra));z=ea*da-xa*z;w=ca*ia-ha*w;ca=z+w;n=ba*na-ma*n;m=P*R-K*m;P=n+m;j=O*N-M*j;O=wa+j;l=A*B-F*l;k=r*v-J*k;F=l+k;t[L>>3]=ca+(P+(O+F));t[i+8>>3]=oa+(qa-ra-pa);t[i>>3]=ca+(O-F-P);B=S-T;A=D-p;N=B+A;D=n-m;J=l-k;m=D+J;v=Q-I;r=(ra-pa)*.7071067811865476;l=v+r;p=wa-j;n=(F-P)*.7071067811865476;k=p+n;F=ga-la;w=z-w;s:{if(!H){S=m*.7071067811865476;K=N*-.7071067811865476-F;j=m*-.7071067811865476-w;break s}K=F+N*.7071067811865476;S=m*.7071067811865476;j=w+S}t[e>>3]=k-K;t[e+8>>3]=l+j;t[b>>3]=k+K;t[b+8>>3]=l-j;m=O-ca;b=(d|0)==1;j=b?B-A:A-B;t[C>>3]=m-j;l=qa-oa;k=b?D-J:J-D;t[C+8>>3]=l+k;t[y>>3]=m+j;t[y+8>>3]=l-k;m=p-n;k=N*.7071067811865476;j=(b?F:k)-(b?k:F);t[E>>3]=m-j;l=v-r;k=b?w-S:S-w;t[E+8>>3]=l+k;t[q>>3]=m+j;t[q+8>>3]=l-k;h=h+1|0;if((x|0)!=(h|0)){continue}break}break i;default:break j}}V=(e|0)/(U|0)|0;G=U+ -1|0;e=G<<3;_=$(e);Z=$(e);L=$(e);C=$(e);e=U<<3;W=$(e);X=$(e);t:{if((U|0)<=0){Y=(G|0)/2|0;break t}q=u(h,U);i=i+1|0;e=0;while(1){fa((u(e,V)<<4)+a|0,(u(e,h)<<4)+b|0,c,d,V,q,i);e=e+1|0;if((U|0)!=(e|0)){continue}break}Y=(G|0)/2|0;if((U|0)<3){break t}h=(Y|0)>1?Y:1;l=+(U|0);b=1;while(1){e=(b<<3)+ -8|0;k=+(b|0)*6.283185307179586/l;ya=e+L|0,za=Ia(k),t[ya>>3]=za;ya=e+C|0,za=Ha(k),t[ya>>3]=za;e=(b|0)==(h|0);b=b+1|0;if(!e){continue}break}if((U|0)<3){break t}E=(U|0)>2;q=(Y|0)>1?Y:1;b=0;while(1){h=b+Y<<3;e=(b^-1)+Y<<3;t[h+C>>3]=-t[e+C>>3];i=h+L|0;h=e+L|0;e=o[h+4>>2];o[i>>2]=o[h>>2];o[i+4>>2]=e;b=b+1|0;if((q|0)!=(b|0)){continue}break}}if((V|0)>=1){y=(Y|0)>1?Y:1;H=V+ -1|0;r=+(d|0);s=(U|0)<2;while(1){q=(x<<4)+a|0;d=q;b=o[d+4>>2];o[W>>2]=o[d>>2];o[W+4>>2]=b;b=o[d+12>>2];o[X>>2]=o[d+8>>2];o[X+4>>2]=b;if(!s){h=H+u(x,G)|0;b=0;while(1){b=b+1|0;i=b<<3;e=(u(b,V)+x<<4)+a|0;m=t[e>>3];d=(h<<4)+c|0;j=t[d+272>>3];l=t[d+280>>3];k=t[e+8>>3];t[i+W>>3]=m*j-l*k;t[i+X>>3]=l*m+j*k;h=h+1|0;if((b|0)!=(G|0)){continue}break}}b=0;u:{v:{if(!E){j=t[X>>3];m=t[W>>3];break v}while(1){i=b<<3;d=b+1|0;h=d<<3;m=t[h+W>>3];e=G-b<<3;j=t[e+W>>3];t[i+_>>3]=m+j;b=b+Y<<3;l=t[h+X>>3];k=t[e+X>>3];t[b+Z>>3]=l-k;t[i+Z>>3]=l+k;t[b+_>>3]=m-j;b=d;if((y|0)!=(b|0)){continue}break}b=0;j=t[X>>3];l=j;m=t[W>>3];k=m;if(!E){break v}while(1){d=b<<3;l=l+t[d+Z>>3];k=k+t[d+_>>3];b=b+1|0;if((y|0)!=(b|0)){continue}break}t[q>>3]=k;t[q+8>>3]=l;i=0;if(!E){break u}while(1){q=i+1|0;v=0;p=0;l=j;k=m;d=0;while(1){e=d+1|0;b=u(e,q);while(1){h=b;b=b-U|0;if((h|0)>=(U|0)){continue}break}h=(h<<3)+ -8|0;n=t[h+C>>3];b=d+Y<<3;v=v-n*t[b+Z>>3];p=p-n*t[b+_>>3];n=t[h+L>>3];b=d<<3;l=l+n*t[b+Z>>3];k=k+n*t[b+_>>3];d=e;if((y|0)!=(d|0)){continue}break}b=(u(q,V)+x<<4)+a|0;p=p*r;t[b+8>>3]=l+p;n=v*r;t[b>>3]=k-n;b=(u((i^-1)+U|0,V)+x<<4)+a|0;t[b+8>>3]=l-p;t[b>>3]=k+n;i=q;if((y|0)!=(i|0)){continue}break}break u}t[q>>3]=m;t[q+8>>3]=j}x=x+1|0;if((x|0)!=(V|0)){continue}break}}aa(_);aa(Z);aa(L);aa(C);aa(W);aa(X)}return}t[a+16>>3]=j+m}function _b(a,b,c,d,e,f,g,h,i,j,k,l,m,n,p,q,r,s){var v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,ma=0,na=0,pa=0,ra=0,ua=0,va=0,wa=0,xa=0,ya=0,Aa=0,Ba=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,ab=0,bb=0;z=u(h,k);G=z+e|0;A=u(h,i);H=A+c|0;Ja=G+u(H,20)|0;w=u(h,j);Ka=w+15|0;ka=c+e|0;w=b-w<<3;ma=$(w);P=$(w);a:{if((j|0)<=0){if((b|0)<1){break a}j=b<<3;ba(ma,a,j);ba(P,a,j);break a}b=$a(a,b,j,h,ma);if((b|0)<1){break a}ba(P,ma,b<<3)}na=i+ka|0;a=b-d<<3;L=$(a);I=$(a);b:{if((d|0)<=0){if((b|0)<1){break b}a=b<<3;ba(L,ma,a);ba(P,ma,a);break b}P=Kc(P,a);b=Ca(ma,b,d,L);if((b|0)<1){break b}ba(P,L,b<<3)}Fb(L,b,c,e,f,g,p,q);sc(L,b,h,i,k,l,m);Ra=k+na|0;w=Ra;if((n|0)==1){if((b|0)>=1){v=t[p>>3];d=0;while(1){a=(d<<3)+L|0;t[a>>3]=t[a>>3]-v;d=d+1|0;if((d|0)!=(b|0)){continue}break}}Q=1;w=Ra+1|0}J=w<<3;x=$(J);Z=(Ja|0)<(Ka|0)?Ka:Ja;pa=Z+b|0;y=pa+ -1|0;a=y<<3;T=$(a);Ba=$(a);La=$(a);Ma=$(a);R=$(u(y,J));a=u(w,J);B=$(a);Va=$(a);_=$(J);M=$(J);Aa=$(J);N=$(J);ra=$(w<<2);if(Q){a=o[p+4>>2];o[x>>2]=o[p>>2];o[x+4>>2]=a}if((c|0)>=1){ba((Q<<3)+x|0,f,c<<3)}if((e|0)>=1){ba((c+Q<<3)+x|0,g,e<<3)}if((i|0)>=1){ba((Q+ka<<3)+x|0,l,i<<3)}if((k|0)>=1){ba((Q+na<<3)+x|0,m,k<<3)}da=c+1|0;a=da<<3;E=$(a);Da=e+1|0;d=Da<<3;F=$(d);ea=$(a);ua=$(d);va=A+1|0;a=va+c<<3;Na=$(a);wa=z+1|0;d=wa+e<<3;Oa=$(d);Ea=i+1|0;z=$(Ea<<3);Fa=k+1|0;A=$(Fa<<3);j=va<<3;xa=$(j);n=wa<<3;ya=$(n);fa=$(a);ha=$(d);Ga=$(j);Pa=$(n);o[A>>2]=0;o[A+4>>2]=1072693248;o[z>>2]=0;o[z+4>>2]=1072693248;o[F>>2]=0;o[F+4>>2]=1072693248;o[E>>2]=0;o[E+4>>2]=1072693248;d=0;if((c|0)>0){while(1){a=d+1|0;t[(a<<3)+E>>3]=-t[(d<<3)+f>>3];d=a;if((d|0)!=(c|0)){continue}break}}d=0;if((e|0)>0){while(1){a=d+1|0;t[(a<<3)+F>>3]=-t[(d<<3)+g>>3];d=a;if((e|0)!=(d|0)){continue}break}}d=0;if((i|0)>0){while(1){a=d+1|0;t[z+(a<<3)>>3]=-t[(d<<3)+l>>3];d=a;if((i|0)!=(d|0)){continue}break}}d=0;if((k|0)>0){while(1){a=d+1|0;t[A+(a<<3)>>3]=-t[(d<<3)+m>>3];d=a;if((k|0)!=(d|0)){continue}break}}sa(z,Ea,h,xa);sa(A,Fa,h,ya);ta(E,xa,fa,da,va);ta(F,ya,ha,Da,wa);if((H|0)>0){d=1;while(1){a=(d<<3)+fa|0;t[a>>3]=-t[a>>3];a=(d|0)==(H|0);d=d+1|0;if(!a){continue}break}}d=1;if((G|0)>=1){while(1){a=(d<<3)+ha|0;t[a>>3]=-t[a>>3];a=(d|0)!=(G|0);d=d+1|0;if(a){continue}break}}Sa=fa+8|0;Ua=ha+8|0;qa(L,b,H,G,Sa,Ua,Z,T);if((pa|0)>=2){ba(Ma,T,((y|0)>1?y:1)<<3)}V=(w|0)<1;c:{if(V){break c}O=(y|0)>1?y:1;W=b<<3;X=na+1|0;D=ka+1|0;Qa=(pa|0)<2;j=0;while(1){n=(j<<3)+x|0;v=t[n>>3];K=v+1.4901161193847656e-8*v;t[n>>3]=K;o[A>>2]=0;o[A+4>>2]=1072693248;o[z>>2]=0;o[z+4>>2]=1072693248;o[F>>2]=0;o[F+4>>2]=1072693248;o[E>>2]=0;o[E+4>>2]=1072693248;d:{e:{f:{g:{h:{if(!Q){d=0;if((c|0)>0){break h}break e}d=0;if((c|0)>0){break g}break f}while(1){a=d+1|0;t[(a<<3)+E>>3]=-t[(d<<3)+x>>3];d=a;if((d|0)!=(c|0)){continue}break}break e}while(1){d=d+1|0;a=d<<3;t[a+E>>3]=-t[a+x>>3];if((c|0)!=(d|0)){continue}break}}d=0;if((e|0)>0){while(1){a=d+1|0;t[(a<<3)+F>>3]=-t[(d+da<<3)+x>>3];d=a;if((e|0)!=(d|0)){continue}break}}d=0;if((i|0)>0){while(1){a=d+1|0;t[z+(a<<3)>>3]=-t[(d+D<<3)+x>>3];d=a;if((i|0)!=(d|0)){continue}break}}d=0;if((k|0)>0){while(1){a=d+1|0;t[A+(a<<3)>>3]=-t[(d+X<<3)+x>>3];d=a;if((k|0)!=(d|0)){continue}break}}if((b|0)<1){break d}ia=t[x>>3];d=0;while(1){a=d<<3;t[a+I>>3]=t[a+P>>3]-ia;d=d+1|0;if((d|0)!=(b|0)){continue}break}break d}d=0;if((e|0)>0){while(1){a=d+1|0;t[(a<<3)+F>>3]=-t[(c+d<<3)+x>>3];d=a;if((e|0)!=(d|0)){continue}break}}d=0;if((i|0)>0){while(1){a=d+1|0;t[z+(a<<3)>>3]=-t[(d+ka<<3)+x>>3];d=a;if((i|0)!=(d|0)){continue}break}}d=0;if((k|0)>0){while(1){a=d+1|0;t[A+(a<<3)>>3]=-t[(d+na<<3)+x>>3];d=a;if((k|0)!=(d|0)){continue}break}}if((b|0)<1){break d}ba(I,L,W)}sa(z,Ea,h,xa);sa(A,Fa,h,ya);ta(E,xa,fa,da,va);ta(F,ya,ha,Da,wa);d=1;if((H|0)>0){while(1){a=(d<<3)+fa|0;t[a>>3]=-t[a>>3];a=(d|0)==(H|0);d=d+1|0;if(!a){continue}break}}d=1;if((G|0)>=1){while(1){a=(d<<3)+ha|0;t[a>>3]=-t[a>>3];a=(d|0)!=(G|0);d=d+1|0;if(a){continue}break}}v=K-v;qa(I,b,H,G,Sa,Ua,Z,Ba);if(!Qa){a=u(j,y);d=0;while(1){Ha=d<<3;t[(a+d<<3)+R>>3]=(t[Ha+T>>3]-t[Ba+Ha>>3])/v;d=d+1|0;if((O|0)!=(d|0)){continue}break}}t[n>>3]=t[n>>3]-v;j=j+1|0;if((w|0)!=(j|0)){continue}break}if((w|0)<1){break c}a=(y|0)>1?y:1;j=0;while(1){i:{j:{if((pa|0)>1){O=u(j,w);W=u(j,y);n=0;break j}ca(u(j,J)+B|0,0,J);break i}while(1){X=(n+O<<3)+B|0;d=X;o[d>>2]=0;o[d+4>>2]=0;D=u(n,y);d=0;v=0;while(1){v=v+t[(d+W<<3)+R>>3]*t[(d+D<<3)+R>>3];d=d+1|0;if((a|0)!=(d|0)){continue}break}t[X>>3]=v;n=n+1|0;if((w|0)!=(n|0)){continue}break}}j=j+1|0;if((w|0)!=(j|0)){continue}break}if((w|0)<1){break c}if((pa|0)<=1){d=0;ca(_,0,J);while(1){t[(d<<3)+M>>3]=C(t[(u(d,w)+d<<3)+B>>3]);d=d+1|0;if((w|0)!=(d|0)){continue}break}break c}a=(y|0)>1?y:1;j=0;while(1){n=j<<3;O=n+_|0;d=O;o[d>>2]=0;o[d+4>>2]=0;W=u(j,y);v=0;d=0;while(1){v=v+t[(d+W<<3)+R>>3]*t[(d<<3)+T>>3];d=d+1|0;if((a|0)!=(d|0)){continue}break}t[O>>3]=v;t[n+M>>3]=C(t[(u(j,w)+j<<3)+B>>3]);j=j+1|0;if((w|0)!=(j|0)){continue}break}}Ta(M,w);W=b<<3;Qa=Oa+8|0;Ha=Na+8|0;Wa=na+1|0;Xa=ka+1|0;X=u(w,w);Ya=X<<3;O=(y|0)>1?y:1;Za=O<<3;K=2;ia=.01;_a=(pa|0)<2;d=0;while(1){a=d;if(!V){v=ia+1;n=0;while(1){j=u(n,w);k:{if(a){j=(j+n<<3)+B|0;d=0;while(1){if((d|0)==(n|0)){t[j>>3]=v}d=d+1|0;if((w|0)!=(d|0)){continue}break}break k}D=(j+n<<3)+B|0;U=t[(n<<3)+M>>3];d=0;while(1){Y=(d+j<<3)+B|0;t[Y>>3]=t[Y>>3]/(U*t[(d<<3)+M>>3]);if((d|0)==(n|0)){t[D>>3]=v}d=d+1|0;if((w|0)!=(d|0)){continue}break}}n=n+1|0;if((w|0)!=(n|0)){continue}break}}l:{if(a){break l}d=0;if(V){break l}while(1){j=d<<3;n=j+_|0;t[n>>3]=t[n>>3]/t[j+M>>3];d=d+1|0;if((w|0)!=(d|0)){continue}break}}m:{if(X){d=ba(Va,B,Ya);la(B,w,ra);oa(B,w,_,ra,Aa);ba(B,d,Ya);break m}la(B,w,ra);oa(B,w,_,ra,Aa)}n=0;if(!V){while(1){d=n<<3;j=d+Aa|0;v=t[j>>3]/t[d+M>>3];t[j>>3]=v;t[d+N>>3]=v+t[d+x>>3];n=n+1|0;if((w|0)!=(n|0)){continue}break}}o[A>>2]=0;o[A+4>>2]=1072693248;o[z>>2]=0;o[z+4>>2]=1072693248;o[ua>>2]=0;o[ua+4>>2]=1072693248;o[ea>>2]=0;o[ea+4>>2]=1072693248;n:{o:{p:{q:{r:{if(!Q){d=0;if((c|0)>0){break r}break o}d=0;if((c|0)>0){break q}break p}while(1){j=d+1|0;t[(j<<3)+ea>>3]=-t[(d<<3)+N>>3];d=j;if((d|0)!=(c|0)){continue}break}break o}while(1){d=d+1|0;j=d<<3;t[j+ea>>3]=-t[j+N>>3];if((c|0)!=(d|0)){continue}break}}d=0;if((e|0)>0){while(1){j=d+1|0;t[(j<<3)+ua>>3]=-t[(d+da<<3)+N>>3];d=j;if((e|0)!=(d|0)){continue}break}}d=0;if((i|0)>0){while(1){j=d+1|0;t[z+(j<<3)>>3]=-t[(d+Xa<<3)+N>>3];d=j;if((i|0)!=(d|0)){continue}break}}d=0;if((k|0)>0){while(1){j=d+1|0;t[A+(j<<3)>>3]=-t[(d+Wa<<3)+N>>3];d=j;if((k|0)!=(d|0)){continue}break}}if((b|0)<1){break n}v=t[N>>3];d=0;while(1){j=d<<3;t[j+I>>3]=t[j+P>>3]-v;d=d+1|0;if((d|0)!=(b|0)){continue}break}break n}d=0;if((e|0)>0){while(1){j=d+1|0;t[(j<<3)+ua>>3]=-t[(c+d<<3)+N>>3];d=j;if((e|0)!=(d|0)){continue}break}}d=0;if((i|0)>0){while(1){j=d+1|0;t[z+(j<<3)>>3]=-t[(d+ka<<3)+N>>3];d=j;if((i|0)!=(d|0)){continue}break}}d=0;if((k|0)>0){while(1){j=d+1|0;t[A+(j<<3)>>3]=-t[(d+na<<3)+N>>3];d=j;if((k|0)!=(d|0)){continue}break}}if((b|0)<1){break n}ba(I,L,W)}sa(z,Ea,h,Ga);sa(A,Fa,h,Pa);ta(ea,Ga,Na,da,va);ta(ua,Pa,Oa,Da,wa);d=1;Y=(H|0)>0;if(Y){while(1){j=(d<<3)+Na|0;t[j>>3]=-t[j>>3];j=(d|0)==(H|0);d=d+1|0;if(!j){continue}break}}d=1;if((G|0)>=1){while(1){j=(d<<3)+Oa|0;t[j>>3]=-t[j>>3];j=(d|0)!=(G|0);d=d+1|0;if(j){continue}break}}qa(I,b,H,G,Ha,Qa,Z,La);s:{t:{u:{if(!_a){j=ba(Ma,La,Za);U=0;d=0;n=0;v=0;while(1){S=v;v=t[(n<<3)+La>>3];v=S+v*v;n=n+1|0;if((y|0)!=(n|0)){continue}break}while(1){S=U;U=t[(d<<3)+T>>3];U=S+U*U;d=d+1|0;if((y|0)!=(d|0)){continue}break}S=ga(Aa,w);ja=S;if(!(v<U)){break u}if(S<1e-8){break s}if(!V){ba(x,N,J)}v:{if(!Q){if((b|0)<1){break v}ba(I,L,W);break v}if((b|0)<1){break v}v=t[x>>3];d=0;while(1){n=d<<3;t[n+I>>3]=t[n+P>>3]-v;d=d+1|0;if((d|0)!=(b|0)){continue}break}}ia=ia/K;qa(I,b,H,G,Ha,Qa,Z,T);ba(j,T,Za);n=0;K=2;if((w|0)<=0){break t}while(1){D=(n<<3)+x|0;v=t[D>>3];ja=v+1.4901161193847656e-8*v;t[D>>3]=ja;o[A>>2]=0;o[A+4>>2]=1072693248;o[z>>2]=0;o[z+4>>2]=1072693248;o[F>>2]=0;o[F+4>>2]=1072693248;o[E>>2]=0;o[E+4>>2]=1072693248;w:{x:{y:{z:{A:{if(!Q){d=0;if((c|0)>0){break A}break x}d=0;if((c|0)>0){break z}break y}while(1){j=d+1|0;t[(j<<3)+E>>3]=-t[(d<<3)+x>>3];d=j;if((d|0)!=(c|0)){continue}break}break x}while(1){d=d+1|0;j=d<<3;t[j+E>>3]=-t[j+x>>3];if((c|0)!=(d|0)){continue}break}}d=0;if((e|0)>0){while(1){j=d+1|0;t[(j<<3)+F>>3]=-t[(d+da<<3)+x>>3];d=j;if((e|0)!=(d|0)){continue}break}}d=0;if((i|0)>0){while(1){j=d+1|0;t[z+(j<<3)>>3]=-t[(d+Xa<<3)+x>>3];d=j;if((i|0)!=(d|0)){continue}break}}d=0;if((k|0)>0){while(1){j=d+1|0;t[A+(j<<3)>>3]=-t[(d+Wa<<3)+x>>3];d=j;if((k|0)!=(d|0)){continue}break}}if((b|0)<1){break w}ab=t[x>>3];d=0;while(1){j=d<<3;t[j+I>>3]=t[j+P>>3]-ab;d=d+1|0;if((d|0)!=(b|0)){continue}break}break w}d=0;if((e|0)>0){while(1){j=d+1|0;t[(j<<3)+F>>3]=-t[(c+d<<3)+x>>3];d=j;if((e|0)!=(d|0)){continue}break}}d=0;if((i|0)>0){while(1){j=d+1|0;t[z+(j<<3)>>3]=-t[(d+ka<<3)+x>>3];d=j;if((i|0)!=(d|0)){continue}break}}d=0;if((k|0)>0){while(1){j=d+1|0;t[A+(j<<3)>>3]=-t[(d+na<<3)+x>>3];d=j;if((k|0)!=(d|0)){continue}break}}if((b|0)<1){break w}ba(I,L,W)}sa(z,Ea,h,xa);sa(A,Fa,h,ya);ta(E,xa,fa,da,va);ta(F,ya,ha,Da,wa);d=1;if(Y){while(1){j=(d<<3)+fa|0;t[j>>3]=-t[j>>3];j=(d|0)==(H|0);d=d+1|0;if(!j){continue}break}}d=1;if((G|0)>=1){while(1){j=(d<<3)+ha|0;t[j>>3]=-t[j>>3];j=(d|0)!=(G|0);d=d+1|0;if(j){continue}break}}v=ja-v;qa(I,b,H,G,Sa,Ua,Z,Ba);j=u(n,y);d=0;while(1){Ia=d<<3;t[(d+j<<3)+R>>3]=(t[Ia+T>>3]-t[Ba+Ia>>3])/v;d=d+1|0;if((O|0)!=(d|0)){continue}break}t[D>>3]=t[D>>3]-v;n=n+1|0;if((w|0)!=(n|0)){continue}break}j=0;if(V){break t}while(1){D=u(j,w);Y=u(j,y);n=0;while(1){Ia=(n+D<<3)+B|0;d=Ia;o[d>>2]=0;o[d+4>>2]=0;bb=u(n,y);d=0;v=0;while(1){v=v+t[(d+Y<<3)+R>>3]*t[(d+bb<<3)+R>>3];d=d+1|0;if((O|0)!=(d|0)){continue}break}t[Ia>>3]=v;n=n+1|0;if((w|0)!=(n|0)){continue}break}j=j+1|0;if((w|0)!=(j|0)){continue}break}j=0;if(V){break t}while(1){n=j<<3;D=n+_|0;d=D;o[d>>2]=0;o[d+4>>2]=0;Y=u(j,y);v=0;d=0;while(1){v=v+t[(d+Y<<3)+R>>3]*t[(d<<3)+T>>3];d=d+1|0;if((O|0)!=(d|0)){continue}break}t[D>>3]=v;t[n+M>>3]=C(t[(u(j,w)+j<<3)+B>>3]);j=j+1|0;if((w|0)!=(j|0)){continue}break}if(V){break t}v=ia+1;j=0;while(1){n=u(j,w);ja=t[(j<<3)+M>>3];d=0;while(1){D=(d+n<<3)+B|0;t[D>>3]=(d|0)==(j|0)?v:t[D>>3]/(ja*t[(d<<3)+M>>3]);d=d+1|0;if((w|0)!=(d|0)){continue}break}j=j+1|0;if((w|0)!=(j|0)){continue}break}d=0;if(V){break t}while(1){j=d<<3;n=j+_|0;t[n>>3]=t[n>>3]/t[j+M>>3];d=d+1|0;if((w|0)!=(d|0)){continue}break}break t}U=0;ja=ga(Aa,w)}S=ja;ia=K*ia;K=K+K}if(!(S>=1e-8)){break s}d=a+1|0;if(a>>>0<199){continue}}break}t[q>>3]=U/+((b-Ra|0)-Q|0);v=0;if(Q){d=0;K=0;if((c|0)>0){while(1){d=d+1|0;v=v-t[(d<<3)+ea>>3];if((c|0)!=(d|0)){continue}break}}d=0;if((i|0)>0){while(1){d=d+1|0;K=K-t[(d<<3)+Ga>>3];if((d|0)!=(i|0)){continue}break}}S=(1-K)*((1-v)*t[x>>3])}else{S=0}t[p>>3]=S;d=0;if((c|0)>0){while(1){j=(d<<3)+f|0;d=d+1|0;t[j>>3]=-t[(d<<3)+ea>>3];if((c|0)!=(d|0)){continue}break}}d=0;if((e|0)>0){while(1){c=(d<<3)+g|0;d=d+1|0;t[c>>3]=-t[(d<<3)+ua>>3];if((d|0)!=(e|0)){continue}break}}Eb(Ga,va,h,z);Eb(Pa,wa,h,A);d=0;if((i|0)>0){while(1){c=(d<<3)+l|0;d=d+1|0;t[c>>3]=-t[z+(d<<3)>>3];if((d|0)!=(i|0)){continue}break}}d=0;if((k|0)>0){while(1){c=(d<<3)+m|0;d=d+1|0;t[c>>3]=-t[A+(d<<3)>>3];if((d|0)!=(k|0)){continue}break}}if((w|0)>=1){c=0;e=(pa|0)>1;while(1){B:{C:{if(e){f=u(c,w);g=u(c,y);n=0;break C}ca(u(c,J)+B|0,0,J);break B}while(1){h=(f+n<<3)+B|0;d=h;o[d>>2]=0;o[d+4>>2]=0;i=u(n,y);d=0;v=0;while(1){v=v+t[(d+g<<3)+R>>3]*t[(d+i<<3)+R>>3];d=d+1|0;if((O|0)!=(d|0)){continue}break}t[h>>3]=v;n=n+1|0;if((w|0)!=(n|0)){continue}break}}c=c+1|0;if((w|0)!=(c|0)){continue}break}}la(B,w,ra);za(B,w,ra,r);if(X){d=0;while(1){c=(d<<3)+r|0;t[c>>3]=t[c>>3]*t[q>>3];d=d+1|0;if((X|0)!=(d|0)){continue}break}}if((b|0)>=1){b=(Ja|0)>(y|0)?Ja:y;ba(s,((Z<<3)+Ma|0)+ -8|0,(((b|0)>(Ka|0)?b:Ka)-Z<<3)+8|0)}aa(ma);aa(L);aa(I);aa(E);aa(F);aa(x);aa(T);aa(Ba);aa(R);aa(B);aa(_);aa(M);aa(Aa);aa(N);aa(ra);aa(Na);aa(Oa);aa(La);aa(Ma);aa(P);aa(xa);aa(ya);aa(z);aa(A);aa(fa);aa(ha);aa(ea);aa(ua);aa(Ga);aa(Pa);aa(Va);return a>>>0>198?4:1}function $(a){var b=0,c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;l=K-16|0;K=l;a:{b:{c:{d:{e:{f:{g:{h:{i:{j:{k:{if(a>>>0<=244){f=o[3151];g=a>>>0<11?16:a+11&-8;a=g>>>3|0;b=f>>>a|0;if(b&3){c=a+((b^-1)&1)|0;e=c<<3;b=o[e+12652>>2];a=b+8|0;d=o[b+8>>2];e=e+12644|0;l:{if((d|0)==(e|0)){m=12604,n=bd(c)&f,o[m>>2]=n;break l}o[d+12>>2]=e;o[e+8>>2]=d}c=c<<3;o[b+4>>2]=c|3;b=b+c|0;o[b+4>>2]=o[b+4>>2]|1;break a}i=o[3153];if(g>>>0<=i>>>0){break k}if(b){c=2<<a;a=(0-c|c)&b<<a;a=(0-a&a)+ -1|0;b=a>>>12&16;c=b;a=a>>>b|0;b=a>>>5&8;c=c|b;a=a>>>b|0;b=a>>>2&4;c=c|b;a=a>>>b|0;b=a>>>1&2;c=c|b;a=a>>>b|0;b=a>>>1&1;c=(c|b)+(a>>>b|0)|0;d=c<<3;b=o[d+12652>>2];a=o[b+8>>2];d=d+12644|0;m:{if((a|0)==(d|0)){f=bd(c)&f;o[3151]=f;break m}o[a+12>>2]=d;o[d+8>>2]=a}a=b+8|0;o[b+4>>2]=g|3;h=b+g|0;c=c<<3;e=c-g|0;o[h+4>>2]=e|1;o[b+c>>2]=e;if(i){c=i>>>3|0;b=(c<<3)+12644|0;d=o[3156];c=1<<c;n:{if(!(c&f)){o[3151]=c|f;c=b;break n}c=o[b+8>>2]}o[b+8>>2]=d;o[c+12>>2]=d;o[d+12>>2]=b;o[d+8>>2]=c}o[3156]=h;o[3153]=e;break a}k=o[3152];if(!k){break k}a=(k&0-k)+ -1|0;b=a>>>12&16;c=b;a=a>>>b|0;b=a>>>5&8;c=c|b;a=a>>>b|0;b=a>>>2&4;c=c|b;a=a>>>b|0;b=a>>>1&2;c=c|b;a=a>>>b|0;b=a>>>1&1;b=o[((c|b)+(a>>>b|0)<<2)+12908>>2];d=(o[b+4>>2]&-8)-g|0;c=b;while(1){o:{a=o[c+16>>2];if(!a){a=o[c+20>>2];if(!a){break o}}e=(o[a+4>>2]&-8)-g|0;c=e>>>0<d>>>0;d=c?e:d;b=c?a:b;c=a;continue}break}j=o[b+24>>2];e=o[b+12>>2];if((e|0)!=(b|0)){a=o[b+8>>2];o[a+12>>2]=e;o[e+8>>2]=a;break b}c=b+20|0;a=o[c>>2];if(!a){a=o[b+16>>2];if(!a){break j}c=b+16|0}while(1){h=c;e=a;c=a+20|0;a=o[c>>2];if(a){continue}c=e+16|0;a=o[e+16>>2];if(a){continue}break}o[h>>2]=0;break b}g=-1;if(a>>>0>4294967231){break k}b=a+11|0;g=b&-8;i=o[3152];if(!i){break k}c=0-g|0;b=b>>>8|0;f=0;p:{if(!b){break p}f=31;if(g>>>0>16777215){break p}d=b+1048320>>>16&8;b=b<<d;a=b+520192>>>16&4;f=b<<a;b=f+245760>>>16&2;a=(f<<b>>>15|0)-(b|(a|d))|0;f=(a<<1|g>>>a+21&1)+28|0}d=o[(f<<2)+12908>>2];q:{r:{s:{if(!d){a=0;break s}b=g<<((f|0)==31?0:25-(f>>>1|0)|0);a=0;while(1){t:{h=(o[d+4>>2]&-8)-g|0;if(h>>>0>=c>>>0){break t}e=d;c=h;if(c){break t}c=0;a=d;break r}h=o[d+20>>2];d=o[((b>>>29&4)+d|0)+16>>2];a=h?(h|0)==(d|0)?a:h:a;b=b<<((d|0)!=0);if(d){continue}break}}if(!(a|e)){a=2<<f;a=(0-a|a)&i;if(!a){break k}a=(a&0-a)+ -1|0;b=a>>>12&16;d=b;a=a>>>b|0;b=a>>>5&8;d=d|b;a=a>>>b|0;b=a>>>2&4;d=d|b;a=a>>>b|0;b=a>>>1&2;d=d|b;a=a>>>b|0;b=a>>>1&1;a=o[((d|b)+(a>>>b|0)<<2)+12908>>2]}if(!a){break q}}while(1){d=(o[a+4>>2]&-8)-g|0;b=d>>>0<c>>>0;c=b?d:c;e=b?a:e;b=o[a+16>>2];if(b){a=b}else{a=o[a+20>>2]}if(a){continue}break}}if(!e|c>>>0>=o[3153]-g>>>0){break k}h=o[e+24>>2];b=o[e+12>>2];if((e|0)!=(b|0)){a=o[e+8>>2];o[a+12>>2]=b;o[b+8>>2]=a;break c}d=e+20|0;a=o[d>>2];if(!a){a=o[e+16>>2];if(!a){break i}d=e+16|0}while(1){f=d;b=a;d=a+20|0;a=o[d>>2];if(a){continue}d=b+16|0;a=o[b+16>>2];if(a){continue}break}o[f>>2]=0;break c}b=o[3153];if(b>>>0>=g>>>0){a=o[3156];c=b-g|0;u:{if(c>>>0>=16){o[3153]=c;d=a+g|0;o[3156]=d;o[d+4>>2]=c|1;o[a+b>>2]=c;o[a+4>>2]=g|3;break u}o[3156]=0;o[3153]=0;o[a+4>>2]=b|3;b=a+b|0;o[b+4>>2]=o[b+4>>2]|1}a=a+8|0;break a}d=o[3154];if(d>>>0>g>>>0){b=d-g|0;o[3154]=b;a=o[3157];c=a+g|0;o[3157]=c;o[c+4>>2]=b|1;o[a+4>>2]=g|3;a=a+8|0;break a}a=0;e=g+47|0;c=e;if(o[3269]){b=o[3271]}else{o[3272]=-1;o[3273]=-1;o[3270]=4096;o[3271]=4096;o[3269]=l+12&-16^1431655768;o[3274]=0;o[3262]=0;b=4096}f=c+b|0;h=0-b|0;c=f&h;if(c>>>0<=g>>>0){break a}b=o[3261];if(b){i=o[3259];j=i+c|0;if(j>>>0<=i>>>0|j>>>0>b>>>0){break a}}if(p[13048]&4){break f}v:{w:{b=o[3157];if(b){a=13052;while(1){i=o[a>>2];if(i+o[a+4>>2]>>>0>b>>>0?i>>>0<=b>>>0:0){break w}a=o[a+8>>2];if(a){continue}break}}b=ya(0);if((b|0)==-1){break g}f=c;a=o[3270];d=a+ -1|0;if(d&b){f=(c-b|0)+(b+d&0-a)|0}if(f>>>0<=g>>>0|f>>>0>2147483646){break g}a=o[3261];if(a){d=o[3259];h=d+f|0;if(h>>>0<=d>>>0|h>>>0>a>>>0){break g}}a=ya(f);if((b|0)!=(a|0)){break v}break e}f=h&f-d;if(f>>>0>2147483646){break g}b=ya(f);if((b|0)==(o[a>>2]+o[a+4>>2]|0)){break h}a=b}if(!((a|0)==-1|g+48>>>0<=f>>>0)){b=o[3271];b=b+(e-f|0)&0-b;if(b>>>0>2147483646){b=a;break e}if((ya(b)|0)!=-1){f=b+f|0;b=a;break e}ya(0-f|0);break g}b=a;if((a|0)!=-1){break e}break g}e=0;break b}b=0;break c}if((b|0)!=-1){break e}}o[3262]=o[3262]|4}if(c>>>0>2147483646){break d}b=ya(c);a=ya(0);if(b>>>0>=a>>>0|(b|0)==-1|(a|0)==-1){break d}f=a-b|0;if(f>>>0<=g+40>>>0){break d}}a=o[3259]+f|0;o[3259]=a;if(a>>>0>r[3260]){o[3260]=a}x:{y:{z:{c=o[3157];if(c){a=13052;while(1){d=o[a>>2];e=o[a+4>>2];if((d+e|0)==(b|0)){break z}a=o[a+8>>2];if(a){continue}break}break y}a=o[3155];if(!(b>>>0>=a>>>0?a:0)){o[3155]=b}a=0;o[3264]=f;o[3263]=b;o[3159]=-1;o[3160]=o[3269];o[3266]=0;while(1){c=a<<3;d=c+12644|0;o[c+12652>>2]=d;o[c+12656>>2]=d;a=a+1|0;if((a|0)!=32){continue}break}a=f+ -40|0;c=b+8&7?-8-b&7:0;d=a-c|0;o[3154]=d;c=b+c|0;o[3157]=c;o[c+4>>2]=d|1;o[(a+b|0)+4>>2]=40;o[3158]=o[3273];break x}if(p[a+12|0]&8|b>>>0<=c>>>0|d>>>0>c>>>0){break y}o[a+4>>2]=e+f;a=c+8&7?-8-c&7:0;b=a+c|0;o[3157]=b;d=o[3154]+f|0;a=d-a|0;o[3154]=a;o[b+4>>2]=a|1;o[(c+d|0)+4>>2]=40;o[3158]=o[3273];break x}e=o[3155];if(b>>>0<e>>>0){o[3155]=b;e=0}d=b+f|0;a=13052;A:{B:{C:{D:{E:{F:{while(1){if((d|0)!=o[a>>2]){a=o[a+8>>2];if(a){continue}break F}break}if(!(p[a+12|0]&8)){break E}}a=13052;while(1){d=o[a>>2];if(d>>>0<=c>>>0){e=d+o[a+4>>2]|0;if(e>>>0>c>>>0){break D}}a=o[a+8>>2];continue}}o[a>>2]=b;o[a+4>>2]=o[a+4>>2]+f;j=(b+8&7?-8-b&7:0)+b|0;o[j+4>>2]=g|3;b=d+(d+8&7?-8-d&7:0)|0;a=(b-j|0)-g|0;h=g+j|0;if((b|0)==(c|0)){o[3157]=h;a=o[3154]+a|0;o[3154]=a;o[h+4>>2]=a|1;break B}if(o[3156]==(b|0)){o[3156]=h;a=o[3153]+a|0;o[3153]=a;o[h+4>>2]=a|1;o[a+h>>2]=a;break B}c=o[b+4>>2];if((c&3)==1){k=c&-8;G:{if(c>>>0<=255){e=c>>>3|0;c=o[b+8>>2];d=o[b+12>>2];if((d|0)==(c|0)){m=12604,n=o[3151]&bd(e),o[m>>2]=n;break G}o[c+12>>2]=d;o[d+8>>2]=c;break G}i=o[b+24>>2];f=o[b+12>>2];H:{if((f|0)!=(b|0)){c=o[b+8>>2];o[c+12>>2]=f;o[f+8>>2]=c;break H}I:{d=b+20|0;g=o[d>>2];if(g){break I}d=b+16|0;g=o[d>>2];if(g){break I}f=0;break H}while(1){c=d;f=g;d=g+20|0;g=o[d>>2];if(g){continue}d=f+16|0;g=o[f+16>>2];if(g){continue}break}o[c>>2]=0}if(!i){break G}c=o[b+28>>2];d=(c<<2)+12908|0;J:{if(o[d>>2]==(b|0)){o[d>>2]=f;if(f){break J}m=12608,n=o[3152]&bd(c),o[m>>2]=n;break G}o[i+(o[i+16>>2]==(b|0)?16:20)>>2]=f;if(!f){break G}}o[f+24>>2]=i;c=o[b+16>>2];if(c){o[f+16>>2]=c;o[c+24>>2]=f}c=o[b+20>>2];if(!c){break G}o[f+20>>2]=c;o[c+24>>2]=f}b=b+k|0;a=a+k|0}o[b+4>>2]=o[b+4>>2]&-2;o[h+4>>2]=a|1;o[a+h>>2]=a;if(a>>>0<=255){b=a>>>3|0;a=(b<<3)+12644|0;c=o[3151];b=1<<b;K:{if(!(c&b)){o[3151]=b|c;b=a;break K}b=o[a+8>>2]}o[a+8>>2]=h;o[b+12>>2]=h;o[h+12>>2]=a;o[h+8>>2]=b;break B}c=h;d=a>>>8|0;b=0;L:{if(!d){break L}b=31;if(a>>>0>16777215){break L}e=d+1048320>>>16&8;d=d<<e;b=d+520192>>>16&4;g=d<<b;d=g+245760>>>16&2;b=(g<<d>>>15|0)-(d|(b|e))|0;b=(b<<1|a>>>b+21&1)+28|0}o[c+28>>2]=b;o[h+16>>2]=0;o[h+20>>2]=0;c=(b<<2)+12908|0;d=o[3152];e=1<<b;M:{if(!(d&e)){o[3152]=d|e;o[c>>2]=h;break M}d=a<<((b|0)==31?0:25-(b>>>1|0)|0);b=o[c>>2];while(1){c=b;if((o[b+4>>2]&-8)==(a|0)){break C}b=d>>>29|0;d=d<<1;e=(b&4)+c|0;b=o[e+16>>2];if(b){continue}break}o[e+16>>2]=h}o[h+24>>2]=c;o[h+12>>2]=h;o[h+8>>2]=h;break B}a=f+ -40|0;d=b+8&7?-8-b&7:0;h=a-d|0;o[3154]=h;d=b+d|0;o[3157]=d;o[d+4>>2]=h|1;o[(a+b|0)+4>>2]=40;o[3158]=o[3273];a=(e+(e+ -39&7?39-e&7:0)|0)+ -47|0;d=a>>>0<c+16>>>0?c:a;o[d+4>>2]=27;a=o[3266];o[d+16>>2]=o[3265];o[d+20>>2]=a;a=o[3264];o[d+8>>2]=o[3263];o[d+12>>2]=a;o[3265]=d+8;o[3264]=f;o[3263]=b;o[3266]=0;a=d+24|0;while(1){o[a+4>>2]=7;b=a+8|0;a=a+4|0;if(e>>>0>b>>>0){continue}break}if((c|0)==(d|0)){break x}o[d+4>>2]=o[d+4>>2]&-2;e=d-c|0;o[c+4>>2]=e|1;o[d>>2]=e;if(e>>>0<=255){b=e>>>3|0;a=(b<<3)+12644|0;d=o[3151];b=1<<b;N:{if(!(d&b)){o[3151]=b|d;b=a;break N}b=o[a+8>>2]}o[a+8>>2]=c;o[b+12>>2]=c;o[c+12>>2]=a;o[c+8>>2]=b;break x}o[c+16>>2]=0;o[c+20>>2]=0;b=c;d=e>>>8|0;a=0;O:{if(!d){break O}a=31;if(e>>>0>16777215){break O}f=d+1048320>>>16&8;d=d<<f;a=d+520192>>>16&4;h=d<<a;d=h+245760>>>16&2;a=(h<<d>>>15|0)-(d|(a|f))|0;a=(a<<1|e>>>a+21&1)+28|0}o[b+28>>2]=a;b=(a<<2)+12908|0;d=o[3152];f=1<<a;P:{if(!(d&f)){o[3152]=d|f;o[b>>2]=c;o[c+24>>2]=b;break P}a=e<<((a|0)==31?0:25-(a>>>1|0)|0);b=o[b>>2];while(1){d=b;if((e|0)==(o[b+4>>2]&-8)){break A}b=a>>>29|0;a=a<<1;f=d+(b&4)|0;b=o[f+16>>2];if(b){continue}break}o[f+16>>2]=c;o[c+24>>2]=d}o[c+12>>2]=c;o[c+8>>2]=c;break x}a=o[c+8>>2];o[a+12>>2]=h;o[c+8>>2]=h;o[h+24>>2]=0;o[h+12>>2]=c;o[h+8>>2]=a}a=j+8|0;break a}a=o[d+8>>2];o[a+12>>2]=c;o[d+8>>2]=c;o[c+24>>2]=0;o[c+12>>2]=d;o[c+8>>2]=a}a=o[3154];if(a>>>0<=g>>>0){break d}b=a-g|0;o[3154]=b;a=o[3157];c=a+g|0;o[3157]=c;o[c+4>>2]=b|1;o[a+4>>2]=g|3;a=a+8|0;break a}o[3150]=48;a=0;break a}Q:{if(!h){break Q}a=o[e+28>>2];d=(a<<2)+12908|0;R:{if(o[d>>2]==(e|0)){o[d>>2]=b;if(b){break R}i=bd(a)&i;o[3152]=i;break Q}o[h+(o[h+16>>2]==(e|0)?16:20)>>2]=b;if(!b){break Q}}o[b+24>>2]=h;a=o[e+16>>2];if(a){o[b+16>>2]=a;o[a+24>>2]=b}a=o[e+20>>2];if(!a){break Q}o[b+20>>2]=a;o[a+24>>2]=b}S:{if(c>>>0<=15){a=c+g|0;o[e+4>>2]=a|3;a=a+e|0;o[a+4>>2]=o[a+4>>2]|1;break S}o[e+4>>2]=g|3;d=e+g|0;o[d+4>>2]=c|1;o[c+d>>2]=c;if(c>>>0<=255){b=c>>>3|0;a=(b<<3)+12644|0;c=o[3151];b=1<<b;T:{if(!(c&b)){o[3151]=b|c;b=a;break T}b=o[a+8>>2]}o[a+8>>2]=d;o[b+12>>2]=d;o[d+12>>2]=a;o[d+8>>2]=b;break S}b=d;g=c>>>8|0;a=0;U:{if(!g){break U}a=31;if(c>>>0>16777215){break U}f=g+1048320>>>16&8;g=g<<f;a=g+520192>>>16&4;h=g<<a;g=h+245760>>>16&2;a=(h<<g>>>15|0)-(g|(a|f))|0;a=(a<<1|c>>>a+21&1)+28|0}o[b+28>>2]=a;o[d+16>>2]=0;o[d+20>>2]=0;b=(a<<2)+12908|0;V:{g=1<<a;W:{if(!(g&i)){o[3152]=g|i;o[b>>2]=d;break W}a=c<<((a|0)==31?0:25-(a>>>1|0)|0);g=o[b>>2];while(1){b=g;if((o[b+4>>2]&-8)==(c|0)){break V}g=a>>>29|0;a=a<<1;f=(g&4)+b|0;g=o[f+16>>2];if(g){continue}break}o[f+16>>2]=d}o[d+24>>2]=b;o[d+12>>2]=d;o[d+8>>2]=d;break S}a=o[b+8>>2];o[a+12>>2]=d;o[b+8>>2]=d;o[d+24>>2]=0;o[d+12>>2]=b;o[d+8>>2]=a}a=e+8|0;break a}X:{if(!j){break X}a=o[b+28>>2];c=(a<<2)+12908|0;Y:{if(o[c>>2]==(b|0)){o[c>>2]=e;if(e){break Y}m=12608,n=bd(a)&k,o[m>>2]=n;break X}o[j+(o[j+16>>2]==(b|0)?16:20)>>2]=e;if(!e){break X}}o[e+24>>2]=j;a=o[b+16>>2];if(a){o[e+16>>2]=a;o[a+24>>2]=e}a=o[b+20>>2];if(!a){break X}o[e+20>>2]=a;o[a+24>>2]=e}Z:{if(d>>>0<=15){a=d+g|0;o[b+4>>2]=a|3;a=a+b|0;o[a+4>>2]=o[a+4>>2]|1;break Z}o[b+4>>2]=g|3;g=b+g|0;o[g+4>>2]=d|1;o[d+g>>2]=d;if(i){c=i>>>3|0;a=(c<<3)+12644|0;e=o[3156];c=1<<c;_:{if(!(c&f)){o[3151]=c|f;c=a;break _}c=o[a+8>>2]}o[a+8>>2]=e;o[c+12>>2]=e;o[e+12>>2]=a;o[e+8>>2]=c}o[3156]=g;o[3153]=d}a=b+8|0}K=l+16|0;return a}function kb(a,b,c,d,e,f,g,h,i,j,k,l){var m=0,n=0,p=0,q=0,r=0,s=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,da=0,ea=0,fa=0,ha=0,ia=0,ja=0,ka=0,ma=0,na=0,pa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;ha=u(c,20)+e|0;q=(ha|0)>15;n=b-d<<3;D=$(n);T=$(n);x=$(n);v=c<<3;U=$(v);H=e<<3;V=$(H);W=$(v);Z=$(H);a:{if((d|0)<=0){if((b|0)<1){break a}d=b<<3;ba(D,a,d);ba(T,a,d);break a}b=Ca(a,b,d,D);if((b|0)<1){break a}ba(T,D,b<<3)}Fb(D,b,c,e,f,g,i,j);na=c+e|0;n=na;if((h|0)==1){if((b|0)>=1){m=t[i>>3];d=0;while(1){a=(d<<3)+D|0;t[a>>3]=t[a>>3]-m;d=d+1|0;if((d|0)!=(b|0)){continue}break}}L=1;n=na+1|0}y=n<<3;s=$(y);P=q?ha:15;X=P+b|0;q=X+ -1|0;a=q<<3;I=$(a);fa=$(a);ia=$(a);ja=$(a);E=$(u(q,y));a=u(n,y);r=$(a);pa=$(a);Q=$(y);A=$(y);_=$(y);R=$(y);Y=$(n<<2);if(L){a=o[i+4>>2];o[s>>2]=o[i>>2];o[s+4>>2]=a}if((c|0)>=1){ba((L<<3)+s|0,f,v)}if((e|0)>=1){ba((c+L<<3)+s|0,g,H)}qa(D,b,c,e,f,g,P,I);if((X|0)>=2){ba(ja,I,((q|0)>1?q:1)<<3)}M=(n|0)<1;b:{if(M){break b}F=(q|0)>1?q:1;p=s+8|0;N=b<<3;J=s+v|0;da=J+8|0;h=0;ka=(X|0)<2;while(1){a=(h<<3)+s|0;z=t[a>>3];m=z+1.4901161193847656e-8*z;t[a>>3]=m;c:{if(!L){if((c|0)>=1){ba(U,s,v)}if((e|0)>=1){ba(V,J,H)}if((b|0)<1){break c}ba(x,D,N);break c}if((c|0)>=1){ba(U,p,v)}if((e|0)>=1){ba(V,da,H)}if((b|0)<1){break c}S=t[s>>3];d=0;while(1){ea=d<<3;t[ea+x>>3]=t[T+ea>>3]-S;d=d+1|0;if((d|0)!=(b|0)){continue}break}}z=m-z;qa(x,b,c,e,U,V,P,fa);if(!ka){ea=u(h,q);d=0;while(1){ma=d<<3;t[(d+ea<<3)+E>>3]=(t[ma+I>>3]-t[fa+ma>>3])/z;d=d+1|0;if((F|0)!=(d|0)){continue}break}}t[a>>3]=m-z;h=h+1|0;if((n|0)!=(h|0)){continue}break}if((n|0)<1){break b}F=(q|0)>1?q:1;a=0;while(1){d:{e:{if((X|0)>1){p=u(a,n);N=u(a,q);h=0;break e}ca(u(a,y)+r|0,0,y);break d}while(1){J=(h+p<<3)+r|0;d=J;o[d>>2]=0;o[d+4>>2]=0;da=u(h,q);d=0;m=0;while(1){m=m+t[(d+N<<3)+E>>3]*t[(d+da<<3)+E>>3];d=d+1|0;if((F|0)!=(d|0)){continue}break}t[J>>3]=m;h=h+1|0;if((n|0)!=(h|0)){continue}break}}a=a+1|0;if((n|0)!=(a|0)){continue}break}if((n|0)<1){break b}if((X|0)<=1){d=0;ca(Q,0,y);while(1){t[(d<<3)+A>>3]=C(t[(u(d,n)+d<<3)+r>>3]);d=d+1|0;if((n|0)!=(d|0)){continue}break}break b}F=(q|0)>1?q:1;h=0;while(1){p=h<<3;a=p+Q|0;o[a>>2]=0;o[a+4>>2]=0;N=u(h,q);m=0;d=0;while(1){m=m+t[(d+N<<3)+E>>3]*t[(d<<3)+I>>3];d=d+1|0;if((F|0)!=(d|0)){continue}break}t[a>>3]=m;t[p+A>>3]=C(t[(u(h,n)+h<<3)+r>>3]);h=h+1|0;if((n|0)!=(h|0)){continue}break}}Ta(A,n);ea=s+8|0;ma=s+v|0;sa=R+8|0;N=b<<3;ta=v+R|0;a=v+8|0;ua=a+s|0;va=a+R|0;J=u(n,n);da=J<<3;F=(q|0)>1?q:1;ka=F<<3;z=2;S=.01;d=0;wa=(X|0)<2;while(1){a=d;if(!M){m=S+1;h=0;while(1){p=u(h,n);f:{if(a){p=(h+p<<3)+r|0;d=0;while(1){if((d|0)==(h|0)){t[p>>3]=m}d=d+1|0;if((n|0)!=(d|0)){continue}break}break f}w=(h+p<<3)+r|0;K=t[(h<<3)+A>>3];d=0;while(1){O=(d+p<<3)+r|0;t[O>>3]=t[O>>3]/(K*t[(d<<3)+A>>3]);if((d|0)==