// Generated by js_of_ocaml 3.0.1 (function(l){"use strict";var bX=" : flags Open_text and Open_binary are not compatible",ci=254,bU="3",bV=2147483647,bW=224,b_="Sys_error",ch="Invalid_argument",bJ="\xe7\xac\xac",cg='"',T="\xe5\xbc\x95\xe6\x95\xb0",bT=250,cf="<",af=1024,bS=260,ce="fs",bI="recipe.ml",S="\xe5\x9e\x8b",aO="jsError",bR="input",bH=785140586,c="\xe5\x80\xa4",b8=" = ",b9=57343,aq=512,b7=982028505,cd="End_of_file",ad=" ",cc="Failure",bG="Undefined_recursive_module",b6=" : flags Open_rdonly and Open_wronly are not compatible",aK=256,bQ="5",b5="([^/]*)",bP="Stack_overflow",e="",p=128,aL="^",bF=56320,ae=100,b2=" : file already exists",b3=240,b4=2048,n=248,bN="Not_found",bO="undefined",b1=" *)\n",bE="Assert_failure",E="/",ca="Sys_blocked_io",cb="fd ",b0="Out_of_memory",bM="Match_failure",aM="\n",bY="4",bZ="index out of bounds",bK=" -> ",bL="static/",aN=">",b$="Division_by_zero";function gP(d,b,e,c,f){if(c<=b)for(var a=1;a<=f;a++)e[c+a]=d[b+a];else for(var a=f;a>=1;a--)e[c+a]=d[b+a];return 0}function aW(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?aV(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?aV(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)as(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(b==0)return c;a+=a;d++;if(d==9)a.slice(0,1)}}function U(a){if(a.t==2)a.c+=ct(a.l-a.c.length,"\0");else a.c=aV(a.c,0,a.c.length);a.t=0}function cl(a){if(a.length<24){for(var b=0;b127)return false;return true}else return!/[^\x00-\x7f]/.test(a)}function hd(f){for(var k=e,c=e,h,g,i,a,b=0,j=f.length;baq){c.substr(0,1);k+=c;c=e;k+=f.slice(b,d)}else c+=f.slice(b,d);if(d==j)break;b=d}a=1;if(++b=55295&&a<57344)a=2}else{a=3;if(++b1114111)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else if(a>65535)c+=String.fromCharCode(55232+(a>>10),bF+(a&1023));else c+=String.fromCharCode(a);if(c.length>af){c.substr(0,1);k+=c;c=e}}return k+c}function hc(a){switch(a.t){case 9:return a.c;default:U(a);case 0:if(cl(a.c)){a.t=9;return a.c}a.t=8;case 8:return hd(a.c)}}function r(c,a,b){this.t=c;this.c=a;this.l=b}r.prototype.toString=function(){return hc(this)};function a(a){return new r(0,a,a.length)}function aU(c,b){g7(c,a(b))}var k=[0];function V(a){aU(k.Invalid_argument,a)}function gQ(){V(bZ)}function ar(a,b){if(b>>>0>=a.length-1)gQ();return a}function L(a){if(a<0)V("Bytes.create");return new r(a?2:9,e,a)}function gT(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=e;a.t=2}else{a.c=ct(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)as(a);for(b+=c;cd)return 1;if(cb[2])return 1;if(a[2]b[1])return 1;if(a[1]b.c?1:0}function aS(a,b,h){var d=[];for(;;){if(!(h&&a===b))if(a instanceof r)if(b instanceof r){if(a!==b){var c=g9(a,b);if(c!=0)return c}}else return 1;else if(a instanceof Array&&a[0]===(a[0]|0)){var e=a[0];if(e===ci)e=0;if(e===bT){a=a[1];continue}else if(b instanceof Array&&b[0]===(b[0]|0)){var f=b[0];if(f===ci)f=0;if(f===bT){b=b[1];continue}else if(e!=f)return e1)d.push(a,b,1)}}else return 1}else if(b instanceof r||b instanceof Array&&b[0]===(b[0]|0))return-1;else if(typeof a!="number"&&a&&a.compare)return a.compare(b,h);else if(typeof a=="function")V("compare: functional value");else{if(ab)return 1;if(a!=b){if(!h)return NaN;if(a==a)return 1;if(b==b)return-1}}if(d.length==0)return 0;var g=d.pop();b=d.pop();a=d.pop();if(g+1=0)}var at={amp:/&/g,lt:/aq){b.substr(0,1);g+=b;b=e;g+=f.slice(c,d)}else b+=f.slice(c,d);if(d==h)break;c=d}if(a>6);b+=String.fromCharCode(p|a&63)}else if(a<55296||a>=b9)b+=String.fromCharCode(bW|a>>12,p|a>>6&63,p|a&63);else if(a>=56319||c+1==h||(i=f.charCodeAt(c+1))b9)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+i-56613888;b+=String.fromCharCode(b3|a>>18,p|a>>12&63,p|a>>6&63,p|a&63)}if(b.length>af){b.substr(0,1);g+=b;b=e}}return g+b}function C(a){var b=9;if(!cl(a))b=8,a=he(a);return new r(b,a,a.length)}function gX(a,b){return+(aS(a,b,false)<=0)}function gY(a,b){return+(aS(a,b,false)<0)}function gR(a){aU(k.Failure,a)}function ck(a){if((a.t&6)!=0)U(a);return a.c}function q(b){b=ck(b);var d=b.length/2,c=new Array(d);for(var a=0;a>16;return c}function aQ(a){if(a.t!=4)as(a);return a.c}function gZ(b,u,a){var n=2,o=3,s=5,d=6,h=7,g=8,j=9,m=1,l=2,r=3,t=4,p=5;if(!b.lex_default){b.lex_base=q(b[m]);b.lex_backtrk=q(b[l]);b.lex_check=q(b[p]);b.lex_trans=q(b[t]);b.lex_default=q(b[r])}var e,c=u,k=aQ(a[n]);if(c>=0){a[h]=a[s]=a[d];a[g]=-1}else c=-c-1;for(;;){var f=b.lex_base[c];if(f<0)return-f-1;var i=b.lex_backtrk[c];if(i>=0){a[h]=a[d];a[g]=i}if(a[d]>=a[o])if(a[j]==0)return-c-1;else e=aK;else{e=k[a[d]];a[d]++}c=b.lex_check[f+e]==c?b.lex_trans[f+e]:b.lex_default[c];if(c<0){a[d]=a[h];if(a[g]==-1)gR("lexing: empty token");else return a[g]}else if(e==aK)a[j]=0}}function H(a,d){var a=a+1|0,b=new Array(a);b[0]=0;for(var c=1;c1)b.pop();break;case".":break;case"":if(b.length==0)b.push(e);break;default:b.push(d[c]);break}b.orig=a;return b}function g6(a){a=a instanceof r?a.toString():a;x(a+": No such file or directory")}function g_(a){return new r(4,a,a.length)}function cu(){V(bZ)}function ai(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 cw(b,a){if(a>>>0>=b.l)cu();return ai(b,a)}function M(a){if(a<0)V("String.create");return new r(a?2:9,e,a)}function w(a){return a.l}function cj(){}function o(a){this.data=a}o.prototype=new cj();o.prototype.truncate=function(a){var b=this.data;this.data=M(a|0);F(b,0,this.data,0,a)};o.prototype.length=function(){return w(this.data)};o.prototype.write=function(b,d,g,a){var c=this.length();if(b+a>=c){var e=M(b+a),f=this.data;this.data=e;F(f,0,this.data,0,c)}F(d,g,this.data,b,a);return 0};o.prototype.read=function(c,a,d,b){var e=this.length();F(this.data,c,a,d,b);return 0};o.prototype.read_one=function(a){return cw(this.data,a)};o.prototype.close=function(){};o.prototype.constructor=o;function v(b,a){this.content={};this.root=b;this.lookupFun=a}v.prototype.nm=function(a){return this.root+a};v.prototype.lookup=function(b){if(!this.content[b]&&this.lookupFun){var c=this.lookupFun(a(this.root),a(b));if(c!=0)this.content[b]=new o(c[1])}};v.prototype.exists=function(a){if(a==e)return 1;var c=a+E,d=new RegExp(aL+c);for(var b in this.content)if(b.match(d))return 1;this.lookup(a);return this.content[a]?1:0};v.prototype.readdir=function(c){var g=c==e?e:c+E,h=new RegExp(aL+g+b5),d={},b=[];for(var f in this.content){var a=f.match(h);if(a&&!d[a[1]]){d[a[1]]=true;b.push(a[1])}}return b};v.prototype.is_dir=function(a){var d=a==e?e:a+E,f=new RegExp(aL+d+b5),g=[];for(var c in this.content){var b=c.match(f);if(b)return 1}return 0};v.prototype.unlink=function(a){var b=this.content[a]?true:false;delete this.content[a];return b};v.prototype.open=function(a,b){if(b.rdonly&&b.wronly)x(this.nm(a)+b6);if(b.text&&b.binary)x(this.nm(a)+bX);this.lookup(a);if(this.content[a]){if(this.is_dir(a))x(this.nm(a)+" : is a directory");if(b.create&&b.excl)x(this.nm(a)+b2);var c=this.content[a];if(b.truncate)c.truncate();return c}else if(b.create){this.content[a]=new o(M(0));return this.content[a]}else g6(this.nm(a))};v.prototype.register=function(c,b){if(this.content[c])x(this.nm(c)+b2);if(b instanceof r)this.content[c]=new o(b);else if(b instanceof Array)this.content[c]=new o(g_(b));else if(b.toString){var d=a(b.toString());this.content[c]=new o(d)}};v.prototype.constructor=v;function ha(a,c,b){b&=255;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}as(a)}a.c[c]=b;return 0}function g$(b,a,c){if(a>>>0>=b.l)cu();return ha(b,a,c)}var aP=l.Buffer;function A(a){this.fs=require(ce);this.fd=a}A.prototype=new cj();A.prototype.truncate=function(a){this.fs.ftruncateSync(this.fd,a|0)};A.prototype.length=function(){return this.fs.fstatSync(this.fd).size};A.prototype.write=function(f,b,c,e){var a=aQ(b);if(!a instanceof l.Uint8Array)a=new(l.Uint8Array)(a);var d=new aP(a);this.fs.writeSync(this.fd,d,c,e,f);return 0};A.prototype.read=function(g,d,c,f){var a=aQ(d);if(!(a instanceof l.Uint8Array))a=new(l.Uint8Array)(a);var e=new aP(a);this.fs.readSync(this.fd,e,c,f,g);for(var b=0;bk.fd_last_idx)k.fd_last_idx=c;return c}function hj(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)x(c.toString()+b6);if(a.text&&a.binary)x(c.toString()+bX);var d=hi(c),e=d.device.open(d.rest,a),f=k.fd_last_idx?k.fd_last_idx:0;return au(f+1,cs,e,a)}au(0,cs,new o(M(0)));au(1,hg,new o(M(0)));au(2,hf,new o(M(0)));function g1(c){var b=k.fds[c];if(b.flags.wronly)x(cb+c+" is writeonly");var a={file:b.file,offset:b.offset,fd:c,opened:true,out:false,refill:null};D[a.fd]=a;return a.fd}function cn(c){var b=k.fds[c];if(b.flags.rdonly)x(cb+c+" is readonly");var a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:e};D[a.fd]=a;return a.fd}function g2(){var b=0;for(var a=0;a=0){g=aa;break}k=J;break exit;case 1:if(l instanceof Array){a[f]=b[_][l[0]+1];a[u]=l[1]}else{a[f]=b[$][l+1];a[u]=0}case 7:e=b.sindex[h];d=e+a[f];if(e!=0&&d>=0&&d<=b[r]&&b.check[d]==a[f]){g=P;break}e=b.rindex[h];d=e+a[f];if(e!=0&&d>=0&&d<=b[r]&&b.check[d]==a[f]){j=b.table[d];g=E;break}if(i<=0){k=F;break exit}case 5:if(i<3){i=3;for(;;){n=a[o][c+1];e=b.sindex[n];d=e+w;if(e!=0&&d>=0&&d<=b[r]&&b.check[d]==w){g=Q;break}else{if(c<=a[M])return s;c--}}}else{if(a[f]==0)return s;a[f]=-1;g=v;break}case 8:a[f]=-1;if(i>0)i--;case 9:h=b.table[d];c++;if(c>=a[A]){k=H;break exit}case 2:a[o][c+1]=h;a[D][c+1]=a[u];a[C][c+1]=a[O];a[p][c+1]=a[N];g=v;break;case 10:var m=b.len[j];a[x]=c;a[L]=j;a[K]=m;c=c-m+1;m=b.lhs[j];n=a[o][c];e=b.gindex[m];d=e+n;h=e!=0&&d>=0&&d<=b[r]&&b.check[d]==n?b.table[d]:b.dgoto[m];if(c>=a[A]){k=I;break exit}case 3:k=G;break exit;case 4:a[o][c+1]=h;a[D][c+1]=l;var t=a[x];a[p][c+1]=a[p][t+1];if(c>t)a[C][c+1]=a[p][t+1];g=v;break;default:return s}a[z]=c;a[B]=h;a[y]=i;return k}function y(c,b,a){k[c+1]=b;if(a)k[a]=b}var cp={};function g8(a,b){cp[ck(a)]=b;return 0}function cv(a,b){if(a===b)return 1;a.t&6&&U(a);b.t&6&&U(b);return a.c==b.c?1:0}function hb(){return bV/4|0}function cr(a){return a}function co(a){return cp[a]}function av(a){if(a instanceof Array)return a;if(l.RangeError&&a instanceof l.RangeError&&a.message&&a.message.match(/maximum call stack/i))return cr(k.Stack_overflow);if(l.InternalError&&a instanceof l.InternalError&&a.message&&a.message.match(/too much recursion/i))return cr(k.Stack_overflow);if(a instanceof l.Error&&co(aO))return[0,co(aO),a];return[0,k.Failure,C(String(a))]}function h(a,b){return a.length==1?a(b):ag(a,[b])}function ap(a,b,c,d){return a.length==3?a(b,c,d):ag(a,[b,c,d])}var aY=[n,a(cc),-3],aX=[n,a(ch),-4],ax=[n,a(bN),-7],ay=[n,a(bE),-11],N=[0,a(e),0,0,-1],a2=[0,a(e),1,0,0],bD=a("\xe7\x9b\xae\xe7\x9a\x84");y(11,[n,a(bG),-12],bG);y(10,ay,bE);y(9,[n,a(ca),-10],ca);y(8,[n,a(bP),-9],bP);y(7,[n,a(bM),-8],bM);y(6,ax,bN);y(5,[n,a(b$),-6],b$);y(4,[n,a(cd),-5],cd);y(3,aX,ch);y(2,aY,cc);y(1,[n,a(b_),-2],b_);y(0,[n,a(b0),-1],b0);var cA=a("output_substring"),cC=a("nth"),cD=a("List.nth"),cH=a("String.blit / Bytes.blit_string"),cG=a("Bytes.blit"),cF=a("String.sub / Bytes.sub"),cI=a(e),cJ=a("Array.blit"),cN=a("syntax error"),cK=a("Parsing.YYexit"),cL=a("Parsing.Parse_error"),cQ=a("Buffer.add_substring/add_subbytes"),cP=a("Buffer.add: cannot grow buffer"),c6=[3,0,3],c7=a("."),c2=a(aN),c3=a(">>0?23===a?1:0:2===a?0:1;return c?1:0}function a1(b){var a=b-9|0,c=4>>0?23===a?1:0:2===a?0:1;return c?1:0}var Y=(4*hb(0)|0)-1|0;B(0);function al(e,c,d,b,a){if(0<=a)if(0<=c)if(!((e.length-1-a|0)'),k=j.tagName.toLowerCase()===bR?1:0,m=k?j.name==="x"?1:0:k,i=m}catch(a){var i=0}var l=i?b7:-1003883683;bo[1]=l;continue}if(b7<=h){var a=new bm();a.push(cf,b.toString());am(f,function(b){a.push(' type="',cm(b),cg);return 0});am(d,function(b){a.push(' name="',cm(b),cg);return 0});a.push(aN);return c.createElement(a.join(e))}var g=aI(c,b);am(f,function(a){return g.type=a});am(d,function(a){return g.name=a});return g}}function bq(c,b,a){return bp(c,b,a,df)}B(0);Z.HTMLElement===c$;var ds=dr.slice(),dt=[0,265,0],dB=bS;function dG(a){throw[0,aA,s(a,0)]}function dH(a){throw[0,aA,s(a,0)]}function dI(a){var b=s(a,2);return[0,b,s(a,0)]}function dJ(a){var b=s(a,2);return[0,b,[0,s(a,0),0]]}function dK(a){return s(a,1)}function dL(a){return[0,s(a,1)]}function dM(a){return 3}function dN(a){return 2}function dO(a){return 1}function dP(a){return 0}function dQ(a){return[1,s(a,0)]}function dR(a){return s(a,0)}function dS(a){return s(a,1)}function dT(a){return[2,s(a,1)]}var br=[0,[0,function(a){return ak(dU)},dT,dS,dR,dQ,dP,dO,dN,dM,dL,dK,dJ,dI,dH,dG],ds,dt,du,dv,dw,dx,dy,dz,dA,dB,dC,dD,cO,dE,dF];function dV(b,a){return a7(br,1,b,a)}function dW(b,a){return a7(br,2,b,a)}function bs(a){a:for(;;){var e=0;for(;;){var b=gZ(dX,e,a);if(0<=b){a[11]=a[12];var c=a[12];a[12]=[0,c[1],c[2],c[3],a[4]+a[6]|0]}if(11>>0){h(a[1],a);var e=b;continue}switch(b){case 0:continue a;case 1:return 0;case 2:return 1;case 3:return 3;case 4:return 4;case 5:return 5;case 6:return 6;case 7:return 7;case 8:return 2;case 9:return[0,a4(a)];case 10:return 8;default:return ak(d(dY,a4(a)))}}}}var m=Z.document,d0=[n,dZ,B(0)];function i(a,b){$(a,b);return a}function j(a){return m.createTextNode(a.toString())}function bt(c){var f=c-1|0;if(5>>0)throw[0,d0,d(d1,a(e+c))];switch(f){case 0:var b=u(m,dh);break;case 1:var b=u(m,di);break;case 2:var b=u(m,dj);break;case 3:var b=u(m,dk);break;case 4:var b=u(m,dl);break;default:var b=u(m,dm)}return b}function an(a){return u(m,dp)}var ab=[0,function(a){return 0}],bu="#FFFF99",d2="#FFFFFF";function b(b,c){var d=b?b[1]:function(a){return 1},a=bq([0,"text"],0,m);a.defaultValue=c.toString();a.onchange=aa(function(e){var b=a.style,c=h(d,C(a.value))?bu:d2;b.backgroundColor=c;h(ab[1],0);return _});a.style.backgroundColor=bu;return a}function P(a){return b([0,function(a){try{dV(bs,a3(a));var b=0;return b}catch(a){return 1}}],a)}function Q(a){return b([0,function(a){try{dW(bs,a3(a));var b=0;return b}catch(a){return 1}}],a)}function bv(f){var c=bp(0,0,m,de),a=f;for(;;){if(a){var d=a[2],e=a[1],b=u(m,dd);$(b,j(e));c.add(b,aF);var a=d;continue}return c}}function d3(a){return a}function K(d,c,b){var a=h(d,b);$(a.insertCell(a.cells.length),c);return a}function ac(a,b){h(b,a.insertRow(a.rows.length));return a}function R(a,c,b){if(0===a)return function(a){return K(d3,c,a)};var d=h(b,a),e=R(a-1|0,c,b);return function(a){return K(e,d,a)}}function ao(f,j,i){var a=C(G(i,f-1|0).value);if(cv(a,cI))var e=a;else{if(a1(ai(a,0)))var g=0;else if(a1(ai(a,w(a)-1|0)))var g=0;else var e=a,g=1;if(!g){var h=W(a),b=[0,0];for(;;){if(b[1]