// Generated by js_of_ocaml 3.5.2 (function(j){"use strict";var am=154,bs=219,bV=185,bL=115,ci=206,co=214,fu="Invalid_argument",fd="up",bU=170,dg=1255,bZ=192,c=255,br=196,fL=0x800,bu=123,F=245,df="jsError",ch=0x8000,ft="%ni",dD=152,dv=182,fK=256,cB=159,fc="End_of_file",bQ=233,f=238,cA=183,du=156,dC=163,fb="Failure",ah=173,dn=239,d=139,ao=0xff,fa=129,aK=209,dm=242,av=131,cg=218,bq=204,an=191,e$="CanvasForUniverse",cf=247,S=122,fs=167,fJ="rgba(",a8=145,f0=175,O="0",bp=165,de=194,bP=212,ay=181,bj=197,dt=0xf,Z=128,e_=0xdc00,fr="Sys_blocked_io",fZ="fd ",a4=125,s=248,x="camlinternalFormat.ml",ds=162,fI="Division_by_zero",fY=">",e9=203,bY=153,fX=1027,bd=148,e8="Sys_error",W=130,dl=226,dr=430,e7="g",ag=193,fq="%u",fH="%d",a3=118,bK=121,fG=119,dB=108,L=127,bO=1024,au=104,dk=198,aH=133,dA="e",e6=103,aF=120,fp=" : flags Open_rdonly and Open_wronly are not compatible",P=102,fW="([^/]*)",dd=512,y=240,a0="-",fF=340,e4="canvas",e5=0x7ff0,cn=216,fn="left",fo=" : file already exists",cv=101,fE="right",aZ=184,af=0xffffff,al=144,bJ=228,fm=524,e3="0x",fV="Out_of_memory",cm=190,cu=254,fU="index out of bounds",bo=100,e2="%Li",ct=300,fD=" : flags Open_text and Open_binary are not compatible",p=105,dj=168,aJ=230,fT=111,fl=208,fC=164,Y=180,e1=591,ax=0xffff,e=205,cs=188,aw=222,bc=158,a2=107,bn=160,a7=229,e0="down",cr=161,aO=143,fS="infinity",bi=1000,fQ=126,fR=142,eZ=136,K=224,l="",fB="Stack_overflow",cz=207,fk=6.28318530717958623,di="^",fj=223,bh=210,bX=955,bg=0x3f,aN=211,aY=137,fA="Not_found",dz=124,dc=227,bm=235,cl=166,cy=169,aM=150,Q=112,aX=220,X=140,fi="Match_failure",eY=1252,cq=174,a6=135,ce=199,eX="static/",fz=260,bt=252,fy=1000.,bf="round",a5=".",be="+",cx=147,fP=0xf0,eW="rgb(",fh=187,aG=179,fx=141,bW=171,aL=110,dy=116,fg="%li",bT=149,fw=1026,dx=213,ck=237,fv=202,eV="My Game",bS=232,eU=-34,bN=178,fO=-32,bR=106,ak=" ",a1=155,bl=186,ai=0x80,eT="Undefined_recursive_module",cj=138,bk=565,dh="nan",dq=215,ff=0xe0,aI=201,cw=117,dw=221,db=217,fe=0xdfff,cd=189,at="/",dp="compare: functional value",fN="Assert_failure",aW=134,eS="%i",cp=114,fM=755,aE=176,bM=225,r=250;function cJ(d,e,c){var b=new Array(c);for(var a=0;a=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?dT(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else if(b.t==2&&f==b.c.length){b.c+=d.t==4?dT(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)cD(b);var g=d.c,h=b.c;if(d.t==4)if(f<=e)for(var a=0;a=0;a--)h[f+a]=g[e+a];else{var i=Math.min(c,g.length-e);for(var a=0;a>=1;if(a==0)return c;b+=b;d++;if(d==9)b.slice(0,1)}}function bx(a){if(a.t==2)a.c+=bA(a.l-a.c.length,"\0");else a.c=dT(a.c,0,a.c.length);a.t=0}function gd(a){if(a.length<24){for(var b=0;bL)return false;return true}else return!/[^\x00-\x7f]/.test(a)}function dV(e){for(var j=l,c=l,g,f,h,a,b=0,i=e.length;bdd){c.substr(0,1);j+=c;c=l;j+=e.slice(b,d)}else c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else if(a>ax)c+=String.fromCharCode(0xd7c0+(a>>10),e_+(a&0x3FF));else c+=String.fromCharCode(a);if(c.length>bO){c.substr(0,1);j+=c;c=l}}return j+c}function m$(a){switch(a.t){case 9:return a.c;default:bx(a);case 0:if(gd(a.c)){a.t=9;return a.c}a.t=8;case 8:return dV(a.c)}}function _(c,a,b){this.t=c;this.c=a;this.l=b}_.prototype.toString=function(){return m$(this)};_.prototype.slice=function(){var a=this.t==4?this.c.slice():this.c;return new _(this.t,a,this.l)};function b(a){return new _(0,a,a.length)}function dR(c,a){m4(c,b(a))}var v=[0];function E(a){dR(v.Invalid_argument,a)}function dS(){E(fU)}function q(a,c,b){b&=ao;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}cD(a)}a.c[c]=b;return 0}function bw(b,a,c){if(a>>>0>=b.l)dS();return q(b,a,c)}function b1(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case 0:return a.c.charCodeAt(b);case 4:return a.c[b]}}function ng(c,e){var d=c.length,b=new Array(d+1),a=0;for(;a=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function z(a){if(a<0)E("Bytes.create");return new _(a?2:9,l,a)}function my(a,c,b,d){if(b>0)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=l;a.t=2}else{a.c=bA(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)cD(a);for(b+=c;c31)E("format_int: format too long");var a={justify:be,signstyle:a0,filler:ak,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var c=0;c=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function dI(a,f){if(a.uppercase)f=f.toUpperCase();var e=f.length;if(a.signedconv&&(a.sign<0||a.signstyle!=a0))e++;if(a.alternate){if(a.base==8)e+=1;if(a.base==16)e+=2}var c=l;if(a.justify==be&&a.filler==ak)for(var d=e;d20){c-=20;a/=Math.pow(10,c);a+=new Array(c+1).join(O);if(b>0)a=a+a5+new Array(b+1).join(O);return a}else return a.toFixed(b)}}var a,e=dQ(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=dh;e.filler=ak}else if(!isFinite(c)){a="inf";e.filler=ak}else switch(e.conv){case"e":var a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==dA)a=a.slice(0,b-1)+O+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var h=a.indexOf(dA),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var b=h-1;while(a.charAt(b)==O)b--;if(a.charAt(b)==a5)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==dA)a=a.slice(0,b-1)+O+a.slice(b-1);break}else{var f=d;if(g<0){f-=g+1;a=c.toFixed(f)}else while(a=c.toFixed(f),a.length>d+1)f--;if(f){var b=a.length-1;while(a.charAt(b)==O)b--;if(a.charAt(b)==a5)b--;a=a.slice(0,b+1)}}break}return dI(e,a)}function cE(e,c){if(b6(e)==fH)return b(l+c);var a=dQ(e);if(c<0)if(a.signedconv){a.sign=-1;c=-c}else c>>>=0;var d=c.toString(a.base);if(a.prec>=0){a.filler=ak;var f=a.prec-d.length;if(f>0)d=bA(f,O)+d}return dI(a,d)}var m2=0;function by(){return m2++}function b3(a){dR(v.Failure,a)}if(j.process&&j.process.cwd)var b2=j.process.cwd().replace(/\\/g,at);else var b2="/static";if(b2.slice(-1)!==at)b2+=at;function mV(a){a=a instanceof _?a.toString():a;if(a.charCodeAt(0)!=47)a=b2+a;var d=a.split(at),b=[];for(var c=0;c1)b.pop();break;case".":break;case"":if(b.length==0)b.push(l);break;default:b.push(d[c]);break}b.orig=a;return b}function ab(a){dR(v.Sys_error,a)}function m3(a){a=a instanceof _?a.toString():a;ab(a+": No such file or directory")}function m7(a){return new _(4,a,a.length)}function mw(b,a){if(a>>>0>=b.l)dS();return b1(b,a)}function aa(a){return a.l}function f1(){}function G(a){this.data=a}G.prototype=new f1();G.prototype.truncate=function(a){var b=this.data;this.data=z(a|0);az(b,0,this.data,0,a)};G.prototype.length=function(){return aa(this.data)};G.prototype.write=function(b,d,g,a){var c=this.length();if(b+a>=c){var e=z(b+a),f=this.data;this.data=e;az(f,0,this.data,0,c)}az(d,g,this.data,b,a);return 0};G.prototype.read=function(c,a,d,b){var e=this.length();az(this.data,c,a,d,b);return 0};G.prototype.read_one=function(a){return mw(this.data,a)};G.prototype.close=function(){};G.prototype.constructor=G;function $(b,a){this.content={};this.root=b;this.lookupFun=a}$.prototype.nm=function(a){return this.root+a};$.prototype.lookup=function(a){if(!this.content[a]&&this.lookupFun){var c=this.lookupFun(b(this.root),b(a));if(c!==0)this.content[a]=new G(c[1])}};$.prototype.exists=function(a){if(a==l)return 1;var c=a+at,d=new RegExp(di+c);for(var b in this.content)if(b.match(d))return 1;this.lookup(a);return this.content[a]?1:0};$.prototype.readdir=function(c){var f=c==l?l:c+at,g=new RegExp(di+f+fW),d={},b=[];for(var e in this.content){var a=e.match(g);if(a&&!d[a[1]]){d[a[1]]=true;b.push(a[1])}}return b};$.prototype.is_dir=function(a){var d=a==l?l:a+at,e=new RegExp(di+d+fW),f=[];for(var c in this.content){var b=c.match(e);if(b)return 1}return 0};$.prototype.unlink=function(a){var b=this.content[a]?true:false;delete this.content[a];return b};$.prototype.open=function(a,b){if(b.rdonly&&b.wronly)ab(this.nm(a)+fp);if(b.text&&b.binary)ab(this.nm(a)+fD);this.lookup(a);if(this.content[a]){if(this.is_dir(a))ab(this.nm(a)+" : is a directory");if(b.create&&b.excl)ab(this.nm(a)+fo);var c=this.content[a];if(b.truncate)c.truncate();return c}else if(b.create){this.content[a]=new G(z(0));return this.content[a]}else m3(this.nm(a))};$.prototype.register=function(c,a){if(this.content[c])ab(this.nm(c)+fo);if(a instanceof _)this.content[c]=new G(a);else if(a instanceof Array)this.content[c]=new G(m7(a));else if(a.toString){var d=b(a.toString());this.content[c]=new G(d)}};$.prototype.constructor=$;function f3(a){if(a.t!=4)cD(a);return a.c}var dE=j.Buffer;function aq(a){this.fs=require("fs");this.fd=a}aq.prototype=new f1();aq.prototype.truncate=function(a){this.fs.ftruncateSync(this.fd,a|0)};aq.prototype.length=function(){return this.fs.fstatSync(this.fd).size};aq.prototype.write=function(f,b,c,e){var a=f3(b);if(!(a instanceof j.Uint8Array))a=new(j.Uint8Array)(a);var d=dE.from(a);this.fs.writeSync(this.fd,d,c,e,f);return 0};aq.prototype.read=function(g,d,c,f){var a=f3(d);if(!(a instanceof j.Uint8Array))a=new(j.Uint8Array)(a);var e=dE.from(a);this.fs.readSync(this.fd,e,c,f,g);for(var b=0;b=1)while(a>=2){a/=2;b++}else while(a<1){a*=2;b--}return b}function dJ(c){var a=new(j.Float32Array)(1);a[0]=c;var b=new(j.Int32Array)(a.buffer);return b[0]|0}function cG(b,d,a){return[c,b,d,a]}function cF(a){if(!isFinite(a)){if(isNaN(a))return cG(1,0,e5);return a>0?cG(0,0,e5):cG(0,0,0xfff0)}var f=a==0&&1/a==-Infinity?ch:a>=0?0:ch;if(f)a=-a;var b=ne(a)+1023;if(b<=0){b=0;a/=Math.pow(2,-fw)}else{a/=Math.pow(2,b-fX);if(a<16){a*=2;b-=1}if(b==0)a/=2}var d=Math.pow(2,24),c=a|0;a=(a-c)*d;var e=a|0;a=(a-e)*d;var g=a|0;c=c&dt|f|b<<4;return cG(g,e,c)}function b5(a){return[a[3]>>8,a[3]&ao,a[2]>>16,a[2]>>8&ao,a[2]&ao,a[1]>>16,a[1]>>8&ao,a[1]&ao]}function mv(d,b,g){d.write(32,b.dims.length);d.write(32,b.kind|b.layout<<8);for(var a=0;a>4;if(c==2047)return(f|g|b&dt)==0?b&ch?-Infinity:Infinity:NaN;var e=Math.pow(2,-24),a=(f*e+g)*e+(b&dt);if(c>0){a+=16;a*=Math.pow(2,c-fX)}else a*=Math.pow(2,-fw);if(b&ch)a=-a;return a}function dG(b){var d=b.length,c=1;for(var a=0;a>>24&ao|(a&ax)<<8,a>>>16&ax]}function dM(a){return a[2]>>>8&ax|a[3]<<16}function dN(a){return a[1]|(a[2]&ao)<<24}function dF(){E(fU)}function aP(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}aP.prototype.caml_custom="_bigarray";aP.prototype.offset=function(b){var c=0;if(typeof b==="number")b=[b];if(!(b instanceof Array))E("bigarray.js: invalid offset");if(this.dims.length!=b.length)E("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var a=0;a=this.dims[a])dF();c=c*this.dims[a]+b[a]}else for(var a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])dF();c=c*this.dims[a]+(b[a]-1)}return c};aP.prototype.get=function(a){switch(this.kind){case 7:var d=this.data[a*2+0],b=this.data[a*2+1];return mE(d,b);case 10:case 11:var e=this.data[a*2+0],c=this.data[a*2+1];return[cu,e,c];default:return this.data[a]}};aP.prototype.set=function(a,b){switch(this.kind){case 7:this.data[a*2+0]=dN(b);this.data[a*2+1]=dM(b);break;case 10:case 11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};aP.prototype.fill=function(b){switch(this.kind){case 7:var c=dN(b),e=dM(b);if(c==e)this.data.fill(c);else for(var a=0;ad)return 1;if(c!=d){if(!g)return NaN;if(c==c)return 1;if(d==d)return-1}}break;case 7:for(var a=0;ab.data[a+1])return 1;if(this.data[a]>>>0>>0)return-1;if(this.data[a]>>>0>b.data[a]>>>0)return 1}break;case 2:case 3:case 4:case 5:case 6:case 8:case 9:case 12:for(var a=0;ab.data[a])return 1}break}return 0};function bv(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}bv.prototype=new aP();bv.prototype.offset=function(a){if(typeof a!=="number")if(a instanceof Array&&a.length==1)a=a[0];else E("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])dF();return a};bv.prototype.get=function(a){return this.data[a]};bv.prototype.set=function(a,b){this.data[a]=b;return 0};bv.prototype.fill=function(a){this.data.fill(a);return 0};function f4(c,d,a,b){var e=f5(c);if(dG(a)*e!=b.length)E("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new bv(c,d,a,b);return new aP(c,d,a,b)}function mt(b,r){var j=b.read32s();if(j<0||j>16)b3("input_value: wrong number of bigarray dimensions");var o=b.read32s(),i=o&ao,n=o>>8&1,h=[];for(var a=0;a>16)*a<<16)+(b&ax)*a|0};var gf=Math.imul;function aB(b,a){a=gf(a,0xcc9e2d51|0);a=a<<15|a>>>32-15;a=gf(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function mB(a,b){a=aB(a,dN(b));a=aB(a,dM(b));return a}function f$(a,b){return mB(a,cF(b))}function mu(c){var b=dG(c.dims),d=0;switch(c.kind){case 2:case 3:case 12:if(b>fK)b=fK;var e=0,a=0;for(a=0;a+4<=c.data.length;a+=4){e=c.data[a+0]|c.data[a+1]<<8|c.data[a+2]<<16|c.data[a+3]<<24;d=aB(d,e)}e=0;switch(b&3){case 3:e=c.data[a+2]<<16;case 2:e|=c.data[a+1]<<8;case 1:e|=c.data[a+0];d=aB(d,e)}break;case 4:case 5:if(b>Z)b=Z;var e=0,a=0;for(a=0;a+2<=c.data.length;a+=2){e=c.data[a+0]|c.data[a+1]<<16;d=aB(d,e)}if((b&1)!=0)d=aB(d,c.data[a]);break;case 6:if(b>64)b=64;for(var a=0;a64)b=64;for(var a=0;a32)b=32;b*=2;for(var a=0;a64)b=64;for(var a=0;a32)b=32;for(var a=0;ad)return 1;if(cb[2])return 1;if(a[2]b[1])return 1;if(a[1]>>8&ax|a[3]<<16;return c^b}var f9={"_j":{deserialize:mQ,serialize:mK,fixed_length:8,compare:ga,hash:mG},"_i":{deserialize:mD,fixed_length:4},"_n":{deserialize:m0,fixed_length:4},"_bigarray":{deserialize:mt,serialize:mv,compare:mr,hash:mu}};function dH(a){return f9[a.caml_custom]&&f9[a.caml_custom].compare}function f6(f,c,d,e){var b=dH(c);if(b){var a=d>0?b(c,f,e):b(f,c,e);if(e&&a!=a)return d;if(+a!=+a)return+a;if((a|0)!=0)return a|0}return d}function f7(a){if(typeof a==="number")return bi;else if(a instanceof _)return bt;else if(a instanceof Array&&a[0]===a[0]>>>0&&a[0]<=c){var b=a[0]|0;return b==cu?0:b}else if(a instanceof String)return eY;else if(typeof a=="string")return eY;else if(a instanceof Number)return bi;else if(a&&a.caml_custom)return dg;else if(a&&a.compare)return 1256;else if(typeof a=="function")return 1247;else if(typeof a=="symbol")return 1251;return 1001}function mR(a,b){if(ab.c?1:0}function cC(a,b,d){var e=[];for(;;){if(!(d&&a===b)){var f=f7(a);if(f==r){a=a[1];continue}var g=f7(b);if(g==r){b=b[1];continue}if(f!==g){if(f==bi){if(g==dg)return f6(a,b,-1,d);return-1}if(g==bi){if(f==dg)return f6(b,a,1,d);return 1}return fb)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case 1001:if(ab)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case 1251:if(a!==b){if(!d)return NaN;return 1}break;case 1252:var a=a.toString(),b=b.toString();if(a!==b){if(ab)return 1}break;case 246:case 254:default:if(a.length!=b.length)return a.length1)e.push(a,b,1);break}}if(e.length==0)return 0;var h=e.pop();b=e.pop();a=e.pop();if(h+1=0)}function na(e){for(var f=l,b=f,a,h,c=0,g=e.length;cdd){b.substr(0,1);f+=b;b=l;f+=e.slice(c,d)}else b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(ai|a&bg)}else if(a<0xd800||a>=fe)b+=String.fromCharCode(ff|a>>12,ai|a>>6&bg,ai|a&bg);else if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))fe)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(fP|a>>18,ai|a>>12&bg,ai|a>>6&bg,ai|a&bg)}if(b.length>bO){b.substr(0,1);f+=b;b=l}}return f+b}function aQ(a){var b=9;if(!gd(a))b=8,a=na(a);return new _(b,a,a.length)}function mC(a,c,k){if(!isFinite(a)){if(isNaN(a))return aQ(dh);return aQ(a>0?fS:"-infinity")}var i=a==0&&1/a==-Infinity?1:a>=0?0:1;if(i)a=-a;var d=0;if(a==0);else if(a<1)while(a<1&&d>-1022){a*=2;d--}else while(a>=2){a/=2;d++}var j=d<0?l:be,e=l;if(i)e=a0;else switch(k){case 43:e=be;break;case 32:e=ak;break;default:break}if(c>=0&&c<13){var g=Math.pow(2,c*4);a=Math.round(a*g)/g}var b=a.toString(16);if(c>=0){var h=b.indexOf(a5);if(h<0)b+=a5+bA(c,O);else{var f=h+1+c;if(b.length>24&af,a>>31&ax]}function gi(d){var c=d.length,b=new Array(c);for(var a=0;a>24),f=a[3]-b[3]+(e>>24);return[c,d&af,e&af,f&ax]}function gc(a,b){if(a[3]>b[3])return 1;if(a[3]b[2])return 1;if(a[2]b[1])return 1;if(a[1]>23;a[2]=(a[2]<<1|a[1]>>23)⁡a[1]=a[1]<<1&af}function mJ(a){a[1]=(a[1]>>>1|a[2]<<23)⁡a[2]=(a[2]>>>1|a[3]<<23)⁡a[3]=a[3]>>>1}function mP(f,g){var d=0,b=gi(f),a=gi(g),e=[c,0,0,0];while(gc(b,a)>0){d++;gb(a)}while(d>=0){d--;gb(e);if(gc(b,a)>=0){e[1]++;b=mN(b,a)}mJ(a)}return[0,e,b]}function mO(a){return a[1]|a[2]<<24}function mH(a){return a[3]<<16<0}function mL(a){var b=-a[1],d=-a[2]+(b>>24),e=-a[3]+(d>>24);return[c,b&af,d&af,e&ax]}function mF(g,c){var a=dQ(g);if(a.signedconv&&mH(c)){a.sign=-1;c=mL(c)}var b=l,h=mM(a.base),f="0123456789abcdef";do{var e=mP(c,h);c=e[1];b=f.charAt(mO(e[2]))+b}while(!mI(c));if(a.prec>=0){a.filler=ak;var d=a.prec-b.length;if(d>0)b=bA(d,O)+b}return dI(a,b)}function mS(a){return function(){return arguments.length>0?aA(a,arguments):aA(a,[undefined])}}function dO(a,b){return+(cC(a,b,false)<=0)}function mT(a,b){return+(cC(a,b,false)<0)}function mU(c){var b=0;for(var a=c.length-1;a>=0;a--){var d=c[a];b=[0,d,b]}return b}var ar=new Array();function dP(c){var a=ar[c];if(!a.opened)ab("Cannot flush a closed channel");if(!a.buffer||a.buffer==l)return 0;if(a.fd&&v.fds[a.fd]&&v.fds[a.fd].output){var b=v.fds[a.fd].output;switch(b.length){case 2:b(c,a.buffer);break;default:b(a.buffer)}}a.buffer=l;return 0}function I(a){return a.l}function gk(e,f){var a=ar[e],d=b(f),c=I(d);a.file.write(a.offset,d,0,c);a.offset+=c;return 0}function nc(a){var a=dV(a),b=j;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var c=b.console;c&&c.error&&c.error(a)}}function nd(a){var a=dV(a),b=j;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var c=b.console;c&&c.log&&c.log(a)}}function cI(c,e,d,a){if(v.fds===undefined)v.fds=new Array();a=a?a:{};var b={};b.file=d;b.offset=a.append?d.length():0;b.flags=a;b.output=e;v.fds[c]=b;if(!v.fd_last_idx||c>v.fd_last_idx)v.fd_last_idx=c;return c}function nj(c,b,g){var a={};while(b){switch(b[1]){case 0:a.rdonly=1;break;case 1:a.wronly=1;break;case 2:a.append=1;break;case 3:a.create=1;break;case 4:a.truncate=1;break;case 5:a.excl=1;break;case 6:a.binary=1;break;case 7:a.text=1;break;case 8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)ab(c.toString()+fp);if(a.text&&a.binary)ab(c.toString()+fD);var d=gm(c),e=d.device.open(d.rest,a),f=v.fd_last_idx?v.fd_last_idx:0;return cI(f+1,gk,e,a)}cI(0,gk,new G(z(0)));cI(1,nd,new G(z(0)));cI(2,nc,new G(z(0)));function mW(c){var b=v.fds[c];if(b.flags.wronly)ab(fZ+c+" is writeonly");var a={file:b.file,offset:b.offset,fd:c,opened:true,out:false,refill:null};ar[a.fd]=a;return a.fd}function ge(c){var b=v.fds[c];if(b.flags.rdonly)ab(fZ+c+" is readonly");var a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:l};ar[a.fd]=a;return a.fd}function mX(){var b=0;for(var a=0;a>>0)return a[0];else if(a instanceof _)return bt;else if(a instanceof Function||typeof a=="function")return cf;else if(a&&a.caml_custom)return c;else return bi}function ac(b,c,a){if(a&&j.toplevelReloc)b=j.toplevelReloc(a);v[b+1]=c;if(a)v[a]=c}var gh={};function m5(a,b){gh[b6(a)]=b;return 0}function cH(a,b){if(a===b)return 1;a.t&6&&bx(a);b.t&6&&bx(b);return a.c==b.c?1:0}function m8(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case 0:return a.c.charCodeAt(b);case 4:return a.c[b]}}function T(b,a){if(a>>>0>=b.l)dS();return m8(b,a)}function m9(){return 0x7FFFFFFF/4|0}var f2=function(){var a=j,f="a.out",b=[];if(a.process&&a.process.argv&&a.process.argv.length>1){var c=a.process.argv;f=c[1];b=cJ(c,2,c.length-2)}var g=aQ(f),e=[0,g];for(var d=0;d>>0?1:0:65<=d?0:1;else{if(32===d)var f=1;else if(43<=d)switch(d-43|0){case 5:if(a<(c+2|0))if(1>>0)if(93<=r)var s=0,l=0;else var l=1;else if(56<(r-1|0)>>>0)var s=1,l=0;else var l=1;if(l){var j=j+1|0;continue}}else var s=11<=g?13===g?1:0:8<=g?1:0;var x=s?1:1}if(x){var a=[0,0],v=aa(d)-1|0,B=0;if(!(v<0)){var i=B;for(;;){var f=b1(d,i);if(32<=f){var o=f+eU|0;if(58>>0)if(93<=o)var m=0,n=0;else var n=1;else if(56<(o-1|0)>>>0)var m=1,n=0;else var n=1;if(n)var p=1,m=2}else var m=11<=f?13===f?1:0:8<=f?1:0;switch(m){case 0:var p=4;break;case 1:var p=2;break}a[1]=a[1]+p|0;var E=i+1|0;if(v!==i){var i=E;continue}break}}if(a[1]===aa(d)){var t=aa(d),u=z(t);az(d,0,u,0,t);var k=u}else{var b=z(a[1]);a[1]=0;var w=aa(d)-1|0,C=0;if(!(w<0)){var h=C;for(;;){var c=b1(d,h);if(35<=c)var e=92===c?1:L<=c?0:2;else if(32<=c)var e=34<=c?1:2;else if(14<=c)var e=0;else switch(c){case 8:q(b,a[1],92);a[1]++;q(b,a[1],98);var e=3;break;case 9:q(b,a[1],92);a[1]++;q(b,a[1],dy);var e=3;break;case 10:q(b,a[1],92);a[1]++;q(b,a[1],aL);var e=3;break;case 13:q(b,a[1],92);a[1]++;q(b,a[1],cp);var e=3;break;default:var e=0}switch(e){case 0:q(b,a[1],92);a[1]++;q(b,a[1],48+(c/bo|0)|0);a[1]++;q(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;q(b,a[1],48+(c%10|0)|0);break;case 1:q(b,a[1],92);a[1]++;q(b,a[1],c);break;case 2:q(b,a[1],c);break}a[1]++;var D=h+1|0;if(w!==h){var h=D;continue}break}}var k=b}}else var k=d;var y=I(k),A=aS(y+2|0,34);b0(k,0,A,1,y);return A}}function ia(c,b){switch(c){case 0:var a=hl;break;case 1:var a=hm;break;case 2:var a=hn;break;case 3:var a=ho;break;case 4:var a=hp;break;case 5:var a=hq;break;case 6:var a=hr;break;case 7:var a=hs;break;case 8:var a=ht;break;case 9:var a=hu;break;case 10:var a=hv;break;case 11:var a=hw;break;default:var a=hx}return cE(a,b)}function ib(c,b){switch(c){case 0:var a=hL;break;case 1:var a=hM;break;case 2:var a=hN;break;case 3:var a=hO;break;case 4:var a=hP;break;case 5:var a=hQ;break;case 6:var a=hR;break;case 7:var a=hS;break;case 8:var a=hT;break;case 9:var a=hU;break;case 10:var a=hV;break;case 11:var a=hW;break;default:var a=hX}return cE(a,b)}function ic(c,b){switch(c){case 0:var a=hY;break;case 1:var a=hZ;break;case 2:var a=h0;break;case 3:var a=h1;break;case 4:var a=h2;break;case 5:var a=h3;break;case 6:var a=h4;break;case 7:var a=h5;break;case 8:var a=h6;break;case 9:var a=h7;break;case 10:var a=h8;break;case 11:var a=h9;break;default:var a=h_}return cE(a,b)}function id(c,b){switch(c){case 0:var a=hy;break;case 1:var a=hz;break;case 2:var a=hA;break;case 3:var a=hB;break;case 4:var a=hC;break;case 5:var a=hD;break;case 6:var a=hE;break;case 7:var a=hF;break;case 8:var a=hG;break;case 9:var a=hH;break;case 10:var a=hI;break;case 11:var a=hJ;break;default:var a=hK}return mF(a,b)}function as(c,u,h){if(16<=c){if(17<=c)switch(c-17|0){case 2:var k=0;break;case 0:case 3:var n=43,k=1;break;default:var n=32,k=1}else var k=0;if(!k)var n=45;var i=mC(h,u,n);if(19<=c){var m=aa(i);if(0===m)return i;var r=z(m),s=m-1|0,y=0;if(!(s<0)){var e=y;for(;;){var g=b1(i,e);if(97<=g)if(S>>0?55===o?1:0:21<(o-1|0)>>>0?1:0;if(!E){var j=j+1|0;continue}var x=1}return x?f:aC(f,ii)}}return f}function b9(g,f,e,d,h,c,b,a){if(typeof h==="number"){if(typeof c==="number")return 0===c?function(c){return i(g,f,[4,e,V(b,a,c)],d)}:function(h,c){return i(g,f,[4,e,a9(h,V(b,a,c))],d)};var m=c[1];return function(c){return i(g,f,[4,e,a9(m,V(b,a,c))],d)}}else{if(0===h[0]){var j=h[2],k=h[1];if(typeof c==="number")return 0===c?function(c){return i(g,f,[4,e,N(k,j,V(b,a,c))],d)}:function(h,c){return i(g,f,[4,e,N(k,j,a9(h,V(b,a,c)))],d)};var n=c[1];return function(c){return i(g,f,[4,e,N(k,j,a9(n,V(b,a,c)))],d)}}var l=h[1];if(typeof c==="number")return 0===c?function(h,c){return i(g,f,[4,e,N(l,h,V(b,a,c))],d)}:function(j,h,c){return i(g,f,[4,e,N(l,j,a9(h,V(b,a,c)))],d)};var o=c[1];return function(h,c){return i(g,f,[4,e,N(l,h,a9(o,V(b,a,c)))],d)}}}function d6(f,e,d,c,a,b){if(typeof a==="number")return function(a){return i(f,e,[4,d,g(b,a)],c)};else{if(0===a[0]){var h=a[2],j=a[1];return function(a){return i(f,e,[4,d,N(j,h,g(b,a))],c)}}var k=a[1];return function(h,a){return i(f,e,[4,d,N(k,h,g(b,a))],c)}}}function bI(e,H,d,G,F){var b=H,a=G,c=F;for(;;)if(typeof c==="number")return V(b,d,a);else switch(c[0]){case 0:var J=c[1];return function(c){return i(b,d,[5,a,c],J)};case 1:var K=c[1];return function(g){var c=dY(g),e=I(c),f=aS(e+2|0,39);b0(c,0,f,1,e);return i(b,d,[4,a,f],K)};case 2:var L=c[2],M=c[1];return d6(b,d,a,L,M,function(a){return a});case 3:return d6(b,d,a,c[2],c[1],hk);case 4:return b9(b,d,a,c[4],c[2],c[3],ia,c[1]);case 5:return b9(b,d,a,c[4],c[2],c[3],ib,c[1]);case 6:return b9(b,d,a,c[4],c[2],c[3],ic,c[1]);case 7:return b9(b,d,a,c[4],c[2],c[3],id,c[1]);case 8:var h=c[4],j=c[3],p=c[2],l=c[1];if(typeof p==="number"){if(typeof j==="number")return 0===j?function(c){return i(b,d,[4,a,as(l,cP,c)],h)}:function(e,c){return i(b,d,[4,a,as(l,e,c)],h)};var ae=j[1];return function(c){return i(b,d,[4,a,as(l,ae,c)],h)}}else{if(0===p[0]){var s=p[2],v=p[1];if(typeof j==="number")return 0===j?function(c){return i(b,d,[4,a,N(v,s,as(l,cP,c))],h)}:function(e,c){return i(b,d,[4,a,N(v,s,as(l,e,c))],h)};var af=j[1];return function(c){return i(b,d,[4,a,N(v,s,as(l,af,c))],h)}}var w=p[1];if(typeof j==="number")return 0===j?function(e,c){return i(b,d,[4,a,N(w,e,as(l,cP,c))],h)}:function(f,e,c){return i(b,d,[4,a,N(w,f,as(l,e,c))],h)};var ag=j[1];return function(e,c){return i(b,d,[4,a,N(w,e,as(l,ag,c))],h)}}case 9:var O=c[1];return function(c){var e=c?gp:gq;return i(b,d,[4,a,e],O)};case 10:var a=[7,a],c=c[1];continue;case 11:var a=[2,a,c[1]],c=c[2];continue;case 12:var a=[3,a,c[1]],c=c[2];continue;case 13:var P=c[3],Q=c[2],x=d3(16);cQ(x,Q);var E=d5(x);return function(c){return i(b,d,[4,a,E],P)};case 14:var R=c[3],S=c[2];return function(e){var f=e[1],c=m(f,o(u(S)));if(typeof c[2]==="number")return i(b,d,a,n(c[1],R));throw D};case 15:var T=c[1];return function(e,c){return i(b,d,[6,a,function(a){return V(e,a,c)}],T)};case 16:var U=c[1];return function(c){return i(b,d,[6,a,c],U)};case 17:var a=[0,a,c[1]],c=c[2];continue;case 18:var r=c[1];if(0===r[0]){var W=c[2],X=r[1][1],Y=0,b=function(c,d,e){return function(b,a){return i(d,b,[1,c,[0,a]],e)}}(a,b,W),a=Y,c=X;continue}var Z=c[2],_=r[1][1],$=0,b=function(c,d,e){return function(b,a){return i(d,b,[1,c,[1,a]],e)}}(a,b,Z),a=$,c=_;continue;case 19:throw[0,t,ik];case 20:var aa=c[3],ab=[8,a,il];return function(a){return i(b,d,ab,aa)};case 21:var ac=c[2];return function(c){return i(b,d,[4,a,cE(im,c)],ac)};case 22:var ad=c[1];return function(c){return i(b,d,[5,a,c],ad)};case 23:var f=c[2],q=c[1];if(typeof q==="number")switch(q){case 0:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 1:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 2:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 3:throw[0,t,io];default:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f])}else switch(q[0]){case 0:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 1:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 2:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 3:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 4:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 5:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 6:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 7:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);case 8:var C=q[2];return e<50?c$(e+1|0,b,d,a,C,f):A(c$,[0,b,d,a,C,f]);case 9:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f]);default:return e<50?k(e+1|0,b,d,a,f):A(k,[0,b,d,a,f])}default:var y=c[3],z=c[1],B=g(c[2],0);return e<50?c_(e+1|0,b,d,a,y,z,B):A(c_,[0,b,d,a,y,z,B])}}function c$(f,e,d,c,a,b){if(typeof a==="number")return f<50?k(f+1|0,e,d,c,b):A(k,[0,e,d,c,b]);else switch(a[0]){case 0:var g=a[1];return function(a){return R(e,d,c,g,b)};case 1:var h=a[1];return function(a){return R(e,d,c,h,b)};case 2:var i=a[1];return function(a){return R(e,d,c,i,b)};case 3:var j=a[1];return function(a){return R(e,d,c,j,b)};case 4:var l=a[1];return function(a){return R(e,d,c,l,b)};case 5:var m=a[1];return function(a){return R(e,d,c,m,b)};case 6:var n=a[1];return function(a){return R(e,d,c,n,b)};case 7:var o=a[1];return function(a){return R(e,d,c,o,b)};case 8:var p=a[2];return function(a){return R(e,d,c,p,b)};case 9:var q=a[3],r=a[2],s=w(u(a[1]),r);return function(a){return R(e,d,c,H(s,q),b)};case 10:var v=a[1];return function(f,a){return R(e,d,c,v,b)};case 11:var x=a[1];return function(a){return R(e,d,c,x,b)};case 12:var y=a[1];return function(a){return R(e,d,c,y,b)};case 13:throw[0,t,ip];default:throw[0,t,iq]}}function k(e,c,b,f,a){var d=[8,f,ir];return e<50?bI(e+1|0,c,b,d,a):A(bI,[0,c,b,d,a])}function c_(i,c,b,f,a,e,d){if(e){var j=e[1];return function(e){return ij(c,b,f,a,j,g(d,e))}}var h=[4,f,d];return i<50?bI(i+1|0,c,b,h,a):A(bI,[0,c,b,h,a])}function i(a,b,c,d){return dU(bI(0,a,b,c,d))}function R(a,b,c,d,e){return dU(c$(0,a,b,c,d,e))}function ij(a,b,c,d,e,f){return dU(c_(0,a,b,c,d,e,f))}function aD(b,i){var a=i;for(;;)if(typeof a==="number")return 0;else switch(a[0]){case 0:var d=a[2],j=a[1];if(typeof d==="number")switch(d){case 0:var c=gG;break;case 1:var c=gH;break;case 2:var c=gI;break;case 3:var c=gJ;break;case 4:var c=gK;break;case 5:var c=gL;break;default:var c=gM}else switch(d[0]){case 0:var c=d[1];break;case 1:var c=d[1];break;default:var c=aC(gN,d1(1,d[1]))}aD(b,j);return bC(b,c);case 1:var f=a[2],h=a[1];if(0===f[0]){var k=f[1];aD(b,h);bC(b,is);var a=k;continue}var l=f[1];aD(b,h);bC(b,it);var a=l;continue;case 6:var o=a[2];aD(b,a[1]);return bC(b,g(o,0));case 7:var a=a[1];continue;case 8:var p=a[2];aD(b,a[1]);return aR(p);case 2:case 4:var m=a[2];aD(b,a[1]);return bC(b,m);default:var n=a[2];aD(b,a[1]);var e=b[2];if(b[3]<=e)cO(b,1);q(b[1],e,n);b[2]=e+1|0;return 0}}function a_(b){var a=b[1];return i(function(c,b){var a=d2(64);aD(a,b);return dZ(a[1],0,a[2])},0,0,a)}var d7=[0,0];function d8(a){d7[1]=[0,a,d7[1]];return 0}function d9(d,a){var b=[0,d,0],c=a[1];return c?(a[1]=b,c[2]=b,0):(a[1]=b,a[2]=b,0)}var cS=[s,iu,by(0)];function d_(a){var b=a[2];if(b){var c=b[2],d=b[1];a[2]=c;if(0===c)a[1]=0;return d}throw cS}function cT(a,b){a[13]=a[13]+b[3]|0;return d9(b,a[27])}var d$=1000000010;function cU(b,a){return aV(b[17],a,0,I(a))}function cV(a){return g(a[19],0)}function ea(b,a){return g(b[20],a)}function aT(a,e,d){cV(a);a[11]=1;var b=(a[6]-d|0)+e|0,c=a[8],f=dO(c,b)?c:b;a[10]=f;a[9]=a[6]-a[10]|0;return ea(a,a[10])}function eb(b,a){return aT(b,0,a)}function a$(a,b){a[9]=a[9]-b|0;return ea(a,b)}function iv(a){var b=a[2];if(b){var c=b[1],d=c[2],e=c[1],f=a[9]>>0)var e=0;else{switch(g){case 0:var b=lF,a=1;break;case 5:var b=lG,a=1;break;case 6:var b=lH,a=1;break;case 7:var b=lI,a=1;break;case 8:var b=lJ,a=1;break;default:var e=0,a=0}if(a)var i=b,e=1}if(!e){if(0<=d)if(c