/* Generated by the Nim Compiler v1.0.2 */
/*   (c) 2019 Andreas Rumpf */

var framePtr = null;
var excHandler = 0;
var lastJSError = null;
if (typeof Int8Array === 'undefined') Int8Array = Array;
if (typeof Int16Array === 'undefined') Int16Array = Array;
if (typeof Int32Array === 'undefined') Int32Array = Array;
if (typeof Uint8Array === 'undefined') Uint8Array = Array;
if (typeof Uint16Array === 'undefined') Uint16Array = Array;
if (typeof Uint32Array === 'undefined') Uint32Array = Array;
if (typeof Float32Array === 'undefined') Float32Array = Array;
if (typeof Float64Array === 'undefined') Float64Array = Array;
var NTI45032 = {size: 0,kind: 1,base: null,node: null,finalizer: null};
var NTI205074 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI48462 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI207578 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
var NTI87448 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87444 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87440 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87436 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87432 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87428 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87424 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87420 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87416 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87412 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87408 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87404 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87400 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87396 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87392 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87388 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87384 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87380 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87376 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87372 = {size: 0,kind: 25,base: null,node: null,finalizer: null};
var NTI87205 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI87283 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI87281 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
var NTI87227 = {size: 0, kind: 14, base: null, node: null, finalizer: null};
var NTI87565 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
var NTI87563 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
var NTI87561 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
var NTI87231 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI87229 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
var NTI89305 = {size: 0,kind: 24,base: null,node: null,finalizer: null};
var NTI48450 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI48458 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI45006 = {size: 0,kind: 31,base: null,node: null,finalizer: null};
var NTI66156 = {size: 0, kind: 18, base: null, node: null, finalizer: null};
var NTI48408 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI48514 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
var NTI45016 = {size: 0,kind: 40,base: null,node: null,finalizer: null};
var NTI45040 = {size: 0,kind: 28,base: null,node: null,finalizer: null};
var NTI45042 = {size: 0,kind: 29,base: null,node: null,finalizer: null};
var NTI48508 = {size: 0,kind: 22,base: null,node: null,finalizer: null};
var NTI48426 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI48428 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI48442 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NTI48446 = {size: 0, kind: 17, base: null, node: null, finalizer: null};
var NNI48446 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI48446.node = NNI48446;
var NNI48442 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI48442.node = NNI48442;
var NNI48428 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI48428.node = NNI48428;
NTI48508.base = NTI48426;
NTI48514.base = NTI48426;
var NNI48426 = {kind: 2, len: 6, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "parent", len: 0, typ: NTI48508, name: "parent", sons: null}, 
{kind: 1, offset: "name", len: 0, typ: NTI45042, name: "name", sons: null}, 
{kind: 1, offset: "message", len: 0, typ: NTI45040, name: "msg", sons: null}, 
{kind: 1, offset: "trace", len: 0, typ: NTI45040, name: "trace", sons: null}, 
{kind: 1, offset: "raiseId", len: 0, typ: NTI45016, name: "raiseId", sons: null}, 
{kind: 1, offset: "up", len: 0, typ: NTI48514, name: "up", sons: null}]};
NTI48426.node = NNI48426;
var NNI48408 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI48408.node = NNI48408;
NTI48426.base = NTI48408;
NTI48428.base = NTI48426;
NTI48442.base = NTI48428;
NTI48446.base = NTI48442;
var NNI66156 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI45042, name: "Field0", sons: null}, 
{kind: 1, offset: "Field1", len: 0, typ: NTI45006, name: "Field1", sons: null}]};
NTI66156.node = NNI66156;
var NNI48458 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI48458.node = NNI48458;
NTI48458.base = NTI48428;
var NNI48450 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI48450.node = NNI48450;
NTI48450.base = NTI48428;
NTI87561.base = NTI87229;
NTI87563.base = NTI87229;
NTI87565.base = NTI87229;
var NNI87227 = {kind: 2, offset: 0, typ: null, name: null, len: 12, sons: {"1": {kind: 1, offset: 1, typ: NTI87227, name: "ElementNode", len: 0, sons: null}, 
"2": {kind: 1, offset: 2, typ: NTI87227, name: "AttributeNode", len: 0, sons: null}, 
"3": {kind: 1, offset: 3, typ: NTI87227, name: "TextNode", len: 0, sons: null}, 
"4": {kind: 1, offset: 4, typ: NTI87227, name: "CDATANode", len: 0, sons: null}, 
"5": {kind: 1, offset: 5, typ: NTI87227, name: "EntityRefNode", len: 0, sons: null}, 
"6": {kind: 1, offset: 6, typ: NTI87227, name: "EntityNode", len: 0, sons: null}, 
"7": {kind: 1, offset: 7, typ: NTI87227, name: "ProcessingInstructionNode", len: 0, sons: null}, 
"8": {kind: 1, offset: 8, typ: NTI87227, name: "CommentNode", len: 0, sons: null}, 
"9": {kind: 1, offset: 9, typ: NTI87227, name: "DocumentNode", len: 0, sons: null}, 
"10": {kind: 1, offset: 10, typ: NTI87227, name: "DocumentTypeNode", len: 0, sons: null}, 
"11": {kind: 1, offset: 11, typ: NTI87227, name: "DocumentFragmentNode", len: 0, sons: null}, 
"12": {kind: 1, offset: 12, typ: NTI87227, name: "NotationNode", len: 0, sons: null}}};
NTI87227.node = NNI87227;
var NNI87283 = {kind: 2, len: 92, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "background", len: 0, typ: NTI45042, name: "background", sons: null}, 
{kind: 1, offset: "backgroundAttachment", len: 0, typ: NTI45042, name: "backgroundAttachment", sons: null}, 
{kind: 1, offset: "backgroundColor", len: 0, typ: NTI45042, name: "backgroundColor", sons: null}, 
{kind: 1, offset: "backgroundImage", len: 0, typ: NTI45042, name: "backgroundImage", sons: null}, 
{kind: 1, offset: "backgroundPosition", len: 0, typ: NTI45042, name: "backgroundPosition", sons: null}, 
{kind: 1, offset: "backgroundRepeat", len: 0, typ: NTI45042, name: "backgroundRepeat", sons: null}, 
{kind: 1, offset: "border", len: 0, typ: NTI45042, name: "border", sons: null}, 
{kind: 1, offset: "borderBottom", len: 0, typ: NTI45042, name: "borderBottom", sons: null}, 
{kind: 1, offset: "borderBottomColor", len: 0, typ: NTI45042, name: "borderBottomColor", sons: null}, 
{kind: 1, offset: "borderBottomStyle", len: 0, typ: NTI45042, name: "borderBottomStyle", sons: null}, 
{kind: 1, offset: "borderBottomWidth", len: 0, typ: NTI45042, name: "borderBottomWidth", sons: null}, 
{kind: 1, offset: "borderColor", len: 0, typ: NTI45042, name: "borderColor", sons: null}, 
{kind: 1, offset: "borderLeft", len: 0, typ: NTI45042, name: "borderLeft", sons: null}, 
{kind: 1, offset: "borderLeftColor", len: 0, typ: NTI45042, name: "borderLeftColor", sons: null}, 
{kind: 1, offset: "borderLeftStyle", len: 0, typ: NTI45042, name: "borderLeftStyle", sons: null}, 
{kind: 1, offset: "borderLeftWidth", len: 0, typ: NTI45042, name: "borderLeftWidth", sons: null}, 
{kind: 1, offset: "borderRight", len: 0, typ: NTI45042, name: "borderRight", sons: null}, 
{kind: 1, offset: "borderRightColor", len: 0, typ: NTI45042, name: "borderRightColor", sons: null}, 
{kind: 1, offset: "borderRightStyle", len: 0, typ: NTI45042, name: "borderRightStyle", sons: null}, 
{kind: 1, offset: "borderRightWidth", len: 0, typ: NTI45042, name: "borderRightWidth", sons: null}, 
{kind: 1, offset: "borderStyle", len: 0, typ: NTI45042, name: "borderStyle", sons: null}, 
{kind: 1, offset: "borderTop", len: 0, typ: NTI45042, name: "borderTop", sons: null}, 
{kind: 1, offset: "borderTopColor", len: 0, typ: NTI45042, name: "borderTopColor", sons: null}, 
{kind: 1, offset: "borderTopStyle", len: 0, typ: NTI45042, name: "borderTopStyle", sons: null}, 
{kind: 1, offset: "borderTopWidth", len: 0, typ: NTI45042, name: "borderTopWidth", sons: null}, 
{kind: 1, offset: "borderWidth", len: 0, typ: NTI45042, name: "borderWidth", sons: null}, 
{kind: 1, offset: "bottom", len: 0, typ: NTI45042, name: "bottom", sons: null}, 
{kind: 1, offset: "captionSide", len: 0, typ: NTI45042, name: "captionSide", sons: null}, 
{kind: 1, offset: "clear", len: 0, typ: NTI45042, name: "clear", sons: null}, 
{kind: 1, offset: "clip", len: 0, typ: NTI45042, name: "clip", sons: null}, 
{kind: 1, offset: "color", len: 0, typ: NTI45042, name: "color", sons: null}, 
{kind: 1, offset: "cursor", len: 0, typ: NTI45042, name: "cursor", sons: null}, 
{kind: 1, offset: "direction", len: 0, typ: NTI45042, name: "direction", sons: null}, 
{kind: 1, offset: "display", len: 0, typ: NTI45042, name: "display", sons: null}, 
{kind: 1, offset: "emptyCells", len: 0, typ: NTI45042, name: "emptyCells", sons: null}, 
{kind: 1, offset: "cssFloat", len: 0, typ: NTI45042, name: "cssFloat", sons: null}, 
{kind: 1, offset: "font", len: 0, typ: NTI45042, name: "font", sons: null}, 
{kind: 1, offset: "fontFamily", len: 0, typ: NTI45042, name: "fontFamily", sons: null}, 
{kind: 1, offset: "fontSize", len: 0, typ: NTI45042, name: "fontSize", sons: null}, 
{kind: 1, offset: "fontStretch", len: 0, typ: NTI45042, name: "fontStretch", sons: null}, 
{kind: 1, offset: "fontStyle", len: 0, typ: NTI45042, name: "fontStyle", sons: null}, 
{kind: 1, offset: "fontVariant", len: 0, typ: NTI45042, name: "fontVariant", sons: null}, 
{kind: 1, offset: "fontWeight", len: 0, typ: NTI45042, name: "fontWeight", sons: null}, 
{kind: 1, offset: "height", len: 0, typ: NTI45042, name: "height", sons: null}, 
{kind: 1, offset: "left", len: 0, typ: NTI45042, name: "left", sons: null}, 
{kind: 1, offset: "letterSpacing", len: 0, typ: NTI45042, name: "letterSpacing", sons: null}, 
{kind: 1, offset: "lineHeight", len: 0, typ: NTI45042, name: "lineHeight", sons: null}, 
{kind: 1, offset: "listStyle", len: 0, typ: NTI45042, name: "listStyle", sons: null}, 
{kind: 1, offset: "listStyleImage", len: 0, typ: NTI45042, name: "listStyleImage", sons: null}, 
{kind: 1, offset: "listStylePosition", len: 0, typ: NTI45042, name: "listStylePosition", sons: null}, 
{kind: 1, offset: "listStyleType", len: 0, typ: NTI45042, name: "listStyleType", sons: null}, 
{kind: 1, offset: "margin", len: 0, typ: NTI45042, name: "margin", sons: null}, 
{kind: 1, offset: "marginBottom", len: 0, typ: NTI45042, name: "marginBottom", sons: null}, 
{kind: 1, offset: "marginLeft", len: 0, typ: NTI45042, name: "marginLeft", sons: null}, 
{kind: 1, offset: "marginRight", len: 0, typ: NTI45042, name: "marginRight", sons: null}, 
{kind: 1, offset: "marginTop", len: 0, typ: NTI45042, name: "marginTop", sons: null}, 
{kind: 1, offset: "maxHeight", len: 0, typ: NTI45042, name: "maxHeight", sons: null}, 
{kind: 1, offset: "maxWidth", len: 0, typ: NTI45042, name: "maxWidth", sons: null}, 
{kind: 1, offset: "minHeight", len: 0, typ: NTI45042, name: "minHeight", sons: null}, 
{kind: 1, offset: "minWidth", len: 0, typ: NTI45042, name: "minWidth", sons: null}, 
{kind: 1, offset: "opacity", len: 0, typ: NTI45042, name: "opacity", sons: null}, 
{kind: 1, offset: "overflow", len: 0, typ: NTI45042, name: "overflow", sons: null}, 
{kind: 1, offset: "padding", len: 0, typ: NTI45042, name: "padding", sons: null}, 
{kind: 1, offset: "paddingBottom", len: 0, typ: NTI45042, name: "paddingBottom", sons: null}, 
{kind: 1, offset: "paddingLeft", len: 0, typ: NTI45042, name: "paddingLeft", sons: null}, 
{kind: 1, offset: "paddingRight", len: 0, typ: NTI45042, name: "paddingRight", sons: null}, 
{kind: 1, offset: "paddingTop", len: 0, typ: NTI45042, name: "paddingTop", sons: null}, 
{kind: 1, offset: "pageBreakAfter", len: 0, typ: NTI45042, name: "pageBreakAfter", sons: null}, 
{kind: 1, offset: "pageBreakBefore", len: 0, typ: NTI45042, name: "pageBreakBefore", sons: null}, 
{kind: 1, offset: "pointerEvents", len: 0, typ: NTI45042, name: "pointerEvents", sons: null}, 
{kind: 1, offset: "position", len: 0, typ: NTI45042, name: "position", sons: null}, 
{kind: 1, offset: "right", len: 0, typ: NTI45042, name: "right", sons: null}, 
{kind: 1, offset: "scrollbar3dLightColor", len: 0, typ: NTI45042, name: "scrollbar3dLightColor", sons: null}, 
{kind: 1, offset: "scrollbarArrowColor", len: 0, typ: NTI45042, name: "scrollbarArrowColor", sons: null}, 
{kind: 1, offset: "scrollbarBaseColor", len: 0, typ: NTI45042, name: "scrollbarBaseColor", sons: null}, 
{kind: 1, offset: "scrollbarDarkshadowColor", len: 0, typ: NTI45042, name: "scrollbarDarkshadowColor", sons: null}, 
{kind: 1, offset: "scrollbarFaceColor", len: 0, typ: NTI45042, name: "scrollbarFaceColor", sons: null}, 
{kind: 1, offset: "scrollbarHighlightColor", len: 0, typ: NTI45042, name: "scrollbarHighlightColor", sons: null}, 
{kind: 1, offset: "scrollbarShadowColor", len: 0, typ: NTI45042, name: "scrollbarShadowColor", sons: null}, 
{kind: 1, offset: "scrollbarTrackColor", len: 0, typ: NTI45042, name: "scrollbarTrackColor", sons: null}, 
{kind: 1, offset: "tableLayout", len: 0, typ: NTI45042, name: "tableLayout", sons: null}, 
{kind: 1, offset: "textAlign", len: 0, typ: NTI45042, name: "textAlign", sons: null}, 
{kind: 1, offset: "textDecoration", len: 0, typ: NTI45042, name: "textDecoration", sons: null}, 
{kind: 1, offset: "textIndent", len: 0, typ: NTI45042, name: "textIndent", sons: null}, 
{kind: 1, offset: "textTransform", len: 0, typ: NTI45042, name: "textTransform", sons: null}, 
{kind: 1, offset: "transform", len: 0, typ: NTI45042, name: "transform", sons: null}, 
{kind: 1, offset: "top", len: 0, typ: NTI45042, name: "top", sons: null}, 
{kind: 1, offset: "verticalAlign", len: 0, typ: NTI45042, name: "verticalAlign", sons: null}, 
{kind: 1, offset: "visibility", len: 0, typ: NTI45042, name: "visibility", sons: null}, 
{kind: 1, offset: "width", len: 0, typ: NTI45042, name: "width", sons: null}, 
{kind: 1, offset: "wordSpacing", len: 0, typ: NTI45042, name: "wordSpacing", sons: null}, 
{kind: 1, offset: "zIndex", len: 0, typ: NTI45006, name: "zIndex", sons: null}]};
NTI87283.node = NNI87283;
NTI87283.base = NTI48408;
NTI87281.base = NTI87283;
var NNI87231 = {kind: 2, len: 14, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "attributes", len: 0, typ: NTI87561, name: "attributes", sons: null}, 
{kind: 1, offset: "childNodes", len: 0, typ: NTI87563, name: "childNodes", sons: null}, 
{kind: 1, offset: "children", len: 0, typ: NTI87565, name: "children", sons: null}, 
{kind: 1, offset: "data", len: 0, typ: NTI45042, name: "data", sons: null}, 
{kind: 1, offset: "firstChild", len: 0, typ: NTI87229, name: "firstChild", sons: null}, 
{kind: 1, offset: "lastChild", len: 0, typ: NTI87229, name: "lastChild", sons: null}, 
{kind: 1, offset: "nextSibling", len: 0, typ: NTI87229, name: "nextSibling", sons: null}, 
{kind: 1, offset: "nodeName", len: 0, typ: NTI45042, name: "nodeName", sons: null}, 
{kind: 1, offset: "nodeType", len: 0, typ: NTI87227, name: "nodeType", sons: null}, 
{kind: 1, offset: "nodeValue", len: 0, typ: NTI45042, name: "nodeValue", sons: null}, 
{kind: 1, offset: "parentNode", len: 0, typ: NTI87229, name: "parentNode", sons: null}, 
{kind: 1, offset: "previousSibling", len: 0, typ: NTI87229, name: "previousSibling", sons: null}, 
{kind: 1, offset: "innerHTML", len: 0, typ: NTI45042, name: "innerHTML", sons: null}, 
{kind: 1, offset: "style", len: 0, typ: NTI87281, name: "style", sons: null}]};
NTI87231.node = NNI87231;
var NNI87205 = {kind: 2, len: 20, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "onabort", len: 0, typ: NTI87372, name: "onabort", sons: null}, 
{kind: 1, offset: "onblur", len: 0, typ: NTI87376, name: "onblur", sons: null}, 
{kind: 1, offset: "onchange", len: 0, typ: NTI87380, name: "onchange", sons: null}, 
{kind: 1, offset: "onclick", len: 0, typ: NTI87384, name: "onclick", sons: null}, 
{kind: 1, offset: "ondblclick", len: 0, typ: NTI87388, name: "ondblclick", sons: null}, 
{kind: 1, offset: "onerror", len: 0, typ: NTI87392, name: "onerror", sons: null}, 
{kind: 1, offset: "onfocus", len: 0, typ: NTI87396, name: "onfocus", sons: null}, 
{kind: 1, offset: "onkeydown", len: 0, typ: NTI87400, name: "onkeydown", sons: null}, 
{kind: 1, offset: "onkeypress", len: 0, typ: NTI87404, name: "onkeypress", sons: null}, 
{kind: 1, offset: "onkeyup", len: 0, typ: NTI87408, name: "onkeyup", sons: null}, 
{kind: 1, offset: "onload", len: 0, typ: NTI87412, name: "onload", sons: null}, 
{kind: 1, offset: "onmousedown", len: 0, typ: NTI87416, name: "onmousedown", sons: null}, 
{kind: 1, offset: "onmousemove", len: 0, typ: NTI87420, name: "onmousemove", sons: null}, 
{kind: 1, offset: "onmouseout", len: 0, typ: NTI87424, name: "onmouseout", sons: null}, 
{kind: 1, offset: "onmouseover", len: 0, typ: NTI87428, name: "onmouseover", sons: null}, 
{kind: 1, offset: "onmouseup", len: 0, typ: NTI87432, name: "onmouseup", sons: null}, 
{kind: 1, offset: "onreset", len: 0, typ: NTI87436, name: "onreset", sons: null}, 
{kind: 1, offset: "onselect", len: 0, typ: NTI87440, name: "onselect", sons: null}, 
{kind: 1, offset: "onsubmit", len: 0, typ: NTI87444, name: "onsubmit", sons: null}, 
{kind: 1, offset: "onunload", len: 0, typ: NTI87448, name: "onunload", sons: null}]};
NTI87205.node = NNI87205;
NTI87205.base = NTI48408;
NTI87231.base = NTI87205;
NTI87229.base = NTI87231;
NTI89305.base = NTI87229;
NTI207578.base = NTI45042;
var NNI48462 = {kind: 2, len: 0, offset: 0, typ: null, name: null, sons: []};
NTI48462.node = NNI48462;
NTI48462.base = NTI48428;
var NNI205074 = {kind: 2, len: 2, offset: 0, typ: null, name: null, sons: [{kind: 1, offset: "Field0", len: 0, typ: NTI45006, name: "Field0", sons: null}, 
{kind: 1, offset: "Field1", len: 0, typ: NTI45032, name: "Field1", sons: null}]};
NTI205074.node = NNI205074;

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

	
}

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_69827, src_69828, ti_69829) {
	var result_70019 = null;

		switch (ti_69829.kind) {
		case 21:
		case 22:
		case 23:
		case 5:
			if (!(is_fat_pointer_69801(ti_69829))) {
			result_70019 = src_69828;
			}
			else {
				result_70019 = [src_69828[0], src_69828[1]];
			}
			
			break;
		case 19:
			      if (dest_69827 === null || dest_69827 === undefined) {
        dest_69827 = {};
      }
      else {
        for (var key in dest_69827) { delete dest_69827[key]; }
      }
      for (var key in src_69828) { dest_69827[key] = src_69828[key]; }
      result_70019 = dest_69827;
    
			break;
		case 18:
		case 17:
			if (!((ti_69829.base == null))) {
			result_70019 = nimCopy(dest_69827, src_69828, ti_69829.base);
			}
			else {
			if ((ti_69829.kind == 17)) {
			result_70019 = (dest_69827 === null || dest_69827 === undefined) ? {m_type: ti_69829} : dest_69827;
			}
			else {
				result_70019 = (dest_69827 === null || dest_69827 === undefined) ? {} : dest_69827;
			}
			}
			nimCopyAux(result_70019, src_69828, ti_69829.node);
			break;
		case 24:
		case 4:
		case 27:
		case 16:
			      if (src_69828 === null) {
        result_70019 = null;
      }
      else {
        if (dest_69827 === null || dest_69827 === undefined) {
          dest_69827 = new Array(src_69828.length);
        }
        else {
          dest_69827.length = src_69828.length;
        }
        result_70019 = dest_69827;
        for (var i = 0; i < src_69828.length; ++i) {
          result_70019[i] = nimCopy(result_70019[i], src_69828[i], ti_69829.base);
        }
      }
    
			break;
		case 28:
			      if (src_69828 !== null) {
        result_70019 = src_69828.slice(0);
      }
    
			break;
		default: 
			result_70019 = src_69828;
			break;
		}

	return result_70019;

}

function arrayConstr(len_70086, value_70087, typ_70088) {
		    var result = new Array(len_70086);
    for (var i = 0; i < len_70086; ++i) result[i] = nimCopy(null, value_70087, typ_70088);
    return result;
  

	
}

function cstrToNimstr(c_68287) {
		  var ln = c_68287.length;
  var result = new Array(ln);
  var r = 0;
  for (var i = 0; i < ln; ++i) {
    var ch = c_68287.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_68287.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;
  

	
}

function toJSStr(s_68304) {
										var Tmp5;
						var Tmp7;

	var result_68305 = null;

		var res_68363 = new_seq_68336((s_68304 != null ? s_68304.length : 0));
		var i_68365 = 0;
		var j_68367 = 0;
		L1: do {
				L2: while (true) {
				if (!(i_68365 < (s_68304 != null ? s_68304.length : 0))) break L2;
					var c_68368 = s_68304[i_68365];
					if ((c_68368 < 128)) {
					res_68363[j_68367] = String.fromCharCode(c_68368);
					i_68365 += 1;
					}
					else {
						var helper_68391 = new_seq_68336(0);
						L3: do {
								L4: while (true) {
								if (!true) break L4;
									var code_68392 = c_68368.toString(16);
									if (((code_68392 != null ? code_68392.length : 0) == 1)) {
									if (helper_68391 != null) { helper_68391.push("%0"); } else { helper_68391 = ["%0"]; };
									}
									else {
									if (helper_68391 != null) { helper_68391.push("%"); } else { helper_68391 = ["%"]; };
									}
									
									if (helper_68391 != null) { helper_68391.push(code_68392); } else { helper_68391 = [code_68392]; };
									i_68365 += 1;
										if (((s_68304 != null ? s_68304.length : 0) <= i_68365)) Tmp5 = true; else {											Tmp5 = (s_68304[i_68365] < 128);										}									if (Tmp5) {
									break L3;
									}
									
									c_68368 = s_68304[i_68365];
								}
						} while(false);
++excHandler;
						Tmp7 = framePtr;
						try {
						res_68363[j_68367] = decodeURIComponent(helper_68391.join(""));
--excHandler;
} catch (EXC) {
 var prevJSError = lastJSError;
 lastJSError = EXC;
 --excHandler;
						framePtr = Tmp7;
						res_68363[j_68367] = helper_68391.join("");
						lastJSError = prevJSError;
						} finally {
						framePtr = Tmp7;
						}
					}
					
					j_68367 += 1;
				}
		} while(false);
		if (res_68363 === null) res_68363 = [];
               if (res_68363.length < j_68367) { for (var i=res_68363.length;i<j_68367;++i) res_68363.push(null); }
               else { res_68363.length = j_68367; };
		result_68305 = res_68363.join("");

	return result_68305;

}

function raiseException(e_66618, ename_66619) {
		e_66618.name = ename_66619;
		if ((excHandler == 0)) {
		unhandledException(e_66618);
		}
		
		e_66618.trace = nimCopy(null, raw_write_stack_trace_66468(), NTI45040);
		throw e_66618;

	
}

function addInt(a_68803, b_68804) {
		    var result = a_68803 + b_68804;
    if (result > 2147483647 || result < -2147483648) raiseOverflow();
    return result;
  

	
}

function chckIndx(i_70105, a_70106, b_70107) {
			var Tmp1;

	var result_70108 = 0;

	BeforeRet: do {
			if (!(a_70106 <= i_70105)) Tmp1 = false; else {				Tmp1 = (i_70105 <= b_70107);			}		if (Tmp1) {
		result_70108 = i_70105;
		break BeforeRet;
		}
		else {
		raiseIndexError(i_70105, a_70106, b_70107);
		}
		
	} while (false);

	return result_70108;

}

function subInt(a_68821, b_68822) {
		    var result = a_68821 - b_68822;
    if (result > 2147483647 || result < -2147483648) raiseOverflow();
    return result;
  

	
}
var ConstSet2 = setConstr([65, 90]);

function chckRange(i_70124, a_70125, b_70126) {
			var Tmp1;

	var result_70127 = 0;

	BeforeRet: do {
			if (!(a_70125 <= i_70124)) Tmp1 = false; else {				Tmp1 = (i_70124 <= b_70126);			}		if (Tmp1) {
		result_70127 = i_70124;
		break BeforeRet;
		}
		else {
		raiseRangeError();
		}
		
	} while (false);

	return result_70127;

}
var ConstSet3 = setConstr(95, 32, 46);
var ConstSet4 = setConstr(95, 32, 46);

function mulInt(a_68839, b_68840) {
		    var result = a_68839 * b_68840;
    if (result > 2147483647 || result < -2147483648) raiseOverflow();
    return result;
  

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

function nimMax(a_69221, b_69222) {
		var Tmp1;

	var result_69223 = 0;

	BeforeRet: do {
		if ((b_69222 <= a_69221)) {
		Tmp1 = a_69221;
		}
		else {
		Tmp1 = b_69222;
		}
		
		result_69223 = Tmp1;
		break BeforeRet;
	} while (false);

	return result_69223;

}

function nimMin(a_69203, b_69204) {
		var Tmp1;

	var result_69205 = 0;

	BeforeRet: do {
		if ((a_69203 <= b_69204)) {
		Tmp1 = a_69203;
		}
		else {
		Tmp1 = b_69204;
		}
		
		result_69205 = Tmp1;
		break BeforeRet;
	} while (false);

	return result_69205;

}
var nim_program_result = 0;
var global_raise_hook_63618 = [null];
var local_raise_hook_63623 = [null];
var out_of_mem_hook_63626 = [null];
  if (!Math.trunc) {
    Math.trunc = function(v) {
      v = +v;
      if (!isFinite(v)) return v;

      return (v - v % 1)   ||   (v < 0 ? -0 : v === 0 ? v : 0);
    };
  }
var alternative_207319 = [null];

function is_fat_pointer_69801(ti_69803) {
	var result_69804 = false;

	BeforeRet: do {
		result_69804 = !((ConstSet1[ti_69803.base.kind] != undefined));
		break BeforeRet;
	} while (false);

	return result_69804;

}

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

	
}

function add_63638(x_63641, x_63641_Idx, y_63642) {
		      if (x_63641[x_63641_Idx] === null) { x_63641[x_63641_Idx] = []; }
      var off = x_63641[x_63641_Idx].length;
      x_63641[x_63641_Idx].length += y_63642.length;
      for (var i = 0; i < y_63642.length; ++i) {
        x_63641[x_63641_Idx][off+i] = y_63642.charCodeAt(i);
      }
    

	
}

function aux_write_stack_trace_66151(f_66153) {
					var Tmp3;

	var result_66154 = [null];

		var it_66162 = f_66153;
		var i_66164 = 0;
		var total_66166 = 0;
		var temp_frames_66173 = arrayConstr(64, {Field0: null, Field1: 0}, NTI66156);
		L1: do {
				L2: while (true) {
					if (!!((it_66162 == null))) Tmp3 = false; else {						Tmp3 = (i_66164 <= 63);					}				if (!Tmp3) break L2;
					temp_frames_66173[i_66164].Field0 = it_66162.procname;
					temp_frames_66173[i_66164].Field1 = it_66162.line;
					i_66164 += 1;
					total_66166 += 1;
					it_66162 = it_66162.prev;
				}
		} while(false);
		L4: do {
				L5: while (true) {
				if (!!((it_66162 == null))) break L5;
					total_66166 += 1;
					it_66162 = it_66162.prev;
				}
		} while(false);
		result_66154[0] = nimCopy(null, [], NTI45040);
		if (!((total_66166 == i_66164))) {
		if (result_66154[0] != null) { result_66154[0] = (result_66154[0]).concat(makeNimstrLit("(")); } else { result_66154[0] = makeNimstrLit("("); };
		if (result_66154[0] != null) { result_66154[0] = (result_66154[0]).concat(cstrToNimstr(((total_66166 - i_66164))+"")); } else { result_66154[0] = cstrToNimstr(((total_66166 - i_66164))+"").slice(); };
		if (result_66154[0] != null) { result_66154[0] = (result_66154[0]).concat(makeNimstrLit(" calls omitted) ...\x0A")); } else { result_66154[0] = makeNimstrLit(" calls omitted) ...\x0A"); };
		}
		
		L6: do {
			var j_66421 = 0;
			var colontmp__207466 = 0;
			colontmp__207466 = (i_66164 - 1);
			var res_207471 = colontmp__207466;
			L7: do {
					L8: while (true) {
					if (!(0 <= res_207471)) break L8;
						j_66421 = res_207471;
						add_63638(result_66154, 0, temp_frames_66173[j_66421].Field0);
						if ((0 < temp_frames_66173[j_66421].Field1)) {
						if (result_66154[0] != null) { result_66154[0] = (result_66154[0]).concat(makeNimstrLit(", line: ")); } else { result_66154[0] = makeNimstrLit(", line: "); };
						if (result_66154[0] != null) { result_66154[0] = (result_66154[0]).concat(cstrToNimstr((temp_frames_66173[j_66421].Field1)+"")); } else { result_66154[0] = cstrToNimstr((temp_frames_66173[j_66421].Field1)+"").slice(); };
						}
						
						if (result_66154[0] != null) { result_66154[0] = (result_66154[0]).concat(makeNimstrLit("\x0A")); } else { result_66154[0] = makeNimstrLit("\x0A"); };
						res_207471 -= 1;
					}
			} while(false);
		} while(false);

	return result_66154[0];

}

function raw_write_stack_trace_66468() {
	var result_66470 = null;

		if (!((framePtr == null))) {
		result_66470 = nimCopy(null, (makeNimstrLit("Traceback (most recent call last)\x0A") || []).concat(aux_write_stack_trace_66151(framePtr) || []), NTI45040);
		}
		else {
			result_66470 = nimCopy(null, makeNimstrLit("No stack traceback available\x0A"), NTI45040);
		}
		

	return result_66470;

}

function new_seq_68336(len_68339) {
	var result_68341 = null;

	var F={procname:"newSeq.newSeq",prev:framePtr,filename:"system.nim",line:0};
	framePtr = F;
		F.line = 996;
		result_68341 = new Array(len_68339); for (var i=0;i<len_68339;++i) {result_68341[i]=null;}	framePtr = F.prev;

	return result_68341;

}

function unhandledException(e_66529) {
		var buf_66530 = [[]];
		if (!(((e_66529.message != null ? e_66529.message.length : 0) == 0))) {
		if (buf_66530[0] != null) { buf_66530[0] = (buf_66530[0]).concat(makeNimstrLit("Error: unhandled exception: ")); } else { buf_66530[0] = makeNimstrLit("Error: unhandled exception: "); };
		if (buf_66530[0] != null) { buf_66530[0] = (buf_66530[0]).concat(e_66529.message); } else { buf_66530[0] = e_66529.message.slice(); };
		}
		else {
		if (buf_66530[0] != null) { buf_66530[0] = (buf_66530[0]).concat(makeNimstrLit("Error: unhandled exception")); } else { buf_66530[0] = makeNimstrLit("Error: unhandled exception"); };
		}
		
		if (buf_66530[0] != null) { buf_66530[0] = (buf_66530[0]).concat(makeNimstrLit(" [")); } else { buf_66530[0] = makeNimstrLit(" ["); };
		add_63638(buf_66530, 0, e_66529.name);
		if (buf_66530[0] != null) { buf_66530[0] = (buf_66530[0]).concat(makeNimstrLit("]\x0A")); } else { buf_66530[0] = makeNimstrLit("]\x0A"); };
		if (buf_66530[0] != null) { buf_66530[0] = (buf_66530[0]).concat(raw_write_stack_trace_66468()); } else { buf_66530[0] = raw_write_stack_trace_66468().slice(); };
		var cbuf_66601 = toJSStr(buf_66530[0]);
		framePtr = null;
		  if (typeof(Error) !== "undefined") {
    throw new Error(cbuf_66601);
  }
  else {
    throw cbuf_66601;
  }
  

	
}

function raiseOverflow() {
		var eHEX60gensym67058_67203 = null;
		eHEX60gensym67058_67203 = {m_type: NTI48446, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
		eHEX60gensym67058_67203.message = nimCopy(null, makeNimstrLit("over- or underflow"), NTI45040);
		eHEX60gensym67058_67203.parent = null;
		raiseException(eHEX60gensym67058_67203, "OverflowError");

	
}

function is_whitespace_206654(text_206656) {
		     return !/[^\s]/.test(text_206656);
  

	
}

function is_whitespace_206671(x_206673) {
		var Tmp1;
		var Tmp2;

	var result_206674 = false;

	var F={procname:"dochack.isWhitespace",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 134;
		if (!(x_206673.nodeName == "#text")) Tmp2 = false; else {			Tmp2 = is_whitespace_206654(x_206673.textContent);		}		if (Tmp2) Tmp1 = true; else {			Tmp1 = (x_206673.nodeName == "#comment");		}		result_206674 = Tmp1;
	framePtr = F.prev;

	return result_206674;

}

function raiseIndexError(i_67655, a_67656, b_67657) {
		var Tmp1;

		var eHEX60gensym67802_68003 = null;
		eHEX60gensym67802_68003 = {m_type: NTI48458, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
		if ((b_67657 < a_67656)) {
		Tmp1 = makeNimstrLit("index out of bounds, the container is empty");
		}
		else {
		Tmp1 = (makeNimstrLit("index ") || []).concat(cstrToNimstr((i_67655)+"") || [],makeNimstrLit(" not in ") || [],cstrToNimstr((a_67656)+"") || [],makeNimstrLit(" .. ") || [],cstrToNimstr((b_67657)+"") || []);
		}
		
		eHEX60gensym67802_68003.message = nimCopy(null, Tmp1, NTI45040);
		eHEX60gensym67802_68003.parent = null;
		raiseException(eHEX60gensym67802_68003, "IndexError");

	
}

function to_toc_206688(x_206690, father_206691) {
								var Tmp5;
						var Tmp6;
						var Tmp7;
						var Tmp8;
			var Tmp15;

	var F={procname:"dochack.toToc",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		if ((x_206690.nodeName == "UL")) {
		F.line = 139;
		var f_206712 = {heading: null, kids: [], sortId: (father_206691.kids != null ? father_206691.kids.length : 0), doSort: false};
		F.line = 140;
		var i_206714 = 0;
		L1: do {
			F.line = 141;
				L2: while (true) {
				if (!(i_206714 < x_206690.childNodes.length)) break L2;
					F.line = 142;
					var nxt_206715 = addInt(i_206714, 1);
					L3: do {
						F.line = 143;
							L4: while (true) {
								if (!(nxt_206715 < x_206690.childNodes.length)) Tmp5 = false; else {									Tmp5 = is_whitespace_206671(x_206690.childNodes[nxt_206715]);								}							if (!Tmp5) break L4;
								F.line = 144;
								nxt_206715 = addInt(nxt_206715, 1);
							}
					} while(false);
						if (!(nxt_206715 < x_206690.childNodes.length)) Tmp8 = false; else {							Tmp8 = (x_206690.childNodes[i_206714].nodeName == "LI");						}						if (!Tmp8) Tmp7 = false; else {							Tmp7 = (x_206690.childNodes[i_206714].childNodes.length == 1);						}						if (!Tmp7) Tmp6 = false; else {							Tmp6 = (x_206690.childNodes[nxt_206715].nodeName == "UL");						}					if (Tmp6) {
					F.line = 147;
					var e_206742 = {heading: x_206690.childNodes[i_206714].childNodes[0], kids: [], sortId: (f_206712.kids != null ? f_206712.kids.length : 0), doSort: false};
					F.line = 148;
					var it_206743 = x_206690.childNodes[nxt_206715];
					L9: do {
						F.line = 149;
						var j_206751 = 0;
						F.line = 2736;
						var colontmp__207442 = 0;
						F.line = 149;
						colontmp__207442 = it_206743.childNodes.length;
						F.line = 2738;
						var i_207443 = 0;
						L10: do {
							F.line = 2739;
								L11: while (true) {
								if (!(i_207443 < colontmp__207442)) break L11;
									F.line = 149;
									j_206751 = i_207443;
									F.line = 150;
									to_toc_206688(it_206743.childNodes[j_206751], e_206742);
									F.line = 2741;
									i_207443 = addInt(i_207443, 1);
								}
						} while(false);
					} while(false);
					F.line = 151;
					if (f_206712.kids != null) { f_206712.kids.push(e_206742); } else { f_206712.kids = [e_206742]; };
					F.line = 152;
					i_206714 = addInt(nxt_206715, 1);
					}
					else {
						F.line = 154;
						to_toc_206688(x_206690.childNodes[i_206714], f_206712);
						F.line = 155;
						i_206714 = addInt(i_206714, 1);
					}
					
				}
		} while(false);
		F.line = 156;
		if (father_206691.kids != null) { father_206691.kids.push(f_206712); } else { father_206691.kids = [f_206712]; };
		}
		else {
		if (is_whitespace_206671(x_206690)) {
		}
		else {
		if ((x_206690.nodeName == "LI")) {
		F.line = 160;
		var idx_206788 = [];
		L12: do {
			F.line = 161;
			var i_206796 = 0;
			F.line = 2736;
			var colontmp__207447 = 0;
			F.line = 161;
			colontmp__207447 = x_206690.childNodes.length;
			F.line = 2738;
			var i_207448 = 0;
			L13: do {
				F.line = 2739;
					L14: while (true) {
					if (!(i_207448 < colontmp__207447)) break L14;
						F.line = 161;
						i_206796 = i_207448;
						if (!(is_whitespace_206671(x_206690.childNodes[i_206796]))) {
						F.line = 162;
						if (idx_206788 != null) { idx_206788.push(i_206796); } else { idx_206788 = [i_206796]; };
						}
						
						F.line = 2741;
						i_207448 = addInt(i_207448, 1);
					}
			} while(false);
		} while(false);
			if (!((idx_206788 != null ? idx_206788.length : 0) == 2)) Tmp15 = false; else {				Tmp15 = (x_206690.childNodes[idx_206788[chckIndx(1, 0, idx_206788.length+0-1)-0]].nodeName == "UL");			}		if (Tmp15) {
		F.line = 164;
		var e_206829 = {heading: x_206690.childNodes[idx_206788[chckIndx(0, 0, idx_206788.length+0-1)-0]], kids: [], sortId: (father_206691.kids != null ? father_206691.kids.length : 0), doSort: false};
		F.line = 166;
		var it_206830 = x_206690.childNodes[idx_206788[chckIndx(1, 0, idx_206788.length+0-1)-0]];
		L16: do {
			F.line = 167;
			var j_206838 = 0;
			F.line = 2736;
			var colontmp__207453 = 0;
			F.line = 167;
			colontmp__207453 = it_206830.childNodes.length;
			F.line = 2738;
			var i_207454 = 0;
			L17: do {
				F.line = 2739;
					L18: while (true) {
					if (!(i_207454 < colontmp__207453)) break L18;
						F.line = 167;
						j_206838 = i_207454;
						F.line = 168;
						to_toc_206688(it_206830.childNodes[j_206838], e_206829);
						F.line = 2741;
						i_207454 = addInt(i_207454, 1);
					}
			} while(false);
		} while(false);
		F.line = 169;
		if (father_206691.kids != null) { father_206691.kids.push(e_206829); } else { father_206691.kids = [e_206829]; };
		}
		else {
			L19: do {
				F.line = 171;
				var i_206853 = 0;
				F.line = 2736;
				var colontmp__207458 = 0;
				F.line = 171;
				colontmp__207458 = x_206690.childNodes.length;
				F.line = 2738;
				var i_207459 = 0;
				L20: do {
					F.line = 2739;
						L21: while (true) {
						if (!(i_207459 < colontmp__207458)) break L21;
							F.line = 171;
							i_206853 = i_207459;
							F.line = 172;
							to_toc_206688(x_206690.childNodes[i_206853], father_206691);
							F.line = 2741;
							i_207459 = addInt(i_207459, 1);
						}
				} while(false);
			} while(false);
		}
		
		}
		else {
			F.line = 174;
		if (father_206691.kids != null) { father_206691.kids.push({heading: x_206690, kids: [], sortId: (father_206691.kids != null ? father_206691.kids.length : 0), doSort: false}); } else { father_206691.kids = [{heading: x_206690, kids: [], sortId: (father_206691.kids != null ? father_206691.kids.length : 0), doSort: false}]; };
		}
		}}
	framePtr = F.prev;

	
}

function extract_items_206339(x_206341, heading_206342, items_206345, items_206345_Idx) {
			var Tmp1;

	var F={procname:"dochack.extractItems",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
	BeforeRet: do {
		if ((x_206341 == null)) {
		F.line = 81;
		break BeforeRet;
		}
		
			if (!!((x_206341.heading == null))) Tmp1 = false; else {				Tmp1 = (x_206341.heading.textContent == heading_206342);			}		if (Tmp1) {
		L2: do {
			F.line = 83;
			var i_206374 = 0;
			F.line = 2736;
			var colontmp__207487 = 0;
			F.line = 83;
			colontmp__207487 = (x_206341.kids != null ? x_206341.kids.length : 0);
			F.line = 2738;
			var i_207488 = 0;
			L3: do {
				F.line = 2739;
					L4: while (true) {
					if (!(i_207488 < colontmp__207487)) break L4;
						F.line = 83;
						i_206374 = i_207488;
						F.line = 84;
						if (items_206345[items_206345_Idx] != null) { items_206345[items_206345_Idx].push(x_206341.kids[chckIndx(i_206374, 0, x_206341.kids.length+0-1)-0].heading); } else { items_206345[items_206345_Idx] = [x_206341.kids[chckIndx(i_206374, 0, x_206341.kids.length+0-1)-0].heading]; };
						F.line = 2741;
						i_207488 = addInt(i_207488, 1);
					}
			} while(false);
		} while(false);
		}
		else {
			L5: do {
				F.line = 86;
				var i_206394 = 0;
				F.line = 2736;
				var colontmp__207492 = 0;
				F.line = 86;
				colontmp__207492 = (x_206341.kids != null ? x_206341.kids.length : 0);
				F.line = 2738;
				var i_207493 = 0;
				L6: do {
					F.line = 2739;
						L7: while (true) {
						if (!(i_207493 < colontmp__207492)) break L7;
							F.line = 86;
							i_206394 = i_207493;
							F.line = 87;
							var it_206395 = x_206341.kids[chckIndx(i_206394, 0, x_206341.kids.length+0-1)-0];
							F.line = 88;
							extract_items_206339(it_206395, heading_206342, items_206345, items_206345_Idx);
							F.line = 2741;
							i_207493 = addInt(i_207493, 1);
						}
				} while(false);
			} while(false);
		}
		
	} while (false);
	framePtr = F.prev;

	
}

function tree_206020(tag_206022, kids_206024) {
	var result_206025 = null;

	var F={procname:"dochack.tree",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 11;
		result_206025 = document.createElement(toJSStr(tag_206022));
		L1: do {
			F.line = 12;
			var k_206056 = null;
			F.line = 3;
			var i_207510 = 0;
			L2: do {
				F.line = 4;
					L3: while (true) {
					if (!(i_207510 < (kids_206024 != null ? kids_206024.length : 0))) break L3;
						F.line = 12;
						k_206056 = kids_206024[chckIndx(i_207510, 0, kids_206024.length+0-1)-0];
						F.line = 13;
						result_206025.appendChild(k_206056);
						F.line = 6;
						i_207510 = addInt(i_207510, 1);
					}
			} while(false);
		} while(false);
	framePtr = F.prev;

	return result_206025;

}

function text_206152(s_206154) {
	var result_206155 = null;

	var F={procname:"dochack.text",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 27;
		result_206155 = document.createTextNode(s_206154);
	framePtr = F.prev;

	return result_206155;

}

function sys_fatal_59862(message_59866) {
	var F={procname:"sysFatal.sysFatal",prev:framePtr,filename:"fatal.nim",line:0};
	framePtr = F;
		F.line = 34;
		var e_60003 = null;
		F.line = 37;
		e_60003 = {m_type: NTI48450, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
		F.line = 38;
		e_60003.message = nimCopy(null, message_59866, NTI45040);
		F.line = 39;
		raiseException(e_60003, "AssertionError");
	framePtr = F.prev;

	
}

function raise_assert_59858(msg_59860) {
	var F={procname:"assertions.raiseAssert",prev:framePtr,filename:"assertions.nim",line:0};
	framePtr = F;
		F.line = 20;
		sys_fatal_59862(msg_59860);
	framePtr = F.prev;

	
}

function failed_assert_impl_60066(msg_60068) {
	var F={procname:"assertions.failedAssertImpl",prev:framePtr,filename:"assertions.nim",line:0};
	framePtr = F;
		F.line = 27;
		raise_assert_59858(msg_60068);
	framePtr = F.prev;

	
}

function uncovered_206950(x_206952) {
			var Tmp1;
		var Tmp2;

	var result_206953 = null;

	var F={procname:"dochack.uncovered",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
	BeforeRet: do {
			if (!((x_206952.kids != null ? x_206952.kids.length : 0) == 0)) Tmp1 = false; else {				Tmp1 = !((x_206952.heading == null));			}		if (Tmp1) {
		F.line = 194;
		if (!(x_206952.heading.hasOwnProperty('__karaxMarker__'))) {
		Tmp2 = x_206952;
		}
		else {
		Tmp2 = null;
		}
		
		result_206953 = Tmp2;
		break BeforeRet;
		}
		
		F.line = 195;
		result_206953 = {heading: x_206952.heading, kids: [], sortId: x_206952.sortId, doSort: x_206952.doSort};
		L3: do {
			F.line = 197;
			var i_206994 = 0;
			F.line = 2736;
			var colontmp__207522 = 0;
			F.line = 197;
			colontmp__207522 = (x_206952.kids != null ? x_206952.kids.length : 0);
			F.line = 2738;
			var i_207523 = 0;
			L4: do {
				F.line = 2739;
					L5: while (true) {
					if (!(i_207523 < colontmp__207522)) break L5;
						F.line = 197;
						i_206994 = i_207523;
						F.line = 198;
						var y_206995 = uncovered_206950(x_206952.kids[chckIndx(i_206994, 0, x_206952.kids.length+0-1)-0]);
						if (!((y_206995 == null))) {
						F.line = 199;
						if (result_206953.kids != null) { result_206953.kids.push(y_206995); } else { result_206953.kids = [y_206995]; };
						}
						
						F.line = 2741;
						i_207523 = addInt(i_207523, 1);
					}
			} while(false);
		} while(false);
		if (((result_206953.kids != null ? result_206953.kids.length : 0) == 0)) {
		F.line = 200;
		result_206953 = null;
		}
		
	} while (false);
	framePtr = F.prev;

	return result_206953;

}

function merge_tocs_207029(orig_207031, news_207032) {
	var result_207033 = null;

	var F={procname:"dochack.mergeTocs",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 203;
		result_207033 = uncovered_206950(orig_207031);
		if ((result_207033 == null)) {
		F.line = 205;
		result_207033 = news_207032;
		}
		else {
			L1: do {
				F.line = 207;
				var i_207054 = 0;
				F.line = 2736;
				var colontmp__207516 = 0;
				F.line = 207;
				colontmp__207516 = (news_207032.kids != null ? news_207032.kids.length : 0);
				F.line = 2738;
				var i_207517 = 0;
				L2: do {
					F.line = 2739;
						L3: while (true) {
						if (!(i_207517 < colontmp__207516)) break L3;
							F.line = 207;
							i_207054 = i_207517;
							F.line = 208;
							if (result_207033.kids != null) { result_207033.kids.push(news_207032.kids[chckIndx(i_207054, 0, news_207032.kids.length+0-1)-0]); } else { result_207033.kids = [news_207032.kids[chckIndx(i_207054, 0, news_207032.kids.length+0-1)-0]]; };
							F.line = 2741;
							i_207517 = addInt(i_207517, 1);
						}
				} while(false);
			} while(false);
		}
		
	framePtr = F.prev;

	return result_207033;

}

function build_toc_207075(orig_207077, types_207079, procs_207080) {
	var result_207081 = null;

	var F={procname:"dochack.buildToc",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 211;
		var new_stuff_207097 = {heading: null, kids: [], doSort: true, sortId: 0};
		L1: do {
			F.line = 212;
			var t_207214 = null;
			F.line = 184;
			var i_207505 = 0;
			F.line = 185;
			var l_207506 = (types_207079 != null ? types_207079.length : 0);
			L2: do {
				F.line = 186;
					L3: while (true) {
					if (!(i_207505 < l_207506)) break L3;
						F.line = 212;
						t_207214 = types_207079[chckIndx(i_207505, 0, types_207079.length+0-1)-0];
						F.line = 213;
						var c_207230 = {heading: t_207214.cloneNode(true), kids: [], doSort: true, sortId: 0};
						F.line = 214;
						t_207214.__karaxMarker__ = true;
						L4: do {
							F.line = 215;
							var p_207237 = null;
							F.line = 184;
							var i_207502 = 0;
							F.line = 185;
							var l_207503 = (procs_207080 != null ? procs_207080.length : 0);
							L5: do {
								F.line = 186;
									L6: while (true) {
									if (!(i_207502 < l_207503)) break L6;
										F.line = 215;
										p_207237 = procs_207080[chckIndx(i_207502, 0, procs_207080.length+0-1)-0];
										if (!(p_207237.hasOwnProperty('__karaxMarker__'))) {
										F.line = 217;
										var xx_207238 = p_207237.parentNode.getElementsByClassName("attachedType");
										if ((((xx_207238 != null ? xx_207238.length : 0) == 1) && (xx_207238[chckIndx(0, 0, xx_207238.length+0-1)-0].textContent == t_207214.textContent))) {
										F.line = 220;
										var q_207246 = tree_206020(makeNimstrLit("A"), [text_206152(p_207237.title)]);
										F.line = 221;
										q_207246.setAttribute("href", p_207237.getAttribute("href"));
										F.line = 222;
										if (c_207230.kids != null) { c_207230.kids.push({heading: q_207246, kids: [], sortId: 0, doSort: false}); } else { c_207230.kids = [{heading: q_207246, kids: [], sortId: 0, doSort: false}]; };
										F.line = 223;
										p_207237.__karaxMarker__ = true;
										}
										
										}
										
										F.line = 188;
										i_207502 = addInt(i_207502, 1);
										if (!(((procs_207080 != null ? procs_207080.length : 0) == l_207503))) {
										F.line = 189;
										failed_assert_impl_60066(makeNimstrLit("C:\\Users\\travis\\build\\nim-lang\\nightlies\\nim\\193b3c66bbeffafaebff166d24b9866f1eaaac0e\\lib\\system\\iterators.nim(189, 11) `len(a) == L` the length of the seq changed while iterating over it"));
										}
										
									}
							} while(false);
						} while(false);
						F.line = 224;
						if (new_stuff_207097.kids != null) { new_stuff_207097.kids.push(c_207230); } else { new_stuff_207097.kids = [c_207230]; };
						F.line = 188;
						i_207505 = addInt(i_207505, 1);
						if (!(((types_207079 != null ? types_207079.length : 0) == l_207506))) {
						F.line = 189;
						failed_assert_impl_60066(makeNimstrLit("C:\\Users\\travis\\build\\nim-lang\\nightlies\\nim\\193b3c66bbeffafaebff166d24b9866f1eaaac0e\\lib\\system\\iterators.nim(189, 11) `len(a) == L` the length of the seq changed while iterating over it"));
						}
						
					}
			} while(false);
		} while(false);
		F.line = 225;
		result_207081 = merge_tocs_207029(orig_207077, new_stuff_207097);
	framePtr = F.prev;

	return result_207081;

}

function add_206085(parent_206087, kid_206088) {
			var Tmp1;
				var Tmp2;

	var F={procname:"dochack.add",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
			if (!(parent_206087.nodeName == "TR")) Tmp1 = false; else {				if ((kid_206088.nodeName == "TD")) Tmp2 = true; else {					Tmp2 = (kid_206088.nodeName == "TH");				}				Tmp1 = Tmp2;			}		if (Tmp1) {
		F.line = 18;
		var k_206089 = document.createElement("TD");
		F.line = 19;
		k_206089.appendChild(kid_206088);
		F.line = 20;
		parent_206087.appendChild(k_206089);
		}
		else {
			F.line = 22;
		parent_206087.appendChild(kid_206088);
		}
		
	framePtr = F.prev;

	
}

function set_class_206103(e_206105, value_206106) {
	var F={procname:"dochack.setClass",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 25;
		e_206105.setAttribute("class", toJSStr(value_206106));
	framePtr = F.prev;

	
}

function to_html_206424(x_206426, is_root_206427) {
			var Tmp1;

		function HEX3Aanonymous_206467(a_206469, b_206470) {
					var Tmp1;

			var result_206471 = 0;

			var F={procname:"toHtml.:anonymous",prev:framePtr,filename:"dochack.nim",line:0};
			framePtr = F;
			BeforeRet: do {
					if (!!((a_206469.heading == null))) Tmp1 = false; else {						Tmp1 = !((b_206470.heading == null));					}				if (Tmp1) {
				F.line = 106;
				var x_206488 = a_206469.heading.textContent;
				F.line = 107;
				var y_206489 = b_206470.heading.textContent;
				if ((x_206488 < y_206489)) {
				F.line = 108;
				result_206471 = -1;
				break BeforeRet;
				}
				
				if ((y_206489 < x_206488)) {
				F.line = 109;
				result_206471 = 1;
				break BeforeRet;
				}
				
				F.line = 110;
				result_206471 = 0;
				break BeforeRet;
				}
				else {
					F.line = 113;
					result_206471 = subInt(a_206469.sortId, b_206470.sortId);
					break BeforeRet;
				}
				
			} while (false);
			framePtr = F.prev;

			return result_206471;

		}

	var result_206428 = null;

	var F={procname:"dochack.toHtml",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
	BeforeRet: do {
		if ((x_206426 == null)) {
		F.line = 91;
		result_206428 = null;
		break BeforeRet;
		}
		
		if (((x_206426.kids != null ? x_206426.kids.length : 0) == 0)) {
		if ((x_206426.heading == null)) {
		F.line = 93;
		result_206428 = null;
		break BeforeRet;
		}
		
		F.line = 94;
		result_206428 = x_206426.heading.cloneNode(true);
		break BeforeRet;
		}
		
		F.line = 95;
		result_206428 = tree_206020(makeNimstrLit("DIV"), []);
			if (!!((x_206426.heading == null))) Tmp1 = false; else {				Tmp1 = !(x_206426.heading.hasOwnProperty('__karaxMarker__'));			}		if (Tmp1) {
		F.line = 97;
		add_206085(result_206428, x_206426.heading.cloneNode(true));
		}
		
		F.line = 98;
		var ul_206464 = tree_206020(makeNimstrLit("UL"), []);
		if (is_root_206427) {
		F.line = 100;
		set_class_206103(ul_206464, makeNimstrLit("simple simple-toc"));
		}
		else {
			F.line = 102;
		set_class_206103(ul_206464, makeNimstrLit("simple"));
		}
		
		if (x_206426.doSort) {
		F.line = 104;
		x_206426.kids.sort(HEX3Aanonymous_206467);
		}
		
		L2: do {
			F.line = 115;
			var k_206614 = null;
			F.line = 182;
			var colontmp__207529 = null;
			F.line = 115;
			colontmp__207529 = x_206426.kids;
			F.line = 184;
			var i_207531 = 0;
			F.line = 185;
			var l_207532 = (colontmp__207529 != null ? colontmp__207529.length : 0);
			L3: do {
				F.line = 186;
					L4: while (true) {
					if (!(i_207531 < l_207532)) break L4;
						F.line = 115;
						k_206614 = colontmp__207529[chckIndx(i_207531, 0, colontmp__207529.length+0-1)-0];
						F.line = 116;
						var y_206615 = to_html_206424(k_206614, false);
						if (!((y_206615 == null))) {
						F.line = 118;
						add_206085(ul_206464, tree_206020(makeNimstrLit("LI"), [y_206615]));
						}
						
						F.line = 188;
						i_207531 = addInt(i_207531, 1);
						if (!(((colontmp__207529 != null ? colontmp__207529.length : 0) == l_207532))) {
						F.line = 189;
						failed_assert_impl_60066(makeNimstrLit("C:\\Users\\travis\\build\\nim-lang\\nightlies\\nim\\193b3c66bbeffafaebff166d24b9866f1eaaac0e\\lib\\system\\iterators.nim(189, 11) `len(a) == L` the length of the seq changed while iterating over it"));
						}
						
					}
			} while(false);
		} while(false);
		if (!((ul_206464.childNodes.length == 0))) {
		F.line = 119;
		add_206085(result_206428, ul_206464);
		}
		
		if ((result_206428.childNodes.length == 0)) {
		F.line = 120;
		result_206428 = null;
		}
		
	} while (false);
	framePtr = F.prev;

	return result_206428;

}

function replace_by_id_206172(id_206174, new_tree_206175) {
	var F={procname:"dochack.replaceById",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 32;
		var x_206176 = document.getElementById(id_206174);
		F.line = 33;
		x_206176.parentNode.replaceChild(new_tree_206175, x_206176);
		F.line = 34;
		new_tree_206175.id = id_206174;
	framePtr = F.prev;

	
}

function togglevis_207333(d_207335) {
	var F={procname:"dochack.togglevis",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 230;
		    if (d_207335.style.display == 'none')
      d_207335.style.display = 'inline';
    else
      d_207335.style.display = 'none';
  
	framePtr = F.prev;

	
}

function groupBy(value_207351) {
	var F={procname:"dochack.groupBy",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 238;
		var toc_207352 = document.getElementById("toc-list");
		if ((alternative_207319[0] == null)) {
		F.line = 240;
		var tt_207373 = {heading: null, kids: [], sortId: 0, doSort: false};
		F.line = 241;
		to_toc_206688(toc_207352, tt_207373);
		F.line = 242;
		tt_207373 = tt_207373.kids[chckIndx(0, 0, tt_207373.kids.length+0-1)-0];
		F.line = 244;
		var types_207390 = [[]];
		F.line = 245;
		var procs_207407 = [[]];
		F.line = 247;
		extract_items_206339(tt_207373, "Types", types_207390, 0);
		F.line = 248;
		extract_items_206339(tt_207373, "Procs", procs_207407, 0);
		F.line = 249;
		extract_items_206339(tt_207373, "Converters", procs_207407, 0);
		F.line = 250;
		extract_items_206339(tt_207373, "Methods", procs_207407, 0);
		F.line = 251;
		extract_items_206339(tt_207373, "Templates", procs_207407, 0);
		F.line = 252;
		extract_items_206339(tt_207373, "Macros", procs_207407, 0);
		F.line = 253;
		extract_items_206339(tt_207373, "Iterators", procs_207407, 0);
		F.line = 255;
		var ntoc_207415 = build_toc_207075(tt_207373, types_207390[0], procs_207407[0]);
		F.line = 256;
		var x_207416 = to_html_206424(ntoc_207415, true);
		F.line = 257;
		alternative_207319[0] = tree_206020(makeNimstrLit("DIV"), [x_207416]);
		}
		
		if ((value_207351 == "type")) {
		F.line = 259;
		replace_by_id_206172("tocRoot", alternative_207319[0]);
		}
		else {
			F.line = 261;
		replace_by_id_206172("tocRoot", tree_206020(makeNimstrLit("DIV"), []));
		}
		
		F.line = 262;
		togglevis_207333(document.getElementById("toc-list"));
	framePtr = F.prev;

	
}
var db_207535 = [null];
var contents_207537 = [null];
var oldtoc_207961 = [null];
var timer_207962 = [null];

function raiseRangeError() {
		var eHEX60gensym67457_67603 = null;
		eHEX60gensym67457_67603 = {m_type: NTI48462, parent: null, name: null, message: null, trace: null, raiseId: 0, up: null};
		eHEX60gensym67457_67603.message = nimCopy(null, makeNimstrLit("value out of range"), NTI45040);
		eHEX60gensym67457_67603.parent = null;
		raiseException(eHEX60gensym67457_67603, "RangeError");

	
}

function nsuToLowerAsciiChar(c_194380) {
	var result_194381 = 0;

	var F={procname:"strutils.toLowerAscii",prev:framePtr,filename:"strutils.nim",line:0};
	framePtr = F;
		if ((ConstSet2[c_194380] != undefined)) {
		F.line = 222;
		result_194381 = chckRange(addInt(c_194380, 32), 0, 255);
		}
		else {
			F.line = 224;
			result_194381 = c_194380;
		}
		
	framePtr = F.prev;

	return result_194381;

}

function fuzzy_match_205070(pattern_205072, str_205073) {
							var Tmp4;
							var Tmp5;
								var Tmp6;

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

	var F={procname:"fuzzysearch.fuzzyMatch",prev:framePtr,filename:"fuzzysearch.nim",line:0};
	framePtr = F;
		F.line = 37;
		var score_state_205078 = -100;
		F.line = 38;
		var header_matched_205079 = false;
		F.line = 39;
		var unmatched_leading_char_count_205081 = 0;
		F.line = 40;
		var consecutive_match_count_205083 = 0;
		F.line = 41;
		var str_index_205085 = 0;
		F.line = 42;
		var pat_index_205087 = 0;
		F.line = 43;
		var score_205089 = 0;
		L1: do {
			F.line = 49;
				L2: while (true) {
				if (!((str_index_205085 < (str_205073 != null ? str_205073.length : 0)) && (pat_index_205087 < (pattern_205072 != null ? pattern_205072.length : 0)))) break L2;
					L3: do {
						F.line = 51;
						var pattern_char_205095 = nsuToLowerAsciiChar(pattern_205072.charCodeAt(chckIndx(pat_index_205087, 0, pattern_205072.length+0-1)-0));
						F.line = 52;
						var str_char_205096 = nsuToLowerAsciiChar(str_205073.charCodeAt(chckIndx(str_index_205085, 0, str_205073.length+0-1)-0));
						if ((ConstSet3[pattern_char_205095] != undefined)) {
						F.line = 56;
						pat_index_205087 = addInt(pat_index_205087, 1);
						F.line = 57;
						break L3;
						}
						
						if ((ConstSet4[str_char_205096] != undefined)) {
						F.line = 59;
						str_index_205085 = addInt(str_index_205085, 1);
						F.line = 60;
						break L3;
						}
						
						if ((!(header_matched_205079) && (str_char_205096 == 58))) {
						F.line = 65;
						header_matched_205079 = true;
						F.line = 66;
						score_state_205078 = -100;
						F.line = 67;
						score_205089 = ((Math.floor((5.0000000000000000e-001 * score_205089)))|0);
						F.line = 68;
						pat_index_205087 = 0;
						F.line = 69;
						str_index_205085 = addInt(str_index_205085, 1);
						F.line = 70;
						break L3;
						}
						
						if ((str_char_205096 == pattern_char_205095)) {
						F.line = 73;
						switch (score_state_205078) {
						case -100:
						case 20:
							F.line = 75;
							score_state_205078 = 10;
							break;
						case 0:
							F.line = 78;
							score_state_205078 = 5;
							F.line = 78;
							score_205089 = addInt(score_205089, score_state_205078);
							break;
						case 10:
						case 5:
							F.line = 81;
							consecutive_match_count_205083 = addInt(consecutive_match_count_205083, 1);
							F.line = 82;
							score_state_205078 = 5;
							F.line = 83;
							score_205089 = addInt(score_205089, mulInt(5, consecutive_match_count_205083));
							if ((score_state_205078 == 10)) {
							F.line = 86;
							score_205089 = addInt(score_205089, 10);
							}
							
							F.line = 88;
							var on_boundary_205171 = (pat_index_205087 == (pattern_205072 != null ? (pattern_205072.length-1) : -1));
							if ((!(on_boundary_205171) && (str_index_205085 < (str_205073 != null ? (str_205073.length-1) : -1)))) {
							F.line = 91;
							var next_pattern_char_205172 = nsuToLowerAsciiChar(pattern_205072.charCodeAt(chckIndx(addInt(pat_index_205087, 1), 0, pattern_205072.length+0-1)-0));
							F.line = 92;
							var next_str_char_205173 = nsuToLowerAsciiChar(str_205073.charCodeAt(chckIndx(addInt(str_index_205085, 1), 0, str_205073.length+0-1)-0));
							F.line = 95;
							if (!!((ConstSet5[next_str_char_205173] != undefined))) Tmp4 = false; else {								Tmp4 = !((next_str_char_205173 == next_pattern_char_205172));							}							on_boundary_205171 = Tmp4;
							}
							
							if (on_boundary_205171) {
							F.line = 100;
							score_state_205078 = 20;
							F.line = 100;
							score_205089 = addInt(score_205089, score_state_205078);
							}
							
							break;
						case -1:
						case -3:
							F.line = 103;
							if (!((ConstSet6[str_205073.charCodeAt(chckIndx(subInt(str_index_205085, 1), 0, str_205073.length+0-1)-0)] != undefined))) Tmp5 = true; else {								if (!(ConstSet7[str_205073.charCodeAt(chckIndx(subInt(str_index_205085, 1), 0, str_205073.length+0-1)-0)] != undefined)) Tmp6 = false; else {									Tmp6 = (ConstSet8[str_205073.charCodeAt(chckIndx(str_index_205085, 0, str_205073.length+0-1)-0)] != undefined);								}								Tmp5 = Tmp6;							}							var is_leading_char_205211 = Tmp5;
							if (is_leading_char_205211) {
							F.line = 110;
							score_state_205078 = 10;
							}
							else {
								F.line = 114;
								score_state_205078 = 0;
								F.line = 114;
								score_205089 = addInt(score_205089, score_state_205078);
							}
							
							break;
						}
						F.line = 115;
						pat_index_205087 = addInt(pat_index_205087, 1);
						}
						else {
							F.line = 118;
							switch (score_state_205078) {
							case -100:
								F.line = 120;
								score_state_205078 = -3;
								F.line = 120;
								score_205089 = addInt(score_205089, score_state_205078);
								break;
							case 5:
								F.line = 123;
								score_state_205078 = -1;
								F.line = 123;
								score_205089 = addInt(score_205089, score_state_205078);
								F.line = 124;
								consecutive_match_count_205083 = 0;
								break;
							case -3:
								if ((unmatched_leading_char_count_205081 < 3)) {
								F.line = 128;
								score_state_205078 = -3;
								F.line = 128;
								score_205089 = addInt(score_205089, score_state_205078);
								}
								
								F.line = 129;
								unmatched_leading_char_count_205081 = addInt(unmatched_leading_char_count_205081, 1);
								break;
							default: 
								F.line = 132;
								score_state_205078 = -1;
								F.line = 132;
								score_205089 = addInt(score_205089, score_state_205078);
								break;
							}
						}
						
						F.line = 134;
						str_index_205085 = addInt(str_index_205085, 1);
					} while(false);
				}
		} while(false);
		F.line = 137;
		var colontmp__208067 = nimMax(0, score_205089);
		F.line = 138;
		var colontmp__208068 = (0 < score_205089);
		F.line = 136;
		nimCopy(result_205077, {Field0: colontmp__208067, Field1: colontmp__208068}, NTI205074);
	framePtr = F.prev;

	return result_205077;

}

function text_206120(s_206122) {
	var result_206123 = null;

	var F={procname:"dochack.text",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		F.line = 26;
		result_206123 = document.createTextNode(toJSStr(s_206122));
	framePtr = F.prev;

	return result_206123;

}

function dosearch_207554(value_207556) {

		function HEX3Aanonymous_207873(a_207882, b_207883) {
			var result_207887 = 0;

			var F={procname:"dosearch.:anonymous",prev:framePtr,filename:"dochack.nim",line:0};
			framePtr = F;
				F.line = 305;
				result_207887 = subInt(b_207883["Field1"], a_207882["Field1"]);
			framePtr = F.prev;

			return result_207887;

		}

	var result_207557 = null;

	var F={procname:"dochack.dosearch",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		if (((db_207535[0] != null ? db_207535[0].length : 0) == 0)) {
		F.line = 272;
		var stuff_207563 = null;
		F.line = 273;
		    var request = new XMLHttpRequest();
    request.open("GET", "theindex.html", false);
    request.send(null);

    var doc = document.implementation.createHTMLDocument("theindex");
    doc.documentElement.innerHTML = request.responseText;

    //parser=new DOMParser();
    //doc=parser.parseFromString("<html></html>", "text/html");

    stuff_207563 = doc.documentElement;
    
		F.line = 286;
		db_207535[0] = nimCopy(null, stuff_207563.getElementsByClassName("reference"), NTI89305);
		F.line = 287;
		contents_207537[0] = nimCopy(null, [], NTI207578);
		L1: do {
			F.line = 288;
			var ahref_207814 = null;
			F.line = 184;
			var i_208045 = 0;
			F.line = 185;
			var l_208046 = (db_207535[0] != null ? db_207535[0].length : 0);
			L2: do {
				F.line = 186;
					L3: while (true) {
					if (!(i_208045 < l_208046)) break L3;
						F.line = 288;
						ahref_207814 = db_207535[0][chckIndx(i_208045, 0, db_207535[0].length+0-1)-0];
						F.line = 289;
						if (contents_207537[0] != null) { contents_207537[0].push(ahref_207814.getAttribute("data-doc-search-tag")); } else { contents_207537[0] = [ahref_207814.getAttribute("data-doc-search-tag")]; };
						F.line = 188;
						i_208045 = addInt(i_208045, 1);
						if (!(((db_207535[0] != null ? db_207535[0].length : 0) == l_208046))) {
						F.line = 189;
						failed_assert_impl_60066(makeNimstrLit("C:\\Users\\travis\\build\\nim-lang\\nightlies\\nim\\193b3c66bbeffafaebff166d24b9866f1eaaac0e\\lib\\system\\iterators.nim(189, 11) `len(a) == L` the length of the seq changed while iterating over it"));
						}
						
					}
			} while(false);
		} while(false);
		}
		
		F.line = 290;
		var ul_207825 = tree_206020(makeNimstrLit("UL"), []);
		F.line = 291;
		result_207557 = tree_206020(makeNimstrLit("DIV"), []);
		F.line = 292;
		set_class_206103(result_207557, makeNimstrLit("search_results"));
		F.line = 293;
		var matches_207846 = [];
		L4: do {
			F.line = 294;
			var i_207859 = 0;
			F.line = 2736;
			var colontmp__208052 = 0;
			F.line = 294;
			colontmp__208052 = (db_207535[0] != null ? db_207535[0].length : 0);
			F.line = 2738;
			var i_208053 = 0;
			L5: do {
				F.line = 2739;
					L6: while (true) {
					if (!(i_208053 < colontmp__208052)) break L6;
						F.line = 294;
						i_207859 = i_208053;
						L7: do {
							F.line = 295;
							var c_207860 = contents_207537[0][chckIndx(i_207859, 0, contents_207537[0].length+0-1)-0];
							if (((c_207860 == "Examples") || (c_207860 == "PEG construction"))) {
							F.line = 300;
							break L7;
							}
							
							F.line = 301;
							var colontmp__208062 = {Field0: 0, Field1: false};
							F.line = 301;
							var score_207861 = 0;
							F.line = 301;
							var matched_207862 = false;
							F.line = 301;
							nimCopy(colontmp__208062, fuzzy_match_205070(value_207556, c_207860), NTI205074);
							F.line = 301;
							score_207861 = colontmp__208062["Field0"];
							F.line = 301;
							matched_207862 = colontmp__208062["Field1"];
							if (matched_207862) {
							F.line = 303;
							if (matches_207846 != null) { matches_207846.push({Field0: db_207535[0][chckIndx(i_207859, 0, db_207535[0].length+0-1)-0], Field1: score_207861}); } else { matches_207846 = [{Field0: db_207535[0][chckIndx(i_207859, 0, db_207535[0].length+0-1)-0], Field1: score_207861}]; };
							}
							
						} while(false);
						F.line = 2741;
						i_208053 = addInt(i_208053, 1);
					}
			} while(false);
		} while(false);
		F.line = 305;
		matches_207846.sort(HEX3Aanonymous_207873);
		L8: do {
			F.line = 306;
			var i_207926 = 0;
			F.line = 2736;
			var colontmp__208058 = 0;
			F.line = 306;
			colontmp__208058 = nimMin((matches_207846 != null ? matches_207846.length : 0), 19);
			F.line = 2738;
			var i_208059 = 0;
			L9: do {
				F.line = 2739;
					L10: while (true) {
					if (!(i_208059 < colontmp__208058)) break L10;
						F.line = 306;
						i_207926 = i_208059;
						F.line = 307;
						matches_207846[chckIndx(i_207926, 0, matches_207846.length+0-1)-0]["Field0"].innerHTML = matches_207846[chckIndx(i_207926, 0, matches_207846.length+0-1)-0]["Field0"].getAttribute("data-doc-search-tag");
						F.line = 308;
						add_206085(ul_207825, tree_206020(makeNimstrLit("LI"), [matches_207846[chckIndx(i_207926, 0, matches_207846.length+0-1)-0]["Field0"]]));
						F.line = 2741;
						i_208059 = addInt(i_208059, 1);
					}
			} while(false);
		} while(false);
		if ((ul_207825.childNodes.length == 0)) {
		F.line = 310;
		add_206085(result_207557, tree_206020(makeNimstrLit("B"), [text_206120(makeNimstrLit("no search results"))]));
		}
		else {
			F.line = 312;
			add_206085(result_207557, tree_206020(makeNimstrLit("B"), [text_206120(makeNimstrLit("search results"))]));
			F.line = 313;
			add_206085(result_207557, ul_207825);
		}
		
	framePtr = F.prev;

	return result_207557;

}

function search() {

		function wrapper_207993() {
			var F={procname:"search.wrapper",prev:framePtr,filename:"dochack.nim",line:0};
			framePtr = F;
				F.line = 320;
				var elem_207995 = document.getElementById("searchInput");
				F.line = 321;
				var value_207996 = elem_207995.value;
				if (!(((value_207996 != null ? value_207996.length : 0) == 0))) {
				if ((oldtoc_207961[0] == null)) {
				F.line = 324;
				oldtoc_207961[0] = document.getElementById("tocRoot");
				}
				
				F.line = 325;
				var results_208002 = dosearch_207554(value_207996);
				F.line = 326;
				replace_by_id_206172("tocRoot", results_208002);
				}
				else {
				if (!((oldtoc_207961[0] == null))) {
				F.line = 328;
				replace_by_id_206172("tocRoot", oldtoc_207961[0]);
				}
				}
			framePtr = F.prev;

			
		}

	var F={procname:"dochack.search",prev:framePtr,filename:"dochack.nim",line:0};
	framePtr = F;
		if (!((timer_207962[0] == null))) {
		F.line = 330;
		clearTimeout(timer_207962[0]);
		}
		
		F.line = 331;
		timer_207962[0] = setTimeout(wrapper_207993, 400);
	framePtr = F.prev;

	
}
