Sophie

Sophie

distrib > Fedora > 18 > x86_64 > media > updates > by-pkgid > 3866615ed9f87500bac83f78574eecc8 > files > 607

js-of-ocaml-doc-1.2-2.fc18.noarch.rpm

// 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.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.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:6, 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);
  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(f.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(f.prec); break;
    case 'g':
      var prec = f.prec?f.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);
  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_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));
  return caml_finish_formatting(f, buffer);
}
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;
}
var caml_global_data = [0];
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); }
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, "&amp;")
          .replace(caml_js_regexps.lt, "&lt;")
          .replace(caml_js_regexps.quot, "&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):[undefined];
    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_lex_array(s) {
  s = s.getFullBytes();
  var a = [], l = s.length / 2;
  for (var 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_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_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_raise_constant (tag) { throw [0, tag]; }
function caml_raise_zero_divide () {
  caml_raise_constant(caml_global_data[6]);
}
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_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_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 _gY_(_uH_,_uI_,_uJ_,_uK_,_uL_)
     {return _uH_.length==4
              ?_uH_(_uI_,_uJ_,_uK_,_uL_)
              :caml_call_gen(_uH_,[_uI_,_uJ_,_uK_,_uL_]);}
    function _ea_(_uD_,_uE_,_uF_,_uG_)
     {return _uD_.length==3
              ?_uD_(_uE_,_uF_,_uG_)
              :caml_call_gen(_uD_,[_uE_,_uF_,_uG_]);}
    function _eE_(_uA_,_uB_,_uC_)
     {return _uA_.length==2?_uA_(_uB_,_uC_):caml_call_gen(_uA_,[_uB_,_uC_]);}
    function _bL_(_uy_,_uz_)
     {return _uy_.length==1?_uy_(_uz_):caml_call_gen(_uy_,[_uz_]);}
    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\x0b\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\x0b\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\x0b\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\x0b\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("")];
    caml_register_global(5,[0,new MlString("Division_by_zero")]);
    caml_register_global(3,_b_);
    caml_register_global(2,_a_);
    var
     _bf_=new MlString("output"),
     _be_=new MlString("%.12g"),
     _bd_=new MlString("."),
     _bc_=new MlString("%d"),
     _bb_=new MlString("true"),
     _ba_=new MlString("false"),
     _a$_=new MlString("Pervasives.do_at_exit"),
     _a__=new MlString("\\b"),
     _a9_=new MlString("\\t"),
     _a8_=new MlString("\\n"),
     _a7_=new MlString("\\r"),
     _a6_=new MlString("\\\\"),
     _a5_=new MlString("\\'"),
     _a4_=new MlString(""),
     _a3_=new MlString("String.blit"),
     _a2_=new MlString("String.sub"),
     _a1_=new MlString(""),
     _a0_=new MlString("Buffer.add_substring"),
     _aZ_=new MlString("Buffer.add: cannot grow buffer"),
     _aY_=new MlString("%"),
     _aX_=new MlString(""),
     _aW_=new MlString(""),
     _aV_=new MlString("\""),
     _aU_=new MlString("\""),
     _aT_=new MlString("'"),
     _aS_=new MlString("'"),
     _aR_=new MlString("."),
     _aQ_=new MlString("printf: bad positional specification (0)."),
     _aP_=new MlString("%_"),
     _aO_=[0,new MlString("printf.ml"),144,8],
     _aN_=new MlString("''"),
     _aM_=new MlString("Printf: premature end of format string ``"),
     _aL_=new MlString("''"),
     _aK_=new MlString(" in format string ``"),
     _aJ_=new MlString(", at char number "),
     _aI_=new MlString("Printf: bad conversion %"),
     _aH_=new MlString("Sformat.index_of_int: negative argument "),
     _aG_=new MlString("bad box format"),
     _aF_=new MlString("bad box name ho"),
     _aE_=new MlString("bad tag name specification"),
     _aD_=new MlString("bad tag name specification"),
     _aC_=new MlString(""),
     _aB_=new MlString(""),
     _aA_=new MlString(""),
     _az_=new MlString("bad integer specification"),
     _ay_=new MlString("bad format"),
     _ax_=new MlString(")."),
     _aw_=new MlString(" ("),
     _av_=new MlString("'', giving up at character number "),
     _au_=new MlString(" ``"),
     _at_=new MlString("fprintf: "),
     _as_=[3,0,3],
     _ar_=new MlString("."),
     _aq_=new MlString(">"),
     _ap_=new MlString("</"),
     _ao_=new MlString(">"),
     _an_=new MlString("<"),
     _am_=new MlString("\n"),
     _al_=new MlString("Format.Empty_queue"),
     _ak_=[0,new MlString("")],
     _aj_=new MlString("x"),
     _ai_=[0,new MlString("src/core/lwt.ml"),440,20],
     _ah_=[0,new MlString("src/core/lwt.ml"),443,8],
     _ag_=new MlString("Lwt.fast_connect"),
     _af_=new MlString("Lwt.connect"),
     _ae_=new MlString("Lwt.wakeup"),
     _ad_=new MlString("Lwt.Canceled"),
     _ac_=new MlString("img"),
     _ab_=new MlString("a"),
     _aa_=new MlString("br"),
     _$_=new MlString("div"),
     ___=new MlString("\""),
     _Z_=new MlString(" name=\""),
     _Y_=new MlString("\""),
     _X_=new MlString(" type=\""),
     _W_=new MlString("<"),
     _V_=new MlString(">"),
     _U_=new MlString(""),
     _T_=[0,new MlString("wikicreole.mll"),206,32],
     _S_=[0,new MlString("wikicreole.mll"),215,6],
     _R_=[0,new MlString("wikicreole.mll"),230,6],
     _Q_=[0,new MlString("wikicreole.mll"),284,6],
     _P_=new MlString("*"),
     _O_=new MlString("Unrecognized char '%s'@."),
     _N_=[5,0],
     _M_=[0,new MlString("wikicreole.mll"),157,6],
     _L_=new MlString("//"),
     _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(""),
     _C_=new MlString("h1"),
     _B_=new MlString("h2"),
     _A_=new MlString("h3"),
     _z_=new MlString("h4"),
     _y_=new MlString("h5"),
     _x_=new MlString("h6"),
     _w_=new MlString("ul"),
     _v_=new MlString("ol"),
     _u_=new MlString("hr"),
     _t_=new MlString("th"),
     _s_=new MlString("td"),
     _r_=new MlString("tr"),
     _q_=new MlString("tbody"),
     _p_=new MlString("table"),
     _o_=new MlString("li"),
     _n_=[0,new MlString("main.ml"),37,17],
     _m_=new MlString("wiki_demo"),
     _l_=new MlString("1px black dashed"),
     _k_=new MlString("5px"),
     _j_=new MlString("");
    function _i_(s_h_){throw [0,_a_,s_h_];}
    function _bh_(s_bg_){throw [0,_b_,s_bg_];}
    function _bk_(x_bj_,y_bi_)
     {return caml_greaterequal(x_bj_,y_bi_)?x_bj_:y_bi_;}
    var max_int_br_=(1<<31)-1|0;
    function _bq_(s1_bl_,s2_bn_)
     {var
       l1_bm_=s1_bl_.getLen(),
       l2_bo_=s2_bn_.getLen(),
       s_bp_=caml_create_string(l1_bm_+l2_bo_|0);
      caml_blit_string(s1_bl_,0,s_bp_,0,l1_bm_);
      caml_blit_string(s2_bn_,0,s_bp_,l1_bm_,l2_bo_);
      return s_bp_;}
    function string_of_int_bt_(n_bs_){return caml_format_int(_bc_,n_bs_);}
    function _bv_(l1_bu_,l2_bw_)
     {if(l1_bu_)
       {var hd_bx_=l1_bu_[1];return [0,hd_bx_,_bv_(l1_bu_[2],l2_bw_)];}
      return l2_bw_;}
    var
     stdout_bD_=caml_ml_open_descriptor_out(1),
     stderr_bC_=caml_ml_open_descriptor_out(2);
    function flush_all_bI_(param_bB_)
     {var param_by_=caml_ml_out_channels_list(0);
      for(;;)
       {if(param_by_)
         {var l_bz_=param_by_[2];
          try {}catch(_bA_){}
          var param_by_=l_bz_;
          continue;}
        return 0;}}
    function output_bK_(oc_bH_,s_bG_,ofs_bE_,len_bF_)
     {if(0<=ofs_bE_&&0<=len_bF_&&!((s_bG_.getLen()-len_bF_|0)<ofs_bE_))
       return caml_ml_output(oc_bH_,s_bG_,ofs_bE_,len_bF_);
      return _bh_(_bf_);}
    var exit_function_bJ_=[0,flush_all_bI_];
    function do_at_exit_bN_(param_bM_){return _bL_(exit_function_bJ_[1],0);}
    caml_register_named_value(_a$_,do_at_exit_bN_);
    function _bT_(l_bO_)
     {var l1_bP_=l_bO_,l2_bQ_=0;
      for(;;)
       {if(l1_bP_)
         {var
           l_bR_=l1_bP_[2],
           _bS_=[0,l1_bP_[1],l2_bQ_],
           l1_bP_=l_bR_,
           l2_bQ_=_bS_;
          continue;}
        return l2_bQ_;}}
    function _bX_(f_bV_,param_bU_)
     {if(param_bU_)
       {var l_bW_=param_bU_[2],r_bY_=_bL_(f_bV_,param_bU_[1]);
        return [0,r_bY_,_bX_(f_bV_,l_bW_)];}
      return 0;}
    function _b3_(f_b1_,param_bZ_)
     {var param_b0_=param_bZ_;
      for(;;)
       {if(param_b0_)
         {var l_b2_=param_b0_[2];
          _bL_(f_b1_,param_b0_[1]);
          var param_b0_=l_b2_;
          continue;}
        return 0;}}
    function _b7_(n_b4_,c_b6_)
     {var s_b5_=caml_create_string(n_b4_);
      caml_fill_string(s_b5_,0,n_b4_,c_b6_);
      return s_b5_;}
    function _ca_(s_b__,ofs_b8_,len_b9_)
     {if(0<=ofs_b8_&&0<=len_b9_&&!((s_b__.getLen()-len_b9_|0)<ofs_b8_))
       {var r_b$_=caml_create_string(len_b9_);
        caml_blit_string(s_b__,ofs_b8_,r_b$_,0,len_b9_);
        return r_b$_;}
      return _bh_(_a2_);}
    function _cg_(s1_cd_,ofs1_cc_,s2_cf_,ofs2_ce_,len_cb_)
     {if
       (0<=
        len_cb_&&
        0<=
        ofs1_cc_&&
        !((s1_cd_.getLen()-len_cb_|0)<ofs1_cc_)&&
        0<=
        ofs2_ce_&&
        !((s2_cf_.getLen()-len_cb_|0)<ofs2_ce_))
       return caml_blit_string(s1_cd_,ofs1_cc_,s2_cf_,ofs2_ce_,len_cb_);
      return _bh_(_a3_);}
    function _cr_(sep_cn_,l_ch_)
     {if(l_ch_)
       {var tl_cj_=l_ch_[2],hd_ci_=l_ch_[1],num_ck_=[0,0],len_cl_=[0,0];
        _b3_
         (function(s_cm_)
           {num_ck_[1]+=1;len_cl_[1]=len_cl_[1]+s_cm_.getLen()|0;return 0;},
          l_ch_);
        var
         r_co_=
          caml_create_string
           (len_cl_[1]+caml_mul(sep_cn_.getLen(),num_ck_[1]-1|0)|0);
        caml_blit_string(hd_ci_,0,r_co_,0,hd_ci_.getLen());
        var pos_cp_=[0,hd_ci_.getLen()];
        _b3_
         (function(s_cq_)
           {caml_blit_string(sep_cn_,0,r_co_,pos_cp_[1],sep_cn_.getLen());
            pos_cp_[1]=pos_cp_[1]+sep_cn_.getLen()|0;
            caml_blit_string(s_cq_,0,r_co_,pos_cp_[1],s_cq_.getLen());
            pos_cp_[1]=pos_cp_[1]+s_cq_.getLen()|0;
            return 0;},
          tl_cj_);
        return r_co_;}
      return _a4_;}
    var
     _cs_=caml_sys_get_config(0)[2],
     _ct_=caml_mul(_cs_/8|0,(1<<(_cs_-10|0))-1|0)-1|0;
    function _cz_(tbl_cw_,state_cv_,buf_cu_)
     {var result_cx_=caml_lex_engine(tbl_cw_,state_cv_,buf_cu_);
      if(0<=result_cx_)
       {buf_cu_[11]=buf_cu_[12];
        var _cy_=buf_cu_[12];
        buf_cu_[12]=[0,_cy_[1],_cy_[2],_cy_[3],buf_cu_[4]+buf_cu_[6]|0];}
      return result_cx_;}
    function _cD_(lexbuf_cA_)
     {var
       len_cB_=lexbuf_cA_[6]-lexbuf_cA_[5]|0,
       s_cC_=caml_create_string(len_cB_);
      caml_blit_string(lexbuf_cA_[2],lexbuf_cA_[5],s_cC_,0,len_cB_);
      return s_cC_;}
    function _cI_(n_cE_)
     {var
       n_cF_=1<=n_cE_?n_cE_:1,
       n_cG_=_ct_<n_cF_?_ct_:n_cF_,
       s_cH_=caml_create_string(n_cG_);
      return [0,s_cH_,0,n_cG_,s_cH_];}
    function _cK_(b_cJ_){return _ca_(b_cJ_[1],0,b_cJ_[2]);}
    function _cP_(b_cL_,more_cN_)
     {var new_len_cM_=[0,b_cL_[3]];
      for(;;)
       {if(new_len_cM_[1]<(b_cL_[2]+more_cN_|0))
         {new_len_cM_[1]=2*new_len_cM_[1]|0;continue;}
        if(_ct_<new_len_cM_[1])
         if((b_cL_[2]+more_cN_|0)<=_ct_)new_len_cM_[1]=_ct_;else _i_(_aZ_);
        var new_buffer_cO_=caml_create_string(new_len_cM_[1]);
        _cg_(b_cL_[1],0,new_buffer_cO_,0,b_cL_[2]);
        b_cL_[1]=new_buffer_cO_;
        b_cL_[3]=new_len_cM_[1];
        return 0;}}
    function _cT_(b_cQ_,c_cS_)
     {var pos_cR_=b_cQ_[2];
      if(b_cQ_[3]<=pos_cR_)_cP_(b_cQ_,1);
      b_cQ_[1].safeSet(pos_cR_,c_cS_);
      b_cQ_[2]=pos_cR_+1|0;
      return 0;}
    function _c7_(b_c0_,s_cZ_,offset_cU_,len_cX_)
     {var _cV_=offset_cU_<0?1:0;
      if(_cV_)
       var _cW_=_cV_;
      else
       {var
         _cY_=len_cX_<0?1:0,
         _cW_=_cY_?_cY_:(s_cZ_.getLen()-len_cX_|0)<offset_cU_?1:0;}
      if(_cW_)_bh_(_a0_);
      var new_position_c1_=b_c0_[2]+len_cX_|0;
      if(b_c0_[3]<new_position_c1_)_cP_(b_c0_,len_cX_);
      _cg_(s_cZ_,offset_cU_,b_c0_[1],b_c0_[2],len_cX_);
      b_c0_[2]=new_position_c1_;
      return 0;}
    function _c6_(b_c4_,s_c2_)
     {var len_c3_=s_c2_.getLen(),new_position_c5_=b_c4_[2]+len_c3_|0;
      if(b_c4_[3]<new_position_c5_)_cP_(b_c4_,len_c3_);
      _cg_(s_c2_,0,b_c4_[1],b_c4_[2],len_c3_);
      b_c4_[2]=new_position_c5_;
      return 0;}
    function index_of_int_c9_(i_c8_)
     {return 0<=i_c8_?i_c8_:_i_(_bq_(_aH_,string_of_int_bt_(i_c8_)));}
    var
     _da_=
      _bL_
       (function(i_c__,idx_c$_){return index_of_int_c9_(i_c__+idx_c$_|0);},1);
    function _de_(fmt_dd_,idx_dc_,len_db_)
     {return _ca_(fmt_dd_,idx_dc_,len_db_);}
    function _dg_(fmt_df_){return _de_(fmt_df_,0,fmt_df_.getLen());}
    function bad_conversion_dm_(sfmt_dh_,i_di_,c_dk_)
     {var
       _dj_=_bq_(_aK_,_bq_(sfmt_dh_,_aL_)),
       _dl_=_bq_(_aJ_,_bq_(string_of_int_bt_(i_di_),_dj_));
      return _bh_(_bq_(_aI_,_bq_(_b7_(1,c_dk_),_dl_)));}
    function bad_conversion_format_dq_(fmt_dn_,i_dp_,c_do_)
     {return bad_conversion_dm_(_dg_(fmt_dn_),i_dp_,c_do_);}
    function incomplete_format_ds_(fmt_dr_)
     {return _bh_(_bq_(_aM_,_bq_(_dg_(fmt_dr_),_aN_)));}
    function extract_format_dN_(fmt_dt_,start_dB_,stop_dD_,widths_dF_)
     {function skip_positional_spec_dA_(start_du_)
       {if
         ((fmt_dt_.safeGet(start_du_)-48|0)<
          0||
          9<
          (fmt_dt_.safeGet(start_du_)-48|0))
         return start_du_;
        var i_dv_=start_du_+1|0;
        for(;;)
         {var _dw_=fmt_dt_.safeGet(i_dv_);
          if(48<=_dw_)
           {if(!(58<=_dw_)){var _dy_=i_dv_+1|0,i_dv_=_dy_;continue;}
            var _dx_=0;}
          else
           if(36===_dw_){var _dz_=i_dv_+1|0,_dx_=1;}else var _dx_=0;
          if(!_dx_)var _dz_=start_du_;
          return _dz_;}}
      var
       start_dC_=skip_positional_spec_dA_(start_dB_+1|0),
       b_dE_=_cI_((stop_dD_-start_dC_|0)+10|0);
      _cT_(b_dE_,37);
      var _dH_=_bT_(widths_dF_),i_dG_=start_dC_,widths_dI_=_dH_;
      for(;;)
       {if(i_dG_<=stop_dD_)
         {var _dJ_=fmt_dt_.safeGet(i_dG_);
          if(42===_dJ_)
           {if(widths_dI_)
             {var t_dK_=widths_dI_[2];
              _c6_(b_dE_,string_of_int_bt_(widths_dI_[1]));
              var
               i_dL_=skip_positional_spec_dA_(i_dG_+1|0),
               i_dG_=i_dL_,
               widths_dI_=t_dK_;
              continue;}
            throw [0,_d_,_aO_];}
          _cT_(b_dE_,_dJ_);
          var _dM_=i_dG_+1|0,i_dG_=_dM_;
          continue;}
        return _cK_(b_dE_);}}
    function extract_format_int_dU_
     (conv_dT_,fmt_dR_,start_dQ_,stop_dP_,widths_dO_)
     {var sfmt_dS_=extract_format_dN_(fmt_dR_,start_dQ_,stop_dP_,widths_dO_);
      if(78!==conv_dT_&&110!==conv_dT_)return sfmt_dS_;
      sfmt_dS_.safeSet(sfmt_dS_.getLen()-1|0,117);
      return sfmt_dS_;}
    function sub_format_eg_
     (incomplete_format_d1_,bad_conversion_format_d$_,conv_ee_,fmt_dV_,i_ed_)
     {var len_dW_=fmt_dV_.getLen();
      function sub_fmt_eb_(c_dX_,i_d__)
       {var close_dY_=40===c_dX_?41:125;
        function sub_d9_(j_dZ_)
         {var j_d0_=j_dZ_;
          for(;;)
           {if(len_dW_<=j_d0_)return _bL_(incomplete_format_d1_,fmt_dV_);
            if(37===fmt_dV_.safeGet(j_d0_))
             {var _d2_=j_d0_+1|0;
              if(len_dW_<=_d2_)
               var _d3_=_bL_(incomplete_format_d1_,fmt_dV_);
              else
               {var _d4_=fmt_dV_.safeGet(_d2_),_d5_=_d4_-40|0;
                if(_d5_<0||1<_d5_)
                 {var _d6_=_d5_-83|0;
                  if(_d6_<0||2<_d6_)
                   var _d7_=1;
                  else
                   switch(_d6_)
                    {case 1:var _d7_=1;break;
                     case 2:var _d8_=1,_d7_=0;break;
                     default:var _d8_=0,_d7_=0;}
                  if(_d7_){var _d3_=sub_d9_(_d2_+1|0),_d8_=2;}}
                else
                 var _d8_=0===_d5_?0:1;
                switch(_d8_)
                 {case 1:
                   var
                    _d3_=
                     _d4_===close_dY_
                      ?_d2_+1|0
                      :_ea_(bad_conversion_format_d$_,fmt_dV_,i_d__,_d4_);
                   break;
                  case 2:break;
                  default:var _d3_=sub_d9_(sub_fmt_eb_(_d4_,_d2_+1|0)+1|0);}}
              return _d3_;}
            var _ec_=j_d0_+1|0,j_d0_=_ec_;
            continue;}}
        return sub_d9_(i_d__);}
      return sub_fmt_eb_(conv_ee_,i_ed_);}
    function sub_format_for_printf_eh_(conv_ef_)
     {return _ea_
              (sub_format_eg_,
               incomplete_format_ds_,
               bad_conversion_format_dq_,
               conv_ef_);}
    function iter_on_format_args_eM_(fmt_ei_,add_conv_et_,add_char_eD_)
     {var lim_ej_=fmt_ei_.getLen()-1|0;
      function scan_fmt_eF_(i_ek_)
       {var i_el_=i_ek_;
        a:
        for(;;)
         {if(i_el_<lim_ej_)
           {if(37===fmt_ei_.safeGet(i_el_))
             {var skip_em_=0,i_en_=i_el_+1|0;
              for(;;)
               {if(lim_ej_<i_en_)
                 var _eo_=incomplete_format_ds_(fmt_ei_);
                else
                 {var _ep_=fmt_ei_.safeGet(i_en_);
                  if(58<=_ep_)
                   {if(95===_ep_)
                     {var _er_=i_en_+1|0,_eq_=1,skip_em_=_eq_,i_en_=_er_;
                      continue;}}
                  else
                   if(32<=_ep_)
                    switch(_ep_-32|0)
                     {case 1:
                      case 2:
                      case 4:
                      case 5:
                      case 6:
                      case 7:
                      case 8:
                      case 9:
                      case 12:
                      case 15:break;
                      case 0:
                      case 3:
                      case 11:
                      case 13:var _es_=i_en_+1|0,i_en_=_es_;continue;
                      case 10:
                       var _eu_=_ea_(add_conv_et_,skip_em_,i_en_,105),i_en_=_eu_;
                       continue;
                      default:var _ev_=i_en_+1|0,i_en_=_ev_;continue;}
                  var i_ew_=i_en_;
                  c:
                  for(;;)
                   {if(lim_ej_<i_ew_)
                     var _ex_=incomplete_format_ds_(fmt_ei_);
                    else
                     {var _ey_=fmt_ei_.safeGet(i_ew_);
                      if(126<=_ey_)
                       var _ez_=0;
                      else
                       switch(_ey_)
                        {case 78:
                         case 88:
                         case 100:
                         case 105:
                         case 111:
                         case 117:
                         case 120:
                          var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,105),_ez_=1;break;
                         case 69:
                         case 70:
                         case 71:
                         case 101:
                         case 102:
                         case 103:
                          var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,102),_ez_=1;break;
                         case 33:
                         case 37:
                         case 44:var _ex_=i_ew_+1|0,_ez_=1;break;
                         case 83:
                         case 91:
                         case 115:
                          var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,115),_ez_=1;break;
                         case 97:
                         case 114:
                         case 116:
                          var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,_ey_),_ez_=1;
                          break;
                         case 76:
                         case 108:
                         case 110:
                          var j_eA_=i_ew_+1|0;
                          if(lim_ej_<j_eA_)
                           {var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,105),_ez_=1;}
                          else
                           {var _eB_=fmt_ei_.safeGet(j_eA_)-88|0;
                            if(_eB_<0||32<_eB_)
                             var _eC_=1;
                            else
                             switch(_eB_)
                              {case 0:
                               case 12:
                               case 17:
                               case 23:
                               case 29:
                               case 32:
                                var
                                 _ex_=
                                  _eE_
                                   (add_char_eD_,_ea_(add_conv_et_,skip_em_,i_ew_,_ey_),105),
                                 _ez_=1,
                                 _eC_=0;
                                break;
                               default:var _eC_=1;}
                            if(_eC_)
                             {var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,105),_ez_=1;}}
                          break;
                         case 67:
                         case 99:
                          var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,99),_ez_=1;break;
                         case 66:
                         case 98:
                          var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,66),_ez_=1;break;
                         case 41:
                         case 125:
                          var _ex_=_ea_(add_conv_et_,skip_em_,i_ew_,_ey_),_ez_=1;
                          break;
                         case 40:
                          var
                           _ex_=scan_fmt_eF_(_ea_(add_conv_et_,skip_em_,i_ew_,_ey_)),
                           _ez_=1;
                          break;
                         case 123:
                          var
                           i_eG_=_ea_(add_conv_et_,skip_em_,i_ew_,_ey_),
                           j_eH_=_ea_(sub_format_for_printf_eh_,_ey_,fmt_ei_,i_eG_),
                           i_eI_=i_eG_;
                          for(;;)
                           {if(i_eI_<(j_eH_-2|0))
                             {var
                               _eJ_=_eE_(add_char_eD_,i_eI_,fmt_ei_.safeGet(i_eI_)),
                               i_eI_=_eJ_;
                              continue;}
                            var _eK_=j_eH_-1|0,i_ew_=_eK_;
                            continue c;}
                         default:var _ez_=0;}
                      if(!_ez_)
                       var _ex_=bad_conversion_format_dq_(fmt_ei_,i_ew_,_ey_);}
                    var _eo_=_ex_;
                    break;}}
                var i_el_=_eo_;
                continue a;}}
            var _eL_=i_el_+1|0,i_el_=_eL_;
            continue;}
          return i_el_;}}
      scan_fmt_eF_(0);
      return 0;}
    function scan_positional_spec_eZ_(fmt_eN_,got_spec_eQ_,n_eY_,i_eO_)
     {var _eP_=fmt_eN_.safeGet(i_eO_);
      if((_eP_-48|0)<0||9<(_eP_-48|0))return _eE_(got_spec_eQ_,0,i_eO_);
      var accu_eR_=_eP_-48|0,j_eS_=i_eO_+1|0;
      for(;;)
       {var _eT_=fmt_eN_.safeGet(j_eS_);
        if(48<=_eT_)
         {if(!(58<=_eT_))
           {var
             _eW_=j_eS_+1|0,
             _eV_=(10*accu_eR_|0)+(_eT_-48|0)|0,
             accu_eR_=_eV_,
             j_eS_=_eW_;
            continue;}
          var _eU_=0;}
        else
         if(36===_eT_)
          if(0===accu_eR_)
           {var _eX_=_i_(_aQ_),_eU_=1;}
          else
           {var
             _eX_=
              _eE_(got_spec_eQ_,[0,index_of_int_c9_(accu_eR_-1|0)],j_eS_+1|0),
             _eU_=1;}
         else
          var _eU_=0;
        if(!_eU_)var _eX_=_eE_(got_spec_eQ_,0,i_eO_);
        return _eX_;}}
    function next_index_e2_(spec_e0_,n_e1_)
     {return spec_e0_?n_e1_:_bL_(_da_,n_e1_);}
    function get_index_e5_(spec_e3_,n_e4_){return spec_e3_?spec_e3_[1]:n_e4_;}
    function _g6_
     (fmt_fa_,
      args_e8_,
      n_g3_,
      pos_fm_,
      cont_s_fp_,
      cont_a_gX_,
      cont_t_g0_,
      cont_f_gB_,
      cont_m_gA_)
     {function get_arg_e9_(spec_e7_,n_e6_)
       {return caml_array_get(args_e8_,get_index_e5_(spec_e7_,n_e6_));}
      function scan_flags_fg_(spec_fi_,n_fc_,widths_fe_,i_e__)
       {var i_e$_=i_e__;
        for(;;)
         {var _fb_=fmt_fa_.safeGet(i_e$_)-32|0;
          if(!(_fb_<0||25<_fb_))
           switch(_fb_)
            {case 1:
             case 2:
             case 4:
             case 5:
             case 6:
             case 7:
             case 8:
             case 9:
             case 12:
             case 15:break;
             case 10:
              return scan_positional_spec_eZ_
                      (fmt_fa_,
                       function(wspec_fd_,i_fh_)
                        {var _ff_=[0,get_arg_e9_(wspec_fd_,n_fc_),widths_fe_];
                         return scan_flags_fg_
                                 (spec_fi_,next_index_e2_(wspec_fd_,n_fc_),_ff_,i_fh_);},
                       n_fc_,
                       i_e$_+1|0);
             default:var _fj_=i_e$_+1|0,i_e$_=_fj_;continue;}
          var _fk_=fmt_fa_.safeGet(i_e$_);
          if(124<=_fk_)
           var _fl_=0;
          else
           switch(_fk_)
            {case 78:
             case 88:
             case 100:
             case 105:
             case 111:
             case 117:
             case 120:
              var
               x_fn_=get_arg_e9_(spec_fi_,n_fc_),
               s_fo_=
                caml_format_int
                 (extract_format_int_dU_
                   (_fk_,fmt_fa_,pos_fm_,i_e$_,widths_fe_),
                  x_fn_),
               _fq_=
                _ea_
                 (cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),s_fo_,i_e$_+1|0),
               _fl_=1;
              break;
             case 69:
             case 71:
             case 101:
             case 102:
             case 103:
              var
               x_fr_=get_arg_e9_(spec_fi_,n_fc_),
               s_fs_=
                caml_format_float
                 (extract_format_dN_(fmt_fa_,pos_fm_,i_e$_,widths_fe_),x_fr_),
               _fq_=
                _ea_
                 (cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),s_fs_,i_e$_+1|0),
               _fl_=1;
              break;
             case 76:
             case 108:
             case 110:
              var _ft_=fmt_fa_.safeGet(i_e$_+1|0)-88|0;
              if(_ft_<0||32<_ft_)
               var _fu_=1;
              else
               switch(_ft_)
                {case 0:
                 case 12:
                 case 17:
                 case 23:
                 case 29:
                 case 32:
                  var i_fv_=i_e$_+1|0,_fw_=_fk_-108|0;
                  if(_fw_<0||2<_fw_)
                   var _fx_=0;
                  else
                   {switch(_fw_)
                     {case 1:var _fx_=0,_fy_=0;break;
                      case 2:
                       var
                        x_fz_=get_arg_e9_(spec_fi_,n_fc_),
                        _fA_=
                         caml_format_int
                          (extract_format_dN_(fmt_fa_,pos_fm_,i_fv_,widths_fe_),x_fz_),
                        _fy_=1;
                       break;
                      default:
                       var
                        x_fB_=get_arg_e9_(spec_fi_,n_fc_),
                        _fA_=
                         caml_format_int
                          (extract_format_dN_(fmt_fa_,pos_fm_,i_fv_,widths_fe_),x_fB_),
                        _fy_=1;}
                    if(_fy_){var s_fC_=_fA_,_fx_=1;}}
                  if(!_fx_)
                   {var
                     x_fD_=get_arg_e9_(spec_fi_,n_fc_),
                     s_fC_=
                      caml_int64_format
                       (extract_format_dN_(fmt_fa_,pos_fm_,i_fv_,widths_fe_),x_fD_);}
                  var
                   _fq_=
                    _ea_
                     (cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),s_fC_,i_fv_+1|0),
                   _fl_=1,
                   _fu_=0;
                  break;
                 default:var _fu_=1;}
              if(_fu_)
               {var
                 x_fE_=get_arg_e9_(spec_fi_,n_fc_),
                 s_fF_=
                  caml_format_int
                   (extract_format_int_dU_
                     (110,fmt_fa_,pos_fm_,i_e$_,widths_fe_),
                    x_fE_),
                 _fq_=
                  _ea_
                   (cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),s_fF_,i_e$_+1|0),
                 _fl_=1;}
              break;
             case 83:
             case 115:
              var x_fG_=get_arg_e9_(spec_fi_,n_fc_);
              if(115===_fk_)
               var x_fH_=x_fG_;
              else
               {var n_fI_=[0,0],_fJ_=0,_fK_=x_fG_.getLen()-1|0;
                if(!(_fK_<_fJ_))
                 {var i_fL_=_fJ_;
                  for(;;)
                   {var
                     _fM_=x_fG_.safeGet(i_fL_),
                     _fN_=
                      14<=_fM_
                       ?34===_fM_?1:92===_fM_?1:0
                       :11<=_fM_?13<=_fM_?1:0:8<=_fM_?1:0,
                     _fO_=_fN_?2:caml_is_printable(_fM_)?1:4;
                    n_fI_[1]=n_fI_[1]+_fO_|0;
                    var _fP_=i_fL_+1|0;
                    if(_fK_!==i_fL_){var i_fL_=_fP_;continue;}
                    break;}}
                if(n_fI_[1]===x_fG_.getLen())
                 var _fQ_=x_fG_;
                else
                 {var s__fR_=caml_create_string(n_fI_[1]);
                  n_fI_[1]=0;
                  var _fS_=0,_fT_=x_fG_.getLen()-1|0;
                  if(!(_fT_<_fS_))
                   {var i_fU_=_fS_;
                    for(;;)
                     {var _fV_=x_fG_.safeGet(i_fU_),_fW_=_fV_-34|0;
                      if(_fW_<0||58<_fW_)
                       if(-20<=_fW_)
                        var _fX_=1;
                       else
                        {switch(_fW_+34|0)
                          {case 8:
                            s__fR_.safeSet(n_fI_[1],92);
                            n_fI_[1]+=1;
                            s__fR_.safeSet(n_fI_[1],98);
                            var _fY_=1;
                            break;
                           case 9:
                            s__fR_.safeSet(n_fI_[1],92);
                            n_fI_[1]+=1;
                            s__fR_.safeSet(n_fI_[1],116);
                            var _fY_=1;
                            break;
                           case 10:
                            s__fR_.safeSet(n_fI_[1],92);
                            n_fI_[1]+=1;
                            s__fR_.safeSet(n_fI_[1],110);
                            var _fY_=1;
                            break;
                           case 13:
                            s__fR_.safeSet(n_fI_[1],92);
                            n_fI_[1]+=1;
                            s__fR_.safeSet(n_fI_[1],114);
                            var _fY_=1;
                            break;
                           default:var _fX_=1,_fY_=0;}
                         if(_fY_)var _fX_=0;}
                      else
                       var
                        _fX_=
                         (_fW_-1|0)<0||56<(_fW_-1|0)
                          ?(s__fR_.safeSet(n_fI_[1],92),
                            n_fI_[1]+=
                            1,
                            s__fR_.safeSet(n_fI_[1],_fV_),
                            0)
                          :1;
                      if(_fX_)
                       if(caml_is_printable(_fV_))
                        s__fR_.safeSet(n_fI_[1],_fV_);
                       else
                        {s__fR_.safeSet(n_fI_[1],92);
                         n_fI_[1]+=1;
                         s__fR_.safeSet(n_fI_[1],48+(_fV_/100|0)|0);
                         n_fI_[1]+=1;
                         s__fR_.safeSet(n_fI_[1],48+((_fV_/10|0)%10|0)|0);
                         n_fI_[1]+=1;
                         s__fR_.safeSet(n_fI_[1],48+(_fV_%10|0)|0);}
                      n_fI_[1]+=1;
                      var _fZ_=i_fU_+1|0;
                      if(_fT_!==i_fU_){var i_fU_=_fZ_;continue;}
                      break;}}
                  var _fQ_=s__fR_;}
                var x_fH_=_bq_(_aU_,_bq_(_fQ_,_aV_));}
              if(i_e$_===(pos_fm_+1|0))
               var s_f0_=x_fH_;
              else
               {var _f1_=extract_format_dN_(fmt_fa_,pos_fm_,i_e$_,widths_fe_);
                try
                 {var neg_f2_=0,i_f3_=1;
                  for(;;)
                   {if(_f1_.getLen()<=i_f3_)
                     var _f4_=[0,0,neg_f2_];
                    else
                     {var _f5_=_f1_.safeGet(i_f3_);
                      if(49<=_f5_)
                       if(58<=_f5_)
                        var _f6_=0;
                       else
                        {var
                          _f4_=
                           [0,
                            caml_int_of_string
                             (_ca_(_f1_,i_f3_,(_f1_.getLen()-i_f3_|0)-1|0)),
                            neg_f2_],
                          _f6_=1;}
                      else
                       {if(45===_f5_)
                         {var _f8_=i_f3_+1|0,_f7_=1,neg_f2_=_f7_,i_f3_=_f8_;
                          continue;}
                        var _f6_=0;}
                      if(!_f6_){var _f9_=i_f3_+1|0,i_f3_=_f9_;continue;}}
                    var match_f__=_f4_;
                    break;}}
                catch(_f$_)
                 {if(_f$_[1]!==_a_)throw _f$_;
                  var match_f__=bad_conversion_dm_(_f1_,0,115);}
                var
                 neg_gb_=match_f__[2],
                 p_ga_=match_f__[1],
                 _gc_=x_fH_.getLen(),
                 _gd_=0,
                 _gg_=32;
                if(p_ga_===_gc_&&0===_gd_)
                 {var _ge_=x_fH_,_gf_=1;}
                else
                 var _gf_=0;
                if(!_gf_)
                 if(p_ga_<=_gc_)
                  var _ge_=_ca_(x_fH_,_gd_,_gc_);
                 else
                  {var res_gh_=_b7_(p_ga_,_gg_);
                   if(neg_gb_)
                    _cg_(x_fH_,_gd_,res_gh_,0,_gc_);
                   else
                    _cg_(x_fH_,_gd_,res_gh_,p_ga_-_gc_|0,_gc_);
                   var _ge_=res_gh_;}
                var s_f0_=_ge_;}
              var
               _fq_=
                _ea_
                 (cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),s_f0_,i_e$_+1|0),
               _fl_=1;
              break;
             case 67:
             case 99:
              var x_gi_=get_arg_e9_(spec_fi_,n_fc_);
              if(99===_fk_)
               var s_gj_=_b7_(1,x_gi_);
              else
               {if(39===x_gi_)
                 var _gk_=_a5_;
                else
                 if(92===x_gi_)
                  var _gk_=_a6_;
                 else
                  {if(14<=x_gi_)
                    var _gl_=0;
                   else
                    switch(x_gi_)
                     {case 8:var _gk_=_a__,_gl_=1;break;
                      case 9:var _gk_=_a9_,_gl_=1;break;
                      case 10:var _gk_=_a8_,_gl_=1;break;
                      case 13:var _gk_=_a7_,_gl_=1;break;
                      default:var _gl_=0;}
                   if(!_gl_)
                    if(caml_is_printable(x_gi_))
                     {var s_gm_=caml_create_string(1);
                      s_gm_.safeSet(0,x_gi_);
                      var _gk_=s_gm_;}
                    else
                     {var s_gn_=caml_create_string(4);
                      s_gn_.safeSet(0,92);
                      s_gn_.safeSet(1,48+(x_gi_/100|0)|0);
                      s_gn_.safeSet(2,48+((x_gi_/10|0)%10|0)|0);
                      s_gn_.safeSet(3,48+(x_gi_%10|0)|0);
                      var _gk_=s_gn_;}}
                var s_gj_=_bq_(_aS_,_bq_(_gk_,_aT_));}
              var
               _fq_=
                _ea_
                 (cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),s_gj_,i_e$_+1|0),
               _fl_=1;
              break;
             case 66:
             case 98:
              var
               _gp_=i_e$_+1|0,
               _go_=get_arg_e9_(spec_fi_,n_fc_)?_bb_:_ba_,
               _fq_=_ea_(cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),_go_,_gp_),
               _fl_=1;
              break;
             case 40:
             case 123:
              var
               xf_gq_=get_arg_e9_(spec_fi_,n_fc_),
               j_gr_=_ea_(sub_format_for_printf_eh_,_fk_,fmt_fa_,i_e$_+1|0);
              if(123===_fk_)
               {var
                 b_gs_=_cI_(xf_gq_.getLen()),
                 add_char_gv_=
                  function(i_gu_,c_gt_){_cT_(b_gs_,c_gt_);return i_gu_+1|0;};
                iter_on_format_args_eM_
                 (xf_gq_,
                  function(skip_gw_,i_gy_,c_gx_)
                   {if(skip_gw_)_c6_(b_gs_,_aP_);else _cT_(b_gs_,37);
                    return add_char_gv_(i_gy_,c_gx_);},
                  add_char_gv_);
                var
                 _gz_=_cK_(b_gs_),
                 _fq_=
                  _ea_(cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),_gz_,j_gr_),
                 _fl_=1;}
              else
               {var
                 _fq_=
                  _ea_(cont_m_gA_,next_index_e2_(spec_fi_,n_fc_),xf_gq_,j_gr_),
                 _fl_=1;}
              break;
             case 33:var _fq_=_eE_(cont_f_gB_,n_fc_,i_e$_+1|0),_fl_=1;break;
             case 37:
              var _fq_=_ea_(cont_s_fp_,n_fc_,_aY_,i_e$_+1|0),_fl_=1;break;
             case 41:
              var _fq_=_ea_(cont_s_fp_,n_fc_,_aX_,i_e$_+1|0),_fl_=1;break;
             case 44:
              var _fq_=_ea_(cont_s_fp_,n_fc_,_aW_,i_e$_+1|0),_fl_=1;break;
             case 70:
              var x_gC_=get_arg_e9_(spec_fi_,n_fc_);
              if(0===widths_fe_)
               {var
                 _gD_=caml_format_float(_be_,x_gC_),
                 i_gE_=0,
                 l_gF_=_gD_.getLen();
                for(;;)
                 {if(l_gF_<=i_gE_)
                   var _gG_=_bq_(_gD_,_bd_);
                  else
                   {var
                     _gH_=_gD_.safeGet(i_gE_),
                     _gI_=48<=_gH_?58<=_gH_?0:1:45===_gH_?1:0;
                    if(_gI_){var _gJ_=i_gE_+1|0,i_gE_=_gJ_;continue;}
                    var _gG_=_gD_;}
                  var s_gK_=_gG_;
                  break;}}
              else
               {var
                 sfmt_gL_=
                  extract_format_dN_(fmt_fa_,pos_fm_,i_e$_,widths_fe_);
                if(70===_fk_)sfmt_gL_.safeSet(sfmt_gL_.getLen()-1|0,103);
                var s_gM_=caml_format_float(sfmt_gL_,x_gC_);
                if(3<=caml_classify_float(x_gC_))
                 var _gN_=s_gM_;
                else
                 {var i_gO_=0,l_gP_=s_gM_.getLen();
                  for(;;)
                   {if(l_gP_<=i_gO_)
                     var _gQ_=_bq_(s_gM_,_aR_);
                    else
                     {var
                       _gR_=s_gM_.safeGet(i_gO_)-46|0,
                       _gS_=
                        _gR_<0||23<_gR_
                         ?55===_gR_?1:0
                         :(_gR_-1|0)<0||21<(_gR_-1|0)?1:0;
                      if(!_gS_){var _gT_=i_gO_+1|0,i_gO_=_gT_;continue;}
                      var _gQ_=s_gM_;}
                    var _gN_=_gQ_;
                    break;}}
                var s_gK_=_gN_;}
              var
               _fq_=
                _ea_
                 (cont_s_fp_,next_index_e2_(spec_fi_,n_fc_),s_gK_,i_e$_+1|0),
               _fl_=1;
              break;
             case 97:
              var
               printer_gU_=get_arg_e9_(spec_fi_,n_fc_),
               n_gV_=_bL_(_da_,get_index_e5_(spec_fi_,n_fc_)),
               arg_gW_=get_arg_e9_(0,n_gV_),
               _fq_=
                _gY_
                 (cont_a_gX_,
                  next_index_e2_(spec_fi_,n_gV_),
                  printer_gU_,
                  arg_gW_,
                  i_e$_+1|0),
               _fl_=1;
              break;
             case 116:
              var
               printer_gZ_=get_arg_e9_(spec_fi_,n_fc_),
               _fq_=
                _ea_
                 (cont_t_g0_,
                  next_index_e2_(spec_fi_,n_fc_),
                  printer_gZ_,
                  i_e$_+1|0),
               _fl_=1;
              break;
             default:var _fl_=0;}
          if(!_fl_)var _fq_=bad_conversion_format_dq_(fmt_fa_,i_e$_,_fk_);
          return _fq_;}}
      var _g5_=pos_fm_+1|0,_g2_=0;
      return scan_positional_spec_eZ_
              (fmt_fa_,
               function(spec_g4_,i_g1_)
                {return scan_flags_fg_(spec_g4_,n_g3_,_g2_,i_g1_);},
               n_g3_,
               _g5_);}
    function add_queue_ha_(x_g7_,q_g9_)
     {var c_g8_=[0,[0,x_g7_,0]],_g__=q_g9_[1];
      if(_g__)
       {var cell_g$_=_g__[1];q_g9_[1]=c_g8_;cell_g$_[2]=c_g8_;return 0;}
      q_g9_[1]=c_g8_;
      q_g9_[2]=c_g8_;
      return 0;}
    var Empty_queue_hb_=[0,_al_];
    function take_queue_hh_(q_hc_)
     {var _hd_=q_hc_[2];
      if(_hd_)
       {var match_he_=_hd_[1],x_hg_=match_he_[1],tl_hf_=match_he_[2];
        q_hc_[2]=tl_hf_;
        if(0===tl_hf_)q_hc_[1]=0;
        return x_hg_;}
      throw [0,Empty_queue_hb_];}
    function pp_enqueue_hk_(state_hj_,token_hi_)
     {state_hj_[13]=state_hj_[13]+token_hi_[3]|0;
      return add_queue_ha_(token_hi_,state_hj_[27]);}
    var pp_infinity_hl_=1000000010;
    function pp_output_string_ho_(state_hn_,s_hm_)
     {return _ea_(state_hn_[17],s_hm_,0,s_hm_.getLen());}
    function pp_output_newline_hq_(state_hp_){return _bL_(state_hp_[19],0);}
    function pp_display_blanks_ht_(state_hr_,n_hs_)
     {return _bL_(state_hr_[20],n_hs_);}
    function break_new_line_hA_(state_hu_,offset_hw_,width_hv_)
     {pp_output_newline_hq_(state_hu_);
      state_hu_[11]=1;
      var
       indent_hx_=(state_hu_[6]-width_hv_|0)+offset_hw_|0,
       _hy_=state_hu_[8],
       real_indent_hz_=caml_lessequal(_hy_,indent_hx_)?_hy_:indent_hx_;
      state_hu_[10]=real_indent_hz_;
      state_hu_[9]=state_hu_[6]-state_hu_[10]|0;
      return pp_display_blanks_ht_(state_hu_,state_hu_[10]);}
    function break_line_hD_(state_hC_,width_hB_)
     {return break_new_line_hA_(state_hC_,0,width_hB_);}
    function break_same_line_hG_(state_hE_,width_hF_)
     {state_hE_[9]=state_hE_[9]-width_hF_|0;
      return pp_display_blanks_ht_(state_hE_,width_hF_);}
    function advance_left_iA_(state_hH_)
     {try
       {for(;;)
         {var _hI_=state_hH_[27][2];
          if(!_hI_)throw [0,Empty_queue_hb_];
          var
           x_hJ_=_hI_[1][1],
           size_hK_=x_hJ_[1],
           len_hM_=x_hJ_[3],
           tok_hL_=x_hJ_[2],
           _hN_=size_hK_<0?1:0,
           _hO_=_hN_?(state_hH_[13]-state_hH_[12]|0)<state_hH_[9]?1:0:_hN_,
           _hP_=1-_hO_;
          if(_hP_)
           {take_queue_hh_(state_hH_[27]);
            var _hQ_=0<=size_hK_?size_hK_:pp_infinity_hl_;
            if(typeof tok_hL_==="number")
             switch(tok_hL_)
              {case 1:
                var _ij_=state_hH_[2];
                if(_ij_)
                 {var _ik_=_ij_[2],_il_=_ik_?(state_hH_[2]=_ik_,1):0;}
                else
                 var _il_=0;
                _il_;
                break;
               case 2:
                var _im_=state_hH_[3];if(_im_)state_hH_[3]=_im_[2];break;
               case 3:
                var _in_=state_hH_[2];
                if(_in_)
                 break_line_hD_(state_hH_,_in_[1][2]);
                else
                 pp_output_newline_hq_(state_hH_);
                break;
               case 4:
                if(state_hH_[10]!==(state_hH_[6]-state_hH_[9]|0))
                 {var
                   match_io_=take_queue_hh_(state_hH_[27]),
                   size_ip_=match_io_[1];
                  state_hH_[12]=state_hH_[12]-match_io_[3]|0;
                  state_hH_[9]=state_hH_[9]+size_ip_|0;}
                break;
               case 5:
                var _iq_=state_hH_[5];
                if(_iq_)
                 {var tags_ir_=_iq_[2];
                  pp_output_string_ho_(state_hH_,_bL_(state_hH_[24],_iq_[1]));
                  state_hH_[5]=tags_ir_;}
                break;
               default:
                var _is_=state_hH_[3];
                if(_is_)
                 {var
                   tabs_it_=_is_[1][1],
                   add_tab_iy_=
                    function(n_ix_,ls_iu_)
                     {if(ls_iu_)
                       {var l_iw_=ls_iu_[2],x_iv_=ls_iu_[1];
                        return caml_lessthan(n_ix_,x_iv_)
                                ?[0,n_ix_,ls_iu_]
                                :[0,x_iv_,add_tab_iy_(n_ix_,l_iw_)];}
                      return [0,n_ix_,0];};
                  tabs_it_[1]=
                  add_tab_iy_(state_hH_[6]-state_hH_[9]|0,tabs_it_[1]);}}
            else
             switch(tok_hL_[0])
              {case 1:
                var off_hR_=tok_hL_[2],n_hS_=tok_hL_[1],_hT_=state_hH_[2];
                if(_hT_)
                 {var match_hU_=_hT_[1],width_hV_=match_hU_[2];
                  switch(match_hU_[1])
                   {case 1:
                     break_new_line_hA_(state_hH_,off_hR_,width_hV_);break;
                    case 2:
                     break_new_line_hA_(state_hH_,off_hR_,width_hV_);break;
                    case 3:
                     if(state_hH_[9]<_hQ_)
                      break_new_line_hA_(state_hH_,off_hR_,width_hV_);
                     else
                      break_same_line_hG_(state_hH_,n_hS_);
                     break;
                    case 4:
                     if
                      (state_hH_[11]||
                       !(state_hH_[9]<
                        _hQ_||
                        ((state_hH_[6]-width_hV_|0)+off_hR_|0)<
                        state_hH_[10]))
                      break_same_line_hG_(state_hH_,n_hS_);
                     else
                      break_new_line_hA_(state_hH_,off_hR_,width_hV_);
                     break;
                    case 5:break_same_line_hG_(state_hH_,n_hS_);break;
                    default:break_same_line_hG_(state_hH_,n_hS_);}}
                break;
               case 2:
                var
                 off_hY_=tok_hL_[2],
                 n_hX_=tok_hL_[1],
                 insertion_point_hW_=state_hH_[6]-state_hH_[9]|0,
                 _hZ_=state_hH_[3];
                if(_hZ_)
                 {var tabs_h0_=_hZ_[1][1],_h1_=tabs_h0_[1];
                  if(_h1_)
                   {var x_h7_=_h1_[1];
                    try
                     {var param_h2_=tabs_h0_[1];
                      for(;;)
                       {if(!param_h2_)throw [0,_c_];
                        var l_h4_=param_h2_[2],x_h3_=param_h2_[1];
                        if(!caml_greaterequal(x_h3_,insertion_point_hW_))
                         {var param_h2_=l_h4_;continue;}
                        var _h5_=x_h3_;
                        break;}}
                    catch(_h6_){if(_h6_[1]!==_c_)throw _h6_;var _h5_=x_h7_;}
                    var tab_h8_=_h5_;}
                  else
                   var tab_h8_=insertion_point_hW_;
                  var offset_h9_=tab_h8_-insertion_point_hW_|0;
                  if(0<=offset_h9_)
                   break_same_line_hG_(state_hH_,offset_h9_+n_hX_|0);
                  else
                   break_new_line_hA_(state_hH_,tab_h8_+off_hY_|0,state_hH_[6]);}
                break;
               case 3:
                var ty_h__=tok_hL_[2],off_ie_=tok_hL_[1];
                if(state_hH_[8]<(state_hH_[6]-state_hH_[9]|0))
                 {var _h$_=state_hH_[2];
                  if(_h$_)
                   {var
                     match_ia_=_h$_[1],
                     width_ib_=match_ia_[2],
                     bl_ty_ic_=match_ia_[1],
                     _id_=
                      state_hH_[9]<width_ib_
                       ?0===bl_ty_ic_
                         ?0
                         :5<=bl_ty_ic_?1:(break_line_hD_(state_hH_,width_ib_),1)
                       :0;
                    _id_;}
                  else
                   pp_output_newline_hq_(state_hH_);}
                var
                 offset_ig_=state_hH_[9]-off_ie_|0,
                 bl_type_if_=1===ty_h__?1:state_hH_[9]<_hQ_?ty_h__:5;
                state_hH_[2]=[0,[0,bl_type_if_,offset_ig_],state_hH_[2]];
                break;
               case 4:state_hH_[3]=[0,tok_hL_[1],state_hH_[3]];break;
               case 5:
                var tag_name_ih_=tok_hL_[1];
                pp_output_string_ho_
                 (state_hH_,_bL_(state_hH_[23],tag_name_ih_));
                state_hH_[5]=[0,tag_name_ih_,state_hH_[5]];
                break;
               default:
                var s_ii_=tok_hL_[1];
                state_hH_[9]=state_hH_[9]-_hQ_|0;
                pp_output_string_ho_(state_hH_,s_ii_);
                state_hH_[11]=0;}
            state_hH_[12]=len_hM_+state_hH_[12]|0;
            continue;}
          break;}}
      catch(_iz_){if(_iz_[1]===Empty_queue_hb_)return 0;throw _iz_;}
      return _hP_;}
    function enqueue_advance_iD_(state_iC_,tok_iB_)
     {pp_enqueue_hk_(state_iC_,tok_iB_);return advance_left_iA_(state_iC_);}
    function make_queue_elem_iH_(size_iG_,tok_iF_,len_iE_)
     {return [0,size_iG_,tok_iF_,len_iE_];}
    function enqueue_string_as_iL_(state_iK_,size_iJ_,s_iI_)
     {return enqueue_advance_iD_
              (state_iK_,make_queue_elem_iH_(size_iJ_,[0,s_iI_],size_iJ_));}
    var scan_stack_bottom_iM_=[0,[0,-1,make_queue_elem_iH_(-1,_ak_,0)],0];
    function clear_scan_stack_iO_(state_iN_)
     {state_iN_[1]=scan_stack_bottom_iM_;return 0;}
    function set_size_i1_(state_iP_,ty_iX_)
     {var _iQ_=state_iP_[1];
      if(_iQ_)
       {var
         match_iR_=_iQ_[1],
         queue_elem_iS_=match_iR_[2],
         left_tot_iU_=match_iR_[1],
         size_iT_=queue_elem_iS_[1],
         t_iV_=_iQ_[2],
         tok_iW_=queue_elem_iS_[2];
        if(left_tot_iU_<state_iP_[12])return clear_scan_stack_iO_(state_iP_);
        if(typeof tok_iW_!=="number")
         switch(tok_iW_[0])
          {case 1:
           case 2:
            var
             _iY_=
              ty_iX_
               ?(queue_elem_iS_[1]=
                 state_iP_[13]+
                 size_iT_|
                 0,
                 state_iP_[1]=
                 t_iV_,
                 0)
               :ty_iX_;
            return _iY_;
           case 3:
            var
             _iZ_=1-ty_iX_,
             _i0_=
              _iZ_
               ?(queue_elem_iS_[1]=
                 state_iP_[13]+
                 size_iT_|
                 0,
                 state_iP_[1]=
                 t_iV_,
                 0)
               :_iZ_;
            return _i0_;
           default:}
        return 0;}
      return 0;}
    function scan_push_i5_(state_i3_,b_i4_,tok_i2_)
     {pp_enqueue_hk_(state_i3_,tok_i2_);
      if(b_i4_)set_size_i1_(state_i3_,1);
      state_i3_[1]=[0,[0,state_i3_[13],tok_i2_],state_i3_[1]];
      return 0;}
    function pp_open_box_gen_i$_(state_i6_,indent_i8_,br_ty_i7_)
     {state_i6_[14]=state_i6_[14]+1|0;
      if(state_i6_[14]<state_i6_[15])
       return scan_push_i5_
               (state_i6_,
                0,
                make_queue_elem_iH_
                 (-state_i6_[13]|0,[3,indent_i8_,br_ty_i7_],0));
      var _i9_=state_i6_[14]===state_i6_[15]?1:0;
      if(_i9_)
       {var _i__=state_i6_[16];
        return enqueue_string_as_iL_(state_i6_,_i__.getLen(),_i__);}
      return _i9_;}
    function pp_close_box_je_(state_ja_,param_jd_)
     {var _jb_=1<state_ja_[14]?1:0;
      if(_jb_)
       {if(state_ja_[14]<state_ja_[15])
         {pp_enqueue_hk_(state_ja_,[0,0,1,0]);
          set_size_i1_(state_ja_,1);
          set_size_i1_(state_ja_,0);}
        state_ja_[14]=state_ja_[14]-1|0;
        var _jc_=0;}
      else
       var _jc_=_jb_;
      return _jc_;}
    function pp_open_tag_ji_(state_jf_,tag_name_jg_)
     {if(state_jf_[21])
       {state_jf_[4]=[0,tag_name_jg_,state_jf_[4]];
        _bL_(state_jf_[25],tag_name_jg_);}
      var _jh_=state_jf_[22];
      return _jh_?pp_enqueue_hk_(state_jf_,[0,0,[5,tag_name_jg_],0]):_jh_;}
    function pp_flush_queue_jm_(state_jj_,b_jk_)
     {for(;;)
       {if(1<state_jj_[14]){pp_close_box_je_(state_jj_,0);continue;}
        state_jj_[13]=pp_infinity_hl_;
        advance_left_iA_(state_jj_);
        if(b_jk_)pp_output_newline_hq_(state_jj_);
        state_jj_[12]=1;
        state_jj_[13]=1;
        var _jl_=state_jj_[27];
        _jl_[1]=0;
        _jl_[2]=0;
        clear_scan_stack_iO_(state_jj_);
        state_jj_[2]=0;
        state_jj_[3]=0;
        state_jj_[4]=0;
        state_jj_[5]=0;
        state_jj_[10]=0;
        state_jj_[14]=0;
        state_jj_[9]=state_jj_[6];
        return pp_open_box_gen_i$_(state_jj_,0,3);}}
    function pp_print_as_size_jr_(state_jn_,size_jq_,s_jp_)
     {var _jo_=state_jn_[14]<state_jn_[15]?1:0;
      return _jo_?enqueue_string_as_iL_(state_jn_,size_jq_,s_jp_):_jo_;}
    function pp_print_as_jv_(state_ju_,isize_jt_,s_js_)
     {return pp_print_as_size_jr_(state_ju_,isize_jt_,s_js_);}
    function pp_print_flush_jy_(state_jw_,param_jx_)
     {pp_flush_queue_jm_(state_jw_,0);return _bL_(state_jw_[18],0);}
    function pp_print_break_jD_(state_jz_,width_jC_,offset_jB_)
     {var _jA_=state_jz_[14]<state_jz_[15]?1:0;
      return _jA_
              ?scan_push_i5_
                (state_jz_,
                 1,
                 make_queue_elem_iH_
                  (-state_jz_[13]|0,[1,width_jC_,offset_jB_],width_jC_))
              :_jA_;}
    function pp_print_space_jG_(state_jE_,param_jF_)
     {return pp_print_break_jD_(state_jE_,1,0);}
    function display_newline_jK_(state_jH_,param_jI_)
     {return _ea_(state_jH_[17],_am_,0,1);}
    var blank_line_jJ_=_b7_(80,32);
    function display_blanks_jR_(state_jO_,n_jL_)
     {var n_jM_=n_jL_;
      for(;;)
       {var _jN_=0<n_jM_?1:0;
        if(_jN_)
         {if(80<n_jM_)
           {_ea_(state_jO_[17],blank_line_jJ_,0,80);
            var _jP_=n_jM_-80|0,n_jM_=_jP_;
            continue;}
          return _ea_(state_jO_[17],blank_line_jJ_,0,n_jM_);}
        return _jN_;}}
    function default_pp_mark_open_tag_jT_(s_jQ_)
     {return _bq_(_an_,_bq_(s_jQ_,_ao_));}
    function default_pp_mark_close_tag_jW_(s_jS_)
     {return _bq_(_ap_,_bq_(s_jS_,_aq_));}
    function default_pp_print_open_tag_jV_(s_jU_){return 0;}
    function make_formatter_j6_(output_j4_,flush_j3_)
     {function _jZ_(_jX_){return 0;}
      function _j1_(_jY_){return 0;}
      var _j0_=[0,0,0],sys_tok_j2_=make_queue_elem_iH_(-1,_as_,0);
      add_queue_ha_(sys_tok_j2_,_j0_);
      var
       _j5_=
        [0,
         [0,[0,1,sys_tok_j2_],scan_stack_bottom_iM_],
         0,
         0,
         0,
         0,
         78,
         10,
         78-10|0,
         78,
         0,
         1,
         1,
         1,
         1,
         max_int_br_,
         _ar_,
         output_j4_,
         flush_j3_,
         _j1_,
         _jZ_,
         0,
         0,
         default_pp_mark_open_tag_jT_,
         default_pp_mark_close_tag_jW_,
         default_pp_print_open_tag_jV_,
         default_pp_print_open_tag_jV_,
         _j0_];
      _j5_[19]=_bL_(display_newline_jK_,_j5_);
      _j5_[20]=_bL_(display_blanks_jR_,_j5_);
      return _j5_;}
    function formatter_of_out_channel_j__(oc_j7_)
     {function _j9_(param_j8_){return caml_ml_flush(oc_j7_);}
      return make_formatter_j6_(_bL_(output_bK_,oc_j7_),_j9_);}
    function formatter_of_buffer_kc_(b_ka_)
     {function _kb_(_j$_){return 0;}
      return make_formatter_j6_(_bL_(_c7_,b_ka_),_kb_);}
    var
     stdbuf_kd_=_cI_(512),
     std_formatter_ke_=formatter_of_out_channel_j__(stdout_bD_),
     err_formatter_kf_=formatter_of_out_channel_j__(stderr_bC_);
    formatter_of_buffer_kc_(stdbuf_kd_);
    var print_flush_km_=_bL_(pp_print_flush_jy_,std_formatter_ke_);
    function giving_up_kl_(mess_kk_,fmt_kg_,i_kh_)
     {var
       _ki_=
        i_kh_<fmt_kg_.getLen()
         ?_bq_(_aw_,_bq_(_b7_(1,fmt_kg_.safeGet(i_kh_)),_ax_))
         :_b7_(1,46),
       _kj_=_bq_(_av_,_bq_(string_of_int_bt_(i_kh_),_ki_));
      return _bq_(_at_,_bq_(mess_kk_,_bq_(_au_,_bq_(_dg_(fmt_kg_),_kj_))));}
    function format_invalid_arg_kq_(mess_kp_,fmt_ko_,i_kn_)
     {return _bh_(giving_up_kl_(mess_kp_,fmt_ko_,i_kn_));}
    function invalid_format_kt_(fmt_ks_,i_kr_)
     {return format_invalid_arg_kq_(_ay_,fmt_ks_,i_kr_);}
    function invalid_integer_kw_(fmt_kv_,i_ku_)
     {return _bh_(giving_up_kl_(_az_,fmt_kv_,i_ku_));}
    function format_int_of_string_kD_(fmt_kC_,i_kB_,s_kx_)
     {try
       {var _ky_=caml_int_of_string(s_kx_),sz_kz_=_ky_;}
      catch(_kA_)
       {if(_kA_[1]!==_a_)throw _kA_;
        var sz_kz_=invalid_integer_kw_(fmt_kC_,i_kB_);}
      return sz_kz_;}
    function exstring_kJ_(printer_kH_,arg_kG_)
     {var b_kE_=_cI_(512),ppf_kF_=formatter_of_buffer_kc_(b_kE_);
      _eE_(printer_kH_,ppf_kF_,arg_kG_);
      pp_flush_queue_jm_(ppf_kF_,0);
      var s_kI_=_cK_(b_kE_);
      b_kE_[2]=0;
      b_kE_[1]=b_kE_[4];
      b_kE_[3]=b_kE_[1].getLen();
      return s_kI_;}
    function implode_rev_kM_(s0_kL_,l_kK_)
     {return l_kK_?_cr_(_aA_,_bT_([0,s0_kL_,l_kK_])):s0_kL_;}
    function mkprintf_oe_(to_s_lB_,get_out_kQ_)
     {function kprintf_mM_(k_k3_,fmt_kN_)
       {var len_kO_=fmt_kN_.getLen();
        function kpr_nl_(fmt_kP_,v_k$_)
         {var ppf_kR_=_bL_(get_out_kQ_,fmt_kP_),print_as_kS_=[0,0];
          function pp_print_as_char_kX_(c_kU_)
           {var _kT_=print_as_kS_[1];
            if(_kT_)
             {var size_kV_=_kT_[1];
              pp_print_as_size_jr_(ppf_kR_,size_kV_,_b7_(1,c_kU_));
              print_as_kS_[1]=0;
              return 0;}
            var s_kW_=caml_create_string(1);
            s_kW_.safeSet(0,c_kU_);
            return pp_print_as_jv_(ppf_kR_,1,s_kW_);}
          function pp_print_as_string_k0_(s_kZ_)
           {var _kY_=print_as_kS_[1];
            return _kY_
                    ?(pp_print_as_size_jr_(ppf_kR_,_kY_[1],s_kZ_),
                      print_as_kS_[1]=
                      0,
                      0)
                    :pp_print_as_jv_(ppf_kR_,s_kZ_.getLen(),s_kZ_);}
          function doprn_li_(n_k__,i_k1_)
           {var i_k2_=i_k1_;
            for(;;)
             {if(len_kO_<=i_k2_)return _bL_(k_k3_,ppf_kR_);
              var _k4_=fmt_kP_.safeGet(i_k2_);
              if(37===_k4_)
               return _g6_
                       (fmt_kP_,
                        v_k$_,
                        n_k__,
                        i_k2_,
                        cont_s_k9_,
                        cont_a_k8_,
                        cont_t_k7_,
                        cont_f_k6_,
                        cont_m_k5_);
              if(64===_k4_)
               {var i_la_=i_k2_+1|0;
                if(len_kO_<=i_la_)return invalid_format_kt_(fmt_kP_,i_la_);
                var _lb_=fmt_kP_.safeGet(i_la_);
                if(65<=_lb_)
                 {if(94<=_lb_)
                   {var _lc_=_lb_-123|0;
                    if(!(_lc_<0||2<_lc_))
                     switch(_lc_)
                      {case 1:break;
                       case 2:
                        if(ppf_kR_[22])pp_enqueue_hk_(ppf_kR_,[0,0,5,0]);
                        if(ppf_kR_[21])
                         {var _ld_=ppf_kR_[4];
                          if(_ld_)
                           {var tags_le_=_ld_[2];
                            _bL_(ppf_kR_[26],_ld_[1]);
                            ppf_kR_[4]=tags_le_;
                            var _lf_=1;}
                          else
                           var _lf_=0;}
                        else
                         var _lf_=0;
                        _lf_;
                        var _lg_=i_la_+1|0,i_k2_=_lg_;
                        continue;
                       default:
                        var _lh_=i_la_+1|0;
                        if(len_kO_<=_lh_)
                         {pp_open_tag_ji_(ppf_kR_,_aC_);
                          var _lj_=doprn_li_(n_k__,_lh_);}
                        else
                         if(60===fmt_kP_.safeGet(_lh_))
                          {var
                            got_name_lo_=
                             function(tag_name_lk_,n_ln_,i_lm_)
                              {pp_open_tag_ji_(ppf_kR_,tag_name_lk_);
                               return doprn_li_(n_ln_,skip_gt_ll_(i_lm_));},
                            _lp_=_lh_+1|0,
                            get_ly_=
                             function(accu_lt_,n_lu_,i_ls_,j_lq_)
                              {var j_lr_=j_lq_;
                               for(;;)
                                {if(len_kO_<=j_lr_)
                                  return got_name_lo_
                                          (implode_rev_kM_
                                            (_de_(fmt_kP_,index_of_int_c9_(i_ls_),j_lr_-i_ls_|0),
                                             accu_lt_),
                                           n_lu_,
                                           j_lr_);
                                 var _lv_=fmt_kP_.safeGet(j_lr_);
                                 if(37===_lv_)
                                  {var
                                    s0_lw_=_de_(fmt_kP_,index_of_int_c9_(i_ls_),j_lr_-i_ls_|0),
                                    cont_s_lH_=
                                     function(n_lA_,s_lx_,i_lz_)
                                      {return get_ly_
                                               ([0,s_lx_,[0,s0_lw_,accu_lt_]],n_lA_,i_lz_,i_lz_);},
                                    cont_a_lP_=
                                     function(n_lG_,printer_lD_,arg_lC_,i_lF_)
                                      {var
                                        s_lE_=
                                         to_s_lB_
                                          ?_eE_(printer_lD_,0,arg_lC_)
                                          :exstring_kJ_(printer_lD_,arg_lC_);
                                       return get_ly_
                                               ([0,s_lE_,[0,s0_lw_,accu_lt_]],n_lG_,i_lF_,i_lF_);},
                                    cont_t_lS_=
                                     function(n_lO_,printer_lI_,i_lN_)
                                      {if(to_s_lB_)
                                        var s_lJ_=_bL_(printer_lI_,0);
                                       else
                                        {var
                                          _lM_=0,
                                          s_lJ_=
                                           exstring_kJ_
                                            (function(ppf_lK_,param_lL_)
                                              {return _bL_(printer_lI_,ppf_lK_);},
                                             _lM_);}
                                       return get_ly_
                                               ([0,s_lJ_,[0,s0_lw_,accu_lt_]],n_lO_,i_lN_,i_lN_);},
                                    cont_f_lW_=
                                     function(n_lR_,i_lQ_)
                                      {return format_invalid_arg_kq_(_aD_,fmt_kP_,i_lQ_);};
                                   return _g6_
                                           (fmt_kP_,
                                            v_k$_,
                                            n_lu_,
                                            j_lr_,
                                            cont_s_lH_,
                                            cont_a_lP_,
                                            cont_t_lS_,
                                            cont_f_lW_,
                                            function(n_lU_,sfmt_lV_,i_lT_)
                                             {return format_invalid_arg_kq_(_aE_,fmt_kP_,i_lT_);});}
                                 if(62===_lv_)
                                  return got_name_lo_
                                          (implode_rev_kM_
                                            (_de_(fmt_kP_,index_of_int_c9_(i_ls_),j_lr_-i_ls_|0),
                                             accu_lt_),
                                           n_lu_,
                                           j_lr_);
                                 var _lX_=j_lr_+1|0,j_lr_=_lX_;
                                 continue;}},
                            _lj_=get_ly_(0,n_k__,_lp_,_lp_);}
                         else
                          {pp_open_tag_ji_(ppf_kR_,_aB_);
                           var _lj_=doprn_li_(n_k__,_lh_);}
                        return _lj_;}}
                  else
                   if(91<=_lb_)
                    switch(_lb_-91|0)
                     {case 1:break;
                      case 2:
                       pp_close_box_je_(ppf_kR_,0);
                       var _lY_=i_la_+1|0,i_k2_=_lY_;
                       continue;
                      default:
                       var _lZ_=i_la_+1|0;
                       if(len_kO_<=_lZ_||!(60===fmt_kP_.safeGet(_lZ_)))
                        {pp_open_box_gen_i$_(ppf_kR_,0,4);
                         var _l0_=doprn_li_(n_k__,_lZ_);}
                       else
                        {var _l1_=_lZ_+1|0;
                         if(len_kO_<=_l1_)
                          var match_l2_=[0,4,_l1_];
                         else
                          {var _l3_=fmt_kP_.safeGet(_l1_);
                           if(98===_l3_)
                            var match_l2_=[0,4,_l1_+1|0];
                           else
                            if(104===_l3_)
                             {var i_l4_=_l1_+1|0;
                              if(len_kO_<=i_l4_)
                               var match_l2_=[0,0,i_l4_];
                              else
                               {var _l5_=fmt_kP_.safeGet(i_l4_);
                                if(111===_l5_)
                                 {var i_l6_=i_l4_+1|0;
                                  if(len_kO_<=i_l6_)
                                   var match_l2_=format_invalid_arg_kq_(_aG_,fmt_kP_,i_l6_);
                                  else
                                   {var
                                     _l7_=fmt_kP_.safeGet(i_l6_),
                                     match_l2_=
                                      118===_l7_
                                       ?[0,3,i_l6_+1|0]
                                       :format_invalid_arg_kq_
                                         (_bq_(_aF_,_b7_(1,_l7_)),fmt_kP_,i_l6_);}}
                                else
                                 var match_l2_=118===_l5_?[0,2,i_l4_+1|0]:[0,0,i_l4_];}}
                            else
                             var match_l2_=118===_l3_?[0,1,_l1_+1|0]:[0,4,_l1_];}
                         var
                          i_ma_=match_l2_[2],
                          kind_l8_=match_l2_[1],
                          _l0_=
                           get_int_mb_
                            (n_k__,
                             i_ma_,
                             function(size_l9_,n_l$_,i_l__)
                              {pp_open_box_gen_i$_(ppf_kR_,size_l9_,kind_l8_);
                               return doprn_li_(n_l$_,skip_gt_ll_(i_l__));});}
                       return _l0_;}}
                else
                 {if(10===_lb_)
                   {if(ppf_kR_[14]<ppf_kR_[15])
                     enqueue_advance_iD_(ppf_kR_,make_queue_elem_iH_(0,3,0));
                    var _mc_=i_la_+1|0,i_k2_=_mc_;
                    continue;}
                  if(32<=_lb_)
                   switch(_lb_-32|0)
                    {case 0:
                      pp_print_space_jG_(ppf_kR_,0);
                      var _md_=i_la_+1|0,i_k2_=_md_;
                      continue;
                     case 12:
                      pp_print_break_jD_(ppf_kR_,0,0);
                      var _me_=i_la_+1|0,i_k2_=_me_;
                      continue;
                     case 14:
                      pp_flush_queue_jm_(ppf_kR_,1);
                      _bL_(ppf_kR_[18],0);
                      var _mf_=i_la_+1|0,i_k2_=_mf_;
                      continue;
                     case 27:
                      var _mg_=i_la_+1|0;
                      if(len_kO_<=_mg_||!(60===fmt_kP_.safeGet(_mg_)))
                       {pp_print_space_jG_(ppf_kR_,0);
                        var _mh_=doprn_li_(n_k__,_mg_);}
                      else
                       {var
                         got_nspaces_mq_=
                          function(nspaces_mi_,n_ml_,i_mk_)
                           {return get_int_mb_
                                    (n_ml_,i_mk_,_bL_(got_offset_mj_,nspaces_mi_));},
                         got_offset_mj_=
                          function(nspaces_mn_,offset_mm_,n_mp_,i_mo_)
                           {pp_print_break_jD_(ppf_kR_,nspaces_mn_,offset_mm_);
                            return doprn_li_(n_mp_,skip_gt_ll_(i_mo_));},
                         _mh_=get_int_mb_(n_k__,_mg_+1|0,got_nspaces_mq_);}
                      return _mh_;
                     case 28:
                      return get_int_mb_
                              (n_k__,
                               i_la_+1|0,
                               function(size_mr_,n_mt_,i_ms_)
                                {print_as_kS_[1]=[0,size_mr_];
                                 return doprn_li_(n_mt_,skip_gt_ll_(i_ms_));});
                     case 31:
                      pp_print_flush_jy_(ppf_kR_,0);
                      var _mu_=i_la_+1|0,i_k2_=_mu_;
                      continue;
                     case 32:
                      pp_print_as_char_kX_(_lb_);
                      var _mv_=i_la_+1|0,i_k2_=_mv_;
                      continue;
                     default:}}
                return invalid_format_kt_(fmt_kP_,i_la_);}
              pp_print_as_char_kX_(_k4_);
              var _mw_=i_k2_+1|0,i_k2_=_mw_;
              continue;}}
          function cont_s_k9_(n_mz_,s_mx_,i_my_)
           {pp_print_as_string_k0_(s_mx_);return doprn_li_(n_mz_,i_my_);}
          function cont_a_k8_(n_mD_,printer_mB_,arg_mA_,i_mC_)
           {if(to_s_lB_)
             pp_print_as_string_k0_(_eE_(printer_mB_,0,arg_mA_));
            else
             _eE_(printer_mB_,ppf_kR_,arg_mA_);
            return doprn_li_(n_mD_,i_mC_);}
          function cont_t_k7_(n_mG_,printer_mE_,i_mF_)
           {if(to_s_lB_)
             pp_print_as_string_k0_(_bL_(printer_mE_,0));
            else
             _bL_(printer_mE_,ppf_kR_);
            return doprn_li_(n_mG_,i_mF_);}
          function cont_f_k6_(n_mI_,i_mH_)
           {pp_print_flush_jy_(ppf_kR_,0);return doprn_li_(n_mI_,i_mH_);}
          function cont_m_k5_(n_mK_,sfmt_mN_,i_mJ_)
           {return kprintf_mM_
                    (function(param_mL_){return doprn_li_(n_mK_,i_mJ_);},
                     sfmt_mN_);}
          function get_int_mb_(n_na_,i_mO_,c_mV_)
           {var i_mP_=i_mO_;
            for(;;)
             {if(len_kO_<=i_mP_)return invalid_integer_kw_(fmt_kP_,i_mP_);
              var _mQ_=fmt_kP_.safeGet(i_mP_);
              if(32===_mQ_){var _mR_=i_mP_+1|0,i_mP_=_mR_;continue;}
              if(37===_mQ_)
               {var
                 cont_s_m0_=
                  function(n_mU_,s_mS_,i_mT_)
                   {return _ea_
                            (c_mV_,
                             format_int_of_string_kD_(fmt_kP_,i_mT_,s_mS_),
                             n_mU_,
                             i_mT_);},
                 cont_a_m4_=
                  function(n_mX_,printer_mY_,arg_mZ_,i_mW_)
                   {return invalid_integer_kw_(fmt_kP_,i_mW_);},
                 cont_t_m7_=
                  function(n_m2_,printer_m3_,i_m1_)
                   {return invalid_integer_kw_(fmt_kP_,i_m1_);},
                 cont_f_m$_=
                  function(n_m6_,i_m5_)
                   {return invalid_integer_kw_(fmt_kP_,i_m5_);};
                return _g6_
                        (fmt_kP_,
                         v_k$_,
                         n_na_,
                         i_mP_,
                         cont_s_m0_,
                         cont_a_m4_,
                         cont_t_m7_,
                         cont_f_m$_,
                         function(n_m9_,sfmt_m__,i_m8_)
                          {return invalid_integer_kw_(fmt_kP_,i_m8_);});}
              var j_nb_=i_mP_;
              for(;;)
               {if(len_kO_<=j_nb_)
                 var _nc_=invalid_integer_kw_(fmt_kP_,j_nb_);
                else
                 {var
                   _nd_=fmt_kP_.safeGet(j_nb_),
                   _ne_=48<=_nd_?58<=_nd_?0:1:45===_nd_?1:0;
                  if(_ne_){var _nf_=j_nb_+1|0,j_nb_=_nf_;continue;}
                  var
                   size_ng_=
                    j_nb_===i_mP_
                     ?0
                     :format_int_of_string_kD_
                       (fmt_kP_,
                        j_nb_,
                        _de_(fmt_kP_,index_of_int_c9_(i_mP_),j_nb_-i_mP_|0)),
                   _nc_=_ea_(c_mV_,size_ng_,n_na_,j_nb_);}
                return _nc_;}}}
          function skip_gt_ll_(i_nh_)
           {var i_ni_=i_nh_;
            for(;;)
             {if(len_kO_<=i_ni_)return invalid_format_kt_(fmt_kP_,i_ni_);
              var _nj_=fmt_kP_.safeGet(i_ni_);
              if(32===_nj_){var _nk_=i_ni_+1|0,i_ni_=_nk_;continue;}
              return 62===_nj_?i_ni_+1|0:invalid_format_kt_(fmt_kP_,i_ni_);}}
          return doprn_li_(index_of_int_c9_(0),0);}
        var ac_nm_=[0,0,0,0];
        function add_conv_nv_(skip_nr_,i_ns_,c_nn_)
         {var _no_=41!==c_nn_?1:0,_np_=_no_?125!==c_nn_?1:0:_no_;
          if(_np_)
           {var inc_nq_=97===c_nn_?2:1;
            if(114===c_nn_)ac_nm_[3]=ac_nm_[3]+1|0;
            if(skip_nr_)
             ac_nm_[2]=ac_nm_[2]+inc_nq_|0;
            else
             ac_nm_[1]=ac_nm_[1]+inc_nq_|0;}
          return i_ns_+1|0;}
        iter_on_format_args_eM_
         (fmt_kN_,add_conv_nv_,function(i_nt_,c_nu_){return i_nt_+1|0;});
        var _nw_=ac_nm_[1];
        if(_nw_<0||6<_nw_)
         {var
           loop_nJ_=
            function(i_nx_,args_nD_)
             {if(_nw_<=i_nx_)
               {var
                 a_ny_=caml_make_vect(_nw_,0),
                 _nB_=
                  function(i_nz_,arg_nA_)
                   {return caml_array_set(a_ny_,(_nw_-i_nz_|0)-1|0,arg_nA_);},
                 i_nC_=0,
                 param_nE_=args_nD_;
                for(;;)
                 {if(param_nE_)
                   {var _nF_=param_nE_[2],_nG_=param_nE_[1];
                    if(_nF_)
                     {_nB_(i_nC_,_nG_);
                      var _nH_=i_nC_+1|0,i_nC_=_nH_,param_nE_=_nF_;
                      continue;}
                    _nB_(i_nC_,_nG_);}
                  return kpr_nl_(fmt_kN_,a_ny_);}}
              return function(x_nI_)
               {return loop_nJ_(i_nx_+1|0,[0,x_nI_,args_nD_]);};},
           _nK_=loop_nJ_(0,0);}
        else
         switch(_nw_)
          {case 1:
            var
             _nK_=
              function(x_nM_)
               {var a_nL_=caml_make_vect(1,0);
                caml_array_set(a_nL_,0,x_nM_);
                return kpr_nl_(fmt_kN_,a_nL_);};
            break;
           case 2:
            var
             _nK_=
              function(x_nO_,y_nP_)
               {var a_nN_=caml_make_vect(2,0);
                caml_array_set(a_nN_,0,x_nO_);
                caml_array_set(a_nN_,1,y_nP_);
                return kpr_nl_(fmt_kN_,a_nN_);};
            break;
           case 3:
            var
             _nK_=
              function(x_nR_,y_nS_,z_nT_)
               {var a_nQ_=caml_make_vect(3,0);
                caml_array_set(a_nQ_,0,x_nR_);
                caml_array_set(a_nQ_,1,y_nS_);
                caml_array_set(a_nQ_,2,z_nT_);
                return kpr_nl_(fmt_kN_,a_nQ_);};
            break;
           case 4:
            var
             _nK_=
              function(x_nV_,y_nW_,z_nX_,t_nY_)
               {var a_nU_=caml_make_vect(4,0);
                caml_array_set(a_nU_,0,x_nV_);
                caml_array_set(a_nU_,1,y_nW_);
                caml_array_set(a_nU_,2,z_nX_);
                caml_array_set(a_nU_,3,t_nY_);
                return kpr_nl_(fmt_kN_,a_nU_);};
            break;
           case 5:
            var
             _nK_=
              function(x_n0_,y_n1_,z_n2_,t_n3_,u_n4_)
               {var a_nZ_=caml_make_vect(5,0);
                caml_array_set(a_nZ_,0,x_n0_);
                caml_array_set(a_nZ_,1,y_n1_);
                caml_array_set(a_nZ_,2,z_n2_);
                caml_array_set(a_nZ_,3,t_n3_);
                caml_array_set(a_nZ_,4,u_n4_);
                return kpr_nl_(fmt_kN_,a_nZ_);};
            break;
           case 6:
            var
             _nK_=
              function(x_n6_,y_n7_,z_n8_,t_n9_,u_n__,v_n$_)
               {var a_n5_=caml_make_vect(6,0);
                caml_array_set(a_n5_,0,x_n6_);
                caml_array_set(a_n5_,1,y_n7_);
                caml_array_set(a_n5_,2,z_n8_);
                caml_array_set(a_n5_,3,t_n9_);
                caml_array_set(a_n5_,4,u_n__);
                caml_array_set(a_n5_,5,v_n$_);
                return kpr_nl_(fmt_kN_,a_n5_);};
            break;
           default:var _nK_=kpr_nl_(fmt_kN_,[0]);}
        return _nK_;}
      return kprintf_mM_;}
    function fprintf_og_(ppf_ob_)
     {function _od_(_oa_){return 0;}
      return _ea_(mkprintf_oe_,0,function(param_oc_){return ppf_ob_;},_od_);}
    function eprintf_oj_(fmt_of_)
     {return _eE_(fprintf_og_,err_formatter_kf_,fmt_of_);}
    var g_oh_=exit_function_bJ_[1];
    exit_function_bJ_[1]=
    function(param_oi_){_bL_(print_flush_km_,0);return _bL_(g_oh_,0);};
    var _ok_=[0,0];
    32===_cs_;
    function _on_(param_om_)
     {var seq_ol_=[];
      caml_update_dummy(seq_ol_,[0,seq_ol_,seq_ol_]);
      return seq_ol_;}
    var Canceled_oo_=[0,_ad_],current_data_op_=[0,0],max_removed_ov_=42;
    function repr_rec_ot_(t_oq_)
     {var _or_=t_oq_[1];
      {if(3===_or_[0])
        {var t__os_=_or_[1],t___ou_=repr_rec_ot_(t__os_);
         if(t___ou_!==t__os_)t_oq_[1]=[3,t___ou_];
         return t___ou_;}
       return t_oq_;}}
    function repr_ox_(t_ow_){return repr_rec_ot_(t_ow_);}
    function run_waiters_oQ_(waiters_oy_,state_oD_)
     {var save_oA_=current_data_op_[1],ws_oz_=waiters_oy_,rem_oB_=0;
      for(;;)
       {if(typeof ws_oz_==="number")
         {if(rem_oB_)
           {var
             rem_oP_=rem_oB_[2],
             ws_oO_=rem_oB_[1],
             ws_oz_=ws_oO_,
             rem_oB_=rem_oP_;
            continue;}}
        else
         switch(ws_oz_[0])
          {case 1:
            var _oC_=ws_oz_[1];
            if(rem_oB_)
             {var rem_oF_=rem_oB_[2],ws_oE_=rem_oB_[1];
              _bL_(_oC_,state_oD_);
              var ws_oz_=ws_oE_,rem_oB_=rem_oF_;
              continue;}
            _bL_(_oC_,state_oD_);
            break;
           case 2:
            var
             ws1_oG_=ws_oz_[1],
             _oH_=[0,ws_oz_[2],rem_oB_],
             ws_oz_=ws1_oG_,
             rem_oB_=_oH_;
            continue;
           default:
            var _oI_=ws_oz_[1][1];
            if(_oI_)
             {var _oJ_=_oI_[1];
              if(rem_oB_)
               {var rem_oL_=rem_oB_[2],ws_oK_=rem_oB_[1];
                _bL_(_oJ_,state_oD_);
                var ws_oz_=ws_oK_,rem_oB_=rem_oL_;
                continue;}
              _bL_(_oJ_,state_oD_);}
            else
             if(rem_oB_)
              {var
                rem_oN_=rem_oB_[2],
                ws_oM_=rem_oB_[1],
                ws_oz_=ws_oM_,
                rem_oB_=rem_oN_;
               continue;}}
        current_data_op_[1]=save_oA_;
        return 0;}}
    function wakeup_oX_(t_oR_,v_oU_)
     {var t_oS_=repr_rec_ot_(t_oR_),_oT_=t_oS_[1];
      switch(_oT_[0])
       {case 1:if(_oT_[1][1]===Canceled_oo_)return 0;break;
        case 2:
         var waiters_oW_=_oT_[1][2],state_oV_=[0,v_oU_];
         t_oS_[1]=state_oV_;
         return run_waiters_oQ_(waiters_oW_,state_oV_);
        default:}
      return _bh_(_ae_);}
    function append_o0_(l1_oY_,l2_oZ_)
     {return typeof l1_oY_==="number"
              ?l2_oZ_
              :typeof l2_oZ_==="number"?l1_oY_:[2,l1_oY_,l2_oZ_];}
    function cleanup_o2_(ws_o1_)
     {if(typeof ws_o1_!=="number")
       switch(ws_o1_[0])
        {case 2:
          var l1_o3_=ws_o1_[1],_o4_=cleanup_o2_(ws_o1_[2]);
          return append_o0_(cleanup_o2_(l1_o3_),_o4_);
         case 1:break;
         default:if(!ws_o1_[1][1])return 0;}
      return ws_o1_;}
    function fail_o6_(e_o5_){return [0,[1,e_o5_]];}
    function add_immutable_waiter_o__(sleeper_o7_,waiter_o8_)
     {var
       _o9_=
        typeof sleeper_o7_[2]==="number"
         ?[1,waiter_o8_]
         :[2,[1,waiter_o8_],sleeper_o7_[2]];
      sleeper_o7_[2]=_o9_;
      return 0;}
    var
     _o$_=[0],
     _pa_=[0,caml_make_vect(55,0),0],
     seed_pb_=caml_equal(_o$_,[0])?[0,0]:_o$_,
     l_pc_=seed_pb_.length-1,
     _pd_=0,
     _pe_=54;
    if(!(_pe_<_pd_))
     {var i_pf_=_pd_;
      for(;;)
       {caml_array_set(_pa_[1],i_pf_,i_pf_);
        var _pg_=i_pf_+1|0;
        if(_pe_!==i_pf_){var i_pf_=_pg_;continue;}
        break;}}
    var accu_ph_=[0,_aj_],_pi_=0,_pj_=54+_bk_(55,l_pc_)|0;
    if(!(_pj_<_pi_))
     {var i_pk_=_pi_;
      for(;;)
       {var
         j_pl_=i_pk_%55|0,
         _pm_=accu_ph_[1],
         _pn_=
          _bq_
           (_pm_,
            string_of_int_bt_(caml_array_get(seed_pb_,caml_mod(i_pk_,l_pc_))));
        accu_ph_[1]=caml_md5_string(_pn_,0,_pn_.getLen());
        var _po_=accu_ph_[1];
        caml_array_set
         (_pa_[1],
          j_pl_,
          caml_array_get(_pa_[1],j_pl_)^
          (((_po_.safeGet(0)+(_po_.safeGet(1)<<8)|0)+(_po_.safeGet(2)<<16)|0)+
           (_po_.safeGet(3)<<24)|
           0));
        var _pp_=i_pk_+1|0;
        if(_pj_!==i_pk_){var i_pk_=_pp_;continue;}
        break;}}
    _pa_[2]=0;
    var pause_hook_ps_=[0,function(_pq_){return 0;}],_pr_=_on_(0),_pu_=[0,0];
    function _pz_(param_px_)
     {if(_pr_[2]===_pr_)return 0;
      var tmp_pt_=_on_(0);
      tmp_pt_[1][2]=_pr_[2];
      _pr_[2][1]=tmp_pt_[1];
      tmp_pt_[1]=_pr_[1];
      _pr_[1][2]=tmp_pt_;
      _pr_[1]=_pr_;
      _pr_[2]=_pr_;
      _pu_[1]=0;
      var curr_pv_=tmp_pt_[2];
      for(;;)
       {if(curr_pv_!==tmp_pt_)
         {if(curr_pv_[4])wakeup_oX_(curr_pv_[3],0);
          var _pw_=curr_pv_[2],curr_pv_=_pw_;
          continue;}
        return 0;}}
    var
     null_py_=null,
     array_constructor_pA_=Array,
     undefined_pD_=undefined,
     _false_pC_=false;
    _ok_[1]=
    [0,
     function(e_pB_)
      {return e_pB_ instanceof array_constructor_pA_
               ?0
               :[0,new MlWrappedString(e_pB_.toString())];},
     _ok_[1]];
    function _pG_(p_pE_,n_pF_){p_pE_.appendChild(n_pF_);return 0;}
    var
     window_pH_=window,
     document_pI_=window_pH_.document,
     onIE_pM_=caml_js_on_ie(0)|0;
    function opt_iter_pL_(x_pJ_,f_pK_){return x_pJ_?_bL_(f_pK_,x_pJ_[1]):0;}
    function createElement_pP_(doc_pO_,name_pN_)
     {return doc_pO_.createElement(name_pN_.toString());}
    function unsafeCreateElement_pS_(doc_pR_,name_pQ_)
     {return createElement_pP_(doc_pR_,name_pQ_);}
    function createDiv_pU_(doc_pT_)
     {return unsafeCreateElement_pS_(doc_pT_,_$_);}
    window.HTMLElement===undefined_pD_;
    pause_hook_ps_[1]=
    function(param_pV_)
     {return 1===param_pV_
              ?(window_pH_.setTimeout(caml_js_wrap_callback(_pz_),0),0)
              :0;};
    function _p3_(c_p1_,s_pY_)
     {var n_pW_=[0,0],_pX_=0,_pZ_=s_pY_.getLen()-1|0;
      if(!(_pZ_<_pX_))
       {var i_p0_=_pX_;
        for(;;)
         {if(s_pY_.safeGet(i_p0_)===c_p1_)n_pW_[1]+=1;
          var _p2_=i_p0_+1|0;
          if(_pZ_!==i_p0_){var i_p0_=_p2_;continue;}
          break;}}
      return n_pW_[1];}
    function _p8_(c_p4_,v_p6_)
     {var _p5_=c_p4_[12];
      if(typeof _p5_!=="number"&&1===_p5_[0])
       {c_p4_[8]=[0,v_p6_,c_p4_[8]];return 0;}
      var _p7_=c_p4_[7];
      c_p4_[7]=[0,_bL_(c_p4_[1][20],v_p6_),_p7_];
      return 0;}
    function _p$_(c_p9_,s_p__){return _p8_(c_p9_,_bL_(c_p9_[1][1],s_p__));}
    function _qc_(c_qb_,lexbuf_qa_){return _p$_(c_qb_,_cD_(lexbuf_qa_));}
    function _qg_(c_qe_,style_qd_,v_qf_)
     {return 0===style_qd_?(c_qe_[3]=v_qf_,0):(c_qe_[2]=v_qf_,0);}
    function _qn_(c_qi_,style_qh_,inline_qm_,stack_qk_)
     {var elt_qj_=0===style_qh_?c_qi_[1][2]:c_qi_[1][3],inline__ql_=c_qi_[7];
      c_qi_[12]=stack_qk_;
      c_qi_[7]=inline_qm_;
      _p8_(c_qi_,_bL_(elt_qj_,_bT_(inline__ql_)));
      return _qg_(c_qi_,style_qh_,0);}
    function _qu_(c_qp_,style_qo_)
     {var _qq_=0===style_qo_?c_qp_[3]:c_qp_[2];
      if(_qq_)
       {var _qr_=c_qp_[12];
        if(typeof _qr_!=="number"&&0===_qr_[0])
         {var stack_qs_=_qr_[3],inline_qt_=_qr_[2];
          if(caml_equal(_qr_[1],style_qo_))
           return _qn_(c_qp_,style_qo_,inline_qt_,stack_qs_);}
        return 0===style_qo_?_p$_(c_qp_,_K_):_p$_(c_qp_,_L_);}
      c_qp_[12]=[0,style_qo_,c_qp_[7],c_qp_[12]];
      c_qp_[7]=0;
      return _qg_(c_qp_,style_qo_,1);}
    function _qz_(c_qv_,addr_qy_,stack_qw_)
     {c_qv_[12]=stack_qw_;
      var _qx_=c_qv_[7];
      c_qv_[7]=[0,_eE_(c_qv_[1][7],addr_qy_,_bT_(c_qv_[8])),_qx_];
      c_qv_[8]=0;
      c_qv_[5]=0;
      return 0;}
    function _qH_(c_qA_)
     {var _qB_=c_qA_[12];
      if(typeof _qB_!=="number")
       switch(_qB_[0])
        {case 5:
          var _qC_=c_qA_[12];
          c_qA_[12]=[6,[0,[0,0,_bT_(c_qA_[7])],0],_qC_];
          c_qA_[7]=0;
          return 1;
         case 6:return 1;
         case 7:
          var _qD_=_qB_[2];
          if(typeof _qD_!=="number"&&6===_qD_[0])
           {var stack_qG_=_qD_[2],entries_qF_=_qD_[1],heading_qE_=_qB_[1];
            c_qA_[12]=
            [6,[0,[0,heading_qE_,_bT_(c_qA_[7])],entries_qF_],stack_qG_];
            c_qA_[7]=0;
            return 1;}
          break;
         default:}
      return 0;}
    function _qN_(c_qI_)
     {var _qJ_=_qH_(c_qI_);
      if(_qJ_)
       {var _qK_=c_qI_[12];
        if(typeof _qK_!=="number")
         switch(_qK_[0])
          {case 5:return 1;
           case 6:
            var _qL_=_qK_[2];
            if(typeof _qL_!=="number"&&5===_qL_[0])
             {var rows_qM_=_qL_[1];
              c_qI_[12]=[5,[0,_bT_(_qK_[1]),rows_qM_]];
              return 1;}
            break;
           default:}
        throw [0,_d_,_M_];}
      return _qJ_;}
    function _q5_(c_qO_,lev_qX_)
     {for(;;)
       {var _qP_=c_qO_[12];
        if(typeof _qP_==="number")
         {if(0!==c_qO_[7])
           {var _q4_=c_qO_[11];
            c_qO_[11]=[0,_bL_(c_qO_[1][8],_bT_(c_qO_[7])),_q4_];
            c_qO_[7]=0;}
          c_qO_[12]=0;
          return 0;}
        else
         switch(_qP_[0])
          {case 1:_qz_(c_qO_,_qP_[1],_qP_[2]);continue;
           case 2:
            var _qQ_=_qP_[1]-1|0;
            if(_qQ_<0||4<_qQ_)
             var f_qR_=c_qO_[1][15];
            else
             switch(_qQ_)
              {case 1:var f_qR_=c_qO_[1][11];break;
               case 2:var f_qR_=c_qO_[1][12];break;
               case 3:var f_qR_=c_qO_[1][13];break;
               case 4:var f_qR_=c_qO_[1][14];break;
               default:var f_qR_=c_qO_[1][10];}
            var _qS_=c_qO_[11];
            c_qO_[11]=[0,_bL_(f_qR_,_bT_(c_qO_[7])),_qS_];
            c_qO_[7]=0;
            c_qO_[4]=0;
            c_qO_[12]=0;
            return 0;
           case 3:
            var stack_qU_=_qP_[1],_qT_=c_qO_[10];
            c_qO_[10]=[0,[0,_bT_(c_qO_[7]),0],_qT_];
            c_qO_[12]=stack_qU_;
            c_qO_[7]=0;
            continue;
           case 4:
            var stack_qW_=_qP_[3],lst_qV_=_qP_[2],kind_qY_=_qP_[1];
            if(lev_qX_<c_qO_[6])
             {c_qO_[6]=c_qO_[6]-1|0;
              var
               elt_qZ_=0===kind_qY_?c_qO_[1][16]:c_qO_[1][17],
               cur_lst_q0_=_bL_(elt_qZ_,_bT_(c_qO_[10]));
              if(0===c_qO_[6])
               c_qO_[11]=[0,cur_lst_q0_,c_qO_[11]];
              else
               {if(lst_qV_)
                 {var
                   _q1_=lst_qV_[1],
                   _q2_=
                    _q1_[2]
                     ?0
                     :(c_qO_[10]=[0,[0,_q1_[1],[0,cur_lst_q0_]],lst_qV_[2]],1);}
                else
                 var _q2_=0;
                if(!_q2_)throw [0,_d_,_T_];}
              c_qO_[12]=stack_qW_;
              continue;}
            return 0;
           case 5:
            var _q3_=c_qO_[11];
            c_qO_[11]=[0,_bL_(c_qO_[1][19],_bT_(_qP_[1])),_q3_];
            c_qO_[12]=0;
            return 0;
           case 6:throw [0,_d_,_S_];
           case 7:_qN_(c_qO_);continue;
           default:_qn_(c_qO_,_qP_[1],_qP_[2],_qP_[3]);continue;}}}
    function _rm_(c_q6_,kind_rf_,lev_q7_)
     {var _q8_=lev_q7_===(c_q6_[6]+1|0)?1:0;
      if(_q8_)
       {var _q9_=_q8_,_q__=0;}
      else
       {var _q$_=lev_q7_<=c_q6_[6]?1:0;
        if(_q$_)
         {var _rb_=c_q6_[6]-lev_q7_|0,stack_ra_=c_q6_[12],n_rc_=_rb_;
          for(;;)
           {if(typeof stack_ra_==="number")
             var _ri_=1;
            else
             switch(stack_ra_[0])
              {case 0:var stack_rd_=stack_ra_[3],stack_ra_=stack_rd_;continue;
               case 3:var stack_re_=stack_ra_[1],stack_ra_=stack_re_;continue;
               case 4:
                var stack_rj_=stack_ra_[3],k_rg_=stack_ra_[1];
                if(0!==n_rc_)
                 {var _rk_=n_rc_-1|0,stack_ra_=stack_rj_,n_rc_=_rk_;continue;}
                var correct_rh_=caml_equal(k_rg_,kind_rf_),_q__=1,_ri_=0;
                break;
               default:var _ri_=1;}
            if(_ri_)throw [0,_d_,_R_];
            break;}}
        else
         {var _q9_=_q$_,_q__=0;}}
      if(!_q__)var correct_rh_=_q9_;
      if(1!==lev_q7_&&!correct_rh_)return 0;
      var _rl_=correct_rh_?lev_q7_:0;
      _q5_(c_q6_,_rl_);
      if(lev_q7_===c_q6_[6])
       c_q6_[12]=[3,c_q6_[12]];
      else
       {c_q6_[6]=lev_q7_;
        c_q6_[12]=[3,[4,kind_rf_,c_q6_[10],c_q6_[12]]];
        c_q6_[10]=0;}
      return 1;}
    function _rp_(c_rn_,heading_ro_)
     {if(!_qN_(c_rn_)){_q5_(c_rn_,0);c_rn_[12]=_N_;}
      c_rn_[12]=[7,heading_ro_,[6,0,c_rn_[12]]];
      return 0;}
    function _rE_(c_rt_,lexbuf_rr_)
     {var __ocaml_lex_state_rq_=0;
      for(;;)
       {var _rs_=_cz_(_g_,__ocaml_lex_state_rq_,lexbuf_rr_);
        if(_rs_<0||8<_rs_)
         {_bL_(lexbuf_rr_[1],lexbuf_rr_);
          var __ocaml_lex_state_rq_=_rs_;
          continue;}
        switch(_rs_)
         {case 1:
           _q5_(c_rt_,0);
           if(0!==c_rt_[12])throw [0,_d_,_Q_];
           c_rt_[12]=[2,_p3_(61,_cD_(lexbuf_rr_))];
           c_rt_[4]=1;
           var _rv_=_ru_(c_rt_,lexbuf_rr_);
           break;
          case 2:
           var lev_rw_=_p3_(42,_cD_(lexbuf_rr_));
           if(!_rm_(c_rt_,0,lev_rw_))
            {var s_rx_=_cD_(lexbuf_rr_),l_ry_=s_rx_.getLen()-lev_rw_|0;
             if(0<l_ry_)_p$_(c_rt_,_ca_(s_rx_,0,l_ry_));
             var _rz_=1,_rA_=lev_rw_/2|0;
             if(!(_rA_<_rz_))
              {var i_rB_=_rz_;
               for(;;)
                {_qu_(c_rt_,0);
                 var _rC_=i_rB_+1|0;
                 if(_rA_!==i_rB_){var i_rB_=_rC_;continue;}
                 break;}}
             if(1===(lev_rw_&1))_p$_(c_rt_,_P_);}
           var _rv_=_ru_(c_rt_,lexbuf_rr_);
           break;
          case 3:
           if(!_rm_(c_rt_,1,_p3_(35,_cD_(lexbuf_rr_))))_qc_(c_rt_,lexbuf_rr_);
           var _rv_=_ru_(c_rt_,lexbuf_rr_);
           break;
          case 4:
           _q5_(c_rt_,0);
           var _rD_=c_rt_[11];
           c_rt_[11]=[0,_bL_(c_rt_[1][18],0),_rD_];
           var _rv_=_rE_(c_rt_,lexbuf_rr_);
           break;
          case 5:_q5_(c_rt_,0);var _rv_=_rF_(c_rt_,lexbuf_rr_);break;
          case 6:_rp_(c_rt_,0);var _rv_=_ru_(c_rt_,lexbuf_rr_);break;
          case 7:_rp_(c_rt_,1);var _rv_=_ru_(c_rt_,lexbuf_rr_);break;
          case 8:var _rv_=_ru_(c_rt_,lexbuf_rr_);break;
          default:_q5_(c_rt_,0);var _rv_=_rE_(c_rt_,lexbuf_rr_);}
        return _rv_;}}
    function _ru_(c_rJ_,lexbuf_rH_)
     {var __ocaml_lex_state_rG_=25;
      for(;;)
       {var _rI_=_cz_(_g_,__ocaml_lex_state_rG_,lexbuf_rH_);
        if(_rI_<0||17<_rI_)
         {_bL_(lexbuf_rH_[1],lexbuf_rH_);
          var __ocaml_lex_state_rG_=_rI_;
          continue;}
        switch(_rI_)
         {case 1:_qu_(c_rJ_,0);var _rK_=_ru_(c_rJ_,lexbuf_rH_);break;
          case 2:_qu_(c_rJ_,1);var _rK_=_ru_(c_rJ_,lexbuf_rH_);break;
          case 3:
           if(c_rJ_[4])_q5_(c_rJ_,0);else _qc_(c_rJ_,lexbuf_rH_);
           var _rK_=_rE_(c_rJ_,lexbuf_rH_);
           break;
          case 4:
           if(c_rJ_[5])
            var _rK_=_qc_(c_rJ_,lexbuf_rH_);
           else
            {var
              s_rL_=_cD_(lexbuf_rH_),
              addr_rM_=_ca_(s_rL_,2,s_rL_.getLen()-4|0),
              _rN_=c_rJ_[7];
             c_rJ_[7]=
             [0,
              _eE_(c_rJ_[1][7],addr_rM_,[0,_bL_(c_rJ_[1][1],addr_rM_),0]),
              _rN_];
             var _rK_=_ru_(c_rJ_,lexbuf_rH_);}
           break;
          case 5:
           if(c_rJ_[5])
            _qc_(c_rJ_,lexbuf_rH_);
           else
            {var s_rO_=_cD_(lexbuf_rH_);
             c_rJ_[12]=[1,_ca_(s_rO_,2,s_rO_.getLen()-3|0),c_rJ_[12]];
             c_rJ_[5]=1;}
           var _rK_=_ru_(c_rJ_,lexbuf_rH_);
           break;
          case 6:
           var
            _rP_=c_rJ_[12],
            _rQ_=
             typeof _rP_==="number"
              ?0
              :1===_rP_[0]?(_qz_(c_rJ_,_rP_[1],_rP_[2]),1):0;
           if(!_rQ_)_qc_(c_rJ_,lexbuf_rH_);
           var _rK_=_ru_(c_rJ_,lexbuf_rH_);
           break;
          case 7:
           if(c_rJ_[5])
            var _rK_=_qc_(c_rJ_,lexbuf_rH_);
           else
            {var addr_rR_=_cD_(lexbuf_rH_),_rS_=c_rJ_[7];
             c_rJ_[7]=
             [0,
              _eE_(c_rJ_[1][7],addr_rR_,[0,_bL_(c_rJ_[1][1],addr_rR_),0]),
              _rS_];
             var _rK_=_ru_(c_rJ_,lexbuf_rH_);}
           break;
          case 8:
           _p8_(c_rJ_,_bL_(c_rJ_[1][4],0));
           var _rK_=_ru_(c_rJ_,lexbuf_rH_);
           break;
          case 9:
           var s_rT_=_cD_(lexbuf_rH_),i_rU_=0,_rW_=124,_rV_=s_rT_.getLen();
           for(;;)
            {if(_rV_<=i_rU_)throw [0,_c_];
             if(s_rT_.safeGet(i_rU_)!==_rW_)
              {var _rY_=i_rU_+1|0,i_rU_=_rY_;continue;}
             var url_rX_=_ca_(s_rT_,2,i_rU_-2|0);
             _p8_
              (c_rJ_,
               _eE_
                (c_rJ_[1][5],
                 url_rX_,
                 _ca_(s_rT_,i_rU_+1|0,(s_rT_.getLen()-i_rU_|0)-3|0)));
             var _rK_=_ru_(c_rJ_,lexbuf_rH_);
             break;}
           break;
          case 10:
           var s_rZ_=_cD_(lexbuf_rH_);
           _p8_
            (c_rJ_,
             _bL_
              (c_rJ_[1][6],
               [0,
                _bL_
                 (c_rJ_[1][20],
                  _bL_(c_rJ_[1][1],_ca_(s_rZ_,3,s_rZ_.getLen()-6|0))),
                0]));
           var _rK_=_ru_(c_rJ_,lexbuf_rH_);
           break;
          case 11:
           _p$_(c_rJ_,_ca_(_cD_(lexbuf_rH_),1,1));
           var _rK_=_ru_(c_rJ_,lexbuf_rH_);
           break;
          case 12:
           if(!_qN_(c_rJ_))_qc_(c_rJ_,lexbuf_rH_);
           var _rK_=_rE_(c_rJ_,lexbuf_rH_);
           break;
          case 13:
           if(_qH_(c_rJ_))
            c_rJ_[12]=[7,0,c_rJ_[12]];
           else
            _qc_(c_rJ_,lexbuf_rH_);
           var _rK_=_ru_(c_rJ_,lexbuf_rH_);
           break;
          case 14:
           if(_qH_(c_rJ_))
            c_rJ_[12]=[7,1,c_rJ_[12]];
           else
            _qc_(c_rJ_,lexbuf_rH_);
           var _rK_=_ru_(c_rJ_,lexbuf_rH_);
           break;
          case 15:
           _qc_(c_rJ_,lexbuf_rH_);var _rK_=_ru_(c_rJ_,lexbuf_rH_);break;
          case 16:
           _eE_(eprintf_oj_,_O_,_cD_(lexbuf_rH_));
           var _rK_=_ru_(c_rJ_,lexbuf_rH_);
           break;
          case 17:var _rK_=_q5_(c_rJ_,0);break;
          default:
           if(c_rJ_[4])_q5_(c_rJ_,0);else _qc_(c_rJ_,lexbuf_rH_);
           var _rK_=_rE_(c_rJ_,lexbuf_rH_);}
        return _rK_;}}
    function _rF_(c_r3_,lexbuf_r1_)
     {var __ocaml_lex_state_r0_=77;
      for(;;)
       {var _r2_=_cz_(_g_,__ocaml_lex_state_r0_,lexbuf_r1_);
        if(_r2_<0||2<_r2_)
         {_bL_(lexbuf_r1_[1],lexbuf_r1_);
          var __ocaml_lex_state_r0_=_r2_;
          continue;}
        switch(_r2_)
         {case 1:
           var _r4_=c_r3_[11];
           c_r3_[11]=[0,_bL_(c_r3_[1][9],_bT_(c_r3_[9])),_r4_];
           c_r3_[9]=0;
           var _r5_=_rE_(c_r3_,lexbuf_r1_);
           break;
          case 2:
           var _r6_=c_r3_[9];
           c_r3_[9]=[0,_cD_(lexbuf_r1_),_r6_];
           var _r5_=_rF_(c_r3_,lexbuf_r1_);
           break;
          default:
           var s_r7_=_cD_(lexbuf_r1_),_r8_=c_r3_[9];
           c_r3_[9]=[0,_ca_(s_r7_,1,s_r7_.getLen()-1|0),_r8_];
           var _r5_=_rF_(c_r3_,lexbuf_r1_);}
        return _r5_;}}
    function node_r__(x_r9_){return x_r9_;}
    function _sc_(e_sa_,l_sb_)
     {_b3_(function(c_r$_){return _pG_(e_sa_,c_r$_);},l_sb_);
      return node_r__(e_sa_);}
    function list_builder_sm_(d_sh_,tag_sk_,c_sj_)
     {var
       _sl_=
        _bX_
         (function(param_sd_)
           {var
             l_se_=param_sd_[2],
             c_sg_=param_sd_[1],
             _sf_=l_se_?[0,l_se_[1],0]:0,
             _si_=_bv_(c_sg_,_sf_);
            return _sc_(d_sh_.createElement(_o_.toString()),_si_);},
          c_sj_);
      return _sc_(d_sh_.createElement(tag_sk_.toString()),_sl_);}
    function _sw_(x_sn_){return x_sn_;}
    function _sy_(rows_st_)
     {var
       rows_su_=
        _bX_
         (function(entries_sr_)
           {var
             _ss_=
              _bX_
               (function(param_so_)
                 {var c_sq_=param_so_[2],kind_sp_=param_so_[1]?_t_:_s_;
                  return _sc_
                          (document_pI_.createElement(kind_sp_.toString()),c_sq_);},
                entries_sr_);
            return _sc_(document_pI_.createElement(_r_.toString()),_ss_);},
          rows_st_),
       _sv_=[0,_sc_(document_pI_.createElement(_q_.toString()),rows_su_),0];
      return _sc_(document_pI_.createElement(_p_.toString()),_sv_);}
    function _sA_(param_sx_)
     {return node_r__(document_pI_.createElement(_u_.toString()));}
    function _sC_(s_sz_){return list_builder_sm_(document_pI_,_v_,s_sz_);}
    function _sE_(s_sB_){return list_builder_sm_(document_pI_,_w_,s_sB_);}
    function _sG_(s_sD_)
     {return _sc_(document_pI_.createElement(_x_.toString()),s_sD_);}
    function _sI_(s_sF_)
     {return _sc_(document_pI_.createElement(_y_.toString()),s_sF_);}
    function _sK_(s_sH_)
     {return _sc_(document_pI_.createElement(_z_.toString()),s_sH_);}
    function _sM_(s_sJ_)
     {return _sc_(document_pI_.createElement(_A_.toString()),s_sJ_);}
    function _sO_(s_sL_)
     {return _sc_(document_pI_.createElement(_B_.toString()),s_sL_);}
    function _sR_(s_sN_)
     {return _sc_(document_pI_.createElement(_C_.toString()),s_sN_);}
    function _sT_(s_sQ_)
     {var p_sP_=document_pI_.createElement(_E_.toString());
      _pG_(p_sP_,document_pI_.createTextNode(_cr_(_D_,s_sQ_).toString()));
      return node_r__(p_sP_);}
    function _sX_(s_sS_)
     {return _sc_(document_pI_.createElement(_F_.toString()),s_sS_);}
    function _sZ_(addr_sV_,s_sW_)
     {var _sU_=unsafeCreateElement_pS_(document_pI_,_ab_);
      _sU_.href=addr_sV_.toString();
      return _sc_(_sU_,s_sW_);}
    function _s3_(s_sY_)
     {return _sc_(document_pI_.createElement(_G_.toString()),s_sY_);}
    function _s5_(addr_s1_,alt_s2_)
     {var _s0_=unsafeCreateElement_pS_(document_pI_,_ac_);
      _s0_.src=addr_s1_.toString();
      _s0_.alt=alt_s2_.toString();
      return node_r__(_s0_);}
    function _s7_(param_s4_)
     {return node_r__(document_pI_.createElement(_H_.toString()));}
    function _s9_(s_s6_)
     {return _sc_(document_pI_.createElement(_I_.toString()),s_s6_);}
    function _s$_(s_s8_)
     {return _sc_(document_pI_.createElement(_J_.toString()),s_s8_);}
    var
     _ty_=
      [0,
       function(s_s__)
        {return node_r__(document_pI_.createTextNode(s_s__.toString()));},
       _s$_,
       _s9_,
       _s7_,
       _s5_,
       _s3_,
       _sZ_,
       _sX_,
       _sT_,
       _sR_,
       _sO_,
       _sM_,
       _sK_,
       _sI_,
       _sG_,
       _sE_,
       _sC_,
       _sA_,
       _sy_,
       _sw_];
    function onload_ut_(param_us_)
     {var _ta_=document_pI_.getElementById(_m_.toString());
      if(_ta_==null_py_)throw [0,_d_,_n_];
      var _tb_=0,_tc_=0;
      if(0===_tc_&&0===_tb_)
       {var _td_=createElement_pP_(document_pI_,_f_),_te_=1;}
      else
       var _te_=0;
      if(!_te_)
       if(onIE_pM_)
        {var a_tf_=new array_constructor_pA_();
         a_tf_.push(_W_.toString(),_f_.toString());
         opt_iter_pL_
          (_tc_,
           function(t_tg_)
            {a_tf_.push
              (_X_.toString(),caml_js_html_escape(t_tg_),_Y_.toString());
             return 0;});
         opt_iter_pL_
          (_tb_,
           function(n_th_)
            {a_tf_.push
              (_Z_.toString(),caml_js_html_escape(n_th_),___.toString());
             return 0;});
         a_tf_.push(_V_.toString());
         var _td_=document_pI_.createElement(a_tf_.join(_U_.toString()));}
       else
        {var res_ti_=createElement_pP_(document_pI_,_f_);
         opt_iter_pL_(_tc_,function(t_tj_){return res_ti_.type=t_tj_;});
         opt_iter_pL_(_tb_,function(n_tk_){return res_ti_.name=n_tk_;});
         var _td_=res_ti_;}
      _td_.rows=20;
      _td_.cols=80;
      var preview_tl_=createDiv_pU_(document_pI_);
      preview_tl_.style.border=_l_.toString();
      preview_tl_.style.padding=_k_.toString();
      _pG_(_ta_,_td_);
      _pG_(_ta_,unsafeCreateElement_pS_(document_pI_,_aa_));
      _pG_(_ta_,preview_tl_);
      function dyn_preview_tH_(old_text_tn_,n_tG_)
       {var text_tm_=new MlWrappedString(_td_.value);
        if(caml_string_notequal(text_tm_,old_text_tn_))
         {try
           {var
             _tx_=[0],
             _tw_=1,
             _tv_=0,
             _tu_=0,
             _tt_=0,
             _ts_=0,
             _tr_=0,
             _tq_=text_tm_.getLen(),
             _tp_=_bq_(text_tm_,_a1_),
             _tA_=
              [0,
               function(lexbuf_to_){lexbuf_to_[9]=1;return 0;},
               _tp_,
               _tq_,
               _tr_,
               _ts_,
               _tt_,
               _tu_,
               _tv_,
               _tw_,
               _tx_,
               _e_,
               _e_],
             _tz_=[0,_ty_,0,0,0,0,0,0,0,0,0,0,0];
            _rE_(_tz_,_tA_);
            var
             _tB_=_bT_(_tz_[11]),
             _tD_=_sc_(createDiv_pU_(document_pI_),_tB_),
             _tC_=preview_tl_.firstChild;
            if(_tC_!=null_py_)preview_tl_.removeChild(_tC_);
            _pG_(preview_tl_,_tD_);}
          catch(_tF_){}
          var n_tE_=20;}
        else
         var n_tE_=_bk_(0,n_tG_-1|0);
        function _tJ_(param_tI_){return dyn_preview_tH_(text_tm_,n_tE_);}
        var _tK_=0===n_tE_?0.5:0.1,t_tL_=[],_tT_=0,_tS_=0;
        caml_update_dummy
         (t_tL_,
          [0,
           [2,
            [0,
             [0,
              [0,
               function(param_tR_)
                {var t_tM_=repr_rec_ot_(t_tL_),_tN_=t_tM_[1];
                 if(2===_tN_[0])
                  {var waiters_tP_=_tN_[1][2],state_tO_=[1,[0,Canceled_oo_]];
                   t_tM_[1]=state_tO_;
                   var _tQ_=run_waiters_oQ_(waiters_tP_,state_tO_);}
                 else
                  var _tQ_=0;
                 return _tQ_;}]],
             _tS_,
             _tT_]]]);
        var
         _tV_=_tK_*1000,
         id_tW_=
          window_pH_.setTimeout
           (caml_js_wrap_callback
             (function(param_tU_){return wakeup_oX_(t_tL_,0);}),
            _tV_);
        function _tY_(param_tX_){return window_pH_.clearTimeout(id_tW_);}
        var _tZ_=repr_ox_(t_tL_)[1];
        switch(_tZ_[0])
         {case 1:var _t0_=_tZ_[1][1]===Canceled_oo_?(_tY_(0),1):0;break;
          case 2:
           var sleeper_t5_=_tZ_[1],data_t2_=current_data_op_[1];
           add_immutable_waiter_o__
            (sleeper_t5_,
             function(param_t1_)
              {if(1===param_t1_[0]&&param_t1_[1][1]===Canceled_oo_)
                {current_data_op_[1]=data_t2_;
                 try {var _t3_=_tY_(0);}catch(_t4_){return 0;}
                 return _t3_;}
               return 0;});
           var _t0_=1;
           break;
          default:var _t0_=0;}
        _t0_;
        var _t6_=repr_ox_(t_tL_)[1];
        switch(_t6_[0])
         {case 1:var _t7_=fail_o6_(_t6_[1]);break;
          case 2:
           var
            sleeper_t8_=_t6_[1],
            _t9_=[0,[2,[0,sleeper_t8_[1],0,0]]],
            data_t$_=current_data_op_[1];
           add_immutable_waiter_o__
            (sleeper_t8_,
             function(param_t__)
              {switch(param_t__[0])
                {case 0:
                  var v_ua_=param_t__[1];
                  current_data_op_[1]=data_t$_;
                  try
                   {var _ub_=_tJ_(v_ua_),_uc_=_ub_;}
                  catch(_ud_){var _uc_=fail_o6_(_ud_);}
                  var
                   t1_ue_=repr_ox_(_t9_),
                   t2_uf_=repr_ox_(_uc_),
                   _ug_=t1_ue_[1];
                  if(2===_ug_[0])
                   {var sleeper1_uh_=_ug_[1];
                    if(t1_ue_===t2_uf_)
                     var _ui_=0;
                    else
                     {var _uj_=t2_uf_[1];
                      if(2===_uj_[0])
                       {var sleeper2_uk_=_uj_[1];
                        t2_uf_[1]=[3,t1_ue_];
                        sleeper1_uh_[1][1]=[1,sleeper2_uk_[1]];
                        var
                         waiters_ul_=append_o0_(sleeper1_uh_[2],sleeper2_uk_[2]),
                         removed_um_=sleeper1_uh_[3]+sleeper2_uk_[3]|0,
                         _ui_=
                          max_removed_ov_<removed_um_
                           ?(sleeper1_uh_[3]=
                             0,
                             sleeper1_uh_[2]=
                             cleanup_o2_(waiters_ul_),
                             0)
                           :(sleeper1_uh_[3]=removed_um_,sleeper1_uh_[2]=waiters_ul_,0);}
                      else
                       {t1_ue_[1]=_uj_;
                        var _ui_=run_waiters_oQ_(sleeper1_uh_[2],_uj_);}}}
                  else
                   var _ui_=_bh_(_af_);
                  return _ui_;
                 case 1:
                  var
                   _un_=[1,param_t__[1]],
                   t_uo_=repr_ox_(_t9_),
                   _up_=t_uo_[1];
                  if(2===_up_[0])
                   {var waiters_uq_=_up_[1][2];
                    t_uo_[1]=_un_;
                    var _ur_=run_waiters_oQ_(waiters_uq_,_un_);}
                  else
                   var _ur_=_bh_(_ag_);
                  return _ur_;
                 default:throw [0,_d_,_ai_];}});
           var _t7_=_t9_;
           break;
          case 3:throw [0,_d_,_ah_];
          default:var _t7_=_tJ_(_t6_[1]);}
        return _t7_;}
      dyn_preview_tH_(_j_,0);
      return _false_pC_;}
    window_pH_.onload=
    caml_js_wrap_callback
     (function(e_uu_)
       {if(e_uu_)
         {var res_uv_=onload_ut_(e_uu_);
          if(!(res_uv_|0))e_uu_.preventDefault();
          return res_uv_;}
        var _uw_=event,res_ux_=onload_ut_(_uw_);
        _uw_.returnValue=res_ux_;
        return res_ux_;});
    do_at_exit_bN_(0);
    return;}
  ());