// This program was compiled from OCaml by js_of_ocaml 1.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_invalid_argument (msg) {
caml_raise_with_string(caml_global_data[4], msg);
}
function caml_array_bound_error () {
caml_invalid_argument("index out of bounds");
}
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 = this.fullBytes = param;
this.last = this.len = param.length;
}
}
MlString.prototype = {
string:null,
bytes:null,
fullBytes: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 = this.fullBytes = 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.fullBytes;
if (b !== null) return b;
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;
}
this.fullBytes = b;
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 = this.fullBytes = 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(); },
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.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.fullBytes = 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.fullBytes = this.string = null;
}
var l = ofs + len;
for (var 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_array_get (array, index) {
if ((index < 0) || (index >= array.length - 1)) caml_array_bound_error();
return array[index+1];
}
function caml_array_set (array, index, newval) {
if ((index < 0) || (index >= array.length - 1)) caml_array_bound_error();
array[index+1]=newval; return 0;
}
function caml_blit_string(s1, i1, s2, i2, len) {
if (len === 0) return;
if (i2 === s2.last && s2.bytes != null) {
var b = s1.bytes;
if (b == null) b = s1.toBytes ();
if (i1 > 0 || s1.last > len) b = b.slice(i1, i1 + len);
s2.bytes += b;
s2.last += b.length;
return;
}
var a = s2.array;
if (!a) a = s2.toArray(); else { s2.bytes = s2.string = null; }
s1.blitToArray (i1, a, i2, len);
}
function caml_call_gen(f, args) {
if(f.fun)
return caml_call_gen(f.fun, 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_classify_float (x) {
if (isFinite (x)) {
if (Math.abs(x) >= 2.2250738585072014e-308) return 0;
if (x != 0) return 1;
return 2;
}
return isNaN(x)?4:3;
}
function caml_create_string(len) {
if (len < 0) caml_invalid_argument("String.create");
return new MlMakeString(len);
}
function caml_int64_compare(x,y) {
var x3 = x[3] << 16;
var 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) {
var stack = [];
for(;;) {
if (!(total && a === b)) {
if (a instanceof MlString) {
if (b instanceof MlString) {
if (a != b) {
var x = a.compare(b);
if (x != 0) return x;
}
} else
return 1;
} else if (a instanceof Array && a[0] === (a[0]|0)) {
var ta = a[0];
if (ta === 250) {
a = a[1];
continue;
} else if (b instanceof Array && b[0] === (b[0]|0)) {
var tb = b[0];
if (tb === 250) {
b = b[1];
continue;
} else if (ta != tb) {
return (ta < tb)?-1:1;
} else {
switch (ta) {
case 248: {
var x = caml_int_compare(a[2], b[2]);
if (x != 0) return x;
break;
}
case 255: {
var x = caml_int64_compare(a, b);
if (x != 0) return x;
break;
}
default:
if (a.length != b.length) return (a.length < b.length)?-1:1;
if (a.length > 1) stack.push(a, b, 1);
}
}
} 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 (total && a != b) {
if (a == a) return 1;
if (b == b) return -1;
}
}
}
if (stack.length == 0) return 0;
var i = stack.pop();
b = stack.pop();
a = stack.pop();
if (i + 1 < a.length) stack.push(a, b, i + 1);
a = a[i];
b = b[i];
}
}
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_parse_format (fmt) {
fmt = fmt.toString ();
var len = fmt.length;
if (len > 31) caml_invalid_argument("format_int: format too long");
var f =
{ justify:'+', signstyle:'-', filler:' ', alternate:false,
base:0, signedconv:false, width:0, uppercase:false,
sign:1, prec:-1, conv:'f' };
for (var i = 0; i < len; i++) {
var c = fmt.charAt(i);
switch (c) {
case '-':
f.justify = '-'; break;
case '+': case ' ':
f.signstyle = c; break;
case '0':
f.filler = '0'; break;
case '#':
f.alternate = true; break;
case '1': case '2': case '3': case '4': case '5':
case '6': case '7': case '8': case '9':
f.width = 0;
while (c=fmt.charCodeAt(i) - 48, c >= 0 && c <= 9) {
f.width = f.width * 10 + c; i++
}
i--;
break;
case '.':
f.prec = 0;
i++;
while (c=fmt.charCodeAt(i) - 48, c >= 0 && c <= 9) {
f.prec = f.prec * 10 + c; i++
}
i--;
case 'd': case 'i':
f.signedconv = true; /* fallthrough */
case 'u':
f.base = 10; break;
case 'x':
f.base = 16; break;
case 'X':
f.base = 16; f.uppercase = true; break;
case 'o':
f.base = 8; break;
case 'e': case 'f': case 'g':
f.signedconv = true; f.conv = c; break;
case 'E': case 'F': case 'G':
f.signedconv = true; f.uppercase = true;
f.conv = c.toLowerCase (); break;
}
}
return f;
}
function caml_finish_formatting(f, rawbuffer) {
if (f.uppercase) rawbuffer = rawbuffer.toUpperCase();
var len = rawbuffer.length;
if (f.signedconv && (f.sign < 0 || f.signstyle != '-')) len++;
if (f.alternate) {
if (f.base == 8) len += 1;
if (f.base == 16) len += 2;
}
var buffer = "";
if (f.justify == '+' && f.filler == ' ')
for (var i = len; i < f.width; i++) buffer += ' ';
if (f.signedconv) {
if (f.sign < 0) buffer += '-';
else if (f.signstyle != '-') buffer += f.signstyle;
}
if (f.alternate && f.base == 8) buffer += '0';
if (f.alternate && f.base == 16) buffer += "0x";
if (f.justify == '+' && f.filler == '0')
for (var i = len; i < f.width; i++) buffer += '0';
buffer += rawbuffer;
if (f.justify == '-')
for (var i = len; i < f.width; i++) buffer += ' ';
return new MlWrappedString (buffer);
}
function caml_format_float (fmt, x) {
var s, f = caml_parse_format(fmt);
var prec = (f.prec < 0)?6:f.prec;
if (x < 0) { f.sign = -1; x = -x; }
if (isNaN(x)) { s = "nan"; f.filler = ' '; }
else if (!isFinite(x)) { s = "inf"; f.filler = ' '; }
else
switch (f.conv) {
case 'e':
var s = x.toExponential(prec);
var i = s.length;
if (s.charAt(i - 3) == 'e')
s = s.slice (0, i - 1) + '0' + s.slice (i - 1);
break;
case 'f':
s = x.toFixed(prec); break;
case 'g':
prec = prec?prec:1;
s = x.toExponential(prec - 1);
var j = s.indexOf('e');
var exp = +s.slice(j + 1);
if (exp < -4 || x.toFixed(0).length > prec) {
var i = j - 1; while (s.charAt(i) == '0') i--;
if (s.charAt(i) == '.') i--;
s = s.slice(0, i + 1) + s.slice(j);
i = s.length;
if (s.charAt(i - 3) == 'e')
s = s.slice (0, i - 1) + '0' + s.slice (i - 1);
break;
} else {
var p = prec;
if (exp < 0) { p -= exp + 1; s = x.toFixed(p); }
else while (s = x.toFixed(p), s.length > prec + 1) p--;
if (p) {
var i = s.length - 1; while (s.charAt(i) == '0') i--;
if (s.charAt(i) == '.') i--;
s = s.slice(0, i + 1);
}
}
break;
}
return caml_finish_formatting(f, s);
}
function caml_format_int(fmt, i) {
if (fmt.toString() == "%d") return new MlWrappedString(""+i);
var f = caml_parse_format(fmt);
if (i < 0) { if (f.signedconv) { f.sign = -1; i = -i; } else i >>>= 0; }
var s = i.toString(f.base);
if (f.prec >= 0) {
f.filler = ' ';
var n = f.prec - s.length;
if (n > 0) s = caml_str_repeat (n, '0') + s;
}
return caml_finish_formatting(f, s);
}
function caml_compare (a, b) { return caml_compare_val (a, b, true); }
function caml_greaterequal (x, y) { return +(caml_compare(x,y,false) >= 0); }
function caml_greaterthan (x, y) { return +(caml_compare(x,y,false) > 0); }
function caml_int64_add (x, y) {
var z1 = x[1] + y[1];
var z2 = x[2] + y[2] + (z1 >> 24);
var z3 = x[3] + y[3] + (z2 >> 24);
return [255, z1 & 0xffffff, z2 & 0xffffff, z3 & 0xffff];
}
function caml_int64_is_negative(x) {
return (x[3] << 16) < 0;
}
function caml_int64_neg (x) {
var y1 = - x[1];
var y2 = - x[2] + (y1 >> 24);
var y3 = - x[3] + (y2 >> 24);
return [255, y1 & 0xffffff, y2 & 0xffffff, y3 & 0xffff];
}
function caml_int64_of_int32 (x) {
return [255, x & 0xffffff, (x >> 24) & 0xffffff, (x >> 31) & 0xffff]
}
function caml_int64_ucompare(x,y) {
if (x[3] > y[3]) return 1;
if (x[3] < y[3]) 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_int64_lsl1 (x) {
x[3] = (x[3] << 1) | (x[2] >> 23);
x[2] = ((x[2] << 1) | (x[1] >> 23)) & 0xffffff;
x[1] = (x[1] << 1) & 0xffffff;
}
function caml_int64_lsr1 (x) {
x[1] = ((x[1] >>> 1) | (x[2] << 23)) & 0xffffff;
x[2] = ((x[2] >>> 1) | (x[3] << 23)) & 0xffffff;
x[3] = x[3] >>> 1;
}
function caml_int64_sub (x, y) {
var z1 = x[1] - y[1];
var z2 = x[2] - y[2] + (z1 >> 24);
var z3 = x[3] - y[3] + (z2 >> 24);
return [255, z1 & 0xffffff, z2 & 0xffffff, z3 & 0xffff];
}
function caml_int64_udivmod (x, y) {
var offset = 0;
var modulus = x.slice ();
var divisor = y.slice ();
var quotient = [255, 0, 0, 0];
while (caml_int64_ucompare (modulus, divisor) > 0) {
offset++;
caml_int64_lsl1 (divisor);
}
while (offset >= 0) {
offset --;
caml_int64_lsl1 (quotient);
if (caml_int64_ucompare (modulus, divisor) >= 0) {
quotient[1] ++;
modulus = caml_int64_sub (modulus, divisor);
}
caml_int64_lsr1 (divisor);
}
return [0,quotient, modulus];
}
function caml_int64_to_int32 (x) {
return x[1] | (x[2] << 24);
}
function caml_int64_is_zero(x) {
return (x[3]|x[2]|x[1]) == 0;
}
function caml_int64_format (fmt, x) {
var f = caml_parse_format(fmt);
if (f.signedconv && caml_int64_is_negative(x)) {
f.sign = -1; x = caml_int64_neg(x);
}
var buffer = "";
var wbase = caml_int64_of_int32(f.base);
var cvtbl = "0123456789abcdef";
do {
var p = caml_int64_udivmod(x, wbase);
x = p[1];
buffer = cvtbl.charAt(caml_int64_to_int32(p[2])) + buffer;
} while (! caml_int64_is_zero(x));
if (f.prec >= 0) {
f.filler = ' ';
var n = f.prec - buffer.length;
if (n > 0) buffer = caml_str_repeat (n, '0') + buffer;
}
return caml_finish_formatting(f, buffer);
}
function caml_raise_constant (tag) { throw [0, tag]; }
var caml_global_data = [0];
function caml_raise_zero_divide () {
caml_raise_constant(caml_global_data[6]);
}
function caml_int64_mod (x, y)
{
if (caml_int64_is_zero (y)) caml_raise_zero_divide ();
var sign = x[3] ^ y[3];
if (x[3] & 0x8000) x = caml_int64_neg(x);
if (y[3] & 0x8000) y = caml_int64_neg(y);
var r = caml_int64_udivmod(x, y)[2];
if (sign & 0x8000) r = caml_int64_neg(r);
return r;
}
function caml_int64_or (x, y) {
return [255, x[1]|y[1], x[2]|y[2], x[3]|y[3]];
}
function caml_int64_shift_left (x, s) {
s = s & 63;
if (s == 0) return x;
if (s < 24)
return [255,
(x[1] << s) & 0xffffff,
((x[2] << s) | (x[1] >> (24 - s))) & 0xffffff,
((x[3] << s) | (x[2] >> (24 - s))) & 0xffff];
if (s < 48)
return [255, 0,
(x[1] << (s - 24)) & 0xffffff,
((x[2] << (s - 24)) | (x[1] >> (48 - s))) & 0xffff];
return [255, 0, 0, (x[1] << (s - 48)) & 0xffff];
}
function caml_parse_sign_and_base (s) {
var i = 0, base = 10, sign = s.get(0) == 45?(i++,-1):1;
if (s.get(i) == 48)
switch (s.get(i + 1)) {
case 120: case 88: base = 16; i += 2; break;
case 111: case 79: base = 8; i += 2; break;
case 98: case 66: base = 2; i += 2; break;
}
return [i, sign, base];
}
function caml_parse_digit(c) {
if (c >= 48 && c <= 57) return c - 48;
if (c >= 65 && c <= 90) return c - 55;
if (c >= 97 && c <= 122) return c - 87;
return -1;
}
function caml_failwith (msg) {
caml_raise_with_string(caml_global_data[3], msg);
}
function caml_int_of_string (s) {
var r = caml_parse_sign_and_base (s);
var i = r[0], sign = r[1], base = r[2];
var threshold = -1 >>> 0;
var c = s.get(i);
var d = caml_parse_digit(c);
if (d < 0 || d >= base) caml_failwith("int_of_string");
var res = d;
for (;;) {
i++;
c = s.get(i);
if (c == 95) continue;
d = caml_parse_digit(c);
if (d < 0 || d >= base) break;
res = base * res + d;
if (res > threshold) caml_failwith("int_of_string");
}
if (i != s.getLen()) caml_failwith("int_of_string");
res = sign * res;
if ((res | 0) != res) caml_failwith("int_of_string");
return res;
}
function caml_is_printable(c) { return +(c > 31 && c < 127); }
function caml_js_from_byte_string (s) {return s.getFullBytes();}
var caml_js_regexps = { amp:/&/g, lt:/ 0)?toArray.call (arguments):[undefined];
return caml_call_gen(f, args);
}
}
function caml_lessequal (x, y) { return +(caml_compare(x,y,false) <= 0); }
function caml_make_vect (len, init) {
var b = [0]; for (var i = 1; i <= len; i++) b[i] = init; return b;
}
function MlStringFromArray (a) {
var len = a.length; this.array = a; this.len = this.last = len;
}
MlStringFromArray.prototype = new MlString ();
var caml_md5_string =
function () {
function add (x, y) { return (x + y) | 0; }
function xx(q,a,b,x,s,t) {
a = add(add(a, q), add(x, t));
return add((a << s) | (a >>> (32 - s)), b);
}
function ff(a,b,c,d,x,s,t) {
return xx((b & c) | ((~b) & d), a, b, x, s, t);
}
function gg(a,b,c,d,x,s,t) {
return xx((b & d) | (c & (~d)), a, b, x, s, t);
}
function hh(a,b,c,d,x,s,t) { return xx(b ^ c ^ d, a, b, x, s, t); }
function ii(a,b,c,d,x,s,t) { return xx(c ^ (b | (~d)), a, b, x, s, t); }
function md5(buffer, length) {
var i = length;
buffer[i >> 2] |= 0x80 << (8 * (i & 3));
for (i = (i & ~0x3) + 4;(i & 0x3F) < 56 ;i += 4)
buffer[i >> 2] = 0;
buffer[i >> 2] = length << 3;
i += 4;
buffer[i >> 2] = (length >> 29) & 0x1FFFFFFF;
var w = [0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476];
for(i = 0; i < buffer.length; i += 16) {
var a = w[0], b = w[1], c = w[2], d = w[3];
a = ff(a, b, c, d, buffer[i+ 0], 7, 0xD76AA478);
d = ff(d, a, b, c, buffer[i+ 1], 12, 0xE8C7B756);
c = ff(c, d, a, b, buffer[i+ 2], 17, 0x242070DB);
b = ff(b, c, d, a, buffer[i+ 3], 22, 0xC1BDCEEE);
a = ff(a, b, c, d, buffer[i+ 4], 7, 0xF57C0FAF);
d = ff(d, a, b, c, buffer[i+ 5], 12, 0x4787C62A);
c = ff(c, d, a, b, buffer[i+ 6], 17, 0xA8304613);
b = ff(b, c, d, a, buffer[i+ 7], 22, 0xFD469501);
a = ff(a, b, c, d, buffer[i+ 8], 7, 0x698098D8);
d = ff(d, a, b, c, buffer[i+ 9], 12, 0x8B44F7AF);
c = ff(c, d, a, b, buffer[i+10], 17, 0xFFFF5BB1);
b = ff(b, c, d, a, buffer[i+11], 22, 0x895CD7BE);
a = ff(a, b, c, d, buffer[i+12], 7, 0x6B901122);
d = ff(d, a, b, c, buffer[i+13], 12, 0xFD987193);
c = ff(c, d, a, b, buffer[i+14], 17, 0xA679438E);
b = ff(b, c, d, a, buffer[i+15], 22, 0x49B40821);
a = gg(a, b, c, d, buffer[i+ 1], 5, 0xF61E2562);
d = gg(d, a, b, c, buffer[i+ 6], 9, 0xC040B340);
c = gg(c, d, a, b, buffer[i+11], 14, 0x265E5A51);
b = gg(b, c, d, a, buffer[i+ 0], 20, 0xE9B6C7AA);
a = gg(a, b, c, d, buffer[i+ 5], 5, 0xD62F105D);
d = gg(d, a, b, c, buffer[i+10], 9, 0x02441453);
c = gg(c, d, a, b, buffer[i+15], 14, 0xD8A1E681);
b = gg(b, c, d, a, buffer[i+ 4], 20, 0xE7D3FBC8);
a = gg(a, b, c, d, buffer[i+ 9], 5, 0x21E1CDE6);
d = gg(d, a, b, c, buffer[i+14], 9, 0xC33707D6);
c = gg(c, d, a, b, buffer[i+ 3], 14, 0xF4D50D87);
b = gg(b, c, d, a, buffer[i+ 8], 20, 0x455A14ED);
a = gg(a, b, c, d, buffer[i+13], 5, 0xA9E3E905);
d = gg(d, a, b, c, buffer[i+ 2], 9, 0xFCEFA3F8);
c = gg(c, d, a, b, buffer[i+ 7], 14, 0x676F02D9);
b = gg(b, c, d, a, buffer[i+12], 20, 0x8D2A4C8A);
a = hh(a, b, c, d, buffer[i+ 5], 4, 0xFFFA3942);
d = hh(d, a, b, c, buffer[i+ 8], 11, 0x8771F681);
c = hh(c, d, a, b, buffer[i+11], 16, 0x6D9D6122);
b = hh(b, c, d, a, buffer[i+14], 23, 0xFDE5380C);
a = hh(a, b, c, d, buffer[i+ 1], 4, 0xA4BEEA44);
d = hh(d, a, b, c, buffer[i+ 4], 11, 0x4BDECFA9);
c = hh(c, d, a, b, buffer[i+ 7], 16, 0xF6BB4B60);
b = hh(b, c, d, a, buffer[i+10], 23, 0xBEBFBC70);
a = hh(a, b, c, d, buffer[i+13], 4, 0x289B7EC6);
d = hh(d, a, b, c, buffer[i+ 0], 11, 0xEAA127FA);
c = hh(c, d, a, b, buffer[i+ 3], 16, 0xD4EF3085);
b = hh(b, c, d, a, buffer[i+ 6], 23, 0x04881D05);
a = hh(a, b, c, d, buffer[i+ 9], 4, 0xD9D4D039);
d = hh(d, a, b, c, buffer[i+12], 11, 0xE6DB99E5);
c = hh(c, d, a, b, buffer[i+15], 16, 0x1FA27CF8);
b = hh(b, c, d, a, buffer[i+ 2], 23, 0xC4AC5665);
a = ii(a, b, c, d, buffer[i+ 0], 6, 0xF4292244);
d = ii(d, a, b, c, buffer[i+ 7], 10, 0x432AFF97);
c = ii(c, d, a, b, buffer[i+14], 15, 0xAB9423A7);
b = ii(b, c, d, a, buffer[i+ 5], 21, 0xFC93A039);
a = ii(a, b, c, d, buffer[i+12], 6, 0x655B59C3);
d = ii(d, a, b, c, buffer[i+ 3], 10, 0x8F0CCC92);
c = ii(c, d, a, b, buffer[i+10], 15, 0xFFEFF47D);
b = ii(b, c, d, a, buffer[i+ 1], 21, 0x85845DD1);
a = ii(a, b, c, d, buffer[i+ 8], 6, 0x6FA87E4F);
d = ii(d, a, b, c, buffer[i+15], 10, 0xFE2CE6E0);
c = ii(c, d, a, b, buffer[i+ 6], 15, 0xA3014314);
b = ii(b, c, d, a, buffer[i+13], 21, 0x4E0811A1);
a = ii(a, b, c, d, buffer[i+ 4], 6, 0xF7537E82);
d = ii(d, a, b, c, buffer[i+11], 10, 0xBD3AF235);
c = ii(c, d, a, b, buffer[i+ 2], 15, 0x2AD7D2BB);
b = ii(b, c, d, a, buffer[i+ 9], 21, 0xEB86D391);
w[0] = add(a, w[0]);
w[1] = add(b, w[1]);
w[2] = add(c, w[2]);
w[3] = add(d, w[3]);
}
var t = [];
for (var i = 0; i < 4; i++)
for (var j = 0; j < 4; j++)
t[i * 4 + j] = (w[i] >> (8 * j)) & 0xFF;
return t;
}
return function (s, ofs, len) {
var buf = [];
if (s.array) {
var a = s.array;
for (var i = 0; i < len; i+=4) {
var j = i + ofs;
buf[i>>2] = a[j] | (a[j+1] << 8) | (a[j+2] << 16) | (a[j+3] << 24);
}
for (; i < len; i++) buf[i>>2] |= a[i + ofs] << (8 * (i & 3));
} else {
var b = s.getFullBytes();
for (var i = 0; i < len; i+=4) {
var j = i + ofs;
buf[i>>2] =
b.charCodeAt(j) | (b.charCodeAt(j+1) << 8) |
(b.charCodeAt(j+2) << 16) | (b.charCodeAt(j+3) << 24);
}
for (; i < len; i++) buf[i>>2] |= b.charCodeAt(i + ofs) << (8 * (i & 3));
}
return new MlStringFromArray(md5(buf, len));
}
} ();
function caml_ml_out_channels_list () { return 0; }
function caml_mod(x,y) {
if (y == 0) caml_raise_zero_divide ();
return x%y;
}
function caml_mul(x,y) {
return ((((x >> 16) * y) << 16) + (x & 0xffff) * y)|0;
}
function caml_obj_is_block (x) { return +(x instanceof Array); }
function caml_obj_tag (x) { return (x instanceof Array)?x[0]:1000; }
function caml_register_global (n, v) { caml_global_data[n + 1] = v; }
var caml_named_values = {};
function caml_register_named_value(nm,v) {
caml_named_values[nm] = v; return 0;
}
function caml_string_equal(s1, s2) {
var b1 = s1.fullBytes;
var b2 = s2.fullBytes;
if (b1 != null && b2 != null) return (b1 == b2)?1:0;
return (s1.getFullBytes () == s2.getFullBytes ())?1:0;
}
function caml_string_notequal(s1, s2) { return 1-caml_string_equal(s1, s2); }
function caml_sys_get_config () {
return [0, new MlWrappedString("Unix"), 32];
}
function caml_sys_random_seed () {
return new Date()^0xffffffff*Math.random();
}
function caml_update_dummy (x, y) {
if( typeof y==="function" ) { x.fun = y; return 0; }
if( y.fun ) { x.fun = y.fun; return 0; }
var i = y.length; while (i--) x[i] = y[i]; return 0;
}
(function(){function jP(vL,vM,vN,vO,vP,vQ,vR){return vL.length==6?vL(vM,vN,vO,vP,vQ,vR):caml_call_gen(vL,[vM,vN,vO,vP,vQ,vR]);}function uM(vG,vH,vI,vJ,vK){return vG.length==4?vG(vH,vI,vJ,vK):caml_call_gen(vG,[vH,vI,vJ,vK]);}function fB(vC,vD,vE,vF){return vC.length==3?vC(vD,vE,vF):caml_call_gen(vC,[vD,vE,vF]);}function f6(vz,vA,vB){return vz.length==2?vz(vA,vB):caml_call_gen(vz,[vA,vB]);}function dH(vx,vy){return vx.length==1?vx(vy):caml_call_gen(vx,[vy]);}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=[255,16777215,16777215,32767],f=new MlString("File \"%s\", line %d, characters %d-%d: %s"),g=new MlString("/support_auto1_proxy.php");caml_register_global(5,[0,new MlString("Division_by_zero")]);caml_register_global(3,b);caml_register_global(2,a);var c9=[0,new MlString("Out_of_memory")],c8=[0,new MlString("Match_failure")],c7=[0,new MlString("Stack_overflow")],c6=new MlString("%.12g"),c5=new MlString("."),c4=new MlString("%d"),c3=new MlString("true"),c2=new MlString("false"),c1=new MlString("Pervasives.do_at_exit"),c0=new MlString("\\b"),cZ=new MlString("\\t"),cY=new MlString("\\n"),cX=new MlString("\\r"),cW=new MlString("\\\\"),cV=new MlString("\\'"),cU=new MlString("Char.chr"),cT=new MlString(""),cS=new MlString("String.blit"),cR=new MlString("String.sub"),cQ=new MlString("%d"),cP=new MlString("Buffer.add: cannot grow buffer"),cO=new MlString("%"),cN=new MlString(""),cM=new MlString(""),cL=new MlString("\""),cK=new MlString("\""),cJ=new MlString("'"),cI=new MlString("'"),cH=new MlString("."),cG=new MlString("printf: bad positional specification (0)."),cF=new MlString("%_"),cE=[0,new MlString("printf.ml"),144,8],cD=new MlString("''"),cC=new MlString("Printf: premature end of format string ``"),cB=new MlString("''"),cA=new MlString(" in format string ``"),cz=new MlString(", at char number "),cy=new MlString("Printf: bad conversion %"),cx=new MlString("Sformat.index_of_int: negative argument "),cw=new MlString(""),cv=new MlString(", %s%s"),cu=new MlString("Out of memory"),ct=new MlString("Stack overflow"),cs=new MlString("Pattern matching failed"),cr=new MlString("Assertion failed"),cq=new MlString("(%s%s)"),cp=new MlString(""),co=new MlString(""),cn=new MlString("(%s)"),cm=new MlString("%d"),cl=new MlString("%S"),ck=new MlString("_"),cj=[255,1,0,0],ci=[255,0,0,0],ch=new MlString("Random.int64"),cg=new MlString("Random.int"),cf=new MlString("x"),ce=[0,2061652523,1569539636,364182224,414272206,318284740,2064149575,383018966,1344115143,840823159,1098301843,536292337,1586008329,189156120,1803991420,1217518152,51606627,1213908385,366354223,2077152089,1774305586,2055632494,913149062,526082594,2095166879,784300257,1741495174,1703886275,2023391636,1122288716,1489256317,258888527,511570777,1163725694,283659902,308386020,1316430539,1556012584,1938930020,2101405994,1280938813,193777847,1693450012,671350186,149669678,1330785842,1161400028,558145612,1257192637,1101874969,1975074006,710253903,1584387944,1726119734,409934019,801085050],cd=[0,new MlString("src/core/lwt.ml"),477,20],cc=[0,new MlString("src/core/lwt.ml"),480,8],cb=[0,new MlString("src/core/lwt.ml"),440,20],ca=[0,new MlString("src/core/lwt.ml"),443,8],b$=new MlString("Lwt.fast_connect"),b_=new MlString("Lwt.connect"),b9=new MlString("Lwt.wakeup_exn"),b8=new MlString("Lwt.wakeup"),b7=new MlString("Lwt.Canceled"),b6=new MlString("br"),b5=new MlString("div"),b4=new MlString("label"),b3=new MlString("button"),b2=new MlString("textarea"),b1=new MlString("input"),b0=new MlString("\""),bZ=new MlString(" name=\""),bY=new MlString("\""),bX=new MlString(" type=\""),bW=new MlString("<"),bV=new MlString(">"),bU=new MlString(""),bT=new MlString("\\$&"),bS=new MlString("$$$$"),bR=new MlString("g"),bQ=new MlString("g"),bP=new MlString("[$]"),bO=new MlString("[\\][()\\\\|+*.?{}^$]"),bN=[0,new MlString(""),0],bM=new MlString(""),bL=new MlString(""),bK=new MlString("#"),bJ=new MlString(""),bI=new MlString("?"),bH=new MlString(""),bG=new MlString("/"),bF=new MlString("/"),bE=new MlString(":"),bD=new MlString(""),bC=new MlString("http://"),bB=new MlString(""),bA=new MlString("#"),bz=new MlString(""),by=new MlString("?"),bx=new MlString(""),bw=new MlString("/"),bv=new MlString("/"),bu=new MlString(":"),bt=new MlString(""),bs=new MlString("https://"),br=new MlString(""),bq=new MlString("#"),bp=new MlString(""),bo=new MlString("?"),bn=new MlString(""),bm=new MlString("/"),bl=new MlString("file://"),bk=new MlString(""),bj=new MlString(""),bi=new MlString(""),bh=new MlString(""),bg=new MlString(""),bf=new MlString(""),be=new MlString("="),bd=new MlString("&"),bc=new MlString("file"),bb=new MlString("file:"),ba=new MlString("http"),a$=new MlString("http:"),a_=new MlString("https"),a9=new MlString("https:"),a8=new MlString("%2B"),a7=new MlString("Url.Local_exn"),a6=new MlString("+"),a5=new MlString("Url.Not_an_http_protocol"),a4=new MlString("^([Hh][Tt][Tt][Pp][Ss]?)://([0-9a-zA-Z.-]+|\\[[0-9a-zA-Z.-]+\\]|\\[[0-9A-Fa-f:.]+\\])?(:([0-9]+))?/([^\\?#]*)(\\?([^#]*))?(#(.*))?$"),a3=new MlString("^([Ff][Ii][Ll][Ee])://([^\\?#]*)(\\?([^#])*)?(#(.*))?$"),a2=new MlString("browser can't read file: unimplemented"),a1=new MlString("utf8"),a0=[0,new MlString("file.ml"),132,15],aZ=new MlString("string"),aY=new MlString("can't retrieve file name: not implemented"),aX=new MlString(""),aW=new MlString("POST"),aV=new MlString("multipart/form-data; boundary="),aU=new MlString("POST"),aT=[0,new MlString("POST"),[0,new MlString("application/x-www-form-urlencoded")],126925477],aS=[0,new MlString("POST"),0,126925477],aR=new MlString("GET"),aQ=new MlString("?"),aP=new MlString("Content-type"),aO=new MlString("="),aN=new MlString("="),aM=new MlString("&"),aL=new MlString("Content-Type: application/octet-stream\r\n"),aK=new MlString("\"\r\n"),aJ=new MlString("\"; filename=\""),aI=new MlString("Content-Disposition: form-data; name=\""),aH=new MlString("\r\n"),aG=new MlString("\r\n"),aF=new MlString("\r\n"),aE=new MlString("--"),aD=new MlString("\r\n"),aC=new MlString("\"\r\n\r\n"),aB=new MlString("Content-Disposition: form-data; name=\""),aA=new MlString("--\r\n"),az=new MlString("--"),ay=new MlString("js_of_ocaml-------------------"),ax=new MlString("Msxml2.XMLHTTP"),aw=new MlString("Msxml3.XMLHTTP"),av=new MlString("Microsoft.XMLHTTP"),au=[0,new MlString("xmlHttpRequest.ml"),79,2],at=new MlString("XmlHttpRequest.Wrong_headers"),as=new MlString("\\"),ar=new MlString("\""),aq=new MlString(""),ap=new MlString("block"),ao=new MlString("none"),an=new MlString("none"),am=new MlString("none"),al=new MlString("none"),ak=new MlString("autotech_no_variant_message"),aj=new MlString("\xd0\x98\xd0\xb4\xd0\xb5\xd1\x82 \xd0\xbf\xd0\xbe\xd0\xb8\xd1\x81\xd0\xba. \xd0\xbf\xd0\xbe\xd0\xb4\xd0\xbe\xd0\xb6\xd0\xb4\xd0\xb8\xd1\x82\xd0\xb5."),ai=new MlString("block"),ah=new MlString("text"),ag=new MlString("detect_list"),af=new MlString("[AUTO] "),ae=new MlString("text"),ad=new MlString("no_variant"),ac=new MlString("autotech_usertext"),ab=new MlString("none"),aa=new MlString("autotech_selectquestion"),$=new MlString("autotech_question"),_=new MlString("autotech_answer"),Z=new MlString("autotech_answer_body"),Y=new MlString("autotech_to_chat"),X=new MlString("\xd0\xa1\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81\xd0\xb8\xd1\x82\xd1\x8c \xd1\x83 \xd0\xbf\xd0\xbe\xd0\xb4\xd0\xb4\xd0\xb5\xd1\x80\xd0\xb6\xd0\xba\xd0\xb8"),W=new MlString("autotech_prompt1"),V=new MlString("\xd0\x9d\xd0\xb0\xd0\xbf\xd0\xb8\xd1\x88\xd0\xb8\xd1\x82\xd0\xb5 \xd0\x9e\xd0\x94\xd0\x98\xd0\x9d \xd0\xb2\xd0\xbe\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81, \xd0\xbd\xd0\xb8\xd0\xb6\xd0\xb5 \xd0\xbf\xd0\xbe\xd1\x8f\xd0\xb2\xd1\x8f\xd1\x82\xd1\x81\xd1\x8f \xd0\xb3\xd0\xbe\xd1\x82\xd0\xbe\xd0\xb2\xd1\x8b\xd0\xb5 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82\xd1\x8b."),U=new MlString("none"),T=new MlString("none"),S=new MlString(""),R=new MlString("auto1_body"),Q=new MlString("autotech_input"),P=new MlString("block"),O=new MlString("\xd0\x9f\xd0\xbe\xd0\xbb\xd1\x83\xd1\x87\xd0\xb8\xd1\x82\xd1\x8c \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82"),N=new MlString("autotech_submit"),M=new MlString("none"),L=new MlString("none"),K=new MlString("-"),J=new MlString("text"),I=new MlString("name"),H=new MlString("question"),G=new MlString("\xd0\x9e\xd1\x88\xd0\xb8\xd0\xb1\xd0\xba\xd0\xb0: "),F=new MlString("\xd0\x9e\xd1\x88\xd0\xb8\xd0\xb1\xd0\xba\xd0\xb0: \xd0\xbf\xd0\xbe\xd0\xbb\xd1\x83\xd1\x87\xd0\xb5\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xba\xd0\xbe\xd1\x80\xd1\x80\xd0\xb5\xd0\xba\xd1\x82\xd0\xbd\xd1\x8b\xd0\xb9 \xd1\x80\xd0\xb5\xd0\xb7\xd1\x83\xd0\xbb\xd1\x8c\xd1\x82\xd0\xb0\xd1\x82"),E=new MlString("block"),D=new MlString("\xd0\x9e\xd0\xb6\xd0\xb8\xd0\xb4\xd0\xb0\xd0\xb9\xd1\x82\xd0\xb5..."),C=new MlString("name"),B=new MlString("resolve"),A=new MlString("autotech_select_variant_message"),z=new MlString("\xd0\x92\xd1\x8b\xd0\xb1\xd0\xb5\xd1\x80\xd0\xb8\xd1\x82\xd0\xb5 \xd0\xb2\xd0\xb0\xd1\x88 \xd0\xb2\xd0\xbe\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81 \xd0\xb8\xd0\xb7 \xd1\x81\xd0\xbf\xd0\xb8\xd1\x81\xd0\xba\xd0\xb0 \xd1\x81\xd0\xbd\xd0\xb8\xd0\xb7\xd1\x83. \xd0\x92\xd1\x8b \xd0\xbc\xd0\xbe\xd0\xb6\xd0\xb5\xd1\x82\xd0\xb5 \xd0\xb4\xd0\xbe\xd0\xbf\xd0\xb8\xd1\x81\xd0\xb0\xd1\x82\xd1\x8c \xd0\xb2\xd0\xbe\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81, \xd1\x81\xd0\xbf\xd0\xb8\xd1\x81\xd0\xbe\xd0\xba \xd0\xb1\xd1\x83\xd0\xb4\xd0\xb5\xd1\x82 \xd1\x83\xd1\x82\xd0\xbe\xd1\x87\xd0\xbd\xd1\x8f\xd1\x82\xd1\x8c\xd1\x81\xd1\x8f \xd0\xbf\xd0\xbe \xd0\xbc\xd0\xb5\xd1\x80\xd0\xb5 \xd0\xb2\xd0\xb2\xd0\xbe\xd0\xb4\xd0\xb0."),y=new MlString("autotech_no_variant_message"),x=new MlString("\xd0\x9d\xd0\xb5 \xd0\xbd\xd0\xb0\xd1\x88\xd0\xbb\xd0\xbe\xd1\x81\xd1\x8c \xd0\xb2\xd0\xb0\xd1\x80\xd0\xb8\xd0\xb0\xd0\xbd\xd1\x82\xd0\xbe\xd0\xb2. \xd0\xa1\xd1\x84\xd0\xbe\xd1\x80\xd0\xbc\xd1\x83\xd0\xbb\xd0\xb8\xd1\x80\xd1\x83\xd0\xb9\xd1\x82\xd0\xb5 \xd0\xb2\xd0\xbe\xd0\xbf\xd1\x80\xd0\xbe\xd1\x81 \xd0\xb8\xd0\xbd\xd0\xb0\xd1\x87\xd0\xb5."),w=new MlString(""),v=new MlString("-"),u=new MlString("autotech_variant"),t=new MlString("select_variant"),s=new MlString("radio"),r=new MlString("variant_"),q=new MlString("\xd0\x9f\xd0\xbe\xd0\xbb\xd1\x83\xd1\x87\xd0\xb5\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xba\xd0\xbe\xd1\x80\xd1\x80\xd0\xb5\xd0\xba\xd1\x82\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82 \xd0\xbe\xd1\x82 \xd1\x81\xd0\xb5\xd1\x80\xd0\xb2\xd0\xb5\xd1\x80\xd0\xb0. \xd0\x9f\xd0\xbe\xd0\xb6\xd0\xb0\xd0\xbb\xd1\x83\xd0\xb9\xd1\x81\xd1\x82\xd0\xb0, \xd0\xbf\xd0\xbe\xd0\xbf\xd1\x80\xd0\xbe\xd0\xb1\xd1\x83\xd0\xb9\xd1\x82\xd0\xb5 \xd0\xb5\xd1\x89\xd0\xb5 \xd1\x80\xd0\xb0\xd0\xb7. -- "),p=[0,new MlString("\xd0\x9f\xd0\xbe\xd0\xbb\xd1\x83\xd1\x87\xd0\xb5\xd0\xbd \xd0\xbd\xd0\xb5\xd0\xba\xd0\xbe\xd1\x80\xd1\x80\xd0\xb5\xd0\xba\xd1\x82\xd0\xbd\xd1\x8b\xd0\xb9 \xd0\xba\xd0\xbe\xd0\xb4 \xd0\xbe\xd1\x82\xd0\xb2\xd0\xb5\xd1\x82\xd0\xb0 \xd0\xbe\xd1\x82 \xd1\x81\xd0\xb5\xd1\x80\xd0\xb2\xd0\xb5\xd1\x80\xd0\xb0. \xd0\x9f\xd0\xbe\xd0\xb6\xd0\xb0\xd0\xbb\xd1\x83\xd0\xb9\xd1\x81\xd1\x82\xd0\xb0, \xd0\xbf\xd0\xbe\xd0\xbf\xd1\x80\xd0\xbe\xd0\xb1\xd1\x83\xd0\xb9\xd1\x82\xd0\xb5 \xd0\xb5\xd1\x89\xd0\xb5 \xd1\x80\xd0\xb0\xd0\xb7.")],o=new MlString("__sid"),n=new MlString("__f"),m=new MlString("ie6_fake"),l=new MlString("\xd0\x9e\xd1\x88\xd0\xb8\xd0\xb1\xd0\xba\xd0\xb0: "),k=new MlString("");function j(h){throw [0,a,h];}function c_(i){throw [0,b,i];}function dj(c$,db){var da=c$.getLen(),dc=db.getLen(),dd=caml_create_string(da+dc|0);caml_blit_string(c$,0,dd,0,da);caml_blit_string(db,0,dd,da,dc);return dd;}function dx(de){return caml_format_int(c4,de);}function dy(df){var dg=caml_format_float(c6,df),dh=0,di=dg.getLen();for(;;){if(di<=dh)var dk=dj(dg,c5);else{var dl=dg.safeGet(dh),dm=48<=dl?58<=dl?0:1:45===dl?1:0;if(dm){var dn=dh+1|0,dh=dn;continue;}var dk=dg;}return dk;}}function dq(dp,dr){if(dp){var ds=dp[1];return [0,ds,dq(dp[2],dr)];}return dr;}function dz(dw){var dt=caml_ml_out_channels_list(0);for(;;){if(dt){var du=dt[2];try {}catch(dv){}var dt=du;continue;}return 0;}}caml_register_named_value(c1,dz);function dP(dA){var dB=dA,dC=0;for(;;){if(dB){var dD=dB[2],dE=[0,dB[1],dC],dB=dD,dC=dE;continue;}return dC;}}function dJ(dG,dF){if(dF){var dI=dF[2],dK=dH(dG,dF[1]);return [0,dK,dJ(dG,dI)];}return 0;}function dQ(dN,dL){var dM=dL;for(;;){if(dM){var dO=dM[2];dH(dN,dM[1]);var dM=dO;continue;}return 0;}}function eb(dR,dT){var dS=caml_create_string(dR);caml_fill_string(dS,0,dR,dT);return dS;}function ec(dW,dU,dV){if(0<=dU&&0<=dV&&!((dW.getLen()-dV|0)>>25&31)|0;caml_array_set(kk[1],kk[2],kl);return kl&1073741823;}32===ef;var ko=[0,ce.slice(),0];function kr(kq){var kp=[];caml_update_dummy(kp,[0,kp,kp]);return kp;}var ks=[0,b7],kt=[0,0],lV=42;function kx(ku){var kv=ku[1];{if(3===kv[0]){var kw=kv[1],ky=kx(kw);if(ky!==kw)ku[1]=[3,ky];return ky;}return ku;}}function k6(kz){return kx(kz);}function kY(kA,kE){var kB=kA,kC=0,kR=kt[1];for(;;){if(typeof kB==="number"){if(kC){var kQ=kC[2],kP=kC[1],kB=kP,kC=kQ;continue;}}else switch(kB[0]){case 1:var kD=kB[1];if(kC){var kG=kC[2],kF=kC[1];dH(kD,kE);var kB=kF,kC=kG;continue;}dH(kD,kE);break;case 2:var kH=kB[1],kI=[0,kB[2],kC],kB=kH,kC=kI;continue;default:var kJ=kB[1][1];if(kJ){var kK=kJ[1];if(kC){var kM=kC[2],kL=kC[1];dH(kK,kE);var kB=kL,kC=kM;continue;}dH(kK,kE);}else if(kC){var kO=kC[2],kN=kC[1],kB=kN,kC=kO;continue;}}kt[1]=kR;return 0;}}function l_(kS,kV){var kT=kx(kS),kU=kT[1];switch(kU[0]){case 1:if(kU[1][1]===ks)return 0;break;case 2:var kW=[0,kV],kX=kU[1][2];kT[1]=kW;return kY(kX,kW);default:}return c_(b8);}function k5(kZ,k0){return typeof kZ==="number"?k0:typeof k0==="number"?kZ:[2,kZ,k0];}function k2(k1){if(typeof k1!=="number")switch(k1[0]){case 2:var k3=k1[1],k4=k2(k1[2]);return k5(k2(k3),k4);case 1:break;default:if(!k1[1][1])return 0;}return k1;}function lW(k7,k_){var k8=k6(k7),k9=k8[1];{if(2===k9[0]){var k$=k9[1][2];k8[1]=k_;return kY(k$,k_);}return c_(b$);}}function l9(la){return [0,[0,la]];}function lB(lb){return [0,[1,lb]];}function lD(lc){return [0,[2,[0,lc,0,0]]];}function l$(lm){var ld=[],ll=0,lk=0;caml_update_dummy(ld,[0,[2,[0,[0,[0,function(lj){var le=kx(ld),lf=le[1];if(2===lf[0]){var lg=[1,[0,ks]],lh=lf[1][2];le[1]=lg;var li=kY(lh,lg);}else var li=0;return li;}]],lk,ll]]]);return [0,ld,ld];}function ly(ln,lo){var lp=typeof ln[2]==="number"?[1,lo]:[2,[1,lo],ln[2]];ln[2]=lp;return 0;}function ma(lq,ls){var lr=k6(lq)[1];switch(lr[0]){case 1:if(lr[1][1]===ks)return dH(ls,0);break;case 2:var lx=lr[1],lu=kt[1];return ly(lx,function(lt){if(1===lt[0]&<[1][1]===ks){kt[1]=lu;try {var lv=dH(ls,0);}catch(lw){return 0;}return lv;}return 0;});default:}return 0;}function mb(lz,lI){var lA=k6(lz)[1];switch(lA[0]){case 1:return lB(lA[1]);case 2:var lC=lA[1],lE=lD(lC[1]),lG=kt[1];ly(lC,function(lF){switch(lF[0]){case 0:var lH=lF[1];kt[1]=lG;try {var lJ=dH(lI,lH),lK=lJ;}catch(lL){var lK=lB(lL);}var lM=k6(lE),lN=k6(lK),lO=lM[1];if(2===lO[0]){var lP=lO[1];if(lM===lN)var lQ=0;else{var lR=lN[1];if(2===lR[0]){var lS=lR[1];lN[1]=[3,lM];lP[1][1]=[1,lS[1]];var lT=k5(lP[2],lS[2]),lU=lP[3]+lS[3]|0,lQ=lV