// This program was compiled from OCaml by js_of_ocaml 0.1 function caml_str_repeat(n, s) { if (!n) { return ""; } if (n & 1) { return caml_str_repeat(n - 1, s) + s; } var r = caml_str_repeat(n >> 1, s); return r + r; } function MlString(param) { if (param != null) { this.bytes = param; this.last = this.len = param.length; } } MlString.prototype = { string:null, bytes:null, array:null, len:null, last:0, toJsString:function() { return this.string = decodeURIComponent (escape(this.getFullBytes())); }, toBytes:function() { if (this.string != null) var b = unescape (encodeURIComponent (this.string)); else { var b = "", a = this.array, l = a.length; for (var i = 0; i < l; i ++) b += String.fromCharCode (a[i]); } this.bytes = b; this.last = this.len = b.length; return b; }, getBytes:function() { var b = this.bytes; if (b == null) b = this.toBytes(); return b; }, getFullBytes:function() { var b = this.bytes; if (b == null) b = this.toBytes (); if (this.last < this.len) { this.bytes = (b += caml_str_repeat(this.len - this.last, '\0')); this.last = this.len; } return b; }, toArray:function() { var b = this.bytes; if (b == null) b = this.toBytes (); var a = [], l = this.last; for (var i = 0; i < l; i++) a[i] = b.charCodeAt(i); for (l = this.len; i < l; i++) a[i] = 0; this.string = this.bytes = null; this.last = this.len; this.array = a; return a; }, getArray:function() { var a = this.array; if (!a) a = this.toArray(); return a; }, getLen:function() { var len = this.len; if (len != null) return len; this.toBytes(); return this.len; }, toString:function() { var s = this.string; return s?s:this.toJsString(); }, valueOf:function() { var s = this.string; return s?s:this.toJsString(); }, blit:function(i1, s2, i2, l) { if (l == 0) return 0; if (s2.bytes != null && i2 == s2.last && this.len == l && this.last == l) { s2.bytes += this.getBytes(); s2.last += l; return 0; } var a = s2.array; if (!a) a = s2.toArray(); else { s2.bytes = s2.string = null; } this.blitToArray (i1, a, i2, l); }, blitToArray:function(i1, a2, i2, l) { var a1 = this.array; if (a1) for (var i = 0; i < l; i++) a2 [i2 + i] = a1 [i1 + i]; else { var b = this.bytes; if (b == null) b = this.toBytes(); var l1 = this.last - i1; if (l <= l1) for (var i = 0; i < l; i++) a2 [i2 + i] = b.charCodeAt(i1 + i); else { for (var i = 0; i < l1; i++) a2 [i2 + i] = b.charCodeAt(i1 + i); for (; i < l; i++) a2 [i2 + i] = 0; } } }, get:function (i) { var a = this.array; if (a) return a[i]; var b = this.bytes; if (b == null) b = this.toBytes(); return (i<this.last)?b.charCodeAt(i):0; }, safeGet:function (i) { if (!this.len) this.toBytes(); if ((i < 0) || (i >= this.len)) caml_array_bound_error (); return this.get(i); }, set:function (i, c) { var a = this.array; if (!a) { if (this.last == i) { this.bytes += String.fromCharCode (c & 0xff); this.last ++; return 0; } a = this.toArray(); } else if (this.bytes != null) { this.bytes = this.string = null; } a[i] = c & 0xff; return 0; }, safeSet:function (i, c) { if (this.len == null) this.toBytes (); if ((i < 0) || (i >= this.len)) caml_array_bound_error (); this.set(i, c); }, fill:function (ofs, len, c) { if (ofs >= this.last && this.last && c == 0) return; var a = this.array; if (!a) a = this.toArray(); else if (this.bytes != null) { this.bytes = this.string = null; } var l = ofs + len; for (i = ofs; i < l; i++) a[i] = c; }, compare:function (s2) { if (this.string != null && s2.string != null) { if (this.string < s2.string) return -1; if (this.string > s2.string) return 1; return 0; } var b1 = this.getFullBytes (); var b2 = s2.getFullBytes (); if (b1 < b2) return -1; if (b1 > b2) return 1; return 0; }, equal:function (s2) { if (this.string != null && s2.string != null) return this.string == s2.string; return this.getFullBytes () == s2.getFullBytes (); }, lessThan:function (s2) { if (this.string != null && s2.string != null) return this.string < s2.string; return this.getFullBytes () < s2.getFullBytes (); }, lessEqual:function (s2) { if (this.string != null && s2.string != null) return this.string <= s2.string; return this.getFullBytes () <= s2.getFullBytes (); } } function MlWrappedString (s) { this.string = s; } MlWrappedString.prototype = new MlString(); function MlMakeString (l) { this.bytes = ""; this.len = l; } MlMakeString.prototype = new MlString (); function caml_blit_string(s1, i1, s2, i2, len) { s1.blit (i1, s2, i2, len); } function caml_call_gen(f, args) { var n = f.length; var d = n - args.length; if (d == 0) return f.apply(null, args); else if (d < 0) return caml_call_gen(f.apply(null, args.slice(0,n)), args.slice(n)); else return function (x){ return caml_call_gen(f, args.concat([x])); }; } function caml_create_string(len) { return new MlMakeString(len); } function caml_raise_constant (tag) { throw [0, tag]; } var caml_global_data = []; function caml_raise_zero_divide () { caml_raise_constant(caml_global_data[5]); } function caml_div(x,y) { if (y == 0) caml_raise_zero_divide (); return (x/y)|0; } function caml_int64_compare(x,y) { x3 = x[3] << 16; y3 = y[3] << 16; if (x3 > y3) return 1; if (x3 < y3) return -1; if (x[2] > y[2]) return 1; if (x[2] < y[2]) return -1; if (x[1] > y[1]) return 1; if (x[1] < y[1]) return -1; return 0; } function caml_int_compare (a, b) { if (a < b) return (-1); if (a == b) return 0; return 1; } function caml_compare_val (a, b, total) { if (a === b && total) return 0; if (a instanceof MlString) { if (b instanceof MlString) return (a == b)?0:a.compare(b) else return 1; } else if (a instanceof Array && a[0] == (a[0]|0)) { var ta = a[0]; if (ta === 250) return caml_compare_val (a[1], b, total); if (b instanceof Array && b[0] == (b[0]|0)) { var tb = b[0]; if (tb === 250) return caml_compare_val (a, b[1], total); if (ta != tb) return (ta < tb)?-1:1; switch (ta) { case 248: return caml_int_compare(a[2], b[2]); case 255: return caml_int64_compare(a, b); default: if (a.length != b.length) return (a.length < b.length)?-1:1; for (var i = 1; i < a.length; i++) { var t = caml_compare_val (a[i], b[i], total); if (t != 0) return t; } return 0; } } else return 1; } else if (b instanceof MlString || (b instanceof Array && b[0] == (b[0]|0))) return -1; else { if (a < b) return -1; if (a > b) return 1; if (a != b) { if (!total) return null; if (a == a) return 1; if (b == b) return -1; } return 0; } } function caml_equal (x, y) { return +(caml_compare_val(x,y,false) == 0); } function caml_fill_string(s, i, l, c) { s.fill (i, l, c); } function caml_compare (a, b) { return caml_compare_val (a, b, true); } function caml_greaterequal (x, y) { return +(caml_compare(x,y,false) >= 0); } var caml_js_regexps = { amp:/&/g, lt:/</g, quot:/\"/g, all:/[&<\"]/ }; function caml_js_html_escape (s) { if (!caml_js_regexps.all.test(s)) return s; return s.replace(caml_js_regexps.amp, "&") .replace(caml_js_regexps.lt, "<") .replace(caml_js_regexps.quot, """); } function caml_js_on_ie () { var ua = window.navigator?window.navigator.userAgent:""; return ua.indexOf("MSIE") != -1 && ua.indexOf("Opera") != 0; } function caml_js_wrap_callback(f) { var toArray = Array.prototype.slice; return function () { var args = (arguments.length > 0)?toArray.call (arguments):[0]; return caml_call_gen(f, args); } } function caml_lessequal (x, y) { return +(caml_compare(x,y,false) <= 0); } function caml_lessthan (x, y) { return +(caml_compare(x,y,false) < 0); } function caml_raise_with_arg (tag, arg) { throw [0, tag, arg]; } function caml_raise_with_string (tag, msg) { caml_raise_with_arg (tag, new MlWrappedString (msg)); } function caml_failwith (msg) { caml_raise_with_string(caml_global_data[2], msg); } function caml_lex_array(s) { s = s.getFullBytes(); var a = [], l = s.length / 2; for (i = 0; i < l; i++) a[i] = (s.charCodeAt(2 * i) | (s.charCodeAt(2 * i + 1) << 8)) << 16 >> 16; return a; } function caml_lex_engine(tbl, start_state, lexbuf) { var lex_buffer = 2; var lex_buffer_len = 3; var lex_start_pos = 5; var lex_curr_pos = 6; var lex_last_pos = 7; var lex_last_action = 8; var lex_eof_reached = 9; var lex_base = 1; var lex_backtrk = 2; var lex_default = 3; var lex_trans = 4; var lex_check = 5; if (!tbl.lex_default) { tbl.lex_base = caml_lex_array (tbl[lex_base]); tbl.lex_backtrk = caml_lex_array (tbl[lex_backtrk]); tbl.lex_check = caml_lex_array (tbl[lex_check]); tbl.lex_trans = caml_lex_array (tbl[lex_trans]); tbl.lex_default = caml_lex_array (tbl[lex_default]); } var c, state = start_state; var buffer = lexbuf[lex_buffer].getArray(); if (state >= 0) { lexbuf[lex_last_pos] = lexbuf[lex_start_pos] = lexbuf[lex_curr_pos]; lexbuf[lex_last_action] = -1; } else { state = -state - 1; } for(;;) { var base = tbl.lex_base[state]; if (base < 0) return -base-1; var backtrk = tbl.lex_backtrk[state]; if (backtrk >= 0) { lexbuf[lex_last_pos] = lexbuf[lex_curr_pos]; lexbuf[lex_last_action] = backtrk; } if (lexbuf[lex_curr_pos] >= lexbuf[lex_buffer_len]){ if (lexbuf[lex_eof_reached] == 0) return -state - 1; else c = 256; }else{ c = buffer[lexbuf[lex_curr_pos]]; lexbuf[lex_curr_pos] ++; } if (tbl.lex_check[base + c] == state) state = tbl.lex_trans[base + c]; else state = tbl.lex_default[state]; if (state < 0) { lexbuf[lex_curr_pos] = lexbuf[lex_last_pos]; if (lexbuf[lex_last_action] == -1) caml_failwith("lexing: empty token"); else return lexbuf[lex_last_action]; }else{ /* Erase the EOF condition only if the EOF pseudo-character was consumed by the automaton (i.e. there was no backtrack above) */ if (c == 256) lexbuf[lex_eof_reached] = 0; } } } function caml_ml_flush () { return 0; } function caml_ml_open_descriptor_out () { return 0; } function caml_ml_out_channels_list () { return 0; } function caml_ml_output () { return 0; } function caml_mul(x,y) { return ((((x >> 16) * y) << 16) + (x & 0xffff) * y)|0; } function caml_register_global (n, v) { caml_global_data[n] = v; } var caml_named_values = {}; function caml_register_named_value(nm,v) { caml_named_values[nm] = v; return 0; } function caml_string_notequal(s1, s2) { return +!s1.equal(s2); } function caml_sys_get_config (e) { return [0, "Unix", 32]; } function caml_update_dummy (x, y) { var i = y.length; while (i--) x[i] = y[i]; return 0; } (function() {function b4(kh,ki,kj,kk) {return kh.length==3?kh(ki,kj,kk):caml_call_gen(kh,[ki,kj,kk]);} function f4(ke,kf,kg) {return ke.length==2?ke(kf,kg):caml_call_gen(ke,[kf,kg]);} function aW(kc,kd){return kc.length==1?kc(kd):caml_call_gen(kc,[kd]);} var a=[0,new MlString("Failure")],b=[0,new MlString("Invalid_argument")], c=[0,new MlString("Not_found")],d=[0,new MlString("Assert_failure")], e=[0,new MlString(""),1,0,0],f=new MlString("textarea"), g= [0, new MlString ("\0\0\x01\0\x02\0\x01\0\x01\0\x01\0\x02\0\x05\0\x01\0\xff\xff\x03\0\x04\0\x06\0\x07\0\xfe\xff\x03\0\x04\0\x06\0\xfb\xff\x02\0\x03\0\x07\0\xfa\xff\b\0\xf8\xff\v\0\xee\xff/\0\x14\0.\0F\0U\0l\0\x9b\0\xc1\0\xd0\0\b\x01\x19\x01M\x01\f\0\xff\xff\xfe\xff\xfd\xff\xfc\xff\r\0S\x01@\0B\0J\0\xfa\xffx\0\xfb\xff\xf9\xff\x82\x01\xaa\x01\xba\x01 \x020\x02i\x02W\x02\x82\x02\x93\x02\xf7\xffj\0\x1f\0P\0a\0\x87\0\xf6\xff\xad\0\xb6\0\v\0\xf4\xff\xf1\xff\xf3\xff\x0f\0\xd2\0'\x01\x10\0\xfd\xff\xab\0\xfe\xff\xcc\0q\x01\xd7\0\xe2\0\xef\0\xff\xff\x11\0\x0e\x01\xf3\0\x12\0"), new MlString ("\b\0\x06\0\xff\xff\xff\xff\x03\0\x02\0\x01\0\xff\xff\0\0\xff\xff\x01\0\x01\0\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\xff\xff\xff\xff\xff\xff\x05\0\xff\xff\xff\xff\xff\xff\x0f\0\r\0\x0f\0\x0f\0\x0f\0\x0f\0\x0f\0\x0f\0\x0f\0\x0f\0\x0f\0\x0f\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x0f\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0f\0\x0f\0\x0f\0\x0f\0\x07\0\x07\0\xff\xff\x0f\0\x0f\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\n\0\n\0\xff\xff\xff\xff\xff\xff\f\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\x01\0"), new MlString ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\x1b\0\0\0\x1b\0\xff\xffH\0\x1b\0\x1b\0\x1b\0\x1b\0\x1b\0\x1b\0\x1b\0\x1b\0\x1b\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\x1b\0/\0/\0/\0\0\0/\0\0\0\0\0\x1b\0\x1b\0\x1b\0:\x009\0:\x009\0\x1b\0\x1b\0\0\0A\0@\0A\0B\0B\0\0\0@\0@\0\xff\xff\0\0\0\0\0\0\xff\xff\xff\xffP\0\xff\xff\0\0P\0\0\0P\0P\0P\0P\0P\0\0\0\xff\xffP\0P\0\xff\xff"), new MlString ("\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x07\0\t\0\t\0\x12\0\b\0\x07\0\x11\0\x12\0\x16\0\x16\0\x13\0\x17\0(\0(\0+\0'\0J\0O\0W\0Q\0L\0J\0\0\0\x07\0K\0\0\0\x04\0\x04\0\x07\0\x11\0\0\0\x04\0\xff\xff\x05\0\x05\0\xff\xff\x03\0\x0f\0\x05\0\x10\0\x11\0\x03\0\0\0L\0&\0\0\0\xff\xff\xff\xff\xff\xff%\0\xff\xff\xff\xff\x06\0\x18\0\n\0\v\0\f\0\x06\0\r\0\x0e\0\0\0\0\0\0\0$\0\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffI\0\0\0\xff\xff\xff\xff\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\0\0\0\0\0\0#\0\x1f\0\"\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff \0\0\0!\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\x02\0\x01\0\x14\0\x15\0\xff\xff\x02\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x1e\0\x1c\0G\0\x1d\0\xff\xff\xff\xff\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\0\0\xff\xffE\x000\0\0\x002\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff>\0\xff\xff\0\0\0\0O\0\0\0\xff\xffN\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff1\0\0\0\xff\xff?\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\0\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff3\0O\0\0\0\xff\xffN\0\xff\xffL\0J\0\xff\xffC\0K\0<\0O\0\0\0\0\0N\0@\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xffO\0\0\0\0\0N\0\xff\xff\0\0L\0\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xffW\0\xff\xff\0\0X\0Q\0\xff\xff\xff\xff[\0\xff\xff\0\0\xff\xffD\0\0\0\x12\0\x16\0\0\0\0\0\0\0\x1a\0\0\0\xff\xff\0\x005\0\0\0-\0+\0\0\0J\0,\0\xff\xff\xff\xffO\0\xff\xff\0\0N\0\xff\xff\xff\xff4\0\xff\xff\0\0\0\0\0\0\xff\xff\0\0\0\0\xff\xff\xff\xff-\0\xff\xffF\0.\0\xff\xff\xff\xff\xff\xff\xff\xffS\0O\0\xff\xffG\0N\0\0\0\xff\xff\xff\xff\xff\xff\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0$\0\xff\xffS\0*\0Y\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0U\0\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\0\0-\0+\0\0\0V\0,\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\0\0-\0\xff\xff\xff\xff\xff\xff)\0\xff\xff\0\0S\0O\0\xff\xff\xff\xffN\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\0\0\xff\xffZ\0\xff\xff\0\0\0\0\xff\xff\xff\xffS\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xffO\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\xff\xff\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xffO\0\0\0\xff\xff\xff\xff\xff\xff\xff\xffJ\0\0\0\xff\xff\0\0\0\0O\0\0\0\xff\xff\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\0\0O\0\0\0\xff\xff\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\0\0T\0W\0\0\0\0\0\0\0Q\x008\0\0\x006\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff+\0\0\0\0\0\0\0\0\0\0\0O\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff7\0\0\0\0\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\xff\xff\xff\xffQ\0\xff\xff\x1b\0\xff\xff\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\0\0\0\0\x1b\x008\x008\0\0\0\0\0\0\0\0\x008\0\0\0\0\x009\0\0\x008\0\xff\xff8\x009\0\xff\xff;\0;\0+\0\0\0\0\0\0\0;\0\0\0\0\x008\x008\0;\x009\0;\x008\0\xff\xff\xff\xff\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0;\0;\0\0\0\0\0\0\0;\0\0\0O\0\x1b\0\xff\xff\0\0\0\0\xff\xff\xff\xff;\0;\0\0\x009\x009\x009\0;\0\0\0\0\0\0\0\xff\xff;\0\0\0;\x009\0\0\x009\0\x1b\x008\x008\0\xff\xff\0\0\0\0\xff\xff8\0;\0;\x009\0\0\x008\0;\x008\x009\0\0\0\0\x009\x009\0\xff\xff9\0\0\0\xff\xff\0\0\0\x008\x008\0\0\x009\0\0\x008\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\xff\xff\0\x009\x009\x009\0\0\0\0\0\0\0\0\0\0\0\0\x008\0\0\x009\0\xff\xff9\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\0\0\0\0\0\x009\x009\0\0\x009\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0=\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff"), new MlString ("\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\b\0\x13\0\0\0\x07\0\x11\0\x11\0\x15\0\x17\0\x11\0\x15\0\x19\0'\0,\0\x19\0K\0N\0X\0[\0\x1c\0\x1c\0\xff\xff\0\0\x1c\0\xff\xff\0\0\x04\0\x07\0\x11\0\xff\xff\x07\0@\0\0\0\x05\0@\0\0\0\x03\0\x07\0\x0f\0\x10\0\x07\0\xff\xff\x1c\0\x19\0\xff\xff\x1d\0\x1d\0\x1b\0\x19\0\x1d\0\x1b\0\0\0\x01\0\x06\0\n\0\v\0\x07\0\f\0\r\0\xff\xff\xff\xff\xff\xff\x19\0\xff\xff.\0\xff\xff/\0.\0\x1d\0/\0\x1e\0\x1c\0\xff\xff\x1e\x000\0\xff\xff\xff\xff0\0\xff\xff\x1b\0A\0\xff\xff\xff\xffA\0\x1b\0\x1f\0\xff\xff\xff\xff\x1f\0\xff\xff\xff\xff\xff\xff\x19\0\x19\0\x19\0\xff\xff\xff\xffB\0\x1b\0\xff\xffB\0\xff\xff\x1e\0\x19\0\xff\xff\x19\0?\0\x1e\0 \0?\0\xff\xff \0\xff\xff\0\0\0\0\x02\0\x14\0\x1f\0\x07\0\x07\x002\0\x1e\0\x1f\x002\0\x19\0\x19\0G\0\x19\0\x1b\0\x1b\0\x1b\0\xff\xff\xff\xff\xff\xff\xff\xffC\0\x1f\0\xff\xffC\0\x1b\0 \0\x1b\0\xff\xff\xff\xff\xff\xff \0@\0.\0\xff\xff/\0\xff\xff\x1e\0\x1e\0\x1e\0\xff\xff!\0\xff\xff0\0!\0 \0\x1b\0\x1b\0\x1e\0\x1b\0\x1e\0\xff\xff\x1f\0\x1f\0\x1f\0\xff\xff\xff\xffP\0\xff\xffE\0P\0\xff\xffE\0\x1f\0.\0\x1f\0/\0\xff\xffF\0\x1e\0\x1e\0F\0\x1e\0!\x000\0 \0 \0 \0!\0\"\0A\0\xff\xff\"\0\xff\xff\x1f\0\x1f\0 \0\x1f\0 \x002\0R\0\xff\xff!\0R\0#\0L\0L\0#\0B\0L\0 \0T\0\xff\xff\xff\xffT\0?\0?\0 \0 \0\xff\xff \0\"\0U\0\xff\xff\xff\xffU\0\"\0\xff\xffL\0\xff\xff2\0\xff\xff!\0!\0!\0V\0#\0\xff\xffV\0Z\0\"\0#\0Z\0!\0\xff\xff!\0C\0\xff\xff\x11\0\x15\0\xff\xff\xff\xff\xff\xff\x19\0\xff\xff#\0\xff\xff!\0\xff\xff$\0$\0\xff\xff\x1c\0$\0!\0!\0Y\0!\0\xff\xffY\0\"\0\"\0\"\0@\0\xff\xff\xff\xff\xff\xff%\0\xff\xff\xff\xff%\0\"\0$\0\"\0E\0#\0#\0#\0\x1d\0\x1b\0M\0M\0$\0F\0M\0\xff\xff#\0$\0#\0\xff\xff\xff\xff\xff\xff\"\0\"\0\xff\xff\"\0.\0\xff\xff/\0%\0\xff\xff$\0\x1e\0M\0%\0R\x000\0#\0#\0\xff\xff#\0\xff\xffA\0\xff\xff\xff\xff\xff\xffT\0\x1f\0%\0&\0\xff\xff\xff\xff&\0\xff\xff-\0-\0\xff\xffU\0-\0B\0\xff\xff$\0$\0$\0\xff\xff\xff\xff\xff\xff\xff\xff?\0\xff\xff \0\xff\xff$\0\xff\xff$\0\xff\xff\xff\xff-\0%\0%\0%\0&\x002\0\xff\xffS\0S\0&\0-\0S\0%\0\xff\xff%\0-\0$\0$\0\xff\xff$\0C\0\xff\xff\xff\xff&\0Y\x005\0\xff\xff\xff\xff5\0-\0S\0\xff\xff\xff\xff%\0%\0\xff\xff%\0\xff\xff\xff\xff\xff\xff!\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffM\0\xff\xff\xff\xff\xff\xff&\0&\0&\0P\x005\0E\0-\0-\0-\x005\0\xff\xff&\x006\0&\0F\x006\0\xff\xff-\0\xff\xff-\0\xff\xff\xff\xff\xff\xff5\0\xff\xff\"\0\xff\xff\xff\xff7\0\xff\xff\xff\xff7\0&\0&\0\xff\xff&\0R\0\xff\xff-\0-\0#\0-\0L\0\xff\xff6\0\xff\xff\xff\xffT\0\xff\xff6\0\xff\xff\xff\xff\xff\xff5\x005\x005\0\xff\xff\xff\xffU\0\xff\xff7\0\xff\xff\xff\xff6\x005\x007\x005\0\xff\xff\xff\xff\xff\xffS\0V\0\xff\xff\xff\xff\xff\xffZ\x007\0\xff\xff5\x007\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff5\x005\0\xff\xff5\0\xff\xff\xff\xff\xff\xff\xff\xff6\x006\x006\0$\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffY\0\xff\xff6\0\xff\xff6\0\xff\xff\xff\xff7\x007\x007\0\xff\xff%\x006\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff7\0\xff\xff7\0\xff\xff\xff\xff6\x006\0M\x006\x008\x008\0\xff\xff\xff\xff8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff7\x007\0\xff\xff7\x009\x009\0\xff\xff\xff\xff9\0\xff\xff\xff\xff8\x008\x008\0\xff\xff\xff\xff\xff\xff\xff\xff8\0\xff\xff\xff\xff8\0\xff\xff8\0&\x008\x008\x009\x009\x009\0-\0\xff\xff\xff\xff\xff\xff9\0\xff\xff\xff\xff8\x008\x009\x008\x009\x008\0;\0;\0\xff\xff\xff\xff;\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff9\x009\0\xff\xff\xff\xff\xff\xff9\0\xff\xffS\0:\0:\0\xff\xff\xff\xff:\0;\0;\0;\0\xff\xff8\x008\x008\0;\0\xff\xff\xff\xff\xff\xff5\0;\0\xff\xff;\x008\0\xff\xff8\0:\0:\0:\0<\0\xff\xff\xff\xff<\0:\0;\0;\0:\0\xff\xff:\0;\0:\0:\0\xff\xff\xff\xff8\x008\0=\x008\0\xff\xff=\0\xff\xff\xff\xff:\0:\0\xff\xff:\0\xff\xff:\0\xff\xff6\0\xff\xff<\0\xff\xff\xff\xff\xff\xff\xff\xff<\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff7\0\xff\xff\xff\xff=\0\xff\xff<\0\xff\xff\xff\xff=\0\xff\xff:\0:\0:\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff=\0\xff\xff:\0=\0:\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff<\0<\0<\0\xff\xff\xff\xff\xff\xff\xff\xff:\0:\0\xff\xff:\0<\0\xff\xff<\0\xff\xff\xff\xff\xff\xff=\0=\0=\0\xff\xff<\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff=\0\xff\xff=\0\xff\xff<\0<\0\xff\xff<\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff=\0=\0\xff\xff=\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff9\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff;\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff:\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff<\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff=\0"), new MlString(""),new MlString(""),new MlString(""),new MlString(""), new MlString(""),new MlString("")], h=new MlString(""); caml_register_global(5,[0,new MlString("Division_by_zero")]); caml_register_global(3,b);caml_register_global(2,a); var ax=new MlString("output"),aw=new MlString("Pervasives.do_at_exit"), av=new MlString(""),au=new MlString("String.blit"), at=new MlString("String.sub"),as=new MlString(""), ar=new MlString("Buffer.add_substring"), aq=new MlString("Buffer.add: cannot grow buffer"),ap=new MlString("\n"), ao=[3,0,3],an=new MlString("."),am=new MlString(">"), al=new MlString("</"),ak=new MlString(">"),aj=new MlString("<"), ai=new MlString("Format.Empty_queue"),ah=[0,new MlString("")], ag=[0,new MlString("src/core/lwt.ml"),315,20], af=[0,new MlString("src/core/lwt.ml"),318,8], ae=new MlString("Lwt.fast_connect"),ad=new MlString("Lwt.connect"), ac=new MlString("Lwt.wakeup"),ab=new MlString("Lwt.Canceled"), aa=new MlString("img"),$=new MlString("a"),_=new MlString("br"), Z=new MlString("div"),Y=new MlString("\""),X=new MlString(" name=\""), W=new MlString("\""),V=new MlString(" type=\""),U=new MlString("<"), T=new MlString(">"),S=new MlString(""), R=[0,new MlString("wikicreole.mll"),200,32], Q=[0,new MlString("wikicreole.mll"),209,6], P=[0,new MlString("wikicreole.mll"),224,6], O=[0,new MlString("wikicreole.mll"),278,6],N=new MlString("*"),M=[5,0], L=[0,new MlString("wikicreole.mll"),151,6],K=new MlString("**"), J=new MlString("strong"),I=new MlString("em"),H=new MlString("br"), G=new MlString("tt"),F=new MlString("p"),E=new MlString("pre"), D=new MlString("h1"),C=new MlString("h2"),B=new MlString("h3"), A=new MlString("h4"),z=new MlString("h5"),y=new MlString("h6"), x=new MlString("ul"),w=new MlString("ol"),v=new MlString("hr"), u=new MlString("th"),t=new MlString("td"),s=new MlString("tr"), r=new MlString("tbody"),q=new MlString("table"),p=new MlString("li"), o=[0,new MlString("main.ml"),37,17],n=new MlString("wiki_demo"), m=new MlString("1px black dashed"),l=new MlString("5px"), k=new MlString(""); function j(i){throw [0,b,i];}var aE=(1<<31)-1|0; function aD(ay,aA) {var az=ay.getLen(),aB=aA.getLen(),aC=caml_create_string(az+aB|0); caml_blit_string(ay,0,aC,0,az);caml_blit_string(aA,0,aC,az,aB); return aC;} function aG(aF,aH) {if(aF){var aI=aF[1];return [0,aI,aG(aF[2],aH)];}return aH;} var aO=caml_ml_open_descriptor_out(1),aN=caml_ml_open_descriptor_out(2); function aT(aM) {var aJ=caml_ml_out_channels_list(0); for(;;) {if(aJ){var aK=aJ[2];try {}catch(aL){}var aJ=aK;continue;}return 0;}} function aV(aS,aR,aP,aQ) {if(0<=aP&&0<=aQ&&((aR.getLen()-aQ|0)<aP?0:1)) return caml_ml_output(aS,aR,aP,aQ); return j(ax);} var aU=[0,aT];function aY(aX){return aW(aU[1],0);} caml_register_named_value(aw,aY); function a4(aZ) {var a0=aZ,a1=0; for(;;) {if(a0){var a2=a0[2],a3=[0,a0[1],a1],a0=a2,a1=a3;continue;}return a1;}} function a8(a6,a5) {if(a5){var a7=a5[2],a9=aW(a6,a5[1]);return [0,a9,a8(a6,a7)];}return 0;} function bc(ba,a_) {var a$=a_; for(;;){if(a$){var bb=a$[2];aW(ba,a$[1]);var a$=bb;continue;}return 0;}} function bh(bf,bd,be) {if(0<=bd&&0<=be&&((bf.getLen()-be|0)<bd?0:1)) {var bg=caml_create_string(be);caml_blit_string(bf,bd,bg,0,be); return bg;} return j(at);} function bn(bk,bj,bm,bl,bi) {if (0<=bi&&0<=bj&&bj<=(bk.getLen()-bi|0)&&0<=bl&& ((bm.getLen()-bi|0)<bl?0:1)) return caml_blit_string(bk,bj,bm,bl,bi); return j(au);} var bo=caml_sys_get_config(0)[2], bp=caml_mul(caml_div(bo,8),(1<<(bo-10|0))-1|0)-1|0; function bv(bs,br,bq) {var bt=caml_lex_engine(bs,br,bq); if(0<=bt) {bq[11]=bq[12];var bu=bq[12]; bq[12]=[0,bu[1],bu[2],bu[3],bq[4]+bq[6]|0];} return bt;} function bz(bw) {var bx=bw[6]-bw[5]|0,by=caml_create_string(bx); caml_blit_string(bw[2],bw[5],by,0,bx);return by;} function bQ(bG,bF,bA,bD) {var bB=bA<0?1:0; if(bB)var bC=bB;else {var bE=bD<0?1:0,bC=bE?bE:(bF.getLen()-bD|0)<bA?1:0;} if(bC)j(ar);var bH=bG[2]+bD|0; if(bG[3]<bH) {var bI=[0,bG[3]]; for(;;) {if(bI[1]<(bG[2]+bD|0)){bI[1]=caml_mul(2,bI[1]);continue;} if(bp<bI[1]){if((bG[2]+bD|0)<=bp?0:1)throw [0,a,aq];bI[1]=bp;} var bJ=caml_create_string(bI[1]);bn(bG[1],0,bJ,0,bG[2]);bG[1]=bJ; bG[3]=bI[1];break;}} bn(bF,bA,bG[1],bG[2],bD);bG[2]=bH;return 0;} function bP(bK,bM) {var bL=[0,[0,bK,0]],bN=bM[1]; if(bN){var bO=bN[1];bM[1]=bL;bO[2]=bL;return 0;}bM[1]=bL;bM[2]=bL; return 0;} var bR=[0,ai]; function bX(bS) {var bT=bS[2]; if(bT) {var bU=bT[1],bW=bU[1],bV=bU[2];bS[2]=bV;if(0===bV)bS[1]=0;return bW;} throw [0,bR];} function b0(bZ,bY){bZ[13]=bZ[13]+bY[3]|0;return bP(bY,bZ[27]);} var b1=1000000010;function b5(b3,b2){return b4(b3[17],b2,0,b2.getLen());} function b7(b6){return aW(b6[19],0);} function b_(b8,b9){return aW(b8[20],b9);} function cf(b$,cb,ca) {b7(b$);b$[11]=1; var cc=(b$[6]-ca|0)+cb|0,cd=b$[8],ce=caml_lessequal(cd,cc)?cd:cc; b$[10]=ce;b$[9]=b$[6]-b$[10]|0;return b_(b$,b$[10]);} function ci(ch,cg){return cf(ch,0,cg);} function cl(cj,ck){cj[9]=cj[9]-ck|0;return b_(cj,ck);} function df(cm) {try {for(;;) {var cn=cm[27][2];if(!cn)throw [0,bR]; var co=cn[1][1],cp=co[1],cr=co[3],cq=co[2],cs=cp<0?1:0, ct=cs?(cm[13]-cm[12]|0)<cm[9]?1:0:cs,cu=1-ct; if(cu) {bX(cm[27]);var cv=0<=cp?cp:b1; if(cq instanceof Array) switch(cq[0]){case 1: var cM=cq[2],cN=cq[1],cO=cm[2]; if(cO) {var cP=cO[1],cQ=cP[2]; switch(cP[1]){case 1:cf(cm,cM,cQ);break;case 2: cf(cm,cM,cQ);break; case 3:if(cm[9]<cv)cf(cm,cM,cQ);else cl(cm,cN);break; case 4: if(cm[11]||!(cm[9]<cv||((cm[6]-cQ|0)+cM|0)<cm[10])) cl(cm,cN); else cf(cm,cM,cQ);break; case 5:cl(cm,cN);break;default:cl(cm,cN);}} break; case 2: var cT=cq[2],cS=cq[1],cR=cm[6]-cm[9]|0,cU=cm[3]; if(cU) {var cV=cU[1][1],cW=cV[1]; if(cW) {var c2=cW[1]; try {var cX=cV[1]; for(;;) {if(!cX)throw [0,c];var cZ=cX[2],cY=cX[1]; if(!caml_greaterequal(cY,cR)){var cX=cZ;continue;} var c0=cY;break;}} catch(c1){if(c1[1]===c?0:1)throw c1;var c0=c2;}var c3=c0;} else var c3=cR;var c4=c3-cR|0; if(0<=c4)cl(cm,c4+cS|0);else cf(cm,c3+cT|0,cm[6]);} break; case 3: var c5=cq[2],c$=cq[1]; if(cm[8]<(cm[6]-cm[9]|0)) {var c6=cm[2]; if(c6) {var c7=c6[1],c8=c7[2],c9=c7[1], c_=cm[9]<c8?0===c9?0:5<=c9?1:(ci(cm,c8),1):0; c_;} else b7(cm);} var db=cm[9]-c$|0,da=1===c5?1:cm[9]<cv?c5:5; cm[2]=[0,[0,da,db],cm[2]];break; case 4:cm[3]=[0,cq[1],cm[3]];break;case 5: var dc=cq[1];b5(cm,aW(cm[23],dc));cm[5]=[0,dc,cm[5]];break; default:var dd=cq[1];cm[9]=cm[9]-cv|0;b5(cm,dd);cm[11]=0;} else switch(cq){case 1: var cw=cm[2]; if(cw){var cx=cw[2],cy=cx?(cm[2]=cx,1):0;}else var cy=0; cy;break; case 2:var cz=cm[3];if(cz)cm[3]=cz[2];break;case 3: var cA=cm[2];if(cA)ci(cm,cA[1][2]);else b7(cm);break; case 4: if(cm[10]!==(cm[6]-cm[9]|0)) {var cB=bX(cm[27]),cC=cB[1];cm[12]=cm[12]-cB[3]|0; cm[9]=cm[9]+cC|0;} break; case 5: var cD=cm[5]; if(cD){var cE=cD[2];b5(cm,aW(cm[24],cD[1]));cm[5]=cE;}break; default: var cF=cm[3]; if(cF) {var cG=cF[1][1], cH= function(cH) {return function(cL,cI) {if(cI) {var cK=cI[2],cJ=cI[1]; if(caml_lessthan(cL,cJ))return [0,cL,cI]; return [0,cJ,cH(cL,cK)];} return [0,cL,0];};} (cH); cG[1]=cH(cm[6]-cm[9]|0,cG[1]);} } cm[12]=cr+cm[12]|0;continue;} break;}} catch(de){if(de[1]===bR)return 0;throw de;}return cu;} function dj(di,dh,dg){return [0,di,dh,dg];} var dk=[0,[0,-1,dj(-1,ah,0)],0];function dm(dl){dl[1]=dk;return 0;} function dA(dn,dw) {var dp=dn[1]; if(dp) {var dq=dp[1],dr=dq[2],dt=dq[1],ds=dr[1],du=dp[2],dv=dr[2]; if(dt<dn[12])return dm(dn); if(dv instanceof Array) switch(dv[0]){case 1:case 2: var dx=dw?(dr[1]=dn[13]+ds|0,(dn[1]=du,0)):dw;return dx; case 3: var dy=1-dw,dz=dy?(dr[1]=dn[13]+ds|0,(dn[1]=du,0)):dy;return dz; default:} return 0;} return 0;} function dL(dB,dJ) {var dC=0; for(;;) {if(1<dB[14]) {if(1<dB[14]) {if(dB[14]<dB[15]){b0(dB,[0,0,1,0]);dA(dB,1);dA(dB,0);} dB[14]=dB[14]-1|0;} continue;} dB[13]=b1;df(dB);if(dC)b7(dB);dB[12]=1;dB[13]=1;var dD=dB[27]; dD[1]=0;dD[2]=0;dm(dB);dB[2]=0;dB[3]=0;dB[4]=0;dB[5]=0;dB[10]=0; dB[14]=0;dB[9]=dB[6];dB[14]=dB[14]+1|0;var dE=3,dF=0; if(dB[14]<dB[15]) {var dG=dj(-dB[13]|0,[3,dF,dE],0);b0(dB,dG);if(0)dA(dB,1); dB[1]=[0,[0,dB[13],dG],dB[1]];} else if(dB[14]===dB[15]) {var dH=dB[16],dI=dH.getLen();b0(dB,dj(dI,[0,dH],dI));df(dB);} return aW(dB[18],0);}} function dN(dK){return aD(aj,aD(dK,ak));} function dQ(dM){return aD(al,aD(dM,am));}function dP(dO){return 0;} var dR=80,dS=caml_create_string(dR);caml_fill_string(dS,0,dR,32); function d0(dW,dT) {var dU=dT; for(;;) {var dV=0<dU?1:0; if(dV) {if(80<dU){b4(dW[17],dS,0,80);var dX=dU-80|0,dU=dX;continue;} return b4(dW[17],dS,0,dU);} return dV;}} function d_(dY,dZ){return b4(dY[17],ap,0,1);} function d$(d8,d7) {function d3(d1){return 0;}function d5(d2){return 0;} var d4=[0,0,0],d6=dj(-1,ao,0);bP(d6,d4); var d9= [0,[0,[0,1,d6],dk],0,0,0,0,78,10,78-10|0,78,0,1,1,1,1,aE,an,d8,d7,d5, d3,0,0,dN,dQ,dP,dP,d4]; d9[19]=aW(d_,d9);d9[20]=aW(d0,d9);return d9;} function ed(ea) {function ec(eb){return caml_ml_flush(ea);}return d$(aW(aV,ea),ec);} var ee=512,ef=1<=ee?ee:1,eg=bp<ef?bp:ef,eh=caml_create_string(eg), ej=[0,eh,0,eg,eh]; function ek(ei){return 0;}d$(aW(bQ,ej),ek);var el=ed(aO);ed(aN); var em=aW(dL,el),en=aU[1];aU[1]=function(eo){aW(em,0);return aW(en,0);}; 32===bo;var ep=[0,ab],ev=42; function et(eq) {var er=eq[1]; {if(3===er[0]) {var es=er[1],eu=et(es);if(eu!==es)eq[1]=[3,eu];return eu;} return eq;}} function ex(ew){return et(ew);} function eQ(ey,eF) {var ez=ey,eA=0; for(;;) {if(ez instanceof Array) switch(ez[0]){case 1: var eE=ez[1]; if(eA){aW(eE,eF);var eH=eA[2],eG=eA[1],ez=eG,eA=eH;continue;} var eD=aW(eE,eF);break; case 2:var eJ=[0,ez[2],eA],eI=ez[1],ez=eI,eA=eJ;continue;default: var eK=ez[1][1]; if(eK) {var eL=eK[1]; if(eA){aW(eL,eF);var eN=eA[2],eM=eA[1],ez=eM,eA=eN;continue;} var eD=aW(eL,eF);} else{if(eA){var eP=eA[2],eO=eA[1],ez=eO,eA=eP;continue;}var eD=eA;} } else{if(eA){var eC=eA[2],eB=eA[1],ez=eB,eA=eC;continue;}var eD=eA;} return eD;}} function eT(eR,eS) {if(eR instanceof Array?0:1)return eS; if(eS instanceof Array?0:1)return eR;return [2,eR,eS];} function eX(eU) {if(eU instanceof Array) switch(eU[0]){case 0:var eV=eU[1][1],eW=eV?eU:eV;return eW;case 2: var eY=eX(eU[2]);return eT(eX(eU[1]),eY); default:} return eU;} function e0(eZ){return [0,[1,eZ]];} function e4(e1,e2) {var e3=(e1[2] instanceof Array?0:1)?[1,e2]:[2,[1,e2],e1[2]];e1[2]=e3; return 0;} var e5=[];caml_update_dummy(e5,[0,e5,e5]); var e6=null,fa=undefined,e$=false,e_=Array; function e9(e7,e8){e7.appendChild(e8);return 0;}var fe=caml_js_on_ie(0)|0; function fd(fb,fc){if(fb)return aW(fc,fb[1]);return fb;} function fh(fg,ff){return fg.createElement(ff.toString());} function fk(fj,fi){return fh(fj,fi);}function fm(fl){return fk(fl,Z);} var fn=window,fo=fn.document; function fw(fu,fr) {var fp=[0,0],fq=0,fs=fr.getLen()-1|0; if(fq<=fs) {var ft=fq; for(;;) {if(fr.safeGet(ft)===fu)fp[1]+=1;var fv=ft+1|0; if(fs!==ft){var ft=fv;continue;}break;}} return fp[1];} function fB(fx,fz) {var fy=fx[12]; if(fy instanceof Array&&1===fy[0]){fx[8]=[0,fz,fx[8]];return 0;} var fA=fx[7];fx[7]=[0,aW(fx[1][20],fz),fA];return 0;} function fE(fC,fD){return fB(fC,aW(fC[1][1],fD));} function fH(fG,fF){return fE(fG,bz(fF));} function fL(fJ,fI,fK){if(0===fI){fJ[3]=fK;return 0;}fJ[2]=fK;return 0;} function fS(fN,fM,fR,fP) {var fO=0===fM?fN[1][2]:fN[1][3],fQ=fN[7];fN[12]=fP;fN[7]=fR; fB(fN,aW(fO,a4(fQ)));return fL(fN,fM,0);} function fZ(fU,fT) {var fV=0===fT?fU[3]:fU[2]; if(fV) {var fW=fU[12]; if(fW instanceof Array&&0===fW[0]) {var fX=fW[3],fY=fW[2]; if(caml_equal(fW[1],fT))return fS(fU,fT,fY,fX);} return fE(fU,K);} fU[12]=[0,fT,fU[7],fU[12]];fU[7]=0;return fL(fU,fT,1);} function f5(f0,f3,f1) {f0[12]=f1;var f2=f0[7];f0[7]=[0,f4(f0[1][7],f3,a4(f0[8])),f2];f0[8]=0; f0[5]=0;return 0;} function ga(f6) {var f7=f6[12]; if(f7 instanceof Array) switch(f7[0]){case 5:case 6:return 1;case 7: var f8=f7[2]; if(f8 instanceof Array&&6===f8[0]) {var f$=f8[2],f_=f8[1],f9=f7[1]; f6[12]=[6,[0,[0,f9,a4(f6[7])],f_],f$];f6[7]=0;return 1;} break; default:} return 0;} function gg(gb) {var gc=ga(gb); if(gc) {var gd=gb[12]; if(gd instanceof Array) switch(gd[0]){case 5:return 1;case 6: var ge=gd[2]; if(ge instanceof Array&&5===ge[0]) {var gf=ge[1];gb[12]=[5,[0,a4(gd[1]),gf]];return 1;} break; default:} throw [0,d,L];} return gc;} function gy(gh,gr) {for(;;) {var gi=gh[12]; if(gi instanceof Array) switch(gi[0]){case 1:f5(gh,gi[1],gi[2]);continue;case 2: var gk=gi[1]-1|0; if(gk<0||4<gk)var gl=gh[1][15];else switch(gk){case 1:var gl=gh[1][11];break;case 2: var gl=gh[1][12];break; case 3:var gl=gh[1][13];break;case 4:var gl=gh[1][14];break; default:var gl=gh[1][10];} var gm=gh[11];gh[11]=[0,aW(gl,a4(gh[7])),gm];gh[7]=0;gh[4]=0; gh[12]=0;return 0; case 3: var go=gi[1],gn=gh[10];gh[10]=[0,[0,a4(gh[7]),0],gn];gh[12]=go; gh[7]=0;continue; case 4: var gq=gi[3],gp=gi[2],gs=gi[1]; if(gr<gh[6]) {gh[6]=gh[6]-1|0; var gt=0===gs?gh[1][16]:gh[1][17],gu=aW(gt,a4(gh[10])); if(0===gh[6])gh[11]=[0,gu,gh[11]];else {if(gp) {var gv=gp[1], gw=gv[2]?0:(gh[10]=[0,[0,gv[1],[0,gu]],gp[2]],1);} else var gw=0;if(!gw)throw [0,d,R];} gh[12]=gq;continue;} return 0; case 5: var gx=gh[11];gh[11]=[0,aW(gh[1][19],a4(gi[1])),gx];gh[12]=0; return 0; case 6:throw [0,d,Q];case 7:gg(gh);continue;default: fS(gh,gi[1],gi[2],gi[3]);continue; } else {if(0!==gh[7]) {var gj=gh[11];gh[11]=[0,aW(gh[1][8],a4(gh[7])),gj];gh[7]=0;} gh[12]=0;return 0;}}} function gR(gz,gL,gA) {var gB=gA===(gz[6]+1|0)?1:0; if(gB){var gD=gB,gC=0;}else {var gE=gA<=gz[6]?1:0; if(gE) {var gG=gz[6]-gA|0,gF=gz[12],gH=gG; for(;;) {if(gF instanceof Array) switch(gF[0]){case 0:var gJ=gF[3],gF=gJ;continue;case 3: var gK=gF[1],gF=gK;continue; case 4: var gO=gF[3],gM=gF[1]; if(0!==gH){var gP=gH-1|0,gF=gO,gH=gP;continue;} var gN=caml_equal(gM,gL),gC=1,gI=0;break; default:var gI=1;} else var gI=1;if(gI)throw [0,d,P];break;}} else{var gD=gE,gC=0;}} if(!gC)var gN=gD;if(1!==gA&&!gN)return 0;var gQ=gN?gA:0;gy(gz,gQ); if(gA===gz[6])gz[12]=[3,gz[12]];else {gz[6]=gA;gz[12]=[3,[4,gL,gz[10],gz[12]]];gz[10]=0;} return 1;} function gU(gS,gT) {if(!gg(gS)){gy(gS,0);gS[12]=M;}gS[12]=[7,gT,[6,0,gS[12]]];return 0;} function g9(gY,gV) {var gW=0; for(;;) {var gX=bv(g,gW,gV);if(gX<0||8<gX){aW(gV[1],gV);var gW=gX;continue;} switch(gX){case 1: gy(gY,0);if(0!==gY[12])throw [0,d,O];gY[12]=[2,fw(61,bz(gV))]; gY[4]=1;var g0=gZ(gY,gV);break; case 2: var g1=fw(42,bz(gV)); if(!gR(gY,0,g1)) {var g2=bz(gV),g3=g2.getLen()-g1|0;if(0<g3)fE(gY,bh(g2,0,g3)); var g4=1,g5=caml_div(g1,2); if(g4<=g5) {var g6=g4; for(;;) {fZ(gY,0);var g7=g6+1|0;if(g5!==g6){var g6=g7;continue;}break;}} if(1===(g1&1))fE(gY,N);} var g0=gZ(gY,gV);break; case 3:if(!gR(gY,1,fw(35,bz(gV))))fH(gY,gV);var g0=gZ(gY,gV);break; case 4: gy(gY,0);var g8=gY[11];gY[11]=[0,aW(gY[1][18],0),g8]; var g0=g9(gY,gV);break; case 5:gy(gY,0);var g0=g_(gY,gV);break;case 6: gU(gY,0);var g0=gZ(gY,gV);break; case 7:gU(gY,1);var g0=gZ(gY,gV);break;case 8:var g0=gZ(gY,gV);break; default:gy(gY,0);var g0=g9(gY,gV);} return g0;}} function gZ(hc,g$) {var ha=25; for(;;) {var hb=bv(g,ha,g$);if(hb<0||17<hb){aW(g$[1],g$);var ha=hb;continue;} switch(hb){case 1:fZ(hc,0);var hd=gZ(hc,g$);break;case 2: fZ(hc,1);var hd=gZ(hc,g$);break; case 3:if(hc[4])gy(hc,0);else fH(hc,g$);var hd=g9(hc,g$);break; case 4: if(hc[5])var hd=fH(hc,g$);else {var he=bz(g$),hf=bh(he,2,he.getLen()-4|0),hg=hc[7]; hc[7]=[0,f4(hc[1][7],hf,[0,aW(hc[1][1],hf),0]),hg]; var hd=gZ(hc,g$);} break; case 5: if(hc[5])fH(hc,g$);else {var hh=bz(g$);hc[12]=[1,bh(hh,2,hh.getLen()-3|0),hc[12]];hc[5]=1;} var hd=gZ(hc,g$);break; case 6: var hi=hc[12], hj=hi instanceof Array?1===hi[0]?(f5(hc,hi[1],hi[2]),1):0:0; if(!hj)fH(hc,g$);var hd=gZ(hc,g$);break; case 7: if(hc[5])var hd=fH(hc,g$);else {var hk=bz(g$),hl=hc[7]; hc[7]=[0,f4(hc[1][7],hk,[0,aW(hc[1][1],hk),0]),hl]; var hd=gZ(hc,g$);} break; case 8:fB(hc,aW(hc[1][4],0));var hd=gZ(hc,g$);break;case 9: var hm=bz(g$),hn=0,hp=124,ho=hm.getLen(); for(;;) {if(ho<=hn)throw [0,c]; if(hm.safeGet(hn)===hp?0:1){var hr=hn+1|0,hn=hr;continue;} var hq=bh(hm,2,hn-2|0); fB(hc,f4(hc[1][5],hq,bh(hm,hn+1|0,(hm.getLen()-hn|0)-3|0))); var hd=gZ(hc,g$);break;} break; case 10: var hs=bz(g$); fB (hc, aW (hc[1][6], [0,aW(hc[1][20],aW(hc[1][1],bh(hs,3,hs.getLen()-6|0))),0])); var hd=gZ(hc,g$);break; case 11:fE(hc,bh(bz(g$),1,1));var hd=gZ(hc,g$);break;case 12: if(!gg(hc))fH(hc,g$);var hd=g9(hc,g$);break; case 13: if(ga(hc))hc[12]=[7,0,hc[12]];else fH(hc,g$);var hd=gZ(hc,g$);break; case 14: if(ga(hc))hc[12]=[7,1,hc[12]];else fH(hc,g$);var hd=gZ(hc,g$);break; case 15:fH(hc,g$);var hd=gZ(hc,g$);break;case 16: bz(g$);var hd=gZ(hc,g$);break; case 17:var hd=gy(hc,0);break;default: if(hc[4])gy(hc,0);else fH(hc,g$);var hd=g9(hc,g$); } return hd;}} function g_(hw,ht) {var hu=77; for(;;) {var hv=bv(g,hu,ht);if(hv<0||2<hv){aW(ht[1],ht);var hu=hv;continue;} switch(hv){case 1: var hx=hw[11];hw[11]=[0,aW(hw[1][9],a4(hw[9])),hx];hw[9]=0; var hy=g9(hw,ht);break; case 2:var hz=hw[9];hw[9]=[0,bz(ht),hz];var hy=g_(hw,ht);break; default: var hA=bz(ht),hB=hw[9];hw[9]=[0,bh(hA,1,hA.getLen()-1|0),hB]; var hy=g_(hw,ht); } return hy;}} function hD(hC){return hC;} function hH(hF,hG){bc(function(hE){return e9(hF,hE);},hG);return hD(hF);} function hR(hM,hP,hO) {var hQ= a8 (function(hI) {var hJ=hI[2],hL=hI[1],hK=hJ?[0,hJ[1],0]:0,hN=aG(hL,hK); return hH(hM.createElement(p.toString()),hN);}, hO); return hH(hM.createElement(hP.toString()),hQ);} function h1(hS){return hS;} function h3(hY) {var hZ= a8 (function(hW) {var hX= a8 (function(hT) {var hV=hT[2],hU=hT[1]?u:t; return hH(fo.createElement(hU.toString()),hV);}, hW); return hH(fo.createElement(s.toString()),hX);}, hY), h0=[0,hH(fo.createElement(r.toString()),hZ),0]; return hH(fo.createElement(q.toString()),h0);} function h5(h2){return hD(fo.createElement(v.toString()));} function h7(h4){return hR(fo,w,h4);}function h9(h6){return hR(fo,x,h6);} function h$(h8){return hH(fo.createElement(y.toString()),h8);} function ib(h_){return hH(fo.createElement(z.toString()),h_);} function id(ia){return hH(fo.createElement(A.toString()),ia);} function ig(ic){return hH(fo.createElement(B.toString()),ic);} function ii(ie){return hH(fo.createElement(C.toString()),ie);} function iv(ih){return hH(fo.createElement(D.toString()),ih);} function ix(ik) {var ij=fo.createElement(E.toString()); if(ik) {var im=ik[2],il=ik[1],io=[0,0],ip=[0,0]; bc(function(iq){io[1]+=1;ip[1]=ip[1]+iq.getLen()|0;return 0;},ik); var ir=caml_create_string(ip[1]+caml_mul(h.getLen(),io[1]-1|0)|0); caml_blit_string(il,0,ir,0,il.getLen());var is=[0,il.getLen()]; bc (function(it) {caml_blit_string(h,0,ir,is[1],h.getLen()); is[1]=is[1]+h.getLen()|0; caml_blit_string(it,0,ir,is[1],it.getLen()); is[1]=is[1]+it.getLen()|0;return 0;}, im); var iu=ir;} else var iu=av;e9(ij,fo.createTextNode(iu.toString()));return hD(ij);} function iB(iw){return hH(fo.createElement(F.toString()),iw);} function iD(iz,iA) {var iy=fk(fo,$);iy.href=iz.toString();return hH(iy,iA);} function iH(iC){return hH(fo.createElement(G.toString()),iC);} function iJ(iF,iG) {var iE=fk(fo,aa);iE.src=iF.toString();iE.alt=iG.toString(); return hD(iE);} function iL(iI){return hD(fo.createElement(H.toString()));} function iN(iK){return hH(fo.createElement(I.toString()),iK);} function iP(iM){return hH(fo.createElement(J.toString()),iM);} var jd= [0,function(iO){return hD(fo.createTextNode(iO.toString()));},iP,iN,iL, iJ,iH,iD,iB,ix,iv,ii,ig,id,ib,h$,h9,h7,h5,h3,h1]; fn.onload= caml_js_wrap_callback (function(iQ) {iQ===fa;var iR=fo.getElementById(n.toString()); if(iR==e6)throw [0,d,o];var iS=0,iT=0; if(0===iT&&0===iS){var iU=fh(fo,f),iV=1;}else var iV=0; if(!iV) if(fe) {var iW=new e_;iW.push(U.toString(),f.toString()); fd (iT, function(iX) {iW.push(V.toString(),caml_js_html_escape(iX),W.toString()); return 0;}); fd (iS, function(iY) {iW.push(X.toString(),caml_js_html_escape(iY),Y.toString()); return 0;}); iW.push(T.toString()); var iU=fo.createElement(iW.join(S.toString()));} else {var iZ=fh(fo,f);fd(iT,function(i0){return iZ.type=i0;}); fd(iS,function(i1){return iZ.name=i1;});var iU=iZ;} iU.rows=20;iU.cols=80;var i2=fm(fo);i2.style.border=m.toString(); i2.style.padding=l.toString();e9(iR,iU);e9(iR,fk(fo,_));e9(iR,i2); function jp(i4,jl) {var i3=new MlWrappedString(iU.value); if(caml_string_notequal(i3,i4)) {try {var jc=[0],jb=1,ja=0,i$=0,i_=0,i9=0,i8=0,i7=i3.getLen(), i6=aD(i3,as), jf= [0,function(i5){i5[9]=1;return 0;},i6,i7,i8,i9,i_,i$,ja,jb,jc, e,e], je=[0,jd,0,0,0,0,0,0,0,0,0,0,0]; g9(je,jf);var jg=a4(je[11]),ji=hH(fm(fo),jg),jh=i2.firstChild; if(1-(jh==e6?1:0))i2.removeChild(jh);e9(i2,ji);} catch(jk){}var jj=20;} else{var jm=jl-1|0,jn=0,jo=caml_greaterequal(jn,jm)?jn:jm,jj=jo;} function jr(jq){return jp(i3,jj);} var js=0===jj?0.5:0.1,jt=[],jB=0,jA=0; caml_update_dummy (jt, [0, [2, [0, [0, function(jz) {var ju=et(jt),jv=ju[1]; if(2===jv[0]) {var jx=jv[1][2],jw=[1,[0,ep]];ju[1]=jw;var jy=eQ(jx,jw);} else var jy=0;return jy;}], jA,jB]]]); var jJ=js*1000, jK= fn.setTimeout (caml_js_wrap_callback (function(jI) {var jC=[0,0],jD=et(jt),jE=jD[1]; switch(jE[0]){case 1: if(jE[1][1]===ep){var jG=0,jF=1;}else var jF=0;break; case 2: var jH=jE[1][2];jD[1]=jC;var jG=eQ(jH,jC),jF=1;break; default:var jF=0;} if(!jF)var jG=j(ac);return jG;}), jJ); function jM(jL){return fn.clearTimeout(jK);}var jN=ex(jt)[1]; switch(jN[0]){case 1:var jO=jN[1][1]===ep?(jM(0),1):0;break; case 2: e4 (jN[1], function(jP) {if(1===jP[0]&&jP[1][1]===ep) {try {var jQ=jM(0);}catch(jR){return 0;}return jQ;} return 0;}); var jO=1;break; default:var jO=0;} jO;var jS=ex(jt)[1]; switch(jS[0]){case 1:var jT=e0(jS[1]);break;case 2: var jU=jS[1],jV=[0,[2,[0,jU[1],0,0]]]; e4 (jU, function(jW) {switch(jW[0]){case 0: try {var jX=jr(jW[1]),jY=jX;}catch(jZ){var jY=e0(jZ);} var j0=ex(jV),j1=ex(jY),j2=j0[1]; if(2===j2[0]) if(j0===j1)var j3=0;else {var j4=j2[1],j5=j1[1]; if(2===j5[0]) {var j6=j5[1];j1[1]=[3,j0];j4[1][1]=j6[1][1]; var j7=eT(j4[2],j6[2]),j8=j4[3]+j6[3]|0, j3=ev< j8?(j4[3]=0,(j4[2]=eX(j7),0)):(j4[3]=j8,(j4[2]=j7,0));} else{j0[1]=j5;var j3=eQ(j4[2],j5);}} else var j3=j(ad);return j3; case 1: var j9=[1,jW[1]],j_=ex(jV),j$=j_[1]; if(2===j$[0]){var ka=j$[1][2];j_[1]=j9;var kb=eQ(ka,j9);} else var kb=j(ae);return kb; default:throw [0,d,ag];}}); var jT=jV;break; case 3:throw [0,d,af];default:var jT=jr(jS[1]);} return jT;} jp(k,0);return e$;}); aY(0);return;} ());