text: std = load(__Ink_String(`../vendor/std`));
  str = load(__Ink_String(`../vendor/str`));
  slice = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[slice] || null : (__ink_acc_trgt.slice !== undefined ? __ink_acc_trgt.slice : null)})();
  append = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[append] || null : (__ink_acc_trgt.append !== undefined ? __ink_acc_trgt.append : null)})();
  split = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[split] || null : (__ink_acc_trgt.split !== undefined ? __ink_acc_trgt.split : null)})();
  hasPrefix__ink_qm__ = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[hasPrefix__ink_qm__] || null : (__ink_acc_trgt.hasPrefix__ink_qm__ !== undefined ? __ink_acc_trgt.hasPrefix__ink_qm__ : null)})();
  Newline = char(10);
  Reader = s => (() => { let S; let back; let expect__ink_qm__; let itemIndex; let last; let next; let peek; let readUntil; let readUntilEnd; let readUntilMatchingDelim; let readUntilPrefix; S = {i: 0}; peek = () => (() => {let __ink_acc_trgt = __as_ink_string(s); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() })()] || null : (__ink_acc_trgt[(() => { return (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() })()] !== undefined ? __ink_acc_trgt[(() => { return (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() })()] : null)})(); last = () => (() => {let __ink_acc_trgt = __as_ink_string(s); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return ((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() - 1) })()] || null : (__ink_acc_trgt[(() => { return ((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() - 1) })()] !== undefined ? __ink_acc_trgt[(() => { return ((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() - 1) })()] : null)})(); back = () => __ink_match((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), [[() => (0), () => (0)], [() => (__Ink_Empty), () => ((() => {let __ink_assgn_trgt = __as_ink_string(S); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(i, ((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() - 1)) : (__ink_assgn_trgt.i) = ((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() - 1); return __ink_assgn_trgt})())]]); next = () => __ink_match((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), [[() => (len(s)), () => (null)], [() => (__Ink_Empty), () => ((() => { let c; c = (() => {let __ink_acc_trgt = __as_ink_string(s); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() })()] || null : (__ink_acc_trgt[(() => { return (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() })()] !== undefined ? __ink_acc_trgt[(() => { return (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() })()] : null)})(); (() => {let __ink_assgn_trgt = __as_ink_string(S); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(i, __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() + 1)) : (__ink_assgn_trgt.i) = __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() + 1); return __ink_assgn_trgt})(); return c })())]]); expect__ink_qm__ = prefix => __ink_match(hasPrefix__ink_qm__(slice(s, (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), len(s)), prefix), [[() => (true), () => ((() => { (() => {let __ink_assgn_trgt = __as_ink_string(S); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(i, __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() + len(prefix))) : (__ink_assgn_trgt.i) = __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() + len(prefix)); return __ink_assgn_trgt})(); return true })())], [() => (__Ink_Empty), () => (false)]]); itemIndex = (list, it) => (() => { let __ink_trampolined_sub; let sub; return sub = i => (() => { __ink_trampolined_sub = i => __ink_match((i < len(list)), [[() => (true), () => (__ink_match((() => {let __ink_acc_trgt = __as_ink_string(list); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return i })()] || null : (__ink_acc_trgt[(() => { return i })()] !== undefined ? __ink_acc_trgt[(() => { return i })()] : null)})(), [[() => (it), () => (i)], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, __as_ink_string(i + 1)))]]))], [() => (__Ink_Empty), () => (__ink_negate(1))]]); return __ink_resolve_trampoline(__ink_trampolined_sub, i) })() })()(0); readUntil = c => (() => { let i; return __ink_match(i = itemIndex(slice(s, (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), len(s)), c), [[() => (__ink_negate(1)), () => (null)], [() => (__Ink_Empty), () => ((() => { let substr; substr = slice(s, (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() + i)); (() => {let __ink_assgn_trgt = __as_ink_string(S); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(i, __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() + i)) : (__ink_assgn_trgt.i) = __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})() + i); return __ink_assgn_trgt})(); return substr })())]]) })(); readUntilPrefix = prefix => (() => { let __ink_trampolined_sub; let sub; return sub = i => (() => { __ink_trampolined_sub = i => (() => { let part; return __ink_match((__as_ink_string(i + len(prefix)) > len(s)), [[() => (true), () => (null)], [() => (__Ink_Empty), () => (__ink_match(part = slice(s, i, __as_ink_string(i + len(prefix))), [[() => (prefix), () => ((() => { let substr; substr = slice(s, (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), i); (() => {let __ink_assgn_trgt = __as_ink_string(S); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(i, i) : (__ink_assgn_trgt.i) = i; return __ink_assgn_trgt})(); return substr })())], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, __as_ink_string(i + 1)))]]))]]) })(); return __ink_resolve_trampoline(__ink_trampolined_sub, i) })() })()((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})()); readUntilEnd = () => (() => { let substr; substr = slice(s, (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), len(s)); (() => {let __ink_assgn_trgt = __as_ink_string(S); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(i, len(s)) : (__ink_assgn_trgt.i) = len(s); return __ink_assgn_trgt})(); return substr })(); readUntilMatchingDelim = left => (() => { let matchingDelimIdx; let right; right = (() => { return __ink_match(left, [[() => (__Ink_String(`[`)), () => (__Ink_String(`]`))], [() => (__Ink_String(`(`)), () => (__Ink_String(`)`))], [() => (__Ink_Empty), () => (null)]]) })(); matchingDelimIdx = (() => { let __ink_trampolined_sub; let sub; return sub = (i, stack) => (() => { __ink_trampolined_sub = (i, stack) => (() => { let c; return __ink_match(stack, [[() => (0), () => ((i - 1))], [() => (__Ink_Empty), () => (__ink_match(c = (() => {let __ink_acc_trgt = __as_ink_string(s); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return i })()] || null : (__ink_acc_trgt[(() => { return i })()] !== undefined ? __ink_acc_trgt[(() => { return i })()] : null)})(), [[() => (null), () => (__ink_negate(1))], [() => (left), () => (__ink_trampoline(__ink_trampolined_sub, __as_ink_string(i + 1), __as_ink_string(stack + 1)))], [() => (right), () => (__ink_trampoline(__ink_trampolined_sub, __as_ink_string(i + 1), (stack - 1)))], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, __as_ink_string(i + 1), stack))]]))]]) })(); return __ink_resolve_trampoline(__ink_trampolined_sub, i, stack) })() })()((() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), 1); return __ink_match(matchingDelimIdx, [[() => (__ink_negate(1)), () => (null)], [() => (__Ink_Empty), () => ((() => { let substr; substr = slice(s, (() => {let __ink_acc_trgt = __as_ink_string(S); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[i] || null : (__ink_acc_trgt.i !== undefined ? __ink_acc_trgt.i : null)})(), matchingDelimIdx); (() => {let __ink_assgn_trgt = __as_ink_string(S); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(i, matchingDelimIdx) : (__ink_assgn_trgt.i) = matchingDelimIdx; return __ink_assgn_trgt})(); return substr })())]]) })(); return {peek: peek, last: last, back: back, next: next, expect__ink_qm__: expect__ink_qm__, readUntil: readUntil, readUntilPrefix: readUntilPrefix, readUntilEnd: readUntilEnd, readUntilMatchingDelim: readUntilMatchingDelim} })()
  
  std = load(__Ink_String(`../vendor/std`));
  str = load(__Ink_String(`../vendor/str`));
  cat = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[cat] || null : (__ink_acc_trgt.cat !== undefined ? __ink_acc_trgt.cat : null)})();
  slice = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[slice] || null : (__ink_acc_trgt.slice !== undefined ? __ink_acc_trgt.slice : null)})();
  map = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[map] || null : (__ink_acc_trgt.map !== undefined ? __ink_acc_trgt.map : null)})();
  filter = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[filter] || null : (__ink_acc_trgt.filter !== undefined ? __ink_acc_trgt.filter : null)})();
  reduce = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[reduce] || null : (__ink_acc_trgt.reduce !== undefined ? __ink_acc_trgt.reduce : null)})();
  each = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[each] || null : (__ink_acc_trgt.each !== undefined ? __ink_acc_trgt.each : null)})();
  every = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[every] || null : (__ink_acc_trgt.every !== undefined ? __ink_acc_trgt.every : null)})();
  append = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[append] || null : (__ink_acc_trgt.append !== undefined ? __ink_acc_trgt.append : null)})();
  f = (() => {let __ink_acc_trgt = __as_ink_string(std); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[format] || null : (__ink_acc_trgt.format !== undefined ? __ink_acc_trgt.format : null)})();
  ws__ink_qm__ = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[ws__ink_qm__] || null : (__ink_acc_trgt.ws__ink_qm__ !== undefined ? __ink_acc_trgt.ws__ink_qm__ : null)})();
  digit__ink_qm__ = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[digit__ink_qm__] || null : (__ink_acc_trgt.digit__ink_qm__ !== undefined ? __ink_acc_trgt.digit__ink_qm__ : null)})();
  letter__ink_qm__ = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[letter__ink_qm__] || null : (__ink_acc_trgt.letter__ink_qm__ !== undefined ? __ink_acc_trgt.letter__ink_qm__ : null)})();
  index = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[index] || null : (__ink_acc_trgt.index !== undefined ? __ink_acc_trgt.index : null)})();
  hasPrefix__ink_qm__ = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[hasPrefix__ink_qm__] || null : (__ink_acc_trgt.hasPrefix__ink_qm__ !== undefined ? __ink_acc_trgt.hasPrefix__ink_qm__ : null)})();
  hasSuffix__ink_qm__ = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[hasSuffix__ink_qm__] || null : (__ink_acc_trgt.hasSuffix__ink_qm__ !== undefined ? __ink_acc_trgt.hasSuffix__ink_qm__ : null)})();
  trimPrefix = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[trimPrefix] || null : (__ink_acc_trgt.trimPrefix !== undefined ? __ink_acc_trgt.trimPrefix : null)})();
  replace = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[replace] || null : (__ink_acc_trgt.replace !== undefined ? __ink_acc_trgt.replace : null)})();
  split = (() => {let __ink_acc_trgt = __as_ink_string(str); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[split] || null : (__ink_acc_trgt.split !== undefined ? __ink_acc_trgt.split : null)})();
  Reader = (() => {let __ink_acc_trgt = __as_ink_string(load(__Ink_String(`reader`))); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Reader] || null : (__ink_acc_trgt.Reader !== undefined ? __ink_acc_trgt.Reader : null)})();
  Newline = char(10);
  Tab = char(9);
  Node = {P: __Ink_String(`p`), Em: __Ink_String(`em`), Strong: __Ink_String(`strong`), Strike: __Ink_String(`strike`), A: __Ink_String(`a`), H1: __Ink_String(`h1`), H2: __Ink_String(`h2`), H3: __Ink_String(`h3`), H4: __Ink_String(`h4`), H5: __Ink_String(`h5`), H6: __Ink_String(`h6`), Quote: __Ink_String(`blockquote`), Img: __Ink_String(`img`), Pre: __Ink_String(`pre`), Code: __Ink_String(`code`), UList: __Ink_String(`ul`), OList: __Ink_String(`ol`), Item: __Ink_String(`li`), Checkbox: __Ink_String(`checkbox`), Br: __Ink_String(`br`), Hr: __Ink_String(`hr`), Empty: __Ink_String(`-empty`), RawHTML: __Ink_String(`-raw-html`)};
  wordChar__ink_qm__ = c => __ink_or(__ink_or(digit__ink_qm__(c), letter__ink_qm__(c)), (point(c) > 127));
  tokenizeText = line => (() => { let append; let next; let peek; let push; let reader; let tokens; reader = Reader(line); peek = (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); tokens = [__Ink_String(``)]; push = tok => (() => { (() => {let __ink_assgn_trgt = __as_ink_string(tokens); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(tokens), tok) : (__ink_assgn_trgt[len(tokens)]) = tok; return __ink_assgn_trgt})(); return (() => {let __ink_assgn_trgt = __as_ink_string(tokens); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(tokens), __Ink_String(``)) : (__ink_assgn_trgt[len(tokens)]) = __Ink_String(``); return __ink_assgn_trgt})() })(); append = suffix => (() => {let __ink_assgn_trgt = __as_ink_string(tokens); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign((() => { return (len(tokens) - 1) })(), __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(tokens); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return (len(tokens) - 1) })()] || null : (__ink_acc_trgt[(() => { return (len(tokens) - 1) })()] !== undefined ? __ink_acc_trgt[(() => { return (len(tokens) - 1) })()] : null)})() + suffix)) : (__ink_assgn_trgt[(() => { return (len(tokens) - 1) })()]) = __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(tokens); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return (len(tokens) - 1) })()] || null : (__ink_acc_trgt[(() => { return (len(tokens) - 1) })()] !== undefined ? __ink_acc_trgt[(() => { return (len(tokens) - 1) })()] : null)})() + suffix); return __ink_assgn_trgt})(); (() => { let __ink_trampolined_sub; let sub; return sub = () => (() => { __ink_trampolined_sub = () => (() => { let c; let d; return __ink_match(c = next(), [[() => (null), () => (null)], [() => (__Ink_String(`_`)), () => ((() => { __ink_match(peek(), [[() => (__Ink_String(`_`)), () => ((() => { next(); return push(__Ink_String(`__`)) })())], [() => (__Ink_Empty), () => (push(__Ink_String(`_`)))]]); return __ink_trampoline(__ink_trampolined_sub) })())], [() => (__Ink_String(`*`)), () => ((() => { __ink_match(peek(), [[() => (__Ink_String(`*`)), () => ((() => { next(); return push(__Ink_String(`**`)) })())], [() => (__Ink_Empty), () => (push(__Ink_String(`*`)))]]); return __ink_trampoline(__ink_trampolined_sub) })())], [() => (__Ink_String(`\\`)), () => (__ink_match(d = next(), [[() => (null), () => (null)], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, append(d)))]]))], [() => (__Ink_String(`\``)), () => (__ink_trampoline(__ink_trampolined_sub, push(__Ink_String(`\``))))], [() => (__Ink_String(`~`)), () => (__ink_trampoline(__ink_trampolined_sub, push(__Ink_String(`~`))))], [() => (__Ink_String(`!`)), () => (__ink_trampoline(__ink_trampolined_sub, push(__Ink_String(`!`))))], [() => (__Ink_String(`[`)), () => (__ink_trampoline(__ink_trampolined_sub, push(__Ink_String(`[`))))], [() => (__Ink_String(`]`)), () => (__ink_trampoline(__ink_trampolined_sub, push(__Ink_String(`]`))))], [() => (__Ink_String(`(`)), () => (__ink_trampoline(__ink_trampolined_sub, push(__Ink_String(`(`))))], [() => (__Ink_String(`)`)), () => (__ink_trampoline(__ink_trampolined_sub, push(__Ink_String(`)`))))], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, append(c)))]]) })(); return __ink_resolve_trampoline(__ink_trampolined_sub) })() })()(); return filter(tokens, tok => (len(tok) > 0)) })();
  unifyTextNodes = (nodes, joiner) => reduce(nodes, (acc, child) => (() => { let last; return __ink_match(type(child), [[() => (__Ink_String(`string`)), () => (__ink_match(type(last = (() => {let __ink_acc_trgt = __as_ink_string(acc); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return (len(acc) - 1) })()] || null : (__ink_acc_trgt[(() => { return (len(acc) - 1) })()] !== undefined ? __ink_acc_trgt[(() => { return (len(acc) - 1) })()] : null)})()), [[() => (__Ink_String(`string`)), () => ((() => {let __ink_assgn_trgt = __as_ink_string(acc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign((() => { return (len(acc) - 1) })(), __as_ink_string(__as_ink_string(last + joiner) + child)) : (__ink_assgn_trgt[(() => { return (len(acc) - 1) })()]) = __as_ink_string(__as_ink_string(last + joiner) + child); return __ink_assgn_trgt})())], [() => (__Ink_Empty), () => ((() => {let __ink_assgn_trgt = __as_ink_string(acc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(acc), child) : (__ink_assgn_trgt[len(acc)]) = child; return __ink_assgn_trgt})())]]))], [() => (__Ink_Empty), () => ((() => {let __ink_assgn_trgt = __as_ink_string(acc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(acc), (() => { return __ink_match((() => {let __ink_acc_trgt = __as_ink_string(child); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})(), [[() => (null), () => (child)], [() => (__Ink_Empty), () => ((() => {let __ink_assgn_trgt = __as_ink_string(child); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(children, unifyTextNodes((() => {let __ink_acc_trgt = __as_ink_string(child); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})(), joiner)) : (__ink_assgn_trgt.children) = unifyTextNodes((() => {let __ink_acc_trgt = __as_ink_string(child); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})(), joiner); return __ink_assgn_trgt})())]]) })()) : (__ink_assgn_trgt[len(acc)]) = (() => { return __ink_match((() => {let __ink_acc_trgt = __as_ink_string(child); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})(), [[() => (null), () => (child)], [() => (__Ink_Empty), () => ((() => {let __ink_assgn_trgt = __as_ink_string(child); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(children, unifyTextNodes((() => {let __ink_acc_trgt = __as_ink_string(child); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})(), joiner)) : (__ink_assgn_trgt.children) = unifyTextNodes((() => {let __ink_acc_trgt = __as_ink_string(child); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})(), joiner); return __ink_assgn_trgt})())]]) })(); return __ink_assgn_trgt})())]]) })(), []);
  parseText = tokens => (() => { let handleDelimitedRange; let next; let nodes; let peek; let readUntil; let readUntilMatchingDelim; let reader; reader = Reader(tokens); peek = (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); readUntil = (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntil] || null : (__ink_acc_trgt.readUntil !== undefined ? __ink_acc_trgt.readUntil : null)})(); readUntilMatchingDelim = (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntilMatchingDelim] || null : (__ink_acc_trgt.readUntilMatchingDelim !== undefined ? __ink_acc_trgt.readUntilMatchingDelim : null)})(); handleDelimitedRange = (tok, tag, nodes, sub) => (() => { let range; return __ink_match(range = readUntil(tok), [[() => (null), () => (sub((() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), tok) : (__ink_assgn_trgt[len(nodes)]) = tok; return __ink_assgn_trgt})()))], [() => (__Ink_Empty), () => ((() => { next(); (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), {tag: tag, children: parseText(range)}) : (__ink_assgn_trgt[len(nodes)]) = {tag: tag, children: parseText(range)}; return __ink_assgn_trgt})(); return sub(nodes) })())]]) })(); nodes = (() => { let __ink_trampolined_sub; let sub; return sub = nodes => (() => { __ink_trampolined_sub = nodes => (() => { let c; let range; let tok; let urlRange; return __ink_match(tok = next(), [[() => (null), () => (nodes)], [() => (__Ink_String(`_`)), () => (handleDelimitedRange(__Ink_String(`_`), (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Em] || null : (__ink_acc_trgt.Em !== undefined ? __ink_acc_trgt.Em : null)})(), nodes, sub))], [() => (__Ink_String(`__`)), () => (handleDelimitedRange(__Ink_String(`__`), (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Strong] || null : (__ink_acc_trgt.Strong !== undefined ? __ink_acc_trgt.Strong : null)})(), nodes, sub))], [() => (__Ink_String(`*`)), () => (handleDelimitedRange(__Ink_String(`*`), (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Em] || null : (__ink_acc_trgt.Em !== undefined ? __ink_acc_trgt.Em : null)})(), nodes, sub))], [() => (__Ink_String(`**`)), () => (handleDelimitedRange(__Ink_String(`**`), (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Strong] || null : (__ink_acc_trgt.Strong !== undefined ? __ink_acc_trgt.Strong : null)})(), nodes, sub))], [() => (__Ink_String(`\``)), () => (handleDelimitedRange(__Ink_String(`\``), (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Code] || null : (__ink_acc_trgt.Code !== undefined ? __ink_acc_trgt.Code : null)})(), nodes, sub))], [() => (__Ink_String(`~`)), () => (handleDelimitedRange(__Ink_String(`~`), (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Strike] || null : (__ink_acc_trgt.Strike !== undefined ? __ink_acc_trgt.Strike : null)})(), nodes, sub))], [() => (__Ink_String(`[`)), () => (__ink_match(range = readUntilMatchingDelim(__Ink_String(`[`)), [[() => (null), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), tok) : (__ink_assgn_trgt[len(nodes)]) = tok; return __ink_assgn_trgt})()))], [() => ([__Ink_String(`x`)]), () => ((() => { next(); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})(), checked: true}) : (__ink_assgn_trgt[len(nodes)]) = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})(), checked: true}; return __ink_assgn_trgt})()) })())], [() => ([__Ink_String(` `)]), () => ((() => { next(); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})(), checked: false}) : (__ink_assgn_trgt[len(nodes)]) = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})(), checked: false}; return __ink_assgn_trgt})()) })())], [() => (__Ink_Empty), () => (__ink_match(c = (() => { next(); return next() })(), [[() => (__Ink_String(`(`)), () => (__ink_match(urlRange = readUntilMatchingDelim(c), [[() => (null), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), __as_ink_string(__as_ink_string(__as_ink_string(tok + cat(range, __Ink_String(``))) + __Ink_String(`]`)) + c)) : (__ink_assgn_trgt[len(nodes)]) = __as_ink_string(__as_ink_string(__as_ink_string(tok + cat(range, __Ink_String(``))) + __Ink_String(`]`)) + c); return __ink_assgn_trgt})()))], [() => (__Ink_Empty), () => ((() => { let link; next(); link = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[A] || null : (__ink_acc_trgt.A !== undefined ? __ink_acc_trgt.A : null)})(), href: cat(urlRange, __Ink_String(``)), children: parseText(range)}; return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), link) : (__ink_assgn_trgt[len(nodes)]) = link; return __ink_assgn_trgt})()) })())]]))], [() => (null), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), __as_ink_string(__as_ink_string(tok + cat(range, __Ink_String(``))) + __Ink_String(`]`))) : (__ink_assgn_trgt[len(nodes)]) = __as_ink_string(__as_ink_string(tok + cat(range, __Ink_String(``))) + __Ink_String(`]`)); return __ink_assgn_trgt})()))], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), __as_ink_string(__as_ink_string(__as_ink_string(tok + cat(range, __Ink_String(``))) + __Ink_String(`]`)) + c)) : (__ink_assgn_trgt[len(nodes)]) = __as_ink_string(__as_ink_string(__as_ink_string(tok + cat(range, __Ink_String(``))) + __Ink_String(`]`)) + c); return __ink_assgn_trgt})()))]]))]]))], [() => (__Ink_String(`!`)), () => (__ink_match(peek(), [[() => (__Ink_String(`[`)), () => (__ink_match(range = (() => { next(); return readUntilMatchingDelim(__Ink_String(`[`)) })(), [[() => (null), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), __as_ink_string(tok + __Ink_String(`[`))) : (__ink_assgn_trgt[len(nodes)]) = __as_ink_string(tok + __Ink_String(`[`)); return __ink_assgn_trgt})()))], [() => ([__Ink_String(`x`)]), () => ((() => { next(); (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), tok) : (__ink_assgn_trgt[len(nodes)]) = tok; return __ink_assgn_trgt})(); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})(), checked: true}) : (__ink_assgn_trgt[len(nodes)]) = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})(), checked: true}; return __ink_assgn_trgt})()) })())], [() => ([__Ink_String(` `)]), () => ((() => { next(); (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), tok) : (__ink_assgn_trgt[len(nodes)]) = tok; return __ink_assgn_trgt})(); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})(), checked: false}) : (__ink_assgn_trgt[len(nodes)]) = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})(), checked: false}; return __ink_assgn_trgt})()) })())], [() => (__Ink_Empty), () => (__ink_match(c = (() => { next(); return next() })(), [[() => (__Ink_String(`(`)), () => (__ink_match(urlRange = readUntilMatchingDelim(c), [[() => (null), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), __as_ink_string(__as_ink_string(__as_ink_string(__as_ink_string(tok + __Ink_String(`[`)) + cat(range, __Ink_String(``))) + __Ink_String(`]`)) + c)) : (__ink_assgn_trgt[len(nodes)]) = __as_ink_string(__as_ink_string(__as_ink_string(__as_ink_string(tok + __Ink_String(`[`)) + cat(range, __Ink_String(``))) + __Ink_String(`]`)) + c); return __ink_assgn_trgt})()))], [() => (__Ink_Empty), () => ((() => { let img; next(); img = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Img] || null : (__ink_acc_trgt.Img !== undefined ? __ink_acc_trgt.Img : null)})(), alt: cat(range, __Ink_String(``)), src: cat(urlRange, __Ink_String(``))}; return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), img) : (__ink_assgn_trgt[len(nodes)]) = img; return __ink_assgn_trgt})()) })())]]))], [() => (null), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), __as_ink_string(__as_ink_string(__as_ink_string(tok + __Ink_String(`[`)) + cat(range, __Ink_String(``))) + __Ink_String(`]`))) : (__ink_assgn_trgt[len(nodes)]) = __as_ink_string(__as_ink_string(__as_ink_string(tok + __Ink_String(`[`)) + cat(range, __Ink_String(``))) + __Ink_String(`]`)); return __ink_assgn_trgt})()))], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), __as_ink_string(__as_ink_string(__as_ink_string(__as_ink_string(tok + __Ink_String(`[`)) + cat(range, __Ink_String(``))) + __Ink_String(`]`)) + c)) : (__ink_assgn_trgt[len(nodes)]) = __as_ink_string(__as_ink_string(__as_ink_string(__as_ink_string(tok + __Ink_String(`[`)) + cat(range, __Ink_String(``))) + __Ink_String(`]`)) + c); return __ink_assgn_trgt})()))]]))]]))], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), tok) : (__ink_assgn_trgt[len(nodes)]) = tok; return __ink_assgn_trgt})()))]]))], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(nodes); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(nodes), tok) : (__ink_assgn_trgt[len(nodes)]) = tok; return __ink_assgn_trgt})()))]]) })(); return __ink_resolve_trampoline(__ink_trampolined_sub, nodes) })() })()([]); return unifyTextNodes(nodes, __Ink_String(``)) })();
  uListItemLine__ink_qm__ = line => __ink_match(line, [[() => (null), () => (false)], [() => (__Ink_Empty), () => (hasPrefix__ink_qm__(trimPrefix(trimPrefix(line, __Ink_String(` `)), Tab), __Ink_String(`- `)))]]);
  oListItemLine__ink_qm__ = line => __ink_match(line, [[() => (null), () => (false)], [() => (__Ink_Empty), () => ((() => { let dotIndex; let trimmedStart; trimmedStart = trimPrefix(trimPrefix(line, __Ink_String(` `)), Tab); return __ink_match(dotIndex = index(trimmedStart, __Ink_String(`. `)), [[() => (__ink_negate(1)), () => (false)], [() => (0), () => (false)], [() => (__Ink_Empty), () => (every(map(slice(trimmedStart, 0, dotIndex), digit__ink_qm__)))]]) })())]]);
  listItemLine__ink_qm__ = line => __ink_or(uListItemLine__ink_qm__(line), oListItemLine__ink_qm__(line));
  trimUListGetLevel = reader => (() => { let level; level = len((() => { return (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntil] || null : (__ink_acc_trgt.readUntil !== undefined ? __ink_acc_trgt.readUntil : null)})() })()(__Ink_String(`-`))); each(__Ink_String(`- `), (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})()); return level })();
  trimOListGetLevel = reader => (() => { let level; let next; let peek; peek = (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); level = (() => { let __ink_trampolined_sub; let sub; return sub = i => (() => { __ink_trampolined_sub = i => __ink_match(ws__ink_qm__(peek()), [[() => (true), () => ((() => { next(); return __ink_trampoline(__ink_trampolined_sub, __as_ink_string(i + 1)) })())], [() => (false), () => (i)]]); return __ink_resolve_trampoline(__ink_trampolined_sub, i) })() })()(0); (() => { return (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntil] || null : (__ink_acc_trgt.readUntil !== undefined ? __ink_acc_trgt.readUntil : null)})() })()(__Ink_String(`.`)); next(); __ink_match((() => { return (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})() })()(), [[() => (__Ink_String(` `)), () => (next())]]); return level })();
  lineNodeType = line => __ink_match(true, [[() => ((() => { return __ink_eq(line, null) })()), () => (null)], [() => ((() => { return __ink_eq(line, __Ink_String(``)) })()), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Empty] || null : (__ink_acc_trgt.Empty !== undefined ? __ink_acc_trgt.Empty : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`# `))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H1] || null : (__ink_acc_trgt.H1 !== undefined ? __ink_acc_trgt.H1 : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`## `))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H2] || null : (__ink_acc_trgt.H2 !== undefined ? __ink_acc_trgt.H2 : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`### `))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H3] || null : (__ink_acc_trgt.H3 !== undefined ? __ink_acc_trgt.H3 : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`#### `))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H4] || null : (__ink_acc_trgt.H4 !== undefined ? __ink_acc_trgt.H4 : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`##### `))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H5] || null : (__ink_acc_trgt.H5 !== undefined ? __ink_acc_trgt.H5 : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`###### `))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H6] || null : (__ink_acc_trgt.H6 !== undefined ? __ink_acc_trgt.H6 : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`>`))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Quote] || null : (__ink_acc_trgt.Quote !== undefined ? __ink_acc_trgt.Quote : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`\`\`\``))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Pre] || null : (__ink_acc_trgt.Pre !== undefined ? __ink_acc_trgt.Pre : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`---`))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Hr] || null : (__ink_acc_trgt.Hr !== undefined ? __ink_acc_trgt.Hr : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`***`))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Hr] || null : (__ink_acc_trgt.Hr !== undefined ? __ink_acc_trgt.Hr : null)})())], [() => (hasPrefix__ink_qm__(line, __Ink_String(`!html `))), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[RawHTML] || null : (__ink_acc_trgt.RawHTML !== undefined ? __ink_acc_trgt.RawHTML : null)})())], [() => (uListItemLine__ink_qm__(line)), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[UList] || null : (__ink_acc_trgt.UList !== undefined ? __ink_acc_trgt.UList : null)})())], [() => (oListItemLine__ink_qm__(line)), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[OList] || null : (__ink_acc_trgt.OList !== undefined ? __ink_acc_trgt.OList : null)})())], [() => (__Ink_Empty), () => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[P] || null : (__ink_acc_trgt.P !== undefined ? __ink_acc_trgt.P : null)})())]]);
  parse = text => parseDoc(Reader(split(text, Newline)));
  parseDoc = lineReader => (() => { let next; let peek; peek = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); return (() => { let __ink_trampolined_sub; let sub; return sub = doc => (() => { __ink_trampolined_sub = doc => (() => { let nodeType; return __ink_match(nodeType = lineNodeType(peek()), [[() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H1] || null : (__ink_acc_trgt.H1 !== undefined ? __ink_acc_trgt.H1 : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseHeader(nodeType, lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseHeader(nodeType, lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H2] || null : (__ink_acc_trgt.H2 !== undefined ? __ink_acc_trgt.H2 : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseHeader(nodeType, lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseHeader(nodeType, lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H3] || null : (__ink_acc_trgt.H3 !== undefined ? __ink_acc_trgt.H3 : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseHeader(nodeType, lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseHeader(nodeType, lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H4] || null : (__ink_acc_trgt.H4 !== undefined ? __ink_acc_trgt.H4 : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseHeader(nodeType, lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseHeader(nodeType, lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H5] || null : (__ink_acc_trgt.H5 !== undefined ? __ink_acc_trgt.H5 : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseHeader(nodeType, lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseHeader(nodeType, lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H6] || null : (__ink_acc_trgt.H6 !== undefined ? __ink_acc_trgt.H6 : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseHeader(nodeType, lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseHeader(nodeType, lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Quote] || null : (__ink_acc_trgt.Quote !== undefined ? __ink_acc_trgt.Quote : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseBlockQuote(lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseBlockQuote(lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Pre] || null : (__ink_acc_trgt.Pre !== undefined ? __ink_acc_trgt.Pre : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseCodeBlock(lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseCodeBlock(lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[UList] || null : (__ink_acc_trgt.UList !== undefined ? __ink_acc_trgt.UList : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseList(lineReader, nodeType)) : (__ink_assgn_trgt[len(doc)]) = parseList(lineReader, nodeType); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[OList] || null : (__ink_acc_trgt.OList !== undefined ? __ink_acc_trgt.OList : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseList(lineReader, nodeType)) : (__ink_assgn_trgt[len(doc)]) = parseList(lineReader, nodeType); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[RawHTML] || null : (__ink_acc_trgt.RawHTML !== undefined ? __ink_acc_trgt.RawHTML : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseRawHTML(lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseRawHTML(lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[P] || null : (__ink_acc_trgt.P !== undefined ? __ink_acc_trgt.P : null)})()), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), parseParagraph(lineReader)) : (__ink_assgn_trgt[len(doc)]) = parseParagraph(lineReader); return __ink_assgn_trgt})()))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Hr] || null : (__ink_acc_trgt.Hr !== undefined ? __ink_acc_trgt.Hr : null)})()), () => ((() => { next(); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(doc); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(doc), {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Hr] || null : (__ink_acc_trgt.Hr !== undefined ? __ink_acc_trgt.Hr : null)})()}) : (__ink_assgn_trgt[len(doc)]) = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Hr] || null : (__ink_acc_trgt.Hr !== undefined ? __ink_acc_trgt.Hr : null)})()}; return __ink_assgn_trgt})()) })())], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Empty] || null : (__ink_acc_trgt.Empty !== undefined ? __ink_acc_trgt.Empty : null)})()), () => ((() => { next(); return __ink_trampoline(__ink_trampolined_sub, doc) })())], [() => (__Ink_Empty), () => (doc)]]) })(); return __ink_resolve_trampoline(__ink_trampolined_sub, doc) })() })()([]) })();
  parseHeader = (nodeType, lineReader) => (() => { let line; let reader; let text; line = (() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})() })()(); reader = Reader(line); (() => { return (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntil] || null : (__ink_acc_trgt.readUntil !== undefined ? __ink_acc_trgt.readUntil : null)})() })()(__Ink_String(` `)); (() => { return (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})() })()(); text = (() => { return (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntilEnd] || null : (__ink_acc_trgt.readUntilEnd !== undefined ? __ink_acc_trgt.readUntilEnd : null)})() })()(); return {tag: nodeType, children: parseText(tokenizeText(text))} })();
  parseBlockQuote = lineReader => (() => { let BlockQuotedLineReader; let next; let peek; peek = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); BlockQuotedLineReader = lineReader => (() => { let back; let expect__ink_qm__; let last; let next; let peek; let readUntil; let readUntilEnd; let readUntilMatchingDelim; let readUntilPrefix; let returnIfQuoted; returnIfQuoted = line => __ink_match(lineNodeType(line), [[() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Quote] || null : (__ink_acc_trgt.Quote !== undefined ? __ink_acc_trgt.Quote : null)})()), () => (slice(line, 1, len(line)))], [() => (__Ink_Empty), () => (null)]]); peek = () => returnIfQuoted((() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})() })()()); last = () => returnIfQuoted((() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[last] || null : (__ink_acc_trgt.last !== undefined ? __ink_acc_trgt.last : null)})() })()()); back = () => (() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[back] || null : (__ink_acc_trgt.back !== undefined ? __ink_acc_trgt.back : null)})() })()(); next = () => __ink_match(lineNodeType((() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})() })()()), [[() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Quote] || null : (__ink_acc_trgt.Quote !== undefined ? __ink_acc_trgt.Quote : null)})()), () => (trimPrefix((() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})() })()(), __Ink_String(`>`)))], [() => (__Ink_Empty), () => (null)]]); expect__ink_qm__ = () => null; readUntil = c => (() => { let lines; lines = (() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntil] || null : (__ink_acc_trgt.readUntil !== undefined ? __ink_acc_trgt.readUntil : null)})() })()(__as_ink_string(__Ink_String(`>`) + c)); return map(lines, line => slice(line, 1, len(line))) })(); readUntilPrefix = prefix => (() => { let lines; lines = (() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntilPrefix] || null : (__ink_acc_trgt.readUntilPrefix !== undefined ? __ink_acc_trgt.readUntilPrefix : null)})() })()(__as_ink_string(__Ink_String(`>`) + c)); return map(lines, line => slice(line, 1, len(line))) })(); readUntilEnd = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntilEnd] || null : (__ink_acc_trgt.readUntilEnd !== undefined ? __ink_acc_trgt.readUntilEnd : null)})(); readUntilMatchingDelim = () => null; return {peek: peek, last: last, back: back, next: next, expect__ink_qm__: expect__ink_qm__, readUntil: readUntil, readUntilPrefix: readUntilPrefix, readUntilEnd: readUntilEnd, readUntilMatchingDelim: readUntilMatchingDelim} })(); return {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Quote] || null : (__ink_acc_trgt.Quote !== undefined ? __ink_acc_trgt.Quote : null)})(), children: parseDoc(BlockQuotedLineReader(lineReader, __Ink_String(`>`)))} })();
  parseCodeBlock = lineReader => (() => { let children; let lang; let next; let peek; let startTag; peek = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); startTag = next(); lang = (() => { let rest; return __ink_match(rest = slice(startTag, 3, len(startTag)), [[() => (__Ink_String(``)), () => (__Ink_String(``))], [() => (__Ink_Empty), () => (rest)]]) })(); children = (() => { let __ink_trampolined_sub; let sub; return sub = lines => (() => { __ink_trampolined_sub = lines => __ink_match(lineNodeType(peek()), [[() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Pre] || null : (__ink_acc_trgt.Pre !== undefined ? __ink_acc_trgt.Pre : null)})()), () => (lines)], [() => (null), () => (lines)], [() => (__Ink_Empty), () => ((() => { let text; text = next(); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(lines); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(lines), text) : (__ink_assgn_trgt[len(lines)]) = text; return __ink_assgn_trgt})()) })())]]); return __ink_resolve_trampoline(__ink_trampolined_sub, lines) })() })()([]); next(); return {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Pre] || null : (__ink_acc_trgt.Pre !== undefined ? __ink_acc_trgt.Pre : null)})(), children: [{tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Code] || null : (__ink_acc_trgt.Code !== undefined ? __ink_acc_trgt.Code : null)})(), lang: lang, children: unifyTextNodes(children, Newline)}]} })();
  parseRawHTML = lineReader => (() => { let children; let firstLine; let next; let peek; let startMarkLine; peek = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); startMarkLine = next(); firstLine = slice(startMarkLine, len(__Ink_String(`!html `)), len(startMarkLine)); children = (() => { let __ink_trampolined_sub; let sub; return sub = lines => (() => { __ink_trampolined_sub = lines => __ink_match(lineNodeType(peek()), [[() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Empty] || null : (__ink_acc_trgt.Empty !== undefined ? __ink_acc_trgt.Empty : null)})()), () => (lines)], [() => (null), () => (lines)], [() => (__Ink_Empty), () => ((() => { let text; text = next(); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(lines); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(lines), text) : (__ink_assgn_trgt[len(lines)]) = text; return __ink_assgn_trgt})()) })())]]); return __ink_resolve_trampoline(__ink_trampolined_sub, lines) })() })()([firstLine]); return {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[RawHTML] || null : (__ink_acc_trgt.RawHTML !== undefined ? __ink_acc_trgt.RawHTML : null)})(), children: unifyTextNodes(children, Newline)} })();
  parseList = (lineReader, listType) => (() => { let children; let next; let peek; peek = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); children = (() => { let __ink_trampolined_sub; let sub; return sub = items => (() => { __ink_trampolined_sub = items => __ink_match(listItemLine__ink_qm__(peek()), [[() => (false), () => (items)], [() => (__Ink_Empty), () => ((() => { let lastItem; let level; let line; let lineType; let listItem; let reader; let text; let trimmer; line = next(); lineType = lineNodeType(line); reader = Reader(line); trimmer = (() => { return __ink_match(lineType, [[() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[UList] || null : (__ink_acc_trgt.UList !== undefined ? __ink_acc_trgt.UList : null)})()), () => (trimUListGetLevel)], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[OList] || null : (__ink_acc_trgt.OList !== undefined ? __ink_acc_trgt.OList : null)})()), () => (trimOListGetLevel)]]) })(); level = trimmer(reader); text = (() => { return (() => {let __ink_acc_trgt = __as_ink_string(reader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[readUntilEnd] || null : (__ink_acc_trgt.readUntilEnd !== undefined ? __ink_acc_trgt.readUntilEnd : null)})() })()(); listItem = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Item] || null : (__ink_acc_trgt.Item !== undefined ? __ink_acc_trgt.Item : null)})(), level: level, children: parseText(tokenizeText(text))}; return __ink_match(lastItem = (() => {let __ink_acc_trgt = __as_ink_string(items); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return (len(items) - 1) })()] || null : (__ink_acc_trgt[(() => { return (len(items) - 1) })()] !== undefined ? __ink_acc_trgt[(() => { return (len(items) - 1) })()] : null)})(), [[() => (null), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(items); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(items), listItem) : (__ink_assgn_trgt[len(items)]) = listItem; return __ink_assgn_trgt})()))], [() => (__Ink_Empty), () => (__ink_match((() => {let __ink_acc_trgt = __as_ink_string(lastItem); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[level] || null : (__ink_acc_trgt.level !== undefined ? __ink_acc_trgt.level : null)})(), [[() => (level), () => (__ink_match(lineType, [[() => (listType), () => (__ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(items); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(items), listItem) : (__ink_assgn_trgt[len(items)]) = listItem; return __ink_assgn_trgt})()))], [() => (__Ink_Empty), () => ((() => { (() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[back] || null : (__ink_acc_trgt.back !== undefined ? __ink_acc_trgt.back : null)})() })()(); return items })())]]))], [() => (__Ink_Empty), () => (__ink_match(((() => {let __ink_acc_trgt = __as_ink_string(lastItem); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[level] || null : (__ink_acc_trgt.level !== undefined ? __ink_acc_trgt.level : null)})() < level), [[() => (true), () => ((() => { let list; (() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[back] || null : (__ink_acc_trgt.back !== undefined ? __ink_acc_trgt.back : null)})() })()(); list = parseList(lineReader, lineType); (() => {let __ink_assgn_trgt = __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(lastItem); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})()); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len((() => {let __ink_acc_trgt = __as_ink_string(lastItem); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})()), list) : (__ink_assgn_trgt[len((() => {let __ink_acc_trgt = __as_ink_string(lastItem); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})())]) = list; return __ink_assgn_trgt})(); return __ink_trampoline(__ink_trampolined_sub, items) })())], [() => (__Ink_Empty), () => ((() => { (() => { return (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[back] || null : (__ink_acc_trgt.back !== undefined ? __ink_acc_trgt.back : null)})() })()(); return items })())]]))]]))]]) })())]]); return __ink_resolve_trampoline(__ink_trampolined_sub, items) })() })()([]); children = map(children, child => __ink_match(child, [[() => ({tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Item] || null : (__ink_acc_trgt.Item !== undefined ? __ink_acc_trgt.Item : null)})(), level: __Ink_Empty, children: __Ink_Empty}), () => ({tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Item] || null : (__ink_acc_trgt.Item !== undefined ? __ink_acc_trgt.Item : null)})(), children: (() => {let __ink_acc_trgt = __as_ink_string(child); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})()})], [() => (__Ink_Empty), () => (child)]])); return {tag: listType, children: children} })();
  parseParagraph = lineReader => (() => { let children; let next; let peek; peek = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[peek] || null : (__ink_acc_trgt.peek !== undefined ? __ink_acc_trgt.peek : null)})(); next = (() => {let __ink_acc_trgt = __as_ink_string(lineReader); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[next] || null : (__ink_acc_trgt.next !== undefined ? __ink_acc_trgt.next : null)})(); children = (() => { let __ink_trampolined_sub; let sub; return sub = lines => (() => { __ink_trampolined_sub = lines => __ink_match(lineNodeType(peek()), [[() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[P] || null : (__ink_acc_trgt.P !== undefined ? __ink_acc_trgt.P : null)})()), () => ((() => { let text; text = next(); return __ink_match([hasSuffix__ink_qm__(text, __Ink_String(`  `)), __ink_eq((() => {let __ink_acc_trgt = __as_ink_string(text); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[(() => { return (len(text) - 1) })()] || null : (__ink_acc_trgt[(() => { return (len(text) - 1) })()] !== undefined ? __ink_acc_trgt[(() => { return (len(text) - 1) })()] : null)})(), __Ink_String(`\\`))], [[() => ([true, __Ink_Empty]), () => ((() => { append(lines, parseText(tokenizeText(slice(text, 0, (len(text) - 2))))); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(lines); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(lines), {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Br] || null : (__ink_acc_trgt.Br !== undefined ? __ink_acc_trgt.Br : null)})()}) : (__ink_assgn_trgt[len(lines)]) = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Br] || null : (__ink_acc_trgt.Br !== undefined ? __ink_acc_trgt.Br : null)})()}; return __ink_assgn_trgt})()) })())], [() => ([__Ink_Empty, true]), () => ((() => { append(lines, parseText(tokenizeText(slice(text, 0, (len(text) - 1))))); return __ink_trampoline(__ink_trampolined_sub, (() => {let __ink_assgn_trgt = __as_ink_string(lines); __is_ink_string(__ink_assgn_trgt) ? __ink_assgn_trgt.assign(len(lines), {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Br] || null : (__ink_acc_trgt.Br !== undefined ? __ink_acc_trgt.Br : null)})()}) : (__ink_assgn_trgt[len(lines)]) = {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Br] || null : (__ink_acc_trgt.Br !== undefined ? __ink_acc_trgt.Br : null)})()}; return __ink_assgn_trgt})()) })())], [() => (__Ink_Empty), () => (__ink_trampoline(__ink_trampolined_sub, append(lines, parseText(tokenizeText(text)))))]]) })())], [() => (__Ink_Empty), () => (lines)]]); return __ink_resolve_trampoline(__ink_trampolined_sub, lines) })() })()([]); return {tag: (() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[P] || null : (__ink_acc_trgt.P !== undefined ? __ink_acc_trgt.P : null)})(), children: unifyTextNodes(children, __Ink_String(` `))} })();
  compile = nodes => cat(map(nodes, compileNode), __Ink_String(``));
  wrapTag = (tag, node) => f(__Ink_String(`<{{0}}>{{1}}</{{0}}>`), [tag, compile((() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})())]);
  compileNode = node => __ink_match(type(node), [[() => (__Ink_String(`string`)), () => (replace(replace(node, __Ink_String(`&`), __Ink_String(`&amp;`)), __Ink_String(`<`), __Ink_String(`&lt;`)))], [() => (__Ink_Empty), () => (__ink_match((() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[tag] || null : (__ink_acc_trgt.tag !== undefined ? __ink_acc_trgt.tag : null)})(), [[() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[P] || null : (__ink_acc_trgt.P !== undefined ? __ink_acc_trgt.P : null)})()), () => (wrapTag(__Ink_String(`p`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Em] || null : (__ink_acc_trgt.Em !== undefined ? __ink_acc_trgt.Em : null)})()), () => (wrapTag(__Ink_String(`em`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Strong] || null : (__ink_acc_trgt.Strong !== undefined ? __ink_acc_trgt.Strong : null)})()), () => (wrapTag(__Ink_String(`strong`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Strike] || null : (__ink_acc_trgt.Strike !== undefined ? __ink_acc_trgt.Strike : null)})()), () => (wrapTag(__Ink_String(`strike`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[A] || null : (__ink_acc_trgt.A !== undefined ? __ink_acc_trgt.A : null)})()), () => (f(__Ink_String(`<a href="{{0}}">{{1}}</a>`), [(() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[href] || null : (__ink_acc_trgt.href !== undefined ? __ink_acc_trgt.href : null)})(), compile((() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})())]))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H1] || null : (__ink_acc_trgt.H1 !== undefined ? __ink_acc_trgt.H1 : null)})()), () => (wrapTag(__Ink_String(`h1`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H2] || null : (__ink_acc_trgt.H2 !== undefined ? __ink_acc_trgt.H2 : null)})()), () => (wrapTag(__Ink_String(`h2`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H3] || null : (__ink_acc_trgt.H3 !== undefined ? __ink_acc_trgt.H3 : null)})()), () => (wrapTag(__Ink_String(`h3`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H4] || null : (__ink_acc_trgt.H4 !== undefined ? __ink_acc_trgt.H4 : null)})()), () => (wrapTag(__Ink_String(`h4`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H5] || null : (__ink_acc_trgt.H5 !== undefined ? __ink_acc_trgt.H5 : null)})()), () => (wrapTag(__Ink_String(`h5`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[H6] || null : (__ink_acc_trgt.H6 !== undefined ? __ink_acc_trgt.H6 : null)})()), () => (wrapTag(__Ink_String(`h6`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Quote] || null : (__ink_acc_trgt.Quote !== undefined ? __ink_acc_trgt.Quote : null)})()), () => (wrapTag(__Ink_String(`blockquote`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Img] || null : (__ink_acc_trgt.Img !== undefined ? __ink_acc_trgt.Img : null)})()), () => (f(__Ink_String(`<img alt="{{0}}" src="{{1}}"/>`), [(() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[alt] || null : (__ink_acc_trgt.alt !== undefined ? __ink_acc_trgt.alt : null)})(), (() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[src] || null : (__ink_acc_trgt.src !== undefined ? __ink_acc_trgt.src : null)})()]))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Pre] || null : (__ink_acc_trgt.Pre !== undefined ? __ink_acc_trgt.Pre : null)})()), () => (wrapTag(__Ink_String(`pre`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Code] || null : (__ink_acc_trgt.Code !== undefined ? __ink_acc_trgt.Code : null)})()), () => (__ink_match((() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[lang] || null : (__ink_acc_trgt.lang !== undefined ? __ink_acc_trgt.lang : null)})(), [[() => (__Ink_String(``)), () => (wrapTag(__Ink_String(`code`), node))], [() => (null), () => (wrapTag(__Ink_String(`code`), node))], [() => (__Ink_Empty), () => (f(__Ink_String(`<code data-lang="{{0}}">{{1}}</code>`), [(() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[lang] || null : (__ink_acc_trgt.lang !== undefined ? __ink_acc_trgt.lang : null)})(), compile((() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})())]))]]))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[UList] || null : (__ink_acc_trgt.UList !== undefined ? __ink_acc_trgt.UList : null)})()), () => (wrapTag(__Ink_String(`ul`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[OList] || null : (__ink_acc_trgt.OList !== undefined ? __ink_acc_trgt.OList : null)})()), () => (wrapTag(__Ink_String(`ol`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Item] || null : (__ink_acc_trgt.Item !== undefined ? __ink_acc_trgt.Item : null)})()), () => (wrapTag(__Ink_String(`li`), node))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Checkbox] || null : (__ink_acc_trgt.Checkbox !== undefined ? __ink_acc_trgt.Checkbox : null)})()), () => (f(__Ink_String(`<input type="checkbox" {{0}} />`), [__ink_match((() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[checked] || null : (__ink_acc_trgt.checked !== undefined ? __ink_acc_trgt.checked : null)})(), [[() => (true), () => (__Ink_String(`checked`))], [() => (__Ink_Empty), () => (__Ink_String(``))]])]))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Br] || null : (__ink_acc_trgt.Br !== undefined ? __ink_acc_trgt.Br : null)})()), () => (__Ink_String(`<br/>`))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[Hr] || null : (__ink_acc_trgt.Hr !== undefined ? __ink_acc_trgt.Hr : null)})()), () => (__Ink_String(`<hr/>`))], [() => ((() => {let __ink_acc_trgt = __as_ink_string(Node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[RawHTML] || null : (__ink_acc_trgt.RawHTML !== undefined ? __ink_acc_trgt.RawHTML : null)})()), () => ((() => {let __ink_acc_trgt = __as_ink_string((() => {let __ink_acc_trgt = __as_ink_string(node); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[children] || null : (__ink_acc_trgt.children !== undefined ? __ink_acc_trgt.children : null)})()); return __is_ink_string(__ink_acc_trgt) ? __ink_acc_trgt.valueOf()[0] || null : (__ink_acc_trgt[0] !== undefined ? __ink_acc_trgt[0] : null)})())], [() => (__Ink_Empty), () => (f(__Ink_String(`<span style="color:red">Unknown Markdown node {{0}}</span>`), [string(node)]))]]))]]);
  transform = text => compile(parse(text))
  
  