/* Generated by the Nim Compiler v2.0.0 */
var framePtr = null;
var excHandler = 0;
var lastJSError = null;
var NTI33554466 = {size: 0,kind: 1,base: null,node: null,finalizer: null};
var NTI721420302 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI33554435 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI973078607 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI973078613 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI134217745 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217749 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217751 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555173 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555181 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33554449 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
var NTI33554450 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
var NTI33555180 = {size: 0, kind: 22, base: null, node: null, finalizer: null};
var NTI33555177 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI33555178 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217741 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI134217743 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NNI134217743 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217743.node = NNI134217743;
var NNI134217741 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217741.node = NNI134217741;
var NNI33555178 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555178.node = NNI33555178;
NTI33555180.base = NTI33555177;
NTI33555181.base = NTI33555177;
var NNI33555177 = {kind: 2, len: 5, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI33555180, name: "parent", sons: null}, 
{kind: 1, offset: "name", len: 0, typ: NTI33554450, name: "name", sons: null}, 
{kind: 1, offset: "message", len: 0, typ: NTI33554449, name: "msg", sons: null}, 
{kind: 1, offset: "trace", len: 0, typ: NTI33554449, name: "trace", sons: null}, 
{kind: 1, offset: "up", len: 0, typ: NTI33555181, name: "up", sons: null}]};
NTI33555177.node = NNI33555177;
var NNI33555173 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI33555173.node = NNI33555173;
NTI33555177.base = NTI33555173;
NTI33555178.base = NTI33555177;
NTI134217741.base = NTI33555178;
NTI134217743.base = NTI134217741;
var NNI134217751 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217751.node = NNI134217751;
NTI134217751.base = NTI33555178;
var NNI134217749 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217749.node = NNI134217749;
NTI134217749.base = NTI33555178;
var NNI134217745 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI134217745.node = NNI134217745;
NTI134217745.base = NTI33555178;
var NNI973078613 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "a", len: 0, typ: NTI973078607, name: "a", sons: null}, 
{kind: 1, offset: "b", len: 0, typ: NTI33554435, name: "b", sons: null}]};
NTI973078613.node = NNI973078613;
var NNI721420302 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI33554435, name: "Field0", sons: null}, 
{kind: 1, offset: "Field1", len: 0, typ: NTI33554466, name: "Field1", sons: null}]};
NTI721420302.node = NNI721420302;

function mnewString(len_33557003) {
        return new Array(len_33557003);
  

  
}

function toJSStr(s_33556901) {
  var result_33556902 = null;

    var res_33556943 = newSeq_33556919((s_33556901).length);
    var i_33556944 = 0;
    var j_33556945 = 0;
    Label1: {
        Label2: while (true) {
        if (!(i_33556944 < (s_33556901).length)) break Label2;
          var c_33556946 = s_33556901[i_33556944];
          if ((c_33556946 < 128)) {
          res_33556943[j_33556945] = String.fromCharCode(c_33556946);
          i_33556944 += 1;
          }
          else {
            var helper_33556959 = newSeq_33556919(0);
            Label3: {
                Label4: while (true) {
                if (!true) break Label4;
                  var code_33556960 = c_33556946.toString(16);
                  if ((((code_33556960) == null ? 0 : (code_33556960).length) == 1)) {
                  helper_33556959.push("%0");;
                  }
                  else {
                  helper_33556959.push("%");;
                  }
                  
                  helper_33556959.push(code_33556960);;
                  i_33556944 += 1;
                  if ((((s_33556901).length <= i_33556944) || (s_33556901[i_33556944] < 128))) {
                  break Label3;
                  }
                  
                  c_33556946 = s_33556901[i_33556944];
                }
            };
++excHandler;
            try {
            res_33556943[j_33556945] = decodeURIComponent(helper_33556959.join(""));
--excHandler;
} catch (EXCEPTION) {
 var prevJSError = lastJSError;
 lastJSError = EXCEPTION;
 --excHandler;
            res_33556943[j_33556945] = helper_33556959.join("");
            lastJSError = prevJSError;
            } finally {
            }
          }
          
          j_33556945 += 1;
        }
    };
    if (res_33556943.length < j_33556945) { for (var i = res_33556943.length ; i < j_33556945 ; ++i) res_33556943.push(null); }
               else { res_33556943.length = j_33556945; };
    result_33556902 = res_33556943.join("");

  return result_33556902;

}

function raiseException(e_33556653, ename_33556654) {
    e_33556653.name = ename_33556654;
    if ((excHandler == 0)) {
    unhandledException(e_33556653);
    }
    
    throw e_33556653;

  
}

function addInt(a_33557050, b_33557051) {
        var result = a_33557050 + b_33557051;
    checkOverflowInt(result);
    return result;
  

  
}

function chckRange(i_33557324, a_33557325, b_33557326) {
  var result_33557327 = 0;

  BeforeRet: {
    if (((a_33557325 <= i_33557324) && (i_33557324 <= b_33557326))) {
    result_33557327 = i_33557324;
    break BeforeRet;
    }
    else {
    raiseRangeError();
    }
    
  };

  return result_33557327;

}

function setConstr() {
        var result = {};
    for (var i = 0; i < arguments.length; ++i) {
      var x = arguments[i];
      if (typeof(x) == "object") {
        for (var j = x[0]; j <= x[1]; ++j) {
          result[j] = true;
        }
      } else {
        result[x] = true;
      }
    }
    return result;
  

  
}
var ConstSet1 = setConstr(17, 16, 4, 18, 27, 19, 23, 22, 21);

function nimCopy(dest_33557268, src_33557269, ti_33557270) {
  var result_33557279 = null;

    switch (ti_33557270.kind) {
    case 21:
    case 22:
    case 23:
    case 5:
      if (!(isFatPointer_33557259(ti_33557270))) {
      result_33557279 = src_33557269;
      }
      else {
        result_33557279 = [src_33557269[0], src_33557269[1]];
      }
      
      break;
    case 19:
            if (dest_33557268 === null || dest_33557268 === undefined) {
        dest_33557268 = {};
      }
      else {
        for (var key in dest_33557268) { delete dest_33557268[key]; }
      }
      for (var key in src_33557269) { dest_33557268[key] = src_33557269[key]; }
      result_33557279 = dest_33557268;
    
      break;
    case 18:
    case 17:
      if (!((ti_33557270.base == null))) {
      result_33557279 = nimCopy(dest_33557268, src_33557269, ti_33557270.base);
      }
      else {
      if ((ti_33557270.kind == 17)) {
      result_33557279 = (dest_33557268 === null || dest_33557268 === undefined) ? {m_type: ti_33557270} : dest_33557268;
      }
      else {
        result_33557279 = (dest_33557268 === null || dest_33557268 === undefined) ? {} : dest_33557268;
      }
      }
      nimCopyAux(result_33557279, src_33557269, ti_33557270.node);
      break;
    case 4:
    case 16:
            if(ArrayBuffer.isView(src_33557269)) { 
        if(dest_33557268 === null || dest_33557268 === undefined || dest_33557268.length != src_33557269.length) {
          dest_33557268 = new src_33557269.constructor(src_33557269);
        } else {
          dest_33557268.set(src_33557269, 0);
        }
        result_33557279 = dest_33557268;
      } else {
        if (src_33557269 === null) {
          result_33557279 = null;
        }
        else {
          if (dest_33557268 === null || dest_33557268 === undefined || dest_33557268.length != src_33557269.length) {
            dest_33557268 = new Array(src_33557269.length);
          }
          result_33557279 = dest_33557268;
          for (var i = 0; i < src_33557269.length; ++i) {
            result_33557279[i] = nimCopy(result_33557279[i], src_33557269[i], ti_33557270.base);
          }
        }
      }
    
      break;
    case 24:
    case 27:
            if (src_33557269 === null) {
        result_33557279 = null;
      }
      else {
        if (dest_33557268 === null || dest_33557268 === undefined || dest_33557268.length != src_33557269.length) {
          dest_33557268 = new Array(src_33557269.length);
        }
        result_33557279 = dest_33557268;
        for (var i = 0; i < src_33557269.length; ++i) {
          result_33557279[i] = nimCopy(result_33557279[i], src_33557269[i], ti_33557270.base);
        }
      }
    
      break;
    case 28:
            if (src_33557269 !== null) {
        result_33557279 = src_33557269.slice(0);
      }
    
      break;
    default: 
      result_33557279 = src_33557269;
      break;
    }

  return result_33557279;

}

function chckIndx(i_33557319, a_33557320, b_33557321) {
  var result_33557322 = 0;

  BeforeRet: {
    if (((a_33557320 <= i_33557319) && (i_33557319 <= b_33557321))) {
    result_33557322 = i_33557319;
    break BeforeRet;
    }
    else {
    raiseIndexError(i_33557319, a_33557320, b_33557321);
    }
    
  };

  return result_33557322;

}

function makeNimstrLit(c_33556895) {
      var result = [];
  for (var i = 0; i < c_33556895.length; ++i) {
    result[i] = c_33556895.charCodeAt(i);
  }
  return result;
  

  
}

function subInt(a_33557054, b_33557055) {
        var result = a_33557054 - b_33557055;
    checkOverflowInt(result);
    return result;
  

  
}

function cstrToNimstr(c_33556898) {
      var ln = c_33556898.length;
  var result = new Array(ln);
  var r = 0;
  for (var i = 0; i < ln; ++i) {
    var ch = c_33556898.charCodeAt(i);

    if (ch < 128) {
      result[r] = ch;
    }
    else {
      if (ch < 2048) {
        result[r] = (ch >> 6) | 192;
      }
      else {
        if (ch < 55296 || ch >= 57344) {
          result[r] = (ch >> 12) | 224;
        }
        else {
            ++i;
            ch = 65536 + (((ch & 1023) << 10) | (c_33556898.charCodeAt(i) & 1023));
            result[r] = (ch >> 18) | 240;
            ++r;
            result[r] = ((ch >> 12) & 63) | 128;
        }
        ++r;
        result[r] = ((ch >> 6) & 63) | 128;
      }
      ++r;
      result[r] = (ch & 63) | 128;
    }
    ++r;
  }
  return result;
  

  
}
var ConstSet2 = setConstr([65, 90]);
var ConstSet3 = setConstr(95, 32, 46);
var ConstSet4 = setConstr(95, 32, 46);

function mulInt(a_33557058, b_33557059) {
        var result = a_33557058 * b_33557059;
    checkOverflowInt(result);
    return result;
  

  
}
var ConstSet5 = setConstr([97, 122]);
var ConstSet6 = setConstr([65, 90], [97, 122]);
var ConstSet7 = setConstr([97, 122]);
var ConstSet8 = setConstr([65, 90]);
var ConstSet9 = setConstr([65, 90], [97, 122]);

function nimMax(a_33557108, b_33557109) {
    var Temporary1;

  var result_33557110 = 0;

  BeforeRet: {
    if ((b_33557109 <= a_33557108)) {
    Temporary1 = a_33557108;
    }
    else {
    Temporary1 = b_33557109;
    }
    
    result_33557110 = Temporary1;
    break BeforeRet;
  };

  return result_33557110;

}

function nimMin(a_33557104, b_33557105) {
    var Temporary1;

  var result_33557106 = 0;

  BeforeRet: {
    if ((a_33557104 <= b_33557105)) {
    Temporary1 = a_33557104;
    }
    else {
    Temporary1 = b_33557105;
    }
    
    result_33557106 = Temporary1;
    break BeforeRet;
  };

  return result_33557106;

}

function addChar(x_33557415, c_33557416) {
    x_33557415.push(c_33557416);

  
}
var objectID_1207959729 = [0];

function setTheme(theme_570425350) {
    document.documentElement.setAttribute("data-theme", theme_570425350);
    window.localStorage.setItem("theme", theme_570425350);

  
}

function add_33556373(x_33556374, x_33556374_Idx, y_33556375) {
          if (x_33556374[x_33556374_Idx] === null) { x_33556374[x_33556374_Idx] = []; }
      var off = x_33556374[x_33556374_Idx].length;
      x_33556374[x_33556374_Idx].length += y_33556375.length;
      for (var i = 0; i < y_33556375.length; ++i) {
        x_33556374[x_33556374_Idx][off+i] = y_33556375.charCodeAt(i);
      }
    

  
}

function newSeq_33556919(len_33556921) {
  var result_33556922 = [];

    result_33556922 = new Array(len_33556921); for (var i = 0 ; i < len_33556921 ; ++i) { result_33556922[i] = null; }
  return result_33556922;

}

function unhandledException(e_33556649) {
    var buf_33556650 = [[]];
    if (!(((e_33556649.message).length == 0))) {
    buf_33556650[0].push.apply(buf_33556650[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110,58,32]);;
    buf_33556650[0].push.apply(buf_33556650[0], e_33556649.message);;
    }
    else {
    buf_33556650[0].push.apply(buf_33556650[0], [69,114,114,111,114,58,32,117,110,104,97,110,100,108,101,100,32,101,120,99,101,112,116,105,111,110]);;
    }
    
    buf_33556650[0].push.apply(buf_33556650[0], [32,91]);;
    add_33556373(buf_33556650, 0, e_33556649.name);
    buf_33556650[0].push.apply(buf_33556650[0], [93,10]);;
    var cbuf_33556651 = toJSStr(buf_33556650[0]);
      if (typeof(Error) !== "undefined") {
    throw new Error(cbuf_33556651);
  }
  else {
    throw cbuf_33556651;
  }
  

  
}

function raiseOverflow() {
    raiseException({message: [111,118,101,114,45,32,111,114,32,117,110,100,101,114,102,108,111,119], parent: null, m_type: NTI134217743, name: null, trace: [], up: null}, "OverflowDefect");

  
}

function checkOverflowInt(a_33557048) {
        if (a_33557048 > 2147483647 || a_33557048 < -2147483648) raiseOverflow();
  

  
}

function raiseRangeError() {
    raiseException({message: [118,97,108,117,101,32,111,117,116,32,111,102,32,114,97,110,103,101], parent: null, m_type: NTI134217751, name: null, trace: [], up: null}, "RangeDefect");

  
}

function addChars_301990090(result_301990092, result_301990092_Idx, x_301990093, start_301990094, n_301990095) {
    var Temporary1;

    var old_301990096 = (result_301990092[result_301990092_Idx]).length;
    if (result_301990092[result_301990092_Idx].length < (Temporary1 = chckRange(addInt(old_301990096, n_301990095), 0, 2147483647), Temporary1)) { for (var i = result_301990092[result_301990092_Idx].length; i < Temporary1; ++i) result_301990092[result_301990092_Idx].push(0); }
         else {result_301990092[result_301990092_Idx].length = Temporary1; };
    Label2: {
      var iHEX60gensym4_301990110 = 0;
      var i_570426543 = 0;
      Label3: {
          Label4: while (true) {
          if (!(i_570426543 < n_301990095)) break Label4;
            iHEX60gensym4_301990110 = i_570426543;
            result_301990092[result_301990092_Idx][chckIndx(addInt(old_301990096, iHEX60gensym4_301990110), 0, (result_301990092[result_301990092_Idx]).length - 1)] = x_301990093.charCodeAt(chckIndx(addInt(start_301990094, iHEX60gensym4_301990110), 0, (x_301990093).length - 1));
            i_570426543 = addInt(i_570426543, 1);
          }
      };
    };

  
}

function addChars_301990086(result_301990088, result_301990088_Idx, x_301990089) {
    addChars_301990090(result_301990088, result_301990088_Idx, x_301990089, 0, ((x_301990089) == null ? 0 : (x_301990089).length));

  
}

function addInt_301990111(result_301990112, result_301990112_Idx, x_301990113) {
    addChars_301990086(result_301990112, result_301990112_Idx, ((x_301990113) + ""));

  
}

function addInt_301990129(result_301990130, result_301990130_Idx, x_301990131) {
    addInt_301990111(result_301990130, result_301990130_Idx, BigInt(x_301990131));

  
}

function HEX24_385875976(x_385875977) {
  var result_385875978 = [[]];

    addInt_301990129(result_385875978, 0, x_385875977);

  return result_385875978[0];

}

function isFatPointer_33557259(ti_33557260) {
  var result_33557261 = false;

  BeforeRet: {
    result_33557261 = !((ConstSet1[ti_33557260.base.kind] != undefined));
    break BeforeRet;
  };

  return result_33557261;

}

function nimCopyAux(dest_33557272, src_33557273, n_33557274) {
    switch (n_33557274.kind) {
    case 0:
      break;
    case 1:
            dest_33557272[n_33557274.offset] = nimCopy(dest_33557272[n_33557274.offset], src_33557273[n_33557274.offset], n_33557274.typ);
    
      break;
    case 2:
          for (var i = 0; i < n_33557274.sons.length; i++) {
      nimCopyAux(dest_33557272, src_33557273, n_33557274.sons[i]);
    }
    
      break;
    case 3:
            dest_33557272[n_33557274.offset] = nimCopy(dest_33557272[n_33557274.offset], src_33557273[n_33557274.offset], n_33557274.typ);
      for (var i = 0; i < n_33557274.sons.length; ++i) {
        nimCopyAux(dest_33557272, src_33557273, n_33557274.sons[i][1]);
      }
    
      break;
    }

  
}

function raiseIndexError(i_33556812, a_33556813, b_33556814) {
    var Temporary1;

    if ((b_33556814 < a_33556813)) {
    Temporary1 = [105,110,100,101,120,32,111,117,116,32,111,102,32,98,111,117,110,100,115,44,32,116,104,101,32,99,111,110,116,97,105,110,101,114,32,105,115,32,101,109,112,116,121];
    }
    else {
    Temporary1 = ([105,110,100,101,120,32] || []).concat(HEX24_385875976(i_33556812) || [],[32,110,111,116,32,105,110,32] || [],HEX24_385875976(a_33556813) || [],[32,46,46,32] || [],HEX24_385875976(b_33556814) || []);
    }
    
    raiseException({message: nimCopy(null, Temporary1, NTI33554449), parent: null, m_type: NTI134217749, name: null, trace: [], up: null}, "IndexDefect");

  
}

function sysFatal_268435501(message_268435504) {
    raiseException({message: nimCopy(null, message_268435504, NTI33554449), m_type: NTI134217745, parent: null, name: null, trace: [], up: null}, "AssertionDefect");

  
}

function raiseAssert_268435499(msg_268435500) {
    sysFatal_268435501(msg_268435500);

  
}

function failedAssertImpl_268435541(msg_268435542) {
    raiseAssert_268435499(msg_268435542);

  
}

function onDOMLoaded(e_570425385) {
            
function HEX3Aanonymous_570425409(event_570425410) {
                event_570425410.target.parentNode.style.display = "none";
                event_570425410.target.parentNode.nextSibling.style.display = "inline";

              
            }

    document.getElementById("theme-select").value = window.localStorage.getItem("theme");
    Label1: {
      var pragmaDots_570425408 = null;
      var colontmp__570426534 = [];
      colontmp__570426534 = document.getElementsByClassName("pragmadots");
      var i_570426536 = 0;
      var L_570426537 = (colontmp__570426534).length;
      Label2: {
          Label3: while (true) {
          if (!(i_570426536 < L_570426537)) break Label3;
            pragmaDots_570425408 = colontmp__570426534[chckIndx(i_570426536, 0, (colontmp__570426534).length - 1)];
            pragmaDots_570425408.onclick = HEX3Aanonymous_570425409;
            i_570426536 = addInt(i_570426536, 1);
            if (!(((colontmp__570426534).length == L_570426537))) {
            failedAssertImpl_268435541(makeNimstrLit("iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it"));
            }
            
          }
      };
    };

  
}

function isWhitespace_570425752(x_570425753) {
  var result_570425754 = false;

    result_570425754 = (((x_570425753.nodeName == "#text") && !/\S/.test(x_570425753.textContent)) || (x_570425753.nodeName == "#comment"));

  return result_570425754;

}

function toToc_570425755(x_570425756, father_570425757) {
                var Temporary5;
            var Temporary6;
            var Temporary7;
            var Temporary8;
      var Temporary15;

    if ((x_570425756.nodeName == "UL")) {
    var f_570425765 = {heading: null, kids: [], sortId: (father_570425757.kids).length, doSort: false};
    var i_570425766 = 0;
    Label1: {
        Label2: while (true) {
        if (!(i_570425766 < x_570425756.childNodes.length)) break Label2;
          var nxt_570425767 = addInt(i_570425766, 1);
          Label3: {
              Label4: while (true) {
                if (!(nxt_570425767 < x_570425756.childNodes.length)) Temporary5 = false; else {                  Temporary5 = isWhitespace_570425752(x_570425756.childNodes[nxt_570425767]);                }              if (!Temporary5) break Label4;
                nxt_570425767 = addInt(nxt_570425767, 1);
              }
          };
            if (!(nxt_570425767 < x_570425756.childNodes.length)) Temporary8 = false; else {              Temporary8 = (x_570425756.childNodes[i_570425766].nodeName == "LI");            }            if (!Temporary8) Temporary7 = false; else {              Temporary7 = (x_570425756.childNodes[i_570425766].childNodes.length == 1);            }            if (!Temporary7) Temporary6 = false; else {              Temporary6 = (x_570425756.childNodes[nxt_570425767].nodeName == "UL");            }          if (Temporary6) {
          var e_570425780 = {heading: x_570425756.childNodes[i_570425766].childNodes[0], kids: [], sortId: (f_570425765.kids).length, doSort: false};
          var it_570425781 = x_570425756.childNodes[nxt_570425767];
          Label9: {
            var j_570425786 = 0;
            var colontmp__570426550 = 0;
            colontmp__570426550 = it_570425781.childNodes.length;
            var i_570426551 = 0;
            Label10: {
                Label11: while (true) {
                if (!(i_570426551 < colontmp__570426550)) break Label11;
                  j_570425786 = i_570426551;
                  toToc_570425755(it_570425781.childNodes[j_570425786], e_570425780);
                  i_570426551 = addInt(i_570426551, 1);
                }
            };
          };
          f_570425765.kids.push(e_570425780);;
          i_570425766 = addInt(nxt_570425767, 1);
          }
          else {
            toToc_570425755(x_570425756.childNodes[i_570425766], f_570425765);
            i_570425766 = addInt(i_570425766, 1);
          }
          
        }
    };
    father_570425757.kids.push(f_570425765);;
    }
    else {
    if (isWhitespace_570425752(x_570425756)) {
    }
    else {
    if ((x_570425756.nodeName == "LI")) {
    var idx_570425804 = [];
    Label12: {
      var i_570425809 = 0;
      var colontmp__570426554 = 0;
      colontmp__570426554 = x_570425756.childNodes.length;
      var i_570426555 = 0;
      Label13: {
          Label14: while (true) {
          if (!(i_570426555 < colontmp__570426554)) break Label14;
            i_570425809 = i_570426555;
            if (!(isWhitespace_570425752(x_570425756.childNodes[i_570425809]))) {
            idx_570425804.push(i_570425809);;
            }
            
            i_570426555 = addInt(i_570426555, 1);
          }
      };
    };
      if (!((idx_570425804).length == 2)) Temporary15 = false; else {        Temporary15 = (x_570425756.childNodes[idx_570425804[chckIndx(1, 0, (idx_570425804).length - 1)]].nodeName == "UL");      }    if (Temporary15) {
    var e_570425825 = {heading: x_570425756.childNodes[idx_570425804[chckIndx(0, 0, (idx_570425804).length - 1)]], kids: [], sortId: (father_570425757.kids).length, doSort: false};
    var it_570425826 = x_570425756.childNodes[idx_570425804[chckIndx(1, 0, (idx_570425804).length - 1)]];
    Label16: {
      var j_570425831 = 0;
      var colontmp__570426558 = 0;
      colontmp__570426558 = it_570425826.childNodes.length;
      var i_570426559 = 0;
      Label17: {
          Label18: while (true) {
          if (!(i_570426559 < colontmp__570426558)) break Label18;
            j_570425831 = i_570426559;
            toToc_570425755(it_570425826.childNodes[j_570425831], e_570425825);
            i_570426559 = addInt(i_570426559, 1);
          }
      };
    };
    father_570425757.kids.push(e_570425825);;
    }
    else {
      Label19: {
        var i_570425840 = 0;
        var colontmp__570426562 = 0;
        colontmp__570426562 = x_570425756.childNodes.length;
        var i_570426563 = 0;
        Label20: {
            Label21: while (true) {
            if (!(i_570426563 < colontmp__570426562)) break Label21;
              i_570425840 = i_570426563;
              toToc_570425755(x_570425756.childNodes[i_570425840], father_570425757);
              i_570426563 = addInt(i_570426563, 1);
            }
        };
      };
    }
    
    }
    else {
    father_570425757.kids.push({heading: x_570425756, kids: [], sortId: (father_570425757.kids).length, doSort: false});;
    }
    }}

  
}

function extractItems_570425543(x_570425544, heading_570425545, items_570425546, items_570425546_Idx) {
  BeforeRet: {
    if ((x_570425544 == null)) {
    break BeforeRet;
    }
    
    if ((!((x_570425544.heading == null)) && (x_570425544.heading.textContent == heading_570425545))) {
    Label1: {
      var i_570425563 = 0;
      var colontmp__570426566 = 0;
      colontmp__570426566 = (x_570425544.kids).length;
      var i_570426567 = 0;
      Label2: {
          Label3: while (true) {
          if (!(i_570426567 < colontmp__570426566)) break Label3;
            i_570425563 = i_570426567;
            items_570425546[items_570425546_Idx].push(x_570425544.kids[chckIndx(i_570425563, 0, (x_570425544.kids).length - 1)].heading);;
            i_570426567 = addInt(i_570426567, 1);
          }
      };
    };
    }
    else {
      Label4: {
        var k_570425589 = null;
        var i_570426571 = 0;
        var L_570426572 = (x_570425544.kids).length;
        Label5: {
            Label6: while (true) {
            if (!(i_570426571 < L_570426572)) break Label6;
              k_570425589 = x_570425544.kids[chckIndx(i_570426571, 0, (x_570425544.kids).length - 1)];
              extractItems_570425543(k_570425589, heading_570425545, items_570425546, items_570425546_Idx);
              i_570426571 = addInt(i_570426571, 1);
              if (!(((x_570425544.kids).length == L_570426572))) {
              failedAssertImpl_268435541(makeNimstrLit("iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it"));
              }
              
            }
        };
      };
    }
    
  };

  
}

function tree_570425474(tag_570425475, kids_570425476) {
  var result_570425477 = null;

    result_570425477 = document.createElement(tag_570425475);
    Label1: {
      var k_570425491 = null;
      var i_570426584 = 0;
      Label2: {
          Label3: while (true) {
          if (!(i_570426584 < (kids_570425476).length)) break Label3;
            k_570425491 = kids_570425476[chckIndx(i_570426584, 0, (kids_570425476).length - 1)];
            result_570425477.appendChild(k_570425491);
            i_570426584 = addInt(i_570426584, 1);
          }
      };
    };

  return result_570425477;

}

function text_570425499(s_570425500) {
  var result_570425501 = null;

    result_570425501 = document.createTextNode(s_570425500);

  return result_570425501;

}

function uncovered_570425944(x_570425945) {
    var Temporary1;

  var result_570425946 = null;

  BeforeRet: {
    if ((((x_570425945.kids).length == 0) && !((x_570425945.heading == null)))) {
    if (!(x_570425945.heading.hasOwnProperty('__karaxMarker__'))) {
    Temporary1 = x_570425945;
    }
    else {
    Temporary1 = null;
    }
    
    result_570425946 = Temporary1;
    break BeforeRet;
    }
    
    result_570425946 = {heading: x_570425945.heading, kids: [], sortId: x_570425945.sortId, doSort: x_570425945.doSort};
    Label2: {
      var k_570425961 = null;
      var i_570426591 = 0;
      var L_570426592 = (x_570425945.kids).length;
      Label3: {
          Label4: while (true) {
          if (!(i_570426591 < L_570426592)) break Label4;
            k_570425961 = x_570425945.kids[chckIndx(i_570426591, 0, (x_570425945.kids).length - 1)];
            var y_570425962 = uncovered_570425944(k_570425961);
            if (!((y_570425962 == null))) {
            result_570425946.kids.push(y_570425962);;
            }
            
            i_570426591 = addInt(i_570426591, 1);
            if (!(((x_570425945.kids).length == L_570426592))) {
            failedAssertImpl_268435541(makeNimstrLit("iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it"));
            }
            
          }
      };
    };
    if (((result_570425946.kids).length == 0)) {
    result_570425946 = null;
    }
    
  };

  return result_570425946;

}

function mergeTocs_570425974(orig_570425975, news_570425976) {
  var result_570425977 = null;

    result_570425977 = uncovered_570425944(orig_570425975);
    if ((result_570425977 == null)) {
    result_570425977 = news_570425976;
    }
    else {
      Label1: {
        var i_570425989 = 0;
        var colontmp__570426587 = 0;
        colontmp__570426587 = (news_570425976.kids).length;
        var i_570426588 = 0;
        Label2: {
            Label3: while (true) {
            if (!(i_570426588 < colontmp__570426587)) break Label3;
              i_570425989 = i_570426588;
              result_570425977.kids.push(news_570425976.kids[chckIndx(i_570425989, 0, (news_570425976.kids).length - 1)]);;
              i_570426588 = addInt(i_570426588, 1);
            }
        };
      };
    }
    

  return result_570425977;

}

function buildToc_570425994(orig_570425995, types_570425996, procs_570425997) {
  var result_570425998 = null;

    var newStuff_570426003 = {heading: null, kids: [], doSort: true, sortId: 0};
    Label1: {
      var t_570426007 = null;
      var i_570426579 = 0;
      var L_570426580 = (types_570425996).length;
      Label2: {
          Label3: while (true) {
          if (!(i_570426579 < L_570426580)) break Label3;
            t_570426007 = types_570425996[chckIndx(i_570426579, 0, (types_570425996).length - 1)];
            var c_570426012 = {heading: t_570426007.cloneNode(true), kids: [], doSort: true, sortId: 0};
            t_570426007.__karaxMarker__ = true;
            Label4: {
              var p_570426016 = null;
              var i_570426576 = 0;
              var L_570426577 = (procs_570425997).length;
              Label5: {
                  Label6: while (true) {
                  if (!(i_570426576 < L_570426577)) break Label6;
                    p_570426016 = procs_570425997[chckIndx(i_570426576, 0, (procs_570425997).length - 1)];
                    if (!(p_570426016.hasOwnProperty('__karaxMarker__'))) {
                    var xx_570426017 = p_570426016.parentNode.getElementsByClassName("attachedType");
                    if ((((xx_570426017).length == 1) && (xx_570426017[chckIndx(0, 0, (xx_570426017).length - 1)].textContent == t_570426007.textContent))) {
                    var q_570426022 = tree_570425474("A", [text_570425499(p_570426016.title)]);
                    q_570426022.setAttribute("href", p_570426016.getAttribute("href"));
                    c_570426012.kids.push({heading: q_570426022, kids: [], sortId: 0, doSort: false});;
                    p_570426016.__karaxMarker__ = true;
                    }
                    
                    }
                    
                    i_570426576 = addInt(i_570426576, 1);
                    if (!(((procs_570425997).length == L_570426577))) {
                    failedAssertImpl_268435541(makeNimstrLit("iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it"));
                    }
                    
                  }
              };
            };
            newStuff_570426003.kids.push(c_570426012);;
            i_570426579 = addInt(i_570426579, 1);
            if (!(((types_570425996).length == L_570426580))) {
            failedAssertImpl_268435541(makeNimstrLit("iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it"));
            }
            
          }
      };
    };
    result_570425998 = mergeTocs_570425974(orig_570425995, newStuff_570426003);

  return result_570425998;

}

function add_570425492(parent_570425493, kid_570425494) {
    if (((parent_570425493.nodeName == "TR") && ((kid_570425494.nodeName == "TD") || (kid_570425494.nodeName == "TH")))) {
    var k_570425495 = document.createElement("TD");
    k_570425495.appendChild(kid_570425494);
    parent_570425493.appendChild(k_570425495);
    }
    else {
    parent_570425493.appendChild(kid_570425494);
    }
    

  
}

function setClass_570425496(e_570425497, value_570425498) {
    e_570425497.setAttribute("class", value_570425498);

  
}

function toHtml_570425622(x_570425623, isRoot_570425624) {
    
function HEX3Aanonymous_570425642(a_570425643, b_570425644) {
      var result_570425645 = 0;

      BeforeRet: {
        if ((!((a_570425643.heading == null)) && !((b_570425644.heading == null)))) {
        var x_570425654 = a_570425643.heading.textContent;
        var y_570425655 = b_570425644.heading.textContent;
        if ((x_570425654 < y_570425655)) {
        result_570425645 = (-1);
        break BeforeRet;
        }
        
        if ((y_570425655 < x_570425654)) {
        result_570425645 = 1;
        break BeforeRet;
        }
        
        result_570425645 = 0;
        break BeforeRet;
        }
        else {
          result_570425645 = subInt(a_570425643.sortId, b_570425644.sortId);
          break BeforeRet;
        }
        
      };

      return result_570425645;

    }

  var result_570425625 = null;

  BeforeRet: {
    if ((x_570425623 == null)) {
    result_570425625 = null;
    break BeforeRet;
    }
    
    if (((x_570425623.kids).length == 0)) {
    if ((x_570425623.heading == null)) {
    result_570425625 = null;
    break BeforeRet;
    }
    
    result_570425625 = x_570425623.heading.cloneNode(true);
    break BeforeRet;
    }
    
    result_570425625 = tree_570425474("DIV", []);
    if ((!((x_570425623.heading == null)) && !(x_570425623.heading.hasOwnProperty('__karaxMarker__')))) {
    add_570425492(result_570425625, x_570425623.heading.cloneNode(true));
    }
    
    var ul_570425641 = tree_570425474("UL", []);
    if (isRoot_570425624) {
    setClass_570425496(ul_570425641, "simple simple-toc");
    }
    else {
    setClass_570425496(ul_570425641, "simple");
    }
    
    if (x_570425623.doSort) {
    x_570425623.kids.sort(HEX3Aanonymous_570425642);
    }
    
    Label1: {
      var k_570425667 = null;
      var i_570426595 = 0;
      var L_570426596 = (x_570425623.kids).length;
      Label2: {
          Label3: while (true) {
          if (!(i_570426595 < L_570426596)) break Label3;
            k_570425667 = x_570425623.kids[chckIndx(i_570426595, 0, (x_570425623.kids).length - 1)];
            var y_570425668 = toHtml_570425622(k_570425667, false);
            if (!((y_570425668 == null))) {
            add_570425492(ul_570425641, tree_570425474("LI", [y_570425668]));
            }
            
            i_570426595 = addInt(i_570426595, 1);
            if (!(((x_570425623.kids).length == L_570426596))) {
            failedAssertImpl_268435541(makeNimstrLit("iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it"));
            }
            
          }
      };
    };
    if (!((ul_570425641.childNodes.length == 0))) {
    add_570425492(result_570425625, ul_570425641);
    }
    
    if ((result_570425625.childNodes.length == 0)) {
    result_570425625 = null;
    }
    
  };

  return result_570425625;

}

function replaceById_570425502(id_570425503, newTree_570425504) {
    var x_570425505 = document.getElementById(id_570425503);
    x_570425505.parentNode.replaceChild(newTree_570425504, x_570425505);
    newTree_570425504.id = id_570425503;

  
}

function togglevis_570426052(d_570426053) {
    if ((d_570426053.style.display == "none")) {
    d_570426053.style.display = "inline";
    }
    else {
      d_570426053.style.display = "none";
    }
    

  
}

function groupBy(value_570426055) {
    var toc_570426056 = document.getElementById("toc-list");
    if ((alternative_570426051[0] == null)) {
    var tt_570426064 = {heading: null, kids: [], sortId: 0, doSort: false};
    toToc_570425755(toc_570426056, tt_570426064);
    tt_570426064 = tt_570426064.kids[chckIndx(0, 0, (tt_570426064.kids).length - 1)];
    var types_570426069 = [[]];
    var procs_570426074 = [[]];
    extractItems_570425543(tt_570426064, "Types", types_570426069, 0);
    extractItems_570425543(tt_570426064, "Procs", procs_570426074, 0);
    extractItems_570425543(tt_570426064, "Converters", procs_570426074, 0);
    extractItems_570425543(tt_570426064, "Methods", procs_570426074, 0);
    extractItems_570425543(tt_570426064, "Templates", procs_570426074, 0);
    extractItems_570425543(tt_570426064, "Macros", procs_570426074, 0);
    extractItems_570425543(tt_570426064, "Iterators", procs_570426074, 0);
    var ntoc_570426075 = buildToc_570425994(tt_570426064, types_570426069[0], procs_570426074[0]);
    var x_570426076 = toHtml_570425622(ntoc_570426075, true);
    alternative_570426051[0] = tree_570425474("DIV", [x_570426076]);
    }
    
    if ((value_570426055 == "type")) {
    replaceById_570425502("tocRoot", alternative_570426051[0]);
    }
    else {
    replaceById_570425502("tocRoot", tree_570425474("DIV", []));
    }
    
    togglevis_570426052(document.getElementById("toc-list"));

  
}

function HEX5BHEX5D_738198811(s_738198814, x_738198815) {
  var result_738198816 = [];

    var a_738198818 = x_738198815.a;
    var L_738198820 = addInt(subInt(subInt((s_738198814).length, x_738198815.b), a_738198818), 1);
    result_738198816 = nimCopy(null, mnewString(chckRange(L_738198820, 0, 2147483647)), NTI33554449);
    Label1: {
      var i_738198825 = 0;
      var i_570426605 = 0;
      Label2: {
          Label3: while (true) {
          if (!(i_570426605 < L_738198820)) break Label3;
            i_738198825 = i_570426605;
            result_738198816[chckIndx(i_738198825, 0, (result_738198816).length - 1)] = s_738198814[chckIndx(addInt(i_738198825, a_738198818), 0, (s_738198814).length - 1)];
            i_570426605 = addInt(i_570426605, 1);
          }
      };
    };

  return result_738198816;

}

function HEX2EHEX2E_973078632(a_973078635, b_973078636) {
  var result_973078639 = ({a: 0, b: 0});

    result_973078639 = nimCopy(result_973078639, {a: a_973078635, b: b_973078636}, NTI973078613);

  return result_973078639;

}
async function loadIndex_570426270() {
  var result_570426272 = null;

  BeforeRet: {
    var indexURL_570426278 = document.getElementById("indexLink").getAttribute("href");
    var rootURL_570426304 = HEX5BHEX5D_738198811(cstrToNimstr(indexURL_570426278), HEX2EHEX2E_973078632(0, 14));
    var resp_570426316 = (await (await fetch(indexURL_570426278)).text());
    var indexElem_570426317 = document.createElement("div");
    indexElem_570426317.innerHTML = resp_570426316;
    Label1: {
      var href_570426339 = null;
      var colontmp__570426599 = [];
      colontmp__570426599 = indexElem_570426317.getElementsByClassName("reference");
      var i_570426601 = 0;
      var L_570426602 = (colontmp__570426599).length;
      Label2: {
          Label3: while (true) {
          if (!(i_570426601 < L_570426602)) break Label3;
            href_570426339 = colontmp__570426599[chckIndx(i_570426601, 0, (colontmp__570426599).length - 1)];
            href_570426339.setAttribute("href", toJSStr((rootURL_570426304 || []).concat(cstrToNimstr(href_570426339.getAttribute("href")) || [])));
            db_570426093[0].push(href_570426339);;
            contents_570426094[0].push(href_570426339.getAttribute("data-doc-search-tag"));;
            i_570426601 = addInt(i_570426601, 1);
            if (!(((colontmp__570426599).length == L_570426602))) {
            failedAssertImpl_268435541(makeNimstrLit("iterators.nim(246, 11) `len(a) == L` the length of the seq changed while iterating over it"));
            }
            
          }
      };
    };
    result_570426272 = undefined;
    break BeforeRet;
  };

  return result_570426272;

}

function then_570426448(future_570426451, onSuccess_570426452, onReject_570426453) {
  var result_570426454 = null;

  BeforeRet: {
    var ret_570426464 = null;
    ret_570426464 = future_570426451.then(onSuccess_570426452, onReject_570426453)
    result_570426454 = ret_570426464;
    break BeforeRet;
  };

  return result_570426454;

}

function nsuToLowerAsciiChar(c_738197589) {
  var result_738197590 = 0;

    if ((ConstSet2[c_738197589] != undefined)) {
    result_738197590 = (c_738197589 ^ 32);
    }
    else {
      result_738197590 = c_738197589;
    }
    

  return result_738197590;

}

function fuzzyMatch_721420304(pattern_721420305, str_721420306) {
              var Temporary4;
              var Temporary5;
                var Temporary6;
      var Temporary7;
        var Temporary8;

  var result_721420309 = {Field0: 0, Field1: false};

    var scoreState_721420310 = (-100);
    var headerMatched_721420311 = false;
    var unmatchedLeadingCharCount_721420312 = 0;
    var consecutiveMatchCount_721420313 = 0;
    var strIndex_721420314 = 0;
    var patIndex_721420315 = 0;
    var score_721420316 = 0;
    Label1: {
        Label2: while (true) {
        if (!((strIndex_721420314 < ((str_721420306) == null ? 0 : (str_721420306).length)) && (patIndex_721420315 < ((pattern_721420305) == null ? 0 : (pattern_721420305).length)))) break Label2;
          Label3: {
            var patternChar_721420319 = nsuToLowerAsciiChar(pattern_721420305.charCodeAt(chckIndx(patIndex_721420315, 0, (pattern_721420305).length - 1)));
            var strChar_721420320 = nsuToLowerAsciiChar(str_721420306.charCodeAt(chckIndx(strIndex_721420314, 0, (str_721420306).length - 1)));
            if ((ConstSet3[patternChar_721420319] != undefined)) {
            patIndex_721420315 = addInt(patIndex_721420315, 1);
            break Label3;
            }
            
            if ((ConstSet4[strChar_721420320] != undefined)) {
            strIndex_721420314 = addInt(strIndex_721420314, 1);
            break Label3;
            }
            
            if ((!(headerMatched_721420311) && (strChar_721420320 == 58))) {
            headerMatched_721420311 = true;
            scoreState_721420310 = (-100);
            score_721420316 = ((Math.floor((0.5 * score_721420316))) | 0);
            patIndex_721420315 = 0;
            strIndex_721420314 = addInt(strIndex_721420314, 1);
            break Label3;
            }
            
            if ((strChar_721420320 == patternChar_721420319)) {
            switch (scoreState_721420310) {
            case (-100):
            case 20:
              scoreState_721420310 = 10;
              break;
            case 0:
              scoreState_721420310 = 5;
              score_721420316 = addInt(score_721420316, scoreState_721420310);
              break;
            case 10:
            case 5:
              consecutiveMatchCount_721420313 = addInt(consecutiveMatchCount_721420313, 1);
              scoreState_721420310 = 5;
              score_721420316 = addInt(score_721420316, mulInt(5, consecutiveMatchCount_721420313));
              if ((scoreState_721420310 == 10)) {
              score_721420316 = addInt(score_721420316, 10);
              }
              
              var onBoundary_721420372 = (patIndex_721420315 == ((pattern_721420305) == null ? -1 : (pattern_721420305).length - 1));
              if ((!(onBoundary_721420372) && (strIndex_721420314 < ((str_721420306) == null ? -1 : (str_721420306).length - 1)))) {
              var nextPatternChar_721420373 = nsuToLowerAsciiChar(pattern_721420305.charCodeAt(chckIndx(addInt(patIndex_721420315, 1), 0, (pattern_721420305).length - 1)));
              var nextStrChar_721420374 = nsuToLowerAsciiChar(str_721420306.charCodeAt(chckIndx(addInt(strIndex_721420314, 1), 0, (str_721420306).length - 1)));
              if (!!((ConstSet5[nextStrChar_721420374] != undefined))) Temporary4 = false; else {                Temporary4 = !((nextStrChar_721420374 == nextPatternChar_721420373));              }              onBoundary_721420372 = Temporary4;
              }
              
              if (onBoundary_721420372) {
              scoreState_721420310 = 20;
              score_721420316 = addInt(score_721420316, scoreState_721420310);
              }
              
              break;
            case (-1):
            case (-3):
              if (!((ConstSet6[str_721420306.charCodeAt(chckIndx(subInt(strIndex_721420314, 1), 0, (str_721420306).length - 1))] != undefined))) Temporary5 = true; else {                if (!(ConstSet7[str_721420306.charCodeAt(chckIndx(subInt(strIndex_721420314, 1), 0, (str_721420306).length - 1))] != undefined)) Temporary6 = false; else {                  Temporary6 = (ConstSet8[str_721420306.charCodeAt(chckIndx(strIndex_721420314, 0, (str_721420306).length - 1))] != undefined);                }                Temporary5 = Temporary6;              }              var isLeadingChar_721420398 = Temporary5;
              if (isLeadingChar_721420398) {
              scoreState_721420310 = 10;
              }
              else {
                scoreState_721420310 = 0;
                score_721420316 = addInt(score_721420316, scoreState_721420310);
              }
              
              break;
            }
            patIndex_721420315 = addInt(patIndex_721420315, 1);
            }
            else {
              switch (scoreState_721420310) {
              case (-100):
                scoreState_721420310 = (-3);
                score_721420316 = addInt(score_721420316, scoreState_721420310);
                break;
              case 5:
                scoreState_721420310 = (-1);
                score_721420316 = addInt(score_721420316, scoreState_721420310);
                consecutiveMatchCount_721420313 = 0;
                break;
              case (-3):
                if ((unmatchedLeadingCharCount_721420312 < 3)) {
                scoreState_721420310 = (-3);
                score_721420316 = addInt(score_721420316, scoreState_721420310);
                }
                
                unmatchedLeadingCharCount_721420312 = addInt(unmatchedLeadingCharCount_721420312, 1);
                break;
              default: 
                scoreState_721420310 = (-1);
                score_721420316 = addInt(score_721420316, scoreState_721420310);
                break;
              }
            }
            
            strIndex_721420314 = addInt(strIndex_721420314, 1);
          };
        }
    };
      if (!(patIndex_721420315 == ((pattern_721420305) == null ? 0 : (pattern_721420305).length))) Temporary7 = false; else {        if ((strIndex_721420314 == ((str_721420306) == null ? 0 : (str_721420306).length))) Temporary8 = true; else {          Temporary8 = !((ConstSet9[str_721420306.charCodeAt(chckIndx(strIndex_721420314, 0, (str_721420306).length - 1))] != undefined));        }        Temporary7 = Temporary8;      }    if (Temporary7) {
    score_721420316 = addInt(score_721420316, 10);
    }
    
    var colontmp__570426618 = nimMax(0, score_721420316);
    var colontmp__570426619 = (0 < score_721420316);
    result_721420309 = nimCopy(result_721420309, {Field0: colontmp__570426618, Field1: colontmp__570426619}, NTI721420302);

  return result_721420309;

}

function escapeCString_570426095(x_570426096, x_570426096_Idx) {
    var s_570426097 = [];
    Label1: {
      var c_570426098 = 0;
      var iHEX60gensym6_570426622 = 0;
      var nHEX60gensym6_570426623 = ((x_570426096[x_570426096_Idx]) == null ? 0 : (x_570426096[x_570426096_Idx]).length);
      Label2: {
          Label3: while (true) {
          if (!(iHEX60gensym6_570426622 < nHEX60gensym6_570426623)) break Label3;
            c_570426098 = x_570426096[x_570426096_Idx].charCodeAt(chckIndx(iHEX60gensym6_570426622, 0, (x_570426096[x_570426096_Idx]).length - 1));
            switch (c_570426098) {
            case 60:
              s_570426097.push.apply(s_570426097, [38,108,116,59]);;
              break;
            case 62:
              s_570426097.push.apply(s_570426097, [38,103,116,59]);;
              break;
            default: 
              addChar(s_570426097, c_570426098);;
              break;
            }
            iHEX60gensym6_570426622 = addInt(iHEX60gensym6_570426622, 1);
          }
      };
    };
    x_570426096[x_570426096_Idx] = toJSStr(s_570426097);

  
}

function dosearch_570426099(value_570426100) {
    
function HEX3Aanonymous_570426127(a_570426132, b_570426133) {
      var result_570426138 = 0;

        result_570426138 = subInt(b_570426133["Field1"], a_570426132["Field1"]);

      return result_570426138;

    }

  var result_570426101 = null;

  BeforeRet: {
    if (((db_570426093[0]).length == 0)) {
    break BeforeRet;
    }
    
    var ul_570426105 = tree_570425474("UL", []);
    result_570426101 = tree_570425474("DIV", []);
    setClass_570425496(result_570426101, "search_results");
    var matches_570426110 = [];
    Label1: {
      var i_570426118 = 0;
      var colontmp__570426609 = 0;
      colontmp__570426609 = (db_570426093[0]).length;
      var i_570426610 = 0;
      Label2: {
          Label3: while (true) {
          if (!(i_570426610 < colontmp__570426609)) break Label3;
            i_570426118 = i_570426610;
            Label4: {
              var c_570426119 = contents_570426094[0][chckIndx(i_570426118, 0, (contents_570426094[0]).length - 1)];
              if (((c_570426119 == "Examples") || (c_570426119 == "PEG construction"))) {
              break Label4;
              }
              
              var tmpTuple_570426120 = fuzzyMatch_721420304(value_570426100, c_570426119);
              var score_570426121 = tmpTuple_570426120["Field0"];
              var matched_570426122 = tmpTuple_570426120["Field1"];
              if (matched_570426122) {
              matches_570426110.push({Field0: db_570426093[0][chckIndx(i_570426118, 0, (db_570426093[0]).length - 1)], Field1: score_570426121});;
              }
              
            };
            i_570426610 = addInt(i_570426610, 1);
          }
      };
    };
    matches_570426110.sort(HEX3Aanonymous_570426127);
    Label5: {
      var i_570426155 = 0;
      var colontmp__570426613 = 0;
      colontmp__570426613 = nimMin((matches_570426110).length, 29);
      var i_570426614 = 0;
      Label6: {
          Label7: while (true) {
          if (!(i_570426614 < colontmp__570426613)) break Label7;
            i_570426155 = i_570426614;
            matches_570426110[chckIndx(i_570426155, 0, (matches_570426110).length - 1)]["Field0"].innerHTML = matches_570426110[chckIndx(i_570426155, 0, (matches_570426110).length - 1)]["Field0"].getAttribute("data-doc-search-tag");
            escapeCString_570426095(matches_570426110[chckIndx(i_570426155, 0, (matches_570426110).length - 1)]["Field0"], "innerHTML");
            add_570425492(ul_570426105, tree_570425474("LI", [matches_570426110[chckIndx(i_570426155, 0, (matches_570426110).length - 1)]["Field0"]]));
            i_570426614 = addInt(i_570426614, 1);
          }
      };
    };
    if ((ul_570426105.childNodes.length == 0)) {
    add_570425492(result_570426101, tree_570425474("B", [text_570425499("no search results")]));
    }
    else {
      add_570425492(result_570426101, tree_570425474("B", [text_570425499("search results")]));
      add_570425492(result_570426101, ul_570426105);
    }
    
  };

  return result_570426101;

}

function search() {
    
function wrapper_570426433() {
        var elem_570426434 = document.getElementById("searchInput");
        var value_570426435 = elem_570426434.value;
        if (!((((value_570426435) == null ? 0 : (value_570426435).length) == 0))) {
        if ((oldtoc_570426428[0] == null)) {
        oldtoc_570426428[0] = document.getElementById("tocRoot");
        }
        
        var results_570426439 = dosearch_570426099(value_570426435);
        replaceById_570425502("tocRoot", results_570426439);
        }
        else {
        if (!((oldtoc_570426428[0] == null))) {
        replaceById_570425502("tocRoot", oldtoc_570426428[0]);
        }
        }

      
    }

    if ((loadIndexFut_570426431[0] == null)) {
    loadIndexFut_570426431[0] = loadIndex_570426270();
    var _ = then_570426448(loadIndexFut_570426431[0], wrapper_570426433, null);
    }
    
    if (!((timer_570426429[0] == null))) {
    clearTimeout(timer_570426429[0]);
    }
    
    timer_570426429[0] = setTimeout(wrapper_570426433, 400);

  
}

function copyToClipboard() {
    
    function updatePreTags() {

      const allPreTags = document.querySelectorAll("pre")
    
      allPreTags.forEach((e) => {
      
          const div = document.createElement("div")
          div.classList.add("copyToClipBoard")
    
          const preTag = document.createElement("pre")
          preTag.innerHTML = e.innerHTML
    
          const button = document.createElement("button")
          button.value = e.textContent.replace('...', '') 
          button.classList.add("copyToClipBoardBtn")
          button.style.cursor = "pointer"
    
          div.appendChild(preTag)
          div.appendChild(button)
    
          e.outerHTML = div.outerHTML
      
      })
    }


    function copyTextToClipboard(e) {
        const clipBoardContent = e.target.value
        navigator.clipboard.writeText(clipBoardContent).then(function() {
            e.target.style.setProperty("--clipboard-image", "var(--clipboard-image-selected)")
        }, function(err) {
            console.error("Could not copy text: ", err);
        });
    }

    window.addEventListener("click", (e) => {
        if (e.target.classList.contains("copyToClipBoardBtn")) {
            copyTextToClipboard(e)
          }
    })

    window.addEventListener("mouseover", (e) => {
        if (e.target.nodeName === "PRE") {
            e.target.nextElementSibling.style.setProperty("--clipboard-image", "var(--clipboard-image-normal)")
        }
    })
    
    window.addEventListener("DOMContentLoaded", updatePreTags)

    

  
}
var Temporary1;
var t_570425383 = window.localStorage.getItem("theme");
if ((t_570425383 == null)) {
Temporary1 = "auto";
}
else {
Temporary1 = t_570425383;
}

setTheme(Temporary1);
var alternative_570426051 = [null];
var db_570426093 = [[]];
var contents_570426094 = [[]];
var oldtoc_570426428 = [null];
var timer_570426429 = [null];
var loadIndexFut_570426431 = [null];
copyToClipboard();
window.addEventListener("DOMContentLoaded", onDOMLoaded, false);