diff --git a/CMark.hsc b/CMark.hsc
--- a/CMark.hsc
+++ b/CMark.hsc
@@ -149,20 +149,26 @@
 
 type Info = Text
 
+type OnEnter = Text
+
+type OnExit = Text
+
 data NodeType =
     DOCUMENT
-  | HRULE
+  | THEMATIC_BREAK
   | PARAGRAPH
   | BLOCK_QUOTE
-  | HTML Text
+  | HTML_BLOCK Text
+  | CUSTOM_BLOCK OnEnter OnExit
   | CODE_BLOCK Info Text
-  | HEADER Level
+  | HEADING Level
   | LIST ListAttributes
   | ITEM
   | TEXT Text
   | SOFTBREAK
   | LINEBREAK
-  | INLINE_HTML Text
+  | HTML_INLINE Text
+  | CUSTOM_INLINE OnEnter OnExit
   | CODE Text
   | EMPH
   | STRONG
@@ -210,14 +216,16 @@
   case nodeType of
        #const CMARK_NODE_DOCUMENT
          -> return DOCUMENT
-       #const CMARK_NODE_HRULE
-         -> return HRULE
+       #const CMARK_NODE_THEMATIC_BREAK
+         -> return THEMATIC_BREAK
        #const CMARK_NODE_PARAGRAPH
          -> return PARAGRAPH
        #const CMARK_NODE_BLOCK_QUOTE
          -> return BLOCK_QUOTE
-       #const CMARK_NODE_HTML
-         -> HTML <$> literal
+       #const CMARK_NODE_HTML_BLOCK
+         -> HTML_BLOCK <$> literal
+       #const CMARK_NODE_CUSTOM_BLOCK
+         -> CUSTOM_BLOCK <$> onEnter <*> onExit
        #const CMARK_NODE_CODE_BLOCK
          -> CODE_BLOCK <$> info
                        <*> literal
@@ -225,8 +233,8 @@
          -> LIST <$> listAttr
        #const CMARK_NODE_ITEM
          -> return ITEM
-       #const CMARK_NODE_HEADER
-         -> HEADER <$> level
+       #const CMARK_NODE_HEADING
+         -> HEADING <$> level
        #const CMARK_NODE_EMPH
          -> return EMPH
        #const CMARK_NODE_STRONG
@@ -239,15 +247,19 @@
          -> TEXT <$> literal
        #const CMARK_NODE_CODE
          -> CODE <$> literal
-       #const CMARK_NODE_INLINE_HTML
-         -> INLINE_HTML <$> literal
+       #const CMARK_NODE_HTML_INLINE
+         -> HTML_INLINE <$> literal
+       #const CMARK_NODE_CUSTOM_INLINE
+         -> CUSTOM_INLINE <$> onEnter <*> onExit
        #const CMARK_NODE_SOFTBREAK
          -> return SOFTBREAK
        #const CMARK_NODE_LINEBREAK
          -> return LINEBREAK
        _ -> error "Unknown node type"
   where literal   = c_cmark_node_get_literal ptr >>= totext
-        level     = c_cmark_node_get_header_level ptr
+        level     = c_cmark_node_get_heading_level ptr
+        onEnter    = c_cmark_node_get_on_enter ptr >>= totext
+        onExit     = c_cmark_node_get_on_exit  ptr >>= totext
         listAttr  = do
           listtype <- c_cmark_node_get_list_type ptr
           listdelim <- c_cmark_node_get_list_delim ptr
@@ -300,13 +312,18 @@
 fromNode (Node _ nodeType children) = do
   node <- case nodeType of
             DOCUMENT    -> c_cmark_node_new (#const CMARK_NODE_DOCUMENT)
-            HRULE       -> c_cmark_node_new (#const CMARK_NODE_HRULE)
+            THEMATIC_BREAK -> c_cmark_node_new (#const CMARK_NODE_THEMATIC_BREAK)
             PARAGRAPH   -> c_cmark_node_new (#const CMARK_NODE_PARAGRAPH)
             BLOCK_QUOTE -> c_cmark_node_new (#const CMARK_NODE_BLOCK_QUOTE)
-            HTML literal -> do
-                     n <- c_cmark_node_new (#const CMARK_NODE_HTML)
+            HTML_BLOCK literal -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_HTML_BLOCK)
                      c_cmark_node_set_literal n =<< fromtext literal
                      return n
+            CUSTOM_BLOCK onEnter onExit -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_CUSTOM_BLOCK)
+                     c_cmark_node_set_on_enter n =<< fromtext onEnter
+                     c_cmark_node_set_on_exit  n =<< fromtext onExit
+                     return n
             CODE_BLOCK info literal -> do
                      n <- c_cmark_node_new (#const CMARK_NODE_CODE_BLOCK)
                      c_cmark_node_set_literal n =<< fromtext literal
@@ -324,9 +341,9 @@
                      c_cmark_node_set_list_start n $ listStart attr
                      return n
             ITEM        -> c_cmark_node_new (#const CMARK_NODE_ITEM)
-            HEADER lev  -> do
-                     n <- c_cmark_node_new (#const CMARK_NODE_HEADER)
-                     c_cmark_node_set_header_level n lev
+            HEADING lev  -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_HEADING)
+                     c_cmark_node_set_heading_level n lev
                      return n
             EMPH        -> c_cmark_node_new (#const CMARK_NODE_EMPH)
             STRONG      -> c_cmark_node_new (#const CMARK_NODE_STRONG)
@@ -348,10 +365,15 @@
                      n <- c_cmark_node_new (#const CMARK_NODE_CODE)
                      c_cmark_node_set_literal n =<< fromtext literal
                      return n
-            INLINE_HTML literal -> do
-                     n <- c_cmark_node_new (#const CMARK_NODE_INLINE_HTML)
+            HTML_INLINE literal -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_HTML_INLINE)
                      c_cmark_node_set_literal n =<< fromtext literal
                      return n
+            CUSTOM_INLINE onEnter onExit -> do
+                     n <- c_cmark_node_new (#const CMARK_NODE_CUSTOM_INLINE)
+                     c_cmark_node_set_on_enter n =<< fromtext onEnter
+                     c_cmark_node_set_on_exit  n =<< fromtext onExit
+                     return n
             SOFTBREAK   -> c_cmark_node_new (#const CMARK_NODE_SOFTBREAK)
             LINEBREAK   -> c_cmark_node_new (#const CMARK_NODE_LINEBREAK)
   mapM_ (\child -> fromNode child >>= c_cmark_node_append_child node) children
@@ -407,8 +429,8 @@
 foreign import ccall "cmark.h cmark_node_get_title"
     c_cmark_node_get_title :: NodePtr -> IO CString
 
-foreign import ccall "cmark.h cmark_node_get_header_level"
-    c_cmark_node_get_header_level :: NodePtr -> IO Int
+foreign import ccall "cmark.h cmark_node_get_heading_level"
+    c_cmark_node_get_heading_level :: NodePtr -> IO Int
 
 foreign import ccall "cmark.h cmark_node_get_list_type"
     c_cmark_node_get_list_type :: NodePtr -> IO Int
@@ -437,6 +459,12 @@
 foreign import ccall "cmark.h cmark_node_get_end_column"
     c_cmark_node_get_end_column :: NodePtr -> IO Int
 
+foreign import ccall "cmark.h cmark_node_get_on_enter"
+    c_cmark_node_get_on_enter :: NodePtr -> IO CString
+
+foreign import ccall "cmark.h cmark_node_get_on_exit"
+    c_cmark_node_get_on_exit :: NodePtr -> IO CString
+
 foreign import ccall "cmark.h cmark_node_append_child"
     c_cmark_node_append_child :: NodePtr -> NodePtr -> IO Int
 
@@ -449,8 +477,8 @@
 foreign import ccall "cmark.h cmark_node_set_title"
     c_cmark_node_set_title :: NodePtr -> CString -> IO Int
 
-foreign import ccall "cmark.h cmark_node_set_header_level"
-    c_cmark_node_set_header_level :: NodePtr -> Int -> IO Int
+foreign import ccall "cmark.h cmark_node_set_heading_level"
+    c_cmark_node_set_heading_level :: NodePtr -> Int -> IO Int
 
 foreign import ccall "cmark.h cmark_node_set_list_type"
     c_cmark_node_set_list_type :: NodePtr -> Int -> IO Int
@@ -466,6 +494,12 @@
 
 foreign import ccall "cmark.h cmark_node_set_fence_info"
     c_cmark_node_set_fence_info :: NodePtr -> CString -> IO Int
+
+foreign import ccall "cmark.h cmark_node_set_on_enter"
+    c_cmark_node_set_on_enter :: NodePtr -> CString -> IO Int
+
+foreign import ccall "cmark.h cmark_node_set_on_exit"
+    c_cmark_node_set_on_exit :: NodePtr -> CString -> IO Int
 
 foreign import ccall "cmark.h &cmark_node_free"
     c_cmark_node_free :: FunPtr (NodePtr -> IO ())
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -3,8 +3,8 @@
 
 This package provides Haskell bindings for [libcmark], the reference
 parser for [CommonMark], a fully specified variant of Markdown.
-It includes sources for [libcmark] (version 0.22.0, implementing
-version 0.22 of the spec) and does not require prior installation of
+It includes sources for [libcmark] (version 0.23.0, implementing
+version 0.23 of the spec) and does not require prior installation of
 the C library.
 
 cmark provides the following advantages over existing Markdown
@@ -30,7 +30,7 @@
     halt.)  [libcmark] has been extensively fuzz-tested.
 
   - **Accuracy:**  cmark passes the CommonMark spec's suite of over
-    500 conformance tests.
+    600 conformance tests.
 
   - **Standardization:**  Since there is a spec and a comprehensive suite
     of tests, we can have a high degree of confidence that any two
diff --git a/cbits/bench.h b/cbits/bench.h
deleted file mode 100644
--- a/cbits/bench.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef CMARK_BENCH_H
-#define CMARK_BENCH_H
-
-#include <stdio.h>
-#include <time.h>
-
-#ifdef TIMER
-float _cmark_start_time;
-float _cmark_end_time;
-float _cmark_save_time;
-
-#define start_timer()                                                          \
-  _cmark_save_time = _cmark_start_time;                                        \
-  _cmark_start_time = (float)clock() / CLOCKS_PER_SEC
-
-#define end_timer(M)                                                           \
-  _cmark_end_time = (float)clock() / CLOCKS_PER_SEC;                           \
-  fprintf(stderr, "[TIME] (%s:%d) %4.f ns " M "\n", __FILE__, __LINE__,        \
-          (_cmark_end_time - _cmark_start_time) * 1000000);                    \
-  _cmark_start_time = _cmark_save_time;
-
-#else
-#define start_timer()
-#define end_timer(M)
-#endif
-
-#endif
diff --git a/cbits/blocks.c b/cbits/blocks.c
--- a/cbits/blocks.c
+++ b/cbits/blocks.c
@@ -48,7 +48,7 @@
 
 // Create a root document node.
 static cmark_node *make_document() {
-  cmark_node *e = make_block(NODE_DOCUMENT, 1, 1);
+  cmark_node *e = make_block(CMARK_NODE_DOCUMENT, 1, 1);
   return e;
 }
 
@@ -112,14 +112,16 @@
 
 static inline bool can_contain(cmark_node_type parent_type,
                                cmark_node_type child_type) {
-  return (parent_type == NODE_DOCUMENT || parent_type == NODE_BLOCK_QUOTE ||
-          parent_type == NODE_ITEM ||
-          (parent_type == NODE_LIST && child_type == NODE_ITEM));
+  return (parent_type == CMARK_NODE_DOCUMENT ||
+          parent_type == CMARK_NODE_BLOCK_QUOTE ||
+          parent_type == CMARK_NODE_ITEM ||
+          (parent_type == CMARK_NODE_LIST && child_type == CMARK_NODE_ITEM));
 }
 
 static inline bool accepts_lines(cmark_node_type block_type) {
-  return (block_type == NODE_PARAGRAPH || block_type == NODE_HEADER ||
-          block_type == NODE_CODE_BLOCK);
+  return (block_type == CMARK_NODE_PARAGRAPH ||
+          block_type == CMARK_NODE_HEADING ||
+          block_type == CMARK_NODE_CODE_BLOCK);
 }
 
 static void add_line(cmark_node *node, cmark_chunk *ch, bufsize_t offset) {
@@ -162,7 +164,7 @@
     if (cur->last_line_blank) {
       return true;
     }
-    if (cur->type == NODE_LIST || cur->type == NODE_ITEM) {
+    if (cur->type == CMARK_NODE_LIST || cur->type == CMARK_NODE_ITEM) {
       cur = cur->last_child;
     } else {
       cur = NULL;
@@ -176,7 +178,7 @@
   cmark_node *container = *bptr;
   cmark_node *b = parser->root;
   // find first containing NODE_LIST:
-  while (b && b->type != NODE_LIST) {
+  while (b && b->type != CMARK_NODE_LIST) {
     b = b->last_child;
   }
   if (b) {
@@ -204,9 +206,9 @@
     // end of input - line number has not been incremented
     b->end_line = parser->line_number;
     b->end_column = parser->last_line_length;
-  } else if (b->type == NODE_DOCUMENT ||
-             (b->type == NODE_CODE_BLOCK && b->as.code.fenced) ||
-             (b->type == NODE_HEADER && b->as.header.setext)) {
+  } else if (b->type == CMARK_NODE_DOCUMENT ||
+             (b->type == CMARK_NODE_CODE_BLOCK && b->as.code.fenced) ||
+             (b->type == CMARK_NODE_HEADING && b->as.heading.setext)) {
     b->end_line = parser->line_number;
     b->end_column = parser->curline->size;
     if (b->end_column && parser->curline->ptr[b->end_column - 1] == '\n')
@@ -219,7 +221,7 @@
   }
 
   switch (b->type) {
-  case NODE_PARAGRAPH:
+  case CMARK_NODE_PARAGRAPH:
     while (cmark_strbuf_at(&b->string_content, 0) == '[' &&
            (pos = cmark_parse_reference_inline(&b->string_content,
                                                parser->refmap))) {
@@ -232,7 +234,7 @@
     }
     break;
 
-  case NODE_CODE_BLOCK:
+  case CMARK_NODE_CODE_BLOCK:
     if (!b->as.code.fenced) { // indented code
       remove_trailing_blank_lines(&b->string_content);
       cmark_strbuf_putc(&b->string_content, '\n');
@@ -260,11 +262,11 @@
     b->as.code.literal = cmark_chunk_buf_detach(&b->string_content);
     break;
 
-  case NODE_HTML:
+  case CMARK_NODE_HTML_BLOCK:
     b->as.literal = cmark_chunk_buf_detach(&b->string_content);
     break;
 
-  case NODE_LIST:            // determine tight/loose status
+  case CMARK_NODE_LIST:      // determine tight/loose status
     b->as.list.tight = true; // tight by default
     item = b->first_child;
 
@@ -334,7 +336,8 @@
   while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
     cur = cmark_iter_get_node(iter);
     if (ev_type == CMARK_EVENT_ENTER) {
-      if (cur->type == NODE_PARAGRAPH || cur->type == NODE_HEADER) {
+      if (cur->type == CMARK_NODE_PARAGRAPH ||
+          cur->type == CMARK_NODE_HEADING) {
         cmark_parse_inlines(cur, refmap, options);
       }
     }
@@ -569,7 +572,7 @@
   int chars_to_tab;
   while (count > 0 && (c = peek_at(input, parser->offset))) {
     if (c == '\t') {
-      chars_to_tab = 4 - (parser->column % TAB_STOP);
+      chars_to_tab = TAB_STOP - (parser->column % TAB_STOP);
       parser->column += chars_to_tab;
       parser->offset += 1;
       count -= (columns ? chars_to_tab : 1);
@@ -601,7 +604,7 @@
   }
   // ensure line ends with a newline:
   if (bytes == 0 || !S_is_line_end_char(parser->curline->ptr[bytes - 1])) {
-	  cmark_strbuf_putc(parser->curline, '\n');
+    cmark_strbuf_putc(parser->curline, '\n');
   }
   parser->offset = 0;
   parser->column = 0;
@@ -623,7 +626,7 @@
 
     S_find_first_nonspace(parser, &input);
 
-    if (container->type == NODE_BLOCK_QUOTE) {
+    if (container->type == CMARK_NODE_BLOCK_QUOTE) {
       matched =
           parser->indent <= 3 && peek_at(&input, parser->first_nonspace) == '>';
       if (matched) {
@@ -634,7 +637,7 @@
         all_matched = false;
       }
 
-    } else if (container->type == NODE_ITEM) {
+    } else if (container->type == CMARK_NODE_ITEM) {
       if (parser->indent >=
           container->as.list.marker_offset + container->as.list.padding) {
         S_advance_offset(parser, &input, container->as.list.marker_offset +
@@ -650,7 +653,7 @@
         all_matched = false;
       }
 
-    } else if (container->type == NODE_CODE_BLOCK) {
+    } else if (container->type == CMARK_NODE_CODE_BLOCK) {
 
       if (!container->as.code.fenced) { // indented
         if (parser->indent >= CODE_INDENT) {
@@ -683,12 +686,12 @@
           }
         }
       }
-    } else if (container->type == NODE_HEADER) {
+    } else if (container->type == CMARK_NODE_HEADING) {
 
-      // a header can never contain more than one line
+      // a heading can never contain more than one line
       all_matched = false;
 
-    } else if (container->type == NODE_HTML) {
+    } else if (container->type == CMARK_NODE_HTML_BLOCK) {
 
       switch (container->as.html_block_type) {
       case 1:
@@ -710,7 +713,7 @@
         exit(1);
       }
 
-    } else if (container->type == NODE_PARAGRAPH) {
+    } else if (container->type == CMARK_NODE_PARAGRAPH) {
 
       if (parser->blank) {
         all_matched = false;
@@ -730,9 +733,10 @@
     break_out_of_lists(parser, &container);
   }
 
-  maybe_lazy = parser->current->type == NODE_PARAGRAPH;
+  maybe_lazy = parser->current->type == CMARK_NODE_PARAGRAPH;
   // try new container starts:
-  while (container->type != NODE_CODE_BLOCK && container->type != NODE_HTML) {
+  while (container->type != CMARK_NODE_CODE_BLOCK &&
+         container->type != CMARK_NODE_HTML_BLOCK) {
 
     S_find_first_nonspace(parser, &input);
     indented = parser->indent >= CODE_INDENT;
@@ -744,16 +748,17 @@
       // optional following character
       if (peek_at(&input, parser->offset) == ' ')
         S_advance_offset(parser, &input, 1, false);
-      container =
-          add_child(parser, container, NODE_BLOCK_QUOTE, parser->offset + 1);
+      container = add_child(parser, container, CMARK_NODE_BLOCK_QUOTE,
+                            parser->offset + 1);
 
-    } else if (!indented && (matched = scan_atx_header_start(
+    } else if (!indented && (matched = scan_atx_heading_start(
                                  &input, parser->first_nonspace))) {
 
       S_advance_offset(parser, &input,
                        parser->first_nonspace + matched - parser->offset,
                        false);
-      container = add_child(parser, container, NODE_HEADER, parser->offset + 1);
+      container =
+          add_child(parser, container, CMARK_NODE_HEADING, parser->offset + 1);
 
       bufsize_t hashpos =
           cmark_chunk_strchr(&input, '#', parser->first_nonspace);
@@ -763,18 +768,19 @@
         level++;
         hashpos++;
       }
-      container->as.header.level = level;
-      container->as.header.setext = false;
+      container->as.heading.level = level;
+      container->as.heading.setext = false;
 
     } else if (!indented && (matched = scan_open_code_fence(
                                  &input, parser->first_nonspace))) {
 
-      container = add_child(parser, container, NODE_CODE_BLOCK,
+      container = add_child(parser, container, CMARK_NODE_CODE_BLOCK,
                             parser->first_nonspace + 1);
       container->as.code.fenced = true;
       container->as.code.fence_char = peek_at(&input, parser->first_nonspace);
       container->as.code.fence_length = matched;
-      container->as.code.fence_offset = (int8_t)(parser->first_nonspace - parser->offset);
+      container->as.code.fence_offset =
+          (int8_t)(parser->first_nonspace - parser->offset);
       container->as.code.info = cmark_chunk_literal("");
       S_advance_offset(parser, &input,
                        parser->first_nonspace + matched - parser->offset,
@@ -782,41 +788,42 @@
 
     } else if (!indented && ((matched = scan_html_block_start(
                                   &input, parser->first_nonspace)) ||
-                             (container->type != NODE_PARAGRAPH &&
+                             (container->type != CMARK_NODE_PARAGRAPH &&
                               (matched = scan_html_block_start_7(
                                    &input, parser->first_nonspace))))) {
 
-      container =
-          add_child(parser, container, NODE_HTML, parser->first_nonspace + 1);
+      container = add_child(parser, container, CMARK_NODE_HTML_BLOCK,
+                            parser->first_nonspace + 1);
       container->as.html_block_type = matched;
       // note, we don't adjust parser->offset because the tag is part of the
       // text
 
-    } else if (!indented && container->type == NODE_PARAGRAPH &&
+    } else if (!indented && container->type == CMARK_NODE_PARAGRAPH &&
                (lev =
-                    scan_setext_header_line(&input, parser->first_nonspace)) &&
+                    scan_setext_heading_line(&input, parser->first_nonspace)) &&
                // check that there is only one line in the paragraph:
                (cmark_strbuf_strrchr(
                     &container->string_content, '\n',
                     cmark_strbuf_len(&container->string_content) - 2) < 0)) {
 
-      container->type = NODE_HEADER;
-      container->as.header.level = lev;
-      container->as.header.setext = true;
+      container->type = CMARK_NODE_HEADING;
+      container->as.heading.level = lev;
+      container->as.heading.setext = true;
       S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);
 
     } else if (!indented &&
-               !(container->type == NODE_PARAGRAPH && !all_matched) &&
-               (matched = scan_hrule(&input, parser->first_nonspace))) {
+               !(container->type == CMARK_NODE_PARAGRAPH && !all_matched) &&
+               (matched =
+                    scan_thematic_break(&input, parser->first_nonspace))) {
 
-      // it's only now that we know the line is not part of a setext header:
-      container =
-          add_child(parser, container, NODE_HRULE, parser->first_nonspace + 1);
+      // it's only now that we know the line is not part of a setext heading:
+      container = add_child(parser, container, CMARK_NODE_THEMATIC_BREAK,
+                            parser->first_nonspace + 1);
       S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);
 
     } else if ((matched =
                     parse_list_marker(&input, parser->first_nonspace, &data)) &&
-               (!indented || container->type == NODE_LIST)) {
+               (!indented || container->type == CMARK_NODE_LIST)) {
       // Note that we can have new list items starting with >= 4
       // spaces indent, as long as the list container is still open.
 
@@ -845,25 +852,25 @@
 
       data->marker_offset = parser->indent;
 
-      if (container->type != NODE_LIST ||
+      if (container->type != CMARK_NODE_LIST ||
           !lists_match(&container->as.list, data)) {
-        container =
-            add_child(parser, container, NODE_LIST, parser->first_nonspace + 1);
+        container = add_child(parser, container, CMARK_NODE_LIST,
+                              parser->first_nonspace + 1);
 
         memcpy(&container->as.list, data, sizeof(*data));
       }
 
       // add the list item
-      container =
-          add_child(parser, container, NODE_ITEM, parser->first_nonspace + 1);
+      container = add_child(parser, container, CMARK_NODE_ITEM,
+                            parser->first_nonspace + 1);
       /* TODO: static */
       memcpy(&container->as.list, data, sizeof(*data));
       free(data);
 
     } else if (indented && !maybe_lazy && !parser->blank) {
       S_advance_offset(parser, &input, CODE_INDENT, true);
-      container =
-          add_child(parser, container, NODE_CODE_BLOCK, parser->offset + 1);
+      container = add_child(parser, container, CMARK_NODE_CODE_BLOCK,
+                            parser->offset + 1);
       container->as.code.fenced = false;
       container->as.code.fence_char = 0;
       container->as.code.fence_length = 0;
@@ -895,11 +902,12 @@
   // lists or breaking out of lists.  we also don't set last_line_blank
   // on an empty list item.
   container->last_line_blank =
-      (parser->blank && container->type != NODE_BLOCK_QUOTE &&
-       container->type != NODE_HEADER &&
-       container->type != NODE_HRULE &&
-       !(container->type == NODE_CODE_BLOCK && container->as.code.fenced) &&
-       !(container->type == NODE_ITEM && container->first_child == NULL &&
+      (parser->blank && container->type != CMARK_NODE_BLOCK_QUOTE &&
+       container->type != CMARK_NODE_HEADING &&
+       container->type != CMARK_NODE_THEMATIC_BREAK &&
+       !(container->type == CMARK_NODE_CODE_BLOCK &&
+         container->as.code.fenced) &&
+       !(container->type == CMARK_NODE_ITEM && container->first_child == NULL &&
          container->start_line == parser->line_number));
 
   cmark_node *cont = container;
@@ -910,7 +918,7 @@
 
   if (parser->current != last_matched_container &&
       container == last_matched_container && !parser->blank &&
-      parser->current->type == NODE_PARAGRAPH &&
+      parser->current->type == CMARK_NODE_PARAGRAPH &&
       cmark_strbuf_len(&parser->current->string_content) > 0) {
 
     add_line(parser->current, &input, parser->offset);
@@ -923,11 +931,11 @@
       assert(parser->current != NULL);
     }
 
-    if (container->type == NODE_CODE_BLOCK) {
+    if (container->type == CMARK_NODE_CODE_BLOCK) {
 
       add_line(container, &input, parser->offset);
 
-    } else if (container->type == NODE_HTML) {
+    } else if (container->type == CMARK_NODE_HTML_BLOCK) {
 
       add_line(container, &input, parser->offset);
 
@@ -974,15 +982,15 @@
 
     } else if (accepts_lines(container->type)) {
 
-      if (container->type == NODE_HEADER &&
-          container->as.header.setext == false) {
+      if (container->type == CMARK_NODE_HEADING &&
+          container->as.heading.setext == false) {
         chop_trailing_hashtags(&input);
       }
       add_line(container, &input, parser->first_nonspace);
 
     } else {
       // create paragraph container for line
-      container = add_child(parser, container, NODE_PARAGRAPH,
+      container = add_child(parser, container, CMARK_NODE_PARAGRAPH,
                             parser->first_nonspace + 1);
       add_line(container, &input, parser->first_nonspace);
     }
@@ -990,12 +998,12 @@
     parser->current = container;
   }
 finished:
-  parser->last_line_length = parser->curline->size;
+  parser->last_line_length = input.len;
   if (parser->last_line_length &&
-      parser->curline->ptr[parser->last_line_length - 1] == '\n')
+      input.data[parser->last_line_length - 1] == '\n')
     parser->last_line_length -= 1;
   if (parser->last_line_length &&
-      parser->curline->ptr[parser->last_line_length - 1] == '\r')
+      input.data[parser->last_line_length - 1] == '\r')
     parser->last_line_length -= 1;
 
   cmark_strbuf_clear(parser->curline);
diff --git a/cbits/chunk.h b/cbits/chunk.h
--- a/cbits/chunk.h
+++ b/cbits/chunk.h
@@ -48,8 +48,8 @@
   cmark_chunk_rtrim(c);
 }
 
-static CMARK_INLINE bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c,
-                                           bufsize_t offset) {
+static CMARK_INLINE bufsize_t
+    cmark_chunk_strchr(cmark_chunk *ch, int c, bufsize_t offset) {
   const unsigned char *p =
       (unsigned char *)memchr(ch->data + offset, c, ch->len - offset);
   return p ? (bufsize_t)(p - ch->data) : ch->len;
@@ -74,8 +74,7 @@
   return (char *)str;
 }
 
-static CMARK_INLINE void
-cmark_chunk_set_cstr(cmark_chunk *c, const char *str) {
+static CMARK_INLINE void cmark_chunk_set_cstr(cmark_chunk *c, const char *str) {
   if (c->alloc) {
     free(c->data);
   }
@@ -97,9 +96,8 @@
   return c;
 }
 
-static CMARK_INLINE
-cmark_chunk cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos,
-                            bufsize_t len) {
+static CMARK_INLINE cmark_chunk
+    cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos, bufsize_t len) {
   cmark_chunk c = {ch->data + pos, len, 0};
   return c;
 }
diff --git a/cbits/cmark.h b/cbits/cmark.h
--- a/cbits/cmark.h
+++ b/cbits/cmark.h
@@ -39,20 +39,22 @@
   CMARK_NODE_LIST,
   CMARK_NODE_ITEM,
   CMARK_NODE_CODE_BLOCK,
-  CMARK_NODE_HTML,
+  CMARK_NODE_HTML_BLOCK,
+  CMARK_NODE_CUSTOM_BLOCK,
   CMARK_NODE_PARAGRAPH,
-  CMARK_NODE_HEADER,
-  CMARK_NODE_HRULE,
+  CMARK_NODE_HEADING,
+  CMARK_NODE_THEMATIC_BREAK,
 
   CMARK_NODE_FIRST_BLOCK = CMARK_NODE_DOCUMENT,
-  CMARK_NODE_LAST_BLOCK = CMARK_NODE_HRULE,
+  CMARK_NODE_LAST_BLOCK = CMARK_NODE_THEMATIC_BREAK,
 
   /* Inline */
   CMARK_NODE_TEXT,
   CMARK_NODE_SOFTBREAK,
   CMARK_NODE_LINEBREAK,
   CMARK_NODE_CODE,
-  CMARK_NODE_INLINE_HTML,
+  CMARK_NODE_HTML_INLINE,
+  CMARK_NODE_CUSTOM_INLINE,
   CMARK_NODE_EMPH,
   CMARK_NODE_STRONG,
   CMARK_NODE_LINK,
@@ -62,6 +64,12 @@
   CMARK_NODE_LAST_INLINE = CMARK_NODE_IMAGE,
 } cmark_node_type;
 
+/* For backwards compatibility: */
+#define CMARK_NODE_HEADER CMARK_NODE_HEADING
+#define CMARK_NODE_HRULE CMARK_NODE_THEMATIC_BREAK
+#define CMARK_NODE_HTML CMARK_NODE_HTML_BLOCK
+#define CMARK_NODE_INLINE_HTML CMARK_NODE_HTML_INLINE
+
 typedef enum {
   CMARK_NO_LIST,
   CMARK_BULLET_LIST,
@@ -139,7 +147,7 @@
  * One natural application is an HTML renderer, where an `ENTER` event
  * outputs an open tag and an `EXIT` event outputs a close tag.
  * An iterator might also be used to transform an AST in some systematic
- * way, for example, turning all level-3 headers into regular paragraphs.
+ * way, for example, turning all level-3 headings into regular paragraphs.
  *
  *     void
  *     usage_example(cmark_node *root) {
@@ -157,14 +165,14 @@
  * Iterators will never return `EXIT` events for leaf nodes, which are nodes
  * of type:
  *
- * * CMARK_NODE_HTML
- * * CMARK_NODE_HRULE
+ * * CMARK_NODE_HTML_BLOCK
+ * * CMARK_NODE_THEMATIC_BREAK
  * * CMARK_NODE_CODE_BLOCK
  * * CMARK_NODE_TEXT
  * * CMARK_NODE_SOFTBREAK
  * * CMARK_NODE_LINEBREAK
  * * CMARK_NODE_CODE
- * * CMARK_NODE_INLINE_HTML
+ * * CMARK_NODE_HTML_INLINE
  *
  * Nodes must only be modified after an `EXIT` event, or an `ENTER` event for
  * leaf nodes.
@@ -233,7 +241,8 @@
 CMARK_EXPORT
 const char *cmark_node_get_type_string(cmark_node *node);
 
-/** Returns the string contents of 'node', or NULL if none.
+/** Returns the string contents of 'node', or an empty
+    string if none is set.
  */
 CMARK_EXPORT const char *cmark_node_get_literal(cmark_node *node);
 
@@ -242,13 +251,17 @@
  */
 CMARK_EXPORT int cmark_node_set_literal(cmark_node *node, const char *content);
 
-/** Returns the header level of 'node', or 0 if 'node' is not a header.
+/** Returns the heading level of 'node', or 0 if 'node' is not a heading.
  */
-CMARK_EXPORT int cmark_node_get_header_level(cmark_node *node);
+CMARK_EXPORT int cmark_node_get_heading_level(cmark_node *node);
 
-/** Sets the header level of 'node', returning 1 on success and 0 on error.
+/* For backwards compatibility */
+#define cmark_node_get_header_level cmark_node_get_heading_level
+#define cmark_node_set_header_level cmark_node_set_heading_level
+
+/** Sets the heading level of 'node', returning 1 on success and 0 on error.
  */
-CMARK_EXPORT int cmark_node_set_header_level(cmark_node *node, int level);
+CMARK_EXPORT int cmark_node_set_heading_level(cmark_node *node, int level);
 
 /** Returns the list type of 'node', or `CMARK_NO_LIST` if 'node'
  * is not a list.
@@ -288,7 +301,7 @@
  */
 CMARK_EXPORT int cmark_node_set_list_tight(cmark_node *node, int tight);
 
-/** Returns the info string from a fenced code block, or NULL if none.
+/** Returns the info string from a fenced code block.
  */
 CMARK_EXPORT const char *cmark_node_get_fence_info(cmark_node *node);
 
@@ -297,7 +310,8 @@
  */
 CMARK_EXPORT int cmark_node_set_fence_info(cmark_node *node, const char *info);
 
-/** Gets the URL of a link or image 'node', or NULL if none.
+/** Returns the URL of a link or image 'node', or an empty string
+    if no URL is set.
  */
 CMARK_EXPORT const char *cmark_node_get_url(cmark_node *node);
 
@@ -306,7 +320,8 @@
  */
 CMARK_EXPORT int cmark_node_set_url(cmark_node *node, const char *url);
 
-/** Gets the title of a link or image 'node', or NULL if none.
+/** Returns the title of a link or image 'node', or an empty
+    string if no title is set.
  */
 CMARK_EXPORT const char *cmark_node_get_title(cmark_node *node);
 
@@ -315,6 +330,29 @@
  */
 CMARK_EXPORT int cmark_node_set_title(cmark_node *node, const char *title);
 
+/** Returns the literal "on enter" text for a custom 'node', or
+    an empty string if no on_enter is set.
+ */
+CMARK_EXPORT const char *cmark_node_get_on_enter(cmark_node *node);
+
+/** Sets the literal text to render "on enter" for a custom 'node'.
+    Any children of the node will be rendered after this text.
+    Returns 1 on success 0 on failure.
+ */
+CMARK_EXPORT int cmark_node_set_on_enter(cmark_node *node,
+                                         const char *on_enter);
+
+/** Returns the literal "on exit" text for a custom 'node', or
+    an empty string if no on_exit is set.
+ */
+CMARK_EXPORT const char *cmark_node_get_on_exit(cmark_node *node);
+
+/** Sets the literal text to render "on exit" for a custom 'node'.
+    Any children of the node will be rendered before this text.
+    Returns 1 on success 0 on failure.
+ */
+CMARK_EXPORT int cmark_node_set_on_exit(cmark_node *node, const char *on_exit);
+
 /** Returns the line on which 'node' begins.
  */
 CMARK_EXPORT int cmark_node_get_start_line(cmark_node *node);
@@ -368,7 +406,7 @@
  *
  * Simple interface:
  *
- *     cmark_node *document = cmark_parse_document("Hello *world*", 12,
+ *     cmark_node *document = cmark_parse_document("Hello *world*", 13,
  *                                                 CMARK_OPT_DEFAULT);
  *
  * Streaming interface:
@@ -447,38 +485,50 @@
 CMARK_EXPORT
 char *cmark_render_latex(cmark_node *root, int options, int width);
 
-/** Default writer options.
+/**
+ * ## Options
  */
+
+/** Default options.
+ */
 #define CMARK_OPT_DEFAULT 0
 
+/**
+ * ### Options affecting rendering
+ */
+
 /** Include a `data-sourcepos` attribute on all block elements.
  */
-#define CMARK_OPT_SOURCEPOS 1
+#define CMARK_OPT_SOURCEPOS (1 << 1)
 
 /** Render `softbreak` elements as hard line breaks.
  */
-#define CMARK_OPT_HARDBREAKS 2
+#define CMARK_OPT_HARDBREAKS (1 << 2)
 
-/** Normalize tree by consolidating adjacent text nodes.
+/** Suppress raw HTML and unsafe links (`javascript:`, `vbscript:`,
+ * `file:`, and `data:`, except for `image/png`, `image/gif`,
+ * `image/jpeg`, or `image/webp` mime types).  Raw HTML is replaced
+ * by a placeholder HTML comment. Unsafe links are replaced by
+ * empty strings.
  */
-#define CMARK_OPT_NORMALIZE 4
+#define CMARK_OPT_SAFE (1 << 3)
 
-/** Convert straight quotes to curly, --- to em dashes, -- to en dashes.
+/**
+ * ### Options affecting parsing
  */
-#define CMARK_OPT_SMART 8
 
+/** Normalize tree by consolidating adjacent text nodes.
+ */
+#define CMARK_OPT_NORMALIZE (1 << 8)
+
 /** Validate UTF-8 in the input before parsing, replacing illegal
  * sequences with the replacement character U+FFFD.
  */
-#define CMARK_OPT_VALIDATE_UTF8 16
+#define CMARK_OPT_VALIDATE_UTF8 (1 << 9)
 
-/** Suppress raw HTML and unsafe links (`javascript:`, `vbscript:`,
- * `file:`, and `data:`, except for `image/png`, `image/gif`,
- * `image/jpeg`, or `image/webp` mime types).  Raw HTML is replaced
- * by a placeholder HTML comment. Unsafe links are replaced by
- * empty strings.
+/** Convert straight quotes to curly, --- to em dashes, -- to en dashes.
  */
-#define CMARK_OPT_SAFE 32
+#define CMARK_OPT_SMART (1 << 10)
 
 /**
  * ## Version information
@@ -513,15 +563,19 @@
 #define NODE_LIST CMARK_NODE_LIST
 #define NODE_ITEM CMARK_NODE_ITEM
 #define NODE_CODE_BLOCK CMARK_NODE_CODE_BLOCK
-#define NODE_HTML CMARK_NODE_HTML
+#define NODE_HTML_BLOCK CMARK_NODE_HTML_BLOCK
+#define NODE_CUSTOM_BLOCK CMARK_NODE_CUSTOM_BLOCK
 #define NODE_PARAGRAPH CMARK_NODE_PARAGRAPH
+#define NODE_HEADING CMARK_NODE_HEADING
 #define NODE_HEADER CMARK_NODE_HEADER
+#define NODE_THEMATIC_BREAK CMARK_NODE_THEMATIC_BREAK
 #define NODE_HRULE CMARK_NODE_HRULE
 #define NODE_TEXT CMARK_NODE_TEXT
 #define NODE_SOFTBREAK CMARK_NODE_SOFTBREAK
 #define NODE_LINEBREAK CMARK_NODE_LINEBREAK
 #define NODE_CODE CMARK_NODE_CODE
-#define NODE_INLINE_HTML CMARK_NODE_INLINE_HTML
+#define NODE_HTML_INLINE CMARK_NODE_HTML_INLINE
+#define NODE_CUSTOM_INLINE CMARK_NODE_CUSTOM_INLINE
 #define NODE_EMPH CMARK_NODE_EMPH
 #define NODE_STRONG CMARK_NODE_STRONG
 #define NODE_LINK CMARK_NODE_LINK
diff --git a/cbits/cmark_ctype.c b/cbits/cmark_ctype.c
--- a/cbits/cmark_ctype.c
+++ b/cbits/cmark_ctype.c
@@ -4,7 +4,7 @@
 
 /** 1 = space, 2 = punct, 3 = digit, 4 = alpha, 0 = other
  */
-static const int8_t cmark_ctype_class[256] = {
+static const uint8_t cmark_ctype_class[256] = {
     /*      0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f */
     /* 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 0, 0,
     /* 1 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@@ -26,17 +26,17 @@
 /**
  * Returns 1 if c is a "whitespace" character as defined by the spec.
  */
-int cmark_isspace(char c) { return cmark_ctype_class[(int8_t)c] == 1; }
+int cmark_isspace(char c) { return cmark_ctype_class[(uint8_t)c] == 1; }
 
 /**
  * Returns 1 if c is an ascii punctuation character.
  */
-int cmark_ispunct(char c) { return cmark_ctype_class[(int8_t)c] == 2; }
+int cmark_ispunct(char c) { return cmark_ctype_class[(uint8_t)c] == 2; }
 
 int cmark_isalnum(char c) {
-  int8_t result;
-  result = cmark_ctype_class[(int8_t)c];
+  uint8_t result;
+  result = cmark_ctype_class[(uint8_t)c];
   return (result == 3 || result == 4);
 }
 
-int cmark_isdigit(char c) { return cmark_ctype_class[(int8_t)c] == 3; }
+int cmark_isdigit(char c) { return cmark_ctype_class[(uint8_t)c] == 3; }
diff --git a/cbits/cmark_version.h b/cbits/cmark_version.h
--- a/cbits/cmark_version.h
+++ b/cbits/cmark_version.h
@@ -1,7 +1,7 @@
 #ifndef CMARK_VERSION_H
 #define CMARK_VERSION_H
 
-#define CMARK_VERSION ((0 << 16) | (22 << 8)  | 0)
-#define CMARK_VERSION_STRING "0.22.0"
+#define CMARK_VERSION ((0 << 16) | (23 << 8)  | 0)
+#define CMARK_VERSION_STRING "0.23.0"
 
 #endif
diff --git a/cbits/commonmark.c b/cbits/commonmark.c
--- a/cbits/commonmark.c
+++ b/cbits/commonmark.c
@@ -31,7 +31,7 @@
         (c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || c == '<' ||
          c == '>' || c == '\\' || c == '`' || c == '!' ||
          (c == '&' && isalpha(nextc)) || (c == '!' && nextc == '[') ||
-         (renderer->begin_line && (c == '-' || c == '+' || c == '=')) ||
+         (renderer->begin_content && (c == '-' || c == '+' || c == '=')) ||
          ((c == '.' || c == ')') &&
           isdigit(renderer->buffer->ptr[renderer->buffer->size - 1])))) ||
        (escape == URL && (c == '`' || c == '<' || c == '>' || isspace(c) ||
@@ -95,7 +95,7 @@
     used = used >> 1;
     i++;
   }
-  return i;
+  return (int)i;
 }
 
 static bool is_autolink(cmark_node *node) {
@@ -176,6 +176,7 @@
   case CMARK_NODE_BLOCK_QUOTE:
     if (entering) {
       LIT("> ");
+      renderer->begin_content = true;
       cmark_strbuf_puts(renderer->prefix, "> ");
     } else {
       cmark_strbuf_truncate(renderer->prefix, renderer->prefix->size - 2);
@@ -214,9 +215,11 @@
     if (entering) {
       if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {
         LIT("* ");
+        renderer->begin_content = true;
         cmark_strbuf_puts(renderer->prefix, "  ");
       } else {
         LIT(listmarker);
+        renderer->begin_content = true;
         for (i = marker_width; i--;) {
           cmark_strbuf_putc(renderer->prefix, ' ');
         }
@@ -228,12 +231,13 @@
     }
     break;
 
-  case CMARK_NODE_HEADER:
+  case CMARK_NODE_HEADING:
     if (entering) {
-      for (int i = cmark_node_get_header_level(node); i > 0; i--) {
+      for (i = cmark_node_get_heading_level(node); i > 0; i--) {
         LIT("#");
       }
       LIT(" ");
+      renderer->begin_content = true;
       renderer->no_wrap = true;
     } else {
       renderer->no_wrap = false;
@@ -279,14 +283,21 @@
     BLANKLINE();
     break;
 
-  case CMARK_NODE_HTML:
+  case CMARK_NODE_HTML_BLOCK:
     BLANKLINE();
     OUT(cmark_node_get_literal(node), false, LITERAL);
     BLANKLINE();
     break;
 
-  case CMARK_NODE_HRULE:
+  case CMARK_NODE_CUSTOM_BLOCK:
     BLANKLINE();
+    OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+        false, LITERAL);
+    BLANKLINE();
+    break;
+
+  case CMARK_NODE_THEMATIC_BREAK:
+    BLANKLINE();
     LIT("-----");
     BLANKLINE();
     break;
@@ -335,10 +346,15 @@
     }
     break;
 
-  case CMARK_NODE_INLINE_HTML:
+  case CMARK_NODE_HTML_INLINE:
     OUT(cmark_node_get_literal(node), false, LITERAL);
     break;
 
+  case CMARK_NODE_CUSTOM_INLINE:
+    OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+        false, LITERAL);
+    break;
+
   case CMARK_NODE_STRONG:
     if (entering) {
       LIT("**");
@@ -368,9 +384,9 @@
       if (entering) {
         LIT("<");
         if (strncmp(cmark_node_get_url(node), "mailto:", 7) == 0) {
-          LIT((char *)cmark_node_get_url(node) + 7);
+          LIT((const char *)cmark_node_get_url(node) + 7);
         } else {
-          LIT((char *)cmark_node_get_url(node));
+          LIT((const char *)cmark_node_get_url(node));
         }
         LIT(">");
         // return signal to skip contents of node...
diff --git a/cbits/houdini_html_u.c b/cbits/houdini_html_u.c
--- a/cbits/houdini_html_u.c
+++ b/cbits/houdini_html_u.c
@@ -9,12 +9,13 @@
 
 /* Binary tree lookup code for entities added by JGM */
 
-static unsigned char *S_lookup(int i, int low, int hi, const unsigned char *s,
-                               int len) {
+static const unsigned char *S_lookup(int i, int low, int hi,
+                                     const unsigned char *s, int len) {
   int j;
-  int cmp = strncmp((char *)s, (char *)cmark_entities[i].entity, len);
+  int cmp =
+      strncmp((const char *)s, (const char *)cmark_entities[i].entity, len);
   if (cmp == 0 && cmark_entities[i].entity[len] == 0) {
-    return (unsigned char *)cmark_entities[i].bytes;
+    return (const unsigned char *)cmark_entities[i].bytes;
   } else if (cmp < 0 && i > low) {
     j = i - ((i - low) / 2);
     if (j == i)
@@ -30,7 +31,7 @@
   }
 }
 
-static unsigned char *S_lookup_entity(const unsigned char *s, int len) {
+static const unsigned char *S_lookup_entity(const unsigned char *s, int len) {
   return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len);
 }
 
diff --git a/cbits/html.c b/cbits/html.c
--- a/cbits/html.c
+++ b/cbits/html.c
@@ -43,8 +43,8 @@
   cmark_node *parent;
   cmark_node *grandparent;
   cmark_strbuf *html = state->html;
-  char start_header[] = "<h0";
-  char end_header[] = "</h0";
+  char start_heading[] = "<h0";
+  char end_heading[] = "</h0";
   bool tight;
   char buffer[100];
 
@@ -58,7 +58,7 @@
     switch (node->type) {
     case CMARK_NODE_TEXT:
     case CMARK_NODE_CODE:
-    case CMARK_NODE_INLINE_HTML:
+    case CMARK_NODE_HTML_INLINE:
       escape_html(html, node->as.literal.data, node->as.literal.len);
       break;
 
@@ -127,16 +127,16 @@
     }
     break;
 
-  case CMARK_NODE_HEADER:
+  case CMARK_NODE_HEADING:
     if (entering) {
       cr(html);
-      start_header[2] = (char)('0' + node->as.header.level);
-      cmark_strbuf_puts(html, start_header);
+      start_heading[2] = (char)('0' + node->as.heading.level);
+      cmark_strbuf_puts(html, start_heading);
       S_render_sourcepos(node, html, options);
       cmark_strbuf_putc(html, '>');
     } else {
-      end_header[3] = (char)('0' + node->as.header.level);
-      cmark_strbuf_puts(html, end_header);
+      end_heading[3] = (char)('0' + node->as.heading.level);
+      cmark_strbuf_puts(html, end_heading);
       cmark_strbuf_puts(html, ">\n");
     }
     break;
@@ -166,7 +166,7 @@
     cmark_strbuf_puts(html, "</code></pre>\n");
     break;
 
-  case CMARK_NODE_HTML:
+  case CMARK_NODE_HTML_BLOCK:
     cr(html);
     if (options & CMARK_OPT_SAFE) {
       cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");
@@ -176,8 +176,20 @@
     cr(html);
     break;
 
-  case CMARK_NODE_HRULE:
+  case CMARK_NODE_CUSTOM_BLOCK:
     cr(html);
+    if (entering) {
+      cmark_strbuf_put(html, node->as.custom.on_enter.data,
+                       node->as.custom.on_enter.len);
+    } else {
+      cmark_strbuf_put(html, node->as.custom.on_exit.data,
+                       node->as.custom.on_exit.len);
+    }
+    cr(html);
+    break;
+
+  case CMARK_NODE_THEMATIC_BREAK:
+    cr(html);
     cmark_strbuf_puts(html, "<hr");
     S_render_sourcepos(node, html, options);
     cmark_strbuf_puts(html, " />\n");
@@ -225,11 +237,21 @@
     cmark_strbuf_puts(html, "</code>");
     break;
 
-  case CMARK_NODE_INLINE_HTML:
+  case CMARK_NODE_HTML_INLINE:
     if (options & CMARK_OPT_SAFE) {
       cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");
     } else {
       cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len);
+    }
+    break;
+
+  case CMARK_NODE_CUSTOM_INLINE:
+    if (entering) {
+      cmark_strbuf_put(html, node->as.custom.on_enter.data,
+                       node->as.custom.on_enter.len);
+    } else {
+      cmark_strbuf_put(html, node->as.custom.on_exit.data,
+                       node->as.custom.on_exit.len);
     }
     break;
 
diff --git a/cbits/inlines.c b/cbits/inlines.c
--- a/cbits/inlines.c
+++ b/cbits/inlines.c
@@ -24,7 +24,7 @@
 // Macros for creating various kinds of simple.
 #define make_str(s) make_literal(CMARK_NODE_TEXT, s)
 #define make_code(s) make_literal(CMARK_NODE_CODE, s)
-#define make_raw_html(s) make_literal(CMARK_NODE_INLINE_HTML, s)
+#define make_raw_html(s) make_literal(CMARK_NODE_HTML_INLINE, s)
 #define make_linebreak() make_simple(CMARK_NODE_LINEBREAK)
 #define make_softbreak() make_simple(CMARK_NODE_SOFTBREAK)
 #define make_emph() make_simple(CMARK_NODE_EMPH)
@@ -284,7 +284,7 @@
       before_char_pos -= 1;
     }
     len = cmark_utf8proc_iterate(subj->input.data + before_char_pos,
-                           subj->pos - before_char_pos, &before_char);
+                                 subj->pos - before_char_pos, &before_char);
     if (len == -1) {
       before_char = 10;
     }
@@ -301,7 +301,7 @@
   }
 
   len = cmark_utf8proc_iterate(subj->input.data + subj->pos,
-                         subj->input.len - subj->pos, &after_char);
+                               subj->input.len - subj->pos, &after_char);
   if (len == -1) {
     after_char = 10;
   }
@@ -309,10 +309,10 @@
                   !(cmark_utf8proc_is_punctuation(after_char) &&
                     !cmark_utf8proc_is_space(before_char) &&
                     !cmark_utf8proc_is_punctuation(before_char));
-  right_flanking =
-      numdelims > 0 && !cmark_utf8proc_is_space(before_char) &&
-      !(cmark_utf8proc_is_punctuation(before_char) &&
-        !cmark_utf8proc_is_space(after_char) && !cmark_utf8proc_is_punctuation(after_char));
+  right_flanking = numdelims > 0 && !cmark_utf8proc_is_space(before_char) &&
+                   !(cmark_utf8proc_is_punctuation(before_char) &&
+                     !cmark_utf8proc_is_space(after_char) &&
+                     !cmark_utf8proc_is_punctuation(after_char));
   if (c == '_') {
     *can_open = left_flanking &&
                 (!right_flanking || cmark_utf8proc_is_punctuation(before_char));
@@ -865,7 +865,6 @@
 
   // Next, look for a following [link label] that matches in refmap.
   // skip spaces
-  subj->pos = subj->pos + scan_spacechars(&subj->input, subj->pos);
   raw_label = cmark_chunk_literal("");
   found_label = link_label(subj, &raw_label);
   if (!found_label || raw_label.len == 0) {
@@ -944,10 +943,10 @@
   bufsize_t nlpos = subj->pos;
   // skip over cr, crlf, or lf:
   if (peek_at(subj, subj->pos) == '\r') {
-	  advance(subj);
+    advance(subj);
   }
   if (peek_at(subj, subj->pos) == '\n') {
-	  advance(subj);
+    advance(subj);
   }
   // skip spaces at beginning of line
   skip_spaces(subj);
diff --git a/cbits/iterator.c b/cbits/iterator.c
--- a/cbits/iterator.c
+++ b/cbits/iterator.c
@@ -7,10 +7,10 @@
 #include "iterator.h"
 
 static const int S_leaf_mask =
-    (1 << CMARK_NODE_HTML) | (1 << CMARK_NODE_HRULE) |
+    (1 << CMARK_NODE_HTML_BLOCK) | (1 << CMARK_NODE_THEMATIC_BREAK) |
     (1 << CMARK_NODE_CODE_BLOCK) | (1 << CMARK_NODE_TEXT) |
     (1 << CMARK_NODE_SOFTBREAK) | (1 << CMARK_NODE_LINEBREAK) |
-    (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_INLINE_HTML);
+    (1 << CMARK_NODE_CODE) | (1 << CMARK_NODE_HTML_INLINE);
 
 cmark_iter *cmark_iter_new(cmark_node *root) {
   if (root == NULL) {
diff --git a/cbits/latex.c b/cbits/latex.c
--- a/cbits/latex.c
+++ b/cbits/latex.c
@@ -142,7 +142,13 @@
   }
 }
 
-typedef enum { NO_LINK, URL_AUTOLINK, EMAIL_AUTOLINK, NORMAL_LINK } link_type;
+typedef enum {
+  NO_LINK,
+  URL_AUTOLINK,
+  EMAIL_AUTOLINK,
+  NORMAL_LINK,
+  INTERNAL_LINK
+} link_type;
 
 static link_type get_link_type(cmark_node *node) {
   size_t title_len, url_len;
@@ -158,6 +164,10 @@
   const char *url = cmark_node_get_url(node);
   cmark_chunk url_chunk = cmark_chunk_literal(url);
 
+  if (url && *url == '#') {
+    return INTERNAL_LINK;
+  }
+
   url_len = safe_strlen(url);
   if (url_len == 0 || scan_scheme(&url_chunk, 0) == 0) {
     return NO_LINK;
@@ -166,30 +176,29 @@
   const char *title = cmark_node_get_title(node);
   title_len = safe_strlen(title);
   // if it has a title, we can't treat it as an autolink:
-  if (title_len > 0) {
-    return NORMAL_LINK;
-  }
+  if (title_len == 0) {
 
-  link_text = node->first_child;
-  cmark_consolidate_text_nodes(link_text);
-  realurl = (char *)url;
-  realurllen = url_len;
-  if (strncmp(realurl, "mailto:", 7) == 0) {
-    realurl += 7;
-    realurllen -= 7;
-    isemail = true;
-  }
-  if (realurllen == link_text->as.literal.len &&
-      strncmp(realurl, (char *)link_text->as.literal.data,
-              link_text->as.literal.len) == 0) {
-    if (isemail) {
-      return EMAIL_AUTOLINK;
-    } else {
-      return URL_AUTOLINK;
+    link_text = node->first_child;
+    cmark_consolidate_text_nodes(link_text);
+    realurl = (char *)url;
+    realurllen = url_len;
+    if (strncmp(realurl, "mailto:", 7) == 0) {
+      realurl += 7;
+      realurllen -= 7;
+      isemail = true;
     }
-  } else {
-    return NORMAL_LINK;
+    if (realurllen == link_text->as.literal.len &&
+        strncmp(realurl, (char *)link_text->as.literal.data,
+                link_text->as.literal.len) == 0) {
+      if (isemail) {
+        return EMAIL_AUTOLINK;
+      } else {
+        return URL_AUTOLINK;
+      }
+    }
   }
+
+  return NORMAL_LINK;
 }
 
 static int S_get_enumlevel(cmark_node *node) {
@@ -264,9 +273,9 @@
     }
     break;
 
-  case CMARK_NODE_HEADER:
+  case CMARK_NODE_HEADING:
     if (entering) {
-      switch (cmark_node_get_header_level(node)) {
+      switch (cmark_node_get_heading_level(node)) {
       case 1:
         LIT("\\section");
         break;
@@ -300,10 +309,17 @@
     BLANKLINE();
     break;
 
-  case CMARK_NODE_HTML:
+  case CMARK_NODE_HTML_BLOCK:
     break;
 
-  case CMARK_NODE_HRULE:
+  case CMARK_NODE_CUSTOM_BLOCK:
+    CR();
+    OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+        false, LITERAL);
+    CR();
+    break;
+
+  case CMARK_NODE_THEMATIC_BREAK:
     BLANKLINE();
     LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}");
     BLANKLINE();
@@ -338,9 +354,14 @@
     LIT("}");
     break;
 
-  case CMARK_NODE_INLINE_HTML:
+  case CMARK_NODE_HTML_INLINE:
     break;
 
+  case CMARK_NODE_CUSTOM_INLINE:
+    OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+        false, LITERAL);
+    break;
+
   case CMARK_NODE_STRONG:
     if (entering) {
       LIT("\\textbf{");
@@ -374,6 +395,11 @@
       case NORMAL_LINK:
         LIT("\\href{");
         OUT(url, false, URL);
+        LIT("}{");
+        break;
+      case INTERNAL_LINK:
+        LIT("\\protect\\hyperlink{");
+        OUT(url + 1, false, URL);
         LIT("}{");
         break;
       case NO_LINK:
diff --git a/cbits/man.c b/cbits/man.c
--- a/cbits/man.c
+++ b/cbits/man.c
@@ -120,10 +120,10 @@
     }
     break;
 
-  case CMARK_NODE_HEADER:
+  case CMARK_NODE_HEADING:
     if (entering) {
       CR();
-      LIT(cmark_node_get_header_level(node) == 1 ? ".SH" : ".SS");
+      LIT(cmark_node_get_heading_level(node) == 1 ? ".SH" : ".SS");
       CR();
     } else {
       CR();
@@ -139,11 +139,18 @@
     CR();
     break;
 
-  case CMARK_NODE_HTML:
+  case CMARK_NODE_HTML_BLOCK:
     break;
 
-  case CMARK_NODE_HRULE:
+  case CMARK_NODE_CUSTOM_BLOCK:
     CR();
+    OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+        false, LITERAL);
+    CR();
+    break;
+
+  case CMARK_NODE_THEMATIC_BREAK:
+    CR();
     LIT(".PP\n  *  *  *  *  *");
     CR();
     break;
@@ -187,7 +194,12 @@
     LIT("\\f[]");
     break;
 
-  case CMARK_NODE_INLINE_HTML:
+  case CMARK_NODE_HTML_INLINE:
+    break;
+
+  case CMARK_NODE_CUSTOM_INLINE:
+    OUT(entering ? cmark_node_get_on_enter(node) : cmark_node_get_on_exit(node),
+        false, LITERAL);
     break;
 
   case CMARK_NODE_STRONG:
diff --git a/cbits/node.c b/cbits/node.c
--- a/cbits/node.c
+++ b/cbits/node.c
@@ -46,17 +46,19 @@
   case CMARK_NODE_DOCUMENT:
   case CMARK_NODE_BLOCK_QUOTE:
   case CMARK_NODE_ITEM:
+  case CMARK_NODE_CUSTOM_BLOCK:
     return S_is_block(child) && child->type != CMARK_NODE_ITEM;
 
   case CMARK_NODE_LIST:
     return child->type == CMARK_NODE_ITEM;
 
   case CMARK_NODE_PARAGRAPH:
-  case CMARK_NODE_HEADER:
+  case CMARK_NODE_HEADING:
   case CMARK_NODE_EMPH:
   case CMARK_NODE_STRONG:
   case CMARK_NODE_LINK:
   case CMARK_NODE_IMAGE:
+  case CMARK_NODE_CUSTOM_INLINE:
     return S_is_inline(child);
 
   default:
@@ -71,8 +73,8 @@
   node->type = type;
 
   switch (node->type) {
-  case CMARK_NODE_HEADER:
-    node->as.header.level = 1;
+  case CMARK_NODE_HEADING:
+    node->as.heading.level = 1;
     break;
 
   case CMARK_NODE_LIST: {
@@ -98,21 +100,26 @@
       cmark_strbuf_free(&e->string_content);
     }
     switch (e->type) {
-    case NODE_CODE_BLOCK:
+    case CMARK_NODE_CODE_BLOCK:
       cmark_chunk_free(&e->as.code.info);
       cmark_chunk_free(&e->as.code.literal);
       break;
-    case NODE_TEXT:
-    case NODE_INLINE_HTML:
-    case NODE_CODE:
-    case NODE_HTML:
+    case CMARK_NODE_TEXT:
+    case CMARK_NODE_HTML_INLINE:
+    case CMARK_NODE_CODE:
+    case CMARK_NODE_HTML_BLOCK:
       cmark_chunk_free(&e->as.literal);
       break;
-    case NODE_LINK:
-    case NODE_IMAGE:
+    case CMARK_NODE_LINK:
+    case CMARK_NODE_IMAGE:
       cmark_chunk_free(&e->as.link.url);
       cmark_chunk_free(&e->as.link.title);
       break;
+    case CMARK_NODE_CUSTOM_BLOCK:
+    case CMARK_NODE_CUSTOM_INLINE:
+      cmark_chunk_free(&e->as.custom.on_enter);
+      cmark_chunk_free(&e->as.custom.on_exit);
+      break;
     default:
       break;
     }
@@ -159,14 +166,16 @@
     return "item";
   case CMARK_NODE_CODE_BLOCK:
     return "code_block";
-  case CMARK_NODE_HTML:
-    return "html";
+  case CMARK_NODE_HTML_BLOCK:
+    return "html_block";
+  case CMARK_NODE_CUSTOM_BLOCK:
+    return "raw_block";
   case CMARK_NODE_PARAGRAPH:
     return "paragraph";
-  case CMARK_NODE_HEADER:
-    return "header";
-  case CMARK_NODE_HRULE:
-    return "hrule";
+  case CMARK_NODE_HEADING:
+    return "heading";
+  case CMARK_NODE_THEMATIC_BREAK:
+    return "thematic_break";
   case CMARK_NODE_TEXT:
     return "text";
   case CMARK_NODE_SOFTBREAK:
@@ -175,8 +184,10 @@
     return "linebreak";
   case CMARK_NODE_CODE:
     return "code";
-  case CMARK_NODE_INLINE_HTML:
-    return "inline_html";
+  case CMARK_NODE_HTML_INLINE:
+    return "html_inline";
+  case CMARK_NODE_CUSTOM_INLINE:
+    return "raw_inline";
   case CMARK_NODE_EMPH:
     return "emph";
   case CMARK_NODE_STRONG:
@@ -252,13 +263,13 @@
   }
 
   switch (node->type) {
-  case NODE_HTML:
-  case NODE_TEXT:
-  case NODE_INLINE_HTML:
-  case NODE_CODE:
+  case CMARK_NODE_HTML_BLOCK:
+  case CMARK_NODE_TEXT:
+  case CMARK_NODE_HTML_INLINE:
+  case CMARK_NODE_CODE:
     return cmark_chunk_to_cstr(&node->as.literal);
 
-  case NODE_CODE_BLOCK:
+  case CMARK_NODE_CODE_BLOCK:
     return cmark_chunk_to_cstr(&node->as.code.literal);
 
   default:
@@ -274,14 +285,14 @@
   }
 
   switch (node->type) {
-  case NODE_HTML:
-  case NODE_TEXT:
-  case NODE_INLINE_HTML:
-  case NODE_CODE:
+  case CMARK_NODE_HTML_BLOCK:
+  case CMARK_NODE_TEXT:
+  case CMARK_NODE_HTML_INLINE:
+  case CMARK_NODE_CODE:
     cmark_chunk_set_cstr(&node->as.literal, content);
     return 1;
 
-  case NODE_CODE_BLOCK:
+  case CMARK_NODE_CODE_BLOCK:
     cmark_chunk_set_cstr(&node->as.code.literal, content);
     return 1;
 
@@ -292,14 +303,14 @@
   return 0;
 }
 
-int cmark_node_get_header_level(cmark_node *node) {
+int cmark_node_get_heading_level(cmark_node *node) {
   if (node == NULL) {
     return 0;
   }
 
   switch (node->type) {
-  case CMARK_NODE_HEADER:
-    return node->as.header.level;
+  case CMARK_NODE_HEADING:
+    return node->as.heading.level;
 
   default:
     break;
@@ -308,14 +319,14 @@
   return 0;
 }
 
-int cmark_node_set_header_level(cmark_node *node, int level) {
+int cmark_node_set_heading_level(cmark_node *node, int level) {
   if (node == NULL || level < 1 || level > 6) {
     return 0;
   }
 
   switch (node->type) {
-  case CMARK_NODE_HEADER:
-    node->as.header.level = level;
+  case CMARK_NODE_HEADING:
+    node->as.heading.level = level;
     return 1;
 
   default:
@@ -438,7 +449,7 @@
     return NULL;
   }
 
-  if (node->type == NODE_CODE_BLOCK) {
+  if (node->type == CMARK_NODE_CODE_BLOCK) {
     return cmark_chunk_to_cstr(&node->as.code.info);
   } else {
     return NULL;
@@ -450,7 +461,7 @@
     return 0;
   }
 
-  if (node->type == NODE_CODE_BLOCK) {
+  if (node->type == CMARK_NODE_CODE_BLOCK) {
     cmark_chunk_set_cstr(&node->as.code.info, info);
     return 1;
   } else {
@@ -464,8 +475,8 @@
   }
 
   switch (node->type) {
-  case NODE_LINK:
-  case NODE_IMAGE:
+  case CMARK_NODE_LINK:
+  case CMARK_NODE_IMAGE:
     return cmark_chunk_to_cstr(&node->as.link.url);
   default:
     break;
@@ -480,8 +491,8 @@
   }
 
   switch (node->type) {
-  case NODE_LINK:
-  case NODE_IMAGE:
+  case CMARK_NODE_LINK:
+  case CMARK_NODE_IMAGE:
     cmark_chunk_set_cstr(&node->as.link.url, url);
     return 1;
   default:
@@ -497,8 +508,8 @@
   }
 
   switch (node->type) {
-  case NODE_LINK:
-  case NODE_IMAGE:
+  case CMARK_NODE_LINK:
+  case CMARK_NODE_IMAGE:
     return cmark_chunk_to_cstr(&node->as.link.title);
   default:
     break;
@@ -513,9 +524,75 @@
   }
 
   switch (node->type) {
-  case NODE_LINK:
-  case NODE_IMAGE:
+  case CMARK_NODE_LINK:
+  case CMARK_NODE_IMAGE:
     cmark_chunk_set_cstr(&node->as.link.title, title);
+    return 1;
+  default:
+    break;
+  }
+
+  return 0;
+}
+
+const char *cmark_node_get_on_enter(cmark_node *node) {
+  if (node == NULL) {
+    return NULL;
+  }
+
+  switch (node->type) {
+  case CMARK_NODE_CUSTOM_INLINE:
+  case CMARK_NODE_CUSTOM_BLOCK:
+    return cmark_chunk_to_cstr(&node->as.custom.on_enter);
+  default:
+    break;
+  }
+
+  return NULL;
+}
+
+int cmark_node_set_on_enter(cmark_node *node, const char *on_enter) {
+  if (node == NULL) {
+    return 0;
+  }
+
+  switch (node->type) {
+  case CMARK_NODE_CUSTOM_INLINE:
+  case CMARK_NODE_CUSTOM_BLOCK:
+    cmark_chunk_set_cstr(&node->as.custom.on_enter, on_enter);
+    return 1;
+  default:
+    break;
+  }
+
+  return 0;
+}
+
+const char *cmark_node_get_on_exit(cmark_node *node) {
+  if (node == NULL) {
+    return NULL;
+  }
+
+  switch (node->type) {
+  case CMARK_NODE_CUSTOM_INLINE:
+  case CMARK_NODE_CUSTOM_BLOCK:
+    return cmark_chunk_to_cstr(&node->as.custom.on_exit);
+  default:
+    break;
+  }
+
+  return NULL;
+}
+
+int cmark_node_set_on_exit(cmark_node *node, const char *on_exit) {
+  if (node == NULL) {
+    return 0;
+  }
+
+  switch (node->type) {
+  case CMARK_NODE_CUSTOM_INLINE:
+  case CMARK_NODE_CUSTOM_BLOCK:
+    cmark_chunk_set_cstr(&node->as.custom.on_exit, on_exit);
     return 1;
   default:
     break;
diff --git a/cbits/node.h b/cbits/node.h
--- a/cbits/node.h
+++ b/cbits/node.h
@@ -35,13 +35,18 @@
 typedef struct {
   int level;
   bool setext;
-} cmark_header;
+} cmark_heading;
 
 typedef struct {
   cmark_chunk url;
   cmark_chunk title;
 } cmark_link;
 
+typedef struct {
+  cmark_chunk on_enter;
+  cmark_chunk on_exit;
+} cmark_custom;
+
 struct cmark_node {
   struct cmark_node *next;
   struct cmark_node *prev;
@@ -67,8 +72,9 @@
     cmark_chunk literal;
     cmark_list list;
     cmark_code code;
-    cmark_header header;
+    cmark_heading heading;
     cmark_link link;
+    cmark_custom custom;
     int html_block_type;
   } as;
 };
diff --git a/cbits/render.c b/cbits/render.c
--- a/cbits/render.c
+++ b/cbits/render.c
@@ -44,6 +44,7 @@
     }
     renderer->column = 0;
     renderer->begin_line = true;
+    renderer->begin_content = true;
     renderer->need_cr -= 1;
   }
 
@@ -65,6 +66,7 @@
         cmark_strbuf_putc(renderer->buffer, ' ');
         renderer->column += 1;
         renderer->begin_line = false;
+        renderer->begin_content = false;
         renderer->last_breakable = renderer->buffer->size - 1;
         // skip following spaces
         while (source[i + 1] == ' ') {
@@ -76,13 +78,16 @@
       cmark_strbuf_putc(renderer->buffer, '\n');
       renderer->column = 0;
       renderer->begin_line = true;
+      renderer->begin_content = true;
       renderer->last_breakable = 0;
     } else if (escape == LITERAL) {
       cmark_render_code_point(renderer, c);
       renderer->begin_line = false;
+      renderer->begin_content = false;
     } else {
       (renderer->outc)(renderer, escape, c, nextc);
       renderer->begin_line = false;
+      renderer->begin_content = false;
     }
 
     // If adding the character went beyond width, look for an
@@ -104,6 +109,7 @@
       cmark_chunk_free(&remainder);
       renderer->last_breakable = 0;
       renderer->begin_line = false;
+      renderer->begin_content = false;
     }
 
     i += len;
@@ -136,7 +142,8 @@
   cmark_iter *iter = cmark_iter_new(root);
 
   cmark_renderer renderer = {&buf,  &pref, 0,    width, 0,           0,    true,
-                             false, false, outc, S_cr,  S_blankline, S_out};
+                             false, false, false,
+                             outc, S_cr,  S_blankline, S_out};
 
   while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
     cur = cmark_iter_get_node(iter);
diff --git a/cbits/render.h b/cbits/render.h
--- a/cbits/render.h
+++ b/cbits/render.h
@@ -19,6 +19,7 @@
   int need_cr;
   bufsize_t last_breakable;
   bool begin_line;
+  bool begin_content;
   bool no_wrap;
   bool in_tight_list_item;
   void (*outc)(struct cmark_renderer *, cmark_escaping, int32_t, unsigned char);
diff --git a/cbits/scanners.c b/cbits/scanners.c
--- a/cbits/scanners.c
+++ b/cbits/scanners.c
@@ -1,27839 +1,27213 @@
-/* Generated by re2c 0.14.3 */
-#include <stdlib.h>
-#include "chunk.h"
-#include "scanners.h"
-
-bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,
-                   bufsize_t offset) {
-  bufsize_t res;
-  unsigned char *ptr = (unsigned char *)c->data;
-  unsigned char lim = ptr[c->len];
-
-  ptr[c->len] = '\0';
-  res = scanner(ptr + offset);
-  ptr[c->len] = lim;
-
-  return res;
-}
-
-// Try to match a scheme including colon.
-bufsize_t _scan_scheme(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-
-    yych = *(marker = p);
-    if (yych <= 'c') {
-      if (yych <= 'M') {
-        if (yych <= 'E') {
-          if (yych <= 'A') {
-            if (yych == '\n')
-              goto yy2;
-            if (yych <= '@')
-              goto yy29;
-            goto yy6;
-          } else {
-            if (yych <= 'B')
-              goto yy24;
-            if (yych <= 'C')
-              goto yy3;
-            if (yych <= 'D')
-              goto yy4;
-            goto yy25;
-          }
-        } else {
-          if (yych <= 'I') {
-            if (yych <= 'F')
-              goto yy7;
-            if (yych <= 'G')
-              goto yy8;
-            if (yych <= 'H')
-              goto yy9;
-            goto yy10;
-          } else {
-            if (yych <= 'J')
-              goto yy5;
-            if (yych <= 'K')
-              goto yy26;
-            if (yych <= 'L')
-              goto yy11;
-            goto yy12;
-          }
-        }
-      } else {
-        if (yych <= 'U') {
-          if (yych <= 'Q') {
-            if (yych <= 'N')
-              goto yy13;
-            if (yych <= 'O')
-              goto yy14;
-            if (yych <= 'P')
-              goto yy15;
-            goto yy27;
-          } else {
-            if (yych <= 'R')
-              goto yy16;
-            if (yych <= 'S')
-              goto yy17;
-            if (yych <= 'T')
-              goto yy18;
-            goto yy19;
-          }
-        } else {
-          if (yych <= 'Y') {
-            if (yych <= 'V')
-              goto yy20;
-            if (yych <= 'W')
-              goto yy21;
-            if (yych <= 'X')
-              goto yy22;
-            goto yy28;
-          } else {
-            if (yych <= '`') {
-              if (yych <= 'Z')
-                goto yy23;
-              goto yy29;
-            } else {
-              if (yych <= 'a')
-                goto yy6;
-              if (yych <= 'b')
-                goto yy24;
-              goto yy3;
-            }
-          }
-        }
-      }
-    } else {
-      if (yych <= 't') {
-        if (yych <= 'k') {
-          if (yych <= 'g') {
-            if (yych <= 'd')
-              goto yy4;
-            if (yych <= 'e')
-              goto yy25;
-            if (yych <= 'f')
-              goto yy7;
-            goto yy8;
-          } else {
-            if (yych <= 'h')
-              goto yy9;
-            if (yych <= 'i')
-              goto yy10;
-            if (yych <= 'j')
-              goto yy5;
-            goto yy26;
-          }
-        } else {
-          if (yych <= 'o') {
-            if (yych <= 'l')
-              goto yy11;
-            if (yych <= 'm')
-              goto yy12;
-            if (yych <= 'n')
-              goto yy13;
-            goto yy14;
-          } else {
-            if (yych <= 'q') {
-              if (yych <= 'p')
-                goto yy15;
-              goto yy27;
-            } else {
-              if (yych <= 'r')
-                goto yy16;
-              if (yych <= 's')
-                goto yy17;
-              goto yy18;
-            }
-          }
-        }
-      } else {
-        if (yych <= 0xC1) {
-          if (yych <= 'x') {
-            if (yych <= 'u')
-              goto yy19;
-            if (yych <= 'v')
-              goto yy20;
-            if (yych <= 'w')
-              goto yy21;
-            goto yy22;
-          } else {
-            if (yych <= 'y')
-              goto yy28;
-            if (yych <= 'z')
-              goto yy23;
-            if (yych <= 0x7F)
-              goto yy29;
-          }
-        } else {
-          if (yych <= 0xED) {
-            if (yych <= 0xDF)
-              goto yy30;
-            if (yych <= 0xE0)
-              goto yy32;
-            if (yych <= 0xEC)
-              goto yy33;
-            goto yy37;
-          } else {
-            if (yych <= 0xF0) {
-              if (yych <= 0xEF)
-                goto yy33;
-              goto yy34;
-            } else {
-              if (yych <= 0xF3)
-                goto yy35;
-              if (yych <= 0xF4)
-                goto yy36;
-            }
-          }
-        }
-      }
-    }
-  yy2 : { return 0; }
-  yy3:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy447;
-    case 'H':
-    case 'h':
-      goto yy446;
-    case 'I':
-    case 'i':
-      goto yy449;
-    case 'O':
-    case 'o':
-      goto yy445;
-    case 'R':
-    case 'r':
-      goto yy448;
-    case 'V':
-    case 'v':
-      goto yy444;
-    default:
-      goto yy2;
-    }
-  yy4:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy420;
-    case 'I':
-    case 'i':
-      goto yy419;
-    case 'L':
-    case 'l':
-      goto yy417;
-    case 'N':
-    case 'n':
-      goto yy418;
-    case 'O':
-    case 'o':
-      goto yy421;
-    case 'T':
-    case 't':
-      goto yy416;
-    case 'V':
-    case 'v':
-      goto yy415;
-    default:
-      goto yy2;
-    }
-  yy5:
-    yych = *(marker = ++p);
-    if (yych <= 'M') {
-      if (yych == 'A')
-        goto yy407;
-      if (yych <= 'L')
-        goto yy2;
-      goto yy406;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy2;
-        goto yy407;
-      } else {
-        if (yych == 'm')
-          goto yy406;
-        goto yy2;
-      }
-    }
-  yy6:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy388;
-    case 'B':
-    case 'b':
-      goto yy387;
-    case 'C':
-    case 'c':
-      goto yy386;
-    case 'D':
-    case 'd':
-      goto yy385;
-    case 'F':
-    case 'f':
-      goto yy384;
-    case 'I':
-    case 'i':
-      goto yy383;
-    case 'P':
-    case 'p':
-      goto yy382;
-    case 'T':
-    case 't':
-      goto yy381;
-    case 'W':
-    case 'w':
-      goto yy41;
-    default:
-      goto yy2;
-    }
-  yy7:
-    yych = *(marker = ++p);
-    if (yych <= 'T') {
-      if (yych <= 'E') {
-        if (yych == 'A')
-          goto yy368;
-        if (yych <= 'D')
-          goto yy2;
-        goto yy367;
-      } else {
-        if (yych == 'I')
-          goto yy366;
-        if (yych <= 'S')
-          goto yy2;
-        goto yy369;
-      }
-    } else {
-      if (yych <= 'e') {
-        if (yych == 'a')
-          goto yy368;
-        if (yych <= 'd')
-          goto yy2;
-        goto yy367;
-      } else {
-        if (yych <= 'i') {
-          if (yych <= 'h')
-            goto yy2;
-          goto yy366;
-        } else {
-          if (yych == 't')
-            goto yy369;
-          goto yy2;
-        }
-      }
-    }
-  yy8:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'E':
-    case 'e':
-      goto yy351;
-    case 'G':
-    case 'g':
-      goto yy41;
-    case 'I':
-    case 'i':
-      goto yy349;
-    case 'O':
-    case 'o':
-      goto yy350;
-    case 'T':
-    case 't':
-      goto yy348;
-    default:
-      goto yy2;
-    }
-  yy9:
-    yych = *(marker = ++p);
-    if (yych <= 'S') {
-      if (yych <= '3') {
-        if (yych <= '2')
-          goto yy2;
-        goto yy344;
-      } else {
-        if (yych == 'C')
-          goto yy342;
-        goto yy2;
-      }
-    } else {
-      if (yych <= 'c') {
-        if (yych <= 'T')
-          goto yy343;
-        if (yych <= 'b')
-          goto yy2;
-        goto yy342;
-      } else {
-        if (yych == 't')
-          goto yy343;
-        goto yy2;
-      }
-    }
-  yy10:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy324;
-    case 'C':
-    case 'c':
-      goto yy321;
-    case 'M':
-    case 'm':
-      goto yy323;
-    case 'N':
-    case 'n':
-      goto yy322;
-    case 'P':
-    case 'p':
-      goto yy320;
-    case 'R':
-    case 'r':
-      goto yy319;
-    case 'T':
-    case 't':
-      goto yy318;
-    default:
-      goto yy2;
-    }
-  yy11:
-    yych = *(marker = ++p);
-    if (yych <= 'D') {
-      if (yych == 'A')
-        goto yy312;
-      if (yych <= 'C')
-        goto yy2;
-      goto yy311;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy2;
-        goto yy312;
-      } else {
-        if (yych == 'd')
-          goto yy311;
-        goto yy2;
-      }
-    }
-  yy12:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy278;
-    case 'E':
-    case 'e':
-      goto yy277;
-    case 'I':
-    case 'i':
-      goto yy280;
-    case 'M':
-    case 'm':
-      goto yy276;
-    case 'S':
-    case 's':
-      goto yy275;
-    case 'T':
-    case 't':
-      goto yy279;
-    case 'U':
-    case 'u':
-      goto yy274;
-    case 'V':
-    case 'v':
-      goto yy273;
-    default:
-      goto yy2;
-    }
-  yy13:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'E':
-    case 'e':
-      goto yy268;
-    case 'F':
-    case 'f':
-      goto yy267;
-    case 'I':
-    case 'i':
-      goto yy266;
-    case 'N':
-    case 'n':
-      goto yy265;
-    case 'O':
-    case 'o':
-      goto yy264;
-    default:
-      goto yy2;
-    }
-  yy14:
-    yych = *(marker = ++p);
-    if (yych <= 'P') {
-      if (yych == 'I')
-        goto yy250;
-      if (yych <= 'O')
-        goto yy2;
-      goto yy251;
-    } else {
-      if (yych <= 'i') {
-        if (yych <= 'h')
-          goto yy2;
-        goto yy250;
-      } else {
-        if (yych == 'p')
-          goto yy251;
-        goto yy2;
-      }
-    }
-  yy15:
-    yych = *(marker = ++p);
-    if (yych <= 'S') {
-      if (yych <= 'L') {
-        if (yych == 'A')
-          goto yy232;
-        if (yych <= 'K')
-          goto yy2;
-        goto yy231;
-      } else {
-        if (yych <= 'O') {
-          if (yych <= 'N')
-            goto yy2;
-          goto yy233;
-        } else {
-          if (yych <= 'Q')
-            goto yy2;
-          if (yych <= 'R')
-            goto yy230;
-          goto yy229;
-        }
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'a') {
-          if (yych <= '`')
-            goto yy2;
-          goto yy232;
-        } else {
-          if (yych == 'l')
-            goto yy231;
-          goto yy2;
-        }
-      } else {
-        if (yych <= 'q') {
-          if (yych <= 'o')
-            goto yy233;
-          goto yy2;
-        } else {
-          if (yych <= 'r')
-            goto yy230;
-          if (yych <= 's')
-            goto yy229;
-          goto yy2;
-        }
-      }
-    }
-  yy16:
-    yych = *(marker = ++p);
-    if (yych <= 'T') {
-      if (yych <= 'L') {
-        if (yych == 'E')
-          goto yy219;
-        goto yy2;
-      } else {
-        if (yych <= 'M')
-          goto yy218;
-        if (yych <= 'R')
-          goto yy2;
-        if (yych <= 'S')
-          goto yy217;
-        goto yy216;
-      }
-    } else {
-      if (yych <= 'm') {
-        if (yych == 'e')
-          goto yy219;
-        if (yych <= 'l')
-          goto yy2;
-        goto yy218;
-      } else {
-        if (yych <= 'r')
-          goto yy2;
-        if (yych <= 's')
-          goto yy217;
-        if (yych <= 't')
-          goto yy216;
-        goto yy2;
-      }
-    }
-  yy17:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'E':
-    case 'e':
-      goto yy172;
-    case 'F':
-    case 'f':
-      goto yy171;
-    case 'G':
-    case 'g':
-      goto yy170;
-    case 'H':
-    case 'h':
-      goto yy175;
-    case 'I':
-    case 'i':
-      goto yy174;
-    case 'K':
-    case 'k':
-      goto yy169;
-    case 'M':
-    case 'm':
-      goto yy168;
-    case 'N':
-    case 'n':
-      goto yy173;
-    case 'O':
-    case 'o':
-      goto yy167;
-    case 'P':
-    case 'p':
-      goto yy166;
-    case 'S':
-    case 's':
-      goto yy165;
-    case 'T':
-    case 't':
-      goto yy164;
-    case 'V':
-    case 'v':
-      goto yy163;
-    default:
-      goto yy2;
-    }
-  yy18:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy139;
-    case 'E':
-    case 'e':
-      goto yy135;
-    case 'F':
-    case 'f':
-      goto yy138;
-    case 'H':
-    case 'h':
-      goto yy134;
-    case 'I':
-    case 'i':
-      goto yy136;
-    case 'N':
-    case 'n':
-      goto yy137;
-    case 'V':
-    case 'v':
-      goto yy41;
-    default:
-      goto yy2;
-    }
-  yy19:
-    yych = *(marker = ++p);
-    if (yych <= 'T') {
-      if (yych <= 'N') {
-        if (yych == 'D')
-          goto yy126;
-        if (yych <= 'M')
-          goto yy2;
-        goto yy125;
-      } else {
-        if (yych == 'R')
-          goto yy127;
-        if (yych <= 'S')
-          goto yy2;
-        goto yy124;
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych == 'd')
-          goto yy126;
-        if (yych <= 'm')
-          goto yy2;
-        goto yy125;
-      } else {
-        if (yych <= 'r') {
-          if (yych <= 'q')
-            goto yy2;
-          goto yy127;
-        } else {
-          if (yych == 't')
-            goto yy124;
-          goto yy2;
-        }
-      }
-    }
-  yy20:
-    yych = *(marker = ++p);
-    if (yych <= 'I') {
-      if (yych == 'E')
-        goto yy108;
-      if (yych <= 'H')
-        goto yy2;
-      goto yy107;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy2;
-        goto yy108;
-      } else {
-        if (yych == 'i')
-          goto yy107;
-        goto yy2;
-      }
-    }
-  yy21:
-    yych = *(marker = ++p);
-    if (yych <= 'Y') {
-      if (yych <= 'R') {
-        if (yych == 'E')
-          goto yy97;
-        goto yy2;
-      } else {
-        if (yych <= 'S')
-          goto yy98;
-        if (yych <= 'T')
-          goto yy96;
-        if (yych <= 'X')
-          goto yy2;
-        goto yy95;
-      }
-    } else {
-      if (yych <= 's') {
-        if (yych == 'e')
-          goto yy97;
-        if (yych <= 'r')
-          goto yy2;
-        goto yy98;
-      } else {
-        if (yych <= 't')
-          goto yy96;
-        if (yych == 'y')
-          goto yy95;
-        goto yy2;
-      }
-    }
-  yy22:
-    yych = *(marker = ++p);
-    if (yych <= 'R') {
-      if (yych <= 'F') {
-        if (yych == 'C')
-          goto yy74;
-        if (yych <= 'E')
-          goto yy2;
-        goto yy72;
-      } else {
-        if (yych == 'M')
-          goto yy73;
-        if (yych <= 'Q')
-          goto yy2;
-        goto yy71;
-      }
-    } else {
-      if (yych <= 'f') {
-        if (yych == 'c')
-          goto yy74;
-        if (yych <= 'e')
-          goto yy2;
-        goto yy72;
-      } else {
-        if (yych <= 'm') {
-          if (yych <= 'l')
-            goto yy2;
-          goto yy73;
-        } else {
-          if (yych == 'r')
-            goto yy71;
-          goto yy2;
-        }
-      }
-    }
-  yy23:
-    yych = *(marker = ++p);
-    if (yych == '3')
-      goto yy66;
-    goto yy2;
-  yy24:
-    yych = *(marker = ++p);
-    if (yych <= 'O') {
-      if (yych <= 'H') {
-        if (yych == 'E')
-          goto yy56;
-        goto yy2;
-      } else {
-        if (yych <= 'I')
-          goto yy55;
-        if (yych <= 'N')
-          goto yy2;
-        goto yy54;
-      }
-    } else {
-      if (yych <= 'h') {
-        if (yych == 'e')
-          goto yy56;
-        goto yy2;
-      } else {
-        if (yych <= 'i')
-          goto yy55;
-        if (yych == 'o')
-          goto yy54;
-        goto yy2;
-      }
-    }
-  yy25:
-    yych = *(marker = ++p);
-    if (yych == 'D')
-      goto yy52;
-    if (yych == 'd')
-      goto yy52;
-    goto yy2;
-  yy26:
-    yych = *(marker = ++p);
-    if (yych == 'E')
-      goto yy47;
-    if (yych == 'e')
-      goto yy47;
-    goto yy2;
-  yy27:
-    yych = *(marker = ++p);
-    if (yych == 'U')
-      goto yy44;
-    if (yych == 'u')
-      goto yy44;
-    goto yy2;
-  yy28:
-    yych = *(marker = ++p);
-    if (yych == 'M')
-      goto yy38;
-    if (yych == 'm')
-      goto yy38;
-    goto yy2;
-  yy29:
-    yych = *++p;
-    goto yy2;
-  yy30:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy31;
-    if (yych <= 0xBF)
-      goto yy29;
-  yy31:
-    p = marker;
-    goto yy2;
-  yy32:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy31;
-    if (yych <= 0xBF)
-      goto yy30;
-    goto yy31;
-  yy33:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy31;
-    if (yych <= 0xBF)
-      goto yy30;
-    goto yy31;
-  yy34:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy31;
-    if (yych <= 0xBF)
-      goto yy33;
-    goto yy31;
-  yy35:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy31;
-    if (yych <= 0xBF)
-      goto yy33;
-    goto yy31;
-  yy36:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy31;
-    if (yych <= 0x8F)
-      goto yy33;
-    goto yy31;
-  yy37:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy31;
-    if (yych <= 0x9F)
-      goto yy30;
-    goto yy31;
-  yy38:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy39;
-    if (yych != 's')
-      goto yy31;
-  yy39:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy40;
-    if (yych != 'g')
-      goto yy31;
-  yy40:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy41;
-    if (yych != 'r')
-      goto yy31;
-  yy41:
-    yych = *++p;
-    if (yych != ':')
-      goto yy31;
-  yy42:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy44:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy45;
-    if (yych != 'e')
-      goto yy31;
-  yy45:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy46;
-    if (yych != 'r')
-      goto yy31;
-  yy46:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy41;
-    if (yych == 'y')
-      goto yy41;
-    goto yy31;
-  yy47:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy48;
-    if (yych != 'y')
-      goto yy31;
-  yy48:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy49;
-    if (yych != 'p')
-      goto yy31;
-  yy49:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy50;
-    if (yych != 'a')
-      goto yy31;
-  yy50:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy51;
-    if (yych != 'r')
-      goto yy31;
-  yy51:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy41;
-    if (yych == 'c')
-      goto yy41;
-    goto yy31;
-  yy52:
-    yych = *++p;
-    if (yych != '2')
-      goto yy31;
-    yych = *++p;
-    if (yych == 'K')
-      goto yy41;
-    if (yych == 'k')
-      goto yy41;
-    goto yy31;
-  yy54:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy65;
-    if (yych == 'l')
-      goto yy65;
-    goto yy31;
-  yy55:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy61;
-    if (yych == 't')
-      goto yy61;
-    goto yy31;
-  yy56:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy57;
-    if (yych != 's')
-      goto yy31;
-  yy57:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy58;
-    if (yych != 'h')
-      goto yy31;
-  yy58:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy59;
-    if (yych != 'a')
-      goto yy31;
-  yy59:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy60;
-    if (yych != 'r')
-      goto yy31;
-  yy60:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy61:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy62;
-    if (yych != 'c')
-      goto yy31;
-  yy62:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy63;
-    if (yych != 'o')
-      goto yy31;
-  yy63:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy64;
-    if (yych != 'i')
-      goto yy31;
-  yy64:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy65:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy41;
-    if (yych == 'o')
-      goto yy41;
-    goto yy31;
-  yy66:
-    yych = *++p;
-    if (yych != '9')
-      goto yy31;
-    yych = *++p;
-    if (yych != '.')
-      goto yy31;
-    yych = *++p;
-    if (yych != '5')
-      goto yy31;
-    yych = *++p;
-    if (yych != '0')
-      goto yy31;
-    yych = *++p;
-    if (yych <= 'Q')
-      goto yy31;
-    if (yych <= 'S')
-      goto yy41;
-    if (yych <= 'q')
-      goto yy31;
-    if (yych <= 's')
-      goto yy41;
-    goto yy31;
-  yy71:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy41;
-    if (yych == 'i')
-      goto yy41;
-    goto yy31;
-  yy72:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy93;
-    if (yych == 'i')
-      goto yy93;
-    goto yy31;
-  yy73:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'L')
-        goto yy83;
-      if (yych <= 'O')
-        goto yy31;
-      goto yy84;
-    } else {
-      if (yych <= 'l') {
-        if (yych <= 'k')
-          goto yy31;
-        goto yy83;
-      } else {
-        if (yych == 'p')
-          goto yy84;
-        goto yy31;
-      }
-    }
-  yy74:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy75;
-    if (yych != 'o')
-      goto yy31;
-  yy75:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy76;
-    if (yych != 'n')
-      goto yy31;
-  yy76:
-    yych = *++p;
-    if (yych == '-')
-      goto yy77;
-    if (yych == ':')
-      goto yy42;
-    goto yy31;
-  yy77:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy78;
-    if (yych != 'u')
-      goto yy31;
-  yy78:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy79;
-    if (yych != 's')
-      goto yy31;
-  yy79:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy80;
-    if (yych != 'e')
-      goto yy31;
-  yy80:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy81;
-    if (yych != 'r')
-      goto yy31;
-  yy81:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy82;
-    if (yych != 'i')
-      goto yy31;
-  yy82:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy41;
-    if (yych == 'd')
-      goto yy41;
-    goto yy31;
-  yy83:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy85;
-    if (yych == 'r')
-      goto yy85;
-    goto yy31;
-  yy84:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy85:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy86;
-    if (yych != 'p')
-      goto yy31;
-  yy86:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy87;
-    if (yych != 'c')
-      goto yy31;
-  yy87:
-    yych = *++p;
-    if (yych != '.')
-      goto yy31;
-    yych = *++p;
-    if (yych == 'B')
-      goto yy89;
-    if (yych != 'b')
-      goto yy31;
-  yy89:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy90;
-    if (yych != 'e')
-      goto yy31;
-  yy90:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy91;
-    if (yych != 'e')
-      goto yy31;
-  yy91:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy92;
-    if (yych != 'p')
-      goto yy31;
-  yy92:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy93:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy94;
-    if (yych != 'r')
-      goto yy31;
-  yy94:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy95:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy103;
-    if (yych == 'c')
-      goto yy103;
-    goto yy31;
-  yy96:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy102;
-    if (yych == 'a')
-      goto yy102;
-    goto yy31;
-  yy97:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy99;
-    if (yych == 'b')
-      goto yy99;
-    goto yy31;
-  yy98:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy99:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy100;
-    if (yych != 'c')
-      goto yy31;
-  yy100:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy101;
-    if (yych != 'a')
-      goto yy31;
-  yy101:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy41;
-    if (yych == 'l')
-      goto yy41;
-    goto yy31;
-  yy102:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy41;
-    if (yych == 'i')
-      goto yy41;
-    goto yy31;
-  yy103:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy104;
-    if (yych != 'i')
-      goto yy31;
-  yy104:
-    yych = *++p;
-    if (yych == 'W')
-      goto yy105;
-    if (yych != 'w')
-      goto yy31;
-  yy105:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy106;
-    if (yych != 'y')
-      goto yy31;
-  yy106:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy41;
-    if (yych == 'g')
-      goto yy41;
-    goto yy31;
-  yy107:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy116;
-    if (yych == 'e')
-      goto yy116;
-    goto yy31;
-  yy108:
-    yych = *++p;
-    if (yych <= 'N') {
-      if (yych <= 'L')
-        goto yy31;
-      if (yych >= 'N')
-        goto yy110;
-    } else {
-      if (yych <= 'l')
-        goto yy31;
-      if (yych <= 'm')
-        goto yy109;
-      if (yych <= 'n')
-        goto yy110;
-      goto yy31;
-    }
-  yy109:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy115;
-    if (yych == 'm')
-      goto yy115;
-    goto yy31;
-  yy110:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy111;
-    if (yych != 't')
-      goto yy31;
-  yy111:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy112;
-    if (yych != 'r')
-      goto yy31;
-  yy112:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy113;
-    if (yych != 'i')
-      goto yy31;
-  yy113:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy114;
-    if (yych != 'l')
-      goto yy31;
-  yy114:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy41;
-    if (yych == 'o')
-      goto yy41;
-    goto yy31;
-  yy115:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy41;
-    if (yych == 'i')
-      goto yy41;
-    goto yy31;
-  yy116:
-    yych = *++p;
-    if (yych == 'W')
-      goto yy117;
-    if (yych != 'w')
-      goto yy31;
-  yy117:
-    yych = *++p;
-    if (yych != '-')
-      goto yy31;
-    yych = *++p;
-    if (yych == 'S')
-      goto yy119;
-    if (yych != 's')
-      goto yy31;
-  yy119:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy120;
-    if (yych != 'o')
-      goto yy31;
-  yy120:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy121;
-    if (yych != 'u')
-      goto yy31;
-  yy121:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy122;
-    if (yych != 'r')
-      goto yy31;
-  yy122:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy123;
-    if (yych != 'c')
-      goto yy31;
-  yy123:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy124:
-    yych = *++p;
-    if (yych == '2')
-      goto yy131;
-    goto yy31;
-  yy125:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy128;
-    if (yych == 'r')
-      goto yy128;
-    goto yy31;
-  yy126:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy127:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy128:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy129;
-    if (yych != 'e')
-      goto yy31;
-  yy129:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy130;
-    if (yych != 'a')
-      goto yy31;
-  yy130:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy41;
-    if (yych == 'l')
-      goto yy41;
-    goto yy31;
-  yy131:
-    yych = *++p;
-    if (yych != '0')
-      goto yy31;
-    yych = *++p;
-    if (yych != '0')
-      goto yy31;
-    yych = *++p;
-    if (yych == '4')
-      goto yy41;
-    goto yy31;
-  yy134:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy153;
-    if (yych == 'i')
-      goto yy153;
-    goto yy31;
-  yy135:
-    yych = *++p;
-    if (yych <= 'L') {
-      if (yych == 'A')
-        goto yy145;
-      if (yych <= 'K')
-        goto yy31;
-      goto yy144;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy31;
-        goto yy145;
-      } else {
-        if (yych == 'l')
-          goto yy144;
-        goto yy31;
-      }
-    }
-  yy136:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy137:
-    yych = *++p;
-    if (yych == '3')
-      goto yy141;
-    goto yy31;
-  yy138:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy140;
-    if (yych == 't')
-      goto yy140;
-    goto yy31;
-  yy139:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy41;
-    if (yych == 'g')
-      goto yy41;
-    goto yy31;
-  yy140:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy141:
-    yych = *++p;
-    if (yych != '2')
-      goto yy31;
-    yych = *++p;
-    if (yych != '7')
-      goto yy31;
-    yych = *++p;
-    if (yych == '0')
-      goto yy41;
-    goto yy31;
-  yy144:
-    yych = *++p;
-    if (yych <= 'M') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'N')
-        goto yy151;
-      if (yych == 'n')
-        goto yy151;
-      goto yy31;
-    }
-  yy145:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy146;
-    if (yych != 'm')
-      goto yy31;
-  yy146:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy147;
-    if (yych != 's')
-      goto yy31;
-  yy147:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy148;
-    if (yych != 'p')
-      goto yy31;
-  yy148:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy149;
-    if (yych != 'e')
-      goto yy31;
-  yy149:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy150;
-    if (yych != 'a')
-      goto yy31;
-  yy150:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy41;
-    if (yych == 'k')
-      goto yy41;
-    goto yy31;
-  yy151:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy152;
-    if (yych != 'e')
-      goto yy31;
-  yy152:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy153:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'N')
-        goto yy154;
-      if (yych <= 'R')
-        goto yy31;
-      goto yy155;
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'm')
-          goto yy31;
-      } else {
-        if (yych == 's')
-          goto yy155;
-        goto yy31;
-      }
-    }
-  yy154:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy162;
-    if (yych == 'g')
-      goto yy162;
-    goto yy31;
-  yy155:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy156;
-    if (yych != 'm')
-      goto yy31;
-  yy156:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy157;
-    if (yych != 'e')
-      goto yy31;
-  yy157:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy158;
-    if (yych != 's')
-      goto yy31;
-  yy158:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy159;
-    if (yych != 's')
-      goto yy31;
-  yy159:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy160;
-    if (yych != 'a')
-      goto yy31;
-  yy160:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy161;
-    if (yych != 'g')
-      goto yy31;
-  yy161:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy162:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy163:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy164:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy214;
-    if (yych == 'e')
-      goto yy214;
-    goto yy31;
-  yy165:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy41;
-    if (yych == 'h')
-      goto yy41;
-    goto yy31;
-  yy166:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy210;
-    if (yych == 'o')
-      goto yy210;
-    goto yy31;
-  yy167:
-    yych = *++p;
-    if (yych <= 'L') {
-      if (yych == 'A')
-        goto yy200;
-      if (yych <= 'K')
-        goto yy31;
-      goto yy201;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy31;
-        goto yy200;
-      } else {
-        if (yych == 'l')
-          goto yy201;
-        goto yy31;
-      }
-    }
-  yy168:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'B')
-        goto yy41;
-      if (yych <= 'R')
-        goto yy31;
-      goto yy41;
-    } else {
-      if (yych <= 'b') {
-        if (yych <= 'a')
-          goto yy31;
-        goto yy41;
-      } else {
-        if (yych == 's')
-          goto yy41;
-        goto yy31;
-      }
-    }
-  yy169:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy198;
-    if (yych == 'y')
-      goto yy198;
-    goto yy31;
-  yy170:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy171:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy197;
-    if (yych == 't')
-      goto yy197;
-    goto yy31;
-  yy172:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych <= 'C') {
-        if (yych <= 'B')
-          goto yy31;
-        goto yy184;
-      } else {
-        if (yych <= 'Q')
-          goto yy31;
-        if (yych <= 'R')
-          goto yy182;
-        goto yy183;
-      }
-    } else {
-      if (yych <= 'q') {
-        if (yych == 'c')
-          goto yy184;
-        goto yy31;
-      } else {
-        if (yych <= 'r')
-          goto yy182;
-        if (yych <= 's')
-          goto yy183;
-        goto yy31;
-      }
-    }
-  yy173:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy181;
-    if (yych == 'm')
-      goto yy181;
-    goto yy31;
-  yy174:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'E')
-        goto yy178;
-      if (yych <= 'O')
-        goto yy31;
-      goto yy179;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy31;
-        goto yy178;
-      } else {
-        if (yych == 'p')
-          goto yy179;
-        goto yy31;
-      }
-    }
-  yy175:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy176;
-    if (yych != 't')
-      goto yy31;
-  yy176:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy177;
-    if (yych != 't')
-      goto yy31;
-  yy177:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy178:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy180;
-    if (yych == 'v')
-      goto yy180;
-    goto yy31;
-  yy179:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy180:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy181:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy182:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy194;
-    if (yych == 'v')
-      goto yy194;
-    goto yy31;
-  yy183:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy191;
-    if (yych == 's')
-      goto yy191;
-    goto yy31;
-  yy184:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy185;
-    if (yych != 'o')
-      goto yy31;
-  yy185:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy186;
-    if (yych != 'n')
-      goto yy31;
-  yy186:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy187;
-    if (yych != 'd')
-      goto yy31;
-  yy187:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy188;
-    if (yych != 'l')
-      goto yy31;
-  yy188:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy189;
-    if (yych != 'i')
-      goto yy31;
-  yy189:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy190;
-    if (yych != 'f')
-      goto yy31;
-  yy190:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy191:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy192;
-    if (yych != 'i')
-      goto yy31;
-  yy192:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy193;
-    if (yych != 'o')
-      goto yy31;
-  yy193:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy194:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy195;
-    if (yych != 'i')
-      goto yy31;
-  yy195:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy196;
-    if (yych != 'c')
-      goto yy31;
-  yy196:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy197:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy198:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy199;
-    if (yych != 'p')
-      goto yy31;
-  yy199:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy200:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy204;
-    if (yych == 'p')
-      goto yy204;
-    goto yy31;
-  yy201:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy202;
-    if (yych != 'd')
-      goto yy31;
-  yy202:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy203;
-    if (yych != 'a')
-      goto yy31;
-  yy203:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy204:
-    yych = *++p;
-    if (yych != '.')
-      goto yy31;
-    yych = *++p;
-    if (yych == 'B')
-      goto yy206;
-    if (yych != 'b')
-      goto yy31;
-  yy206:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy207;
-    if (yych != 'e')
-      goto yy31;
-  yy207:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy208;
-    if (yych != 'e')
-      goto yy31;
-  yy208:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy209;
-    if (yych != 'p')
-      goto yy31;
-  yy209:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy210:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy211;
-    if (yych != 't')
-      goto yy31;
-  yy211:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy212;
-    if (yych != 'i')
-      goto yy31;
-  yy212:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy213;
-    if (yych != 'f')
-      goto yy31;
-  yy213:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy41;
-    if (yych == 'y')
-      goto yy41;
-    goto yy31;
-  yy214:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy215;
-    if (yych != 'a')
-      goto yy31;
-  yy215:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy41;
-    if (yych == 'm')
-      goto yy41;
-    goto yy31;
-  yy216:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'M')
-        goto yy228;
-      if (yych <= 'R')
-        goto yy31;
-      goto yy227;
-    } else {
-      if (yych <= 'm') {
-        if (yych <= 'l')
-          goto yy31;
-        goto yy228;
-      } else {
-        if (yych == 's')
-          goto yy227;
-        goto yy31;
-      }
-    }
-  yy217:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy225;
-    if (yych == 'y')
-      goto yy225;
-    goto yy31;
-  yy218:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy41;
-    if (yych == 'i')
-      goto yy41;
-    goto yy31;
-  yy219:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy220;
-    if (yych != 's')
-      goto yy31;
-  yy220:
-    yych = *++p;
-    if (yych <= 'N') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'O')
-        goto yy221;
-      if (yych != 'o')
-        goto yy31;
-    }
-  yy221:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy222;
-    if (yych != 'u')
-      goto yy31;
-  yy222:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy223;
-    if (yych != 'r')
-      goto yy31;
-  yy223:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy224;
-    if (yych != 'c')
-      goto yy31;
-  yy224:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy225:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy226;
-    if (yych != 'n')
-      goto yy31;
-  yy226:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy41;
-    if (yych == 'c')
-      goto yy41;
-    goto yy31;
-  yy227:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy228:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy229:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy249;
-    if (yych == 'y')
-      goto yy249;
-    goto yy31;
-  yy230:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych == 'E')
-        goto yy246;
-      if (yych <= 'N')
-        goto yy31;
-      goto yy247;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy31;
-        goto yy246;
-      } else {
-        if (yych == 'o')
-          goto yy247;
-        goto yy31;
-      }
-    }
-  yy231:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy241;
-    if (yych == 'a')
-      goto yy241;
-    goto yy31;
-  yy232:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'L')
-        goto yy234;
-      if (yych <= 'O')
-        goto yy31;
-      goto yy235;
-    } else {
-      if (yych <= 'l') {
-        if (yych <= 'k')
-          goto yy31;
-        goto yy234;
-      } else {
-        if (yych == 'p')
-          goto yy235;
-        goto yy31;
-      }
-    }
-  yy233:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy234:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy41;
-    if (yych == 'm')
-      goto yy41;
-    goto yy31;
-  yy235:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy236;
-    if (yych != 'a')
-      goto yy31;
-  yy236:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy237;
-    if (yych != 'r')
-      goto yy31;
-  yy237:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy238;
-    if (yych != 'a')
-      goto yy31;
-  yy238:
-    yych = *++p;
-    if (yych == 'Z')
-      goto yy239;
-    if (yych != 'z')
-      goto yy31;
-  yy239:
-    yych = *++p;
-    if (yych == 'Z')
-      goto yy240;
-    if (yych != 'z')
-      goto yy31;
-  yy240:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy41;
-    if (yych == 'i')
-      goto yy41;
-    goto yy31;
-  yy241:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy242;
-    if (yych != 't')
-      goto yy31;
-  yy242:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy243;
-    if (yych != 'f')
-      goto yy31;
-  yy243:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy244;
-    if (yych != 'o')
-      goto yy31;
-  yy244:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy245;
-    if (yych != 'r')
-      goto yy31;
-  yy245:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy41;
-    if (yych == 'm')
-      goto yy41;
-    goto yy31;
-  yy246:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy247:
-    yych = *++p;
-    if (yych == 'X')
-      goto yy248;
-    if (yych != 'x')
-      goto yy31;
-  yy248:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy41;
-    if (yych == 'y')
-      goto yy41;
-    goto yy31;
-  yy249:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy41;
-    if (yych == 'c')
-      goto yy41;
-    goto yy31;
-  yy250:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy41;
-    if (yych == 'd')
-      goto yy41;
-    goto yy31;
-  yy251:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy252;
-    if (yych != 'a')
-      goto yy31;
-  yy252:
-    yych = *++p;
-    if (yych == 'Q')
-      goto yy253;
-    if (yych != 'q')
-      goto yy31;
-  yy253:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy254;
-    if (yych != 'u')
-      goto yy31;
-  yy254:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy255;
-    if (yych != 'e')
-      goto yy31;
-  yy255:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy256;
-    if (yych != 'l')
-      goto yy31;
-  yy256:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy257;
-    if (yych != 'o')
-      goto yy31;
-  yy257:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy258;
-    if (yych != 'c')
-      goto yy31;
-  yy258:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy259;
-    if (yych != 'k')
-      goto yy31;
-  yy259:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy260;
-    if (yych != 't')
-      goto yy31;
-  yy260:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy261;
-    if (yych != 'o')
-      goto yy31;
-  yy261:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy262;
-    if (yych != 'k')
-      goto yy31;
-  yy262:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy263;
-    if (yych != 'e')
-      goto yy31;
-  yy263:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy264:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy271;
-    if (yych == 't')
-      goto yy271;
-    goto yy31;
-  yy265:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy270;
-    if (yych == 't')
-      goto yy270;
-    goto yy31;
-  yy266:
-    yych = *++p;
-    if (yych <= 'G') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'H')
-        goto yy41;
-      if (yych == 'h')
-        goto yy41;
-      goto yy31;
-    }
-  yy267:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy268:
-    yych = *++p;
-    if (yych == 'W')
-      goto yy269;
-    if (yych != 'w')
-      goto yy31;
-  yy269:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy270:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy271:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy272;
-    if (yych != 'e')
-      goto yy31;
-  yy272:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy273:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy274:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'M')
-        goto yy305;
-      if (yych <= 'O')
-        goto yy31;
-      goto yy304;
-    } else {
-      if (yych <= 'm') {
-        if (yych <= 'l')
-          goto yy31;
-        goto yy305;
-      } else {
-        if (yych == 'p')
-          goto yy304;
-        goto yy31;
-      }
-    }
-  yy275:
-    yych = *++p;
-    if (yych <= 'Q') {
-      if (yych <= '-') {
-        if (yych <= ',')
-          goto yy31;
-        goto yy297;
-      } else {
-        if (yych == 'N')
-          goto yy298;
-        goto yy31;
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'R')
-          goto yy296;
-        if (yych <= 'm')
-          goto yy31;
-        goto yy298;
-      } else {
-        if (yych == 'r')
-          goto yy296;
-        goto yy31;
-      }
-    }
-  yy276:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy277:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy292;
-    if (yych == 's')
-      goto yy292;
-    goto yy31;
-  yy278:
-    yych = *++p;
-    switch (yych) {
-    case 'G':
-    case 'g':
-      goto yy283;
-    case 'I':
-    case 'i':
-      goto yy282;
-    case 'P':
-    case 'p':
-      goto yy284;
-    case 'R':
-    case 'r':
-      goto yy285;
-    default:
-      goto yy31;
-    }
-  yy279:
-    yych = *++p;
-    if (yych == 'Q')
-      goto yy281;
-    if (yych == 'q')
-      goto yy281;
-    goto yy31;
-  yy280:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy41;
-    if (yych == 'd')
-      goto yy41;
-    goto yy31;
-  yy281:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy282:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy290;
-    if (yych == 'l')
-      goto yy290;
-    goto yy31;
-  yy283:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy288;
-    if (yych == 'n')
-      goto yy288;
-    goto yy31;
-  yy284:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy285:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy286;
-    if (yych != 'k')
-      goto yy31;
-  yy286:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy287;
-    if (yych != 'e')
-      goto yy31;
-  yy287:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy288:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy289;
-    if (yych != 'e')
-      goto yy31;
-  yy289:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy290:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy291;
-    if (yych != 't')
-      goto yy31;
-  yy291:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy41;
-    if (yych == 'o')
-      goto yy41;
-    goto yy31;
-  yy292:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy293;
-    if (yych != 's')
-      goto yy31;
-  yy293:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy294;
-    if (yych != 'a')
-      goto yy31;
-  yy294:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy295;
-    if (yych != 'g')
-      goto yy31;
-  yy295:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy296:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy303;
-    if (yych == 'p')
-      goto yy303;
-    goto yy31;
-  yy297:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy300;
-    if (yych == 'h')
-      goto yy300;
-    goto yy31;
-  yy298:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy299;
-    if (yych != 'i')
-      goto yy31;
-  yy299:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy41;
-    if (yych == 'm')
-      goto yy41;
-    goto yy31;
-  yy300:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy301;
-    if (yych != 'e')
-      goto yy31;
-  yy301:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy302;
-    if (yych != 'l')
-      goto yy31;
-  yy302:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy303:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy304:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy308;
-    if (yych == 'd')
-      goto yy308;
-    goto yy31;
-  yy305:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy306;
-    if (yych != 'b')
-      goto yy31;
-  yy306:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy307;
-    if (yych != 'l')
-      goto yy31;
-  yy307:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy308:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy309;
-    if (yych != 'a')
-      goto yy31;
-  yy309:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy310;
-    if (yych != 't')
-      goto yy31;
-  yy310:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy311:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy316;
-    if (yych == 'a')
-      goto yy316;
-    goto yy31;
-  yy312:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy313;
-    if (yych != 's')
-      goto yy31;
-  yy313:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy314;
-    if (yych != 't')
-      goto yy31;
-  yy314:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy315;
-    if (yych != 'f')
-      goto yy31;
-  yy315:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy41;
-    if (yych == 'm')
-      goto yy41;
-    goto yy31;
-  yy316:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy317;
-    if (yych != 'p')
-      goto yy31;
-  yy317:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy318:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy341;
-    if (yych == 'm')
-      goto yy341;
-    goto yy31;
-  yy319:
-    yych = *++p;
-    if (yych <= 'I') {
-      if (yych == 'C')
-        goto yy330;
-      if (yych <= 'H')
-        goto yy31;
-      goto yy329;
-    } else {
-      if (yych <= 'c') {
-        if (yych <= 'b')
-          goto yy31;
-        goto yy330;
-      } else {
-        if (yych == 'i')
-          goto yy329;
-        goto yy31;
-      }
-    }
-  yy320:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'N')
-        goto yy41;
-      if (yych <= 'O')
-        goto yy31;
-      goto yy41;
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'm')
-          goto yy31;
-        goto yy41;
-      } else {
-        if (yych == 'p')
-          goto yy41;
-        goto yy31;
-      }
-    }
-  yy321:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych == 'A')
-        goto yy327;
-      if (yych <= 'N')
-        goto yy31;
-      goto yy328;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy31;
-        goto yy327;
-      } else {
-        if (yych == 'o')
-          goto yy328;
-        goto yy31;
-      }
-    }
-  yy322:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy326;
-    if (yych == 'f')
-      goto yy326;
-    goto yy31;
-  yy323:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'A')
-        goto yy325;
-      if (yych == 'a')
-        goto yy325;
-      goto yy31;
-    }
-  yy324:
-    yych = *++p;
-    if (yych == 'X')
-      goto yy41;
-    if (yych == 'x')
-      goto yy41;
-    goto yy31;
-  yy325:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy326:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy41;
-    if (yych == 'o')
-      goto yy41;
-    goto yy31;
-  yy327:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy328:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy329:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy331;
-    if (yych == 's')
-      goto yy331;
-    goto yy31;
-  yy330:
-    yych = *++p;
-    if (yych <= ':') {
-      if (yych == '6')
-        goto yy41;
-      if (yych <= '9')
-        goto yy31;
-      goto yy42;
-    } else {
-      if (yych <= 'S') {
-        if (yych <= 'R')
-          goto yy31;
-        goto yy41;
-      } else {
-        if (yych == 's')
-          goto yy41;
-        goto yy31;
-      }
-    }
-  yy331:
-    yych = *++p;
-    if (yych == '.')
-      goto yy332;
-    if (yych == ':')
-      goto yy42;
-    goto yy31;
-  yy332:
-    yych = *++p;
-    if (yych <= 'X') {
-      if (yych <= 'K') {
-        if (yych == 'B')
-          goto yy335;
-        goto yy31;
-      } else {
-        if (yych <= 'L')
-          goto yy333;
-        if (yych <= 'W')
-          goto yy31;
-        goto yy334;
-      }
-    } else {
-      if (yych <= 'k') {
-        if (yych == 'b')
-          goto yy335;
-        goto yy31;
-      } else {
-        if (yych <= 'l')
-          goto yy333;
-        if (yych == 'x')
-          goto yy334;
-        goto yy31;
-      }
-    }
-  yy333:
-    yych = *++p;
-    if (yych == 'W')
-      goto yy340;
-    if (yych == 'w')
-      goto yy340;
-    goto yy31;
-  yy334:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy338;
-    if (yych == 'p')
-      goto yy338;
-    goto yy31;
-  yy335:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy336;
-    if (yych != 'e')
-      goto yy31;
-  yy336:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy337;
-    if (yych != 'e')
-      goto yy31;
-  yy337:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy338:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy339;
-    if (yych != 'c')
-      goto yy31;
-  yy339:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy340:
-    yych = *++p;
-    if (yych == 'Z')
-      goto yy41;
-    if (yych == 'z')
-      goto yy41;
-    goto yy31;
-  yy341:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy342:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy343:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy346;
-    if (yych == 't')
-      goto yy346;
-    goto yy31;
-  yy344:
-    yych = *++p;
-    if (yych != '2')
-      goto yy31;
-    yych = *++p;
-    if (yych == '3')
-      goto yy41;
-    goto yy31;
-  yy346:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy347;
-    if (yych != 'p')
-      goto yy31;
-  yy347:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy348:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy364;
-    if (yych == 'a')
-      goto yy364;
-    goto yy31;
-  yy349:
-    yych = *++p;
-    if (yych <= 'Z') {
-      if (yych == 'T')
-        goto yy41;
-      if (yych <= 'Y')
-        goto yy31;
-      goto yy355;
-    } else {
-      if (yych <= 't') {
-        if (yych <= 's')
-          goto yy31;
-        goto yy41;
-      } else {
-        if (yych == 'z')
-          goto yy355;
-        goto yy31;
-      }
-    }
-  yy350:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'P')
-        goto yy352;
-      if (yych == 'p')
-        goto yy352;
-      goto yy31;
-    }
-  yy351:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy41;
-    if (yych == 'o')
-      goto yy41;
-    goto yy31;
-  yy352:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy353;
-    if (yych != 'h')
-      goto yy31;
-  yy353:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy354;
-    if (yych != 'e')
-      goto yy31;
-  yy354:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy41;
-    if (yych == 'r')
-      goto yy41;
-    goto yy31;
-  yy355:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy356;
-    if (yych != 'm')
-      goto yy31;
-  yy356:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy357;
-    if (yych != 'o')
-      goto yy31;
-  yy357:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy358;
-    if (yych != 'p')
-      goto yy31;
-  yy358:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy359;
-    if (yych != 'r')
-      goto yy31;
-  yy359:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy360;
-    if (yych != 'o')
-      goto yy31;
-  yy360:
-    yych = *++p;
-    if (yych == 'J')
-      goto yy361;
-    if (yych != 'j')
-      goto yy31;
-  yy361:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy362;
-    if (yych != 'e')
-      goto yy31;
-  yy362:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy363;
-    if (yych != 'c')
-      goto yy31;
-  yy363:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy364:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy365;
-    if (yych != 'l')
-      goto yy31;
-  yy365:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy41;
-    if (yych == 'k')
-      goto yy41;
-    goto yy31;
-  yy366:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych <= 'M') {
-        if (yych == 'L')
-          goto yy376;
-        goto yy31;
-      } else {
-        if (yych <= 'N')
-          goto yy377;
-        if (yych <= 'R')
-          goto yy31;
-        goto yy378;
-      }
-    } else {
-      if (yych <= 'm') {
-        if (yych == 'l')
-          goto yy376;
-        goto yy31;
-      } else {
-        if (yych <= 'n')
-          goto yy377;
-        if (yych == 's')
-          goto yy378;
-        goto yy31;
-      }
-    }
-  yy367:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy375;
-    if (yych == 'e')
-      goto yy375;
-    goto yy31;
-  yy368:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy370;
-    if (yych == 'c')
-      goto yy370;
-    goto yy31;
-  yy369:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy370:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy371;
-    if (yych != 'e')
-      goto yy31;
-  yy371:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy372;
-    if (yych != 't')
-      goto yy31;
-  yy372:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy373;
-    if (yych != 'i')
-      goto yy31;
-  yy373:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy374;
-    if (yych != 'm')
-      goto yy31;
-  yy374:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy375:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy41;
-    if (yych == 'd')
-      goto yy41;
-    goto yy31;
-  yy376:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy377:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy379;
-    if (yych == 'g')
-      goto yy379;
-    goto yy31;
-  yy378:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy41;
-    if (yych == 'h')
-      goto yy41;
-    goto yy31;
-  yy379:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy380;
-    if (yych != 'e')
-      goto yy31;
-  yy380:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy41;
-    if (yych == 'r')
-      goto yy41;
-    goto yy31;
-  yy381:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy399;
-    if (yych == 't')
-      goto yy399;
-    goto yy31;
-  yy382:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy383:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy41;
-    if (yych == 'm')
-      goto yy41;
-    goto yy31;
-  yy384:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'P')
-        goto yy41;
-      if (yych <= 'R')
-        goto yy31;
-      goto yy41;
-    } else {
-      if (yych <= 'p') {
-        if (yych <= 'o')
-          goto yy31;
-        goto yy41;
-      } else {
-        if (yych == 's')
-          goto yy41;
-        goto yy31;
-      }
-    }
-  yy385:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy393;
-    if (yych == 'i')
-      goto yy393;
-    goto yy31;
-  yy386:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy392;
-    if (yych == 'a')
-      goto yy392;
-    goto yy31;
-  yy387:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy390;
-    if (yych == 'o')
-      goto yy390;
-    goto yy31;
-  yy388:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy389;
-    if (yych != 'a')
-      goto yy31;
-  yy389:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy42;
-      goto yy31;
-    } else {
-      if (yych <= 'S')
-        goto yy41;
-      if (yych == 's')
-        goto yy41;
-      goto yy31;
-    }
-  yy390:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy391;
-    if (yych != 'u')
-      goto yy31;
-  yy391:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy392:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy393:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy394;
-    if (yych != 'u')
-      goto yy31;
-  yy394:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy395;
-    if (yych != 'm')
-      goto yy31;
-  yy395:
-    yych = *++p;
-    if (yych == 'X')
-      goto yy396;
-    if (yych != 'x')
-      goto yy31;
-  yy396:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy397;
-    if (yych != 't')
-      goto yy31;
-  yy397:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy398;
-    if (yych != 'r')
-      goto yy31;
-  yy398:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy41;
-    if (yych == 'a')
-      goto yy41;
-    goto yy31;
-  yy399:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy400;
-    if (yych != 'a')
-      goto yy31;
-  yy400:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy401;
-    if (yych != 'c')
-      goto yy31;
-  yy401:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy402;
-    if (yych != 'h')
-      goto yy31;
-  yy402:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy403;
-    if (yych != 'm')
-      goto yy31;
-  yy403:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy404;
-    if (yych != 'e')
-      goto yy31;
-  yy404:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy405;
-    if (yych != 'n')
-      goto yy31;
-  yy405:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy406:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy407:
-    yych = *++p;
-    if (yych <= 'V') {
-      if (yych == 'R')
-        goto yy41;
-      if (yych <= 'U')
-        goto yy31;
-    } else {
-      if (yych <= 'r') {
-        if (yych <= 'q')
-          goto yy31;
-        goto yy41;
-      } else {
-        if (yych != 'v')
-          goto yy31;
-      }
-    }
-    yych = *++p;
-    if (yych == 'A')
-      goto yy409;
-    if (yych != 'a')
-      goto yy31;
-  yy409:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy410;
-    if (yych != 's')
-      goto yy31;
-  yy410:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy411;
-    if (yych != 'c')
-      goto yy31;
-  yy411:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy412;
-    if (yych != 'r')
-      goto yy31;
-  yy412:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy413;
-    if (yych != 'i')
-      goto yy31;
-  yy413:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy414;
-    if (yych != 'p')
-      goto yy31;
-  yy414:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy415:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy41;
-    if (yych == 'b')
-      goto yy41;
-    goto yy31;
-  yy416:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy417:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy424;
-    if (yych == 'n')
-      goto yy424;
-    goto yy31;
-  yy418:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy419:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy423;
-    if (yych == 'c')
-      goto yy423;
-    goto yy31;
-  yy420:
-    yych = *++p;
-    if (yych <= 'V') {
-      if (yych == 'T')
-        goto yy422;
-      if (yych <= 'U')
-        goto yy31;
-      goto yy41;
-    } else {
-      if (yych <= 't') {
-        if (yych <= 's')
-          goto yy31;
-        goto yy422;
-      } else {
-        if (yych == 'v')
-          goto yy41;
-        goto yy31;
-      }
-    }
-  yy421:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy41;
-    if (yych == 'i')
-      goto yy41;
-    goto yy31;
-  yy422:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy41;
-    if (yych == 'a')
-      goto yy41;
-    goto yy31;
-  yy423:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy424:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy425;
-    if (yych != 'a')
-      goto yy31;
-  yy425:
-    yych = *++p;
-    if (yych != '-')
-      goto yy31;
-    yych = *++p;
-    if (yych == 'P')
-      goto yy427;
-    if (yych != 'p')
-      goto yy31;
-  yy427:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy428;
-    if (yych != 'l')
-      goto yy31;
-  yy428:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy429;
-    if (yych != 'a')
-      goto yy31;
-  yy429:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy430;
-    if (yych != 'y')
-      goto yy31;
-  yy430:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'C')
-        goto yy431;
-      if (yych <= 'R')
-        goto yy31;
-      goto yy432;
-    } else {
-      if (yych <= 'c') {
-        if (yych <= 'b')
-          goto yy31;
-      } else {
-        if (yych == 's')
-          goto yy432;
-        goto yy31;
-      }
-    }
-  yy431:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy437;
-    if (yych == 'o')
-      goto yy437;
-    goto yy31;
-  yy432:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy433;
-    if (yych != 'i')
-      goto yy31;
-  yy433:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy434;
-    if (yych != 'n')
-      goto yy31;
-  yy434:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy435;
-    if (yych != 'g')
-      goto yy31;
-  yy435:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy436;
-    if (yych != 'l')
-      goto yy31;
-  yy436:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  yy437:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy438;
-    if (yych != 'n')
-      goto yy31;
-  yy438:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy439;
-    if (yych != 't')
-      goto yy31;
-  yy439:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy440;
-    if (yych != 'a')
-      goto yy31;
-  yy440:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy441;
-    if (yych != 'i')
-      goto yy31;
-  yy441:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy442;
-    if (yych != 'n')
-      goto yy31;
-  yy442:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy443;
-    if (yych != 'e')
-      goto yy31;
-  yy443:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy41;
-    if (yych == 'r')
-      goto yy41;
-    goto yy31;
-  yy444:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy41;
-    if (yych == 's')
-      goto yy41;
-    goto yy31;
-  yy445:
-    yych = *++p;
-    if (yych <= 'N') {
-      if (yych <= 'A') {
-        if (yych <= '@')
-          goto yy31;
-        goto yy467;
-      } else {
-        if (yych <= 'L')
-          goto yy31;
-        if (yych <= 'M')
-          goto yy468;
-        goto yy469;
-      }
-    } else {
-      if (yych <= 'l') {
-        if (yych == 'a')
-          goto yy467;
-        goto yy31;
-      } else {
-        if (yych <= 'm')
-          goto yy468;
-        if (yych <= 'n')
-          goto yy469;
-        goto yy31;
-      }
-    }
-  yy446:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy454;
-    if (yych == 'r')
-      goto yy454;
-    goto yy31;
-  yy447:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'L')
-        goto yy451;
-      if (yych <= 'O')
-        goto yy31;
-      goto yy41;
-    } else {
-      if (yych <= 'l') {
-        if (yych <= 'k')
-          goto yy31;
-        goto yy451;
-      } else {
-        if (yych == 'p')
-          goto yy41;
-        goto yy31;
-      }
-    }
-  yy448:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy450;
-    if (yych == 'i')
-      goto yy450;
-    goto yy31;
-  yy449:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy41;
-    if (yych == 'd')
-      goto yy41;
-    goto yy31;
-  yy450:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy41;
-    if (yych == 'd')
-      goto yy41;
-    goto yy31;
-  yy451:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy452;
-    if (yych != 'l')
-      goto yy31;
-  yy452:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy453;
-    if (yych != 't')
-      goto yy31;
-  yy453:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy41;
-    if (yych == 'o')
-      goto yy41;
-    goto yy31;
-  yy454:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy455;
-    if (yych != 'o')
-      goto yy31;
-  yy455:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy456;
-    if (yych != 'm')
-      goto yy31;
-  yy456:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy457;
-    if (yych != 'e')
-      goto yy31;
-  yy457:
-    yych = *++p;
-    if (yych == '-')
-      goto yy458;
-    if (yych == ':')
-      goto yy42;
-    goto yy31;
-  yy458:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy459;
-    if (yych != 'e')
-      goto yy31;
-  yy459:
-    yych = *++p;
-    if (yych == 'X')
-      goto yy460;
-    if (yych != 'x')
-      goto yy31;
-  yy460:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy461;
-    if (yych != 't')
-      goto yy31;
-  yy461:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy462;
-    if (yych != 'e')
-      goto yy31;
-  yy462:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy463;
-    if (yych != 'n')
-      goto yy31;
-  yy463:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy464;
-    if (yych != 's')
-      goto yy31;
-  yy464:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy465;
-    if (yych != 'i')
-      goto yy31;
-  yy465:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy466;
-    if (yych != 'o')
-      goto yy31;
-  yy466:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy41;
-    if (yych == 'n')
-      goto yy41;
-    goto yy31;
-  yy467:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy41;
-    if (yych == 'p')
-      goto yy41;
-    goto yy31;
-  yy468:
-    yych = *++p;
-    if (yych == '-')
-      goto yy473;
-    goto yy31;
-  yy469:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy470;
-    if (yych != 't')
-      goto yy31;
-  yy470:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy471;
-    if (yych != 'e')
-      goto yy31;
-  yy471:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy472;
-    if (yych != 'n')
-      goto yy31;
-  yy472:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy41;
-    if (yych == 't')
-      goto yy41;
-    goto yy31;
-  yy473:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy474;
-    if (yych != 'e')
-      goto yy31;
-  yy474:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy475;
-    if (yych != 'v')
-      goto yy31;
-  yy475:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy476;
-    if (yych != 'e')
-      goto yy31;
-  yy476:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy477;
-    if (yych != 'n')
-      goto yy31;
-  yy477:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy478;
-    if (yych != 't')
-      goto yy31;
-  yy478:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy479;
-    if (yych != 'b')
-      goto yy31;
-  yy479:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy480;
-    if (yych != 'r')
-      goto yy31;
-  yy480:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy481;
-    if (yych != 'i')
-      goto yy31;
-  yy481:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy482;
-    if (yych != 't')
-      goto yy31;
-  yy482:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy483;
-    if (yych != 'e')
-      goto yy31;
-  yy483:
-    yych = *++p;
-    if (yych != '-')
-      goto yy31;
-    yych = *++p;
-    if (yych == 'A')
-      goto yy485;
-    if (yych != 'a')
-      goto yy31;
-  yy485:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy486;
-    if (yych != 't')
-      goto yy31;
-  yy486:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy487;
-    if (yych != 't')
-      goto yy31;
-  yy487:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy488;
-    if (yych != 'e')
-      goto yy31;
-  yy488:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy489;
-    if (yych != 'n')
-      goto yy31;
-  yy489:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy490;
-    if (yych != 'd')
-      goto yy31;
-  yy490:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy491;
-    if (yych != 'e')
-      goto yy31;
-  yy491:
-    ++p;
-    if ((yych = *p) == 'E')
-      goto yy41;
-    if (yych == 'e')
-      goto yy41;
-    goto yy31;
-  }
-}
-
-// Try to match URI autolink after first <, returning number of chars matched.
-bufsize_t _scan_autolink_uri(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 0,   128, 0,   128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 'c') {
-      if (yych <= 'M') {
-        if (yych <= 'E') {
-          if (yych <= 'A') {
-            if (yych == '\n')
-              goto yy494;
-            if (yych <= '@')
-              goto yy521;
-            goto yy498;
-          } else {
-            if (yych <= 'B')
-              goto yy516;
-            if (yych <= 'C')
-              goto yy495;
-            if (yych <= 'D')
-              goto yy496;
-            goto yy517;
-          }
-        } else {
-          if (yych <= 'I') {
-            if (yych <= 'F')
-              goto yy499;
-            if (yych <= 'G')
-              goto yy500;
-            if (yych <= 'H')
-              goto yy501;
-            goto yy502;
-          } else {
-            if (yych <= 'J')
-              goto yy497;
-            if (yych <= 'K')
-              goto yy518;
-            if (yych <= 'L')
-              goto yy503;
-            goto yy504;
-          }
-        }
-      } else {
-        if (yych <= 'U') {
-          if (yych <= 'Q') {
-            if (yych <= 'N')
-              goto yy505;
-            if (yych <= 'O')
-              goto yy506;
-            if (yych <= 'P')
-              goto yy507;
-            goto yy519;
-          } else {
-            if (yych <= 'R')
-              goto yy508;
-            if (yych <= 'S')
-              goto yy509;
-            if (yych <= 'T')
-              goto yy510;
-            goto yy511;
-          }
-        } else {
-          if (yych <= 'Y') {
-            if (yych <= 'V')
-              goto yy512;
-            if (yych <= 'W')
-              goto yy513;
-            if (yych <= 'X')
-              goto yy514;
-            goto yy520;
-          } else {
-            if (yych <= '`') {
-              if (yych <= 'Z')
-                goto yy515;
-              goto yy521;
-            } else {
-              if (yych <= 'a')
-                goto yy498;
-              if (yych <= 'b')
-                goto yy516;
-              goto yy495;
-            }
-          }
-        }
-      }
-    } else {
-      if (yych <= 't') {
-        if (yych <= 'k') {
-          if (yych <= 'g') {
-            if (yych <= 'd')
-              goto yy496;
-            if (yych <= 'e')
-              goto yy517;
-            if (yych <= 'f')
-              goto yy499;
-            goto yy500;
-          } else {
-            if (yych <= 'h')
-              goto yy501;
-            if (yych <= 'i')
-              goto yy502;
-            if (yych <= 'j')
-              goto yy497;
-            goto yy518;
-          }
-        } else {
-          if (yych <= 'o') {
-            if (yych <= 'l')
-              goto yy503;
-            if (yych <= 'm')
-              goto yy504;
-            if (yych <= 'n')
-              goto yy505;
-            goto yy506;
-          } else {
-            if (yych <= 'q') {
-              if (yych <= 'p')
-                goto yy507;
-              goto yy519;
-            } else {
-              if (yych <= 'r')
-                goto yy508;
-              if (yych <= 's')
-                goto yy509;
-              goto yy510;
-            }
-          }
-        }
-      } else {
-        if (yych <= 0xC1) {
-          if (yych <= 'x') {
-            if (yych <= 'u')
-              goto yy511;
-            if (yych <= 'v')
-              goto yy512;
-            if (yych <= 'w')
-              goto yy513;
-            goto yy514;
-          } else {
-            if (yych <= 'y')
-              goto yy520;
-            if (yych <= 'z')
-              goto yy515;
-            if (yych <= 0x7F)
-              goto yy521;
-          }
-        } else {
-          if (yych <= 0xED) {
-            if (yych <= 0xDF)
-              goto yy522;
-            if (yych <= 0xE0)
-              goto yy524;
-            if (yych <= 0xEC)
-              goto yy525;
-            goto yy529;
-          } else {
-            if (yych <= 0xF0) {
-              if (yych <= 0xEF)
-                goto yy525;
-              goto yy526;
-            } else {
-              if (yych <= 0xF3)
-                goto yy527;
-              if (yych <= 0xF4)
-                goto yy528;
-            }
-          }
-        }
-      }
-    }
-  yy494 : { return 0; }
-  yy495:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy948;
-    case 'H':
-    case 'h':
-      goto yy947;
-    case 'I':
-    case 'i':
-      goto yy950;
-    case 'O':
-    case 'o':
-      goto yy946;
-    case 'R':
-    case 'r':
-      goto yy949;
-    case 'V':
-    case 'v':
-      goto yy945;
-    default:
-      goto yy494;
-    }
-  yy496:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy921;
-    case 'I':
-    case 'i':
-      goto yy920;
-    case 'L':
-    case 'l':
-      goto yy918;
-    case 'N':
-    case 'n':
-      goto yy919;
-    case 'O':
-    case 'o':
-      goto yy922;
-    case 'T':
-    case 't':
-      goto yy917;
-    case 'V':
-    case 'v':
-      goto yy916;
-    default:
-      goto yy494;
-    }
-  yy497:
-    yych = *(marker = ++p);
-    if (yych <= 'M') {
-      if (yych == 'A')
-        goto yy908;
-      if (yych <= 'L')
-        goto yy494;
-      goto yy907;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy494;
-        goto yy908;
-      } else {
-        if (yych == 'm')
-          goto yy907;
-        goto yy494;
-      }
-    }
-  yy498:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy889;
-    case 'B':
-    case 'b':
-      goto yy888;
-    case 'C':
-    case 'c':
-      goto yy887;
-    case 'D':
-    case 'd':
-      goto yy886;
-    case 'F':
-    case 'f':
-      goto yy885;
-    case 'I':
-    case 'i':
-      goto yy884;
-    case 'P':
-    case 'p':
-      goto yy883;
-    case 'T':
-    case 't':
-      goto yy882;
-    case 'W':
-    case 'w':
-      goto yy533;
-    default:
-      goto yy494;
-    }
-  yy499:
-    yych = *(marker = ++p);
-    if (yych <= 'T') {
-      if (yych <= 'E') {
-        if (yych == 'A')
-          goto yy869;
-        if (yych <= 'D')
-          goto yy494;
-        goto yy868;
-      } else {
-        if (yych == 'I')
-          goto yy867;
-        if (yych <= 'S')
-          goto yy494;
-        goto yy870;
-      }
-    } else {
-      if (yych <= 'e') {
-        if (yych == 'a')
-          goto yy869;
-        if (yych <= 'd')
-          goto yy494;
-        goto yy868;
-      } else {
-        if (yych <= 'i') {
-          if (yych <= 'h')
-            goto yy494;
-          goto yy867;
-        } else {
-          if (yych == 't')
-            goto yy870;
-          goto yy494;
-        }
-      }
-    }
-  yy500:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'E':
-    case 'e':
-      goto yy852;
-    case 'G':
-    case 'g':
-      goto yy533;
-    case 'I':
-    case 'i':
-      goto yy850;
-    case 'O':
-    case 'o':
-      goto yy851;
-    case 'T':
-    case 't':
-      goto yy849;
-    default:
-      goto yy494;
-    }
-  yy501:
-    yych = *(marker = ++p);
-    if (yych <= 'S') {
-      if (yych <= '3') {
-        if (yych <= '2')
-          goto yy494;
-        goto yy845;
-      } else {
-        if (yych == 'C')
-          goto yy843;
-        goto yy494;
-      }
-    } else {
-      if (yych <= 'c') {
-        if (yych <= 'T')
-          goto yy844;
-        if (yych <= 'b')
-          goto yy494;
-        goto yy843;
-      } else {
-        if (yych == 't')
-          goto yy844;
-        goto yy494;
-      }
-    }
-  yy502:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy825;
-    case 'C':
-    case 'c':
-      goto yy822;
-    case 'M':
-    case 'm':
-      goto yy824;
-    case 'N':
-    case 'n':
-      goto yy823;
-    case 'P':
-    case 'p':
-      goto yy821;
-    case 'R':
-    case 'r':
-      goto yy820;
-    case 'T':
-    case 't':
-      goto yy819;
-    default:
-      goto yy494;
-    }
-  yy503:
-    yych = *(marker = ++p);
-    if (yych <= 'D') {
-      if (yych == 'A')
-        goto yy813;
-      if (yych <= 'C')
-        goto yy494;
-      goto yy812;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy494;
-        goto yy813;
-      } else {
-        if (yych == 'd')
-          goto yy812;
-        goto yy494;
-      }
-    }
-  yy504:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy779;
-    case 'E':
-    case 'e':
-      goto yy778;
-    case 'I':
-    case 'i':
-      goto yy781;
-    case 'M':
-    case 'm':
-      goto yy777;
-    case 'S':
-    case 's':
-      goto yy776;
-    case 'T':
-    case 't':
-      goto yy780;
-    case 'U':
-    case 'u':
-      goto yy775;
-    case 'V':
-    case 'v':
-      goto yy774;
-    default:
-      goto yy494;
-    }
-  yy505:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'E':
-    case 'e':
-      goto yy769;
-    case 'F':
-    case 'f':
-      goto yy768;
-    case 'I':
-    case 'i':
-      goto yy767;
-    case 'N':
-    case 'n':
-      goto yy766;
-    case 'O':
-    case 'o':
-      goto yy765;
-    default:
-      goto yy494;
-    }
-  yy506:
-    yych = *(marker = ++p);
-    if (yych <= 'P') {
-      if (yych == 'I')
-        goto yy751;
-      if (yych <= 'O')
-        goto yy494;
-      goto yy752;
-    } else {
-      if (yych <= 'i') {
-        if (yych <= 'h')
-          goto yy494;
-        goto yy751;
-      } else {
-        if (yych == 'p')
-          goto yy752;
-        goto yy494;
-      }
-    }
-  yy507:
-    yych = *(marker = ++p);
-    if (yych <= 'S') {
-      if (yych <= 'L') {
-        if (yych == 'A')
-          goto yy733;
-        if (yych <= 'K')
-          goto yy494;
-        goto yy732;
-      } else {
-        if (yych <= 'O') {
-          if (yych <= 'N')
-            goto yy494;
-          goto yy734;
-        } else {
-          if (yych <= 'Q')
-            goto yy494;
-          if (yych <= 'R')
-            goto yy731;
-          goto yy730;
-        }
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'a') {
-          if (yych <= '`')
-            goto yy494;
-          goto yy733;
-        } else {
-          if (yych == 'l')
-            goto yy732;
-          goto yy494;
-        }
-      } else {
-        if (yych <= 'q') {
-          if (yych <= 'o')
-            goto yy734;
-          goto yy494;
-        } else {
-          if (yych <= 'r')
-            goto yy731;
-          if (yych <= 's')
-            goto yy730;
-          goto yy494;
-        }
-      }
-    }
-  yy508:
-    yych = *(marker = ++p);
-    if (yych <= 'T') {
-      if (yych <= 'L') {
-        if (yych == 'E')
-          goto yy720;
-        goto yy494;
-      } else {
-        if (yych <= 'M')
-          goto yy719;
-        if (yych <= 'R')
-          goto yy494;
-        if (yych <= 'S')
-          goto yy718;
-        goto yy717;
-      }
-    } else {
-      if (yych <= 'm') {
-        if (yych == 'e')
-          goto yy720;
-        if (yych <= 'l')
-          goto yy494;
-        goto yy719;
-      } else {
-        if (yych <= 'r')
-          goto yy494;
-        if (yych <= 's')
-          goto yy718;
-        if (yych <= 't')
-          goto yy717;
-        goto yy494;
-      }
-    }
-  yy509:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'E':
-    case 'e':
-      goto yy673;
-    case 'F':
-    case 'f':
-      goto yy672;
-    case 'G':
-    case 'g':
-      goto yy671;
-    case 'H':
-    case 'h':
-      goto yy676;
-    case 'I':
-    case 'i':
-      goto yy675;
-    case 'K':
-    case 'k':
-      goto yy670;
-    case 'M':
-    case 'm':
-      goto yy669;
-    case 'N':
-    case 'n':
-      goto yy674;
-    case 'O':
-    case 'o':
-      goto yy668;
-    case 'P':
-    case 'p':
-      goto yy667;
-    case 'S':
-    case 's':
-      goto yy666;
-    case 'T':
-    case 't':
-      goto yy665;
-    case 'V':
-    case 'v':
-      goto yy664;
-    default:
-      goto yy494;
-    }
-  yy510:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy640;
-    case 'E':
-    case 'e':
-      goto yy636;
-    case 'F':
-    case 'f':
-      goto yy639;
-    case 'H':
-    case 'h':
-      goto yy635;
-    case 'I':
-    case 'i':
-      goto yy637;
-    case 'N':
-    case 'n':
-      goto yy638;
-    case 'V':
-    case 'v':
-      goto yy533;
-    default:
-      goto yy494;
-    }
-  yy511:
-    yych = *(marker = ++p);
-    if (yych <= 'T') {
-      if (yych <= 'N') {
-        if (yych == 'D')
-          goto yy627;
-        if (yych <= 'M')
-          goto yy494;
-        goto yy626;
-      } else {
-        if (yych == 'R')
-          goto yy628;
-        if (yych <= 'S')
-          goto yy494;
-        goto yy625;
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych == 'd')
-          goto yy627;
-        if (yych <= 'm')
-          goto yy494;
-        goto yy626;
-      } else {
-        if (yych <= 'r') {
-          if (yych <= 'q')
-            goto yy494;
-          goto yy628;
-        } else {
-          if (yych == 't')
-            goto yy625;
-          goto yy494;
-        }
-      }
-    }
-  yy512:
-    yych = *(marker = ++p);
-    if (yych <= 'I') {
-      if (yych == 'E')
-        goto yy609;
-      if (yych <= 'H')
-        goto yy494;
-      goto yy608;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy494;
-        goto yy609;
-      } else {
-        if (yych == 'i')
-          goto yy608;
-        goto yy494;
-      }
-    }
-  yy513:
-    yych = *(marker = ++p);
-    if (yych <= 'Y') {
-      if (yych <= 'R') {
-        if (yych == 'E')
-          goto yy598;
-        goto yy494;
-      } else {
-        if (yych <= 'S')
-          goto yy599;
-        if (yych <= 'T')
-          goto yy597;
-        if (yych <= 'X')
-          goto yy494;
-        goto yy596;
-      }
-    } else {
-      if (yych <= 's') {
-        if (yych == 'e')
-          goto yy598;
-        if (yych <= 'r')
-          goto yy494;
-        goto yy599;
-      } else {
-        if (yych <= 't')
-          goto yy597;
-        if (yych == 'y')
-          goto yy596;
-        goto yy494;
-      }
-    }
-  yy514:
-    yych = *(marker = ++p);
-    if (yych <= 'R') {
-      if (yych <= 'F') {
-        if (yych == 'C')
-          goto yy575;
-        if (yych <= 'E')
-          goto yy494;
-        goto yy573;
-      } else {
-        if (yych == 'M')
-          goto yy574;
-        if (yych <= 'Q')
-          goto yy494;
-        goto yy572;
-      }
-    } else {
-      if (yych <= 'f') {
-        if (yych == 'c')
-          goto yy575;
-        if (yych <= 'e')
-          goto yy494;
-        goto yy573;
-      } else {
-        if (yych <= 'm') {
-          if (yych <= 'l')
-            goto yy494;
-          goto yy574;
-        } else {
-          if (yych == 'r')
-            goto yy572;
-          goto yy494;
-        }
-      }
-    }
-  yy515:
-    yych = *(marker = ++p);
-    if (yych == '3')
-      goto yy567;
-    goto yy494;
-  yy516:
-    yych = *(marker = ++p);
-    if (yych <= 'O') {
-      if (yych <= 'H') {
-        if (yych == 'E')
-          goto yy557;
-        goto yy494;
-      } else {
-        if (yych <= 'I')
-          goto yy556;
-        if (yych <= 'N')
-          goto yy494;
-        goto yy555;
-      }
-    } else {
-      if (yych <= 'h') {
-        if (yych == 'e')
-          goto yy557;
-        goto yy494;
-      } else {
-        if (yych <= 'i')
-          goto yy556;
-        if (yych == 'o')
-          goto yy555;
-        goto yy494;
-      }
-    }
-  yy517:
-    yych = *(marker = ++p);
-    if (yych == 'D')
-      goto yy553;
-    if (yych == 'd')
-      goto yy553;
-    goto yy494;
-  yy518:
-    yych = *(marker = ++p);
-    if (yych == 'E')
-      goto yy548;
-    if (yych == 'e')
-      goto yy548;
-    goto yy494;
-  yy519:
-    yych = *(marker = ++p);
-    if (yych == 'U')
-      goto yy545;
-    if (yych == 'u')
-      goto yy545;
-    goto yy494;
-  yy520:
-    yych = *(marker = ++p);
-    if (yych == 'M')
-      goto yy530;
-    if (yych == 'm')
-      goto yy530;
-    goto yy494;
-  yy521:
-    yych = *++p;
-    goto yy494;
-  yy522:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy521;
-  yy523:
-    p = marker;
-    goto yy494;
-  yy524:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy522;
-    goto yy523;
-  yy525:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy522;
-    goto yy523;
-  yy526:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy525;
-    goto yy523;
-  yy527:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy525;
-    goto yy523;
-  yy528:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0x8F)
-      goto yy525;
-    goto yy523;
-  yy529:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0x9F)
-      goto yy522;
-    goto yy523;
-  yy530:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy531;
-    if (yych != 's')
-      goto yy523;
-  yy531:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy532;
-    if (yych != 'g')
-      goto yy523;
-  yy532:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy533;
-    if (yych != 'r')
-      goto yy523;
-  yy533:
-    yych = *++p;
-    if (yych != ':')
-      goto yy523;
-  yy534:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy534;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '<')
-          goto yy523;
-        if (yych <= '>')
-          goto yy543;
-        goto yy523;
-      } else {
-        if (yych <= 0xDF)
-          goto yy536;
-        if (yych <= 0xE0)
-          goto yy537;
-        goto yy538;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy542;
-        if (yych <= 0xEF)
-          goto yy538;
-        goto yy539;
-      } else {
-        if (yych <= 0xF3)
-          goto yy540;
-        if (yych <= 0xF4)
-          goto yy541;
-        goto yy523;
-      }
-    }
-  yy536:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy534;
-    goto yy523;
-  yy537:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy536;
-    goto yy523;
-  yy538:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy536;
-    goto yy523;
-  yy539:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy538;
-    goto yy523;
-  yy540:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0xBF)
-      goto yy538;
-    goto yy523;
-  yy541:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0x8F)
-      goto yy538;
-    goto yy523;
-  yy542:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy523;
-    if (yych <= 0x9F)
-      goto yy536;
-    goto yy523;
-  yy543:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy545:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy546;
-    if (yych != 'e')
-      goto yy523;
-  yy546:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy547;
-    if (yych != 'r')
-      goto yy523;
-  yy547:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy533;
-    if (yych == 'y')
-      goto yy533;
-    goto yy523;
-  yy548:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy549;
-    if (yych != 'y')
-      goto yy523;
-  yy549:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy550;
-    if (yych != 'p')
-      goto yy523;
-  yy550:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy551;
-    if (yych != 'a')
-      goto yy523;
-  yy551:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy552;
-    if (yych != 'r')
-      goto yy523;
-  yy552:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy533;
-    if (yych == 'c')
-      goto yy533;
-    goto yy523;
-  yy553:
-    yych = *++p;
-    if (yych != '2')
-      goto yy523;
-    yych = *++p;
-    if (yych == 'K')
-      goto yy533;
-    if (yych == 'k')
-      goto yy533;
-    goto yy523;
-  yy555:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy566;
-    if (yych == 'l')
-      goto yy566;
-    goto yy523;
-  yy556:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy562;
-    if (yych == 't')
-      goto yy562;
-    goto yy523;
-  yy557:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy558;
-    if (yych != 's')
-      goto yy523;
-  yy558:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy559;
-    if (yych != 'h')
-      goto yy523;
-  yy559:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy560;
-    if (yych != 'a')
-      goto yy523;
-  yy560:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy561;
-    if (yych != 'r')
-      goto yy523;
-  yy561:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy562:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy563;
-    if (yych != 'c')
-      goto yy523;
-  yy563:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy564;
-    if (yych != 'o')
-      goto yy523;
-  yy564:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy565;
-    if (yych != 'i')
-      goto yy523;
-  yy565:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy566:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy533;
-    if (yych == 'o')
-      goto yy533;
-    goto yy523;
-  yy567:
-    yych = *++p;
-    if (yych != '9')
-      goto yy523;
-    yych = *++p;
-    if (yych != '.')
-      goto yy523;
-    yych = *++p;
-    if (yych != '5')
-      goto yy523;
-    yych = *++p;
-    if (yych != '0')
-      goto yy523;
-    yych = *++p;
-    if (yych <= 'Q')
-      goto yy523;
-    if (yych <= 'S')
-      goto yy533;
-    if (yych <= 'q')
-      goto yy523;
-    if (yych <= 's')
-      goto yy533;
-    goto yy523;
-  yy572:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy533;
-    if (yych == 'i')
-      goto yy533;
-    goto yy523;
-  yy573:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy594;
-    if (yych == 'i')
-      goto yy594;
-    goto yy523;
-  yy574:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'L')
-        goto yy584;
-      if (yych <= 'O')
-        goto yy523;
-      goto yy585;
-    } else {
-      if (yych <= 'l') {
-        if (yych <= 'k')
-          goto yy523;
-        goto yy584;
-      } else {
-        if (yych == 'p')
-          goto yy585;
-        goto yy523;
-      }
-    }
-  yy575:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy576;
-    if (yych != 'o')
-      goto yy523;
-  yy576:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy577;
-    if (yych != 'n')
-      goto yy523;
-  yy577:
-    yych = *++p;
-    if (yych == '-')
-      goto yy578;
-    if (yych == ':')
-      goto yy534;
-    goto yy523;
-  yy578:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy579;
-    if (yych != 'u')
-      goto yy523;
-  yy579:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy580;
-    if (yych != 's')
-      goto yy523;
-  yy580:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy581;
-    if (yych != 'e')
-      goto yy523;
-  yy581:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy582;
-    if (yych != 'r')
-      goto yy523;
-  yy582:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy583;
-    if (yych != 'i')
-      goto yy523;
-  yy583:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy533;
-    if (yych == 'd')
-      goto yy533;
-    goto yy523;
-  yy584:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy586;
-    if (yych == 'r')
-      goto yy586;
-    goto yy523;
-  yy585:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy586:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy587;
-    if (yych != 'p')
-      goto yy523;
-  yy587:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy588;
-    if (yych != 'c')
-      goto yy523;
-  yy588:
-    yych = *++p;
-    if (yych != '.')
-      goto yy523;
-    yych = *++p;
-    if (yych == 'B')
-      goto yy590;
-    if (yych != 'b')
-      goto yy523;
-  yy590:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy591;
-    if (yych != 'e')
-      goto yy523;
-  yy591:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy592;
-    if (yych != 'e')
-      goto yy523;
-  yy592:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy593;
-    if (yych != 'p')
-      goto yy523;
-  yy593:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy594:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy595;
-    if (yych != 'r')
-      goto yy523;
-  yy595:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy596:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy604;
-    if (yych == 'c')
-      goto yy604;
-    goto yy523;
-  yy597:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy603;
-    if (yych == 'a')
-      goto yy603;
-    goto yy523;
-  yy598:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy600;
-    if (yych == 'b')
-      goto yy600;
-    goto yy523;
-  yy599:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy600:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy601;
-    if (yych != 'c')
-      goto yy523;
-  yy601:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy602;
-    if (yych != 'a')
-      goto yy523;
-  yy602:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy533;
-    if (yych == 'l')
-      goto yy533;
-    goto yy523;
-  yy603:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy533;
-    if (yych == 'i')
-      goto yy533;
-    goto yy523;
-  yy604:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy605;
-    if (yych != 'i')
-      goto yy523;
-  yy605:
-    yych = *++p;
-    if (yych == 'W')
-      goto yy606;
-    if (yych != 'w')
-      goto yy523;
-  yy606:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy607;
-    if (yych != 'y')
-      goto yy523;
-  yy607:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy533;
-    if (yych == 'g')
-      goto yy533;
-    goto yy523;
-  yy608:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy617;
-    if (yych == 'e')
-      goto yy617;
-    goto yy523;
-  yy609:
-    yych = *++p;
-    if (yych <= 'N') {
-      if (yych <= 'L')
-        goto yy523;
-      if (yych >= 'N')
-        goto yy611;
-    } else {
-      if (yych <= 'l')
-        goto yy523;
-      if (yych <= 'm')
-        goto yy610;
-      if (yych <= 'n')
-        goto yy611;
-      goto yy523;
-    }
-  yy610:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy616;
-    if (yych == 'm')
-      goto yy616;
-    goto yy523;
-  yy611:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy612;
-    if (yych != 't')
-      goto yy523;
-  yy612:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy613;
-    if (yych != 'r')
-      goto yy523;
-  yy613:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy614;
-    if (yych != 'i')
-      goto yy523;
-  yy614:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy615;
-    if (yych != 'l')
-      goto yy523;
-  yy615:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy533;
-    if (yych == 'o')
-      goto yy533;
-    goto yy523;
-  yy616:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy533;
-    if (yych == 'i')
-      goto yy533;
-    goto yy523;
-  yy617:
-    yych = *++p;
-    if (yych == 'W')
-      goto yy618;
-    if (yych != 'w')
-      goto yy523;
-  yy618:
-    yych = *++p;
-    if (yych != '-')
-      goto yy523;
-    yych = *++p;
-    if (yych == 'S')
-      goto yy620;
-    if (yych != 's')
-      goto yy523;
-  yy620:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy621;
-    if (yych != 'o')
-      goto yy523;
-  yy621:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy622;
-    if (yych != 'u')
-      goto yy523;
-  yy622:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy623;
-    if (yych != 'r')
-      goto yy523;
-  yy623:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy624;
-    if (yych != 'c')
-      goto yy523;
-  yy624:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy625:
-    yych = *++p;
-    if (yych == '2')
-      goto yy632;
-    goto yy523;
-  yy626:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy629;
-    if (yych == 'r')
-      goto yy629;
-    goto yy523;
-  yy627:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy628:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy629:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy630;
-    if (yych != 'e')
-      goto yy523;
-  yy630:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy631;
-    if (yych != 'a')
-      goto yy523;
-  yy631:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy533;
-    if (yych == 'l')
-      goto yy533;
-    goto yy523;
-  yy632:
-    yych = *++p;
-    if (yych != '0')
-      goto yy523;
-    yych = *++p;
-    if (yych != '0')
-      goto yy523;
-    yych = *++p;
-    if (yych == '4')
-      goto yy533;
-    goto yy523;
-  yy635:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy654;
-    if (yych == 'i')
-      goto yy654;
-    goto yy523;
-  yy636:
-    yych = *++p;
-    if (yych <= 'L') {
-      if (yych == 'A')
-        goto yy646;
-      if (yych <= 'K')
-        goto yy523;
-      goto yy645;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy523;
-        goto yy646;
-      } else {
-        if (yych == 'l')
-          goto yy645;
-        goto yy523;
-      }
-    }
-  yy637:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy638:
-    yych = *++p;
-    if (yych == '3')
-      goto yy642;
-    goto yy523;
-  yy639:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy641;
-    if (yych == 't')
-      goto yy641;
-    goto yy523;
-  yy640:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy533;
-    if (yych == 'g')
-      goto yy533;
-    goto yy523;
-  yy641:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy642:
-    yych = *++p;
-    if (yych != '2')
-      goto yy523;
-    yych = *++p;
-    if (yych != '7')
-      goto yy523;
-    yych = *++p;
-    if (yych == '0')
-      goto yy533;
-    goto yy523;
-  yy645:
-    yych = *++p;
-    if (yych <= 'M') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'N')
-        goto yy652;
-      if (yych == 'n')
-        goto yy652;
-      goto yy523;
-    }
-  yy646:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy647;
-    if (yych != 'm')
-      goto yy523;
-  yy647:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy648;
-    if (yych != 's')
-      goto yy523;
-  yy648:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy649;
-    if (yych != 'p')
-      goto yy523;
-  yy649:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy650;
-    if (yych != 'e')
-      goto yy523;
-  yy650:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy651;
-    if (yych != 'a')
-      goto yy523;
-  yy651:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy533;
-    if (yych == 'k')
-      goto yy533;
-    goto yy523;
-  yy652:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy653;
-    if (yych != 'e')
-      goto yy523;
-  yy653:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy654:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'N')
-        goto yy655;
-      if (yych <= 'R')
-        goto yy523;
-      goto yy656;
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'm')
-          goto yy523;
-      } else {
-        if (yych == 's')
-          goto yy656;
-        goto yy523;
-      }
-    }
-  yy655:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy663;
-    if (yych == 'g')
-      goto yy663;
-    goto yy523;
-  yy656:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy657;
-    if (yych != 'm')
-      goto yy523;
-  yy657:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy658;
-    if (yych != 'e')
-      goto yy523;
-  yy658:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy659;
-    if (yych != 's')
-      goto yy523;
-  yy659:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy660;
-    if (yych != 's')
-      goto yy523;
-  yy660:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy661;
-    if (yych != 'a')
-      goto yy523;
-  yy661:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy662;
-    if (yych != 'g')
-      goto yy523;
-  yy662:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy663:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy664:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy665:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy715;
-    if (yych == 'e')
-      goto yy715;
-    goto yy523;
-  yy666:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy533;
-    if (yych == 'h')
-      goto yy533;
-    goto yy523;
-  yy667:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy711;
-    if (yych == 'o')
-      goto yy711;
-    goto yy523;
-  yy668:
-    yych = *++p;
-    if (yych <= 'L') {
-      if (yych == 'A')
-        goto yy701;
-      if (yych <= 'K')
-        goto yy523;
-      goto yy702;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy523;
-        goto yy701;
-      } else {
-        if (yych == 'l')
-          goto yy702;
-        goto yy523;
-      }
-    }
-  yy669:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'B')
-        goto yy533;
-      if (yych <= 'R')
-        goto yy523;
-      goto yy533;
-    } else {
-      if (yych <= 'b') {
-        if (yych <= 'a')
-          goto yy523;
-        goto yy533;
-      } else {
-        if (yych == 's')
-          goto yy533;
-        goto yy523;
-      }
-    }
-  yy670:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy699;
-    if (yych == 'y')
-      goto yy699;
-    goto yy523;
-  yy671:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy672:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy698;
-    if (yych == 't')
-      goto yy698;
-    goto yy523;
-  yy673:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych <= 'C') {
-        if (yych <= 'B')
-          goto yy523;
-        goto yy685;
-      } else {
-        if (yych <= 'Q')
-          goto yy523;
-        if (yych <= 'R')
-          goto yy683;
-        goto yy684;
-      }
-    } else {
-      if (yych <= 'q') {
-        if (yych == 'c')
-          goto yy685;
-        goto yy523;
-      } else {
-        if (yych <= 'r')
-          goto yy683;
-        if (yych <= 's')
-          goto yy684;
-        goto yy523;
-      }
-    }
-  yy674:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy682;
-    if (yych == 'm')
-      goto yy682;
-    goto yy523;
-  yy675:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'E')
-        goto yy679;
-      if (yych <= 'O')
-        goto yy523;
-      goto yy680;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy523;
-        goto yy679;
-      } else {
-        if (yych == 'p')
-          goto yy680;
-        goto yy523;
-      }
-    }
-  yy676:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy677;
-    if (yych != 't')
-      goto yy523;
-  yy677:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy678;
-    if (yych != 't')
-      goto yy523;
-  yy678:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy679:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy681;
-    if (yych == 'v')
-      goto yy681;
-    goto yy523;
-  yy680:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy681:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy682:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy683:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy695;
-    if (yych == 'v')
-      goto yy695;
-    goto yy523;
-  yy684:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy692;
-    if (yych == 's')
-      goto yy692;
-    goto yy523;
-  yy685:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy686;
-    if (yych != 'o')
-      goto yy523;
-  yy686:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy687;
-    if (yych != 'n')
-      goto yy523;
-  yy687:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy688;
-    if (yych != 'd')
-      goto yy523;
-  yy688:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy689;
-    if (yych != 'l')
-      goto yy523;
-  yy689:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy690;
-    if (yych != 'i')
-      goto yy523;
-  yy690:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy691;
-    if (yych != 'f')
-      goto yy523;
-  yy691:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy692:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy693;
-    if (yych != 'i')
-      goto yy523;
-  yy693:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy694;
-    if (yych != 'o')
-      goto yy523;
-  yy694:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy695:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy696;
-    if (yych != 'i')
-      goto yy523;
-  yy696:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy697;
-    if (yych != 'c')
-      goto yy523;
-  yy697:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy698:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy699:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy700;
-    if (yych != 'p')
-      goto yy523;
-  yy700:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy701:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy705;
-    if (yych == 'p')
-      goto yy705;
-    goto yy523;
-  yy702:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy703;
-    if (yych != 'd')
-      goto yy523;
-  yy703:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy704;
-    if (yych != 'a')
-      goto yy523;
-  yy704:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy705:
-    yych = *++p;
-    if (yych != '.')
-      goto yy523;
-    yych = *++p;
-    if (yych == 'B')
-      goto yy707;
-    if (yych != 'b')
-      goto yy523;
-  yy707:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy708;
-    if (yych != 'e')
-      goto yy523;
-  yy708:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy709;
-    if (yych != 'e')
-      goto yy523;
-  yy709:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy710;
-    if (yych != 'p')
-      goto yy523;
-  yy710:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy711:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy712;
-    if (yych != 't')
-      goto yy523;
-  yy712:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy713;
-    if (yych != 'i')
-      goto yy523;
-  yy713:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy714;
-    if (yych != 'f')
-      goto yy523;
-  yy714:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy533;
-    if (yych == 'y')
-      goto yy533;
-    goto yy523;
-  yy715:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy716;
-    if (yych != 'a')
-      goto yy523;
-  yy716:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy533;
-    if (yych == 'm')
-      goto yy533;
-    goto yy523;
-  yy717:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'M')
-        goto yy729;
-      if (yych <= 'R')
-        goto yy523;
-      goto yy728;
-    } else {
-      if (yych <= 'm') {
-        if (yych <= 'l')
-          goto yy523;
-        goto yy729;
-      } else {
-        if (yych == 's')
-          goto yy728;
-        goto yy523;
-      }
-    }
-  yy718:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy726;
-    if (yych == 'y')
-      goto yy726;
-    goto yy523;
-  yy719:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy533;
-    if (yych == 'i')
-      goto yy533;
-    goto yy523;
-  yy720:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy721;
-    if (yych != 's')
-      goto yy523;
-  yy721:
-    yych = *++p;
-    if (yych <= 'N') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'O')
-        goto yy722;
-      if (yych != 'o')
-        goto yy523;
-    }
-  yy722:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy723;
-    if (yych != 'u')
-      goto yy523;
-  yy723:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy724;
-    if (yych != 'r')
-      goto yy523;
-  yy724:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy725;
-    if (yych != 'c')
-      goto yy523;
-  yy725:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy726:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy727;
-    if (yych != 'n')
-      goto yy523;
-  yy727:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy533;
-    if (yych == 'c')
-      goto yy533;
-    goto yy523;
-  yy728:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy729:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy730:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy750;
-    if (yych == 'y')
-      goto yy750;
-    goto yy523;
-  yy731:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych == 'E')
-        goto yy747;
-      if (yych <= 'N')
-        goto yy523;
-      goto yy748;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy523;
-        goto yy747;
-      } else {
-        if (yych == 'o')
-          goto yy748;
-        goto yy523;
-      }
-    }
-  yy732:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy742;
-    if (yych == 'a')
-      goto yy742;
-    goto yy523;
-  yy733:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'L')
-        goto yy735;
-      if (yych <= 'O')
-        goto yy523;
-      goto yy736;
-    } else {
-      if (yych <= 'l') {
-        if (yych <= 'k')
-          goto yy523;
-        goto yy735;
-      } else {
-        if (yych == 'p')
-          goto yy736;
-        goto yy523;
-      }
-    }
-  yy734:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy735:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy533;
-    if (yych == 'm')
-      goto yy533;
-    goto yy523;
-  yy736:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy737;
-    if (yych != 'a')
-      goto yy523;
-  yy737:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy738;
-    if (yych != 'r')
-      goto yy523;
-  yy738:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy739;
-    if (yych != 'a')
-      goto yy523;
-  yy739:
-    yych = *++p;
-    if (yych == 'Z')
-      goto yy740;
-    if (yych != 'z')
-      goto yy523;
-  yy740:
-    yych = *++p;
-    if (yych == 'Z')
-      goto yy741;
-    if (yych != 'z')
-      goto yy523;
-  yy741:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy533;
-    if (yych == 'i')
-      goto yy533;
-    goto yy523;
-  yy742:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy743;
-    if (yych != 't')
-      goto yy523;
-  yy743:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy744;
-    if (yych != 'f')
-      goto yy523;
-  yy744:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy745;
-    if (yych != 'o')
-      goto yy523;
-  yy745:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy746;
-    if (yych != 'r')
-      goto yy523;
-  yy746:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy533;
-    if (yych == 'm')
-      goto yy533;
-    goto yy523;
-  yy747:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy748:
-    yych = *++p;
-    if (yych == 'X')
-      goto yy749;
-    if (yych != 'x')
-      goto yy523;
-  yy749:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy533;
-    if (yych == 'y')
-      goto yy533;
-    goto yy523;
-  yy750:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy533;
-    if (yych == 'c')
-      goto yy533;
-    goto yy523;
-  yy751:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy533;
-    if (yych == 'd')
-      goto yy533;
-    goto yy523;
-  yy752:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy753;
-    if (yych != 'a')
-      goto yy523;
-  yy753:
-    yych = *++p;
-    if (yych == 'Q')
-      goto yy754;
-    if (yych != 'q')
-      goto yy523;
-  yy754:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy755;
-    if (yych != 'u')
-      goto yy523;
-  yy755:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy756;
-    if (yych != 'e')
-      goto yy523;
-  yy756:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy757;
-    if (yych != 'l')
-      goto yy523;
-  yy757:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy758;
-    if (yych != 'o')
-      goto yy523;
-  yy758:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy759;
-    if (yych != 'c')
-      goto yy523;
-  yy759:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy760;
-    if (yych != 'k')
-      goto yy523;
-  yy760:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy761;
-    if (yych != 't')
-      goto yy523;
-  yy761:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy762;
-    if (yych != 'o')
-      goto yy523;
-  yy762:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy763;
-    if (yych != 'k')
-      goto yy523;
-  yy763:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy764;
-    if (yych != 'e')
-      goto yy523;
-  yy764:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy765:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy772;
-    if (yych == 't')
-      goto yy772;
-    goto yy523;
-  yy766:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy771;
-    if (yych == 't')
-      goto yy771;
-    goto yy523;
-  yy767:
-    yych = *++p;
-    if (yych <= 'G') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'H')
-        goto yy533;
-      if (yych == 'h')
-        goto yy533;
-      goto yy523;
-    }
-  yy768:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy769:
-    yych = *++p;
-    if (yych == 'W')
-      goto yy770;
-    if (yych != 'w')
-      goto yy523;
-  yy770:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy771:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy772:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy773;
-    if (yych != 'e')
-      goto yy523;
-  yy773:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy774:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy775:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'M')
-        goto yy806;
-      if (yych <= 'O')
-        goto yy523;
-      goto yy805;
-    } else {
-      if (yych <= 'm') {
-        if (yych <= 'l')
-          goto yy523;
-        goto yy806;
-      } else {
-        if (yych == 'p')
-          goto yy805;
-        goto yy523;
-      }
-    }
-  yy776:
-    yych = *++p;
-    if (yych <= 'Q') {
-      if (yych <= '-') {
-        if (yych <= ',')
-          goto yy523;
-        goto yy798;
-      } else {
-        if (yych == 'N')
-          goto yy799;
-        goto yy523;
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'R')
-          goto yy797;
-        if (yych <= 'm')
-          goto yy523;
-        goto yy799;
-      } else {
-        if (yych == 'r')
-          goto yy797;
-        goto yy523;
-      }
-    }
-  yy777:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy778:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy793;
-    if (yych == 's')
-      goto yy793;
-    goto yy523;
-  yy779:
-    yych = *++p;
-    switch (yych) {
-    case 'G':
-    case 'g':
-      goto yy784;
-    case 'I':
-    case 'i':
-      goto yy783;
-    case 'P':
-    case 'p':
-      goto yy785;
-    case 'R':
-    case 'r':
-      goto yy786;
-    default:
-      goto yy523;
-    }
-  yy780:
-    yych = *++p;
-    if (yych == 'Q')
-      goto yy782;
-    if (yych == 'q')
-      goto yy782;
-    goto yy523;
-  yy781:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy533;
-    if (yych == 'd')
-      goto yy533;
-    goto yy523;
-  yy782:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy783:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy791;
-    if (yych == 'l')
-      goto yy791;
-    goto yy523;
-  yy784:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy789;
-    if (yych == 'n')
-      goto yy789;
-    goto yy523;
-  yy785:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy786:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy787;
-    if (yych != 'k')
-      goto yy523;
-  yy787:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy788;
-    if (yych != 'e')
-      goto yy523;
-  yy788:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy789:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy790;
-    if (yych != 'e')
-      goto yy523;
-  yy790:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy791:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy792;
-    if (yych != 't')
-      goto yy523;
-  yy792:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy533;
-    if (yych == 'o')
-      goto yy533;
-    goto yy523;
-  yy793:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy794;
-    if (yych != 's')
-      goto yy523;
-  yy794:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy795;
-    if (yych != 'a')
-      goto yy523;
-  yy795:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy796;
-    if (yych != 'g')
-      goto yy523;
-  yy796:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy797:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy804;
-    if (yych == 'p')
-      goto yy804;
-    goto yy523;
-  yy798:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy801;
-    if (yych == 'h')
-      goto yy801;
-    goto yy523;
-  yy799:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy800;
-    if (yych != 'i')
-      goto yy523;
-  yy800:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy533;
-    if (yych == 'm')
-      goto yy533;
-    goto yy523;
-  yy801:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy802;
-    if (yych != 'e')
-      goto yy523;
-  yy802:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy803;
-    if (yych != 'l')
-      goto yy523;
-  yy803:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy804:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy805:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy809;
-    if (yych == 'd')
-      goto yy809;
-    goto yy523;
-  yy806:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy807;
-    if (yych != 'b')
-      goto yy523;
-  yy807:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy808;
-    if (yych != 'l')
-      goto yy523;
-  yy808:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy809:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy810;
-    if (yych != 'a')
-      goto yy523;
-  yy810:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy811;
-    if (yych != 't')
-      goto yy523;
-  yy811:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy812:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy817;
-    if (yych == 'a')
-      goto yy817;
-    goto yy523;
-  yy813:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy814;
-    if (yych != 's')
-      goto yy523;
-  yy814:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy815;
-    if (yych != 't')
-      goto yy523;
-  yy815:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy816;
-    if (yych != 'f')
-      goto yy523;
-  yy816:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy533;
-    if (yych == 'm')
-      goto yy533;
-    goto yy523;
-  yy817:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy818;
-    if (yych != 'p')
-      goto yy523;
-  yy818:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy819:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy842;
-    if (yych == 'm')
-      goto yy842;
-    goto yy523;
-  yy820:
-    yych = *++p;
-    if (yych <= 'I') {
-      if (yych == 'C')
-        goto yy831;
-      if (yych <= 'H')
-        goto yy523;
-      goto yy830;
-    } else {
-      if (yych <= 'c') {
-        if (yych <= 'b')
-          goto yy523;
-        goto yy831;
-      } else {
-        if (yych == 'i')
-          goto yy830;
-        goto yy523;
-      }
-    }
-  yy821:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'N')
-        goto yy533;
-      if (yych <= 'O')
-        goto yy523;
-      goto yy533;
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'm')
-          goto yy523;
-        goto yy533;
-      } else {
-        if (yych == 'p')
-          goto yy533;
-        goto yy523;
-      }
-    }
-  yy822:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych == 'A')
-        goto yy828;
-      if (yych <= 'N')
-        goto yy523;
-      goto yy829;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy523;
-        goto yy828;
-      } else {
-        if (yych == 'o')
-          goto yy829;
-        goto yy523;
-      }
-    }
-  yy823:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy827;
-    if (yych == 'f')
-      goto yy827;
-    goto yy523;
-  yy824:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'A')
-        goto yy826;
-      if (yych == 'a')
-        goto yy826;
-      goto yy523;
-    }
-  yy825:
-    yych = *++p;
-    if (yych == 'X')
-      goto yy533;
-    if (yych == 'x')
-      goto yy533;
-    goto yy523;
-  yy826:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy827:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy533;
-    if (yych == 'o')
-      goto yy533;
-    goto yy523;
-  yy828:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy829:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy830:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy832;
-    if (yych == 's')
-      goto yy832;
-    goto yy523;
-  yy831:
-    yych = *++p;
-    if (yych <= ':') {
-      if (yych == '6')
-        goto yy533;
-      if (yych <= '9')
-        goto yy523;
-      goto yy534;
-    } else {
-      if (yych <= 'S') {
-        if (yych <= 'R')
-          goto yy523;
-        goto yy533;
-      } else {
-        if (yych == 's')
-          goto yy533;
-        goto yy523;
-      }
-    }
-  yy832:
-    yych = *++p;
-    if (yych == '.')
-      goto yy833;
-    if (yych == ':')
-      goto yy534;
-    goto yy523;
-  yy833:
-    yych = *++p;
-    if (yych <= 'X') {
-      if (yych <= 'K') {
-        if (yych == 'B')
-          goto yy836;
-        goto yy523;
-      } else {
-        if (yych <= 'L')
-          goto yy834;
-        if (yych <= 'W')
-          goto yy523;
-        goto yy835;
-      }
-    } else {
-      if (yych <= 'k') {
-        if (yych == 'b')
-          goto yy836;
-        goto yy523;
-      } else {
-        if (yych <= 'l')
-          goto yy834;
-        if (yych == 'x')
-          goto yy835;
-        goto yy523;
-      }
-    }
-  yy834:
-    yych = *++p;
-    if (yych == 'W')
-      goto yy841;
-    if (yych == 'w')
-      goto yy841;
-    goto yy523;
-  yy835:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy839;
-    if (yych == 'p')
-      goto yy839;
-    goto yy523;
-  yy836:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy837;
-    if (yych != 'e')
-      goto yy523;
-  yy837:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy838;
-    if (yych != 'e')
-      goto yy523;
-  yy838:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy839:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy840;
-    if (yych != 'c')
-      goto yy523;
-  yy840:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy841:
-    yych = *++p;
-    if (yych == 'Z')
-      goto yy533;
-    if (yych == 'z')
-      goto yy533;
-    goto yy523;
-  yy842:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy843:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy844:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy847;
-    if (yych == 't')
-      goto yy847;
-    goto yy523;
-  yy845:
-    yych = *++p;
-    if (yych != '2')
-      goto yy523;
-    yych = *++p;
-    if (yych == '3')
-      goto yy533;
-    goto yy523;
-  yy847:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy848;
-    if (yych != 'p')
-      goto yy523;
-  yy848:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy849:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy865;
-    if (yych == 'a')
-      goto yy865;
-    goto yy523;
-  yy850:
-    yych = *++p;
-    if (yych <= 'Z') {
-      if (yych == 'T')
-        goto yy533;
-      if (yych <= 'Y')
-        goto yy523;
-      goto yy856;
-    } else {
-      if (yych <= 't') {
-        if (yych <= 's')
-          goto yy523;
-        goto yy533;
-      } else {
-        if (yych == 'z')
-          goto yy856;
-        goto yy523;
-      }
-    }
-  yy851:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'P')
-        goto yy853;
-      if (yych == 'p')
-        goto yy853;
-      goto yy523;
-    }
-  yy852:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy533;
-    if (yych == 'o')
-      goto yy533;
-    goto yy523;
-  yy853:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy854;
-    if (yych != 'h')
-      goto yy523;
-  yy854:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy855;
-    if (yych != 'e')
-      goto yy523;
-  yy855:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy533;
-    if (yych == 'r')
-      goto yy533;
-    goto yy523;
-  yy856:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy857;
-    if (yych != 'm')
-      goto yy523;
-  yy857:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy858;
-    if (yych != 'o')
-      goto yy523;
-  yy858:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy859;
-    if (yych != 'p')
-      goto yy523;
-  yy859:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy860;
-    if (yych != 'r')
-      goto yy523;
-  yy860:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy861;
-    if (yych != 'o')
-      goto yy523;
-  yy861:
-    yych = *++p;
-    if (yych == 'J')
-      goto yy862;
-    if (yych != 'j')
-      goto yy523;
-  yy862:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy863;
-    if (yych != 'e')
-      goto yy523;
-  yy863:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy864;
-    if (yych != 'c')
-      goto yy523;
-  yy864:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy865:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy866;
-    if (yych != 'l')
-      goto yy523;
-  yy866:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy533;
-    if (yych == 'k')
-      goto yy533;
-    goto yy523;
-  yy867:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych <= 'M') {
-        if (yych == 'L')
-          goto yy877;
-        goto yy523;
-      } else {
-        if (yych <= 'N')
-          goto yy878;
-        if (yych <= 'R')
-          goto yy523;
-        goto yy879;
-      }
-    } else {
-      if (yych <= 'm') {
-        if (yych == 'l')
-          goto yy877;
-        goto yy523;
-      } else {
-        if (yych <= 'n')
-          goto yy878;
-        if (yych == 's')
-          goto yy879;
-        goto yy523;
-      }
-    }
-  yy868:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy876;
-    if (yych == 'e')
-      goto yy876;
-    goto yy523;
-  yy869:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy871;
-    if (yych == 'c')
-      goto yy871;
-    goto yy523;
-  yy870:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy871:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy872;
-    if (yych != 'e')
-      goto yy523;
-  yy872:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy873;
-    if (yych != 't')
-      goto yy523;
-  yy873:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy874;
-    if (yych != 'i')
-      goto yy523;
-  yy874:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy875;
-    if (yych != 'm')
-      goto yy523;
-  yy875:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy876:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy533;
-    if (yych == 'd')
-      goto yy533;
-    goto yy523;
-  yy877:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy878:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy880;
-    if (yych == 'g')
-      goto yy880;
-    goto yy523;
-  yy879:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy533;
-    if (yych == 'h')
-      goto yy533;
-    goto yy523;
-  yy880:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy881;
-    if (yych != 'e')
-      goto yy523;
-  yy881:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy533;
-    if (yych == 'r')
-      goto yy533;
-    goto yy523;
-  yy882:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy900;
-    if (yych == 't')
-      goto yy900;
-    goto yy523;
-  yy883:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy884:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy533;
-    if (yych == 'm')
-      goto yy533;
-    goto yy523;
-  yy885:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'P')
-        goto yy533;
-      if (yych <= 'R')
-        goto yy523;
-      goto yy533;
-    } else {
-      if (yych <= 'p') {
-        if (yych <= 'o')
-          goto yy523;
-        goto yy533;
-      } else {
-        if (yych == 's')
-          goto yy533;
-        goto yy523;
-      }
-    }
-  yy886:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy894;
-    if (yych == 'i')
-      goto yy894;
-    goto yy523;
-  yy887:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy893;
-    if (yych == 'a')
-      goto yy893;
-    goto yy523;
-  yy888:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy891;
-    if (yych == 'o')
-      goto yy891;
-    goto yy523;
-  yy889:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy890;
-    if (yych != 'a')
-      goto yy523;
-  yy890:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == ':')
-        goto yy534;
-      goto yy523;
-    } else {
-      if (yych <= 'S')
-        goto yy533;
-      if (yych == 's')
-        goto yy533;
-      goto yy523;
-    }
-  yy891:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy892;
-    if (yych != 'u')
-      goto yy523;
-  yy892:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy893:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy894:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy895;
-    if (yych != 'u')
-      goto yy523;
-  yy895:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy896;
-    if (yych != 'm')
-      goto yy523;
-  yy896:
-    yych = *++p;
-    if (yych == 'X')
-      goto yy897;
-    if (yych != 'x')
-      goto yy523;
-  yy897:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy898;
-    if (yych != 't')
-      goto yy523;
-  yy898:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy899;
-    if (yych != 'r')
-      goto yy523;
-  yy899:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy533;
-    if (yych == 'a')
-      goto yy533;
-    goto yy523;
-  yy900:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy901;
-    if (yych != 'a')
-      goto yy523;
-  yy901:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy902;
-    if (yych != 'c')
-      goto yy523;
-  yy902:
-    yych = *++p;
-    if (yych == 'H')
-      goto yy903;
-    if (yych != 'h')
-      goto yy523;
-  yy903:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy904;
-    if (yych != 'm')
-      goto yy523;
-  yy904:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy905;
-    if (yych != 'e')
-      goto yy523;
-  yy905:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy906;
-    if (yych != 'n')
-      goto yy523;
-  yy906:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy907:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy908:
-    yych = *++p;
-    if (yych <= 'V') {
-      if (yych == 'R')
-        goto yy533;
-      if (yych <= 'U')
-        goto yy523;
-    } else {
-      if (yych <= 'r') {
-        if (yych <= 'q')
-          goto yy523;
-        goto yy533;
-      } else {
-        if (yych != 'v')
-          goto yy523;
-      }
-    }
-    yych = *++p;
-    if (yych == 'A')
-      goto yy910;
-    if (yych != 'a')
-      goto yy523;
-  yy910:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy911;
-    if (yych != 's')
-      goto yy523;
-  yy911:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy912;
-    if (yych != 'c')
-      goto yy523;
-  yy912:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy913;
-    if (yych != 'r')
-      goto yy523;
-  yy913:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy914;
-    if (yych != 'i')
-      goto yy523;
-  yy914:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy915;
-    if (yych != 'p')
-      goto yy523;
-  yy915:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy916:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy533;
-    if (yych == 'b')
-      goto yy533;
-    goto yy523;
-  yy917:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy918:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy925;
-    if (yych == 'n')
-      goto yy925;
-    goto yy523;
-  yy919:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy920:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy924;
-    if (yych == 'c')
-      goto yy924;
-    goto yy523;
-  yy921:
-    yych = *++p;
-    if (yych <= 'V') {
-      if (yych == 'T')
-        goto yy923;
-      if (yych <= 'U')
-        goto yy523;
-      goto yy533;
-    } else {
-      if (yych <= 't') {
-        if (yych <= 's')
-          goto yy523;
-        goto yy923;
-      } else {
-        if (yych == 'v')
-          goto yy533;
-        goto yy523;
-      }
-    }
-  yy922:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy533;
-    if (yych == 'i')
-      goto yy533;
-    goto yy523;
-  yy923:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy533;
-    if (yych == 'a')
-      goto yy533;
-    goto yy523;
-  yy924:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy925:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy926;
-    if (yych != 'a')
-      goto yy523;
-  yy926:
-    yych = *++p;
-    if (yych != '-')
-      goto yy523;
-    yych = *++p;
-    if (yych == 'P')
-      goto yy928;
-    if (yych != 'p')
-      goto yy523;
-  yy928:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy929;
-    if (yych != 'l')
-      goto yy523;
-  yy929:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy930;
-    if (yych != 'a')
-      goto yy523;
-  yy930:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy931;
-    if (yych != 'y')
-      goto yy523;
-  yy931:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych == 'C')
-        goto yy932;
-      if (yych <= 'R')
-        goto yy523;
-      goto yy933;
-    } else {
-      if (yych <= 'c') {
-        if (yych <= 'b')
-          goto yy523;
-      } else {
-        if (yych == 's')
-          goto yy933;
-        goto yy523;
-      }
-    }
-  yy932:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy938;
-    if (yych == 'o')
-      goto yy938;
-    goto yy523;
-  yy933:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy934;
-    if (yych != 'i')
-      goto yy523;
-  yy934:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy935;
-    if (yych != 'n')
-      goto yy523;
-  yy935:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy936;
-    if (yych != 'g')
-      goto yy523;
-  yy936:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy937;
-    if (yych != 'l')
-      goto yy523;
-  yy937:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  yy938:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy939;
-    if (yych != 'n')
-      goto yy523;
-  yy939:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy940;
-    if (yych != 't')
-      goto yy523;
-  yy940:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy941;
-    if (yych != 'a')
-      goto yy523;
-  yy941:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy942;
-    if (yych != 'i')
-      goto yy523;
-  yy942:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy943;
-    if (yych != 'n')
-      goto yy523;
-  yy943:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy944;
-    if (yych != 'e')
-      goto yy523;
-  yy944:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy533;
-    if (yych == 'r')
-      goto yy533;
-    goto yy523;
-  yy945:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy533;
-    if (yych == 's')
-      goto yy533;
-    goto yy523;
-  yy946:
-    yych = *++p;
-    if (yych <= 'N') {
-      if (yych <= 'A') {
-        if (yych <= '@')
-          goto yy523;
-        goto yy968;
-      } else {
-        if (yych <= 'L')
-          goto yy523;
-        if (yych <= 'M')
-          goto yy969;
-        goto yy970;
-      }
-    } else {
-      if (yych <= 'l') {
-        if (yych == 'a')
-          goto yy968;
-        goto yy523;
-      } else {
-        if (yych <= 'm')
-          goto yy969;
-        if (yych <= 'n')
-          goto yy970;
-        goto yy523;
-      }
-    }
-  yy947:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy955;
-    if (yych == 'r')
-      goto yy955;
-    goto yy523;
-  yy948:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'L')
-        goto yy952;
-      if (yych <= 'O')
-        goto yy523;
-      goto yy533;
-    } else {
-      if (yych <= 'l') {
-        if (yych <= 'k')
-          goto yy523;
-        goto yy952;
-      } else {
-        if (yych == 'p')
-          goto yy533;
-        goto yy523;
-      }
-    }
-  yy949:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy951;
-    if (yych == 'i')
-      goto yy951;
-    goto yy523;
-  yy950:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy533;
-    if (yych == 'd')
-      goto yy533;
-    goto yy523;
-  yy951:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy533;
-    if (yych == 'd')
-      goto yy533;
-    goto yy523;
-  yy952:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy953;
-    if (yych != 'l')
-      goto yy523;
-  yy953:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy954;
-    if (yych != 't')
-      goto yy523;
-  yy954:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy533;
-    if (yych == 'o')
-      goto yy533;
-    goto yy523;
-  yy955:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy956;
-    if (yych != 'o')
-      goto yy523;
-  yy956:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy957;
-    if (yych != 'm')
-      goto yy523;
-  yy957:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy958;
-    if (yych != 'e')
-      goto yy523;
-  yy958:
-    yych = *++p;
-    if (yych == '-')
-      goto yy959;
-    if (yych == ':')
-      goto yy534;
-    goto yy523;
-  yy959:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy960;
-    if (yych != 'e')
-      goto yy523;
-  yy960:
-    yych = *++p;
-    if (yych == 'X')
-      goto yy961;
-    if (yych != 'x')
-      goto yy523;
-  yy961:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy962;
-    if (yych != 't')
-      goto yy523;
-  yy962:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy963;
-    if (yych != 'e')
-      goto yy523;
-  yy963:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy964;
-    if (yych != 'n')
-      goto yy523;
-  yy964:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy965;
-    if (yych != 's')
-      goto yy523;
-  yy965:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy966;
-    if (yych != 'i')
-      goto yy523;
-  yy966:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy967;
-    if (yych != 'o')
-      goto yy523;
-  yy967:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy533;
-    if (yych == 'n')
-      goto yy533;
-    goto yy523;
-  yy968:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy533;
-    if (yych == 'p')
-      goto yy533;
-    goto yy523;
-  yy969:
-    yych = *++p;
-    if (yych == '-')
-      goto yy974;
-    goto yy523;
-  yy970:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy971;
-    if (yych != 't')
-      goto yy523;
-  yy971:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy972;
-    if (yych != 'e')
-      goto yy523;
-  yy972:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy973;
-    if (yych != 'n')
-      goto yy523;
-  yy973:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy533;
-    if (yych == 't')
-      goto yy533;
-    goto yy523;
-  yy974:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy975;
-    if (yych != 'e')
-      goto yy523;
-  yy975:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy976;
-    if (yych != 'v')
-      goto yy523;
-  yy976:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy977;
-    if (yych != 'e')
-      goto yy523;
-  yy977:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy978;
-    if (yych != 'n')
-      goto yy523;
-  yy978:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy979;
-    if (yych != 't')
-      goto yy523;
-  yy979:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy980;
-    if (yych != 'b')
-      goto yy523;
-  yy980:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy981;
-    if (yych != 'r')
-      goto yy523;
-  yy981:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy982;
-    if (yych != 'i')
-      goto yy523;
-  yy982:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy983;
-    if (yych != 't')
-      goto yy523;
-  yy983:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy984;
-    if (yych != 'e')
-      goto yy523;
-  yy984:
-    yych = *++p;
-    if (yych != '-')
-      goto yy523;
-    yych = *++p;
-    if (yych == 'A')
-      goto yy986;
-    if (yych != 'a')
-      goto yy523;
-  yy986:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy987;
-    if (yych != 't')
-      goto yy523;
-  yy987:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy988;
-    if (yych != 't')
-      goto yy523;
-  yy988:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy989;
-    if (yych != 'e')
-      goto yy523;
-  yy989:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy990;
-    if (yych != 'n')
-      goto yy523;
-  yy990:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy991;
-    if (yych != 'd')
-      goto yy523;
-  yy991:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy992;
-    if (yych != 'e')
-      goto yy523;
-  yy992:
-    ++p;
-    if ((yych = *p) == 'E')
-      goto yy533;
-    if (yych == 'e')
-      goto yy533;
-    goto yy523;
-  }
-}
-
-// Try to match email autolink after first <, returning num of chars matched.
-bufsize_t _scan_autolink_email(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   128, 0,   128, 128, 128, 128, 128, 0,   0,
-        128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 0,   0,   0,   128, 0,   128, 0,   128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 0,   0,   0,   128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= '?') {
-      if (yych <= ')') {
-        if (yych <= ' ') {
-          if (yych != '\n')
-            goto yy997;
-        } else {
-          if (yych == '"')
-            goto yy997;
-          if (yych <= '\'')
-            goto yy996;
-          goto yy997;
-        }
-      } else {
-        if (yych <= '9') {
-          if (yych == ',')
-            goto yy997;
-          goto yy996;
-        } else {
-          if (yych == '=')
-            goto yy996;
-          if (yych <= '>')
-            goto yy997;
-          goto yy996;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= ']') {
-          if (yych <= '@')
-            goto yy997;
-          if (yych <= 'Z')
-            goto yy996;
-          goto yy997;
-        } else {
-          if (yych <= '~')
-            goto yy996;
-          if (yych <= 0x7F)
-            goto yy997;
-          if (yych >= 0xC2)
-            goto yy998;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1000;
-          if (yych == 0xED)
-            goto yy1005;
-          goto yy1001;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1002;
-          if (yych <= 0xF3)
-            goto yy1003;
-          if (yych <= 0xF4)
-            goto yy1004;
-        }
-      }
-    }
-  yy995 : { return 0; }
-  yy996:
-    yych = *(marker = ++p);
-    if (yych <= ',') {
-      if (yych <= '"') {
-        if (yych == '!')
-          goto yy1008;
-        goto yy995;
-      } else {
-        if (yych <= '\'')
-          goto yy1008;
-        if (yych <= ')')
-          goto yy995;
-        if (yych <= '+')
-          goto yy1008;
-        goto yy995;
-      }
-    } else {
-      if (yych <= '>') {
-        if (yych <= '9')
-          goto yy1008;
-        if (yych == '=')
-          goto yy1008;
-        goto yy995;
-      } else {
-        if (yych <= 'Z')
-          goto yy1008;
-        if (yych <= ']')
-          goto yy995;
-        if (yych <= '~')
-          goto yy1008;
-        goto yy995;
-      }
-    }
-  yy997:
-    yych = *++p;
-    goto yy995;
-  yy998:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy999;
-    if (yych <= 0xBF)
-      goto yy997;
-  yy999:
-    p = marker;
-    goto yy995;
-  yy1000:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy999;
-    if (yych <= 0xBF)
-      goto yy998;
-    goto yy999;
-  yy1001:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy999;
-    if (yych <= 0xBF)
-      goto yy998;
-    goto yy999;
-  yy1002:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy999;
-    if (yych <= 0xBF)
-      goto yy1001;
-    goto yy999;
-  yy1003:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy999;
-    if (yych <= 0xBF)
-      goto yy1001;
-    goto yy999;
-  yy1004:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy999;
-    if (yych <= 0x8F)
-      goto yy1001;
-    goto yy999;
-  yy1005:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy999;
-    if (yych <= 0x9F)
-      goto yy998;
-    goto yy999;
-  yy1006:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy999;
-      if (yych <= '9')
-        goto yy1009;
-      goto yy999;
-    } else {
-      if (yych <= 'Z')
-        goto yy1009;
-      if (yych <= '`')
-        goto yy999;
-      if (yych <= 'z')
-        goto yy1009;
-      goto yy999;
-    }
-  yy1007:
-    ++p;
-    yych = *p;
-  yy1008:
-    if (yybm[0 + yych] & 128) {
-      goto yy1007;
-    }
-    if (yych <= '>')
-      goto yy999;
-    if (yych <= '@')
-      goto yy1006;
-    goto yy999;
-  yy1009:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1011;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1011;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1011;
-        goto yy999;
-      }
-    }
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1139;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1140;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1140;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1140;
-        goto yy999;
-      }
-    }
-  yy1011:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1139;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1140;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1140;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1140;
-        goto yy999;
-      }
-    }
-  yy1012:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy999;
-      if (yych <= '9')
-        goto yy1015;
-      goto yy999;
-    } else {
-      if (yych <= 'Z')
-        goto yy1015;
-      if (yych <= '`')
-        goto yy999;
-      if (yych <= 'z')
-        goto yy1015;
-      goto yy999;
-    }
-  yy1013:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy1015:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1017;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1017;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1017;
-        goto yy999;
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1018;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1019;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1019;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1019;
-        goto yy999;
-      }
-    }
-  yy1017:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1019;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1019;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1019;
-        goto yy999;
-      }
-    }
-  yy1018:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1020;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1021;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1021;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1021;
-        goto yy999;
-      }
-    }
-  yy1019:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1021;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1021;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1021;
-        goto yy999;
-      }
-    }
-  yy1020:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1022;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1023;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1023;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1023;
-        goto yy999;
-      }
-    }
-  yy1021:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1023;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1023;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1023;
-        goto yy999;
-      }
-    }
-  yy1022:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1024;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1025;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1025;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1025;
-        goto yy999;
-      }
-    }
-  yy1023:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1025;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1025;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1025;
-        goto yy999;
-      }
-    }
-  yy1024:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1026;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1027;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1027;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1027;
-        goto yy999;
-      }
-    }
-  yy1025:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1027;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1027;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1027;
-        goto yy999;
-      }
-    }
-  yy1026:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1028;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1029;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1029;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1029;
-        goto yy999;
-      }
-    }
-  yy1027:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1029;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1029;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1029;
-        goto yy999;
-      }
-    }
-  yy1028:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1030;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1031;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1031;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1031;
-        goto yy999;
-      }
-    }
-  yy1029:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1031;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1031;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1031;
-        goto yy999;
-      }
-    }
-  yy1030:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1032;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1033;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1033;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1033;
-        goto yy999;
-      }
-    }
-  yy1031:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1033;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1033;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1033;
-        goto yy999;
-      }
-    }
-  yy1032:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1034;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1035;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1035;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1035;
-        goto yy999;
-      }
-    }
-  yy1033:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1035;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1035;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1035;
-        goto yy999;
-      }
-    }
-  yy1034:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1036;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1037;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1037;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1037;
-        goto yy999;
-      }
-    }
-  yy1035:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1037;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1037;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1037;
-        goto yy999;
-      }
-    }
-  yy1036:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1038;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1039;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1039;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1039;
-        goto yy999;
-      }
-    }
-  yy1037:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1039;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1039;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1039;
-        goto yy999;
-      }
-    }
-  yy1038:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1040;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1041;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1041;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1041;
-        goto yy999;
-      }
-    }
-  yy1039:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1041;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1041;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1041;
-        goto yy999;
-      }
-    }
-  yy1040:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1042;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1043;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1043;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1043;
-        goto yy999;
-      }
-    }
-  yy1041:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1043;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1043;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1043;
-        goto yy999;
-      }
-    }
-  yy1042:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1044;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1045;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1045;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1045;
-        goto yy999;
-      }
-    }
-  yy1043:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1045;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1045;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1045;
-        goto yy999;
-      }
-    }
-  yy1044:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1046;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1047;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1047;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1047;
-        goto yy999;
-      }
-    }
-  yy1045:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1047;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1047;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1047;
-        goto yy999;
-      }
-    }
-  yy1046:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1048;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1049;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1049;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1049;
-        goto yy999;
-      }
-    }
-  yy1047:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1049;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1049;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1049;
-        goto yy999;
-      }
-    }
-  yy1048:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1050;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1051;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1051;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1051;
-        goto yy999;
-      }
-    }
-  yy1049:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1051;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1051;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1051;
-        goto yy999;
-      }
-    }
-  yy1050:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1052;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1053;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1053;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1053;
-        goto yy999;
-      }
-    }
-  yy1051:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1053;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1053;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1053;
-        goto yy999;
-      }
-    }
-  yy1052:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1054;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1055;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1055;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1055;
-        goto yy999;
-      }
-    }
-  yy1053:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1055;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1055;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1055;
-        goto yy999;
-      }
-    }
-  yy1054:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1056;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1057;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1057;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1057;
-        goto yy999;
-      }
-    }
-  yy1055:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1057;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1057;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1057;
-        goto yy999;
-      }
-    }
-  yy1056:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1058;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1059;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1059;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1059;
-        goto yy999;
-      }
-    }
-  yy1057:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1059;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1059;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1059;
-        goto yy999;
-      }
-    }
-  yy1058:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1060;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1061;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1061;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1061;
-        goto yy999;
-      }
-    }
-  yy1059:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1061;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1061;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1061;
-        goto yy999;
-      }
-    }
-  yy1060:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1062;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1063;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1063;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1063;
-        goto yy999;
-      }
-    }
-  yy1061:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1063;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1063;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1063;
-        goto yy999;
-      }
-    }
-  yy1062:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1064;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1065;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1065;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1065;
-        goto yy999;
-      }
-    }
-  yy1063:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1065;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1065;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1065;
-        goto yy999;
-      }
-    }
-  yy1064:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1066;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1067;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1067;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1067;
-        goto yy999;
-      }
-    }
-  yy1065:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1067;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1067;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1067;
-        goto yy999;
-      }
-    }
-  yy1066:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1068;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1069;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1069;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1069;
-        goto yy999;
-      }
-    }
-  yy1067:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1069;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1069;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1069;
-        goto yy999;
-      }
-    }
-  yy1068:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1070;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1071;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1071;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1071;
-        goto yy999;
-      }
-    }
-  yy1069:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1071;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1071;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1071;
-        goto yy999;
-      }
-    }
-  yy1070:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1072;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1073;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1073;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1073;
-        goto yy999;
-      }
-    }
-  yy1071:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1073;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1073;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1073;
-        goto yy999;
-      }
-    }
-  yy1072:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1074;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1075;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1075;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1075;
-        goto yy999;
-      }
-    }
-  yy1073:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1075;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1075;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1075;
-        goto yy999;
-      }
-    }
-  yy1074:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1076;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1077;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1077;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1077;
-        goto yy999;
-      }
-    }
-  yy1075:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1077;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1077;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1077;
-        goto yy999;
-      }
-    }
-  yy1076:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1078;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1079;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1079;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1079;
-        goto yy999;
-      }
-    }
-  yy1077:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1079;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1079;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1079;
-        goto yy999;
-      }
-    }
-  yy1078:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1080;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1081;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1081;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1081;
-        goto yy999;
-      }
-    }
-  yy1079:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1081;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1081;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1081;
-        goto yy999;
-      }
-    }
-  yy1080:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1082;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1083;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1083;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1083;
-        goto yy999;
-      }
-    }
-  yy1081:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1083;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1083;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1083;
-        goto yy999;
-      }
-    }
-  yy1082:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1084;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1085;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1085;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1085;
-        goto yy999;
-      }
-    }
-  yy1083:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1085;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1085;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1085;
-        goto yy999;
-      }
-    }
-  yy1084:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1086;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1087;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1087;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1087;
-        goto yy999;
-      }
-    }
-  yy1085:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1087;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1087;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1087;
-        goto yy999;
-      }
-    }
-  yy1086:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1088;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1089;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1089;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1089;
-        goto yy999;
-      }
-    }
-  yy1087:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1089;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1089;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1089;
-        goto yy999;
-      }
-    }
-  yy1088:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1090;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1091;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1091;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1091;
-        goto yy999;
-      }
-    }
-  yy1089:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1091;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1091;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1091;
-        goto yy999;
-      }
-    }
-  yy1090:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1092;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1093;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1093;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1093;
-        goto yy999;
-      }
-    }
-  yy1091:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1093;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1093;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1093;
-        goto yy999;
-      }
-    }
-  yy1092:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1094;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1095;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1095;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1095;
-        goto yy999;
-      }
-    }
-  yy1093:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1095;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1095;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1095;
-        goto yy999;
-      }
-    }
-  yy1094:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1096;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1097;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1097;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1097;
-        goto yy999;
-      }
-    }
-  yy1095:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1097;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1097;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1097;
-        goto yy999;
-      }
-    }
-  yy1096:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1098;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1099;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1099;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1099;
-        goto yy999;
-      }
-    }
-  yy1097:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1099;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1099;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1099;
-        goto yy999;
-      }
-    }
-  yy1098:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1100;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1101;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1101;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1101;
-        goto yy999;
-      }
-    }
-  yy1099:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1101;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1101;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1101;
-        goto yy999;
-      }
-    }
-  yy1100:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1102;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1103;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1103;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1103;
-        goto yy999;
-      }
-    }
-  yy1101:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1103;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1103;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1103;
-        goto yy999;
-      }
-    }
-  yy1102:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1104;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1105;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1105;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1105;
-        goto yy999;
-      }
-    }
-  yy1103:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1105;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1105;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1105;
-        goto yy999;
-      }
-    }
-  yy1104:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1106;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1107;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1107;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1107;
-        goto yy999;
-      }
-    }
-  yy1105:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1107;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1107;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1107;
-        goto yy999;
-      }
-    }
-  yy1106:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1108;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1109;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1109;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1109;
-        goto yy999;
-      }
-    }
-  yy1107:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1109;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1109;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1109;
-        goto yy999;
-      }
-    }
-  yy1108:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1110;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1111;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1111;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1111;
-        goto yy999;
-      }
-    }
-  yy1109:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1111;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1111;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1111;
-        goto yy999;
-      }
-    }
-  yy1110:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1112;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1113;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1113;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1113;
-        goto yy999;
-      }
-    }
-  yy1111:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1113;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1113;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1113;
-        goto yy999;
-      }
-    }
-  yy1112:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1114;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1115;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1115;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1115;
-        goto yy999;
-      }
-    }
-  yy1113:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1115;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1115;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1115;
-        goto yy999;
-      }
-    }
-  yy1114:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1116;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1117;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1117;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1117;
-        goto yy999;
-      }
-    }
-  yy1115:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1117;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1117;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1117;
-        goto yy999;
-      }
-    }
-  yy1116:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1118;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1119;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1119;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1119;
-        goto yy999;
-      }
-    }
-  yy1117:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1119;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1119;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1119;
-        goto yy999;
-      }
-    }
-  yy1118:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1120;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1121;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1121;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1121;
-        goto yy999;
-      }
-    }
-  yy1119:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1121;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1121;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1121;
-        goto yy999;
-      }
-    }
-  yy1120:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1122;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1123;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1123;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1123;
-        goto yy999;
-      }
-    }
-  yy1121:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1123;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1123;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1123;
-        goto yy999;
-      }
-    }
-  yy1122:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1124;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1125;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1125;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1125;
-        goto yy999;
-      }
-    }
-  yy1123:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1125;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1125;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1125;
-        goto yy999;
-      }
-    }
-  yy1124:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1126;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1127;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1127;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1127;
-        goto yy999;
-      }
-    }
-  yy1125:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1127;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1127;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1127;
-        goto yy999;
-      }
-    }
-  yy1126:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1128;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1129;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1129;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1129;
-        goto yy999;
-      }
-    }
-  yy1127:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1129;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1129;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1129;
-        goto yy999;
-      }
-    }
-  yy1128:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1130;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1131;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1131;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1131;
-        goto yy999;
-      }
-    }
-  yy1129:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1131;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1131;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1131;
-        goto yy999;
-      }
-    }
-  yy1130:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1132;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1133;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1133;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1133;
-        goto yy999;
-      }
-    }
-  yy1131:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1133;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1133;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1133;
-        goto yy999;
-      }
-    }
-  yy1132:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1134;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1135;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1135;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1135;
-        goto yy999;
-      }
-    }
-  yy1133:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1135;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1135;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1135;
-        goto yy999;
-      }
-    }
-  yy1134:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1136;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1137;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1137;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1137;
-        goto yy999;
-      }
-    }
-  yy1135:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1137;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1137;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1137;
-        goto yy999;
-      }
-    }
-  yy1136:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy999;
-      if (yych <= '9')
-        goto yy1138;
-      goto yy999;
-    } else {
-      if (yych <= 'Z')
-        goto yy1138;
-      if (yych <= '`')
-        goto yy999;
-      if (yych <= 'z')
-        goto yy1138;
-      goto yy999;
-    }
-  yy1137:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= '-')
-          goto yy999;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych >= ':')
-          goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1138:
-    ++p;
-    yych = *p;
-    if (yych == '.')
-      goto yy1012;
-    if (yych == '>')
-      goto yy1013;
-    goto yy999;
-  yy1139:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1141;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1142;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1142;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1142;
-        goto yy999;
-      }
-    }
-  yy1140:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1142;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1142;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1142;
-        goto yy999;
-      }
-    }
-  yy1141:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1143;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1144;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1144;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1144;
-        goto yy999;
-      }
-    }
-  yy1142:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1144;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1144;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1144;
-        goto yy999;
-      }
-    }
-  yy1143:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1145;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1146;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1146;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1146;
-        goto yy999;
-      }
-    }
-  yy1144:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1146;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1146;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1146;
-        goto yy999;
-      }
-    }
-  yy1145:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1147;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1148;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1148;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1148;
-        goto yy999;
-      }
-    }
-  yy1146:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1148;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1148;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1148;
-        goto yy999;
-      }
-    }
-  yy1147:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1149;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1150;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1150;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1150;
-        goto yy999;
-      }
-    }
-  yy1148:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1150;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1150;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1150;
-        goto yy999;
-      }
-    }
-  yy1149:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1151;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1152;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1152;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1152;
-        goto yy999;
-      }
-    }
-  yy1150:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1152;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1152;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1152;
-        goto yy999;
-      }
-    }
-  yy1151:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1153;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1154;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1154;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1154;
-        goto yy999;
-      }
-    }
-  yy1152:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1154;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1154;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1154;
-        goto yy999;
-      }
-    }
-  yy1153:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1155;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1156;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1156;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1156;
-        goto yy999;
-      }
-    }
-  yy1154:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1156;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1156;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1156;
-        goto yy999;
-      }
-    }
-  yy1155:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1157;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1158;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1158;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1158;
-        goto yy999;
-      }
-    }
-  yy1156:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1158;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1158;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1158;
-        goto yy999;
-      }
-    }
-  yy1157:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1159;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1160;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1160;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1160;
-        goto yy999;
-      }
-    }
-  yy1158:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1160;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1160;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1160;
-        goto yy999;
-      }
-    }
-  yy1159:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1161;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1162;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1162;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1162;
-        goto yy999;
-      }
-    }
-  yy1160:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1162;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1162;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1162;
-        goto yy999;
-      }
-    }
-  yy1161:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1163;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1164;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1164;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1164;
-        goto yy999;
-      }
-    }
-  yy1162:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1164;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1164;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1164;
-        goto yy999;
-      }
-    }
-  yy1163:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1165;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1166;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1166;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1166;
-        goto yy999;
-      }
-    }
-  yy1164:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1166;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1166;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1166;
-        goto yy999;
-      }
-    }
-  yy1165:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1167;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1168;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1168;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1168;
-        goto yy999;
-      }
-    }
-  yy1166:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1168;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1168;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1168;
-        goto yy999;
-      }
-    }
-  yy1167:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1169;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1170;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1170;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1170;
-        goto yy999;
-      }
-    }
-  yy1168:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1170;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1170;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1170;
-        goto yy999;
-      }
-    }
-  yy1169:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1171;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1172;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1172;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1172;
-        goto yy999;
-      }
-    }
-  yy1170:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1172;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1172;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1172;
-        goto yy999;
-      }
-    }
-  yy1171:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1173;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1174;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1174;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1174;
-        goto yy999;
-      }
-    }
-  yy1172:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1174;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1174;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1174;
-        goto yy999;
-      }
-    }
-  yy1173:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1175;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1176;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1176;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1176;
-        goto yy999;
-      }
-    }
-  yy1174:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1176;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1176;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1176;
-        goto yy999;
-      }
-    }
-  yy1175:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1177;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1178;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1178;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1178;
-        goto yy999;
-      }
-    }
-  yy1176:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1178;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1178;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1178;
-        goto yy999;
-      }
-    }
-  yy1177:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1179;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1180;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1180;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1180;
-        goto yy999;
-      }
-    }
-  yy1178:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1180;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1180;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1180;
-        goto yy999;
-      }
-    }
-  yy1179:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1181;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1182;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1182;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1182;
-        goto yy999;
-      }
-    }
-  yy1180:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1182;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1182;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1182;
-        goto yy999;
-      }
-    }
-  yy1181:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1183;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1184;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1184;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1184;
-        goto yy999;
-      }
-    }
-  yy1182:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1184;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1184;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1184;
-        goto yy999;
-      }
-    }
-  yy1183:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1185;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1186;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1186;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1186;
-        goto yy999;
-      }
-    }
-  yy1184:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1186;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1186;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1186;
-        goto yy999;
-      }
-    }
-  yy1185:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1187;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1188;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1188;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1188;
-        goto yy999;
-      }
-    }
-  yy1186:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1188;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1188;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1188;
-        goto yy999;
-      }
-    }
-  yy1187:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1189;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1190;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1190;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1190;
-        goto yy999;
-      }
-    }
-  yy1188:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1190;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1190;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1190;
-        goto yy999;
-      }
-    }
-  yy1189:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1191;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1192;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1192;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1192;
-        goto yy999;
-      }
-    }
-  yy1190:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1192;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1192;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1192;
-        goto yy999;
-      }
-    }
-  yy1191:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1193;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1194;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1194;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1194;
-        goto yy999;
-      }
-    }
-  yy1192:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1194;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1194;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1194;
-        goto yy999;
-      }
-    }
-  yy1193:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1195;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1196;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1196;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1196;
-        goto yy999;
-      }
-    }
-  yy1194:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1196;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1196;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1196;
-        goto yy999;
-      }
-    }
-  yy1195:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1197;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1198;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1198;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1198;
-        goto yy999;
-      }
-    }
-  yy1196:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1198;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1198;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1198;
-        goto yy999;
-      }
-    }
-  yy1197:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1199;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1200;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1200;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1200;
-        goto yy999;
-      }
-    }
-  yy1198:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1200;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1200;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1200;
-        goto yy999;
-      }
-    }
-  yy1199:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1201;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1202;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1202;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1202;
-        goto yy999;
-      }
-    }
-  yy1200:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1202;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1202;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1202;
-        goto yy999;
-      }
-    }
-  yy1201:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1203;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1204;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1204;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1204;
-        goto yy999;
-      }
-    }
-  yy1202:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1204;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1204;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1204;
-        goto yy999;
-      }
-    }
-  yy1203:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1205;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1206;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1206;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1206;
-        goto yy999;
-      }
-    }
-  yy1204:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1206;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1206;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1206;
-        goto yy999;
-      }
-    }
-  yy1205:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1207;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1208;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1208;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1208;
-        goto yy999;
-      }
-    }
-  yy1206:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1208;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1208;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1208;
-        goto yy999;
-      }
-    }
-  yy1207:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1209;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1210;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1210;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1210;
-        goto yy999;
-      }
-    }
-  yy1208:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1210;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1210;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1210;
-        goto yy999;
-      }
-    }
-  yy1209:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1211;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1212;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1212;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1212;
-        goto yy999;
-      }
-    }
-  yy1210:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1212;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1212;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1212;
-        goto yy999;
-      }
-    }
-  yy1211:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1213;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1214;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1214;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1214;
-        goto yy999;
-      }
-    }
-  yy1212:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1214;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1214;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1214;
-        goto yy999;
-      }
-    }
-  yy1213:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1215;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1216;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1216;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1216;
-        goto yy999;
-      }
-    }
-  yy1214:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1216;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1216;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1216;
-        goto yy999;
-      }
-    }
-  yy1215:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1217;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1218;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1218;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1218;
-        goto yy999;
-      }
-    }
-  yy1216:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1218;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1218;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1218;
-        goto yy999;
-      }
-    }
-  yy1217:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1219;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1220;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1220;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1220;
-        goto yy999;
-      }
-    }
-  yy1218:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1220;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1220;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1220;
-        goto yy999;
-      }
-    }
-  yy1219:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1221;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1222;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1222;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1222;
-        goto yy999;
-      }
-    }
-  yy1220:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1222;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1222;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1222;
-        goto yy999;
-      }
-    }
-  yy1221:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1223;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1224;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1224;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1224;
-        goto yy999;
-      }
-    }
-  yy1222:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1224;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1224;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1224;
-        goto yy999;
-      }
-    }
-  yy1223:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1225;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1226;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1226;
-        goto yy999;
-      }
-    }
-  yy1224:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1226;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1226;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1226;
-        goto yy999;
-      }
-    }
-  yy1225:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1227;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1228;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1228;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1228;
-        goto yy999;
-      }
-    }
-  yy1226:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1228;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1228;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1228;
-        goto yy999;
-      }
-    }
-  yy1227:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1229;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1230;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1230;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1230;
-        goto yy999;
-      }
-    }
-  yy1228:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1230;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1230;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1230;
-        goto yy999;
-      }
-    }
-  yy1229:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1231;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1232;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1232;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1232;
-        goto yy999;
-      }
-    }
-  yy1230:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1232;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1232;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1232;
-        goto yy999;
-      }
-    }
-  yy1231:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1233;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1234;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1234;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1234;
-        goto yy999;
-      }
-    }
-  yy1232:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1234;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1234;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1234;
-        goto yy999;
-      }
-    }
-  yy1233:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1235;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1236;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1236;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1236;
-        goto yy999;
-      }
-    }
-  yy1234:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1236;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1236;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1236;
-        goto yy999;
-      }
-    }
-  yy1235:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1237;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1238;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1238;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1238;
-        goto yy999;
-      }
-    }
-  yy1236:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1238;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1238;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1238;
-        goto yy999;
-      }
-    }
-  yy1237:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1239;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1240;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1240;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1240;
-        goto yy999;
-      }
-    }
-  yy1238:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1240;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1240;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1240;
-        goto yy999;
-      }
-    }
-  yy1239:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1241;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1242;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1242;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1242;
-        goto yy999;
-      }
-    }
-  yy1240:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1242;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1242;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1242;
-        goto yy999;
-      }
-    }
-  yy1241:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1243;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1244;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1244;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1244;
-        goto yy999;
-      }
-    }
-  yy1242:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1244;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1244;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1244;
-        goto yy999;
-      }
-    }
-  yy1243:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1245;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1246;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1246;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1246;
-        goto yy999;
-      }
-    }
-  yy1244:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1246;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1246;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1246;
-        goto yy999;
-      }
-    }
-  yy1245:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1247;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1248;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1248;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1248;
-        goto yy999;
-      }
-    }
-  yy1246:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1248;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1248;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1248;
-        goto yy999;
-      }
-    }
-  yy1247:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1249;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1250;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1250;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1250;
-        goto yy999;
-      }
-    }
-  yy1248:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1250;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1250;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1250;
-        goto yy999;
-      }
-    }
-  yy1249:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1251;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1252;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1252;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1252;
-        goto yy999;
-      }
-    }
-  yy1250:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1252;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1252;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1252;
-        goto yy999;
-      }
-    }
-  yy1251:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1253;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1254;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1254;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1254;
-        goto yy999;
-      }
-    }
-  yy1252:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1254;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1254;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1254;
-        goto yy999;
-      }
-    }
-  yy1253:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1255;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1256;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1256;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1256;
-        goto yy999;
-      }
-    }
-  yy1254:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1256;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1256;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1256;
-        goto yy999;
-      }
-    }
-  yy1255:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1257;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1258;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1258;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1258;
-        goto yy999;
-      }
-    }
-  yy1256:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych >= '.')
-          goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1258;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1258;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1258;
-        goto yy999;
-      }
-    }
-  yy1257:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy999;
-      if (yych <= '9')
-        goto yy1138;
-      goto yy999;
-    } else {
-      if (yych <= 'Z')
-        goto yy1138;
-      if (yych <= '`')
-        goto yy999;
-      if (yych <= 'z')
-        goto yy1138;
-      goto yy999;
-    }
-  yy1258:
-    ++p;
-    if ((yych = *p) <= '=') {
-      if (yych <= '.') {
-        if (yych <= '-')
-          goto yy999;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1138;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1138;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1138;
-        goto yy999;
-      }
-    }
-  }
-}
-
-// Try to match an HTML tag after first <, returning num of chars matched.
-bufsize_t _scan_html_tag(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        /* table 1 .. 8: 0 */
-        0,   230, 230, 230, 230, 230, 230, 230, 230, 199, 199, 199, 199, 199,
-        230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
-        230, 230, 230, 230, 199, 230, 70,  230, 230, 230, 230, 134, 230, 230,
-        230, 230, 230, 254, 246, 230, 254, 254, 254, 254, 254, 254, 254, 254,
-        254, 254, 246, 230, 198, 198, 196, 230, 230, 254, 254, 254, 254, 254,
-        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
-        254, 254, 254, 254, 254, 254, 254, 230, 230, 226, 230, 246, 198, 254,
-        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
-        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 230, 230, 230,
-        230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-        /* table 9 .. 11: 256 */
-        0,   160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 32,  160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 128, 160, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= '`') {
-      if (yych <= '.') {
-        if (yych <= '\n') {
-          if (yych <= '\t')
-            goto yy1266;
-        } else {
-          if (yych == '!')
-            goto yy1264;
-          goto yy1266;
-        }
-      } else {
-        if (yych <= '?') {
-          if (yych <= '/')
-            goto yy1263;
-          if (yych <= '>')
-            goto yy1266;
-          goto yy1265;
-        } else {
-          if (yych <= '@')
-            goto yy1266;
-          if (yych <= 'Z')
-            goto yy1262;
-          goto yy1266;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= 'z')
-            goto yy1262;
-          if (yych <= 0x7F)
-            goto yy1266;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1267;
-          if (yych <= 0xE0)
-            goto yy1269;
-          goto yy1270;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1274;
-          if (yych <= 0xEF)
-            goto yy1270;
-          goto yy1271;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1272;
-          if (yych <= 0xF4)
-            goto yy1273;
-        }
-      }
-    }
-  yy1261 : { return 0; }
-  yy1262:
-    yych = *(marker = ++p);
-    if (yych <= '/') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1261;
-        if (yych <= '\r')
-          goto yy1366;
-        if (yych <= 0x1F)
-          goto yy1261;
-        goto yy1366;
-      } else {
-        if (yych == '-')
-          goto yy1364;
-        if (yych <= '.')
-          goto yy1261;
-        goto yy1368;
-      }
-    } else {
-      if (yych <= '@') {
-        if (yych <= '9')
-          goto yy1364;
-        if (yych == '>')
-          goto yy1285;
-        goto yy1261;
-      } else {
-        if (yych <= 'Z')
-          goto yy1364;
-        if (yych <= '`')
-          goto yy1261;
-        if (yych <= 'z')
-          goto yy1364;
-        goto yy1261;
-      }
-    }
-  yy1263:
-    yych = *(marker = ++p);
-    if (yych <= '@')
-      goto yy1261;
-    if (yych <= 'Z')
-      goto yy1360;
-    if (yych <= '`')
-      goto yy1261;
-    if (yych <= 'z')
-      goto yy1360;
-    goto yy1261;
-  yy1264:
-    yych = *(marker = ++p);
-    if (yybm[256 + yych] & 64) {
-      goto yy1295;
-    }
-    if (yych == '-')
-      goto yy1297;
-    if (yych <= '@')
-      goto yy1261;
-    if (yych <= '[')
-      goto yy1294;
-    goto yy1261;
-  yy1265:
-    yych = *(marker = ++p);
-    if (yych <= 0x00)
-      goto yy1261;
-    if (yych <= 0x7F)
-      goto yy1276;
-    if (yych <= 0xC1)
-      goto yy1261;
-    if (yych <= 0xF4)
-      goto yy1276;
-    goto yy1261;
-  yy1266:
-    yych = *++p;
-    goto yy1261;
-  yy1267:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1266;
-  yy1268:
-    p = marker;
-    goto yy1261;
-  yy1269:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1267;
-    goto yy1268;
-  yy1270:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1267;
-    goto yy1268;
-  yy1271:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1270;
-    goto yy1268;
-  yy1272:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1270;
-    goto yy1268;
-  yy1273:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1270;
-    goto yy1268;
-  yy1274:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1267;
-    goto yy1268;
-  yy1275:
-    ++p;
-    yych = *p;
-  yy1276:
-    if (yybm[256 + yych] & 32) {
-      goto yy1275;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= '?')
-          goto yy1284;
-        goto yy1268;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1277;
-        if (yych <= 0xE0)
-          goto yy1278;
-        goto yy1279;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1283;
-        if (yych <= 0xEF)
-          goto yy1279;
-        goto yy1280;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1281;
-        if (yych <= 0xF4)
-          goto yy1282;
-        goto yy1268;
-      }
-    }
-  yy1277:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1275;
-    goto yy1268;
-  yy1278:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1277;
-    goto yy1268;
-  yy1279:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1277;
-    goto yy1268;
-  yy1280:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1279;
-    goto yy1268;
-  yy1281:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1279;
-    goto yy1268;
-  yy1282:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1279;
-    goto yy1268;
-  yy1283:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1277;
-    goto yy1268;
-  yy1284:
-    ++p;
-    yych = *p;
-    if (yych <= 0xE0) {
-      if (yych <= '>') {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= '=')
-          goto yy1275;
-      } else {
-        if (yych <= 0x7F)
-          goto yy1275;
-        if (yych <= 0xC1)
-          goto yy1268;
-        if (yych <= 0xDF)
-          goto yy1287;
-        goto yy1288;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1293;
-        goto yy1289;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1290;
-        if (yych <= 0xF3)
-          goto yy1291;
-        if (yych <= 0xF4)
-          goto yy1292;
-        goto yy1268;
-      }
-    }
-  yy1285:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy1287:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1275;
-    goto yy1268;
-  yy1288:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1287;
-    goto yy1268;
-  yy1289:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1287;
-    goto yy1268;
-  yy1290:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1289;
-    goto yy1268;
-  yy1291:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1289;
-    goto yy1268;
-  yy1292:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1289;
-    goto yy1268;
-  yy1293:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1287;
-    goto yy1268;
-  yy1294:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1330;
-    if (yych == 'c')
-      goto yy1330;
-    goto yy1268;
-  yy1295:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 1) {
-      goto yy1319;
-    }
-    if (yych <= '@')
-      goto yy1268;
-    if (yych <= 'Z')
-      goto yy1295;
-    goto yy1268;
-  yy1297:
-    yych = *++p;
-    if (yych != '-')
-      goto yy1268;
-    yych = *++p;
-    if (yych <= 0xE0) {
-      if (yych <= '=') {
-        if (yych != '-')
-          goto yy1301;
-      } else {
-        if (yych <= '>')
-          goto yy1268;
-        if (yych <= 0xC1)
-          goto yy1301;
-        if (yych <= 0xDF)
-          goto yy1302;
-        goto yy1303;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1308;
-        goto yy1304;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1305;
-        if (yych <= 0xF3)
-          goto yy1306;
-        if (yych <= 0xF4)
-          goto yy1307;
-        goto yy1301;
-      }
-    }
-    yych = *++p;
-    if (yych <= 0xE0) {
-      if (yych <= '=') {
-        if (yych == '-')
-          goto yy1318;
-        goto yy1301;
-      } else {
-        if (yych <= '>')
-          goto yy1268;
-        if (yych <= 0xC1)
-          goto yy1301;
-        if (yych <= 0xDF)
-          goto yy1302;
-        goto yy1303;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1308;
-        goto yy1304;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1305;
-        if (yych <= 0xF3)
-          goto yy1306;
-        if (yych <= 0xF4)
-          goto yy1307;
-        goto yy1301;
-      }
-    }
-  yy1300:
-    ++p;
-    yych = *p;
-  yy1301:
-    if (yybm[256 + yych] & 128) {
-      goto yy1300;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= '-')
-          goto yy1309;
-        goto yy1268;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1310;
-        if (yych <= 0xE0)
-          goto yy1311;
-        goto yy1312;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1316;
-        if (yych <= 0xEF)
-          goto yy1312;
-        goto yy1313;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1314;
-        if (yych <= 0xF4)
-          goto yy1315;
-        goto yy1268;
-      }
-    }
-  yy1302:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1300;
-    goto yy1268;
-  yy1303:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1302;
-    goto yy1268;
-  yy1304:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1302;
-    goto yy1268;
-  yy1305:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1304;
-    goto yy1268;
-  yy1306:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1304;
-    goto yy1268;
-  yy1307:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1304;
-    goto yy1268;
-  yy1308:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1302;
-    goto yy1268;
-  yy1309:
-    ++p;
-    yych = *p;
-    if (yybm[256 + yych] & 128) {
-      goto yy1300;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= '-')
-          goto yy1317;
-        goto yy1268;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1310;
-        if (yych <= 0xE0)
-          goto yy1311;
-        goto yy1312;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1316;
-        if (yych <= 0xEF)
-          goto yy1312;
-        goto yy1313;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1314;
-        if (yych <= 0xF4)
-          goto yy1315;
-        goto yy1268;
-      }
-    }
-  yy1310:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1300;
-    goto yy1268;
-  yy1311:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1310;
-    goto yy1268;
-  yy1312:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1310;
-    goto yy1268;
-  yy1313:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1312;
-    goto yy1268;
-  yy1314:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1312;
-    goto yy1268;
-  yy1315:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1312;
-    goto yy1268;
-  yy1316:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1310;
-    goto yy1268;
-  yy1317:
-    yych = *++p;
-    if (yych == '>')
-      goto yy1285;
-    goto yy1268;
-  yy1318:
-    yych = *++p;
-    if (yych == '>')
-      goto yy1285;
-    goto yy1268;
-  yy1319:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 1) {
-      goto yy1319;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '>') {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych >= '>')
-          goto yy1285;
-      } else {
-        if (yych <= 0x7F)
-          goto yy1321;
-        if (yych <= 0xC1)
-          goto yy1268;
-        if (yych <= 0xDF)
-          goto yy1323;
-        goto yy1324;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1329;
-        goto yy1325;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1326;
-        if (yych <= 0xF3)
-          goto yy1327;
-        if (yych <= 0xF4)
-          goto yy1328;
-        goto yy1268;
-      }
-    }
-  yy1321:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 2) {
-      goto yy1321;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= '>')
-          goto yy1285;
-        goto yy1268;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1323;
-        if (yych <= 0xE0)
-          goto yy1324;
-        goto yy1325;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1329;
-        if (yych <= 0xEF)
-          goto yy1325;
-        goto yy1326;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1327;
-        if (yych <= 0xF4)
-          goto yy1328;
-        goto yy1268;
-      }
-    }
-  yy1323:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1321;
-    goto yy1268;
-  yy1324:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1323;
-    goto yy1268;
-  yy1325:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1323;
-    goto yy1268;
-  yy1326:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1325;
-    goto yy1268;
-  yy1327:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1325;
-    goto yy1268;
-  yy1328:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1325;
-    goto yy1268;
-  yy1329:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1323;
-    goto yy1268;
-  yy1330:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1331;
-    if (yych != 'd')
-      goto yy1268;
-  yy1331:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1332;
-    if (yych != 'a')
-      goto yy1268;
-  yy1332:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1333;
-    if (yych != 't')
-      goto yy1268;
-  yy1333:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1334;
-    if (yych != 'a')
-      goto yy1268;
-  yy1334:
-    yych = *++p;
-    if (yych != '[')
-      goto yy1268;
-  yy1335:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 4) {
-      goto yy1335;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= ']')
-          goto yy1344;
-        goto yy1268;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1337;
-        if (yych <= 0xE0)
-          goto yy1338;
-        goto yy1339;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1343;
-        if (yych <= 0xEF)
-          goto yy1339;
-        goto yy1340;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1341;
-        if (yych <= 0xF4)
-          goto yy1342;
-        goto yy1268;
-      }
-    }
-  yy1337:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1335;
-    goto yy1268;
-  yy1338:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1337;
-    goto yy1268;
-  yy1339:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1337;
-    goto yy1268;
-  yy1340:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1339;
-    goto yy1268;
-  yy1341:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1339;
-    goto yy1268;
-  yy1342:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1339;
-    goto yy1268;
-  yy1343:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1337;
-    goto yy1268;
-  yy1344:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 4) {
-      goto yy1335;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych >= '^')
-          goto yy1268;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1346;
-        if (yych <= 0xE0)
-          goto yy1347;
-        goto yy1348;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1352;
-        if (yych <= 0xEF)
-          goto yy1348;
-        goto yy1349;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1350;
-        if (yych <= 0xF4)
-          goto yy1351;
-        goto yy1268;
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yych <= 0xE0) {
-      if (yych <= '>') {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= '=')
-          goto yy1335;
-        goto yy1285;
-      } else {
-        if (yych <= 0x7F)
-          goto yy1335;
-        if (yych <= 0xC1)
-          goto yy1268;
-        if (yych <= 0xDF)
-          goto yy1353;
-        goto yy1354;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1359;
-        goto yy1355;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1356;
-        if (yych <= 0xF3)
-          goto yy1357;
-        if (yych <= 0xF4)
-          goto yy1358;
-        goto yy1268;
-      }
-    }
-  yy1346:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1335;
-    goto yy1268;
-  yy1347:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1346;
-    goto yy1268;
-  yy1348:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1346;
-    goto yy1268;
-  yy1349:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1348;
-    goto yy1268;
-  yy1350:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1348;
-    goto yy1268;
-  yy1351:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1348;
-    goto yy1268;
-  yy1352:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1346;
-    goto yy1268;
-  yy1353:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1335;
-    goto yy1268;
-  yy1354:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1353;
-    goto yy1268;
-  yy1355:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1353;
-    goto yy1268;
-  yy1356:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1355;
-    goto yy1268;
-  yy1357:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1355;
-    goto yy1268;
-  yy1358:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1355;
-    goto yy1268;
-  yy1359:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1353;
-    goto yy1268;
-  yy1360:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 8) {
-      goto yy1360;
-    }
-    if (yych <= 0x1F) {
-      if (yych <= 0x08)
-        goto yy1268;
-      if (yych >= 0x0E)
-        goto yy1268;
-    } else {
-      if (yych <= ' ')
-        goto yy1362;
-      if (yych == '>')
-        goto yy1285;
-      goto yy1268;
-    }
-  yy1362:
-    ++p;
-    yych = *p;
-    if (yych <= 0x1F) {
-      if (yych <= 0x08)
-        goto yy1268;
-      if (yych <= '\r')
-        goto yy1362;
-      goto yy1268;
-    } else {
-      if (yych <= ' ')
-        goto yy1362;
-      if (yych == '>')
-        goto yy1285;
-      goto yy1268;
-    }
-  yy1364:
-    ++p;
-    yych = *p;
-    if (yych <= '/') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1268;
-        if (yych <= '\r')
-          goto yy1366;
-        if (yych <= 0x1F)
-          goto yy1268;
-      } else {
-        if (yych == '-')
-          goto yy1364;
-        if (yych <= '.')
-          goto yy1268;
-        goto yy1368;
-      }
-    } else {
-      if (yych <= '@') {
-        if (yych <= '9')
-          goto yy1364;
-        if (yych == '>')
-          goto yy1285;
-        goto yy1268;
-      } else {
-        if (yych <= 'Z')
-          goto yy1364;
-        if (yych <= '`')
-          goto yy1268;
-        if (yych <= 'z')
-          goto yy1364;
-        goto yy1268;
-      }
-    }
-  yy1366:
-    ++p;
-    yych = *p;
-    if (yych <= ':') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1268;
-        if (yych <= '\r')
-          goto yy1366;
-        if (yych <= 0x1F)
-          goto yy1268;
-        goto yy1366;
-      } else {
-        if (yych == '/')
-          goto yy1368;
-        if (yych <= '9')
-          goto yy1268;
-        goto yy1369;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych == '>')
-          goto yy1285;
-        if (yych <= '@')
-          goto yy1268;
-        goto yy1369;
-      } else {
-        if (yych <= '_') {
-          if (yych <= '^')
-            goto yy1268;
-          goto yy1369;
-        } else {
-          if (yych <= '`')
-            goto yy1268;
-          if (yych <= 'z')
-            goto yy1369;
-          goto yy1268;
-        }
-      }
-    }
-  yy1368:
-    yych = *++p;
-    if (yych == '>')
-      goto yy1285;
-    goto yy1268;
-  yy1369:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy1369;
-    }
-    if (yych <= ',') {
-      if (yych <= '\r') {
-        if (yych <= 0x08)
-          goto yy1268;
-      } else {
-        if (yych != ' ')
-          goto yy1268;
-      }
-    } else {
-      if (yych <= '<') {
-        if (yych <= '/')
-          goto yy1368;
-        goto yy1268;
-      } else {
-        if (yych <= '=')
-          goto yy1373;
-        if (yych <= '>')
-          goto yy1285;
-        goto yy1268;
-      }
-    }
-  yy1371:
-    ++p;
-    yych = *p;
-    if (yych <= '<') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1268;
-        if (yych <= '\r')
-          goto yy1371;
-        if (yych <= 0x1F)
-          goto yy1268;
-        goto yy1371;
-      } else {
-        if (yych <= '/') {
-          if (yych <= '.')
-            goto yy1268;
-          goto yy1368;
-        } else {
-          if (yych == ':')
-            goto yy1369;
-          goto yy1268;
-        }
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '=')
-          goto yy1373;
-        if (yych <= '>')
-          goto yy1285;
-        if (yych <= '@')
-          goto yy1268;
-        goto yy1369;
-      } else {
-        if (yych <= '_') {
-          if (yych <= '^')
-            goto yy1268;
-          goto yy1369;
-        } else {
-          if (yych <= '`')
-            goto yy1268;
-          if (yych <= 'z')
-            goto yy1369;
-          goto yy1268;
-        }
-      }
-    }
-  yy1373:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1375;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '"') {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych >= '!')
-          goto yy1386;
-      } else {
-        if (yych <= '\'')
-          goto yy1384;
-        if (yych <= 0xC1)
-          goto yy1268;
-        if (yych <= 0xDF)
-          goto yy1377;
-        goto yy1378;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1383;
-        goto yy1379;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1380;
-        if (yych <= 0xF3)
-          goto yy1381;
-        if (yych <= 0xF4)
-          goto yy1382;
-        goto yy1268;
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1375;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '\'') {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= ' ')
-          goto yy1409;
-        if (yych <= '"')
-          goto yy1386;
-        goto yy1384;
-      } else {
-        if (yych == '>')
-          goto yy1285;
-        if (yych <= 0xC1)
-          goto yy1268;
-        goto yy1377;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1378;
-        if (yych == 0xED)
-          goto yy1383;
-        goto yy1379;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1380;
-        if (yych <= 0xF3)
-          goto yy1381;
-        if (yych <= 0xF4)
-          goto yy1382;
-        goto yy1268;
-      }
-    }
-  yy1375:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1375;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '=') {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= ' ')
-          goto yy1403;
-        goto yy1268;
-      } else {
-        if (yych <= '>')
-          goto yy1285;
-        if (yych <= 0xC1)
-          goto yy1268;
-        if (yych >= 0xE0)
-          goto yy1378;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1383;
-        goto yy1379;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1380;
-        if (yych <= 0xF3)
-          goto yy1381;
-        if (yych <= 0xF4)
-          goto yy1382;
-        goto yy1268;
-      }
-    }
-  yy1377:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1375;
-    goto yy1268;
-  yy1378:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1377;
-    goto yy1268;
-  yy1379:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1377;
-    goto yy1268;
-  yy1380:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1379;
-    goto yy1268;
-  yy1381:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1379;
-    goto yy1268;
-  yy1382:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1379;
-    goto yy1268;
-  yy1383:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1377;
-    goto yy1268;
-  yy1384:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1384;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= '\'')
-          goto yy1395;
-        goto yy1268;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1396;
-        if (yych <= 0xE0)
-          goto yy1397;
-        goto yy1398;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1402;
-        if (yych <= 0xEF)
-          goto yy1398;
-        goto yy1399;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1400;
-        if (yych <= 0xF4)
-          goto yy1401;
-        goto yy1268;
-      }
-    }
-  yy1386:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1386;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1268;
-        if (yych <= '"')
-          goto yy1395;
-        goto yy1268;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1388;
-        if (yych <= 0xE0)
-          goto yy1389;
-        goto yy1390;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1394;
-        if (yych <= 0xEF)
-          goto yy1390;
-        goto yy1391;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1392;
-        if (yych <= 0xF4)
-          goto yy1393;
-        goto yy1268;
-      }
-    }
-  yy1388:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1386;
-    goto yy1268;
-  yy1389:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1388;
-    goto yy1268;
-  yy1390:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1388;
-    goto yy1268;
-  yy1391:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1390;
-    goto yy1268;
-  yy1392:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1390;
-    goto yy1268;
-  yy1393:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1390;
-    goto yy1268;
-  yy1394:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1388;
-    goto yy1268;
-  yy1395:
-    ++p;
-    yych = *p;
-    if (yych <= ' ') {
-      if (yych <= 0x08)
-        goto yy1268;
-      if (yych <= '\r')
-        goto yy1366;
-      if (yych <= 0x1F)
-        goto yy1268;
-      goto yy1366;
-    } else {
-      if (yych <= '/') {
-        if (yych <= '.')
-          goto yy1268;
-        goto yy1368;
-      } else {
-        if (yych == '>')
-          goto yy1285;
-        goto yy1268;
-      }
-    }
-  yy1396:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1384;
-    goto yy1268;
-  yy1397:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1396;
-    goto yy1268;
-  yy1398:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1396;
-    goto yy1268;
-  yy1399:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1398;
-    goto yy1268;
-  yy1400:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0xBF)
-      goto yy1398;
-    goto yy1268;
-  yy1401:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x8F)
-      goto yy1398;
-    goto yy1268;
-  yy1402:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1268;
-    if (yych <= 0x9F)
-      goto yy1396;
-    goto yy1268;
-  yy1403:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '"') {
-        if (yych <= '\r') {
-          if (yych <= 0x00)
-            goto yy1268;
-          if (yych <= 0x08)
-            goto yy1375;
-          goto yy1403;
-        } else {
-          if (yych == ' ')
-            goto yy1403;
-          if (yych <= '!')
-            goto yy1375;
-          goto yy1268;
-        }
-      } else {
-        if (yych <= ':') {
-          if (yych == '\'')
-            goto yy1268;
-          if (yych <= '9')
-            goto yy1375;
-        } else {
-          if (yych <= ';')
-            goto yy1375;
-          if (yych <= '=')
-            goto yy1268;
-          if (yych <= '>')
-            goto yy1285;
-          goto yy1375;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1405;
-          if (yych <= '^')
-            goto yy1375;
-          if (yych >= '`')
-            goto yy1268;
-        } else {
-          if (yych <= 'z')
-            goto yy1405;
-          if (yych <= 0x7F)
-            goto yy1375;
-          if (yych <= 0xC1)
-            goto yy1268;
-          goto yy1377;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1378;
-          if (yych == 0xED)
-            goto yy1383;
-          goto yy1379;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1380;
-          if (yych <= 0xF3)
-            goto yy1381;
-          if (yych <= 0xF4)
-            goto yy1382;
-          goto yy1268;
-        }
-      }
-    }
-  yy1405:
-    ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= '&') {
-        if (yych <= 0x1F) {
-          if (yych <= 0x00)
-            goto yy1268;
-          if (yych <= 0x08)
-            goto yy1375;
-          if (yych >= 0x0E)
-            goto yy1375;
-        } else {
-          if (yych <= ' ')
-            goto yy1407;
-          if (yych == '"')
-            goto yy1268;
-          goto yy1375;
-        }
-      } else {
-        if (yych <= '/') {
-          if (yych <= '\'')
-            goto yy1268;
-          if (yych <= ',')
-            goto yy1375;
-          if (yych <= '.')
-            goto yy1405;
-          goto yy1375;
-        } else {
-          if (yych <= ';') {
-            if (yych <= ':')
-              goto yy1405;
-            goto yy1375;
-          } else {
-            if (yych <= '<')
-              goto yy1268;
-            if (yych <= '=')
-              goto yy1373;
-            goto yy1285;
-          }
-        }
-      }
-    } else {
-      if (yych <= 0xC1) {
-        if (yych <= '_') {
-          if (yych <= '@')
-            goto yy1375;
-          if (yych <= 'Z')
-            goto yy1405;
-          if (yych <= '^')
-            goto yy1375;
-          goto yy1405;
-        } else {
-          if (yych <= '`')
-            goto yy1268;
-          if (yych <= 'z')
-            goto yy1405;
-          if (yych <= 0x7F)
-            goto yy1375;
-          goto yy1268;
-        }
-      } else {
-        if (yych <= 0xED) {
-          if (yych <= 0xDF)
-            goto yy1377;
-          if (yych <= 0xE0)
-            goto yy1378;
-          if (yych <= 0xEC)
-            goto yy1379;
-          goto yy1383;
-        } else {
-          if (yych <= 0xF0) {
-            if (yych <= 0xEF)
-              goto yy1379;
-            goto yy1380;
-          } else {
-            if (yych <= 0xF3)
-              goto yy1381;
-            if (yych <= 0xF4)
-              goto yy1382;
-            goto yy1268;
-          }
-        }
-      }
-    }
-  yy1407:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '&') {
-        if (yych <= 0x1F) {
-          if (yych <= 0x00)
-            goto yy1268;
-          if (yych <= 0x08)
-            goto yy1375;
-          if (yych <= '\r')
-            goto yy1407;
-          goto yy1375;
-        } else {
-          if (yych <= ' ')
-            goto yy1407;
-          if (yych == '"')
-            goto yy1268;
-          goto yy1375;
-        }
-      } else {
-        if (yych <= ';') {
-          if (yych <= '\'')
-            goto yy1268;
-          if (yych == ':')
-            goto yy1405;
-          goto yy1375;
-        } else {
-          if (yych <= '<')
-            goto yy1268;
-          if (yych <= '=')
-            goto yy1373;
-          if (yych <= '>')
-            goto yy1285;
-          goto yy1375;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1405;
-          if (yych <= '^')
-            goto yy1375;
-          if (yych <= '_')
-            goto yy1405;
-          goto yy1268;
-        } else {
-          if (yych <= 'z')
-            goto yy1405;
-          if (yych <= 0x7F)
-            goto yy1375;
-          if (yych <= 0xC1)
-            goto yy1268;
-          goto yy1377;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1378;
-          if (yych == 0xED)
-            goto yy1383;
-          goto yy1379;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1380;
-          if (yych <= 0xF3)
-            goto yy1381;
-          if (yych <= 0xF4)
-            goto yy1382;
-          goto yy1268;
-        }
-      }
-    }
-  yy1409:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '"') {
-        if (yych <= '\r') {
-          if (yych <= 0x00)
-            goto yy1268;
-          if (yych <= 0x08)
-            goto yy1375;
-          goto yy1409;
-        } else {
-          if (yych == ' ')
-            goto yy1409;
-          if (yych <= '!')
-            goto yy1375;
-          goto yy1386;
-        }
-      } else {
-        if (yych <= ':') {
-          if (yych == '\'')
-            goto yy1384;
-          if (yych <= '9')
-            goto yy1375;
-          goto yy1405;
-        } else {
-          if (yych <= ';')
-            goto yy1375;
-          if (yych <= '=')
-            goto yy1268;
-          if (yych <= '>')
-            goto yy1285;
-          goto yy1375;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1405;
-          if (yych <= '^')
-            goto yy1375;
-          if (yych <= '_')
-            goto yy1405;
-          goto yy1268;
-        } else {
-          if (yych <= 'z')
-            goto yy1405;
-          if (yych <= 0x7F)
-            goto yy1375;
-          if (yych <= 0xC1)
-            goto yy1268;
-          goto yy1377;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1378;
-          if (yych == 0xED)
-            goto yy1383;
-          goto yy1379;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1380;
-          if (yych <= 0xF3)
-            goto yy1381;
-          if (yych <= 0xF4)
-            goto yy1382;
-          goto yy1268;
-        }
-      }
-    }
-  }
-}
-
-// Try to match an HTML block tag start line, returning
-// an integer code for the type of block (1-6, matching the spec).
-// #7 is handled by a separate function, below.
-bufsize_t _scan_html_block_start(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-
-  {
-    unsigned char yych;
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= ';') {
-        if (yych != '\n')
-          goto yy1415;
-      } else {
-        if (yych <= '<')
-          goto yy1414;
-        if (yych <= 0x7F)
-          goto yy1415;
-        if (yych >= 0xC2)
-          goto yy1416;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1418;
-        if (yych == 0xED)
-          goto yy1423;
-        goto yy1419;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1420;
-        if (yych <= 0xF3)
-          goto yy1421;
-        if (yych <= 0xF4)
-          goto yy1422;
-      }
-    }
-  yy1413 : { return 0; }
-  yy1414:
-    yych = *(marker = ++p);
-    switch (yych) {
-    case '!':
-      goto yy1440;
-    case '/':
-      goto yy1424;
-    case '?':
-      goto yy1441;
-    case 'A':
-    case 'a':
-      goto yy1426;
-    case 'B':
-    case 'b':
-      goto yy1427;
-    case 'C':
-    case 'c':
-      goto yy1428;
-    case 'D':
-    case 'd':
-      goto yy1429;
-    case 'F':
-    case 'f':
-      goto yy1430;
-    case 'H':
-    case 'h':
-      goto yy1431;
-    case 'I':
-    case 'i':
-      goto yy1432;
-    case 'L':
-    case 'l':
-      goto yy1433;
-    case 'M':
-    case 'm':
-      goto yy1434;
-    case 'N':
-    case 'n':
-      goto yy1435;
-    case 'O':
-    case 'o':
-      goto yy1436;
-    case 'P':
-    case 'p':
-      goto yy1425;
-    case 'S':
-    case 's':
-      goto yy1437;
-    case 'T':
-    case 't':
-      goto yy1438;
-    case 'U':
-    case 'u':
-      goto yy1439;
-    default:
-      goto yy1413;
-    }
-  yy1415:
-    yych = *++p;
-    goto yy1413;
-  yy1416:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1417;
-    if (yych <= 0xBF)
-      goto yy1415;
-  yy1417:
-    p = marker;
-    goto yy1413;
-  yy1418:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1417;
-    if (yych <= 0xBF)
-      goto yy1416;
-    goto yy1417;
-  yy1419:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1417;
-    if (yych <= 0xBF)
-      goto yy1416;
-    goto yy1417;
-  yy1420:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1417;
-    if (yych <= 0xBF)
-      goto yy1419;
-    goto yy1417;
-  yy1421:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1417;
-    if (yych <= 0xBF)
-      goto yy1419;
-    goto yy1417;
-  yy1422:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1417;
-    if (yych <= 0x8F)
-      goto yy1419;
-    goto yy1417;
-  yy1423:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1417;
-    if (yych <= 0x9F)
-      goto yy1416;
-    goto yy1417;
-  yy1424:
-    yych = *++p;
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy1426;
-    case 'B':
-    case 'b':
-      goto yy1427;
-    case 'C':
-    case 'c':
-      goto yy1428;
-    case 'D':
-    case 'd':
-      goto yy1429;
-    case 'F':
-    case 'f':
-      goto yy1430;
-    case 'H':
-    case 'h':
-      goto yy1431;
-    case 'I':
-    case 'i':
-      goto yy1432;
-    case 'L':
-    case 'l':
-      goto yy1433;
-    case 'M':
-    case 'm':
-      goto yy1434;
-    case 'N':
-    case 'n':
-      goto yy1435;
-    case 'O':
-    case 'o':
-      goto yy1436;
-    case 'P':
-    case 'p':
-      goto yy1625;
-    case 'S':
-    case 's':
-      goto yy1626;
-    case 'T':
-    case 't':
-      goto yy1438;
-    case 'U':
-    case 'u':
-      goto yy1439;
-    default:
-      goto yy1417;
-    }
-  yy1425:
-    yych = *++p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        if (yych <= 0x1F)
-          goto yy1417;
-        goto yy1457;
-      } else {
-        if (yych == '/')
-          goto yy1459;
-        if (yych <= '=')
-          goto yy1417;
-        goto yy1457;
-      }
-    } else {
-      if (yych <= 'R') {
-        if (yych == 'A')
-          goto yy1622;
-        if (yych <= 'Q')
-          goto yy1417;
-        goto yy1621;
-      } else {
-        if (yych <= 'a') {
-          if (yych <= '`')
-            goto yy1417;
-          goto yy1622;
-        } else {
-          if (yych == 'r')
-            goto yy1621;
-          goto yy1417;
-        }
-      }
-    }
-  yy1426:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych <= 'D') {
-        if (yych <= 'C')
-          goto yy1417;
-        goto yy1610;
-      } else {
-        if (yych <= 'Q')
-          goto yy1417;
-        if (yych <= 'R')
-          goto yy1609;
-        goto yy1608;
-      }
-    } else {
-      if (yych <= 'q') {
-        if (yych == 'd')
-          goto yy1610;
-        goto yy1417;
-      } else {
-        if (yych <= 'r')
-          goto yy1609;
-        if (yych <= 's')
-          goto yy1608;
-        goto yy1417;
-      }
-    }
-  yy1427:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych <= 'K') {
-        if (yych == 'A')
-          goto yy1594;
-        goto yy1417;
-      } else {
-        if (yych <= 'L')
-          goto yy1593;
-        if (yych <= 'N')
-          goto yy1417;
-        goto yy1592;
-      }
-    } else {
-      if (yych <= 'k') {
-        if (yych == 'a')
-          goto yy1594;
-        goto yy1417;
-      } else {
-        if (yych <= 'l')
-          goto yy1593;
-        if (yych == 'o')
-          goto yy1592;
-        goto yy1417;
-      }
-    }
-  yy1428:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych <= 'D') {
-        if (yych == 'A')
-          goto yy1579;
-        goto yy1417;
-      } else {
-        if (yych <= 'E')
-          goto yy1578;
-        if (yych <= 'N')
-          goto yy1417;
-        goto yy1577;
-      }
-    } else {
-      if (yych <= 'd') {
-        if (yych == 'a')
-          goto yy1579;
-        goto yy1417;
-      } else {
-        if (yych <= 'e')
-          goto yy1578;
-        if (yych == 'o')
-          goto yy1577;
-        goto yy1417;
-      }
-    }
-  yy1429:
-    yych = *++p;
-    switch (yych) {
-    case 'D':
-    case 'L':
-    case 'T':
-    case 'd':
-    case 'l':
-    case 't':
-      goto yy1456;
-    case 'E':
-    case 'e':
-      goto yy1569;
-    case 'I':
-    case 'i':
-      goto yy1568;
-    default:
-      goto yy1417;
-    }
-  yy1430:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych <= 'N') {
-        if (yych == 'I')
-          goto yy1544;
-        goto yy1417;
-      } else {
-        if (yych <= 'O')
-          goto yy1543;
-        if (yych <= 'Q')
-          goto yy1417;
-        goto yy1542;
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych == 'i')
-          goto yy1544;
-        goto yy1417;
-      } else {
-        if (yych <= 'o')
-          goto yy1543;
-        if (yych == 'r')
-          goto yy1542;
-        goto yy1417;
-      }
-    }
-  yy1431:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych <= 'D') {
-        if (yych == '1')
-          goto yy1456;
-        goto yy1417;
-      } else {
-        if (yych <= 'E')
-          goto yy1537;
-        if (yych == 'R')
-          goto yy1456;
-        goto yy1417;
-      }
-    } else {
-      if (yych <= 'q') {
-        if (yych <= 'T')
-          goto yy1536;
-        if (yych == 'e')
-          goto yy1537;
-        goto yy1417;
-      } else {
-        if (yych <= 'r')
-          goto yy1456;
-        if (yych == 't')
-          goto yy1536;
-        goto yy1417;
-      }
-    }
-  yy1432:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy1532;
-    if (yych == 'f')
-      goto yy1532;
-    goto yy1417;
-  yy1433:
-    yych = *++p;
-    if (yych <= 'I') {
-      if (yych == 'E')
-        goto yy1527;
-      if (yych <= 'H')
-        goto yy1417;
-      goto yy1526;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy1417;
-        goto yy1527;
-      } else {
-        if (yych == 'i')
-          goto yy1526;
-        goto yy1417;
-      }
-    }
-  yy1434:
-    yych = *++p;
-    if (yych <= 'E') {
-      if (yych == 'A')
-        goto yy1518;
-      if (yych <= 'D')
-        goto yy1417;
-      goto yy1517;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy1417;
-        goto yy1518;
-      } else {
-        if (yych == 'e')
-          goto yy1517;
-        goto yy1417;
-      }
-    }
-  yy1435:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych == 'A')
-        goto yy1511;
-      if (yych <= 'N')
-        goto yy1417;
-      goto yy1510;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy1417;
-        goto yy1511;
-      } else {
-        if (yych == 'o')
-          goto yy1510;
-        goto yy1417;
-      }
-    }
-  yy1436:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'L')
-        goto yy1456;
-      if (yych <= 'O')
-        goto yy1417;
-      goto yy1502;
-    } else {
-      if (yych <= 'l') {
-        if (yych <= 'k')
-          goto yy1417;
-        goto yy1456;
-      } else {
-        if (yych == 'p')
-          goto yy1502;
-        goto yy1417;
-      }
-    }
-  yy1437:
-    yych = *++p;
-    if (yych <= 'U') {
-      if (yych <= 'E') {
-        if (yych == 'C')
-          goto yy1479;
-        if (yych <= 'D')
-          goto yy1417;
-        goto yy1482;
-      } else {
-        if (yych <= 'O') {
-          if (yych <= 'N')
-            goto yy1417;
-          goto yy1481;
-        } else {
-          if (yych <= 'S')
-            goto yy1417;
-          if (yych <= 'T')
-            goto yy1478;
-          goto yy1480;
-        }
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'c') {
-          if (yych <= 'b')
-            goto yy1417;
-          goto yy1479;
-        } else {
-          if (yych == 'e')
-            goto yy1482;
-          goto yy1417;
-        }
-      } else {
-        if (yych <= 's') {
-          if (yych <= 'o')
-            goto yy1481;
-          goto yy1417;
-        } else {
-          if (yych <= 't')
-            goto yy1478;
-          if (yych <= 'u')
-            goto yy1480;
-          goto yy1417;
-        }
-      }
-    }
-  yy1438:
-    yych = *++p;
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy1465;
-    case 'B':
-    case 'b':
-      goto yy1464;
-    case 'D':
-    case 'd':
-      goto yy1456;
-    case 'F':
-    case 'f':
-      goto yy1463;
-    case 'H':
-    case 'h':
-      goto yy1462;
-    case 'I':
-    case 'i':
-      goto yy1461;
-    case 'R':
-    case 'r':
-      goto yy1460;
-    default:
-      goto yy1417;
-    }
-  yy1439:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1456;
-    if (yych == 'l')
-      goto yy1456;
-    goto yy1417;
-  yy1440:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych == '-')
-        goto yy1443;
-      goto yy1417;
-    } else {
-      if (yych <= 'Z')
-        goto yy1444;
-      if (yych <= '[')
-        goto yy1446;
-      goto yy1417;
-    }
-  yy1441:
-    ++p;
-    { return 3; }
-  yy1443:
-    yych = *++p;
-    if (yych == '-')
-      goto yy1454;
-    goto yy1417;
-  yy1444:
-    ++p;
-    { return 4; }
-  yy1446:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1447;
-    if (yych != 'c')
-      goto yy1417;
-  yy1447:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1448;
-    if (yych != 'd')
-      goto yy1417;
-  yy1448:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1449;
-    if (yych != 'a')
-      goto yy1417;
-  yy1449:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1450;
-    if (yych != 't')
-      goto yy1417;
-  yy1450:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1451;
-    if (yych != 'a')
-      goto yy1417;
-  yy1451:
-    yych = *++p;
-    if (yych != '[')
-      goto yy1417;
-    ++p;
-    { return 5; }
-  yy1454:
-    ++p;
-    { return 2; }
-  yy1456:
-    yych = *++p;
-    if (yych <= ' ') {
-      if (yych <= 0x08)
-        goto yy1417;
-      if (yych <= '\r')
-        goto yy1457;
-      if (yych <= 0x1F)
-        goto yy1417;
-    } else {
-      if (yych <= '/') {
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      } else {
-        if (yych != '>')
-          goto yy1417;
-      }
-    }
-  yy1457:
-    ++p;
-    { return 6; }
-  yy1459:
-    yych = *++p;
-    if (yych == '>')
-      goto yy1457;
-    goto yy1417;
-  yy1460:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= '@') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'A')
-          goto yy1476;
-        if (yych == 'a')
-          goto yy1476;
-        goto yy1417;
-      }
-    }
-  yy1461:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1474;
-    if (yych == 't')
-      goto yy1474;
-    goto yy1417;
-  yy1462:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'D') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'E')
-          goto yy1472;
-        if (yych == 'e')
-          goto yy1472;
-        goto yy1417;
-      }
-    }
-  yy1463:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1470;
-    if (yych == 'o')
-      goto yy1470;
-    goto yy1417;
-  yy1464:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1468;
-    if (yych == 'o')
-      goto yy1468;
-    goto yy1417;
-  yy1465:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy1466;
-    if (yych != 'b')
-      goto yy1417;
-  yy1466:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1467;
-    if (yych != 'l')
-      goto yy1417;
-  yy1467:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1468:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1469;
-    if (yych != 'd')
-      goto yy1417;
-  yy1469:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy1456;
-    if (yych == 'y')
-      goto yy1456;
-    goto yy1417;
-  yy1470:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1471;
-    if (yych != 'o')
-      goto yy1417;
-  yy1471:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1456;
-    if (yych == 't')
-      goto yy1456;
-    goto yy1417;
-  yy1472:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1473;
-    if (yych != 'a')
-      goto yy1417;
-  yy1473:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1456;
-    if (yych == 'd')
-      goto yy1456;
-    goto yy1417;
-  yy1474:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1475;
-    if (yych != 'l')
-      goto yy1417;
-  yy1475:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1476:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1477;
-    if (yych != 'c')
-      goto yy1417;
-  yy1477:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy1456;
-    if (yych == 'k')
-      goto yy1456;
-    goto yy1417;
-  yy1478:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy1500;
-    if (yych == 'y')
-      goto yy1500;
-    goto yy1417;
-  yy1479:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1494;
-    if (yych == 'r')
-      goto yy1494;
-    goto yy1417;
-  yy1480:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1490;
-    if (yych == 'm')
-      goto yy1490;
-    goto yy1417;
-  yy1481:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1487;
-    if (yych == 'u')
-      goto yy1487;
-    goto yy1417;
-  yy1482:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1483;
-    if (yych != 'c')
-      goto yy1417;
-  yy1483:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1484;
-    if (yych != 't')
-      goto yy1417;
-  yy1484:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1485;
-    if (yych != 'i')
-      goto yy1417;
-  yy1485:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1486;
-    if (yych != 'o')
-      goto yy1417;
-  yy1486:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1487:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1488;
-    if (yych != 'r')
-      goto yy1417;
-  yy1488:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1489;
-    if (yych != 'c')
-      goto yy1417;
-  yy1489:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1490:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1491;
-    if (yych != 'm')
-      goto yy1417;
-  yy1491:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1492;
-    if (yych != 'a')
-      goto yy1417;
-  yy1492:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1493;
-    if (yych != 'r')
-      goto yy1417;
-  yy1493:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy1456;
-    if (yych == 'y')
-      goto yy1456;
-    goto yy1417;
-  yy1494:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1495;
-    if (yych != 'i')
-      goto yy1417;
-  yy1495:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1496;
-    if (yych != 'p')
-      goto yy1417;
-  yy1496:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1497;
-    if (yych != 't')
-      goto yy1417;
-  yy1497:
-    yych = *++p;
-    if (yych <= 0x1F) {
-      if (yych <= 0x08)
-        goto yy1417;
-      if (yych >= 0x0E)
-        goto yy1417;
-    } else {
-      if (yych <= ' ')
-        goto yy1498;
-      if (yych != '>')
-        goto yy1417;
-    }
-  yy1498:
-    ++p;
-    { return 1; }
-  yy1500:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1501;
-    if (yych != 'l')
-      goto yy1417;
-  yy1501:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1497;
-    if (yych == 'e')
-      goto yy1497;
-    goto yy1417;
-  yy1502:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1503;
-    if (yych != 't')
-      goto yy1417;
-  yy1503:
-    yych = *++p;
-    if (yych <= 'I') {
-      if (yych == 'G')
-        goto yy1505;
-      if (yych <= 'H')
-        goto yy1417;
-    } else {
-      if (yych <= 'g') {
-        if (yych <= 'f')
-          goto yy1417;
-        goto yy1505;
-      } else {
-        if (yych != 'i')
-          goto yy1417;
-      }
-    }
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1509;
-    if (yych == 'o')
-      goto yy1509;
-    goto yy1417;
-  yy1505:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1506;
-    if (yych != 'r')
-      goto yy1417;
-  yy1506:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1507;
-    if (yych != 'o')
-      goto yy1417;
-  yy1507:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1508;
-    if (yych != 'u')
-      goto yy1417;
-  yy1508:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1456;
-    if (yych == 'p')
-      goto yy1456;
-    goto yy1417;
-  yy1509:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1510:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy1512;
-    if (yych == 'f')
-      goto yy1512;
-    goto yy1417;
-  yy1511:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy1456;
-    if (yych == 'v')
-      goto yy1456;
-    goto yy1417;
-  yy1512:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1513;
-    if (yych != 'r')
-      goto yy1417;
-  yy1513:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1514;
-    if (yych != 'a')
-      goto yy1417;
-  yy1514:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1515;
-    if (yych != 'm')
-      goto yy1417;
-  yy1515:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1516;
-    if (yych != 'e')
-      goto yy1417;
-  yy1516:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1456;
-    if (yych == 's')
-      goto yy1456;
-    goto yy1417;
-  yy1517:
-    yych = *++p;
-    if (yych <= 'T') {
-      if (yych == 'N')
-        goto yy1520;
-      if (yych <= 'S')
-        goto yy1417;
-      goto yy1521;
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'm')
-          goto yy1417;
-        goto yy1520;
-      } else {
-        if (yych == 't')
-          goto yy1521;
-        goto yy1417;
-      }
-    }
-  yy1518:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1519;
-    if (yych != 'i')
-      goto yy1417;
-  yy1519:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1520:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1522;
-    if (yych == 'u')
-      goto yy1522;
-    goto yy1417;
-  yy1521:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1456;
-    if (yych == 'a')
-      goto yy1456;
-    goto yy1417;
-  yy1522:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'H') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'I')
-          goto yy1523;
-        if (yych != 'i')
-          goto yy1417;
-      }
-    }
-  yy1523:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1524;
-    if (yych != 't')
-      goto yy1417;
-  yy1524:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1525;
-    if (yych != 'e')
-      goto yy1417;
-  yy1525:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1456;
-    if (yych == 'm')
-      goto yy1456;
-    goto yy1417;
-  yy1526:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'M') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'N')
-          goto yy1531;
-        if (yych == 'n')
-          goto yy1531;
-        goto yy1417;
-      }
-    }
-  yy1527:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy1528;
-    if (yych != 'g')
-      goto yy1417;
-  yy1528:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1529;
-    if (yych != 'e')
-      goto yy1417;
-  yy1529:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1530;
-    if (yych != 'n')
-      goto yy1417;
-  yy1530:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1456;
-    if (yych == 'd')
-      goto yy1456;
-    goto yy1417;
-  yy1531:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy1456;
-    if (yych == 'k')
-      goto yy1456;
-    goto yy1417;
-  yy1532:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1533;
-    if (yych != 'r')
-      goto yy1417;
-  yy1533:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1534;
-    if (yych != 'a')
-      goto yy1417;
-  yy1534:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1535;
-    if (yych != 'm')
-      goto yy1417;
-  yy1535:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1536:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1541;
-    if (yych == 'm')
-      goto yy1541;
-    goto yy1417;
-  yy1537:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1538;
-    if (yych != 'a')
-      goto yy1417;
-  yy1538:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1539;
-    if (yych != 'd')
-      goto yy1417;
-  yy1539:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'D') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'E')
-          goto yy1540;
-        if (yych != 'e')
-          goto yy1417;
-      }
-    }
-  yy1540:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1456;
-    if (yych == 'r')
-      goto yy1456;
-    goto yy1417;
-  yy1541:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1456;
-    if (yych == 'l')
-      goto yy1456;
-    goto yy1417;
-  yy1542:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1563;
-    if (yych == 'a')
-      goto yy1563;
-    goto yy1417;
-  yy1543:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == 'O')
-        goto yy1559;
-      if (yych <= 'Q')
-        goto yy1417;
-      goto yy1560;
-    } else {
-      if (yych <= 'o') {
-        if (yych <= 'n')
-          goto yy1417;
-        goto yy1559;
-      } else {
-        if (yych == 'r')
-          goto yy1560;
-        goto yy1417;
-      }
-    }
-  yy1544:
-    yych = *++p;
-    if (yych <= 'G') {
-      if (yych == 'E')
-        goto yy1545;
-      if (yych <= 'F')
-        goto yy1417;
-      goto yy1546;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy1417;
-      } else {
-        if (yych == 'g')
-          goto yy1546;
-        goto yy1417;
-      }
-    }
-  yy1545:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1555;
-    if (yych == 'l')
-      goto yy1555;
-    goto yy1417;
-  yy1546:
-    yych = *++p;
-    if (yych <= 'U') {
-      if (yych == 'C')
-        goto yy1548;
-      if (yych <= 'T')
-        goto yy1417;
-    } else {
-      if (yych <= 'c') {
-        if (yych <= 'b')
-          goto yy1417;
-        goto yy1548;
-      } else {
-        if (yych != 'u')
-          goto yy1417;
-      }
-    }
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1554;
-    if (yych == 'r')
-      goto yy1554;
-    goto yy1417;
-  yy1548:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1549;
-    if (yych != 'a')
-      goto yy1417;
-  yy1549:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1550;
-    if (yych != 'p')
-      goto yy1417;
-  yy1550:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1551;
-    if (yych != 't')
-      goto yy1417;
-  yy1551:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1552;
-    if (yych != 'i')
-      goto yy1417;
-  yy1552:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1553;
-    if (yych != 'o')
-      goto yy1417;
-  yy1553:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1554:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1555:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1556;
-    if (yych != 'd')
-      goto yy1417;
-  yy1556:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1557;
-    if (yych != 's')
-      goto yy1417;
-  yy1557:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1558;
-    if (yych != 'e')
-      goto yy1417;
-  yy1558:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1456;
-    if (yych == 't')
-      goto yy1456;
-    goto yy1417;
-  yy1559:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1561;
-    if (yych == 't')
-      goto yy1561;
-    goto yy1417;
-  yy1560:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1456;
-    if (yych == 'm')
-      goto yy1456;
-    goto yy1417;
-  yy1561:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1562;
-    if (yych != 'e')
-      goto yy1417;
-  yy1562:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1456;
-    if (yych == 'r')
-      goto yy1456;
-    goto yy1417;
-  yy1563:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1564;
-    if (yych != 'm')
-      goto yy1417;
-  yy1564:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1565;
-    if (yych != 'e')
-      goto yy1417;
-  yy1565:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'R') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'S')
-          goto yy1566;
-        if (yych != 's')
-          goto yy1417;
-      }
-    }
-  yy1566:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1567;
-    if (yych != 'e')
-      goto yy1417;
-  yy1567:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1456;
-    if (yych == 't')
-      goto yy1456;
-    goto yy1417;
-  yy1568:
-    yych = *++p;
-    if (yych <= 'V') {
-      if (yych <= 'Q') {
-        if (yych == 'A')
-          goto yy1574;
-        goto yy1417;
-      } else {
-        if (yych <= 'R')
-          goto yy1456;
-        if (yych <= 'U')
-          goto yy1417;
-        goto yy1456;
-      }
-    } else {
-      if (yych <= 'q') {
-        if (yych == 'a')
-          goto yy1574;
-        goto yy1417;
-      } else {
-        if (yych <= 'r')
-          goto yy1456;
-        if (yych == 'v')
-          goto yy1456;
-        goto yy1417;
-      }
-    }
-  yy1569:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1570;
-    if (yych != 't')
-      goto yy1417;
-  yy1570:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1571;
-    if (yych != 'a')
-      goto yy1417;
-  yy1571:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1572;
-    if (yych != 'i')
-      goto yy1417;
-  yy1572:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1573;
-    if (yych != 'l')
-      goto yy1417;
-  yy1573:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1456;
-    if (yych == 's')
-      goto yy1456;
-    goto yy1417;
-  yy1574:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1575;
-    if (yych != 'l')
-      goto yy1417;
-  yy1575:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1576;
-    if (yych != 'o')
-      goto yy1417;
-  yy1576:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy1456;
-    if (yych == 'g')
-      goto yy1456;
-    goto yy1417;
-  yy1577:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1587;
-    if (yych == 'l')
-      goto yy1587;
-    goto yy1417;
-  yy1578:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1584;
-    if (yych == 'n')
-      goto yy1584;
-    goto yy1417;
-  yy1579:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1580;
-    if (yych != 'p')
-      goto yy1417;
-  yy1580:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1581;
-    if (yych != 't')
-      goto yy1417;
-  yy1581:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1582;
-    if (yych != 'i')
-      goto yy1417;
-  yy1582:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1583;
-    if (yych != 'o')
-      goto yy1417;
-  yy1583:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1584:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1585;
-    if (yych != 't')
-      goto yy1417;
-  yy1585:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1586;
-    if (yych != 'e')
-      goto yy1417;
-  yy1586:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1456;
-    if (yych == 'r')
-      goto yy1456;
-    goto yy1417;
-  yy1587:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'F') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'G')
-          goto yy1588;
-        if (yych != 'g')
-          goto yy1417;
-      }
-    }
-  yy1588:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1589;
-    if (yych != 'r')
-      goto yy1417;
-  yy1589:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1590;
-    if (yych != 'o')
-      goto yy1417;
-  yy1590:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1591;
-    if (yych != 'u')
-      goto yy1417;
-  yy1591:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1456;
-    if (yych == 'p')
-      goto yy1456;
-    goto yy1417;
-  yy1592:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1607;
-    if (yych == 'd')
-      goto yy1607;
-    goto yy1417;
-  yy1593:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1600;
-    if (yych == 'o')
-      goto yy1600;
-    goto yy1417;
-  yy1594:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1595;
-    if (yych != 's')
-      goto yy1417;
-  yy1595:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1596;
-    if (yych != 'e')
-      goto yy1417;
-  yy1596:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'E') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'F')
-          goto yy1597;
-        if (yych != 'f')
-          goto yy1417;
-      }
-    }
-  yy1597:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1598;
-    if (yych != 'o')
-      goto yy1417;
-  yy1598:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1599;
-    if (yych != 'n')
-      goto yy1417;
-  yy1599:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1456;
-    if (yych == 't')
-      goto yy1456;
-    goto yy1417;
-  yy1600:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1601;
-    if (yych != 'c')
-      goto yy1417;
-  yy1601:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy1602;
-    if (yych != 'k')
-      goto yy1417;
-  yy1602:
-    yych = *++p;
-    if (yych == 'Q')
-      goto yy1603;
-    if (yych != 'q')
-      goto yy1417;
-  yy1603:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1604;
-    if (yych != 'u')
-      goto yy1417;
-  yy1604:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1605;
-    if (yych != 'o')
-      goto yy1417;
-  yy1605:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1606;
-    if (yych != 't')
-      goto yy1417;
-  yy1606:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1607:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy1456;
-    if (yych == 'y')
-      goto yy1456;
-    goto yy1417;
-  yy1608:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1619;
-    if (yych == 'i')
-      goto yy1619;
-    goto yy1417;
-  yy1609:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1615;
-    if (yych == 't')
-      goto yy1615;
-    goto yy1417;
-  yy1610:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1611;
-    if (yych != 'd')
-      goto yy1417;
-  yy1611:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1612;
-    if (yych != 'r')
-      goto yy1417;
-  yy1612:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1613;
-    if (yych != 'e')
-      goto yy1417;
-  yy1613:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1614;
-    if (yych != 's')
-      goto yy1417;
-  yy1614:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1456;
-    if (yych == 's')
-      goto yy1456;
-    goto yy1417;
-  yy1615:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1616;
-    if (yych != 'i')
-      goto yy1417;
-  yy1616:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1617;
-    if (yych != 'c')
-      goto yy1417;
-  yy1617:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1618;
-    if (yych != 'l')
-      goto yy1417;
-  yy1618:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1619:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1620;
-    if (yych != 'd')
-      goto yy1417;
-  yy1620:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1621:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1497;
-    if (yych == 'e')
-      goto yy1497;
-    goto yy1417;
-  yy1622:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1623;
-    if (yych != 'r')
-      goto yy1417;
-  yy1623:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1624;
-    if (yych != 'a')
-      goto yy1417;
-  yy1624:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1456;
-    if (yych == 'm')
-      goto yy1456;
-    goto yy1417;
-  yy1625:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= '@') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'A')
-          goto yy1622;
-        if (yych == 'a')
-          goto yy1622;
-        goto yy1417;
-      }
-    }
-  yy1626:
-    ++p;
-    if ((yych = *p) <= 'U') {
-      if (yych <= 'N') {
-        if (yych == 'E')
-          goto yy1482;
-        goto yy1417;
-      } else {
-        if (yych <= 'O')
-          goto yy1481;
-        if (yych <= 'T')
-          goto yy1417;
-        goto yy1480;
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych == 'e')
-          goto yy1482;
-        goto yy1417;
-      } else {
-        if (yych <= 'o')
-          goto yy1481;
-        if (yych == 'u')
-          goto yy1480;
-        goto yy1417;
-      }
-    }
-  }
-}
-
-// Try to match an HTML block tag start line of type 7, returning
-// 7 if successful, 0 if not.
-bufsize_t _scan_html_block_start_7(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        0,   224, 224, 224, 224, 224, 224, 224, 224, 198, 202, 194, 198, 194,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 198, 224, 64,  224, 224, 224, 224, 128, 224, 224,
-        224, 224, 224, 241, 240, 224, 241, 241, 241, 241, 241, 241, 241, 241,
-        241, 241, 240, 224, 192, 192, 192, 224, 224, 241, 241, 241, 241, 241,
-        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
-        241, 241, 241, 241, 241, 241, 241, 224, 224, 224, 224, 240, 192, 241,
-        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
-        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 224, 224, 224,
-        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= ';') {
-        if (yych != '\n')
-          goto yy1631;
-      } else {
-        if (yych <= '<')
-          goto yy1630;
-        if (yych <= 0x7F)
-          goto yy1631;
-        if (yych >= 0xC2)
-          goto yy1632;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1634;
-        if (yych == 0xED)
-          goto yy1639;
-        goto yy1635;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1636;
-        if (yych <= 0xF3)
-          goto yy1637;
-        if (yych <= 0xF4)
-          goto yy1638;
-      }
-    }
-  yy1629 : { return 0; }
-  yy1630:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= '@') {
-      if (yych == '/')
-        goto yy1642;
-      goto yy1629;
-    } else {
-      if (yych <= 'Z')
-        goto yy1640;
-      if (yych <= '`')
-        goto yy1629;
-      if (yych <= 'z')
-        goto yy1640;
-      goto yy1629;
-    }
-  yy1631:
-    yych = *++p;
-    goto yy1629;
-  yy1632:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1631;
-  yy1633:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1629;
-    } else {
-      goto yy1651;
-    }
-  yy1634:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1632;
-    goto yy1633;
-  yy1635:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1632;
-    goto yy1633;
-  yy1636:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1635;
-    goto yy1633;
-  yy1637:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1635;
-    goto yy1633;
-  yy1638:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x8F)
-      goto yy1635;
-    goto yy1633;
-  yy1639:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x9F)
-      goto yy1632;
-    goto yy1633;
-  yy1640:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 1) {
-      goto yy1640;
-    }
-    if (yych <= ' ') {
-      if (yych <= 0x08)
-        goto yy1633;
-      if (yych <= '\r')
-        goto yy1653;
-      if (yych <= 0x1F)
-        goto yy1633;
-      goto yy1653;
-    } else {
-      if (yych <= '/') {
-        if (yych <= '.')
-          goto yy1633;
-        goto yy1655;
-      } else {
-        if (yych == '>')
-          goto yy1647;
-        goto yy1633;
-      }
-    }
-  yy1642:
-    yych = *++p;
-    if (yych <= '@')
-      goto yy1633;
-    if (yych <= 'Z')
-      goto yy1643;
-    if (yych <= '`')
-      goto yy1633;
-    if (yych >= '{')
-      goto yy1633;
-  yy1643:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 2) {
-      goto yy1645;
-    }
-    if (yych <= '=') {
-      if (yych <= '-') {
-        if (yych <= ',')
-          goto yy1633;
-        goto yy1643;
-      } else {
-        if (yych <= '/')
-          goto yy1633;
-        if (yych <= '9')
-          goto yy1643;
-        goto yy1633;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1647;
-        if (yych <= '@')
-          goto yy1633;
-        goto yy1643;
-      } else {
-        if (yych <= '`')
-          goto yy1633;
-        if (yych <= 'z')
-          goto yy1643;
-        goto yy1633;
-      }
-    }
-  yy1645:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 2) {
-      goto yy1645;
-    }
-    if (yych != '>')
-      goto yy1633;
-  yy1647:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 4) {
-      goto yy1647;
-    }
-    if (yych <= 0x08)
-      goto yy1633;
-    if (yych <= '\n')
-      goto yy1649;
-    if (yych <= '\v')
-      goto yy1633;
-    if (yych <= '\r')
-      goto yy1652;
-    goto yy1633;
-  yy1649:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 4) {
-      goto yy1647;
-    }
-    if (yych <= 0x08)
-      goto yy1651;
-    if (yych <= '\n')
-      goto yy1649;
-    if (yych <= '\v')
-      goto yy1651;
-    if (yych <= '\r')
-      goto yy1652;
-  yy1651 : { return 7; }
-  yy1652:
-    yych = *++p;
-    goto yy1651;
-  yy1653:
-    ++p;
-    yych = *p;
-    if (yych <= ':') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1633;
-        if (yych <= '\r')
-          goto yy1653;
-        if (yych <= 0x1F)
-          goto yy1633;
-        goto yy1653;
-      } else {
-        if (yych == '/')
-          goto yy1655;
-        if (yych <= '9')
-          goto yy1633;
-        goto yy1656;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych == '>')
-          goto yy1647;
-        if (yych <= '@')
-          goto yy1633;
-        goto yy1656;
-      } else {
-        if (yych <= '_') {
-          if (yych <= '^')
-            goto yy1633;
-          goto yy1656;
-        } else {
-          if (yych <= '`')
-            goto yy1633;
-          if (yych <= 'z')
-            goto yy1656;
-          goto yy1633;
-        }
-      }
-    }
-  yy1655:
-    yych = *++p;
-    if (yych == '>')
-      goto yy1647;
-    goto yy1633;
-  yy1656:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy1656;
-    }
-    if (yych <= ',') {
-      if (yych <= '\r') {
-        if (yych <= 0x08)
-          goto yy1633;
-      } else {
-        if (yych != ' ')
-          goto yy1633;
-      }
-    } else {
-      if (yych <= '<') {
-        if (yych <= '/')
-          goto yy1655;
-        goto yy1633;
-      } else {
-        if (yych <= '=')
-          goto yy1660;
-        if (yych <= '>')
-          goto yy1647;
-        goto yy1633;
-      }
-    }
-  yy1658:
-    ++p;
-    yych = *p;
-    if (yych <= '<') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1633;
-        if (yych <= '\r')
-          goto yy1658;
-        if (yych <= 0x1F)
-          goto yy1633;
-        goto yy1658;
-      } else {
-        if (yych <= '/') {
-          if (yych <= '.')
-            goto yy1633;
-          goto yy1655;
-        } else {
-          if (yych == ':')
-            goto yy1656;
-          goto yy1633;
-        }
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '=')
-          goto yy1660;
-        if (yych <= '>')
-          goto yy1647;
-        if (yych <= '@')
-          goto yy1633;
-        goto yy1656;
-      } else {
-        if (yych <= '_') {
-          if (yych <= '^')
-            goto yy1633;
-          goto yy1656;
-        } else {
-          if (yych <= '`')
-            goto yy1633;
-          if (yych <= 'z')
-            goto yy1656;
-          goto yy1633;
-        }
-      }
-    }
-  yy1660:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1662;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '"') {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych >= '!')
-          goto yy1673;
-      } else {
-        if (yych <= '\'')
-          goto yy1671;
-        if (yych <= 0xC1)
-          goto yy1633;
-        if (yych <= 0xDF)
-          goto yy1664;
-        goto yy1665;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1670;
-        goto yy1666;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1667;
-        if (yych <= 0xF3)
-          goto yy1668;
-        if (yych <= 0xF4)
-          goto yy1669;
-        goto yy1633;
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1662;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '\'') {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych <= ' ')
-          goto yy1696;
-        if (yych <= '"')
-          goto yy1673;
-        goto yy1671;
-      } else {
-        if (yych == '>')
-          goto yy1647;
-        if (yych <= 0xC1)
-          goto yy1633;
-        goto yy1664;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1665;
-        if (yych == 0xED)
-          goto yy1670;
-        goto yy1666;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1667;
-        if (yych <= 0xF3)
-          goto yy1668;
-        if (yych <= 0xF4)
-          goto yy1669;
-        goto yy1633;
-      }
-    }
-  yy1662:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1662;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '=') {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych <= ' ')
-          goto yy1690;
-        goto yy1633;
-      } else {
-        if (yych <= '>')
-          goto yy1647;
-        if (yych <= 0xC1)
-          goto yy1633;
-        if (yych >= 0xE0)
-          goto yy1665;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1670;
-        goto yy1666;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1667;
-        if (yych <= 0xF3)
-          goto yy1668;
-        if (yych <= 0xF4)
-          goto yy1669;
-        goto yy1633;
-      }
-    }
-  yy1664:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1662;
-    goto yy1633;
-  yy1665:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1664;
-    goto yy1633;
-  yy1666:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1664;
-    goto yy1633;
-  yy1667:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1666;
-    goto yy1633;
-  yy1668:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1666;
-    goto yy1633;
-  yy1669:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x8F)
-      goto yy1666;
-    goto yy1633;
-  yy1670:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x9F)
-      goto yy1664;
-    goto yy1633;
-  yy1671:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1671;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych <= '\'')
-          goto yy1682;
-        goto yy1633;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1683;
-        if (yych <= 0xE0)
-          goto yy1684;
-        goto yy1685;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1689;
-        if (yych <= 0xEF)
-          goto yy1685;
-        goto yy1686;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1687;
-        if (yych <= 0xF4)
-          goto yy1688;
-        goto yy1633;
-      }
-    }
-  yy1673:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1673;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych <= '"')
-          goto yy1682;
-        goto yy1633;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1675;
-        if (yych <= 0xE0)
-          goto yy1676;
-        goto yy1677;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1681;
-        if (yych <= 0xEF)
-          goto yy1677;
-        goto yy1678;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1679;
-        if (yych <= 0xF4)
-          goto yy1680;
-        goto yy1633;
-      }
-    }
-  yy1675:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1673;
-    goto yy1633;
-  yy1676:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1675;
-    goto yy1633;
-  yy1677:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1675;
-    goto yy1633;
-  yy1678:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1677;
-    goto yy1633;
-  yy1679:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1677;
-    goto yy1633;
-  yy1680:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x8F)
-      goto yy1677;
-    goto yy1633;
-  yy1681:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x9F)
-      goto yy1675;
-    goto yy1633;
-  yy1682:
-    ++p;
-    yych = *p;
-    if (yych <= ' ') {
-      if (yych <= 0x08)
-        goto yy1633;
-      if (yych <= '\r')
-        goto yy1653;
-      if (yych <= 0x1F)
-        goto yy1633;
-      goto yy1653;
-    } else {
-      if (yych <= '/') {
-        if (yych <= '.')
-          goto yy1633;
-        goto yy1655;
-      } else {
-        if (yych == '>')
-          goto yy1647;
-        goto yy1633;
-      }
-    }
-  yy1683:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1671;
-    goto yy1633;
-  yy1684:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1683;
-    goto yy1633;
-  yy1685:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1683;
-    goto yy1633;
-  yy1686:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1685;
-    goto yy1633;
-  yy1687:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1685;
-    goto yy1633;
-  yy1688:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x8F)
-      goto yy1685;
-    goto yy1633;
-  yy1689:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x9F)
-      goto yy1683;
-    goto yy1633;
-  yy1690:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '"') {
-        if (yych <= '\r') {
-          if (yych <= 0x00)
-            goto yy1633;
-          if (yych <= 0x08)
-            goto yy1662;
-          goto yy1690;
-        } else {
-          if (yych == ' ')
-            goto yy1690;
-          if (yych <= '!')
-            goto yy1662;
-          goto yy1633;
-        }
-      } else {
-        if (yych <= ':') {
-          if (yych == '\'')
-            goto yy1633;
-          if (yych <= '9')
-            goto yy1662;
-        } else {
-          if (yych <= ';')
-            goto yy1662;
-          if (yych <= '=')
-            goto yy1633;
-          if (yych <= '>')
-            goto yy1647;
-          goto yy1662;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1692;
-          if (yych <= '^')
-            goto yy1662;
-          if (yych >= '`')
-            goto yy1633;
-        } else {
-          if (yych <= 'z')
-            goto yy1692;
-          if (yych <= 0x7F)
-            goto yy1662;
-          if (yych <= 0xC1)
-            goto yy1633;
-          goto yy1664;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1665;
-          if (yych == 0xED)
-            goto yy1670;
-          goto yy1666;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1667;
-          if (yych <= 0xF3)
-            goto yy1668;
-          if (yych <= 0xF4)
-            goto yy1669;
-          goto yy1633;
-        }
-      }
-    }
-  yy1692:
-    ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= '&') {
-        if (yych <= 0x1F) {
-          if (yych <= 0x00)
-            goto yy1633;
-          if (yych <= 0x08)
-            goto yy1662;
-          if (yych >= 0x0E)
-            goto yy1662;
-        } else {
-          if (yych <= ' ')
-            goto yy1694;
-          if (yych == '"')
-            goto yy1633;
-          goto yy1662;
-        }
-      } else {
-        if (yych <= '/') {
-          if (yych <= '\'')
-            goto yy1633;
-          if (yych <= ',')
-            goto yy1662;
-          if (yych <= '.')
-            goto yy1692;
-          goto yy1662;
-        } else {
-          if (yych <= ';') {
-            if (yych <= ':')
-              goto yy1692;
-            goto yy1662;
-          } else {
-            if (yych <= '<')
-              goto yy1633;
-            if (yych <= '=')
-              goto yy1660;
-            goto yy1647;
-          }
-        }
-      }
-    } else {
-      if (yych <= 0xC1) {
-        if (yych <= '_') {
-          if (yych <= '@')
-            goto yy1662;
-          if (yych <= 'Z')
-            goto yy1692;
-          if (yych <= '^')
-            goto yy1662;
-          goto yy1692;
-        } else {
-          if (yych <= '`')
-            goto yy1633;
-          if (yych <= 'z')
-            goto yy1692;
-          if (yych <= 0x7F)
-            goto yy1662;
-          goto yy1633;
-        }
-      } else {
-        if (yych <= 0xED) {
-          if (yych <= 0xDF)
-            goto yy1664;
-          if (yych <= 0xE0)
-            goto yy1665;
-          if (yych <= 0xEC)
-            goto yy1666;
-          goto yy1670;
-        } else {
-          if (yych <= 0xF0) {
-            if (yych <= 0xEF)
-              goto yy1666;
-            goto yy1667;
-          } else {
-            if (yych <= 0xF3)
-              goto yy1668;
-            if (yych <= 0xF4)
-              goto yy1669;
-            goto yy1633;
-          }
-        }
-      }
-    }
-  yy1694:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '&') {
-        if (yych <= 0x1F) {
-          if (yych <= 0x00)
-            goto yy1633;
-          if (yych <= 0x08)
-            goto yy1662;
-          if (yych <= '\r')
-            goto yy1694;
-          goto yy1662;
-        } else {
-          if (yych <= ' ')
-            goto yy1694;
-          if (yych == '"')
-            goto yy1633;
-          goto yy1662;
-        }
-      } else {
-        if (yych <= ';') {
-          if (yych <= '\'')
-            goto yy1633;
-          if (yych == ':')
-            goto yy1692;
-          goto yy1662;
-        } else {
-          if (yych <= '<')
-            goto yy1633;
-          if (yych <= '=')
-            goto yy1660;
-          if (yych <= '>')
-            goto yy1647;
-          goto yy1662;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1692;
-          if (yych <= '^')
-            goto yy1662;
-          if (yych <= '_')
-            goto yy1692;
-          goto yy1633;
-        } else {
-          if (yych <= 'z')
-            goto yy1692;
-          if (yych <= 0x7F)
-            goto yy1662;
-          if (yych <= 0xC1)
-            goto yy1633;
-          goto yy1664;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1665;
-          if (yych == 0xED)
-            goto yy1670;
-          goto yy1666;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1667;
-          if (yych <= 0xF3)
-            goto yy1668;
-          if (yych <= 0xF4)
-            goto yy1669;
-          goto yy1633;
-        }
-      }
-    }
-  yy1696:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '"') {
-        if (yych <= '\r') {
-          if (yych <= 0x00)
-            goto yy1633;
-          if (yych <= 0x08)
-            goto yy1662;
-          goto yy1696;
-        } else {
-          if (yych == ' ')
-            goto yy1696;
-          if (yych <= '!')
-            goto yy1662;
-          goto yy1673;
-        }
-      } else {
-        if (yych <= ':') {
-          if (yych == '\'')
-            goto yy1671;
-          if (yych <= '9')
-            goto yy1662;
-          goto yy1692;
-        } else {
-          if (yych <= ';')
-            goto yy1662;
-          if (yych <= '=')
-            goto yy1633;
-          if (yych <= '>')
-            goto yy1647;
-          goto yy1662;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1692;
-          if (yych <= '^')
-            goto yy1662;
-          if (yych <= '_')
-            goto yy1692;
-          goto yy1633;
-        } else {
-          if (yych <= 'z')
-            goto yy1692;
-          if (yych <= 0x7F)
-            goto yy1662;
-          if (yych <= 0xC1)
-            goto yy1633;
-          goto yy1664;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1665;
-          if (yych == 0xED)
-            goto yy1670;
-          goto yy1666;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1667;
-          if (yych <= 0xF3)
-            goto yy1668;
-          if (yych <= 0xF4)
-            goto yy1669;
-          goto yy1633;
-        }
-      }
-    }
-  }
-}
-
-// Try to match an HTML block end line of type 1
-bufsize_t _scan_html_block_end_1(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= ';') {
-        if (yych != '\n')
-          goto yy1701;
-      } else {
-        if (yych <= '<')
-          goto yy1702;
-        if (yych <= 0x7F)
-          goto yy1701;
-        if (yych >= 0xC2)
-          goto yy1703;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1705;
-        if (yych == 0xED)
-          goto yy1710;
-        goto yy1706;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1707;
-        if (yych <= 0xF3)
-          goto yy1708;
-        if (yych <= 0xF4)
-          goto yy1709;
-      }
-    }
-  yy1700 : { return 0; }
-  yy1701:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1700;
-      goto yy1715;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1700;
-      if (yych <= 0xF4)
-        goto yy1715;
-      goto yy1700;
-    }
-  yy1702:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= '/') {
-      if (yych == '\n')
-        goto yy1700;
-      if (yych <= '.')
-        goto yy1715;
-      goto yy1711;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1715;
-      if (yych <= 0xC1)
-        goto yy1700;
-      if (yych <= 0xF4)
-        goto yy1715;
-      goto yy1700;
-    }
-  yy1703:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1701;
-  yy1704:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1700;
-    } else {
-      goto yy1732;
-    }
-  yy1705:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1703;
-    goto yy1704;
-  yy1706:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1703;
-    goto yy1704;
-  yy1707:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1706;
-    goto yy1704;
-  yy1708:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1706;
-    goto yy1704;
-  yy1709:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0x8F)
-      goto yy1706;
-    goto yy1704;
-  yy1710:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0x9F)
-      goto yy1703;
-    goto yy1704;
-  yy1711:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 's') {
-      if (yych <= 'R') {
-        if (yych <= '\n') {
-          if (yych <= '\t')
-            goto yy1714;
-          goto yy1704;
-        } else {
-          if (yych == 'P')
-            goto yy1723;
-          goto yy1714;
-        }
-      } else {
-        if (yych <= 'o') {
-          if (yych <= 'S')
-            goto yy1724;
-          goto yy1714;
-        } else {
-          if (yych <= 'p')
-            goto yy1723;
-          if (yych <= 'r')
-            goto yy1714;
-          goto yy1724;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= 0x7F)
-            goto yy1714;
-          goto yy1704;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1716;
-          if (yych <= 0xE0)
-            goto yy1717;
-          goto yy1718;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1722;
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1712:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '.') {
-        if (yych == '\n')
-          goto yy1704;
-      } else {
-        if (yych <= '/')
-          goto yy1711;
-        if (yych <= 0x7F)
-          goto yy1714;
-        if (yych <= 0xC1)
-          goto yy1704;
-        goto yy1716;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych == 0xED)
-          goto yy1722;
-        goto yy1718;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1719;
-        if (yych <= 0xF3)
-          goto yy1720;
-        if (yych <= 0xF4)
-          goto yy1721;
-        goto yy1704;
-      }
-    }
-  yy1714:
-    ++p;
-    yych = *p;
-  yy1715:
-    if (yybm[0 + yych] & 128) {
-      goto yy1714;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1704;
-        if (yych <= '<')
-          goto yy1712;
-        goto yy1704;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        goto yy1718;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1722;
-        if (yych <= 0xEF)
-          goto yy1718;
-        goto yy1719;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1720;
-        if (yych <= 0xF4)
-          goto yy1721;
-        goto yy1704;
-      }
-    }
-  yy1716:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1714;
-    goto yy1704;
-  yy1717:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1716;
-    goto yy1704;
-  yy1718:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1716;
-    goto yy1704;
-  yy1719:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1718;
-    goto yy1704;
-  yy1720:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1718;
-    goto yy1704;
-  yy1721:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0x8F)
-      goto yy1718;
-    goto yy1704;
-  yy1722:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0x9F)
-      goto yy1716;
-    goto yy1704;
-  yy1723:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'R') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'Q')
-          goto yy1714;
-        goto yy1735;
-      } else {
-        if (yych == 'r')
-          goto yy1735;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1724:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 't') {
-      if (yych <= 'S') {
-        if (yych <= '\n') {
-          if (yych <= '\t')
-            goto yy1714;
-          goto yy1704;
-        } else {
-          if (yych == 'C')
-            goto yy1726;
-          goto yy1714;
-        }
-      } else {
-        if (yych <= 'b') {
-          if (yych >= 'U')
-            goto yy1714;
-        } else {
-          if (yych <= 'c')
-            goto yy1726;
-          if (yych <= 's')
-            goto yy1714;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= 0x7F)
-            goto yy1714;
-          goto yy1704;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1716;
-          if (yych <= 0xE0)
-            goto yy1717;
-          goto yy1718;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1722;
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'Y') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'X')
-          goto yy1714;
-        goto yy1733;
-      } else {
-        if (yych == 'y')
-          goto yy1733;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1726:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'R') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'Q')
-          goto yy1714;
-      } else {
-        if (yych == 'r')
-          goto yy1727;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1727:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'I') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'H')
-          goto yy1714;
-      } else {
-        if (yych == 'i')
-          goto yy1728;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1728:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'P') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'O')
-          goto yy1714;
-      } else {
-        if (yych == 'p')
-          goto yy1729;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1729:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'T') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'S')
-          goto yy1714;
-      } else {
-        if (yych == 't')
-          goto yy1730;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1730:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych == '\n')
-          goto yy1704;
-        goto yy1714;
-      } else {
-        if (yych <= '>')
-          goto yy1731;
-        if (yych <= 0x7F)
-          goto yy1714;
-        if (yych <= 0xC1)
-          goto yy1704;
-        goto yy1716;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych == 0xED)
-          goto yy1722;
-        goto yy1718;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1719;
-        if (yych <= 0xF3)
-          goto yy1720;
-        if (yych <= 0xF4)
-          goto yy1721;
-        goto yy1704;
-      }
-    }
-  yy1731:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1714;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1732;
-        if (yych <= '<')
-          goto yy1712;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        goto yy1718;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1722;
-        if (yych <= 0xEF)
-          goto yy1718;
-        goto yy1719;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1720;
-        if (yych <= 0xF4)
-          goto yy1721;
-      }
-    }
-  yy1732 : { return (bufsize_t)(p - start); }
-  yy1733:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'L') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'K')
-          goto yy1714;
-      } else {
-        if (yych == 'l')
-          goto yy1734;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1734:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'E') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'D')
-          goto yy1714;
-        goto yy1730;
-      } else {
-        if (yych == 'e')
-          goto yy1730;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1735:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'E') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'D')
-          goto yy1714;
-        goto yy1730;
-      } else {
-        if (yych == 'e')
-          goto yy1730;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  }
-}
-
-// Try to match an HTML block end line of type 2
-bufsize_t _scan_html_block_end_2(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= ',') {
-        if (yych != '\n')
-          goto yy1739;
-      } else {
-        if (yych <= '-')
-          goto yy1740;
-        if (yych <= 0x7F)
-          goto yy1739;
-        if (yych >= 0xC2)
-          goto yy1741;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1743;
-        if (yych == 0xED)
-          goto yy1748;
-        goto yy1744;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1745;
-        if (yych <= 0xF3)
-          goto yy1746;
-        if (yych <= 0xF4)
-          goto yy1747;
-      }
-    }
-  yy1738 : { return 0; }
-  yy1739:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1738;
-      goto yy1752;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1738;
-      if (yych <= 0xF4)
-        goto yy1752;
-      goto yy1738;
-    }
-  yy1740:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 64) {
-      goto yy1749;
-    }
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1738;
-      goto yy1752;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1738;
-      if (yych <= 0xF4)
-        goto yy1752;
-      goto yy1738;
-    }
-  yy1741:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1739;
-  yy1742:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1738;
-    } else {
-      goto yy1762;
-    }
-  yy1743:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1741;
-    goto yy1742;
-  yy1744:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1741;
-    goto yy1742;
-  yy1745:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1744;
-    goto yy1742;
-  yy1746:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1744;
-    goto yy1742;
-  yy1747:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0x8F)
-      goto yy1744;
-    goto yy1742;
-  yy1748:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0x9F)
-      goto yy1741;
-    goto yy1742;
-  yy1749:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1749;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych == '\n')
-          goto yy1742;
-      } else {
-        if (yych <= '>')
-          goto yy1761;
-        if (yych <= 0x7F)
-          goto yy1751;
-        if (yych <= 0xC1)
-          goto yy1742;
-        goto yy1753;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1754;
-        if (yych == 0xED)
-          goto yy1759;
-        goto yy1755;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1756;
-        if (yych <= 0xF3)
-          goto yy1757;
-        if (yych <= 0xF4)
-          goto yy1758;
-        goto yy1742;
-      }
-    }
-  yy1751:
-    ++p;
-    yych = *p;
-  yy1752:
-    if (yybm[0 + yych] & 128) {
-      goto yy1751;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1742;
-        if (yych <= '-')
-          goto yy1760;
-        goto yy1742;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1753;
-        if (yych <= 0xE0)
-          goto yy1754;
-        goto yy1755;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1759;
-        if (yych <= 0xEF)
-          goto yy1755;
-        goto yy1756;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1757;
-        if (yych <= 0xF4)
-          goto yy1758;
-        goto yy1742;
-      }
-    }
-  yy1753:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1751;
-    goto yy1742;
-  yy1754:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1753;
-    goto yy1742;
-  yy1755:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1753;
-    goto yy1742;
-  yy1756:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1755;
-    goto yy1742;
-  yy1757:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1755;
-    goto yy1742;
-  yy1758:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0x8F)
-      goto yy1755;
-    goto yy1742;
-  yy1759:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0x9F)
-      goto yy1753;
-    goto yy1742;
-  yy1760:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1751;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1742;
-        if (yych <= '-')
-          goto yy1749;
-        goto yy1742;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1753;
-        if (yych <= 0xE0)
-          goto yy1754;
-        goto yy1755;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1759;
-        if (yych <= 0xEF)
-          goto yy1755;
-        goto yy1756;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1757;
-        if (yych <= 0xF4)
-          goto yy1758;
-        goto yy1742;
-      }
-    }
-  yy1761:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1751;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1762;
-        if (yych <= '-')
-          goto yy1760;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1753;
-        if (yych <= 0xE0)
-          goto yy1754;
-        goto yy1755;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1759;
-        if (yych <= 0xEF)
-          goto yy1755;
-        goto yy1756;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1757;
-        if (yych <= 0xF4)
-          goto yy1758;
-      }
-    }
-  yy1762 : { return (bufsize_t)(p - start); }
-  }
-}
-
-// Try to match an HTML block end line of type 3
-bufsize_t _scan_html_block_end_3(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= '>') {
-        if (yych != '\n')
-          goto yy1766;
-      } else {
-        if (yych <= '?')
-          goto yy1767;
-        if (yych <= 0x7F)
-          goto yy1766;
-        if (yych >= 0xC2)
-          goto yy1768;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1770;
-        if (yych == 0xED)
-          goto yy1775;
-        goto yy1771;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1772;
-        if (yych <= 0xF3)
-          goto yy1773;
-        if (yych <= 0xF4)
-          goto yy1774;
-      }
-    }
-  yy1765 : { return 0; }
-  yy1766:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1765;
-      goto yy1781;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1765;
-      if (yych <= 0xF4)
-        goto yy1781;
-      goto yy1765;
-    }
-  yy1767:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= '>') {
-      if (yych == '\n')
-        goto yy1765;
-      if (yych <= '=')
-        goto yy1781;
-      goto yy1776;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1781;
-      if (yych <= 0xC1)
-        goto yy1765;
-      if (yych <= 0xF4)
-        goto yy1781;
-      goto yy1765;
-    }
-  yy1768:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1766;
-  yy1769:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1765;
-    } else {
-      goto yy1777;
-    }
-  yy1770:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1768;
-    goto yy1769;
-  yy1771:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1768;
-    goto yy1769;
-  yy1772:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1771;
-    goto yy1769;
-  yy1773:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1771;
-    goto yy1769;
-  yy1774:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0x8F)
-      goto yy1771;
-    goto yy1769;
-  yy1775:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0x9F)
-      goto yy1768;
-    goto yy1769;
-  yy1776:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1780;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1777;
-        if (yych <= '?')
-          goto yy1778;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1782;
-        if (yych <= 0xE0)
-          goto yy1783;
-        goto yy1784;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1788;
-        if (yych <= 0xEF)
-          goto yy1784;
-        goto yy1785;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1786;
-        if (yych <= 0xF4)
-          goto yy1787;
-      }
-    }
-  yy1777 : { return (bufsize_t)(p - start); }
-  yy1778:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1778;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych == '\n')
-          goto yy1769;
-      } else {
-        if (yych <= '>')
-          goto yy1776;
-        if (yych <= 0x7F)
-          goto yy1780;
-        if (yych <= 0xC1)
-          goto yy1769;
-        goto yy1782;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1783;
-        if (yych == 0xED)
-          goto yy1788;
-        goto yy1784;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1785;
-        if (yych <= 0xF3)
-          goto yy1786;
-        if (yych <= 0xF4)
-          goto yy1787;
-        goto yy1769;
-      }
-    }
-  yy1780:
-    ++p;
-    yych = *p;
-  yy1781:
-    if (yybm[0 + yych] & 128) {
-      goto yy1780;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1769;
-        if (yych <= '?')
-          goto yy1778;
-        goto yy1769;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1782;
-        if (yych <= 0xE0)
-          goto yy1783;
-        goto yy1784;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1788;
-        if (yych <= 0xEF)
-          goto yy1784;
-        goto yy1785;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1786;
-        if (yych <= 0xF4)
-          goto yy1787;
-        goto yy1769;
-      }
-    }
-  yy1782:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1780;
-    goto yy1769;
-  yy1783:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1782;
-    goto yy1769;
-  yy1784:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1782;
-    goto yy1769;
-  yy1785:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1784;
-    goto yy1769;
-  yy1786:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1784;
-    goto yy1769;
-  yy1787:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0x8F)
-      goto yy1784;
-    goto yy1769;
-  yy1788:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0x9F)
-      goto yy1782;
-    goto yy1769;
-  }
-}
-
-// Try to match an HTML block end line of type 4
-bufsize_t _scan_html_block_end_4(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych != '\n')
-          goto yy1792;
-      } else {
-        if (yych <= '>')
-          goto yy1793;
-        if (yych <= 0x7F)
-          goto yy1792;
-        if (yych >= 0xC2)
-          goto yy1795;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1797;
-        if (yych == 0xED)
-          goto yy1802;
-        goto yy1798;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1799;
-        if (yych <= 0xF3)
-          goto yy1800;
-        if (yych <= 0xF4)
-          goto yy1801;
-      }
-    }
-  yy1791 : { return 0; }
-  yy1792:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1791;
-      goto yy1806;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1791;
-      if (yych <= 0xF4)
-        goto yy1806;
-      goto yy1791;
-    }
-  yy1793:
-    yyaccept = 1;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych != '\n')
-        goto yy1806;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1794;
-      if (yych <= 0xF4)
-        goto yy1806;
-    }
-  yy1794 : { return (bufsize_t)(p - start); }
-  yy1795:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1792;
-  yy1796:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1791;
-    } else {
-      goto yy1794;
-    }
-  yy1797:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1795;
-    goto yy1796;
-  yy1798:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1795;
-    goto yy1796;
-  yy1799:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1798;
-    goto yy1796;
-  yy1800:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1798;
-    goto yy1796;
-  yy1801:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0x8F)
-      goto yy1798;
-    goto yy1796;
-  yy1802:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0x9F)
-      goto yy1795;
-    goto yy1796;
-  yy1803:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1805;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1794;
-        if (yych <= '>')
-          goto yy1803;
-        goto yy1794;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1807;
-        if (yych <= 0xE0)
-          goto yy1808;
-        goto yy1809;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1813;
-        if (yych <= 0xEF)
-          goto yy1809;
-        goto yy1810;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1811;
-        if (yych <= 0xF4)
-          goto yy1812;
-        goto yy1794;
-      }
-    }
-  yy1805:
-    ++p;
-    yych = *p;
-  yy1806:
-    if (yybm[0 + yych] & 128) {
-      goto yy1805;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1796;
-        if (yych <= '>')
-          goto yy1803;
-        goto yy1796;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1807;
-        if (yych <= 0xE0)
-          goto yy1808;
-        goto yy1809;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1813;
-        if (yych <= 0xEF)
-          goto yy1809;
-        goto yy1810;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1811;
-        if (yych <= 0xF4)
-          goto yy1812;
-        goto yy1796;
-      }
-    }
-  yy1807:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1805;
-    goto yy1796;
-  yy1808:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1807;
-    goto yy1796;
-  yy1809:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1807;
-    goto yy1796;
-  yy1810:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1809;
-    goto yy1796;
-  yy1811:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1809;
-    goto yy1796;
-  yy1812:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0x8F)
-      goto yy1809;
-    goto yy1796;
-  yy1813:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0x9F)
-      goto yy1807;
-    goto yy1796;
-  }
-}
-
-// Try to match an HTML block end line of type 5
-bufsize_t _scan_html_block_end_5(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= '\\') {
-        if (yych != '\n')
-          goto yy1817;
-      } else {
-        if (yych <= ']')
-          goto yy1818;
-        if (yych <= 0x7F)
-          goto yy1817;
-        if (yych >= 0xC2)
-          goto yy1819;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1821;
-        if (yych == 0xED)
-          goto yy1826;
-        goto yy1822;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1823;
-        if (yych <= 0xF3)
-          goto yy1824;
-        if (yych <= 0xF4)
-          goto yy1825;
-      }
-    }
-  yy1816 : { return 0; }
-  yy1817:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1816;
-      goto yy1830;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1816;
-      if (yych <= 0xF4)
-        goto yy1830;
-      goto yy1816;
-    }
-  yy1818:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 64) {
-      goto yy1827;
-    }
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1816;
-      goto yy1830;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1816;
-      if (yych <= 0xF4)
-        goto yy1830;
-      goto yy1816;
-    }
-  yy1819:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1817;
-  yy1820:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1816;
-    } else {
-      goto yy1840;
-    }
-  yy1821:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1819;
-    goto yy1820;
-  yy1822:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1819;
-    goto yy1820;
-  yy1823:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1822;
-    goto yy1820;
-  yy1824:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1822;
-    goto yy1820;
-  yy1825:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0x8F)
-      goto yy1822;
-    goto yy1820;
-  yy1826:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0x9F)
-      goto yy1819;
-    goto yy1820;
-  yy1827:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1827;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych == '\n')
-          goto yy1820;
-      } else {
-        if (yych <= '>')
-          goto yy1839;
-        if (yych <= 0x7F)
-          goto yy1829;
-        if (yych <= 0xC1)
-          goto yy1820;
-        goto yy1831;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1832;
-        if (yych == 0xED)
-          goto yy1837;
-        goto yy1833;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1834;
-        if (yych <= 0xF3)
-          goto yy1835;
-        if (yych <= 0xF4)
-          goto yy1836;
-        goto yy1820;
-      }
-    }
-  yy1829:
-    ++p;
-    yych = *p;
-  yy1830:
-    if (yybm[0 + yych] & 128) {
-      goto yy1829;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1820;
-        if (yych <= ']')
-          goto yy1838;
-        goto yy1820;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1831;
-        if (yych <= 0xE0)
-          goto yy1832;
-        goto yy1833;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1837;
-        if (yych <= 0xEF)
-          goto yy1833;
-        goto yy1834;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1835;
-        if (yych <= 0xF4)
-          goto yy1836;
-        goto yy1820;
-      }
-    }
-  yy1831:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1829;
-    goto yy1820;
-  yy1832:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1831;
-    goto yy1820;
-  yy1833:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1831;
-    goto yy1820;
-  yy1834:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1833;
-    goto yy1820;
-  yy1835:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1833;
-    goto yy1820;
-  yy1836:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0x8F)
-      goto yy1833;
-    goto yy1820;
-  yy1837:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0x9F)
-      goto yy1831;
-    goto yy1820;
-  yy1838:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1829;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1820;
-        if (yych <= ']')
-          goto yy1827;
-        goto yy1820;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1831;
-        if (yych <= 0xE0)
-          goto yy1832;
-        goto yy1833;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1837;
-        if (yych <= 0xEF)
-          goto yy1833;
-        goto yy1834;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1835;
-        if (yych <= 0xF4)
-          goto yy1836;
-        goto yy1820;
-      }
-    }
-  yy1839:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1829;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1840;
-        if (yych <= ']')
-          goto yy1838;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1831;
-        if (yych <= 0xE0)
-          goto yy1832;
-        goto yy1833;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1837;
-        if (yych <= 0xEF)
-          goto yy1833;
-        goto yy1834;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1835;
-        if (yych <= 0xF4)
-          goto yy1836;
-      }
-    }
-  yy1840 : { return (bufsize_t)(p - start); }
-  }
-}
-
-// Try to match a URL in a link or reference, return number of chars matched.
-// This may optionally be contained in <..>; otherwise
-// whitespace and unbalanced right parentheses aren't allowed.
-// Newlines aren't ever allowed.
-bufsize_t _scan_link_url(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 8,   128, 128, 8,
-        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
-        128, 128, 128, 128, 136, 224, 224, 224, 224, 224, 224, 224, 128, 128,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 32,  224, 32,  224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 16,  224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= '[') {
-      if (yych <= ' ') {
-        if (yych <= '\f') {
-          if (yych == '\n')
-            goto yy1844;
-          goto yy1860;
-        } else {
-          if (yych <= '\r')
-            goto yy1846;
-          if (yych <= 0x1F)
-            goto yy1860;
-          goto yy1846;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1848;
-          if (yych <= '(')
-            goto yy1859;
-          goto yy1860;
-        } else {
-          if (yych == '<')
-            goto yy1847;
-          goto yy1848;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1857;
-          if (yych <= 0x7F)
-            goto yy1848;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1849;
-          if (yych <= 0xE0)
-            goto yy1851;
-          goto yy1852;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1856;
-          if (yych <= 0xEF)
-            goto yy1852;
-          goto yy1853;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1854;
-          if (yych <= 0xF4)
-            goto yy1855;
-        }
-      }
-    }
-  yy1843 : { return (bufsize_t)(p - start); }
-  yy1844:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-  yy1845:
-    if (yybm[0 + yych] & 8) {
-      goto yy1844;
-    }
-    if (yych <= 0x7F) {
-      if (yych <= ')') {
-        if (yych <= 0x1F)
-          goto yy1843;
-        if (yych <= '\'')
-          goto yy1872;
-        if (yych <= '(')
-          goto yy1863;
-        goto yy1843;
-      } else {
-        if (yych <= '<') {
-          if (yych <= ';')
-            goto yy1872;
-          goto yy1907;
-        } else {
-          if (yych == '\\')
-            goto yy1881;
-          goto yy1872;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF) {
-          if (yych <= 0xC1)
-            goto yy1843;
-          goto yy1874;
-        } else {
-          if (yych <= 0xE0)
-            goto yy1875;
-          if (yych <= 0xEC)
-            goto yy1876;
-          goto yy1880;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1876;
-          goto yy1877;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1878;
-          if (yych <= 0xF4)
-            goto yy1879;
-          goto yy1843;
-        }
-      }
-    }
-  yy1846:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    goto yy1845;
-  yy1847:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 64) {
-      goto yy1907;
-    }
-    if (yych <= '>') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1843;
-          goto yy1921;
-        } else {
-          if (yych <= '\n')
-            goto yy1843;
-          if (yych <= '\f')
-            goto yy1921;
-          goto yy1843;
-        }
-      } else {
-        if (yych <= '(') {
-          if (yych <= ' ')
-            goto yy1921;
-          goto yy1919;
-        } else {
-          if (yych <= ')')
-            goto yy1921;
-          if (yych <= '<')
-            goto yy1872;
-          goto yy1909;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1918;
-          goto yy1843;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1911;
-          if (yych <= 0xE0)
-            goto yy1912;
-          goto yy1913;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1917;
-          if (yych <= 0xEF)
-            goto yy1913;
-          goto yy1914;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1915;
-          if (yych <= 0xF4)
-            goto yy1916;
-          goto yy1843;
-        }
-      }
-    }
-  yy1848:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    goto yy1873;
-  yy1849:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1848;
-  yy1850:
-    p = marker;
-    if (yyaccept <= 1) {
-      if (yyaccept == 0) {
-        goto yy1843;
-      } else {
-        goto yy1858;
-      }
-    } else {
-      goto yy1910;
-    }
-  yy1851:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1849;
-    goto yy1850;
-  yy1852:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1849;
-    goto yy1850;
-  yy1853:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1852;
-    goto yy1850;
-  yy1854:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1852;
-    goto yy1850;
-  yy1855:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1852;
-    goto yy1850;
-  yy1856:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1849;
-    goto yy1850;
-  yy1857:
-    yyaccept = 1;
-    yych = *(marker = ++p);
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x7F)
-          goto yy1872;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1882;
-        if (yych <= 0xE0)
-          goto yy1883;
-        goto yy1884;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1888;
-        if (yych <= 0xEF)
-          goto yy1884;
-        goto yy1885;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1886;
-        if (yych <= 0xF4)
-          goto yy1887;
-      }
-    }
-  yy1858 : { return 0; }
-  yy1859:
-    yyaccept = 1;
-    yych = *(marker = ++p);
-    if (yych <= '(') {
-      if (yych <= ' ')
-        goto yy1858;
-      if (yych <= '\'')
-        goto yy1864;
-      goto yy1858;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1864;
-      if (yych <= 0xC1)
-        goto yy1858;
-      if (yych <= 0xF4)
-        goto yy1864;
-      goto yy1858;
-    }
-  yy1860:
-    yych = *++p;
-    goto yy1858;
-  yy1861:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy1861;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= ')') {
-        if (yych <= ' ')
-          goto yy1850;
-        if (yych >= ')')
-          goto yy1889;
-      } else {
-        if (yych <= 0x7F)
-          goto yy1863;
-        if (yych <= 0xC1)
-          goto yy1850;
-        if (yych <= 0xDF)
-          goto yy1865;
-        goto yy1866;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1871;
-        goto yy1867;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1868;
-        if (yych <= 0xF3)
-          goto yy1869;
-        if (yych <= 0xF4)
-          goto yy1870;
-        goto yy1850;
-      }
-    }
-  yy1863:
-    ++p;
-    yych = *p;
-  yy1864:
-    if (yybm[0 + yych] & 32) {
-      goto yy1863;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= '(')
-          goto yy1850;
-        if (yych <= ')')
-          goto yy1872;
-        goto yy1861;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1850;
-        if (yych >= 0xE0)
-          goto yy1866;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1871;
-        goto yy1867;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1868;
-        if (yych <= 0xF3)
-          goto yy1869;
-        if (yych <= 0xF4)
-          goto yy1870;
-        goto yy1850;
-      }
-    }
-  yy1865:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1863;
-    goto yy1850;
-  yy1866:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1865;
-    goto yy1850;
-  yy1867:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1865;
-    goto yy1850;
-  yy1868:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1867;
-    goto yy1850;
-  yy1869:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1867;
-    goto yy1850;
-  yy1870:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1867;
-    goto yy1850;
-  yy1871:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1865;
-    goto yy1850;
-  yy1872:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-  yy1873:
-    if (yych <= 0xC1) {
-      if (yych <= ')') {
-        if (yych <= ' ')
-          goto yy1843;
-        if (yych <= '\'')
-          goto yy1872;
-        if (yych <= '(')
-          goto yy1863;
-        goto yy1843;
-      } else {
-        if (yych == '\\')
-          goto yy1881;
-        if (yych <= 0x7F)
-          goto yy1872;
-        goto yy1843;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1874;
-        if (yych <= 0xE0)
-          goto yy1875;
-        if (yych <= 0xEC)
-          goto yy1876;
-        goto yy1880;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1876;
-          goto yy1877;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1878;
-          if (yych <= 0xF4)
-            goto yy1879;
-          goto yy1843;
-        }
-      }
-    }
-  yy1874:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1872;
-    goto yy1850;
-  yy1875:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1874;
-    goto yy1850;
-  yy1876:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1874;
-    goto yy1850;
-  yy1877:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1876;
-    goto yy1850;
-  yy1878:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1876;
-    goto yy1850;
-  yy1879:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1876;
-    goto yy1850;
-  yy1880:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1874;
-    goto yy1850;
-  yy1881:
-    ++p;
-    yych = *p;
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x7F)
-          goto yy1872;
-        goto yy1850;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1882;
-        if (yych <= 0xE0)
-          goto yy1883;
-        goto yy1884;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1888;
-        if (yych <= 0xEF)
-          goto yy1884;
-        goto yy1885;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1886;
-        if (yych <= 0xF4)
-          goto yy1887;
-        goto yy1850;
-      }
-    }
-  yy1882:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1872;
-    goto yy1850;
-  yy1883:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1882;
-    goto yy1850;
-  yy1884:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1882;
-    goto yy1850;
-  yy1885:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1884;
-    goto yy1850;
-  yy1886:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1884;
-    goto yy1850;
-  yy1887:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1884;
-    goto yy1850;
-  yy1888:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1882;
-    goto yy1850;
-  yy1889:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-  yy1890:
-    if (yych <= 0xC1) {
-      if (yych <= ')') {
-        if (yych <= ' ')
-          goto yy1843;
-        if (yych <= '\'')
-          goto yy1889;
-        if (yych <= '(')
-          goto yy1863;
-        goto yy1872;
-      } else {
-        if (yych == '\\')
-          goto yy1898;
-        if (yych <= 0x7F)
-          goto yy1889;
-        goto yy1843;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1891;
-        if (yych <= 0xE0)
-          goto yy1892;
-        if (yych <= 0xEC)
-          goto yy1893;
-        goto yy1897;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1893;
-          goto yy1894;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1895;
-          if (yych <= 0xF4)
-            goto yy1896;
-          goto yy1843;
-        }
-      }
-    }
-  yy1891:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1889;
-    goto yy1850;
-  yy1892:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1891;
-    goto yy1850;
-  yy1893:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1891;
-    goto yy1850;
-  yy1894:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1893;
-    goto yy1850;
-  yy1895:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1893;
-    goto yy1850;
-  yy1896:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1893;
-    goto yy1850;
-  yy1897:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1891;
-    goto yy1850;
-  yy1898:
-    ++p;
-    yych = *p;
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= ' ')
-          goto yy1872;
-        if (yych <= '[')
-          goto yy1889;
-      } else {
-        if (yych <= 0x7F)
-          goto yy1889;
-        if (yych <= 0xC1)
-          goto yy1850;
-        if (yych <= 0xDF)
-          goto yy1900;
-        goto yy1901;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1906;
-        goto yy1902;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1903;
-        if (yych <= 0xF3)
-          goto yy1904;
-        if (yych <= 0xF4)
-          goto yy1905;
-        goto yy1850;
-      }
-    }
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= 0xDF) {
-      if (yych <= '[') {
-        if (yych <= ' ')
-          goto yy1843;
-        if (yych == '(')
-          goto yy1863;
-        goto yy1889;
-      } else {
-        if (yych <= '\\')
-          goto yy1898;
-        if (yych <= 0x7F)
-          goto yy1889;
-        if (yych <= 0xC1)
-          goto yy1843;
-        goto yy1891;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1892;
-        if (yych == 0xED)
-          goto yy1897;
-        goto yy1893;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1894;
-        if (yych <= 0xF3)
-          goto yy1895;
-        if (yych <= 0xF4)
-          goto yy1896;
-        goto yy1843;
-      }
-    }
-  yy1900:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1889;
-    goto yy1850;
-  yy1901:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1900;
-    goto yy1850;
-  yy1902:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1900;
-    goto yy1850;
-  yy1903:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1902;
-    goto yy1850;
-  yy1904:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1902;
-    goto yy1850;
-  yy1905:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1902;
-    goto yy1850;
-  yy1906:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1900;
-    goto yy1850;
-  yy1907:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1907;
-    }
-    if (yych <= '>') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1843;
-          goto yy1921;
-        } else {
-          if (yych <= '\n')
-            goto yy1843;
-          if (yych <= '\f')
-            goto yy1921;
-          goto yy1843;
-        }
-      } else {
-        if (yych <= '(') {
-          if (yych <= ' ')
-            goto yy1921;
-          goto yy1919;
-        } else {
-          if (yych <= ')')
-            goto yy1921;
-          if (yych <= '<')
-            goto yy1872;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1918;
-          goto yy1843;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1911;
-          if (yych <= 0xE0)
-            goto yy1912;
-          goto yy1913;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1917;
-          if (yych <= 0xEF)
-            goto yy1913;
-          goto yy1914;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1915;
-          if (yych <= 0xF4)
-            goto yy1916;
-          goto yy1843;
-        }
-      }
-    }
-  yy1909:
-    yyaccept = 2;
-    yych = *(marker = ++p);
-    if (yych <= ')') {
-      if (yych <= ' ')
-        goto yy1910;
-      if (yych <= '(')
-        goto yy1873;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1873;
-      if (yych <= 0xC1)
-        goto yy1910;
-      if (yych <= 0xF4)
-        goto yy1873;
-    }
-  yy1910 : { return (bufsize_t)(p - start); }
-  yy1911:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1907;
-    goto yy1850;
-  yy1912:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1911;
-    goto yy1850;
-  yy1913:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1911;
-    goto yy1850;
-  yy1914:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1913;
-    goto yy1850;
-  yy1915:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1913;
-    goto yy1850;
-  yy1916:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1913;
-    goto yy1850;
-  yy1917:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1911;
-    goto yy1850;
-  yy1918:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F) {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1872;
-          goto yy1907;
-        } else {
-          if (yych <= '\n')
-            goto yy1872;
-          if (yych <= '\f')
-            goto yy1907;
-          goto yy1872;
-        }
-      } else {
-        if (yych <= '>') {
-          if (yych <= '=')
-            goto yy1907;
-          goto yy1965;
-        } else {
-          if (yych == '\\')
-            goto yy1966;
-          goto yy1907;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF) {
-          if (yych <= 0xC1)
-            goto yy1850;
-          goto yy1967;
-        } else {
-          if (yych <= 0xE0)
-            goto yy1968;
-          if (yych <= 0xEC)
-            goto yy1969;
-          goto yy1973;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1969;
-          goto yy1970;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1971;
-          if (yych <= 0xF4)
-            goto yy1972;
-          goto yy1850;
-        }
-      }
-    }
-  yy1919:
-    ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1850;
-          if (yych >= '\n')
-            goto yy1850;
-        } else {
-          if (yych == '\r')
-            goto yy1850;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1919;
-          if (yych >= ')')
-            goto yy1907;
-        } else {
-          if (yych == '<')
-            goto yy1863;
-          if (yych <= '=')
-            goto yy1919;
-          goto yy1934;
-        }
-      }
-    } else {
-      if (yych <= 0xE0) {
-        if (yych <= 0x7F) {
-          if (yych == '\\')
-            goto yy1935;
-          goto yy1919;
-        } else {
-          if (yych <= 0xC1)
-            goto yy1850;
-          if (yych <= 0xDF)
-            goto yy1937;
-          goto yy1938;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych == 0xED)
-            goto yy1943;
-          goto yy1939;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1940;
-          if (yych <= 0xF3)
-            goto yy1941;
-          if (yych <= 0xF4)
-            goto yy1942;
-          goto yy1850;
-        }
-      }
-    }
-  yy1921:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1921;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= '<')
-          goto yy1850;
-        if (yych >= '?')
-          goto yy1924;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1850;
-        if (yych <= 0xDF)
-          goto yy1926;
-        goto yy1927;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1932;
-        goto yy1928;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1929;
-        if (yych <= 0xF3)
-          goto yy1930;
-        if (yych <= 0xF4)
-          goto yy1931;
-        goto yy1850;
-      }
-    }
-  yy1923:
-    yych = *++p;
-    goto yy1910;
-  yy1924:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F) {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1850;
-          goto yy1921;
-        } else {
-          if (yych <= '\n')
-            goto yy1850;
-          if (yych <= '\f')
-            goto yy1921;
-          goto yy1850;
-        }
-      } else {
-        if (yych <= '>') {
-          if (yych <= '=')
-            goto yy1921;
-          goto yy1933;
-        } else {
-          if (yych == '\\')
-            goto yy1924;
-          goto yy1921;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF) {
-          if (yych <= 0xC1)
-            goto yy1850;
-        } else {
-          if (yych <= 0xE0)
-            goto yy1927;
-          if (yych <= 0xEC)
-            goto yy1928;
-          goto yy1932;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1928;
-          goto yy1929;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1930;
-          if (yych <= 0xF4)
-            goto yy1931;
-          goto yy1850;
-        }
-      }
-    }
-  yy1926:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1921;
-    goto yy1850;
-  yy1927:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1926;
-    goto yy1850;
-  yy1928:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1926;
-    goto yy1850;
-  yy1929:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1928;
-    goto yy1850;
-  yy1930:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1928;
-    goto yy1850;
-  yy1931:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1928;
-    goto yy1850;
-  yy1932:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1926;
-    goto yy1850;
-  yy1933:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1921;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= '<')
-          goto yy1910;
-        if (yych <= '>')
-          goto yy1923;
-        goto yy1924;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1910;
-        if (yych <= 0xDF)
-          goto yy1926;
-        goto yy1927;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1932;
-        goto yy1928;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1929;
-        if (yych <= 0xF3)
-          goto yy1930;
-        if (yych <= 0xF4)
-          goto yy1931;
-        goto yy1910;
-      }
-    }
-  yy1934:
-    yyaccept = 2;
-    yych = *(marker = ++p);
-    if (yych <= '(') {
-      if (yych <= ' ')
-        goto yy1910;
-      if (yych <= '\'')
-        goto yy1864;
-      goto yy1910;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1864;
-      if (yych <= 0xC1)
-        goto yy1910;
-      if (yych <= 0xF4)
-        goto yy1864;
-      goto yy1910;
-    }
-  yy1935:
-    ++p;
-    yych = *p;
-    if (yych <= '[') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1850;
-          goto yy1921;
-        } else {
-          if (yych <= '\n')
-            goto yy1850;
-          if (yych <= '\f')
-            goto yy1921;
-          goto yy1850;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= ' ')
-            goto yy1921;
-          if (yych <= '(')
-            goto yy1919;
-          goto yy1944;
-        } else {
-          if (yych == '>')
-            goto yy1946;
-          goto yy1919;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1935;
-          if (yych <= 0x7F)
-            goto yy1919;
-          goto yy1850;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1937;
-          if (yych <= 0xE0)
-            goto yy1938;
-          goto yy1939;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1943;
-          if (yych <= 0xEF)
-            goto yy1939;
-          goto yy1940;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1941;
-          if (yych <= 0xF4)
-            goto yy1942;
-          goto yy1850;
-        }
-      }
-    }
-  yy1937:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1919;
-    goto yy1850;
-  yy1938:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1937;
-    goto yy1850;
-  yy1939:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1937;
-    goto yy1850;
-  yy1940:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1939;
-    goto yy1850;
-  yy1941:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1939;
-    goto yy1850;
-  yy1942:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1939;
-    goto yy1850;
-  yy1943:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1937;
-    goto yy1850;
-  yy1944:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1843;
-          if (yych <= '\t')
-            goto yy1921;
-          goto yy1843;
-        } else {
-          if (yych == '\r')
-            goto yy1843;
-          goto yy1921;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1944;
-          if (yych <= '(')
-            goto yy1919;
-          goto yy1907;
-        } else {
-          if (yych == '<')
-            goto yy1889;
-          if (yych <= '=')
-            goto yy1944;
-          goto yy1947;
-        }
-      }
-    } else {
-      if (yych <= 0xE0) {
-        if (yych <= 0x7F) {
-          if (yych == '\\')
-            goto yy1948;
-          goto yy1944;
-        } else {
-          if (yych <= 0xC1)
-            goto yy1843;
-          if (yych <= 0xDF)
-            goto yy1949;
-          goto yy1950;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych == 0xED)
-            goto yy1955;
-          goto yy1951;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1952;
-          if (yych <= 0xF3)
-            goto yy1953;
-          if (yych <= 0xF4)
-            goto yy1954;
-          goto yy1843;
-        }
-      }
-    }
-  yy1946:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1910;
-          if (yych <= '\t')
-            goto yy1921;
-          goto yy1910;
-        } else {
-          if (yych == '\r')
-            goto yy1910;
-          goto yy1921;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1919;
-          if (yych <= '(')
-            goto yy1921;
-          goto yy1907;
-        } else {
-          if (yych == '<')
-            goto yy1863;
-          if (yych <= '=')
-            goto yy1919;
-          goto yy1934;
-        }
-      }
-    } else {
-      if (yych <= 0xE0) {
-        if (yych <= 0x7F) {
-          if (yych == '\\')
-            goto yy1935;
-          goto yy1919;
-        } else {
-          if (yych <= 0xC1)
-            goto yy1910;
-          if (yych <= 0xDF)
-            goto yy1937;
-          goto yy1938;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych == 0xED)
-            goto yy1943;
-          goto yy1939;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1940;
-          if (yych <= 0xF3)
-            goto yy1941;
-          if (yych <= 0xF4)
-            goto yy1942;
-          goto yy1910;
-        }
-      }
-    }
-  yy1947:
-    yyaccept = 2;
-    yych = *(marker = ++p);
-    if (yych <= ' ')
-      goto yy1910;
-    if (yych <= 0x7F)
-      goto yy1890;
-    if (yych <= 0xC1)
-      goto yy1910;
-    if (yych <= 0xF4)
-      goto yy1890;
-    goto yy1910;
-  yy1948:
-    ++p;
-    yych = *p;
-    if (yych <= '\\') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1872;
-          goto yy1907;
-        } else {
-          if (yych <= '\n')
-            goto yy1872;
-          if (yych <= '\f')
-            goto yy1907;
-          goto yy1872;
-        }
-      } else {
-        if (yych <= '=') {
-          if (yych <= ' ')
-            goto yy1907;
-          goto yy1944;
-        } else {
-          if (yych <= '>')
-            goto yy1956;
-          if (yych <= '[')
-            goto yy1944;
-          goto yy1957;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= 0x7F)
-            goto yy1944;
-          goto yy1850;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1958;
-          if (yych <= 0xE0)
-            goto yy1959;
-          goto yy1960;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1964;
-          if (yych <= 0xEF)
-            goto yy1960;
-          goto yy1961;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1962;
-          if (yych <= 0xF4)
-            goto yy1963;
-          goto yy1850;
-        }
-      }
-    }
-  yy1949:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1944;
-    goto yy1850;
-  yy1950:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1949;
-    goto yy1850;
-  yy1951:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1949;
-    goto yy1850;
-  yy1952:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1951;
-    goto yy1850;
-  yy1953:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1951;
-    goto yy1850;
-  yy1954:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1951;
-    goto yy1850;
-  yy1955:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1949;
-    goto yy1850;
-  yy1956:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1910;
-          if (yych <= '\t')
-            goto yy1921;
-          goto yy1910;
-        } else {
-          if (yych == '\r')
-            goto yy1910;
-          goto yy1921;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1944;
-          if (yych <= '(')
-            goto yy1919;
-          goto yy1907;
-        } else {
-          if (yych == '<')
-            goto yy1889;
-          if (yych <= '=')
-            goto yy1944;
-          goto yy1947;
-        }
-      }
-    } else {
-      if (yych <= 0xE0) {
-        if (yych <= 0x7F) {
-          if (yych == '\\')
-            goto yy1948;
-          goto yy1944;
-        } else {
-          if (yych <= 0xC1)
-            goto yy1910;
-          if (yych <= 0xDF)
-            goto yy1949;
-          goto yy1950;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych == 0xED)
-            goto yy1955;
-          goto yy1951;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1952;
-          if (yych <= 0xF3)
-            goto yy1953;
-          if (yych <= 0xF4)
-            goto yy1954;
-          goto yy1910;
-        }
-      }
-    }
-  yy1957:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '[') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1843;
-          goto yy1921;
-        } else {
-          if (yych <= '\n')
-            goto yy1843;
-          if (yych <= '\f')
-            goto yy1921;
-          goto yy1843;
-        }
-      } else {
-        if (yych <= '(') {
-          if (yych <= ' ')
-            goto yy1921;
-          if (yych <= '\'')
-            goto yy1944;
-          goto yy1919;
-        } else {
-          if (yych == '>')
-            goto yy1956;
-          goto yy1944;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1948;
-          if (yych <= 0x7F)
-            goto yy1944;
-          goto yy1843;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1949;
-          if (yych <= 0xE0)
-            goto yy1950;
-          goto yy1951;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1955;
-          if (yych <= 0xEF)
-            goto yy1951;
-          goto yy1952;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1953;
-          if (yych <= 0xF4)
-            goto yy1954;
-          goto yy1843;
-        }
-      }
-    }
-  yy1958:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1944;
-    goto yy1850;
-  yy1959:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1958;
-    goto yy1850;
-  yy1960:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1958;
-    goto yy1850;
-  yy1961:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1960;
-    goto yy1850;
-  yy1962:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1960;
-    goto yy1850;
-  yy1963:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1960;
-    goto yy1850;
-  yy1964:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1958;
-    goto yy1850;
-  yy1965:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1907;
-    }
-    if (yych <= '>') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1910;
-          goto yy1921;
-        } else {
-          if (yych <= '\n')
-            goto yy1910;
-          if (yych <= '\f')
-            goto yy1921;
-          goto yy1910;
-        }
-      } else {
-        if (yych <= '(') {
-          if (yych <= ' ')
-            goto yy1921;
-          goto yy1919;
-        } else {
-          if (yych <= ')')
-            goto yy1921;
-          if (yych <= '<')
-            goto yy1872;
-          goto yy1909;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1918;
-          goto yy1910;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1911;
-          if (yych <= 0xE0)
-            goto yy1912;
-          goto yy1913;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1917;
-          if (yych <= 0xEF)
-            goto yy1913;
-          goto yy1914;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1915;
-          if (yych <= 0xF4)
-            goto yy1916;
-          goto yy1910;
-        }
-      }
-    }
-  yy1966:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '[') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1843;
-          if (yych <= '\t')
-            goto yy1921;
-          goto yy1843;
-        } else {
-          if (yych == '\r')
-            goto yy1843;
-          goto yy1921;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1907;
-          if (yych <= '(')
-            goto yy1919;
-          goto yy1921;
-        } else {
-          if (yych == '>')
-            goto yy1965;
-          goto yy1907;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1918;
-          if (yych <= 0x7F)
-            goto yy1907;
-          goto yy1843;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1911;
-          if (yych <= 0xE0)
-            goto yy1912;
-          goto yy1913;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1917;
-          if (yych <= 0xEF)
-            goto yy1913;
-          goto yy1914;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1915;
-          if (yych <= 0xF4)
-            goto yy1916;
-          goto yy1843;
-        }
-      }
-    }
-  yy1967:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1907;
-    goto yy1850;
-  yy1968:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1967;
-    goto yy1850;
-  yy1969:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1967;
-    goto yy1850;
-  yy1970:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1969;
-    goto yy1850;
-  yy1971:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0xBF)
-      goto yy1969;
-    goto yy1850;
-  yy1972:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x8F)
-      goto yy1969;
-    goto yy1850;
-  yy1973:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1850;
-    if (yych <= 0x9F)
-      goto yy1967;
-    goto yy1850;
-  }
-}
-
-// Try to match a link title (in single quotes, in double quotes, or
-// in parentheses), returning number of chars matched.  Allow one
-// level of internal nesting (quotes within quotes).
-bufsize_t _scan_link_title(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    static const unsigned char yybm[] = {
-        0,   224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 96,  224, 224, 224, 224, 160, 224, 192,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 16,  224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
-        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xC1) {
-      if (yych <= '"') {
-        if (yych == '\n')
-          goto yy1976;
-        if (yych <= '!')
-          goto yy1980;
-        goto yy1977;
-      } else {
-        if (yych <= '\'') {
-          if (yych <= '&')
-            goto yy1980;
-          goto yy1978;
-        } else {
-          if (yych <= '(')
-            goto yy1979;
-          if (yych <= 0x7F)
-            goto yy1980;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1981;
-        if (yych <= 0xE0)
-          goto yy1983;
-        if (yych <= 0xEC)
-          goto yy1984;
-        goto yy1988;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1984;
-          goto yy1985;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1986;
-          if (yych <= 0xF4)
-            goto yy1987;
-        }
-      }
-    }
-  yy1976 : { return 0; }
-  yy1977:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x00)
-      goto yy1976;
-    if (yych <= 0x7F)
-      goto yy2020;
-    if (yych <= 0xC1)
-      goto yy1976;
-    if (yych <= 0xF4)
-      goto yy2020;
-    goto yy1976;
-  yy1978:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x00)
-      goto yy1976;
-    if (yych <= 0x7F)
-      goto yy2006;
-    if (yych <= 0xC1)
-      goto yy1976;
-    if (yych <= 0xF4)
-      goto yy2006;
-    goto yy1976;
-  yy1979:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x00)
-      goto yy1976;
-    if (yych <= 0x7F)
-      goto yy1992;
-    if (yych <= 0xC1)
-      goto yy1976;
-    if (yych <= 0xF4)
-      goto yy1992;
-    goto yy1976;
-  yy1980:
-    yych = *++p;
-    goto yy1976;
-  yy1981:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1980;
-  yy1982:
-    p = marker;
-    if (yyaccept <= 1) {
-      if (yyaccept == 0) {
-        goto yy1976;
-      } else {
-        goto yy2001;
-      }
-    } else {
-      if (yyaccept == 2) {
-        goto yy2015;
-      } else {
-        goto yy2029;
-      }
-    }
-  yy1983:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1981;
-    goto yy1982;
-  yy1984:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1981;
-    goto yy1982;
-  yy1985:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1984;
-    goto yy1982;
-  yy1986:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1984;
-    goto yy1982;
-  yy1987:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0x8F)
-      goto yy1984;
-    goto yy1982;
-  yy1988:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0x9F)
-      goto yy1981;
-    goto yy1982;
-  yy1989:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1991;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1982;
-        if (yych <= ')')
-          goto yy2002;
-        goto yy1989;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1982;
-        if (yych <= 0xDF)
-          goto yy1993;
-        goto yy1994;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1999;
-        goto yy1995;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1996;
-        if (yych <= 0xF3)
-          goto yy1997;
-        if (yych <= 0xF4)
-          goto yy1998;
-        goto yy1982;
-      }
-    }
-  yy1991:
-    ++p;
-    yych = *p;
-  yy1992:
-    if (yybm[0 + yych] & 32) {
-      goto yy1991;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1982;
-        if (yych <= ')')
-          goto yy2000;
-        goto yy1989;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1982;
-        if (yych >= 0xE0)
-          goto yy1994;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1999;
-        goto yy1995;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1996;
-        if (yych <= 0xF3)
-          goto yy1997;
-        if (yych <= 0xF4)
-          goto yy1998;
-        goto yy1982;
-      }
-    }
-  yy1993:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1991;
-    goto yy1982;
-  yy1994:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1993;
-    goto yy1982;
-  yy1995:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1993;
-    goto yy1982;
-  yy1996:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1995;
-    goto yy1982;
-  yy1997:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy1995;
-    goto yy1982;
-  yy1998:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0x8F)
-      goto yy1995;
-    goto yy1982;
-  yy1999:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0x9F)
-      goto yy1993;
-    goto yy1982;
-  yy2000:
-    ++p;
-  yy2001 : { return (bufsize_t)(p - start); }
-  yy2002:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1991;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy2001;
-        if (yych <= ')')
-          goto yy2000;
-        goto yy1989;
-      } else {
-        if (yych <= 0xC1)
-          goto yy2001;
-        if (yych <= 0xDF)
-          goto yy1993;
-        goto yy1994;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1999;
-        goto yy1995;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1996;
-        if (yych <= 0xF3)
-          goto yy1997;
-        if (yych <= 0xF4)
-          goto yy1998;
-        goto yy2001;
-      }
-    }
-  yy2003:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2005;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1982;
-        if (yych <= '\'')
-          goto yy2016;
-        goto yy2003;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1982;
-        if (yych <= 0xDF)
-          goto yy2007;
-        goto yy2008;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2013;
-        goto yy2009;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2010;
-        if (yych <= 0xF3)
-          goto yy2011;
-        if (yych <= 0xF4)
-          goto yy2012;
-        goto yy1982;
-      }
-    }
-  yy2005:
-    ++p;
-    yych = *p;
-  yy2006:
-    if (yybm[0 + yych] & 64) {
-      goto yy2005;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1982;
-        if (yych <= '\'')
-          goto yy2014;
-        goto yy2003;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1982;
-        if (yych >= 0xE0)
-          goto yy2008;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2013;
-        goto yy2009;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2010;
-        if (yych <= 0xF3)
-          goto yy2011;
-        if (yych <= 0xF4)
-          goto yy2012;
-        goto yy1982;
-      }
-    }
-  yy2007:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2005;
-    goto yy1982;
-  yy2008:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2007;
-    goto yy1982;
-  yy2009:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2007;
-    goto yy1982;
-  yy2010:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2009;
-    goto yy1982;
-  yy2011:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2009;
-    goto yy1982;
-  yy2012:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0x8F)
-      goto yy2009;
-    goto yy1982;
-  yy2013:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0x9F)
-      goto yy2007;
-    goto yy1982;
-  yy2014:
-    ++p;
-  yy2015 : { return (bufsize_t)(p - start); }
-  yy2016:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2005;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy2015;
-        if (yych <= '\'')
-          goto yy2014;
-        goto yy2003;
-      } else {
-        if (yych <= 0xC1)
-          goto yy2015;
-        if (yych <= 0xDF)
-          goto yy2007;
-        goto yy2008;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2013;
-        goto yy2009;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2010;
-        if (yych <= 0xF3)
-          goto yy2011;
-        if (yych <= 0xF4)
-          goto yy2012;
-        goto yy2015;
-      }
-    }
-  yy2017:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2019;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1982;
-        if (yych <= '"')
-          goto yy2030;
-        goto yy2017;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1982;
-        if (yych <= 0xDF)
-          goto yy2021;
-        goto yy2022;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2027;
-        goto yy2023;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2024;
-        if (yych <= 0xF3)
-          goto yy2025;
-        if (yych <= 0xF4)
-          goto yy2026;
-        goto yy1982;
-      }
-    }
-  yy2019:
-    ++p;
-    yych = *p;
-  yy2020:
-    if (yybm[0 + yych] & 128) {
-      goto yy2019;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1982;
-        if (yych <= '"')
-          goto yy2028;
-        goto yy2017;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1982;
-        if (yych >= 0xE0)
-          goto yy2022;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2027;
-        goto yy2023;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2024;
-        if (yych <= 0xF3)
-          goto yy2025;
-        if (yych <= 0xF4)
-          goto yy2026;
-        goto yy1982;
-      }
-    }
-  yy2021:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2019;
-    goto yy1982;
-  yy2022:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2021;
-    goto yy1982;
-  yy2023:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2021;
-    goto yy1982;
-  yy2024:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2023;
-    goto yy1982;
-  yy2025:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0xBF)
-      goto yy2023;
-    goto yy1982;
-  yy2026:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0x8F)
-      goto yy2023;
-    goto yy1982;
-  yy2027:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1982;
-    if (yych <= 0x9F)
-      goto yy2021;
-    goto yy1982;
-  yy2028:
-    ++p;
-  yy2029 : { return (bufsize_t)(p - start); }
-  yy2030:
-    yyaccept = 3;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2019;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy2029;
-        if (yych <= '"')
-          goto yy2028;
-        goto yy2017;
-      } else {
-        if (yych <= 0xC1)
-          goto yy2029;
-        if (yych <= 0xDF)
-          goto yy2021;
-        goto yy2022;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2027;
-        goto yy2023;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2024;
-        if (yych <= 0xF3)
-          goto yy2025;
-        if (yych <= 0xF4)
-          goto yy2026;
-        goto yy2029;
-      }
-    }
-  }
-}
-
-// Match space characters, including newlines.
-bufsize_t _scan_spacechars(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   128, 0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xC1) {
-      if (yych <= '\r') {
-        if (yych <= 0x08)
-          goto yy2037;
-        if (yych == '\n')
-          goto yy2035;
-        goto yy2034;
-      } else {
-        if (yych == ' ')
-          goto yy2034;
-        if (yych <= 0x7F)
-          goto yy2037;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy2039;
-        if (yych <= 0xE0)
-          goto yy2041;
-        if (yych <= 0xEC)
-          goto yy2042;
-        goto yy2046;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2042;
-          goto yy2043;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2044;
-          if (yych <= 0xF4)
-            goto yy2045;
-        }
-      }
-    }
-  yy2033 : { return (bufsize_t)(p - start); }
-  yy2034:
-    yych = *++p;
-    goto yy2036;
-  yy2035:
-    ++p;
-    yych = *p;
-  yy2036:
-    if (yybm[0 + yych] & 128) {
-      goto yy2035;
-    }
-    goto yy2033;
-  yy2037:
-    ++p;
-    { return 0; }
-  yy2039:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2040;
-    if (yych <= 0xBF)
-      goto yy2037;
-  yy2040:
-    p = marker;
-    goto yy2033;
-  yy2041:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2040;
-    if (yych <= 0xBF)
-      goto yy2039;
-    goto yy2040;
-  yy2042:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2040;
-    if (yych <= 0xBF)
-      goto yy2039;
-    goto yy2040;
-  yy2043:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2040;
-    if (yych <= 0xBF)
-      goto yy2042;
-    goto yy2040;
-  yy2044:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2040;
-    if (yych <= 0xBF)
-      goto yy2042;
-    goto yy2040;
-  yy2045:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2040;
-    if (yych <= 0x8F)
-      goto yy2042;
-    goto yy2040;
-  yy2046:
-    ++p;
-    if ((yych = *p) <= 0x7F)
-      goto yy2040;
-    if (yych <= 0x9F)
-      goto yy2039;
-    goto yy2040;
-  }
-}
-
-// Match ATX header start.
-bufsize_t _scan_atx_header_start(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= '"') {
-        if (yych != '\n')
-          goto yy2051;
-      } else {
-        if (yych <= '#')
-          goto yy2050;
-        if (yych <= 0x7F)
-          goto yy2051;
-        if (yych >= 0xC2)
-          goto yy2052;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy2054;
-        if (yych == 0xED)
-          goto yy2059;
-        goto yy2055;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2056;
-        if (yych <= 0xF3)
-          goto yy2057;
-        if (yych <= 0xF4)
-          goto yy2058;
-      }
-    }
-  yy2049 : { return 0; }
-  yy2050:
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 128) {
-      goto yy2062;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2060;
-      goto yy2049;
-    } else {
-      if (yych <= '\r')
-        goto yy2060;
-      if (yych == '#')
-        goto yy2064;
-      goto yy2049;
-    }
-  yy2051:
-    yych = *++p;
-    goto yy2049;
-  yy2052:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2053;
-    if (yych <= 0xBF)
-      goto yy2051;
-  yy2053:
-    p = marker;
-    goto yy2049;
-  yy2054:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2053;
-    if (yych <= 0xBF)
-      goto yy2052;
-    goto yy2053;
-  yy2055:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2053;
-    if (yych <= 0xBF)
-      goto yy2052;
-    goto yy2053;
-  yy2056:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2053;
-    if (yych <= 0xBF)
-      goto yy2055;
-    goto yy2053;
-  yy2057:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2053;
-    if (yych <= 0xBF)
-      goto yy2055;
-    goto yy2053;
-  yy2058:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2053;
-    if (yych <= 0x8F)
-      goto yy2055;
-    goto yy2053;
-  yy2059:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2053;
-    if (yych <= 0x9F)
-      goto yy2052;
-    goto yy2053;
-  yy2060:
-    ++p;
-  yy2061 : { return (bufsize_t)(p - start); }
-  yy2062:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2062;
-    }
-    goto yy2061;
-  yy2064:
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2062;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2060;
-      goto yy2053;
-    } else {
-      if (yych <= '\r')
-        goto yy2060;
-      if (yych != '#')
-        goto yy2053;
-    }
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2062;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2060;
-      goto yy2053;
-    } else {
-      if (yych <= '\r')
-        goto yy2060;
-      if (yych != '#')
-        goto yy2053;
-    }
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2062;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2060;
-      goto yy2053;
-    } else {
-      if (yych <= '\r')
-        goto yy2060;
-      if (yych != '#')
-        goto yy2053;
-    }
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2062;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2060;
-      goto yy2053;
-    } else {
-      if (yych <= '\r')
-        goto yy2060;
-      if (yych != '#')
-        goto yy2053;
-    }
-    ++p;
-    if (yybm[0 + (yych = *p)] & 128) {
-      goto yy2062;
-    }
-    if (yych == '\n')
-      goto yy2060;
-    if (yych == '\r')
-      goto yy2060;
-    goto yy2053;
-  }
-}
-
-// Match setext header line.  Return 1 for level-1 header,
-// 2 for level-2, 0 for no match.
-bufsize_t _scan_setext_header_line(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
-        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xC1) {
-      if (yych <= '-') {
-        if (yych == '\n')
-          goto yy2071;
-        if (yych <= ',')
-          goto yy2074;
-        goto yy2073;
-      } else {
-        if (yych == '=')
-          goto yy2072;
-        if (yych <= 0x7F)
-          goto yy2074;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy2075;
-        if (yych <= 0xE0)
-          goto yy2077;
-        if (yych <= 0xEC)
-          goto yy2078;
-        goto yy2082;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2078;
-          goto yy2079;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2080;
-          if (yych <= 0xF4)
-            goto yy2081;
-        }
-      }
-    }
-  yy2071 : { return 0; }
-  yy2072:
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 128) {
-      goto yy2093;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2091;
-      goto yy2071;
-    } else {
-      if (yych <= '\r')
-        goto yy2091;
-      if (yych == ' ')
-        goto yy2089;
-      goto yy2071;
-    }
-  yy2073:
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 32) {
-      goto yy2083;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2085;
-      goto yy2071;
-    } else {
-      if (yych <= '\r')
-        goto yy2085;
-      if (yych == '-')
-        goto yy2087;
-      goto yy2071;
-    }
-  yy2074:
-    yych = *++p;
-    goto yy2071;
-  yy2075:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2074;
-  yy2076:
-    p = marker;
-    goto yy2071;
-  yy2077:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2075;
-    goto yy2076;
-  yy2078:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2075;
-    goto yy2076;
-  yy2079:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2078;
-    goto yy2076;
-  yy2080:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2078;
-    goto yy2076;
-  yy2081:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0x8F)
-      goto yy2078;
-    goto yy2076;
-  yy2082:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0x9F)
-      goto yy2075;
-    goto yy2076;
-  yy2083:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2083;
-    }
-    if (yych == '\n')
-      goto yy2085;
-    if (yych != '\r')
-      goto yy2076;
-  yy2085:
-    ++p;
-    { return 2; }
-  yy2087:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2083;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2085;
-      goto yy2076;
-    } else {
-      if (yych <= '\r')
-        goto yy2085;
-      if (yych == '-')
-        goto yy2087;
-      goto yy2076;
-    }
-  yy2089:
-    ++p;
-    yych = *p;
-    if (yych <= '\f') {
-      if (yych != '\n')
-        goto yy2076;
-    } else {
-      if (yych <= '\r')
-        goto yy2091;
-      if (yych == ' ')
-        goto yy2089;
-      goto yy2076;
-    }
-  yy2091:
-    ++p;
-    { return 1; }
-  yy2093:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2093;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2091;
-      goto yy2076;
-    } else {
-      if (yych <= '\r')
-        goto yy2091;
-      if (yych == ' ')
-        goto yy2089;
-      goto yy2076;
-    }
-  }
-}
-
-// Scan a horizontal rule line: "...three or more hyphens, asterisks,
-// or underscores on a line by themselves. If you wish, you may use
-// spaces between the hyphens or asterisks."
-bufsize_t _scan_hrule(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 32, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,
-        0, 16, 0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 64, 0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
-        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0x7F) {
-      if (yych <= '*') {
-        if (yych == '\n')
-          goto yy2097;
-        if (yych <= ')')
-          goto yy2101;
-        goto yy2098;
-      } else {
-        if (yych <= '-') {
-          if (yych <= ',')
-            goto yy2101;
-          goto yy2100;
-        } else {
-          if (yych == '_')
-            goto yy2099;
-          goto yy2101;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF) {
-          if (yych >= 0xC2)
-            goto yy2102;
-        } else {
-          if (yych <= 0xE0)
-            goto yy2104;
-          if (yych <= 0xEC)
-            goto yy2105;
-          goto yy2109;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2105;
-          goto yy2106;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2107;
-          if (yych <= 0xF4)
-            goto yy2108;
-        }
-      }
-    }
-  yy2097 : { return 0; }
-  yy2098:
-    yych = *(marker = ++p);
-    if (yych == ' ')
-      goto yy2130;
-    if (yych == '*')
-      goto yy2132;
-    goto yy2097;
-  yy2099:
-    yych = *(marker = ++p);
-    if (yych == ' ')
-      goto yy2120;
-    if (yych == '_')
-      goto yy2122;
-    goto yy2097;
-  yy2100:
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 8) {
-      goto yy2110;
-    }
-    if (yych == '-')
-      goto yy2112;
-    goto yy2097;
-  yy2101:
-    yych = *++p;
-    goto yy2097;
-  yy2102:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2103;
-    if (yych <= 0xBF)
-      goto yy2101;
-  yy2103:
-    p = marker;
-    goto yy2097;
-  yy2104:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2103;
-    if (yych <= 0xBF)
-      goto yy2102;
-    goto yy2103;
-  yy2105:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2103;
-    if (yych <= 0xBF)
-      goto yy2102;
-    goto yy2103;
-  yy2106:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2103;
-    if (yych <= 0xBF)
-      goto yy2105;
-    goto yy2103;
-  yy2107:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2103;
-    if (yych <= 0xBF)
-      goto yy2105;
-    goto yy2103;
-  yy2108:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2103;
-    if (yych <= 0x8F)
-      goto yy2105;
-    goto yy2103;
-  yy2109:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2103;
-    if (yych <= 0x9F)
-      goto yy2102;
-    goto yy2103;
-  yy2110:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 8) {
-      goto yy2110;
-    }
-    if (yych != '-')
-      goto yy2103;
-  yy2112:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2112;
-    if (yych != '-')
-      goto yy2103;
-  yy2114:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy2114;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2103;
-      if (yych >= '\n')
-        goto yy2118;
-    } else {
-      if (yych == '\r')
-        goto yy2118;
-      goto yy2103;
-    }
-  yy2116:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2116;
-    }
-    if (yych <= 0x08)
-      goto yy2103;
-    if (yych <= '\n')
-      goto yy2118;
-    if (yych != '\r')
-      goto yy2103;
-  yy2118:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy2120:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2120;
-    if (yych != '_')
-      goto yy2103;
-  yy2122:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2122;
-    if (yych != '_')
-      goto yy2103;
-  yy2124:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2124;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2103;
-      if (yych >= '\n')
-        goto yy2128;
-    } else {
-      if (yych == '\r')
-        goto yy2128;
-      goto yy2103;
-    }
-  yy2126:
-    ++p;
-    yych = *p;
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2103;
-      if (yych <= '\t')
-        goto yy2126;
-      if (yych >= '\v')
-        goto yy2103;
-    } else {
-      if (yych <= '\r')
-        goto yy2128;
-      if (yych == ' ')
-        goto yy2126;
-      goto yy2103;
-    }
-  yy2128:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy2130:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2130;
-    if (yych != '*')
-      goto yy2103;
-  yy2132:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2132;
-    if (yych != '*')
-      goto yy2103;
-  yy2134:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2134;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2103;
-      if (yych >= '\n')
-        goto yy2138;
-    } else {
-      if (yych == '\r')
-        goto yy2138;
-      goto yy2103;
-    }
-  yy2136:
-    ++p;
-    yych = *p;
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2103;
-      if (yych <= '\t')
-        goto yy2136;
-      if (yych >= '\v')
-        goto yy2103;
-    } else {
-      if (yych <= '\r')
-        goto yy2138;
-      if (yych == ' ')
-        goto yy2136;
-      goto yy2103;
-    }
-  yy2138:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  }
-}
-
-// Scan an opening code fence.
-bufsize_t _scan_open_code_fence(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        0,   160, 160, 160, 160, 160, 160, 160, 160, 160, 0,   160, 160, 0,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 96,  160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
-        144, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
-        0,   0,   0,   0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xC1) {
-      if (yych <= '`') {
-        if (yych == '\n')
-          goto yy2142;
-        if (yych <= '_')
-          goto yy2145;
-        goto yy2143;
-      } else {
-        if (yych == '~')
-          goto yy2144;
-        if (yych <= 0x7F)
-          goto yy2145;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy2146;
-        if (yych <= 0xE0)
-          goto yy2148;
-        if (yych <= 0xEC)
-          goto yy2149;
-        goto yy2153;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2149;
-          goto yy2150;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2151;
-          if (yych <= 0xF4)
-            goto yy2152;
-        }
-      }
-    }
-  yy2142 : { return 0; }
-  yy2143:
-    yych = *(marker = ++p);
-    if (yych == '`')
-      goto yy2168;
-    goto yy2142;
-  yy2144:
-    yych = *(marker = ++p);
-    if (yych == '~')
-      goto yy2154;
-    goto yy2142;
-  yy2145:
-    yych = *++p;
-    goto yy2142;
-  yy2146:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2145;
-  yy2147:
-    p = marker;
-    goto yy2142;
-  yy2148:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2146;
-    goto yy2147;
-  yy2149:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2146;
-    goto yy2147;
-  yy2150:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2149;
-    goto yy2147;
-  yy2151:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2149;
-    goto yy2147;
-  yy2152:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0x8F)
-      goto yy2149;
-    goto yy2147;
-  yy2153:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0x9F)
-      goto yy2146;
-    goto yy2147;
-  yy2154:
-    yych = *++p;
-    if (yybm[0 + yych] & 16) {
-      goto yy2155;
-    }
-    goto yy2147;
-  yy2155:
-    marker = p + 1;
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2157;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '~') {
-        if (yych <= 0x00)
-          goto yy2147;
-        if (yych <= '\r')
-          goto yy2166;
-        goto yy2155;
-      } else {
-        if (yych <= 0xC1)
-          goto yy2147;
-        if (yych <= 0xDF)
-          goto yy2159;
-        goto yy2160;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2165;
-        goto yy2161;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2162;
-        if (yych <= 0xF3)
-          goto yy2163;
-        if (yych <= 0xF4)
-          goto yy2164;
-        goto yy2147;
-      }
-    }
-  yy2157:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2157;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy2147;
-        if (yych <= '\r')
-          goto yy2166;
-        goto yy2147;
-      } else {
-        if (yych <= 0xDF)
-          goto yy2159;
-        if (yych <= 0xE0)
-          goto yy2160;
-        goto yy2161;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy2165;
-        if (yych <= 0xEF)
-          goto yy2161;
-        goto yy2162;
-      } else {
-        if (yych <= 0xF3)
-          goto yy2163;
-        if (yych <= 0xF4)
-          goto yy2164;
-        goto yy2147;
-      }
-    }
-  yy2159:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2157;
-    goto yy2147;
-  yy2160:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2159;
-    goto yy2147;
-  yy2161:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2159;
-    goto yy2147;
-  yy2162:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2161;
-    goto yy2147;
-  yy2163:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2161;
-    goto yy2147;
-  yy2164:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0x8F)
-      goto yy2161;
-    goto yy2147;
-  yy2165:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0x9F)
-      goto yy2159;
-    goto yy2147;
-  yy2166:
-    ++p;
-    p = marker;
-    { return (bufsize_t)(p - start); }
-  yy2168:
-    yych = *++p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2169;
-    }
-    goto yy2147;
-  yy2169:
-    marker = p + 1;
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2171;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '`') {
-        if (yych <= 0x00)
-          goto yy2147;
-        if (yych <= '\r')
-          goto yy2180;
-        goto yy2169;
-      } else {
-        if (yych <= 0xC1)
-          goto yy2147;
-        if (yych <= 0xDF)
-          goto yy2173;
-        goto yy2174;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2179;
-        goto yy2175;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2176;
-        if (yych <= 0xF3)
-          goto yy2177;
-        if (yych <= 0xF4)
-          goto yy2178;
-        goto yy2147;
-      }
-    }
-  yy2171:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2171;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy2147;
-        if (yych <= '\r')
-          goto yy2180;
-        goto yy2147;
-      } else {
-        if (yych <= 0xDF)
-          goto yy2173;
-        if (yych <= 0xE0)
-          goto yy2174;
-        goto yy2175;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy2179;
-        if (yych <= 0xEF)
-          goto yy2175;
-        goto yy2176;
-      } else {
-        if (yych <= 0xF3)
-          goto yy2177;
-        if (yych <= 0xF4)
-          goto yy2178;
-        goto yy2147;
-      }
-    }
-  yy2173:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2171;
-    goto yy2147;
-  yy2174:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2173;
-    goto yy2147;
-  yy2175:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2173;
-    goto yy2147;
-  yy2176:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2175;
-    goto yy2147;
-  yy2177:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0xBF)
-      goto yy2175;
-    goto yy2147;
-  yy2178:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0x8F)
-      goto yy2175;
-    goto yy2147;
-  yy2179:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2147;
-    if (yych <= 0x9F)
-      goto yy2173;
-    goto yy2147;
-  yy2180:
-    ++p;
-    p = marker;
-    { return (bufsize_t)(p - start); }
-  }
-}
-
-// Scan a closing code fence with length at least len.
-bufsize_t _scan_close_code_fence(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    static const unsigned char yybm[] = {
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   64, 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  64, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 128, 0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
-        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0,
-    };
-    yych = *(marker = p);
-    if (yych <= 0xC1) {
-      if (yych <= '`') {
-        if (yych == '\n')
-          goto yy2184;
-        if (yych <= '_')
-          goto yy2187;
-        goto yy2185;
-      } else {
-        if (yych == '~')
-          goto yy2186;
-        if (yych <= 0x7F)
-          goto yy2187;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy2188;
-        if (yych <= 0xE0)
-          goto yy2190;
-        if (yych <= 0xEC)
-          goto yy2191;
-        goto yy2195;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2191;
-          goto yy2192;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2193;
-          if (yych <= 0xF4)
-            goto yy2194;
-        }
-      }
-    }
-  yy2184 : { return 0; }
-  yy2185:
-    yych = *(marker = ++p);
-    if (yych == '`')
-      goto yy2203;
-    goto yy2184;
-  yy2186:
-    yych = *(marker = ++p);
-    if (yych == '~')
-      goto yy2196;
-    goto yy2184;
-  yy2187:
-    yych = *++p;
-    goto yy2184;
-  yy2188:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2189;
-    if (yych <= 0xBF)
-      goto yy2187;
-  yy2189:
-    p = marker;
-    goto yy2184;
-  yy2190:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2189;
-    if (yych <= 0xBF)
-      goto yy2188;
-    goto yy2189;
-  yy2191:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2189;
-    if (yych <= 0xBF)
-      goto yy2188;
-    goto yy2189;
-  yy2192:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2189;
-    if (yych <= 0xBF)
-      goto yy2191;
-    goto yy2189;
-  yy2193:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2189;
-    if (yych <= 0xBF)
-      goto yy2191;
-    goto yy2189;
-  yy2194:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2189;
-    if (yych <= 0x8F)
-      goto yy2191;
-    goto yy2189;
-  yy2195:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2189;
-    if (yych <= 0x9F)
-      goto yy2188;
-    goto yy2189;
-  yy2196:
-    yych = *++p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2197;
-    }
-    goto yy2189;
-  yy2197:
-    marker = p + 1;
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2199;
-    }
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2189;
-      if (yych <= '\n')
-        goto yy2201;
-      goto yy2189;
-    } else {
-      if (yych <= '\r')
-        goto yy2201;
-      if (yych == '~')
-        goto yy2197;
-      goto yy2189;
-    }
-  yy2199:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2199;
-    }
-    if (yych <= 0x08)
-      goto yy2189;
-    if (yych <= '\n')
-      goto yy2201;
-    if (yych != '\r')
-      goto yy2189;
-  yy2201:
-    ++p;
-    p = marker;
-    { return (bufsize_t)(p - start); }
-  yy2203:
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2204;
-    }
-    goto yy2189;
-  yy2204:
-    marker = p + 1;
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2204;
-    }
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2189;
-      if (yych <= '\t')
-        goto yy2206;
-      if (yych <= '\n')
-        goto yy2208;
-      goto yy2189;
-    } else {
-      if (yych <= '\r')
-        goto yy2208;
-      if (yych != ' ')
-        goto yy2189;
-    }
-  yy2206:
-    ++p;
-    yych = *p;
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2189;
-      if (yych <= '\t')
-        goto yy2206;
-      if (yych >= '\v')
-        goto yy2189;
-    } else {
-      if (yych <= '\r')
-        goto yy2208;
-      if (yych == ' ')
-        goto yy2206;
-      goto yy2189;
-    }
-  yy2208:
-    ++p;
-    p = marker;
-    { return (bufsize_t)(p - start); }
-  }
-}
-
-// Scans an entity.
-// Returns number of chars matched.
-bufsize_t _scan_entity(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    yych = *(marker = p);
-    if (yych <= 0xDF) {
-      if (yych <= '%') {
-        if (yych != '\n')
-          goto yy2214;
-      } else {
-        if (yych <= '&')
-          goto yy2213;
-        if (yych <= 0x7F)
-          goto yy2214;
-        if (yych >= 0xC2)
-          goto yy2215;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy2217;
-        if (yych == 0xED)
-          goto yy2222;
-        goto yy2218;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2219;
-        if (yych <= 0xF3)
-          goto yy2220;
-        if (yych <= 0xF4)
-          goto yy2221;
-      }
-    }
-  yy2212 : { return 0; }
-  yy2213:
-    yych = *(marker = ++p);
-    if (yych <= '@') {
-      if (yych == '#')
-        goto yy2223;
-      goto yy2212;
-    } else {
-      if (yych <= 'Z')
-        goto yy2224;
-      if (yych <= '`')
-        goto yy2212;
-      if (yych <= 'z')
-        goto yy2224;
-      goto yy2212;
-    }
-  yy2214:
-    yych = *++p;
-    goto yy2212;
-  yy2215:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2216;
-    if (yych <= 0xBF)
-      goto yy2214;
-  yy2216:
-    p = marker;
-    goto yy2212;
-  yy2217:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2216;
-    if (yych <= 0xBF)
-      goto yy2215;
-    goto yy2216;
-  yy2218:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2216;
-    if (yych <= 0xBF)
-      goto yy2215;
-    goto yy2216;
-  yy2219:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2216;
-    if (yych <= 0xBF)
-      goto yy2218;
-    goto yy2216;
-  yy2220:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2216;
-    if (yych <= 0xBF)
-      goto yy2218;
-    goto yy2216;
-  yy2221:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2216;
-    if (yych <= 0x8F)
-      goto yy2218;
-    goto yy2216;
-  yy2222:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2216;
-    if (yych <= 0x9F)
-      goto yy2215;
-    goto yy2216;
-  yy2223:
-    yych = *++p;
-    if (yych <= 'W') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2259;
-      goto yy2216;
-    } else {
-      if (yych <= 'X')
-        goto yy2258;
-      if (yych == 'x')
-        goto yy2258;
-      goto yy2216;
-    }
-  yy2224:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych >= ':')
-        goto yy2216;
-    } else {
-      if (yych <= 'Z')
-        goto yy2225;
-      if (yych <= '`')
-        goto yy2216;
-      if (yych >= '{')
-        goto yy2216;
-    }
-  yy2225:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2228;
-      if (yych <= ':')
-        goto yy2216;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-        goto yy2228;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych <= 'z')
-          goto yy2228;
-        goto yy2216;
-      }
-    }
-  yy2226:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy2228:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2229;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2229:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2230;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2230:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2231;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2231:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2232;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2232:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2233;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2233:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2234;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2234:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2235;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2235:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2236;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2236:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2237;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2237:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2238;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2238:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2239;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2239:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2240;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2240:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2241;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2241:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2242;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2242:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2243;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2243:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2244;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2244:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2245;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2245:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2246;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2246:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2247;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2247:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2248;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2248:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2249;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2249:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2250;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2250:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2251;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2251:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2252;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2252:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2253;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2253:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2254;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2254:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2255;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2255:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2256;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2256:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2257;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= '{')
-          goto yy2216;
-      }
-    }
-  yy2257:
-    yych = *++p;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2258:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2266;
-      goto yy2216;
-    } else {
-      if (yych <= 'F')
-        goto yy2266;
-      if (yych <= '`')
-        goto yy2216;
-      if (yych <= 'f')
-        goto yy2266;
-      goto yy2216;
-    }
-  yy2259:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2216;
-    if (yych <= '9')
-      goto yy2260;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2260:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2216;
-    if (yych <= '9')
-      goto yy2261;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2261:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2216;
-    if (yych <= '9')
-      goto yy2262;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2262:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2216;
-    if (yych <= '9')
-      goto yy2263;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2263:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2216;
-    if (yych <= '9')
-      goto yy2264;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2264:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2216;
-    if (yych <= '9')
-      goto yy2265;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2265:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2216;
-    if (yych <= '9')
-      goto yy2257;
-    if (yych == ';')
-      goto yy2226;
-    goto yy2216;
-  yy2266:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2267;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= 'g')
-          goto yy2216;
-      }
-    }
-  yy2267:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2268;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= 'g')
-          goto yy2216;
-      }
-    }
-  yy2268:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2269;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= 'g')
-          goto yy2216;
-      }
-    }
-  yy2269:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2270;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= 'g')
-          goto yy2216;
-      }
-    }
-  yy2270:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2271;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= 'g')
-          goto yy2216;
-      }
-    }
-  yy2271:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2272;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2216;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych >= 'g')
-          goto yy2216;
-      }
-    }
-  yy2272:
-    ++p;
-    if ((yych = *p) <= ';') {
-      if (yych <= '/')
-        goto yy2216;
-      if (yych <= '9')
-        goto yy2257;
-      if (yych <= ':')
-        goto yy2216;
-      goto yy2226;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2216;
-        goto yy2257;
-      } else {
-        if (yych <= '`')
-          goto yy2216;
-        if (yych <= 'f')
-          goto yy2257;
-        goto yy2216;
-      }
-    }
-  }
-}
-
-// Returns positive value if a URL begins in a way that is potentially
-// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.
-bufsize_t _scan_dangerous_url(const unsigned char *p) {
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-  {
-    unsigned char yych;
-    unsigned int yyaccept = 0;
-    yych = *(marker = p);
-    if (yych <= 'f') {
-      if (yych <= 'I') {
-        if (yych <= 'C') {
-          if (yych != '\n')
-            goto yy2280;
-        } else {
-          if (yych <= 'D')
-            goto yy2276;
-          if (yych == 'F')
-            goto yy2279;
-          goto yy2280;
-        }
-      } else {
-        if (yych <= 'V') {
-          if (yych <= 'J')
-            goto yy2277;
-          if (yych <= 'U')
-            goto yy2280;
-          goto yy2278;
-        } else {
-          if (yych == 'd')
-            goto yy2276;
-          if (yych <= 'e')
-            goto yy2280;
-          goto yy2279;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= 'u') {
-          if (yych == 'j')
-            goto yy2277;
-          goto yy2280;
-        } else {
-          if (yych <= 'v')
-            goto yy2278;
-          if (yych <= 0x7F)
-            goto yy2280;
-          if (yych >= 0xC2)
-            goto yy2281;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy2283;
-          if (yych == 0xED)
-            goto yy2288;
-          goto yy2284;
-        } else {
-          if (yych <= 0xF0)
-            goto yy2285;
-          if (yych <= 0xF3)
-            goto yy2286;
-          if (yych <= 0xF4)
-            goto yy2287;
-        }
-      }
-    }
-  yy2275 : { return 0; }
-  yy2276:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych == 'A')
-      goto yy2310;
-    if (yych == 'a')
-      goto yy2310;
-    goto yy2275;
-  yy2277:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych == 'A')
-      goto yy2301;
-    if (yych == 'a')
-      goto yy2301;
-    goto yy2275;
-  yy2278:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych == 'B')
-      goto yy2294;
-    if (yych == 'b')
-      goto yy2294;
-    goto yy2275;
-  yy2279:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych == 'I')
-      goto yy2289;
-    if (yych == 'i')
-      goto yy2289;
-    goto yy2275;
-  yy2280:
-    yych = *++p;
-    goto yy2275;
-  yy2281:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2282;
-    if (yych <= 0xBF)
-      goto yy2280;
-  yy2282:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy2275;
-    } else {
-      goto yy2293;
-    }
-  yy2283:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2282;
-    if (yych <= 0xBF)
-      goto yy2281;
-    goto yy2282;
-  yy2284:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2282;
-    if (yych <= 0xBF)
-      goto yy2281;
-    goto yy2282;
-  yy2285:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2282;
-    if (yych <= 0xBF)
-      goto yy2284;
-    goto yy2282;
-  yy2286:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2282;
-    if (yych <= 0xBF)
-      goto yy2284;
-    goto yy2282;
-  yy2287:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2282;
-    if (yych <= 0x8F)
-      goto yy2284;
-    goto yy2282;
-  yy2288:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2282;
-    if (yych <= 0x9F)
-      goto yy2281;
-    goto yy2282;
-  yy2289:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy2290;
-    if (yych != 'l')
-      goto yy2282;
-  yy2290:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy2291;
-    if (yych != 'e')
-      goto yy2282;
-  yy2291:
-    yych = *++p;
-    if (yych != ':')
-      goto yy2282;
-  yy2292:
-    ++p;
-  yy2293 : { return (bufsize_t)(p - start); }
-  yy2294:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy2295;
-    if (yych != 's')
-      goto yy2282;
-  yy2295:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy2296;
-    if (yych != 'c')
-      goto yy2282;
-  yy2296:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy2297;
-    if (yych != 'r')
-      goto yy2282;
-  yy2297:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy2298;
-    if (yych != 'i')
-      goto yy2282;
-  yy2298:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy2299;
-    if (yych != 'p')
-      goto yy2282;
-  yy2299:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy2300;
-    if (yych != 't')
-      goto yy2282;
-  yy2300:
-    yych = *++p;
-    if (yych == ':')
-      goto yy2292;
-    goto yy2282;
-  yy2301:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy2302;
-    if (yych != 'v')
-      goto yy2282;
-  yy2302:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy2303;
-    if (yych != 'a')
-      goto yy2282;
-  yy2303:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy2304;
-    if (yych != 's')
-      goto yy2282;
-  yy2304:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy2305;
-    if (yych != 'c')
-      goto yy2282;
-  yy2305:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy2306;
-    if (yych != 'r')
-      goto yy2282;
-  yy2306:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy2307;
-    if (yych != 'i')
-      goto yy2282;
-  yy2307:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy2308;
-    if (yych != 'p')
-      goto yy2282;
-  yy2308:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy2309;
-    if (yych != 't')
-      goto yy2282;
-  yy2309:
-    yych = *++p;
-    if (yych == ':')
-      goto yy2292;
-    goto yy2282;
-  yy2310:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy2311;
-    if (yych != 't')
-      goto yy2282;
-  yy2311:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy2312;
-    if (yych != 'a')
-      goto yy2282;
-  yy2312:
-    yych = *++p;
-    if (yych != ':')
-      goto yy2282;
-    yyaccept = 1;
-    yych = *(marker = ++p);
-    if (yych == 'I')
-      goto yy2314;
-    if (yych != 'i')
-      goto yy2293;
-  yy2314:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy2315;
-    if (yych != 'm')
-      goto yy2282;
-  yy2315:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy2316;
-    if (yych != 'a')
-      goto yy2282;
-  yy2316:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy2317;
-    if (yych != 'g')
-      goto yy2282;
-  yy2317:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy2318;
-    if (yych != 'e')
-      goto yy2282;
-  yy2318:
-    yych = *++p;
-    if (yych != '/')
-      goto yy2282;
-    yych = *++p;
-    if (yych <= 'W') {
-      if (yych <= 'J') {
-        if (yych == 'G')
-          goto yy2321;
-        if (yych <= 'I')
-          goto yy2282;
-        goto yy2322;
-      } else {
-        if (yych == 'P')
-          goto yy2320;
-        if (yych <= 'V')
-          goto yy2282;
-        goto yy2323;
-      }
-    } else {
-      if (yych <= 'j') {
-        if (yych == 'g')
-          goto yy2321;
-        if (yych <= 'i')
-          goto yy2282;
-        goto yy2322;
-      } else {
-        if (yych <= 'p') {
-          if (yych <= 'o')
-            goto yy2282;
-        } else {
-          if (yych == 'w')
-            goto yy2323;
-          goto yy2282;
-        }
-      }
-    }
-  yy2320:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy2331;
-    if (yych == 'n')
-      goto yy2331;
-    goto yy2282;
-  yy2321:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy2330;
-    if (yych == 'i')
-      goto yy2330;
-    goto yy2282;
-  yy2322:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy2328;
-    if (yych == 'p')
-      goto yy2328;
-    goto yy2282;
-  yy2323:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy2324;
-    if (yych != 'e')
-      goto yy2282;
-  yy2324:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy2325;
-    if (yych != 'b')
-      goto yy2282;
-  yy2325:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy2326;
-    if (yych != 'p')
-      goto yy2282;
-  yy2326:
-    ++p;
-    { return 0; }
-  yy2328:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy2329;
-    if (yych != 'e')
-      goto yy2282;
-  yy2329:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy2326;
-    if (yych == 'g')
-      goto yy2326;
-    goto yy2282;
-  yy2330:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy2326;
-    if (yych == 'f')
-      goto yy2326;
-    goto yy2282;
-  yy2331:
-    ++p;
-    if ((yych = *p) == 'G')
-      goto yy2326;
-    if (yych == 'g')
-      goto yy2326;
-    goto yy2282;
+/* Generated by re2c 0.15.3 */
+#include <stdlib.h>
+#include "chunk.h"
+#include "scanners.h"
+
+bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,
+                   bufsize_t offset) {
+  bufsize_t res;
+  unsigned char *ptr = (unsigned char *)c->data;
+
+  if (ptr == NULL || offset > c->len) {
+    return 0;
+  } else {
+    unsigned char lim = ptr[c->len];
+
+    ptr[c->len] = '\0';
+    res = scanner(ptr + offset);
+    ptr[c->len] = lim;
+  }
+
+  return res;
+}
+
+// Try to match a scheme including colon.
+bufsize_t _scan_scheme(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    yych = *(marker = p);
+    if (yych <= 'c') {
+      if (yych <= 'M') {
+        if (yych <= 'E') {
+          if (yych <= 'A') {
+            if (yych == '\n')
+              goto yy2;
+            if (yych <= '@')
+              goto yy29;
+            goto yy6;
+          } else {
+            if (yych <= 'B')
+              goto yy24;
+            if (yych <= 'C')
+              goto yy3;
+            if (yych <= 'D')
+              goto yy4;
+            goto yy25;
+          }
+        } else {
+          if (yych <= 'I') {
+            if (yych <= 'F')
+              goto yy7;
+            if (yych <= 'G')
+              goto yy8;
+            if (yych <= 'H')
+              goto yy9;
+            goto yy10;
+          } else {
+            if (yych <= 'J')
+              goto yy5;
+            if (yych <= 'K')
+              goto yy26;
+            if (yych <= 'L')
+              goto yy11;
+            goto yy12;
+          }
+        }
+      } else {
+        if (yych <= 'U') {
+          if (yych <= 'Q') {
+            if (yych <= 'N')
+              goto yy13;
+            if (yych <= 'O')
+              goto yy14;
+            if (yych <= 'P')
+              goto yy15;
+            goto yy27;
+          } else {
+            if (yych <= 'R')
+              goto yy16;
+            if (yych <= 'S')
+              goto yy17;
+            if (yych <= 'T')
+              goto yy18;
+            goto yy19;
+          }
+        } else {
+          if (yych <= 'Y') {
+            if (yych <= 'V')
+              goto yy20;
+            if (yych <= 'W')
+              goto yy21;
+            if (yych <= 'X')
+              goto yy22;
+            goto yy28;
+          } else {
+            if (yych <= '`') {
+              if (yych <= 'Z')
+                goto yy23;
+              goto yy29;
+            } else {
+              if (yych <= 'a')
+                goto yy6;
+              if (yych <= 'b')
+                goto yy24;
+              goto yy3;
+            }
+          }
+        }
+      }
+    } else {
+      if (yych <= 't') {
+        if (yych <= 'k') {
+          if (yych <= 'g') {
+            if (yych <= 'd')
+              goto yy4;
+            if (yych <= 'e')
+              goto yy25;
+            if (yych <= 'f')
+              goto yy7;
+            goto yy8;
+          } else {
+            if (yych <= 'h')
+              goto yy9;
+            if (yych <= 'i')
+              goto yy10;
+            if (yych <= 'j')
+              goto yy5;
+            goto yy26;
+          }
+        } else {
+          if (yych <= 'o') {
+            if (yych <= 'l')
+              goto yy11;
+            if (yych <= 'm')
+              goto yy12;
+            if (yych <= 'n')
+              goto yy13;
+            goto yy14;
+          } else {
+            if (yych <= 'q') {
+              if (yych <= 'p')
+                goto yy15;
+              goto yy27;
+            } else {
+              if (yych <= 'r')
+                goto yy16;
+              if (yych <= 's')
+                goto yy17;
+              goto yy18;
+            }
+          }
+        }
+      } else {
+        if (yych <= 0xC1) {
+          if (yych <= 'x') {
+            if (yych <= 'u')
+              goto yy19;
+            if (yych <= 'v')
+              goto yy20;
+            if (yych <= 'w')
+              goto yy21;
+            goto yy22;
+          } else {
+            if (yych <= 'y')
+              goto yy28;
+            if (yych <= 'z')
+              goto yy23;
+            if (yych <= 0x7F)
+              goto yy29;
+          }
+        } else {
+          if (yych <= 0xED) {
+            if (yych <= 0xDF)
+              goto yy30;
+            if (yych <= 0xE0)
+              goto yy32;
+            if (yych <= 0xEC)
+              goto yy33;
+            goto yy37;
+          } else {
+            if (yych <= 0xF0) {
+              if (yych <= 0xEF)
+                goto yy33;
+              goto yy34;
+            } else {
+              if (yych <= 0xF3)
+                goto yy35;
+              if (yych <= 0xF4)
+                goto yy36;
+            }
+          }
+        }
+      }
+    }
+  yy2 : { return 0; }
+  yy3:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy447;
+    case 'H':
+    case 'h':
+      goto yy446;
+    case 'I':
+    case 'i':
+      goto yy449;
+    case 'O':
+    case 'o':
+      goto yy445;
+    case 'R':
+    case 'r':
+      goto yy448;
+    case 'V':
+    case 'v':
+      goto yy444;
+    default:
+      goto yy2;
+    }
+  yy4:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy420;
+    case 'I':
+    case 'i':
+      goto yy419;
+    case 'L':
+    case 'l':
+      goto yy417;
+    case 'N':
+    case 'n':
+      goto yy418;
+    case 'O':
+    case 'o':
+      goto yy421;
+    case 'T':
+    case 't':
+      goto yy416;
+    case 'V':
+    case 'v':
+      goto yy415;
+    default:
+      goto yy2;
+    }
+  yy5:
+    yych = *(marker = ++p);
+    if (yych <= 'M') {
+      if (yych == 'A')
+        goto yy407;
+      if (yych <= 'L')
+        goto yy2;
+      goto yy406;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy2;
+        goto yy407;
+      } else {
+        if (yych == 'm')
+          goto yy406;
+        goto yy2;
+      }
+    }
+  yy6:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy388;
+    case 'B':
+    case 'b':
+      goto yy387;
+    case 'C':
+    case 'c':
+      goto yy386;
+    case 'D':
+    case 'd':
+      goto yy385;
+    case 'F':
+    case 'f':
+      goto yy384;
+    case 'I':
+    case 'i':
+      goto yy383;
+    case 'P':
+    case 'p':
+      goto yy382;
+    case 'T':
+    case 't':
+      goto yy381;
+    case 'W':
+    case 'w':
+      goto yy41;
+    default:
+      goto yy2;
+    }
+  yy7:
+    yych = *(marker = ++p);
+    if (yych <= 'T') {
+      if (yych <= 'E') {
+        if (yych == 'A')
+          goto yy368;
+        if (yych <= 'D')
+          goto yy2;
+        goto yy367;
+      } else {
+        if (yych == 'I')
+          goto yy366;
+        if (yych <= 'S')
+          goto yy2;
+        goto yy369;
+      }
+    } else {
+      if (yych <= 'e') {
+        if (yych == 'a')
+          goto yy368;
+        if (yych <= 'd')
+          goto yy2;
+        goto yy367;
+      } else {
+        if (yych <= 'i') {
+          if (yych <= 'h')
+            goto yy2;
+          goto yy366;
+        } else {
+          if (yych == 't')
+            goto yy369;
+          goto yy2;
+        }
+      }
+    }
+  yy8:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'E':
+    case 'e':
+      goto yy351;
+    case 'G':
+    case 'g':
+      goto yy41;
+    case 'I':
+    case 'i':
+      goto yy349;
+    case 'O':
+    case 'o':
+      goto yy350;
+    case 'T':
+    case 't':
+      goto yy348;
+    default:
+      goto yy2;
+    }
+  yy9:
+    yych = *(marker = ++p);
+    if (yych <= 'S') {
+      if (yych <= '3') {
+        if (yych <= '2')
+          goto yy2;
+        goto yy344;
+      } else {
+        if (yych == 'C')
+          goto yy342;
+        goto yy2;
+      }
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'T')
+          goto yy343;
+        if (yych <= 'b')
+          goto yy2;
+        goto yy342;
+      } else {
+        if (yych == 't')
+          goto yy343;
+        goto yy2;
+      }
+    }
+  yy10:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy324;
+    case 'C':
+    case 'c':
+      goto yy321;
+    case 'M':
+    case 'm':
+      goto yy323;
+    case 'N':
+    case 'n':
+      goto yy322;
+    case 'P':
+    case 'p':
+      goto yy320;
+    case 'R':
+    case 'r':
+      goto yy319;
+    case 'T':
+    case 't':
+      goto yy318;
+    default:
+      goto yy2;
+    }
+  yy11:
+    yych = *(marker = ++p);
+    if (yych <= 'D') {
+      if (yych == 'A')
+        goto yy312;
+      if (yych <= 'C')
+        goto yy2;
+      goto yy311;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy2;
+        goto yy312;
+      } else {
+        if (yych == 'd')
+          goto yy311;
+        goto yy2;
+      }
+    }
+  yy12:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy278;
+    case 'E':
+    case 'e':
+      goto yy277;
+    case 'I':
+    case 'i':
+      goto yy280;
+    case 'M':
+    case 'm':
+      goto yy276;
+    case 'S':
+    case 's':
+      goto yy275;
+    case 'T':
+    case 't':
+      goto yy279;
+    case 'U':
+    case 'u':
+      goto yy274;
+    case 'V':
+    case 'v':
+      goto yy273;
+    default:
+      goto yy2;
+    }
+  yy13:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'E':
+    case 'e':
+      goto yy268;
+    case 'F':
+    case 'f':
+      goto yy267;
+    case 'I':
+    case 'i':
+      goto yy266;
+    case 'N':
+    case 'n':
+      goto yy265;
+    case 'O':
+    case 'o':
+      goto yy264;
+    default:
+      goto yy2;
+    }
+  yy14:
+    yych = *(marker = ++p);
+    if (yych <= 'P') {
+      if (yych == 'I')
+        goto yy250;
+      if (yych <= 'O')
+        goto yy2;
+      goto yy251;
+    } else {
+      if (yych <= 'i') {
+        if (yych <= 'h')
+          goto yy2;
+        goto yy250;
+      } else {
+        if (yych == 'p')
+          goto yy251;
+        goto yy2;
+      }
+    }
+  yy15:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy232;
+    case 'L':
+    case 'l':
+      goto yy231;
+    case 'O':
+    case 'o':
+      goto yy233;
+    case 'R':
+    case 'r':
+      goto yy230;
+    case 'S':
+    case 's':
+      goto yy229;
+    default:
+      goto yy2;
+    }
+  yy16:
+    yych = *(marker = ++p);
+    if (yych <= 'T') {
+      if (yych <= 'L') {
+        if (yych == 'E')
+          goto yy219;
+        goto yy2;
+      } else {
+        if (yych <= 'M')
+          goto yy218;
+        if (yych <= 'R')
+          goto yy2;
+        if (yych <= 'S')
+          goto yy217;
+        goto yy216;
+      }
+    } else {
+      if (yych <= 'm') {
+        if (yych == 'e')
+          goto yy219;
+        if (yych <= 'l')
+          goto yy2;
+        goto yy218;
+      } else {
+        if (yych <= 'r')
+          goto yy2;
+        if (yych <= 's')
+          goto yy217;
+        if (yych <= 't')
+          goto yy216;
+        goto yy2;
+      }
+    }
+  yy17:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'E':
+    case 'e':
+      goto yy172;
+    case 'F':
+    case 'f':
+      goto yy171;
+    case 'G':
+    case 'g':
+      goto yy170;
+    case 'H':
+    case 'h':
+      goto yy175;
+    case 'I':
+    case 'i':
+      goto yy174;
+    case 'K':
+    case 'k':
+      goto yy169;
+    case 'M':
+    case 'm':
+      goto yy168;
+    case 'N':
+    case 'n':
+      goto yy173;
+    case 'O':
+    case 'o':
+      goto yy167;
+    case 'P':
+    case 'p':
+      goto yy166;
+    case 'S':
+    case 's':
+      goto yy165;
+    case 'T':
+    case 't':
+      goto yy164;
+    case 'V':
+    case 'v':
+      goto yy163;
+    default:
+      goto yy2;
+    }
+  yy18:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy139;
+    case 'E':
+    case 'e':
+      goto yy135;
+    case 'F':
+    case 'f':
+      goto yy138;
+    case 'H':
+    case 'h':
+      goto yy134;
+    case 'I':
+    case 'i':
+      goto yy136;
+    case 'N':
+    case 'n':
+      goto yy137;
+    case 'V':
+    case 'v':
+      goto yy41;
+    default:
+      goto yy2;
+    }
+  yy19:
+    yych = *(marker = ++p);
+    if (yych <= 'T') {
+      if (yych <= 'N') {
+        if (yych == 'D')
+          goto yy126;
+        if (yych <= 'M')
+          goto yy2;
+        goto yy125;
+      } else {
+        if (yych == 'R')
+          goto yy127;
+        if (yych <= 'S')
+          goto yy2;
+        goto yy124;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych == 'd')
+          goto yy126;
+        if (yych <= 'm')
+          goto yy2;
+        goto yy125;
+      } else {
+        if (yych <= 'r') {
+          if (yych <= 'q')
+            goto yy2;
+          goto yy127;
+        } else {
+          if (yych == 't')
+            goto yy124;
+          goto yy2;
+        }
+      }
+    }
+  yy20:
+    yych = *(marker = ++p);
+    if (yych <= 'I') {
+      if (yych == 'E')
+        goto yy108;
+      if (yych <= 'H')
+        goto yy2;
+      goto yy107;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy2;
+        goto yy108;
+      } else {
+        if (yych == 'i')
+          goto yy107;
+        goto yy2;
+      }
+    }
+  yy21:
+    yych = *(marker = ++p);
+    if (yych <= 'Y') {
+      if (yych <= 'R') {
+        if (yych == 'E')
+          goto yy97;
+        goto yy2;
+      } else {
+        if (yych <= 'S')
+          goto yy98;
+        if (yych <= 'T')
+          goto yy96;
+        if (yych <= 'X')
+          goto yy2;
+        goto yy95;
+      }
+    } else {
+      if (yych <= 's') {
+        if (yych == 'e')
+          goto yy97;
+        if (yych <= 'r')
+          goto yy2;
+        goto yy98;
+      } else {
+        if (yych <= 't')
+          goto yy96;
+        if (yych == 'y')
+          goto yy95;
+        goto yy2;
+      }
+    }
+  yy22:
+    yych = *(marker = ++p);
+    if (yych <= 'R') {
+      if (yych <= 'F') {
+        if (yych == 'C')
+          goto yy74;
+        if (yych <= 'E')
+          goto yy2;
+        goto yy72;
+      } else {
+        if (yych == 'M')
+          goto yy73;
+        if (yych <= 'Q')
+          goto yy2;
+        goto yy71;
+      }
+    } else {
+      if (yych <= 'f') {
+        if (yych == 'c')
+          goto yy74;
+        if (yych <= 'e')
+          goto yy2;
+        goto yy72;
+      } else {
+        if (yych <= 'm') {
+          if (yych <= 'l')
+            goto yy2;
+          goto yy73;
+        } else {
+          if (yych == 'r')
+            goto yy71;
+          goto yy2;
+        }
+      }
+    }
+  yy23:
+    yych = *(marker = ++p);
+    if (yych == '3')
+      goto yy66;
+    goto yy2;
+  yy24:
+    yych = *(marker = ++p);
+    if (yych <= 'O') {
+      if (yych <= 'H') {
+        if (yych == 'E')
+          goto yy56;
+        goto yy2;
+      } else {
+        if (yych <= 'I')
+          goto yy55;
+        if (yych <= 'N')
+          goto yy2;
+        goto yy54;
+      }
+    } else {
+      if (yych <= 'h') {
+        if (yych == 'e')
+          goto yy56;
+        goto yy2;
+      } else {
+        if (yych <= 'i')
+          goto yy55;
+        if (yych == 'o')
+          goto yy54;
+        goto yy2;
+      }
+    }
+  yy25:
+    yych = *(marker = ++p);
+    if (yych == 'D')
+      goto yy52;
+    if (yych == 'd')
+      goto yy52;
+    goto yy2;
+  yy26:
+    yych = *(marker = ++p);
+    if (yych == 'E')
+      goto yy47;
+    if (yych == 'e')
+      goto yy47;
+    goto yy2;
+  yy27:
+    yych = *(marker = ++p);
+    if (yych == 'U')
+      goto yy44;
+    if (yych == 'u')
+      goto yy44;
+    goto yy2;
+  yy28:
+    yych = *(marker = ++p);
+    if (yych == 'M')
+      goto yy38;
+    if (yych == 'm')
+      goto yy38;
+    goto yy2;
+  yy29:
+    yych = *++p;
+    goto yy2;
+  yy30:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy31;
+    if (yych <= 0xBF)
+      goto yy29;
+  yy31:
+    p = marker;
+    goto yy2;
+  yy32:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy31;
+    if (yych <= 0xBF)
+      goto yy30;
+    goto yy31;
+  yy33:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy31;
+    if (yych <= 0xBF)
+      goto yy30;
+    goto yy31;
+  yy34:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy31;
+    if (yych <= 0xBF)
+      goto yy33;
+    goto yy31;
+  yy35:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy31;
+    if (yych <= 0xBF)
+      goto yy33;
+    goto yy31;
+  yy36:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy31;
+    if (yych <= 0x8F)
+      goto yy33;
+    goto yy31;
+  yy37:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy31;
+    if (yych <= 0x9F)
+      goto yy30;
+    goto yy31;
+  yy38:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy39;
+    if (yych != 's')
+      goto yy31;
+  yy39:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy40;
+    if (yych != 'g')
+      goto yy31;
+  yy40:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy41;
+    if (yych != 'r')
+      goto yy31;
+  yy41:
+    yych = *++p;
+    if (yych != ':')
+      goto yy31;
+  yy42:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy44:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy45;
+    if (yych != 'e')
+      goto yy31;
+  yy45:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy46;
+    if (yych != 'r')
+      goto yy31;
+  yy46:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy41;
+    if (yych == 'y')
+      goto yy41;
+    goto yy31;
+  yy47:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy48;
+    if (yych != 'y')
+      goto yy31;
+  yy48:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy49;
+    if (yych != 'p')
+      goto yy31;
+  yy49:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy50;
+    if (yych != 'a')
+      goto yy31;
+  yy50:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy51;
+    if (yych != 'r')
+      goto yy31;
+  yy51:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy41;
+    if (yych == 'c')
+      goto yy41;
+    goto yy31;
+  yy52:
+    yych = *++p;
+    if (yych != '2')
+      goto yy31;
+    yych = *++p;
+    if (yych == 'K')
+      goto yy41;
+    if (yych == 'k')
+      goto yy41;
+    goto yy31;
+  yy54:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy65;
+    if (yych == 'l')
+      goto yy65;
+    goto yy31;
+  yy55:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy61;
+    if (yych == 't')
+      goto yy61;
+    goto yy31;
+  yy56:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy57;
+    if (yych != 's')
+      goto yy31;
+  yy57:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy58;
+    if (yych != 'h')
+      goto yy31;
+  yy58:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy59;
+    if (yych != 'a')
+      goto yy31;
+  yy59:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy60;
+    if (yych != 'r')
+      goto yy31;
+  yy60:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy61:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy62;
+    if (yych != 'c')
+      goto yy31;
+  yy62:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy63;
+    if (yych != 'o')
+      goto yy31;
+  yy63:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy64;
+    if (yych != 'i')
+      goto yy31;
+  yy64:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy65:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy41;
+    if (yych == 'o')
+      goto yy41;
+    goto yy31;
+  yy66:
+    yych = *++p;
+    if (yych != '9')
+      goto yy31;
+    yych = *++p;
+    if (yych != '.')
+      goto yy31;
+    yych = *++p;
+    if (yych != '5')
+      goto yy31;
+    yych = *++p;
+    if (yych != '0')
+      goto yy31;
+    yych = *++p;
+    if (yych <= 'Q')
+      goto yy31;
+    if (yych <= 'S')
+      goto yy41;
+    if (yych <= 'q')
+      goto yy31;
+    if (yych <= 's')
+      goto yy41;
+    goto yy31;
+  yy71:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy41;
+    if (yych == 'i')
+      goto yy41;
+    goto yy31;
+  yy72:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy93;
+    if (yych == 'i')
+      goto yy93;
+    goto yy31;
+  yy73:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy83;
+      if (yych <= 'O')
+        goto yy31;
+      goto yy84;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy31;
+        goto yy83;
+      } else {
+        if (yych == 'p')
+          goto yy84;
+        goto yy31;
+      }
+    }
+  yy74:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy75;
+    if (yych != 'o')
+      goto yy31;
+  yy75:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy76;
+    if (yych != 'n')
+      goto yy31;
+  yy76:
+    yych = *++p;
+    if (yych == '-')
+      goto yy77;
+    if (yych == ':')
+      goto yy42;
+    goto yy31;
+  yy77:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy78;
+    if (yych != 'u')
+      goto yy31;
+  yy78:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy79;
+    if (yych != 's')
+      goto yy31;
+  yy79:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy80;
+    if (yych != 'e')
+      goto yy31;
+  yy80:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy81;
+    if (yych != 'r')
+      goto yy31;
+  yy81:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy82;
+    if (yych != 'i')
+      goto yy31;
+  yy82:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy41;
+    if (yych == 'd')
+      goto yy41;
+    goto yy31;
+  yy83:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy85;
+    if (yych == 'r')
+      goto yy85;
+    goto yy31;
+  yy84:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy85:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy86;
+    if (yych != 'p')
+      goto yy31;
+  yy86:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy87;
+    if (yych != 'c')
+      goto yy31;
+  yy87:
+    yych = *++p;
+    if (yych != '.')
+      goto yy31;
+    yych = *++p;
+    if (yych == 'B')
+      goto yy89;
+    if (yych != 'b')
+      goto yy31;
+  yy89:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy90;
+    if (yych != 'e')
+      goto yy31;
+  yy90:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy91;
+    if (yych != 'e')
+      goto yy31;
+  yy91:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy92;
+    if (yych != 'p')
+      goto yy31;
+  yy92:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy93:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy94;
+    if (yych != 'r')
+      goto yy31;
+  yy94:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy95:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy103;
+    if (yych == 'c')
+      goto yy103;
+    goto yy31;
+  yy96:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy102;
+    if (yych == 'a')
+      goto yy102;
+    goto yy31;
+  yy97:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy99;
+    if (yych == 'b')
+      goto yy99;
+    goto yy31;
+  yy98:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy99:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy100;
+    if (yych != 'c')
+      goto yy31;
+  yy100:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy101;
+    if (yych != 'a')
+      goto yy31;
+  yy101:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy41;
+    if (yych == 'l')
+      goto yy41;
+    goto yy31;
+  yy102:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy41;
+    if (yych == 'i')
+      goto yy41;
+    goto yy31;
+  yy103:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy104;
+    if (yych != 'i')
+      goto yy31;
+  yy104:
+    yych = *++p;
+    if (yych == 'W')
+      goto yy105;
+    if (yych != 'w')
+      goto yy31;
+  yy105:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy106;
+    if (yych != 'y')
+      goto yy31;
+  yy106:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy41;
+    if (yych == 'g')
+      goto yy41;
+    goto yy31;
+  yy107:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy116;
+    if (yych == 'e')
+      goto yy116;
+    goto yy31;
+  yy108:
+    yych = *++p;
+    if (yych <= 'N') {
+      if (yych <= 'L')
+        goto yy31;
+      if (yych >= 'N')
+        goto yy110;
+    } else {
+      if (yych <= 'l')
+        goto yy31;
+      if (yych <= 'm')
+        goto yy109;
+      if (yych <= 'n')
+        goto yy110;
+      goto yy31;
+    }
+  yy109:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy115;
+    if (yych == 'm')
+      goto yy115;
+    goto yy31;
+  yy110:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy111;
+    if (yych != 't')
+      goto yy31;
+  yy111:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy112;
+    if (yych != 'r')
+      goto yy31;
+  yy112:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy113;
+    if (yych != 'i')
+      goto yy31;
+  yy113:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy114;
+    if (yych != 'l')
+      goto yy31;
+  yy114:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy41;
+    if (yych == 'o')
+      goto yy41;
+    goto yy31;
+  yy115:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy41;
+    if (yych == 'i')
+      goto yy41;
+    goto yy31;
+  yy116:
+    yych = *++p;
+    if (yych == 'W')
+      goto yy117;
+    if (yych != 'w')
+      goto yy31;
+  yy117:
+    yych = *++p;
+    if (yych != '-')
+      goto yy31;
+    yych = *++p;
+    if (yych == 'S')
+      goto yy119;
+    if (yych != 's')
+      goto yy31;
+  yy119:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy120;
+    if (yych != 'o')
+      goto yy31;
+  yy120:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy121;
+    if (yych != 'u')
+      goto yy31;
+  yy121:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy122;
+    if (yych != 'r')
+      goto yy31;
+  yy122:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy123;
+    if (yych != 'c')
+      goto yy31;
+  yy123:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy124:
+    yych = *++p;
+    if (yych == '2')
+      goto yy131;
+    goto yy31;
+  yy125:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy128;
+    if (yych == 'r')
+      goto yy128;
+    goto yy31;
+  yy126:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy127:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy128:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy129;
+    if (yych != 'e')
+      goto yy31;
+  yy129:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy130;
+    if (yych != 'a')
+      goto yy31;
+  yy130:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy41;
+    if (yych == 'l')
+      goto yy41;
+    goto yy31;
+  yy131:
+    yych = *++p;
+    if (yych != '0')
+      goto yy31;
+    yych = *++p;
+    if (yych != '0')
+      goto yy31;
+    yych = *++p;
+    if (yych == '4')
+      goto yy41;
+    goto yy31;
+  yy134:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy153;
+    if (yych == 'i')
+      goto yy153;
+    goto yy31;
+  yy135:
+    yych = *++p;
+    if (yych <= 'L') {
+      if (yych == 'A')
+        goto yy145;
+      if (yych <= 'K')
+        goto yy31;
+      goto yy144;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy31;
+        goto yy145;
+      } else {
+        if (yych == 'l')
+          goto yy144;
+        goto yy31;
+      }
+    }
+  yy136:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy137:
+    yych = *++p;
+    if (yych == '3')
+      goto yy141;
+    goto yy31;
+  yy138:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy140;
+    if (yych == 't')
+      goto yy140;
+    goto yy31;
+  yy139:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy41;
+    if (yych == 'g')
+      goto yy41;
+    goto yy31;
+  yy140:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy141:
+    yych = *++p;
+    if (yych != '2')
+      goto yy31;
+    yych = *++p;
+    if (yych != '7')
+      goto yy31;
+    yych = *++p;
+    if (yych == '0')
+      goto yy41;
+    goto yy31;
+  yy144:
+    yych = *++p;
+    if (yych <= 'M') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'N')
+        goto yy151;
+      if (yych == 'n')
+        goto yy151;
+      goto yy31;
+    }
+  yy145:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy146;
+    if (yych != 'm')
+      goto yy31;
+  yy146:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy147;
+    if (yych != 's')
+      goto yy31;
+  yy147:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy148;
+    if (yych != 'p')
+      goto yy31;
+  yy148:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy149;
+    if (yych != 'e')
+      goto yy31;
+  yy149:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy150;
+    if (yych != 'a')
+      goto yy31;
+  yy150:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy41;
+    if (yych == 'k')
+      goto yy41;
+    goto yy31;
+  yy151:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy152;
+    if (yych != 'e')
+      goto yy31;
+  yy152:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy153:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'N')
+        goto yy154;
+      if (yych <= 'R')
+        goto yy31;
+      goto yy155;
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'm')
+          goto yy31;
+      } else {
+        if (yych == 's')
+          goto yy155;
+        goto yy31;
+      }
+    }
+  yy154:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy162;
+    if (yych == 'g')
+      goto yy162;
+    goto yy31;
+  yy155:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy156;
+    if (yych != 'm')
+      goto yy31;
+  yy156:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy157;
+    if (yych != 'e')
+      goto yy31;
+  yy157:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy158;
+    if (yych != 's')
+      goto yy31;
+  yy158:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy159;
+    if (yych != 's')
+      goto yy31;
+  yy159:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy160;
+    if (yych != 'a')
+      goto yy31;
+  yy160:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy161;
+    if (yych != 'g')
+      goto yy31;
+  yy161:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy162:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy163:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy164:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy214;
+    if (yych == 'e')
+      goto yy214;
+    goto yy31;
+  yy165:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy41;
+    if (yych == 'h')
+      goto yy41;
+    goto yy31;
+  yy166:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy210;
+    if (yych == 'o')
+      goto yy210;
+    goto yy31;
+  yy167:
+    yych = *++p;
+    if (yych <= 'L') {
+      if (yych == 'A')
+        goto yy200;
+      if (yych <= 'K')
+        goto yy31;
+      goto yy201;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy31;
+        goto yy200;
+      } else {
+        if (yych == 'l')
+          goto yy201;
+        goto yy31;
+      }
+    }
+  yy168:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'B')
+        goto yy41;
+      if (yych <= 'R')
+        goto yy31;
+      goto yy41;
+    } else {
+      if (yych <= 'b') {
+        if (yych <= 'a')
+          goto yy31;
+        goto yy41;
+      } else {
+        if (yych == 's')
+          goto yy41;
+        goto yy31;
+      }
+    }
+  yy169:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy198;
+    if (yych == 'y')
+      goto yy198;
+    goto yy31;
+  yy170:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy171:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy197;
+    if (yych == 't')
+      goto yy197;
+    goto yy31;
+  yy172:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'C') {
+        if (yych <= 'B')
+          goto yy31;
+        goto yy184;
+      } else {
+        if (yych <= 'Q')
+          goto yy31;
+        if (yych <= 'R')
+          goto yy182;
+        goto yy183;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych == 'c')
+          goto yy184;
+        goto yy31;
+      } else {
+        if (yych <= 'r')
+          goto yy182;
+        if (yych <= 's')
+          goto yy183;
+        goto yy31;
+      }
+    }
+  yy173:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy181;
+    if (yych == 'm')
+      goto yy181;
+    goto yy31;
+  yy174:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'E')
+        goto yy178;
+      if (yych <= 'O')
+        goto yy31;
+      goto yy179;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy31;
+        goto yy178;
+      } else {
+        if (yych == 'p')
+          goto yy179;
+        goto yy31;
+      }
+    }
+  yy175:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy176;
+    if (yych != 't')
+      goto yy31;
+  yy176:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy177;
+    if (yych != 't')
+      goto yy31;
+  yy177:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy178:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy180;
+    if (yych == 'v')
+      goto yy180;
+    goto yy31;
+  yy179:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy180:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy181:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy182:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy194;
+    if (yych == 'v')
+      goto yy194;
+    goto yy31;
+  yy183:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy191;
+    if (yych == 's')
+      goto yy191;
+    goto yy31;
+  yy184:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy185;
+    if (yych != 'o')
+      goto yy31;
+  yy185:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy186;
+    if (yych != 'n')
+      goto yy31;
+  yy186:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy187;
+    if (yych != 'd')
+      goto yy31;
+  yy187:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy188;
+    if (yych != 'l')
+      goto yy31;
+  yy188:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy189;
+    if (yych != 'i')
+      goto yy31;
+  yy189:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy190;
+    if (yych != 'f')
+      goto yy31;
+  yy190:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy191:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy192;
+    if (yych != 'i')
+      goto yy31;
+  yy192:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy193;
+    if (yych != 'o')
+      goto yy31;
+  yy193:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy194:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy195;
+    if (yych != 'i')
+      goto yy31;
+  yy195:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy196;
+    if (yych != 'c')
+      goto yy31;
+  yy196:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy197:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy198:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy199;
+    if (yych != 'p')
+      goto yy31;
+  yy199:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy200:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy204;
+    if (yych == 'p')
+      goto yy204;
+    goto yy31;
+  yy201:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy202;
+    if (yych != 'd')
+      goto yy31;
+  yy202:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy203;
+    if (yych != 'a')
+      goto yy31;
+  yy203:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy204:
+    yych = *++p;
+    if (yych != '.')
+      goto yy31;
+    yych = *++p;
+    if (yych == 'B')
+      goto yy206;
+    if (yych != 'b')
+      goto yy31;
+  yy206:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy207;
+    if (yych != 'e')
+      goto yy31;
+  yy207:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy208;
+    if (yych != 'e')
+      goto yy31;
+  yy208:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy209;
+    if (yych != 'p')
+      goto yy31;
+  yy209:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy210:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy211;
+    if (yych != 't')
+      goto yy31;
+  yy211:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy212;
+    if (yych != 'i')
+      goto yy31;
+  yy212:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy213;
+    if (yych != 'f')
+      goto yy31;
+  yy213:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy41;
+    if (yych == 'y')
+      goto yy41;
+    goto yy31;
+  yy214:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy215;
+    if (yych != 'a')
+      goto yy31;
+  yy215:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy41;
+    if (yych == 'm')
+      goto yy41;
+    goto yy31;
+  yy216:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'M')
+        goto yy228;
+      if (yych <= 'R')
+        goto yy31;
+      goto yy227;
+    } else {
+      if (yych <= 'm') {
+        if (yych <= 'l')
+          goto yy31;
+        goto yy228;
+      } else {
+        if (yych == 's')
+          goto yy227;
+        goto yy31;
+      }
+    }
+  yy217:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy225;
+    if (yych == 'y')
+      goto yy225;
+    goto yy31;
+  yy218:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy41;
+    if (yych == 'i')
+      goto yy41;
+    goto yy31;
+  yy219:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy220;
+    if (yych != 's')
+      goto yy31;
+  yy220:
+    yych = *++p;
+    if (yych <= 'N') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'O')
+        goto yy221;
+      if (yych != 'o')
+        goto yy31;
+    }
+  yy221:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy222;
+    if (yych != 'u')
+      goto yy31;
+  yy222:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy223;
+    if (yych != 'r')
+      goto yy31;
+  yy223:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy224;
+    if (yych != 'c')
+      goto yy31;
+  yy224:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy225:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy226;
+    if (yych != 'n')
+      goto yy31;
+  yy226:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy41;
+    if (yych == 'c')
+      goto yy41;
+    goto yy31;
+  yy227:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy228:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy229:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy249;
+    if (yych == 'y')
+      goto yy249;
+    goto yy31;
+  yy230:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == 'E')
+        goto yy246;
+      if (yych <= 'N')
+        goto yy31;
+      goto yy247;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy31;
+        goto yy246;
+      } else {
+        if (yych == 'o')
+          goto yy247;
+        goto yy31;
+      }
+    }
+  yy231:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy241;
+    if (yych == 'a')
+      goto yy241;
+    goto yy31;
+  yy232:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy234;
+      if (yych <= 'O')
+        goto yy31;
+      goto yy235;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy31;
+        goto yy234;
+      } else {
+        if (yych == 'p')
+          goto yy235;
+        goto yy31;
+      }
+    }
+  yy233:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy234:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy41;
+    if (yych == 'm')
+      goto yy41;
+    goto yy31;
+  yy235:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy236;
+    if (yych != 'a')
+      goto yy31;
+  yy236:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy237;
+    if (yych != 'r')
+      goto yy31;
+  yy237:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy238;
+    if (yych != 'a')
+      goto yy31;
+  yy238:
+    yych = *++p;
+    if (yych == 'Z')
+      goto yy239;
+    if (yych != 'z')
+      goto yy31;
+  yy239:
+    yych = *++p;
+    if (yych == 'Z')
+      goto yy240;
+    if (yych != 'z')
+      goto yy31;
+  yy240:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy41;
+    if (yych == 'i')
+      goto yy41;
+    goto yy31;
+  yy241:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy242;
+    if (yych != 't')
+      goto yy31;
+  yy242:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy243;
+    if (yych != 'f')
+      goto yy31;
+  yy243:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy244;
+    if (yych != 'o')
+      goto yy31;
+  yy244:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy245;
+    if (yych != 'r')
+      goto yy31;
+  yy245:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy41;
+    if (yych == 'm')
+      goto yy41;
+    goto yy31;
+  yy246:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy247:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy248;
+    if (yych != 'x')
+      goto yy31;
+  yy248:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy41;
+    if (yych == 'y')
+      goto yy41;
+    goto yy31;
+  yy249:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy41;
+    if (yych == 'c')
+      goto yy41;
+    goto yy31;
+  yy250:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy41;
+    if (yych == 'd')
+      goto yy41;
+    goto yy31;
+  yy251:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy252;
+    if (yych != 'a')
+      goto yy31;
+  yy252:
+    yych = *++p;
+    if (yych == 'Q')
+      goto yy253;
+    if (yych != 'q')
+      goto yy31;
+  yy253:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy254;
+    if (yych != 'u')
+      goto yy31;
+  yy254:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy255;
+    if (yych != 'e')
+      goto yy31;
+  yy255:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy256;
+    if (yych != 'l')
+      goto yy31;
+  yy256:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy257;
+    if (yych != 'o')
+      goto yy31;
+  yy257:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy258;
+    if (yych != 'c')
+      goto yy31;
+  yy258:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy259;
+    if (yych != 'k')
+      goto yy31;
+  yy259:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy260;
+    if (yych != 't')
+      goto yy31;
+  yy260:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy261;
+    if (yych != 'o')
+      goto yy31;
+  yy261:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy262;
+    if (yych != 'k')
+      goto yy31;
+  yy262:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy263;
+    if (yych != 'e')
+      goto yy31;
+  yy263:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy264:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy271;
+    if (yych == 't')
+      goto yy271;
+    goto yy31;
+  yy265:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy270;
+    if (yych == 't')
+      goto yy270;
+    goto yy31;
+  yy266:
+    yych = *++p;
+    if (yych <= 'G') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'H')
+        goto yy41;
+      if (yych == 'h')
+        goto yy41;
+      goto yy31;
+    }
+  yy267:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy268:
+    yych = *++p;
+    if (yych == 'W')
+      goto yy269;
+    if (yych != 'w')
+      goto yy31;
+  yy269:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy270:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy271:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy272;
+    if (yych != 'e')
+      goto yy31;
+  yy272:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy273:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy274:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'M')
+        goto yy305;
+      if (yych <= 'O')
+        goto yy31;
+      goto yy304;
+    } else {
+      if (yych <= 'm') {
+        if (yych <= 'l')
+          goto yy31;
+        goto yy305;
+      } else {
+        if (yych == 'p')
+          goto yy304;
+        goto yy31;
+      }
+    }
+  yy275:
+    yych = *++p;
+    if (yych <= 'Q') {
+      if (yych <= '-') {
+        if (yych <= ',')
+          goto yy31;
+        goto yy297;
+      } else {
+        if (yych == 'N')
+          goto yy298;
+        goto yy31;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'R')
+          goto yy296;
+        if (yych <= 'm')
+          goto yy31;
+        goto yy298;
+      } else {
+        if (yych == 'r')
+          goto yy296;
+        goto yy31;
+      }
+    }
+  yy276:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy277:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy292;
+    if (yych == 's')
+      goto yy292;
+    goto yy31;
+  yy278:
+    yych = *++p;
+    switch (yych) {
+    case 'G':
+    case 'g':
+      goto yy283;
+    case 'I':
+    case 'i':
+      goto yy282;
+    case 'P':
+    case 'p':
+      goto yy284;
+    case 'R':
+    case 'r':
+      goto yy285;
+    default:
+      goto yy31;
+    }
+  yy279:
+    yych = *++p;
+    if (yych == 'Q')
+      goto yy281;
+    if (yych == 'q')
+      goto yy281;
+    goto yy31;
+  yy280:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy41;
+    if (yych == 'd')
+      goto yy41;
+    goto yy31;
+  yy281:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy282:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy290;
+    if (yych == 'l')
+      goto yy290;
+    goto yy31;
+  yy283:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy288;
+    if (yych == 'n')
+      goto yy288;
+    goto yy31;
+  yy284:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy285:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy286;
+    if (yych != 'k')
+      goto yy31;
+  yy286:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy287;
+    if (yych != 'e')
+      goto yy31;
+  yy287:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy288:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy289;
+    if (yych != 'e')
+      goto yy31;
+  yy289:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy290:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy291;
+    if (yych != 't')
+      goto yy31;
+  yy291:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy41;
+    if (yych == 'o')
+      goto yy41;
+    goto yy31;
+  yy292:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy293;
+    if (yych != 's')
+      goto yy31;
+  yy293:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy294;
+    if (yych != 'a')
+      goto yy31;
+  yy294:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy295;
+    if (yych != 'g')
+      goto yy31;
+  yy295:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy296:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy303;
+    if (yych == 'p')
+      goto yy303;
+    goto yy31;
+  yy297:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy300;
+    if (yych == 'h')
+      goto yy300;
+    goto yy31;
+  yy298:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy299;
+    if (yych != 'i')
+      goto yy31;
+  yy299:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy41;
+    if (yych == 'm')
+      goto yy41;
+    goto yy31;
+  yy300:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy301;
+    if (yych != 'e')
+      goto yy31;
+  yy301:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy302;
+    if (yych != 'l')
+      goto yy31;
+  yy302:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy303:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy304:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy308;
+    if (yych == 'd')
+      goto yy308;
+    goto yy31;
+  yy305:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy306;
+    if (yych != 'b')
+      goto yy31;
+  yy306:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy307;
+    if (yych != 'l')
+      goto yy31;
+  yy307:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy308:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy309;
+    if (yych != 'a')
+      goto yy31;
+  yy309:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy310;
+    if (yych != 't')
+      goto yy31;
+  yy310:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy311:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy316;
+    if (yych == 'a')
+      goto yy316;
+    goto yy31;
+  yy312:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy313;
+    if (yych != 's')
+      goto yy31;
+  yy313:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy314;
+    if (yych != 't')
+      goto yy31;
+  yy314:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy315;
+    if (yych != 'f')
+      goto yy31;
+  yy315:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy41;
+    if (yych == 'm')
+      goto yy41;
+    goto yy31;
+  yy316:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy317;
+    if (yych != 'p')
+      goto yy31;
+  yy317:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy318:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy341;
+    if (yych == 'm')
+      goto yy341;
+    goto yy31;
+  yy319:
+    yych = *++p;
+    if (yych <= 'I') {
+      if (yych == 'C')
+        goto yy330;
+      if (yych <= 'H')
+        goto yy31;
+      goto yy329;
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'b')
+          goto yy31;
+        goto yy330;
+      } else {
+        if (yych == 'i')
+          goto yy329;
+        goto yy31;
+      }
+    }
+  yy320:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'N')
+        goto yy41;
+      if (yych <= 'O')
+        goto yy31;
+      goto yy41;
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'm')
+          goto yy31;
+        goto yy41;
+      } else {
+        if (yych == 'p')
+          goto yy41;
+        goto yy31;
+      }
+    }
+  yy321:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == 'A')
+        goto yy327;
+      if (yych <= 'N')
+        goto yy31;
+      goto yy328;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy31;
+        goto yy327;
+      } else {
+        if (yych == 'o')
+          goto yy328;
+        goto yy31;
+      }
+    }
+  yy322:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy326;
+    if (yych == 'f')
+      goto yy326;
+    goto yy31;
+  yy323:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'A')
+        goto yy325;
+      if (yych == 'a')
+        goto yy325;
+      goto yy31;
+    }
+  yy324:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy41;
+    if (yych == 'x')
+      goto yy41;
+    goto yy31;
+  yy325:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy326:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy41;
+    if (yych == 'o')
+      goto yy41;
+    goto yy31;
+  yy327:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy328:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy329:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy331;
+    if (yych == 's')
+      goto yy331;
+    goto yy31;
+  yy330:
+    yych = *++p;
+    if (yych <= ':') {
+      if (yych == '6')
+        goto yy41;
+      if (yych <= '9')
+        goto yy31;
+      goto yy42;
+    } else {
+      if (yych <= 'S') {
+        if (yych <= 'R')
+          goto yy31;
+        goto yy41;
+      } else {
+        if (yych == 's')
+          goto yy41;
+        goto yy31;
+      }
+    }
+  yy331:
+    yych = *++p;
+    if (yych == '.')
+      goto yy332;
+    if (yych == ':')
+      goto yy42;
+    goto yy31;
+  yy332:
+    yych = *++p;
+    if (yych <= 'X') {
+      if (yych <= 'K') {
+        if (yych == 'B')
+          goto yy335;
+        goto yy31;
+      } else {
+        if (yych <= 'L')
+          goto yy333;
+        if (yych <= 'W')
+          goto yy31;
+        goto yy334;
+      }
+    } else {
+      if (yych <= 'k') {
+        if (yych == 'b')
+          goto yy335;
+        goto yy31;
+      } else {
+        if (yych <= 'l')
+          goto yy333;
+        if (yych == 'x')
+          goto yy334;
+        goto yy31;
+      }
+    }
+  yy333:
+    yych = *++p;
+    if (yych == 'W')
+      goto yy340;
+    if (yych == 'w')
+      goto yy340;
+    goto yy31;
+  yy334:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy338;
+    if (yych == 'p')
+      goto yy338;
+    goto yy31;
+  yy335:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy336;
+    if (yych != 'e')
+      goto yy31;
+  yy336:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy337;
+    if (yych != 'e')
+      goto yy31;
+  yy337:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy338:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy339;
+    if (yych != 'c')
+      goto yy31;
+  yy339:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy340:
+    yych = *++p;
+    if (yych == 'Z')
+      goto yy41;
+    if (yych == 'z')
+      goto yy41;
+    goto yy31;
+  yy341:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy342:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy343:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy346;
+    if (yych == 't')
+      goto yy346;
+    goto yy31;
+  yy344:
+    yych = *++p;
+    if (yych != '2')
+      goto yy31;
+    yych = *++p;
+    if (yych == '3')
+      goto yy41;
+    goto yy31;
+  yy346:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy347;
+    if (yych != 'p')
+      goto yy31;
+  yy347:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy348:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy364;
+    if (yych == 'a')
+      goto yy364;
+    goto yy31;
+  yy349:
+    yych = *++p;
+    if (yych <= 'Z') {
+      if (yych == 'T')
+        goto yy41;
+      if (yych <= 'Y')
+        goto yy31;
+      goto yy355;
+    } else {
+      if (yych <= 't') {
+        if (yych <= 's')
+          goto yy31;
+        goto yy41;
+      } else {
+        if (yych == 'z')
+          goto yy355;
+        goto yy31;
+      }
+    }
+  yy350:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'P')
+        goto yy352;
+      if (yych == 'p')
+        goto yy352;
+      goto yy31;
+    }
+  yy351:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy41;
+    if (yych == 'o')
+      goto yy41;
+    goto yy31;
+  yy352:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy353;
+    if (yych != 'h')
+      goto yy31;
+  yy353:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy354;
+    if (yych != 'e')
+      goto yy31;
+  yy354:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy41;
+    if (yych == 'r')
+      goto yy41;
+    goto yy31;
+  yy355:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy356;
+    if (yych != 'm')
+      goto yy31;
+  yy356:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy357;
+    if (yych != 'o')
+      goto yy31;
+  yy357:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy358;
+    if (yych != 'p')
+      goto yy31;
+  yy358:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy359;
+    if (yych != 'r')
+      goto yy31;
+  yy359:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy360;
+    if (yych != 'o')
+      goto yy31;
+  yy360:
+    yych = *++p;
+    if (yych == 'J')
+      goto yy361;
+    if (yych != 'j')
+      goto yy31;
+  yy361:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy362;
+    if (yych != 'e')
+      goto yy31;
+  yy362:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy363;
+    if (yych != 'c')
+      goto yy31;
+  yy363:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy364:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy365;
+    if (yych != 'l')
+      goto yy31;
+  yy365:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy41;
+    if (yych == 'k')
+      goto yy41;
+    goto yy31;
+  yy366:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'M') {
+        if (yych == 'L')
+          goto yy376;
+        goto yy31;
+      } else {
+        if (yych <= 'N')
+          goto yy377;
+        if (yych <= 'R')
+          goto yy31;
+        goto yy378;
+      }
+    } else {
+      if (yych <= 'm') {
+        if (yych == 'l')
+          goto yy376;
+        goto yy31;
+      } else {
+        if (yych <= 'n')
+          goto yy377;
+        if (yych == 's')
+          goto yy378;
+        goto yy31;
+      }
+    }
+  yy367:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy375;
+    if (yych == 'e')
+      goto yy375;
+    goto yy31;
+  yy368:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy370;
+    if (yych == 'c')
+      goto yy370;
+    goto yy31;
+  yy369:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy370:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy371;
+    if (yych != 'e')
+      goto yy31;
+  yy371:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy372;
+    if (yych != 't')
+      goto yy31;
+  yy372:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy373;
+    if (yych != 'i')
+      goto yy31;
+  yy373:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy374;
+    if (yych != 'm')
+      goto yy31;
+  yy374:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy375:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy41;
+    if (yych == 'd')
+      goto yy41;
+    goto yy31;
+  yy376:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy377:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy379;
+    if (yych == 'g')
+      goto yy379;
+    goto yy31;
+  yy378:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy41;
+    if (yych == 'h')
+      goto yy41;
+    goto yy31;
+  yy379:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy380;
+    if (yych != 'e')
+      goto yy31;
+  yy380:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy41;
+    if (yych == 'r')
+      goto yy41;
+    goto yy31;
+  yy381:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy399;
+    if (yych == 't')
+      goto yy399;
+    goto yy31;
+  yy382:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy383:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy41;
+    if (yych == 'm')
+      goto yy41;
+    goto yy31;
+  yy384:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'P')
+        goto yy41;
+      if (yych <= 'R')
+        goto yy31;
+      goto yy41;
+    } else {
+      if (yych <= 'p') {
+        if (yych <= 'o')
+          goto yy31;
+        goto yy41;
+      } else {
+        if (yych == 's')
+          goto yy41;
+        goto yy31;
+      }
+    }
+  yy385:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy393;
+    if (yych == 'i')
+      goto yy393;
+    goto yy31;
+  yy386:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy392;
+    if (yych == 'a')
+      goto yy392;
+    goto yy31;
+  yy387:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy390;
+    if (yych == 'o')
+      goto yy390;
+    goto yy31;
+  yy388:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy389;
+    if (yych != 'a')
+      goto yy31;
+  yy389:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy42;
+      goto yy31;
+    } else {
+      if (yych <= 'S')
+        goto yy41;
+      if (yych == 's')
+        goto yy41;
+      goto yy31;
+    }
+  yy390:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy391;
+    if (yych != 'u')
+      goto yy31;
+  yy391:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy392:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy393:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy394;
+    if (yych != 'u')
+      goto yy31;
+  yy394:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy395;
+    if (yych != 'm')
+      goto yy31;
+  yy395:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy396;
+    if (yych != 'x')
+      goto yy31;
+  yy396:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy397;
+    if (yych != 't')
+      goto yy31;
+  yy397:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy398;
+    if (yych != 'r')
+      goto yy31;
+  yy398:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy41;
+    if (yych == 'a')
+      goto yy41;
+    goto yy31;
+  yy399:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy400;
+    if (yych != 'a')
+      goto yy31;
+  yy400:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy401;
+    if (yych != 'c')
+      goto yy31;
+  yy401:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy402;
+    if (yych != 'h')
+      goto yy31;
+  yy402:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy403;
+    if (yych != 'm')
+      goto yy31;
+  yy403:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy404;
+    if (yych != 'e')
+      goto yy31;
+  yy404:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy405;
+    if (yych != 'n')
+      goto yy31;
+  yy405:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy406:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy407:
+    yych = *++p;
+    if (yych <= 'V') {
+      if (yych == 'R')
+        goto yy41;
+      if (yych <= 'U')
+        goto yy31;
+    } else {
+      if (yych <= 'r') {
+        if (yych <= 'q')
+          goto yy31;
+        goto yy41;
+      } else {
+        if (yych != 'v')
+          goto yy31;
+      }
+    }
+    yych = *++p;
+    if (yych == 'A')
+      goto yy409;
+    if (yych != 'a')
+      goto yy31;
+  yy409:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy410;
+    if (yych != 's')
+      goto yy31;
+  yy410:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy411;
+    if (yych != 'c')
+      goto yy31;
+  yy411:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy412;
+    if (yych != 'r')
+      goto yy31;
+  yy412:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy413;
+    if (yych != 'i')
+      goto yy31;
+  yy413:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy414;
+    if (yych != 'p')
+      goto yy31;
+  yy414:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy415:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy41;
+    if (yych == 'b')
+      goto yy41;
+    goto yy31;
+  yy416:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy417:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy424;
+    if (yych == 'n')
+      goto yy424;
+    goto yy31;
+  yy418:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy419:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy423;
+    if (yych == 'c')
+      goto yy423;
+    goto yy31;
+  yy420:
+    yych = *++p;
+    if (yych <= 'V') {
+      if (yych == 'T')
+        goto yy422;
+      if (yych <= 'U')
+        goto yy31;
+      goto yy41;
+    } else {
+      if (yych <= 't') {
+        if (yych <= 's')
+          goto yy31;
+        goto yy422;
+      } else {
+        if (yych == 'v')
+          goto yy41;
+        goto yy31;
+      }
+    }
+  yy421:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy41;
+    if (yych == 'i')
+      goto yy41;
+    goto yy31;
+  yy422:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy41;
+    if (yych == 'a')
+      goto yy41;
+    goto yy31;
+  yy423:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy424:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy425;
+    if (yych != 'a')
+      goto yy31;
+  yy425:
+    yych = *++p;
+    if (yych != '-')
+      goto yy31;
+    yych = *++p;
+    if (yych == 'P')
+      goto yy427;
+    if (yych != 'p')
+      goto yy31;
+  yy427:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy428;
+    if (yych != 'l')
+      goto yy31;
+  yy428:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy429;
+    if (yych != 'a')
+      goto yy31;
+  yy429:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy430;
+    if (yych != 'y')
+      goto yy31;
+  yy430:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'C')
+        goto yy431;
+      if (yych <= 'R')
+        goto yy31;
+      goto yy432;
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'b')
+          goto yy31;
+      } else {
+        if (yych == 's')
+          goto yy432;
+        goto yy31;
+      }
+    }
+  yy431:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy437;
+    if (yych == 'o')
+      goto yy437;
+    goto yy31;
+  yy432:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy433;
+    if (yych != 'i')
+      goto yy31;
+  yy433:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy434;
+    if (yych != 'n')
+      goto yy31;
+  yy434:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy435;
+    if (yych != 'g')
+      goto yy31;
+  yy435:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy436;
+    if (yych != 'l')
+      goto yy31;
+  yy436:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  yy437:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy438;
+    if (yych != 'n')
+      goto yy31;
+  yy438:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy439;
+    if (yych != 't')
+      goto yy31;
+  yy439:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy440;
+    if (yych != 'a')
+      goto yy31;
+  yy440:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy441;
+    if (yych != 'i')
+      goto yy31;
+  yy441:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy442;
+    if (yych != 'n')
+      goto yy31;
+  yy442:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy443;
+    if (yych != 'e')
+      goto yy31;
+  yy443:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy41;
+    if (yych == 'r')
+      goto yy41;
+    goto yy31;
+  yy444:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy41;
+    if (yych == 's')
+      goto yy41;
+    goto yy31;
+  yy445:
+    yych = *++p;
+    if (yych <= 'N') {
+      if (yych <= 'A') {
+        if (yych <= '@')
+          goto yy31;
+        goto yy467;
+      } else {
+        if (yych <= 'L')
+          goto yy31;
+        if (yych <= 'M')
+          goto yy468;
+        goto yy469;
+      }
+    } else {
+      if (yych <= 'l') {
+        if (yych == 'a')
+          goto yy467;
+        goto yy31;
+      } else {
+        if (yych <= 'm')
+          goto yy468;
+        if (yych <= 'n')
+          goto yy469;
+        goto yy31;
+      }
+    }
+  yy446:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy454;
+    if (yych == 'r')
+      goto yy454;
+    goto yy31;
+  yy447:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy451;
+      if (yych <= 'O')
+        goto yy31;
+      goto yy41;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy31;
+        goto yy451;
+      } else {
+        if (yych == 'p')
+          goto yy41;
+        goto yy31;
+      }
+    }
+  yy448:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy450;
+    if (yych == 'i')
+      goto yy450;
+    goto yy31;
+  yy449:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy41;
+    if (yych == 'd')
+      goto yy41;
+    goto yy31;
+  yy450:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy41;
+    if (yych == 'd')
+      goto yy41;
+    goto yy31;
+  yy451:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy452;
+    if (yych != 'l')
+      goto yy31;
+  yy452:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy453;
+    if (yych != 't')
+      goto yy31;
+  yy453:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy41;
+    if (yych == 'o')
+      goto yy41;
+    goto yy31;
+  yy454:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy455;
+    if (yych != 'o')
+      goto yy31;
+  yy455:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy456;
+    if (yych != 'm')
+      goto yy31;
+  yy456:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy457;
+    if (yych != 'e')
+      goto yy31;
+  yy457:
+    yych = *++p;
+    if (yych == '-')
+      goto yy458;
+    if (yych == ':')
+      goto yy42;
+    goto yy31;
+  yy458:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy459;
+    if (yych != 'e')
+      goto yy31;
+  yy459:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy460;
+    if (yych != 'x')
+      goto yy31;
+  yy460:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy461;
+    if (yych != 't')
+      goto yy31;
+  yy461:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy462;
+    if (yych != 'e')
+      goto yy31;
+  yy462:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy463;
+    if (yych != 'n')
+      goto yy31;
+  yy463:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy464;
+    if (yych != 's')
+      goto yy31;
+  yy464:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy465;
+    if (yych != 'i')
+      goto yy31;
+  yy465:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy466;
+    if (yych != 'o')
+      goto yy31;
+  yy466:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy41;
+    if (yych == 'n')
+      goto yy41;
+    goto yy31;
+  yy467:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy41;
+    if (yych == 'p')
+      goto yy41;
+    goto yy31;
+  yy468:
+    yych = *++p;
+    if (yych == '-')
+      goto yy473;
+    goto yy31;
+  yy469:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy470;
+    if (yych != 't')
+      goto yy31;
+  yy470:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy471;
+    if (yych != 'e')
+      goto yy31;
+  yy471:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy472;
+    if (yych != 'n')
+      goto yy31;
+  yy472:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy41;
+    if (yych == 't')
+      goto yy41;
+    goto yy31;
+  yy473:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy474;
+    if (yych != 'e')
+      goto yy31;
+  yy474:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy475;
+    if (yych != 'v')
+      goto yy31;
+  yy475:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy476;
+    if (yych != 'e')
+      goto yy31;
+  yy476:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy477;
+    if (yych != 'n')
+      goto yy31;
+  yy477:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy478;
+    if (yych != 't')
+      goto yy31;
+  yy478:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy479;
+    if (yych != 'b')
+      goto yy31;
+  yy479:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy480;
+    if (yych != 'r')
+      goto yy31;
+  yy480:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy481;
+    if (yych != 'i')
+      goto yy31;
+  yy481:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy482;
+    if (yych != 't')
+      goto yy31;
+  yy482:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy483;
+    if (yych != 'e')
+      goto yy31;
+  yy483:
+    yych = *++p;
+    if (yych != '-')
+      goto yy31;
+    yych = *++p;
+    if (yych == 'A')
+      goto yy485;
+    if (yych != 'a')
+      goto yy31;
+  yy485:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy486;
+    if (yych != 't')
+      goto yy31;
+  yy486:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy487;
+    if (yych != 't')
+      goto yy31;
+  yy487:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy488;
+    if (yych != 'e')
+      goto yy31;
+  yy488:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy489;
+    if (yych != 'n')
+      goto yy31;
+  yy489:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy490;
+    if (yych != 'd')
+      goto yy31;
+  yy490:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy491;
+    if (yych != 'e')
+      goto yy31;
+  yy491:
+    ++p;
+    if ((yych = *p) == 'E')
+      goto yy41;
+    if (yych == 'e')
+      goto yy41;
+    goto yy31;
+  }
+}
+
+// Try to match URI autolink after first <, returning number of chars matched.
+bufsize_t _scan_autolink_uri(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 0,   128, 0,   128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 'c') {
+      if (yych <= 'M') {
+        if (yych <= 'E') {
+          if (yych <= 'A') {
+            if (yych == '\n')
+              goto yy494;
+            if (yych <= '@')
+              goto yy521;
+            goto yy498;
+          } else {
+            if (yych <= 'B')
+              goto yy516;
+            if (yych <= 'C')
+              goto yy495;
+            if (yych <= 'D')
+              goto yy496;
+            goto yy517;
+          }
+        } else {
+          if (yych <= 'I') {
+            if (yych <= 'F')
+              goto yy499;
+            if (yych <= 'G')
+              goto yy500;
+            if (yych <= 'H')
+              goto yy501;
+            goto yy502;
+          } else {
+            if (yych <= 'J')
+              goto yy497;
+            if (yych <= 'K')
+              goto yy518;
+            if (yych <= 'L')
+              goto yy503;
+            goto yy504;
+          }
+        }
+      } else {
+        if (yych <= 'U') {
+          if (yych <= 'Q') {
+            if (yych <= 'N')
+              goto yy505;
+            if (yych <= 'O')
+              goto yy506;
+            if (yych <= 'P')
+              goto yy507;
+            goto yy519;
+          } else {
+            if (yych <= 'R')
+              goto yy508;
+            if (yych <= 'S')
+              goto yy509;
+            if (yych <= 'T')
+              goto yy510;
+            goto yy511;
+          }
+        } else {
+          if (yych <= 'Y') {
+            if (yych <= 'V')
+              goto yy512;
+            if (yych <= 'W')
+              goto yy513;
+            if (yych <= 'X')
+              goto yy514;
+            goto yy520;
+          } else {
+            if (yych <= '`') {
+              if (yych <= 'Z')
+                goto yy515;
+              goto yy521;
+            } else {
+              if (yych <= 'a')
+                goto yy498;
+              if (yych <= 'b')
+                goto yy516;
+              goto yy495;
+            }
+          }
+        }
+      }
+    } else {
+      if (yych <= 't') {
+        if (yych <= 'k') {
+          if (yych <= 'g') {
+            if (yych <= 'd')
+              goto yy496;
+            if (yych <= 'e')
+              goto yy517;
+            if (yych <= 'f')
+              goto yy499;
+            goto yy500;
+          } else {
+            if (yych <= 'h')
+              goto yy501;
+            if (yych <= 'i')
+              goto yy502;
+            if (yych <= 'j')
+              goto yy497;
+            goto yy518;
+          }
+        } else {
+          if (yych <= 'o') {
+            if (yych <= 'l')
+              goto yy503;
+            if (yych <= 'm')
+              goto yy504;
+            if (yych <= 'n')
+              goto yy505;
+            goto yy506;
+          } else {
+            if (yych <= 'q') {
+              if (yych <= 'p')
+                goto yy507;
+              goto yy519;
+            } else {
+              if (yych <= 'r')
+                goto yy508;
+              if (yych <= 's')
+                goto yy509;
+              goto yy510;
+            }
+          }
+        }
+      } else {
+        if (yych <= 0xC1) {
+          if (yych <= 'x') {
+            if (yych <= 'u')
+              goto yy511;
+            if (yych <= 'v')
+              goto yy512;
+            if (yych <= 'w')
+              goto yy513;
+            goto yy514;
+          } else {
+            if (yych <= 'y')
+              goto yy520;
+            if (yych <= 'z')
+              goto yy515;
+            if (yych <= 0x7F)
+              goto yy521;
+          }
+        } else {
+          if (yych <= 0xED) {
+            if (yych <= 0xDF)
+              goto yy522;
+            if (yych <= 0xE0)
+              goto yy524;
+            if (yych <= 0xEC)
+              goto yy525;
+            goto yy529;
+          } else {
+            if (yych <= 0xF0) {
+              if (yych <= 0xEF)
+                goto yy525;
+              goto yy526;
+            } else {
+              if (yych <= 0xF3)
+                goto yy527;
+              if (yych <= 0xF4)
+                goto yy528;
+            }
+          }
+        }
+      }
+    }
+  yy494 : { return 0; }
+  yy495:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy948;
+    case 'H':
+    case 'h':
+      goto yy947;
+    case 'I':
+    case 'i':
+      goto yy950;
+    case 'O':
+    case 'o':
+      goto yy946;
+    case 'R':
+    case 'r':
+      goto yy949;
+    case 'V':
+    case 'v':
+      goto yy945;
+    default:
+      goto yy494;
+    }
+  yy496:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy921;
+    case 'I':
+    case 'i':
+      goto yy920;
+    case 'L':
+    case 'l':
+      goto yy918;
+    case 'N':
+    case 'n':
+      goto yy919;
+    case 'O':
+    case 'o':
+      goto yy922;
+    case 'T':
+    case 't':
+      goto yy917;
+    case 'V':
+    case 'v':
+      goto yy916;
+    default:
+      goto yy494;
+    }
+  yy497:
+    yych = *(marker = ++p);
+    if (yych <= 'M') {
+      if (yych == 'A')
+        goto yy908;
+      if (yych <= 'L')
+        goto yy494;
+      goto yy907;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy494;
+        goto yy908;
+      } else {
+        if (yych == 'm')
+          goto yy907;
+        goto yy494;
+      }
+    }
+  yy498:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy889;
+    case 'B':
+    case 'b':
+      goto yy888;
+    case 'C':
+    case 'c':
+      goto yy887;
+    case 'D':
+    case 'd':
+      goto yy886;
+    case 'F':
+    case 'f':
+      goto yy885;
+    case 'I':
+    case 'i':
+      goto yy884;
+    case 'P':
+    case 'p':
+      goto yy883;
+    case 'T':
+    case 't':
+      goto yy882;
+    case 'W':
+    case 'w':
+      goto yy533;
+    default:
+      goto yy494;
+    }
+  yy499:
+    yych = *(marker = ++p);
+    if (yych <= 'T') {
+      if (yych <= 'E') {
+        if (yych == 'A')
+          goto yy869;
+        if (yych <= 'D')
+          goto yy494;
+        goto yy868;
+      } else {
+        if (yych == 'I')
+          goto yy867;
+        if (yych <= 'S')
+          goto yy494;
+        goto yy870;
+      }
+    } else {
+      if (yych <= 'e') {
+        if (yych == 'a')
+          goto yy869;
+        if (yych <= 'd')
+          goto yy494;
+        goto yy868;
+      } else {
+        if (yych <= 'i') {
+          if (yych <= 'h')
+            goto yy494;
+          goto yy867;
+        } else {
+          if (yych == 't')
+            goto yy870;
+          goto yy494;
+        }
+      }
+    }
+  yy500:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'E':
+    case 'e':
+      goto yy852;
+    case 'G':
+    case 'g':
+      goto yy533;
+    case 'I':
+    case 'i':
+      goto yy850;
+    case 'O':
+    case 'o':
+      goto yy851;
+    case 'T':
+    case 't':
+      goto yy849;
+    default:
+      goto yy494;
+    }
+  yy501:
+    yych = *(marker = ++p);
+    if (yych <= 'S') {
+      if (yych <= '3') {
+        if (yych <= '2')
+          goto yy494;
+        goto yy845;
+      } else {
+        if (yych == 'C')
+          goto yy843;
+        goto yy494;
+      }
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'T')
+          goto yy844;
+        if (yych <= 'b')
+          goto yy494;
+        goto yy843;
+      } else {
+        if (yych == 't')
+          goto yy844;
+        goto yy494;
+      }
+    }
+  yy502:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy825;
+    case 'C':
+    case 'c':
+      goto yy822;
+    case 'M':
+    case 'm':
+      goto yy824;
+    case 'N':
+    case 'n':
+      goto yy823;
+    case 'P':
+    case 'p':
+      goto yy821;
+    case 'R':
+    case 'r':
+      goto yy820;
+    case 'T':
+    case 't':
+      goto yy819;
+    default:
+      goto yy494;
+    }
+  yy503:
+    yych = *(marker = ++p);
+    if (yych <= 'D') {
+      if (yych == 'A')
+        goto yy813;
+      if (yych <= 'C')
+        goto yy494;
+      goto yy812;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy494;
+        goto yy813;
+      } else {
+        if (yych == 'd')
+          goto yy812;
+        goto yy494;
+      }
+    }
+  yy504:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy779;
+    case 'E':
+    case 'e':
+      goto yy778;
+    case 'I':
+    case 'i':
+      goto yy781;
+    case 'M':
+    case 'm':
+      goto yy777;
+    case 'S':
+    case 's':
+      goto yy776;
+    case 'T':
+    case 't':
+      goto yy780;
+    case 'U':
+    case 'u':
+      goto yy775;
+    case 'V':
+    case 'v':
+      goto yy774;
+    default:
+      goto yy494;
+    }
+  yy505:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'E':
+    case 'e':
+      goto yy769;
+    case 'F':
+    case 'f':
+      goto yy768;
+    case 'I':
+    case 'i':
+      goto yy767;
+    case 'N':
+    case 'n':
+      goto yy766;
+    case 'O':
+    case 'o':
+      goto yy765;
+    default:
+      goto yy494;
+    }
+  yy506:
+    yych = *(marker = ++p);
+    if (yych <= 'P') {
+      if (yych == 'I')
+        goto yy751;
+      if (yych <= 'O')
+        goto yy494;
+      goto yy752;
+    } else {
+      if (yych <= 'i') {
+        if (yych <= 'h')
+          goto yy494;
+        goto yy751;
+      } else {
+        if (yych == 'p')
+          goto yy752;
+        goto yy494;
+      }
+    }
+  yy507:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy733;
+    case 'L':
+    case 'l':
+      goto yy732;
+    case 'O':
+    case 'o':
+      goto yy734;
+    case 'R':
+    case 'r':
+      goto yy731;
+    case 'S':
+    case 's':
+      goto yy730;
+    default:
+      goto yy494;
+    }
+  yy508:
+    yych = *(marker = ++p);
+    if (yych <= 'T') {
+      if (yych <= 'L') {
+        if (yych == 'E')
+          goto yy720;
+        goto yy494;
+      } else {
+        if (yych <= 'M')
+          goto yy719;
+        if (yych <= 'R')
+          goto yy494;
+        if (yych <= 'S')
+          goto yy718;
+        goto yy717;
+      }
+    } else {
+      if (yych <= 'm') {
+        if (yych == 'e')
+          goto yy720;
+        if (yych <= 'l')
+          goto yy494;
+        goto yy719;
+      } else {
+        if (yych <= 'r')
+          goto yy494;
+        if (yych <= 's')
+          goto yy718;
+        if (yych <= 't')
+          goto yy717;
+        goto yy494;
+      }
+    }
+  yy509:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'E':
+    case 'e':
+      goto yy673;
+    case 'F':
+    case 'f':
+      goto yy672;
+    case 'G':
+    case 'g':
+      goto yy671;
+    case 'H':
+    case 'h':
+      goto yy676;
+    case 'I':
+    case 'i':
+      goto yy675;
+    case 'K':
+    case 'k':
+      goto yy670;
+    case 'M':
+    case 'm':
+      goto yy669;
+    case 'N':
+    case 'n':
+      goto yy674;
+    case 'O':
+    case 'o':
+      goto yy668;
+    case 'P':
+    case 'p':
+      goto yy667;
+    case 'S':
+    case 's':
+      goto yy666;
+    case 'T':
+    case 't':
+      goto yy665;
+    case 'V':
+    case 'v':
+      goto yy664;
+    default:
+      goto yy494;
+    }
+  yy510:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy640;
+    case 'E':
+    case 'e':
+      goto yy636;
+    case 'F':
+    case 'f':
+      goto yy639;
+    case 'H':
+    case 'h':
+      goto yy635;
+    case 'I':
+    case 'i':
+      goto yy637;
+    case 'N':
+    case 'n':
+      goto yy638;
+    case 'V':
+    case 'v':
+      goto yy533;
+    default:
+      goto yy494;
+    }
+  yy511:
+    yych = *(marker = ++p);
+    if (yych <= 'T') {
+      if (yych <= 'N') {
+        if (yych == 'D')
+          goto yy627;
+        if (yych <= 'M')
+          goto yy494;
+        goto yy626;
+      } else {
+        if (yych == 'R')
+          goto yy628;
+        if (yych <= 'S')
+          goto yy494;
+        goto yy625;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych == 'd')
+          goto yy627;
+        if (yych <= 'm')
+          goto yy494;
+        goto yy626;
+      } else {
+        if (yych <= 'r') {
+          if (yych <= 'q')
+            goto yy494;
+          goto yy628;
+        } else {
+          if (yych == 't')
+            goto yy625;
+          goto yy494;
+        }
+      }
+    }
+  yy512:
+    yych = *(marker = ++p);
+    if (yych <= 'I') {
+      if (yych == 'E')
+        goto yy609;
+      if (yych <= 'H')
+        goto yy494;
+      goto yy608;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy494;
+        goto yy609;
+      } else {
+        if (yych == 'i')
+          goto yy608;
+        goto yy494;
+      }
+    }
+  yy513:
+    yych = *(marker = ++p);
+    if (yych <= 'Y') {
+      if (yych <= 'R') {
+        if (yych == 'E')
+          goto yy598;
+        goto yy494;
+      } else {
+        if (yych <= 'S')
+          goto yy599;
+        if (yych <= 'T')
+          goto yy597;
+        if (yych <= 'X')
+          goto yy494;
+        goto yy596;
+      }
+    } else {
+      if (yych <= 's') {
+        if (yych == 'e')
+          goto yy598;
+        if (yych <= 'r')
+          goto yy494;
+        goto yy599;
+      } else {
+        if (yych <= 't')
+          goto yy597;
+        if (yych == 'y')
+          goto yy596;
+        goto yy494;
+      }
+    }
+  yy514:
+    yych = *(marker = ++p);
+    if (yych <= 'R') {
+      if (yych <= 'F') {
+        if (yych == 'C')
+          goto yy575;
+        if (yych <= 'E')
+          goto yy494;
+        goto yy573;
+      } else {
+        if (yych == 'M')
+          goto yy574;
+        if (yych <= 'Q')
+          goto yy494;
+        goto yy572;
+      }
+    } else {
+      if (yych <= 'f') {
+        if (yych == 'c')
+          goto yy575;
+        if (yych <= 'e')
+          goto yy494;
+        goto yy573;
+      } else {
+        if (yych <= 'm') {
+          if (yych <= 'l')
+            goto yy494;
+          goto yy574;
+        } else {
+          if (yych == 'r')
+            goto yy572;
+          goto yy494;
+        }
+      }
+    }
+  yy515:
+    yych = *(marker = ++p);
+    if (yych == '3')
+      goto yy567;
+    goto yy494;
+  yy516:
+    yych = *(marker = ++p);
+    if (yych <= 'O') {
+      if (yych <= 'H') {
+        if (yych == 'E')
+          goto yy557;
+        goto yy494;
+      } else {
+        if (yych <= 'I')
+          goto yy556;
+        if (yych <= 'N')
+          goto yy494;
+        goto yy555;
+      }
+    } else {
+      if (yych <= 'h') {
+        if (yych == 'e')
+          goto yy557;
+        goto yy494;
+      } else {
+        if (yych <= 'i')
+          goto yy556;
+        if (yych == 'o')
+          goto yy555;
+        goto yy494;
+      }
+    }
+  yy517:
+    yych = *(marker = ++p);
+    if (yych == 'D')
+      goto yy553;
+    if (yych == 'd')
+      goto yy553;
+    goto yy494;
+  yy518:
+    yych = *(marker = ++p);
+    if (yych == 'E')
+      goto yy548;
+    if (yych == 'e')
+      goto yy548;
+    goto yy494;
+  yy519:
+    yych = *(marker = ++p);
+    if (yych == 'U')
+      goto yy545;
+    if (yych == 'u')
+      goto yy545;
+    goto yy494;
+  yy520:
+    yych = *(marker = ++p);
+    if (yych == 'M')
+      goto yy530;
+    if (yych == 'm')
+      goto yy530;
+    goto yy494;
+  yy521:
+    yych = *++p;
+    goto yy494;
+  yy522:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy521;
+  yy523:
+    p = marker;
+    goto yy494;
+  yy524:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy522;
+    goto yy523;
+  yy525:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy522;
+    goto yy523;
+  yy526:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy525;
+    goto yy523;
+  yy527:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy525;
+    goto yy523;
+  yy528:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0x8F)
+      goto yy525;
+    goto yy523;
+  yy529:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0x9F)
+      goto yy522;
+    goto yy523;
+  yy530:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy531;
+    if (yych != 's')
+      goto yy523;
+  yy531:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy532;
+    if (yych != 'g')
+      goto yy523;
+  yy532:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy533;
+    if (yych != 'r')
+      goto yy523;
+  yy533:
+    yych = *++p;
+    if (yych != ':')
+      goto yy523;
+  yy534:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy534;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '<')
+          goto yy523;
+        if (yych <= '>')
+          goto yy543;
+        goto yy523;
+      } else {
+        if (yych <= 0xDF)
+          goto yy536;
+        if (yych <= 0xE0)
+          goto yy537;
+        goto yy538;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy542;
+        if (yych <= 0xEF)
+          goto yy538;
+        goto yy539;
+      } else {
+        if (yych <= 0xF3)
+          goto yy540;
+        if (yych <= 0xF4)
+          goto yy541;
+        goto yy523;
+      }
+    }
+  yy536:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy534;
+    goto yy523;
+  yy537:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy536;
+    goto yy523;
+  yy538:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy536;
+    goto yy523;
+  yy539:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy538;
+    goto yy523;
+  yy540:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0xBF)
+      goto yy538;
+    goto yy523;
+  yy541:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0x8F)
+      goto yy538;
+    goto yy523;
+  yy542:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy523;
+    if (yych <= 0x9F)
+      goto yy536;
+    goto yy523;
+  yy543:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy545:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy546;
+    if (yych != 'e')
+      goto yy523;
+  yy546:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy547;
+    if (yych != 'r')
+      goto yy523;
+  yy547:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy533;
+    if (yych == 'y')
+      goto yy533;
+    goto yy523;
+  yy548:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy549;
+    if (yych != 'y')
+      goto yy523;
+  yy549:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy550;
+    if (yych != 'p')
+      goto yy523;
+  yy550:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy551;
+    if (yych != 'a')
+      goto yy523;
+  yy551:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy552;
+    if (yych != 'r')
+      goto yy523;
+  yy552:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy533;
+    if (yych == 'c')
+      goto yy533;
+    goto yy523;
+  yy553:
+    yych = *++p;
+    if (yych != '2')
+      goto yy523;
+    yych = *++p;
+    if (yych == 'K')
+      goto yy533;
+    if (yych == 'k')
+      goto yy533;
+    goto yy523;
+  yy555:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy566;
+    if (yych == 'l')
+      goto yy566;
+    goto yy523;
+  yy556:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy562;
+    if (yych == 't')
+      goto yy562;
+    goto yy523;
+  yy557:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy558;
+    if (yych != 's')
+      goto yy523;
+  yy558:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy559;
+    if (yych != 'h')
+      goto yy523;
+  yy559:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy560;
+    if (yych != 'a')
+      goto yy523;
+  yy560:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy561;
+    if (yych != 'r')
+      goto yy523;
+  yy561:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy562:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy563;
+    if (yych != 'c')
+      goto yy523;
+  yy563:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy564;
+    if (yych != 'o')
+      goto yy523;
+  yy564:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy565;
+    if (yych != 'i')
+      goto yy523;
+  yy565:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy566:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy533;
+    if (yych == 'o')
+      goto yy533;
+    goto yy523;
+  yy567:
+    yych = *++p;
+    if (yych != '9')
+      goto yy523;
+    yych = *++p;
+    if (yych != '.')
+      goto yy523;
+    yych = *++p;
+    if (yych != '5')
+      goto yy523;
+    yych = *++p;
+    if (yych != '0')
+      goto yy523;
+    yych = *++p;
+    if (yych <= 'Q')
+      goto yy523;
+    if (yych <= 'S')
+      goto yy533;
+    if (yych <= 'q')
+      goto yy523;
+    if (yych <= 's')
+      goto yy533;
+    goto yy523;
+  yy572:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy533;
+    if (yych == 'i')
+      goto yy533;
+    goto yy523;
+  yy573:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy594;
+    if (yych == 'i')
+      goto yy594;
+    goto yy523;
+  yy574:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy584;
+      if (yych <= 'O')
+        goto yy523;
+      goto yy585;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy523;
+        goto yy584;
+      } else {
+        if (yych == 'p')
+          goto yy585;
+        goto yy523;
+      }
+    }
+  yy575:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy576;
+    if (yych != 'o')
+      goto yy523;
+  yy576:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy577;
+    if (yych != 'n')
+      goto yy523;
+  yy577:
+    yych = *++p;
+    if (yych == '-')
+      goto yy578;
+    if (yych == ':')
+      goto yy534;
+    goto yy523;
+  yy578:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy579;
+    if (yych != 'u')
+      goto yy523;
+  yy579:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy580;
+    if (yych != 's')
+      goto yy523;
+  yy580:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy581;
+    if (yych != 'e')
+      goto yy523;
+  yy581:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy582;
+    if (yych != 'r')
+      goto yy523;
+  yy582:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy583;
+    if (yych != 'i')
+      goto yy523;
+  yy583:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy533;
+    if (yych == 'd')
+      goto yy533;
+    goto yy523;
+  yy584:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy586;
+    if (yych == 'r')
+      goto yy586;
+    goto yy523;
+  yy585:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy586:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy587;
+    if (yych != 'p')
+      goto yy523;
+  yy587:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy588;
+    if (yych != 'c')
+      goto yy523;
+  yy588:
+    yych = *++p;
+    if (yych != '.')
+      goto yy523;
+    yych = *++p;
+    if (yych == 'B')
+      goto yy590;
+    if (yych != 'b')
+      goto yy523;
+  yy590:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy591;
+    if (yych != 'e')
+      goto yy523;
+  yy591:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy592;
+    if (yych != 'e')
+      goto yy523;
+  yy592:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy593;
+    if (yych != 'p')
+      goto yy523;
+  yy593:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy594:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy595;
+    if (yych != 'r')
+      goto yy523;
+  yy595:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy596:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy604;
+    if (yych == 'c')
+      goto yy604;
+    goto yy523;
+  yy597:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy603;
+    if (yych == 'a')
+      goto yy603;
+    goto yy523;
+  yy598:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy600;
+    if (yych == 'b')
+      goto yy600;
+    goto yy523;
+  yy599:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy600:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy601;
+    if (yych != 'c')
+      goto yy523;
+  yy601:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy602;
+    if (yych != 'a')
+      goto yy523;
+  yy602:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy533;
+    if (yych == 'l')
+      goto yy533;
+    goto yy523;
+  yy603:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy533;
+    if (yych == 'i')
+      goto yy533;
+    goto yy523;
+  yy604:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy605;
+    if (yych != 'i')
+      goto yy523;
+  yy605:
+    yych = *++p;
+    if (yych == 'W')
+      goto yy606;
+    if (yych != 'w')
+      goto yy523;
+  yy606:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy607;
+    if (yych != 'y')
+      goto yy523;
+  yy607:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy533;
+    if (yych == 'g')
+      goto yy533;
+    goto yy523;
+  yy608:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy617;
+    if (yych == 'e')
+      goto yy617;
+    goto yy523;
+  yy609:
+    yych = *++p;
+    if (yych <= 'N') {
+      if (yych <= 'L')
+        goto yy523;
+      if (yych >= 'N')
+        goto yy611;
+    } else {
+      if (yych <= 'l')
+        goto yy523;
+      if (yych <= 'm')
+        goto yy610;
+      if (yych <= 'n')
+        goto yy611;
+      goto yy523;
+    }
+  yy610:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy616;
+    if (yych == 'm')
+      goto yy616;
+    goto yy523;
+  yy611:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy612;
+    if (yych != 't')
+      goto yy523;
+  yy612:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy613;
+    if (yych != 'r')
+      goto yy523;
+  yy613:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy614;
+    if (yych != 'i')
+      goto yy523;
+  yy614:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy615;
+    if (yych != 'l')
+      goto yy523;
+  yy615:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy533;
+    if (yych == 'o')
+      goto yy533;
+    goto yy523;
+  yy616:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy533;
+    if (yych == 'i')
+      goto yy533;
+    goto yy523;
+  yy617:
+    yych = *++p;
+    if (yych == 'W')
+      goto yy618;
+    if (yych != 'w')
+      goto yy523;
+  yy618:
+    yych = *++p;
+    if (yych != '-')
+      goto yy523;
+    yych = *++p;
+    if (yych == 'S')
+      goto yy620;
+    if (yych != 's')
+      goto yy523;
+  yy620:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy621;
+    if (yych != 'o')
+      goto yy523;
+  yy621:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy622;
+    if (yych != 'u')
+      goto yy523;
+  yy622:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy623;
+    if (yych != 'r')
+      goto yy523;
+  yy623:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy624;
+    if (yych != 'c')
+      goto yy523;
+  yy624:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy625:
+    yych = *++p;
+    if (yych == '2')
+      goto yy632;
+    goto yy523;
+  yy626:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy629;
+    if (yych == 'r')
+      goto yy629;
+    goto yy523;
+  yy627:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy628:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy629:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy630;
+    if (yych != 'e')
+      goto yy523;
+  yy630:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy631;
+    if (yych != 'a')
+      goto yy523;
+  yy631:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy533;
+    if (yych == 'l')
+      goto yy533;
+    goto yy523;
+  yy632:
+    yych = *++p;
+    if (yych != '0')
+      goto yy523;
+    yych = *++p;
+    if (yych != '0')
+      goto yy523;
+    yych = *++p;
+    if (yych == '4')
+      goto yy533;
+    goto yy523;
+  yy635:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy654;
+    if (yych == 'i')
+      goto yy654;
+    goto yy523;
+  yy636:
+    yych = *++p;
+    if (yych <= 'L') {
+      if (yych == 'A')
+        goto yy646;
+      if (yych <= 'K')
+        goto yy523;
+      goto yy645;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy523;
+        goto yy646;
+      } else {
+        if (yych == 'l')
+          goto yy645;
+        goto yy523;
+      }
+    }
+  yy637:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy638:
+    yych = *++p;
+    if (yych == '3')
+      goto yy642;
+    goto yy523;
+  yy639:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy641;
+    if (yych == 't')
+      goto yy641;
+    goto yy523;
+  yy640:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy533;
+    if (yych == 'g')
+      goto yy533;
+    goto yy523;
+  yy641:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy642:
+    yych = *++p;
+    if (yych != '2')
+      goto yy523;
+    yych = *++p;
+    if (yych != '7')
+      goto yy523;
+    yych = *++p;
+    if (yych == '0')
+      goto yy533;
+    goto yy523;
+  yy645:
+    yych = *++p;
+    if (yych <= 'M') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'N')
+        goto yy652;
+      if (yych == 'n')
+        goto yy652;
+      goto yy523;
+    }
+  yy646:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy647;
+    if (yych != 'm')
+      goto yy523;
+  yy647:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy648;
+    if (yych != 's')
+      goto yy523;
+  yy648:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy649;
+    if (yych != 'p')
+      goto yy523;
+  yy649:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy650;
+    if (yych != 'e')
+      goto yy523;
+  yy650:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy651;
+    if (yych != 'a')
+      goto yy523;
+  yy651:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy533;
+    if (yych == 'k')
+      goto yy533;
+    goto yy523;
+  yy652:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy653;
+    if (yych != 'e')
+      goto yy523;
+  yy653:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy654:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'N')
+        goto yy655;
+      if (yych <= 'R')
+        goto yy523;
+      goto yy656;
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'm')
+          goto yy523;
+      } else {
+        if (yych == 's')
+          goto yy656;
+        goto yy523;
+      }
+    }
+  yy655:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy663;
+    if (yych == 'g')
+      goto yy663;
+    goto yy523;
+  yy656:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy657;
+    if (yych != 'm')
+      goto yy523;
+  yy657:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy658;
+    if (yych != 'e')
+      goto yy523;
+  yy658:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy659;
+    if (yych != 's')
+      goto yy523;
+  yy659:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy660;
+    if (yych != 's')
+      goto yy523;
+  yy660:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy661;
+    if (yych != 'a')
+      goto yy523;
+  yy661:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy662;
+    if (yych != 'g')
+      goto yy523;
+  yy662:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy663:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy664:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy665:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy715;
+    if (yych == 'e')
+      goto yy715;
+    goto yy523;
+  yy666:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy533;
+    if (yych == 'h')
+      goto yy533;
+    goto yy523;
+  yy667:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy711;
+    if (yych == 'o')
+      goto yy711;
+    goto yy523;
+  yy668:
+    yych = *++p;
+    if (yych <= 'L') {
+      if (yych == 'A')
+        goto yy701;
+      if (yych <= 'K')
+        goto yy523;
+      goto yy702;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy523;
+        goto yy701;
+      } else {
+        if (yych == 'l')
+          goto yy702;
+        goto yy523;
+      }
+    }
+  yy669:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'B')
+        goto yy533;
+      if (yych <= 'R')
+        goto yy523;
+      goto yy533;
+    } else {
+      if (yych <= 'b') {
+        if (yych <= 'a')
+          goto yy523;
+        goto yy533;
+      } else {
+        if (yych == 's')
+          goto yy533;
+        goto yy523;
+      }
+    }
+  yy670:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy699;
+    if (yych == 'y')
+      goto yy699;
+    goto yy523;
+  yy671:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy672:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy698;
+    if (yych == 't')
+      goto yy698;
+    goto yy523;
+  yy673:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'C') {
+        if (yych <= 'B')
+          goto yy523;
+        goto yy685;
+      } else {
+        if (yych <= 'Q')
+          goto yy523;
+        if (yych <= 'R')
+          goto yy683;
+        goto yy684;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych == 'c')
+          goto yy685;
+        goto yy523;
+      } else {
+        if (yych <= 'r')
+          goto yy683;
+        if (yych <= 's')
+          goto yy684;
+        goto yy523;
+      }
+    }
+  yy674:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy682;
+    if (yych == 'm')
+      goto yy682;
+    goto yy523;
+  yy675:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'E')
+        goto yy679;
+      if (yych <= 'O')
+        goto yy523;
+      goto yy680;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy523;
+        goto yy679;
+      } else {
+        if (yych == 'p')
+          goto yy680;
+        goto yy523;
+      }
+    }
+  yy676:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy677;
+    if (yych != 't')
+      goto yy523;
+  yy677:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy678;
+    if (yych != 't')
+      goto yy523;
+  yy678:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy679:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy681;
+    if (yych == 'v')
+      goto yy681;
+    goto yy523;
+  yy680:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy681:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy682:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy683:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy695;
+    if (yych == 'v')
+      goto yy695;
+    goto yy523;
+  yy684:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy692;
+    if (yych == 's')
+      goto yy692;
+    goto yy523;
+  yy685:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy686;
+    if (yych != 'o')
+      goto yy523;
+  yy686:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy687;
+    if (yych != 'n')
+      goto yy523;
+  yy687:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy688;
+    if (yych != 'd')
+      goto yy523;
+  yy688:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy689;
+    if (yych != 'l')
+      goto yy523;
+  yy689:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy690;
+    if (yych != 'i')
+      goto yy523;
+  yy690:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy691;
+    if (yych != 'f')
+      goto yy523;
+  yy691:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy692:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy693;
+    if (yych != 'i')
+      goto yy523;
+  yy693:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy694;
+    if (yych != 'o')
+      goto yy523;
+  yy694:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy695:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy696;
+    if (yych != 'i')
+      goto yy523;
+  yy696:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy697;
+    if (yych != 'c')
+      goto yy523;
+  yy697:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy698:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy699:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy700;
+    if (yych != 'p')
+      goto yy523;
+  yy700:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy701:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy705;
+    if (yych == 'p')
+      goto yy705;
+    goto yy523;
+  yy702:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy703;
+    if (yych != 'd')
+      goto yy523;
+  yy703:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy704;
+    if (yych != 'a')
+      goto yy523;
+  yy704:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy705:
+    yych = *++p;
+    if (yych != '.')
+      goto yy523;
+    yych = *++p;
+    if (yych == 'B')
+      goto yy707;
+    if (yych != 'b')
+      goto yy523;
+  yy707:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy708;
+    if (yych != 'e')
+      goto yy523;
+  yy708:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy709;
+    if (yych != 'e')
+      goto yy523;
+  yy709:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy710;
+    if (yych != 'p')
+      goto yy523;
+  yy710:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy711:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy712;
+    if (yych != 't')
+      goto yy523;
+  yy712:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy713;
+    if (yych != 'i')
+      goto yy523;
+  yy713:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy714;
+    if (yych != 'f')
+      goto yy523;
+  yy714:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy533;
+    if (yych == 'y')
+      goto yy533;
+    goto yy523;
+  yy715:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy716;
+    if (yych != 'a')
+      goto yy523;
+  yy716:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy533;
+    if (yych == 'm')
+      goto yy533;
+    goto yy523;
+  yy717:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'M')
+        goto yy729;
+      if (yych <= 'R')
+        goto yy523;
+      goto yy728;
+    } else {
+      if (yych <= 'm') {
+        if (yych <= 'l')
+          goto yy523;
+        goto yy729;
+      } else {
+        if (yych == 's')
+          goto yy728;
+        goto yy523;
+      }
+    }
+  yy718:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy726;
+    if (yych == 'y')
+      goto yy726;
+    goto yy523;
+  yy719:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy533;
+    if (yych == 'i')
+      goto yy533;
+    goto yy523;
+  yy720:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy721;
+    if (yych != 's')
+      goto yy523;
+  yy721:
+    yych = *++p;
+    if (yych <= 'N') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'O')
+        goto yy722;
+      if (yych != 'o')
+        goto yy523;
+    }
+  yy722:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy723;
+    if (yych != 'u')
+      goto yy523;
+  yy723:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy724;
+    if (yych != 'r')
+      goto yy523;
+  yy724:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy725;
+    if (yych != 'c')
+      goto yy523;
+  yy725:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy726:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy727;
+    if (yych != 'n')
+      goto yy523;
+  yy727:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy533;
+    if (yych == 'c')
+      goto yy533;
+    goto yy523;
+  yy728:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy729:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy730:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy750;
+    if (yych == 'y')
+      goto yy750;
+    goto yy523;
+  yy731:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == 'E')
+        goto yy747;
+      if (yych <= 'N')
+        goto yy523;
+      goto yy748;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy523;
+        goto yy747;
+      } else {
+        if (yych == 'o')
+          goto yy748;
+        goto yy523;
+      }
+    }
+  yy732:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy742;
+    if (yych == 'a')
+      goto yy742;
+    goto yy523;
+  yy733:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy735;
+      if (yych <= 'O')
+        goto yy523;
+      goto yy736;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy523;
+        goto yy735;
+      } else {
+        if (yych == 'p')
+          goto yy736;
+        goto yy523;
+      }
+    }
+  yy734:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy735:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy533;
+    if (yych == 'm')
+      goto yy533;
+    goto yy523;
+  yy736:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy737;
+    if (yych != 'a')
+      goto yy523;
+  yy737:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy738;
+    if (yych != 'r')
+      goto yy523;
+  yy738:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy739;
+    if (yych != 'a')
+      goto yy523;
+  yy739:
+    yych = *++p;
+    if (yych == 'Z')
+      goto yy740;
+    if (yych != 'z')
+      goto yy523;
+  yy740:
+    yych = *++p;
+    if (yych == 'Z')
+      goto yy741;
+    if (yych != 'z')
+      goto yy523;
+  yy741:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy533;
+    if (yych == 'i')
+      goto yy533;
+    goto yy523;
+  yy742:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy743;
+    if (yych != 't')
+      goto yy523;
+  yy743:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy744;
+    if (yych != 'f')
+      goto yy523;
+  yy744:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy745;
+    if (yych != 'o')
+      goto yy523;
+  yy745:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy746;
+    if (yych != 'r')
+      goto yy523;
+  yy746:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy533;
+    if (yych == 'm')
+      goto yy533;
+    goto yy523;
+  yy747:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy748:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy749;
+    if (yych != 'x')
+      goto yy523;
+  yy749:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy533;
+    if (yych == 'y')
+      goto yy533;
+    goto yy523;
+  yy750:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy533;
+    if (yych == 'c')
+      goto yy533;
+    goto yy523;
+  yy751:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy533;
+    if (yych == 'd')
+      goto yy533;
+    goto yy523;
+  yy752:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy753;
+    if (yych != 'a')
+      goto yy523;
+  yy753:
+    yych = *++p;
+    if (yych == 'Q')
+      goto yy754;
+    if (yych != 'q')
+      goto yy523;
+  yy754:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy755;
+    if (yych != 'u')
+      goto yy523;
+  yy755:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy756;
+    if (yych != 'e')
+      goto yy523;
+  yy756:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy757;
+    if (yych != 'l')
+      goto yy523;
+  yy757:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy758;
+    if (yych != 'o')
+      goto yy523;
+  yy758:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy759;
+    if (yych != 'c')
+      goto yy523;
+  yy759:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy760;
+    if (yych != 'k')
+      goto yy523;
+  yy760:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy761;
+    if (yych != 't')
+      goto yy523;
+  yy761:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy762;
+    if (yych != 'o')
+      goto yy523;
+  yy762:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy763;
+    if (yych != 'k')
+      goto yy523;
+  yy763:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy764;
+    if (yych != 'e')
+      goto yy523;
+  yy764:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy765:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy772;
+    if (yych == 't')
+      goto yy772;
+    goto yy523;
+  yy766:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy771;
+    if (yych == 't')
+      goto yy771;
+    goto yy523;
+  yy767:
+    yych = *++p;
+    if (yych <= 'G') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'H')
+        goto yy533;
+      if (yych == 'h')
+        goto yy533;
+      goto yy523;
+    }
+  yy768:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy769:
+    yych = *++p;
+    if (yych == 'W')
+      goto yy770;
+    if (yych != 'w')
+      goto yy523;
+  yy770:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy771:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy772:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy773;
+    if (yych != 'e')
+      goto yy523;
+  yy773:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy774:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy775:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'M')
+        goto yy806;
+      if (yych <= 'O')
+        goto yy523;
+      goto yy805;
+    } else {
+      if (yych <= 'm') {
+        if (yych <= 'l')
+          goto yy523;
+        goto yy806;
+      } else {
+        if (yych == 'p')
+          goto yy805;
+        goto yy523;
+      }
+    }
+  yy776:
+    yych = *++p;
+    if (yych <= 'Q') {
+      if (yych <= '-') {
+        if (yych <= ',')
+          goto yy523;
+        goto yy798;
+      } else {
+        if (yych == 'N')
+          goto yy799;
+        goto yy523;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'R')
+          goto yy797;
+        if (yych <= 'm')
+          goto yy523;
+        goto yy799;
+      } else {
+        if (yych == 'r')
+          goto yy797;
+        goto yy523;
+      }
+    }
+  yy777:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy778:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy793;
+    if (yych == 's')
+      goto yy793;
+    goto yy523;
+  yy779:
+    yych = *++p;
+    switch (yych) {
+    case 'G':
+    case 'g':
+      goto yy784;
+    case 'I':
+    case 'i':
+      goto yy783;
+    case 'P':
+    case 'p':
+      goto yy785;
+    case 'R':
+    case 'r':
+      goto yy786;
+    default:
+      goto yy523;
+    }
+  yy780:
+    yych = *++p;
+    if (yych == 'Q')
+      goto yy782;
+    if (yych == 'q')
+      goto yy782;
+    goto yy523;
+  yy781:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy533;
+    if (yych == 'd')
+      goto yy533;
+    goto yy523;
+  yy782:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy783:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy791;
+    if (yych == 'l')
+      goto yy791;
+    goto yy523;
+  yy784:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy789;
+    if (yych == 'n')
+      goto yy789;
+    goto yy523;
+  yy785:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy786:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy787;
+    if (yych != 'k')
+      goto yy523;
+  yy787:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy788;
+    if (yych != 'e')
+      goto yy523;
+  yy788:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy789:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy790;
+    if (yych != 'e')
+      goto yy523;
+  yy790:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy791:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy792;
+    if (yych != 't')
+      goto yy523;
+  yy792:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy533;
+    if (yych == 'o')
+      goto yy533;
+    goto yy523;
+  yy793:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy794;
+    if (yych != 's')
+      goto yy523;
+  yy794:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy795;
+    if (yych != 'a')
+      goto yy523;
+  yy795:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy796;
+    if (yych != 'g')
+      goto yy523;
+  yy796:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy797:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy804;
+    if (yych == 'p')
+      goto yy804;
+    goto yy523;
+  yy798:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy801;
+    if (yych == 'h')
+      goto yy801;
+    goto yy523;
+  yy799:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy800;
+    if (yych != 'i')
+      goto yy523;
+  yy800:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy533;
+    if (yych == 'm')
+      goto yy533;
+    goto yy523;
+  yy801:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy802;
+    if (yych != 'e')
+      goto yy523;
+  yy802:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy803;
+    if (yych != 'l')
+      goto yy523;
+  yy803:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy804:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy805:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy809;
+    if (yych == 'd')
+      goto yy809;
+    goto yy523;
+  yy806:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy807;
+    if (yych != 'b')
+      goto yy523;
+  yy807:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy808;
+    if (yych != 'l')
+      goto yy523;
+  yy808:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy809:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy810;
+    if (yych != 'a')
+      goto yy523;
+  yy810:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy811;
+    if (yych != 't')
+      goto yy523;
+  yy811:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy812:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy817;
+    if (yych == 'a')
+      goto yy817;
+    goto yy523;
+  yy813:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy814;
+    if (yych != 's')
+      goto yy523;
+  yy814:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy815;
+    if (yych != 't')
+      goto yy523;
+  yy815:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy816;
+    if (yych != 'f')
+      goto yy523;
+  yy816:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy533;
+    if (yych == 'm')
+      goto yy533;
+    goto yy523;
+  yy817:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy818;
+    if (yych != 'p')
+      goto yy523;
+  yy818:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy819:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy842;
+    if (yych == 'm')
+      goto yy842;
+    goto yy523;
+  yy820:
+    yych = *++p;
+    if (yych <= 'I') {
+      if (yych == 'C')
+        goto yy831;
+      if (yych <= 'H')
+        goto yy523;
+      goto yy830;
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'b')
+          goto yy523;
+        goto yy831;
+      } else {
+        if (yych == 'i')
+          goto yy830;
+        goto yy523;
+      }
+    }
+  yy821:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'N')
+        goto yy533;
+      if (yych <= 'O')
+        goto yy523;
+      goto yy533;
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'm')
+          goto yy523;
+        goto yy533;
+      } else {
+        if (yych == 'p')
+          goto yy533;
+        goto yy523;
+      }
+    }
+  yy822:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == 'A')
+        goto yy828;
+      if (yych <= 'N')
+        goto yy523;
+      goto yy829;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy523;
+        goto yy828;
+      } else {
+        if (yych == 'o')
+          goto yy829;
+        goto yy523;
+      }
+    }
+  yy823:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy827;
+    if (yych == 'f')
+      goto yy827;
+    goto yy523;
+  yy824:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'A')
+        goto yy826;
+      if (yych == 'a')
+        goto yy826;
+      goto yy523;
+    }
+  yy825:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy533;
+    if (yych == 'x')
+      goto yy533;
+    goto yy523;
+  yy826:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy827:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy533;
+    if (yych == 'o')
+      goto yy533;
+    goto yy523;
+  yy828:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy829:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy830:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy832;
+    if (yych == 's')
+      goto yy832;
+    goto yy523;
+  yy831:
+    yych = *++p;
+    if (yych <= ':') {
+      if (yych == '6')
+        goto yy533;
+      if (yych <= '9')
+        goto yy523;
+      goto yy534;
+    } else {
+      if (yych <= 'S') {
+        if (yych <= 'R')
+          goto yy523;
+        goto yy533;
+      } else {
+        if (yych == 's')
+          goto yy533;
+        goto yy523;
+      }
+    }
+  yy832:
+    yych = *++p;
+    if (yych == '.')
+      goto yy833;
+    if (yych == ':')
+      goto yy534;
+    goto yy523;
+  yy833:
+    yych = *++p;
+    if (yych <= 'X') {
+      if (yych <= 'K') {
+        if (yych == 'B')
+          goto yy836;
+        goto yy523;
+      } else {
+        if (yych <= 'L')
+          goto yy834;
+        if (yych <= 'W')
+          goto yy523;
+        goto yy835;
+      }
+    } else {
+      if (yych <= 'k') {
+        if (yych == 'b')
+          goto yy836;
+        goto yy523;
+      } else {
+        if (yych <= 'l')
+          goto yy834;
+        if (yych == 'x')
+          goto yy835;
+        goto yy523;
+      }
+    }
+  yy834:
+    yych = *++p;
+    if (yych == 'W')
+      goto yy841;
+    if (yych == 'w')
+      goto yy841;
+    goto yy523;
+  yy835:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy839;
+    if (yych == 'p')
+      goto yy839;
+    goto yy523;
+  yy836:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy837;
+    if (yych != 'e')
+      goto yy523;
+  yy837:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy838;
+    if (yych != 'e')
+      goto yy523;
+  yy838:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy839:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy840;
+    if (yych != 'c')
+      goto yy523;
+  yy840:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy841:
+    yych = *++p;
+    if (yych == 'Z')
+      goto yy533;
+    if (yych == 'z')
+      goto yy533;
+    goto yy523;
+  yy842:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy843:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy844:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy847;
+    if (yych == 't')
+      goto yy847;
+    goto yy523;
+  yy845:
+    yych = *++p;
+    if (yych != '2')
+      goto yy523;
+    yych = *++p;
+    if (yych == '3')
+      goto yy533;
+    goto yy523;
+  yy847:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy848;
+    if (yych != 'p')
+      goto yy523;
+  yy848:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy849:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy865;
+    if (yych == 'a')
+      goto yy865;
+    goto yy523;
+  yy850:
+    yych = *++p;
+    if (yych <= 'Z') {
+      if (yych == 'T')
+        goto yy533;
+      if (yych <= 'Y')
+        goto yy523;
+      goto yy856;
+    } else {
+      if (yych <= 't') {
+        if (yych <= 's')
+          goto yy523;
+        goto yy533;
+      } else {
+        if (yych == 'z')
+          goto yy856;
+        goto yy523;
+      }
+    }
+  yy851:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'P')
+        goto yy853;
+      if (yych == 'p')
+        goto yy853;
+      goto yy523;
+    }
+  yy852:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy533;
+    if (yych == 'o')
+      goto yy533;
+    goto yy523;
+  yy853:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy854;
+    if (yych != 'h')
+      goto yy523;
+  yy854:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy855;
+    if (yych != 'e')
+      goto yy523;
+  yy855:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy533;
+    if (yych == 'r')
+      goto yy533;
+    goto yy523;
+  yy856:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy857;
+    if (yych != 'm')
+      goto yy523;
+  yy857:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy858;
+    if (yych != 'o')
+      goto yy523;
+  yy858:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy859;
+    if (yych != 'p')
+      goto yy523;
+  yy859:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy860;
+    if (yych != 'r')
+      goto yy523;
+  yy860:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy861;
+    if (yych != 'o')
+      goto yy523;
+  yy861:
+    yych = *++p;
+    if (yych == 'J')
+      goto yy862;
+    if (yych != 'j')
+      goto yy523;
+  yy862:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy863;
+    if (yych != 'e')
+      goto yy523;
+  yy863:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy864;
+    if (yych != 'c')
+      goto yy523;
+  yy864:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy865:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy866;
+    if (yych != 'l')
+      goto yy523;
+  yy866:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy533;
+    if (yych == 'k')
+      goto yy533;
+    goto yy523;
+  yy867:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'M') {
+        if (yych == 'L')
+          goto yy877;
+        goto yy523;
+      } else {
+        if (yych <= 'N')
+          goto yy878;
+        if (yych <= 'R')
+          goto yy523;
+        goto yy879;
+      }
+    } else {
+      if (yych <= 'm') {
+        if (yych == 'l')
+          goto yy877;
+        goto yy523;
+      } else {
+        if (yych <= 'n')
+          goto yy878;
+        if (yych == 's')
+          goto yy879;
+        goto yy523;
+      }
+    }
+  yy868:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy876;
+    if (yych == 'e')
+      goto yy876;
+    goto yy523;
+  yy869:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy871;
+    if (yych == 'c')
+      goto yy871;
+    goto yy523;
+  yy870:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy871:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy872;
+    if (yych != 'e')
+      goto yy523;
+  yy872:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy873;
+    if (yych != 't')
+      goto yy523;
+  yy873:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy874;
+    if (yych != 'i')
+      goto yy523;
+  yy874:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy875;
+    if (yych != 'm')
+      goto yy523;
+  yy875:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy876:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy533;
+    if (yych == 'd')
+      goto yy533;
+    goto yy523;
+  yy877:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy878:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy880;
+    if (yych == 'g')
+      goto yy880;
+    goto yy523;
+  yy879:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy533;
+    if (yych == 'h')
+      goto yy533;
+    goto yy523;
+  yy880:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy881;
+    if (yych != 'e')
+      goto yy523;
+  yy881:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy533;
+    if (yych == 'r')
+      goto yy533;
+    goto yy523;
+  yy882:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy900;
+    if (yych == 't')
+      goto yy900;
+    goto yy523;
+  yy883:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy884:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy533;
+    if (yych == 'm')
+      goto yy533;
+    goto yy523;
+  yy885:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'P')
+        goto yy533;
+      if (yych <= 'R')
+        goto yy523;
+      goto yy533;
+    } else {
+      if (yych <= 'p') {
+        if (yych <= 'o')
+          goto yy523;
+        goto yy533;
+      } else {
+        if (yych == 's')
+          goto yy533;
+        goto yy523;
+      }
+    }
+  yy886:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy894;
+    if (yych == 'i')
+      goto yy894;
+    goto yy523;
+  yy887:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy893;
+    if (yych == 'a')
+      goto yy893;
+    goto yy523;
+  yy888:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy891;
+    if (yych == 'o')
+      goto yy891;
+    goto yy523;
+  yy889:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy890;
+    if (yych != 'a')
+      goto yy523;
+  yy890:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == ':')
+        goto yy534;
+      goto yy523;
+    } else {
+      if (yych <= 'S')
+        goto yy533;
+      if (yych == 's')
+        goto yy533;
+      goto yy523;
+    }
+  yy891:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy892;
+    if (yych != 'u')
+      goto yy523;
+  yy892:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy893:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy894:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy895;
+    if (yych != 'u')
+      goto yy523;
+  yy895:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy896;
+    if (yych != 'm')
+      goto yy523;
+  yy896:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy897;
+    if (yych != 'x')
+      goto yy523;
+  yy897:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy898;
+    if (yych != 't')
+      goto yy523;
+  yy898:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy899;
+    if (yych != 'r')
+      goto yy523;
+  yy899:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy533;
+    if (yych == 'a')
+      goto yy533;
+    goto yy523;
+  yy900:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy901;
+    if (yych != 'a')
+      goto yy523;
+  yy901:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy902;
+    if (yych != 'c')
+      goto yy523;
+  yy902:
+    yych = *++p;
+    if (yych == 'H')
+      goto yy903;
+    if (yych != 'h')
+      goto yy523;
+  yy903:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy904;
+    if (yych != 'm')
+      goto yy523;
+  yy904:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy905;
+    if (yych != 'e')
+      goto yy523;
+  yy905:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy906;
+    if (yych != 'n')
+      goto yy523;
+  yy906:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy907:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy908:
+    yych = *++p;
+    if (yych <= 'V') {
+      if (yych == 'R')
+        goto yy533;
+      if (yych <= 'U')
+        goto yy523;
+    } else {
+      if (yych <= 'r') {
+        if (yych <= 'q')
+          goto yy523;
+        goto yy533;
+      } else {
+        if (yych != 'v')
+          goto yy523;
+      }
+    }
+    yych = *++p;
+    if (yych == 'A')
+      goto yy910;
+    if (yych != 'a')
+      goto yy523;
+  yy910:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy911;
+    if (yych != 's')
+      goto yy523;
+  yy911:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy912;
+    if (yych != 'c')
+      goto yy523;
+  yy912:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy913;
+    if (yych != 'r')
+      goto yy523;
+  yy913:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy914;
+    if (yych != 'i')
+      goto yy523;
+  yy914:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy915;
+    if (yych != 'p')
+      goto yy523;
+  yy915:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy916:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy533;
+    if (yych == 'b')
+      goto yy533;
+    goto yy523;
+  yy917:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy918:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy925;
+    if (yych == 'n')
+      goto yy925;
+    goto yy523;
+  yy919:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy920:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy924;
+    if (yych == 'c')
+      goto yy924;
+    goto yy523;
+  yy921:
+    yych = *++p;
+    if (yych <= 'V') {
+      if (yych == 'T')
+        goto yy923;
+      if (yych <= 'U')
+        goto yy523;
+      goto yy533;
+    } else {
+      if (yych <= 't') {
+        if (yych <= 's')
+          goto yy523;
+        goto yy923;
+      } else {
+        if (yych == 'v')
+          goto yy533;
+        goto yy523;
+      }
+    }
+  yy922:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy533;
+    if (yych == 'i')
+      goto yy533;
+    goto yy523;
+  yy923:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy533;
+    if (yych == 'a')
+      goto yy533;
+    goto yy523;
+  yy924:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy925:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy926;
+    if (yych != 'a')
+      goto yy523;
+  yy926:
+    yych = *++p;
+    if (yych != '-')
+      goto yy523;
+    yych = *++p;
+    if (yych == 'P')
+      goto yy928;
+    if (yych != 'p')
+      goto yy523;
+  yy928:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy929;
+    if (yych != 'l')
+      goto yy523;
+  yy929:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy930;
+    if (yych != 'a')
+      goto yy523;
+  yy930:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy931;
+    if (yych != 'y')
+      goto yy523;
+  yy931:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych == 'C')
+        goto yy932;
+      if (yych <= 'R')
+        goto yy523;
+      goto yy933;
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'b')
+          goto yy523;
+      } else {
+        if (yych == 's')
+          goto yy933;
+        goto yy523;
+      }
+    }
+  yy932:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy938;
+    if (yych == 'o')
+      goto yy938;
+    goto yy523;
+  yy933:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy934;
+    if (yych != 'i')
+      goto yy523;
+  yy934:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy935;
+    if (yych != 'n')
+      goto yy523;
+  yy935:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy936;
+    if (yych != 'g')
+      goto yy523;
+  yy936:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy937;
+    if (yych != 'l')
+      goto yy523;
+  yy937:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  yy938:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy939;
+    if (yych != 'n')
+      goto yy523;
+  yy939:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy940;
+    if (yych != 't')
+      goto yy523;
+  yy940:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy941;
+    if (yych != 'a')
+      goto yy523;
+  yy941:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy942;
+    if (yych != 'i')
+      goto yy523;
+  yy942:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy943;
+    if (yych != 'n')
+      goto yy523;
+  yy943:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy944;
+    if (yych != 'e')
+      goto yy523;
+  yy944:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy533;
+    if (yych == 'r')
+      goto yy533;
+    goto yy523;
+  yy945:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy533;
+    if (yych == 's')
+      goto yy533;
+    goto yy523;
+  yy946:
+    yych = *++p;
+    if (yych <= 'N') {
+      if (yych <= 'A') {
+        if (yych <= '@')
+          goto yy523;
+        goto yy968;
+      } else {
+        if (yych <= 'L')
+          goto yy523;
+        if (yych <= 'M')
+          goto yy969;
+        goto yy970;
+      }
+    } else {
+      if (yych <= 'l') {
+        if (yych == 'a')
+          goto yy968;
+        goto yy523;
+      } else {
+        if (yych <= 'm')
+          goto yy969;
+        if (yych <= 'n')
+          goto yy970;
+        goto yy523;
+      }
+    }
+  yy947:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy955;
+    if (yych == 'r')
+      goto yy955;
+    goto yy523;
+  yy948:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy952;
+      if (yych <= 'O')
+        goto yy523;
+      goto yy533;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy523;
+        goto yy952;
+      } else {
+        if (yych == 'p')
+          goto yy533;
+        goto yy523;
+      }
+    }
+  yy949:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy951;
+    if (yych == 'i')
+      goto yy951;
+    goto yy523;
+  yy950:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy533;
+    if (yych == 'd')
+      goto yy533;
+    goto yy523;
+  yy951:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy533;
+    if (yych == 'd')
+      goto yy533;
+    goto yy523;
+  yy952:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy953;
+    if (yych != 'l')
+      goto yy523;
+  yy953:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy954;
+    if (yych != 't')
+      goto yy523;
+  yy954:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy533;
+    if (yych == 'o')
+      goto yy533;
+    goto yy523;
+  yy955:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy956;
+    if (yych != 'o')
+      goto yy523;
+  yy956:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy957;
+    if (yych != 'm')
+      goto yy523;
+  yy957:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy958;
+    if (yych != 'e')
+      goto yy523;
+  yy958:
+    yych = *++p;
+    if (yych == '-')
+      goto yy959;
+    if (yych == ':')
+      goto yy534;
+    goto yy523;
+  yy959:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy960;
+    if (yych != 'e')
+      goto yy523;
+  yy960:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy961;
+    if (yych != 'x')
+      goto yy523;
+  yy961:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy962;
+    if (yych != 't')
+      goto yy523;
+  yy962:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy963;
+    if (yych != 'e')
+      goto yy523;
+  yy963:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy964;
+    if (yych != 'n')
+      goto yy523;
+  yy964:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy965;
+    if (yych != 's')
+      goto yy523;
+  yy965:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy966;
+    if (yych != 'i')
+      goto yy523;
+  yy966:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy967;
+    if (yych != 'o')
+      goto yy523;
+  yy967:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy533;
+    if (yych == 'n')
+      goto yy533;
+    goto yy523;
+  yy968:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy533;
+    if (yych == 'p')
+      goto yy533;
+    goto yy523;
+  yy969:
+    yych = *++p;
+    if (yych == '-')
+      goto yy974;
+    goto yy523;
+  yy970:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy971;
+    if (yych != 't')
+      goto yy523;
+  yy971:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy972;
+    if (yych != 'e')
+      goto yy523;
+  yy972:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy973;
+    if (yych != 'n')
+      goto yy523;
+  yy973:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy533;
+    if (yych == 't')
+      goto yy533;
+    goto yy523;
+  yy974:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy975;
+    if (yych != 'e')
+      goto yy523;
+  yy975:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy976;
+    if (yych != 'v')
+      goto yy523;
+  yy976:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy977;
+    if (yych != 'e')
+      goto yy523;
+  yy977:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy978;
+    if (yych != 'n')
+      goto yy523;
+  yy978:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy979;
+    if (yych != 't')
+      goto yy523;
+  yy979:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy980;
+    if (yych != 'b')
+      goto yy523;
+  yy980:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy981;
+    if (yych != 'r')
+      goto yy523;
+  yy981:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy982;
+    if (yych != 'i')
+      goto yy523;
+  yy982:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy983;
+    if (yych != 't')
+      goto yy523;
+  yy983:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy984;
+    if (yych != 'e')
+      goto yy523;
+  yy984:
+    yych = *++p;
+    if (yych != '-')
+      goto yy523;
+    yych = *++p;
+    if (yych == 'A')
+      goto yy986;
+    if (yych != 'a')
+      goto yy523;
+  yy986:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy987;
+    if (yych != 't')
+      goto yy523;
+  yy987:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy988;
+    if (yych != 't')
+      goto yy523;
+  yy988:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy989;
+    if (yych != 'e')
+      goto yy523;
+  yy989:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy990;
+    if (yych != 'n')
+      goto yy523;
+  yy990:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy991;
+    if (yych != 'd')
+      goto yy523;
+  yy991:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy992;
+    if (yych != 'e')
+      goto yy523;
+  yy992:
+    ++p;
+    if ((yych = *p) == 'E')
+      goto yy533;
+    if (yych == 'e')
+      goto yy533;
+    goto yy523;
+  }
+}
+
+// Try to match email autolink after first <, returning num of chars matched.
+bufsize_t _scan_autolink_email(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   128, 0,   128, 128, 128, 128, 128, 0,   0,
+        128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 0,   0,   0,   128, 0,   128, 0,   128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 0,   0,   0,   128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= '?') {
+      if (yych <= ')') {
+        if (yych <= ' ') {
+          if (yych != '\n')
+            goto yy997;
+        } else {
+          if (yych == '"')
+            goto yy997;
+          if (yych <= '\'')
+            goto yy996;
+          goto yy997;
+        }
+      } else {
+        if (yych <= '9') {
+          if (yych == ',')
+            goto yy997;
+          goto yy996;
+        } else {
+          if (yych == '=')
+            goto yy996;
+          if (yych <= '>')
+            goto yy997;
+          goto yy996;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= ']') {
+          if (yych <= '@')
+            goto yy997;
+          if (yych <= 'Z')
+            goto yy996;
+          goto yy997;
+        } else {
+          if (yych <= '~')
+            goto yy996;
+          if (yych <= 0x7F)
+            goto yy997;
+          if (yych >= 0xC2)
+            goto yy998;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy1000;
+          if (yych == 0xED)
+            goto yy1005;
+          goto yy1001;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1002;
+          if (yych <= 0xF3)
+            goto yy1003;
+          if (yych <= 0xF4)
+            goto yy1004;
+        }
+      }
+    }
+  yy995 : { return 0; }
+  yy996:
+    yych = *(marker = ++p);
+    if (yych <= ',') {
+      if (yych <= '"') {
+        if (yych == '!')
+          goto yy1008;
+        goto yy995;
+      } else {
+        if (yych <= '\'')
+          goto yy1008;
+        if (yych <= ')')
+          goto yy995;
+        if (yych <= '+')
+          goto yy1008;
+        goto yy995;
+      }
+    } else {
+      if (yych <= '>') {
+        if (yych <= '9')
+          goto yy1008;
+        if (yych == '=')
+          goto yy1008;
+        goto yy995;
+      } else {
+        if (yych <= 'Z')
+          goto yy1008;
+        if (yych <= ']')
+          goto yy995;
+        if (yych <= '~')
+          goto yy1008;
+        goto yy995;
+      }
+    }
+  yy997:
+    yych = *++p;
+    goto yy995;
+  yy998:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy999;
+    if (yych <= 0xBF)
+      goto yy997;
+  yy999:
+    p = marker;
+    goto yy995;
+  yy1000:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy999;
+    if (yych <= 0xBF)
+      goto yy998;
+    goto yy999;
+  yy1001:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy999;
+    if (yych <= 0xBF)
+      goto yy998;
+    goto yy999;
+  yy1002:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy999;
+    if (yych <= 0xBF)
+      goto yy1001;
+    goto yy999;
+  yy1003:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy999;
+    if (yych <= 0xBF)
+      goto yy1001;
+    goto yy999;
+  yy1004:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy999;
+    if (yych <= 0x8F)
+      goto yy1001;
+    goto yy999;
+  yy1005:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy999;
+    if (yych <= 0x9F)
+      goto yy998;
+    goto yy999;
+  yy1006:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy999;
+      if (yych <= '9')
+        goto yy1009;
+      goto yy999;
+    } else {
+      if (yych <= 'Z')
+        goto yy1009;
+      if (yych <= '`')
+        goto yy999;
+      if (yych <= 'z')
+        goto yy1009;
+      goto yy999;
+    }
+  yy1007:
+    ++p;
+    yych = *p;
+  yy1008:
+    if (yybm[0 + yych] & 128) {
+      goto yy1007;
+    }
+    if (yych <= '>')
+      goto yy999;
+    if (yych <= '@')
+      goto yy1006;
+    goto yy999;
+  yy1009:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1011;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych >= ':')
+          goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1140;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1139;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1139;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1139;
+        goto yy999;
+      }
+    }
+  yy1011:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1140;
+      if (yych <= '/')
+        goto yy999;
+      goto yy1139;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+        goto yy1139;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1139;
+        goto yy999;
+      }
+    }
+  yy1012:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy999;
+      if (yych <= '9')
+        goto yy1015;
+      goto yy999;
+    } else {
+      if (yych <= 'Z')
+        goto yy1015;
+      if (yych <= '`')
+        goto yy999;
+      if (yych <= 'z')
+        goto yy1015;
+      goto yy999;
+    }
+  yy1013:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy1015:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1017;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych >= ':')
+          goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1019;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1018;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1018;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1018;
+        goto yy999;
+      }
+    }
+  yy1017:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1019;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1018:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1021;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1020;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1020;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1020;
+        goto yy999;
+      }
+    }
+  yy1019:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1021;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1020:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1023;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1022;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1022;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1022;
+        goto yy999;
+      }
+    }
+  yy1021:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1023;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1022:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1025;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1024;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1024;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1024;
+        goto yy999;
+      }
+    }
+  yy1023:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1025;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1024:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1027;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1026;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1026;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1026;
+        goto yy999;
+      }
+    }
+  yy1025:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1027;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1026:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1029;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1028;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1028;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1028;
+        goto yy999;
+      }
+    }
+  yy1027:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1029;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1028:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1031;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1030;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1030;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1030;
+        goto yy999;
+      }
+    }
+  yy1029:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1031;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1030:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1033;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1032;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1032;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1032;
+        goto yy999;
+      }
+    }
+  yy1031:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1033;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1032:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1035;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1034;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1034;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1034;
+        goto yy999;
+      }
+    }
+  yy1033:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1035;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1034:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1037;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1036;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1036;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1036;
+        goto yy999;
+      }
+    }
+  yy1035:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1037;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1036:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1039;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1038;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1038;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1038;
+        goto yy999;
+      }
+    }
+  yy1037:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1039;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1038:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1041;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1040;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1040;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1040;
+        goto yy999;
+      }
+    }
+  yy1039:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1041;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1040:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1043;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1042;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1042;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1042;
+        goto yy999;
+      }
+    }
+  yy1041:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1043;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1042:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1045;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1044;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1044;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1044;
+        goto yy999;
+      }
+    }
+  yy1043:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1045;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1044:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1047;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1046;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1046;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1046;
+        goto yy999;
+      }
+    }
+  yy1045:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1047;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1046:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1049;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1048;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1048;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1048;
+        goto yy999;
+      }
+    }
+  yy1047:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1049;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1048:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1051;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1050;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1050;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1050;
+        goto yy999;
+      }
+    }
+  yy1049:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1051;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1050:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1053;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1052;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1052;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1052;
+        goto yy999;
+      }
+    }
+  yy1051:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1053;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1052:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1055;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1054;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1054;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1054;
+        goto yy999;
+      }
+    }
+  yy1053:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1055;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1054:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1057;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1056;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1056;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1056;
+        goto yy999;
+      }
+    }
+  yy1055:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1057;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1056:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1059;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1058;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1058;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1058;
+        goto yy999;
+      }
+    }
+  yy1057:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1059;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1058:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1061;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1060;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1060;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1060;
+        goto yy999;
+      }
+    }
+  yy1059:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1061;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1060:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1063;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1062;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1062;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1062;
+        goto yy999;
+      }
+    }
+  yy1061:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1063;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1062:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1065;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1064;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1064;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1064;
+        goto yy999;
+      }
+    }
+  yy1063:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1065;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1064:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1067;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1066;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1066;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1066;
+        goto yy999;
+      }
+    }
+  yy1065:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1067;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1066:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1069;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1068;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1068;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1068;
+        goto yy999;
+      }
+    }
+  yy1067:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1069;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1068:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1071;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1070;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1070;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1070;
+        goto yy999;
+      }
+    }
+  yy1069:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1071;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1070:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1073;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1072;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1072;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1072;
+        goto yy999;
+      }
+    }
+  yy1071:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1073;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1072:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1075;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1074;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1074;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1074;
+        goto yy999;
+      }
+    }
+  yy1073:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1075;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1074:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1077;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1076;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1076;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1076;
+        goto yy999;
+      }
+    }
+  yy1075:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1077;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1076:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1079;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1078;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1078;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1078;
+        goto yy999;
+      }
+    }
+  yy1077:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1079;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1078:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1081;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1080;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1080;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1080;
+        goto yy999;
+      }
+    }
+  yy1079:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1081;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1080:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1083;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1082;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1082;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1082;
+        goto yy999;
+      }
+    }
+  yy1081:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1083;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1082:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1085;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1084;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1084;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1084;
+        goto yy999;
+      }
+    }
+  yy1083:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1085;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1084:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1087;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1086;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1086;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1086;
+        goto yy999;
+      }
+    }
+  yy1085:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1087;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1086:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1089;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1088;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1088;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1088;
+        goto yy999;
+      }
+    }
+  yy1087:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1089;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1088:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1091;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1090;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1090;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1090;
+        goto yy999;
+      }
+    }
+  yy1089:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1091;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1090:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1093;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1092;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1092;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1092;
+        goto yy999;
+      }
+    }
+  yy1091:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1093;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1092:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1095;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1094;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1094;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1094;
+        goto yy999;
+      }
+    }
+  yy1093:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1095;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1094:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1097;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1096;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1096;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1096;
+        goto yy999;
+      }
+    }
+  yy1095:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1097;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1096:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1099;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1098;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1098;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1098;
+        goto yy999;
+      }
+    }
+  yy1097:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1099;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1098:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1101;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1100;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1100;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1100;
+        goto yy999;
+      }
+    }
+  yy1099:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1101;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1100:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1103;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1102;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1102;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1102;
+        goto yy999;
+      }
+    }
+  yy1101:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1103;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1102:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1105;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1104;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1104;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1104;
+        goto yy999;
+      }
+    }
+  yy1103:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1105;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1104:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1107;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1106;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1106;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1106;
+        goto yy999;
+      }
+    }
+  yy1105:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1107;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1106:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1109;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1108;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1108;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1108;
+        goto yy999;
+      }
+    }
+  yy1107:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1109;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1108:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1111;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1110;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1110;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1110;
+        goto yy999;
+      }
+    }
+  yy1109:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1111;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1110:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1113;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1112;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1112;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1112;
+        goto yy999;
+      }
+    }
+  yy1111:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1113;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1112:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1115;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1114;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1114;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1114;
+        goto yy999;
+      }
+    }
+  yy1113:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1115;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1114:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1117;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1116;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1116;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1116;
+        goto yy999;
+      }
+    }
+  yy1115:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1117;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1116:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1119;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1118;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1118;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1118;
+        goto yy999;
+      }
+    }
+  yy1117:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1119;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1118:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1121;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1120;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1120;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1120;
+        goto yy999;
+      }
+    }
+  yy1119:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1121;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1120:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1123;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1122;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1122;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1122;
+        goto yy999;
+      }
+    }
+  yy1121:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1123;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1122:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1125;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1124;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1124;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1124;
+        goto yy999;
+      }
+    }
+  yy1123:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1125;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1124:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1127;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1126;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1126;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1126;
+        goto yy999;
+      }
+    }
+  yy1125:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1127;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1126:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1129;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1128;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1128;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1128;
+        goto yy999;
+      }
+    }
+  yy1127:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1129;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1128:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1131;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1130;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1130;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1130;
+        goto yy999;
+      }
+    }
+  yy1129:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1131;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1130:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1133;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1132;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1132;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1132;
+        goto yy999;
+      }
+    }
+  yy1131:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1133;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1132:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1135;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1134;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1134;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1134;
+        goto yy999;
+      }
+    }
+  yy1133:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1135;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1134:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1137;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1136;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1136;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1136;
+        goto yy999;
+      }
+    }
+  yy1135:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1137;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1136:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= '-')
+          goto yy999;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1138;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1138;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1138;
+        goto yy999;
+      }
+    }
+  yy1137:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy999;
+      if (yych >= ':')
+        goto yy999;
+    } else {
+      if (yych <= 'Z')
+        goto yy1138;
+      if (yych <= '`')
+        goto yy999;
+      if (yych >= '{')
+        goto yy999;
+    }
+  yy1138:
+    ++p;
+    yych = *p;
+    if (yych == '.')
+      goto yy1012;
+    if (yych == '>')
+      goto yy1013;
+    goto yy999;
+  yy1139:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1142;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1141;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1141;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1141;
+        goto yy999;
+      }
+    }
+  yy1140:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1142;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1141:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1144;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1143;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1143;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1143;
+        goto yy999;
+      }
+    }
+  yy1142:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1144;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1143:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1146;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1145;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1145;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1145;
+        goto yy999;
+      }
+    }
+  yy1144:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1146;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1145:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1148;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1147;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1147;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1147;
+        goto yy999;
+      }
+    }
+  yy1146:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1148;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1147:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1150;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1149;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1149;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1149;
+        goto yy999;
+      }
+    }
+  yy1148:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1150;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1149:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1152;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1151;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1151;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1151;
+        goto yy999;
+      }
+    }
+  yy1150:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1152;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1151:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1154;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1153;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1153;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1153;
+        goto yy999;
+      }
+    }
+  yy1152:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1154;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1153:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1156;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1155;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1155;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1155;
+        goto yy999;
+      }
+    }
+  yy1154:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1156;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1155:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1158;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1157;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1157;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1157;
+        goto yy999;
+      }
+    }
+  yy1156:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1158;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1157:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1160;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1159;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1159;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1159;
+        goto yy999;
+      }
+    }
+  yy1158:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1160;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1159:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1162;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1161;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1161;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1161;
+        goto yy999;
+      }
+    }
+  yy1160:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1162;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1161:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1164;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1163;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1163;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1163;
+        goto yy999;
+      }
+    }
+  yy1162:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1164;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1163:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1166;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1165;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1165;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1165;
+        goto yy999;
+      }
+    }
+  yy1164:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1166;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1165:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1168;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1167;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1167;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1167;
+        goto yy999;
+      }
+    }
+  yy1166:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1168;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1167:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1170;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1169;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1169;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1169;
+        goto yy999;
+      }
+    }
+  yy1168:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1170;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1169:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1172;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1171;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1171;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1171;
+        goto yy999;
+      }
+    }
+  yy1170:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1172;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1171:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1174;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1173;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1173;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1173;
+        goto yy999;
+      }
+    }
+  yy1172:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1174;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1173:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1176;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1175;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1175;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1175;
+        goto yy999;
+      }
+    }
+  yy1174:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1176;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1175:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1178;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1177;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1177;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1177;
+        goto yy999;
+      }
+    }
+  yy1176:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1178;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1177:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1180;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1179;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1179;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1179;
+        goto yy999;
+      }
+    }
+  yy1178:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1180;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1179:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1182;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1181;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1181;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1181;
+        goto yy999;
+      }
+    }
+  yy1180:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1182;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1181:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1184;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1183;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1183;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1183;
+        goto yy999;
+      }
+    }
+  yy1182:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1184;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1183:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1186;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1185;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1185;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1185;
+        goto yy999;
+      }
+    }
+  yy1184:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1186;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1185:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1188;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1187;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1187;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1187;
+        goto yy999;
+      }
+    }
+  yy1186:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1188;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1187:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1190;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1189;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1189;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1189;
+        goto yy999;
+      }
+    }
+  yy1188:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1190;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1189:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1192;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1191;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1191;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1191;
+        goto yy999;
+      }
+    }
+  yy1190:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1192;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1191:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1194;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1193;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1193;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1193;
+        goto yy999;
+      }
+    }
+  yy1192:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1194;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1193:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1196;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1195;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1195;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1195;
+        goto yy999;
+      }
+    }
+  yy1194:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1196;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1195:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1198;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1197;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1197;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1197;
+        goto yy999;
+      }
+    }
+  yy1196:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1198;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1197:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1200;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1199;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1199;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1199;
+        goto yy999;
+      }
+    }
+  yy1198:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1200;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1199:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1202;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1201;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1201;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1201;
+        goto yy999;
+      }
+    }
+  yy1200:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1202;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1201:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1204;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1203;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1203;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1203;
+        goto yy999;
+      }
+    }
+  yy1202:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1204;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1203:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1206;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1205;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1205;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1205;
+        goto yy999;
+      }
+    }
+  yy1204:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1206;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1205:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1208;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1207;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1207;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1207;
+        goto yy999;
+      }
+    }
+  yy1206:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1208;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1207:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1210;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1209;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1209;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1209;
+        goto yy999;
+      }
+    }
+  yy1208:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1210;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1209:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1212;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1211;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1211;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1211;
+        goto yy999;
+      }
+    }
+  yy1210:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1212;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1211:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1214;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1213;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1213;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1213;
+        goto yy999;
+      }
+    }
+  yy1212:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1214;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1213:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1216;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1215;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1215;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1215;
+        goto yy999;
+      }
+    }
+  yy1214:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1216;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1215:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1218;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1217;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1217;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1217;
+        goto yy999;
+      }
+    }
+  yy1216:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1218;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1217:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1220;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1219;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1219;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1219;
+        goto yy999;
+      }
+    }
+  yy1218:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1220;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1219:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1222;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1221;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1221;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1221;
+        goto yy999;
+      }
+    }
+  yy1220:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1222;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1221:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1224;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1223;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1223;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1223;
+        goto yy999;
+      }
+    }
+  yy1222:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1224;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1223:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1226;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1225;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1225;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1225;
+        goto yy999;
+      }
+    }
+  yy1224:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1226;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1225:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1228;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1227;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1227;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1227;
+        goto yy999;
+      }
+    }
+  yy1226:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1228;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1227:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1230;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1229;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1229;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1229;
+        goto yy999;
+      }
+    }
+  yy1228:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1230;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1229:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1232;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1231;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1231;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1231;
+        goto yy999;
+      }
+    }
+  yy1230:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1232;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1231:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1234;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1233;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1233;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1233;
+        goto yy999;
+      }
+    }
+  yy1232:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1234;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1233:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1236;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1235;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1235;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1235;
+        goto yy999;
+      }
+    }
+  yy1234:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1236;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1235:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1238;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1237;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1237;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1237;
+        goto yy999;
+      }
+    }
+  yy1236:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1238;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1237:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1240;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1239;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1239;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1239;
+        goto yy999;
+      }
+    }
+  yy1238:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1240;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1239:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1242;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1241;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1241;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1241;
+        goto yy999;
+      }
+    }
+  yy1240:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1242;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1241:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1244;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1243;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1243;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1243;
+        goto yy999;
+      }
+    }
+  yy1242:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1244;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1243:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1246;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1245;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1245;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1245;
+        goto yy999;
+      }
+    }
+  yy1244:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1246;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1245:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1248;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1247;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1247;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1247;
+        goto yy999;
+      }
+    }
+  yy1246:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1248;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1247:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1250;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1249;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1249;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1249;
+        goto yy999;
+      }
+    }
+  yy1248:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1250;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1249:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1252;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1251;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1251;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1251;
+        goto yy999;
+      }
+    }
+  yy1250:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1252;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1251:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1254;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1253;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1253;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1253;
+        goto yy999;
+      }
+    }
+  yy1252:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1254;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1253:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1256;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1255;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1255;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1255;
+        goto yy999;
+      }
+    }
+  yy1254:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1256;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1255:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy999;
+        if (yych <= '-')
+          goto yy1258;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1257;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1257;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1257;
+        goto yy999;
+      }
+    }
+  yy1256:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy1258;
+      if (yych <= '/')
+        goto yy999;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy999;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych >= '{')
+          goto yy999;
+      }
+    }
+  yy1257:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= '-')
+          goto yy999;
+        goto yy1012;
+      } else {
+        if (yych <= '/')
+          goto yy999;
+        if (yych <= '9')
+          goto yy1138;
+        goto yy999;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1013;
+        if (yych <= '@')
+          goto yy999;
+        goto yy1138;
+      } else {
+        if (yych <= '`')
+          goto yy999;
+        if (yych <= 'z')
+          goto yy1138;
+        goto yy999;
+      }
+    }
+  yy1258:
+    ++p;
+    if ((yych = *p) <= '@') {
+      if (yych <= '/')
+        goto yy999;
+      if (yych <= '9')
+        goto yy1138;
+      goto yy999;
+    } else {
+      if (yych <= 'Z')
+        goto yy1138;
+      if (yych <= '`')
+        goto yy999;
+      if (yych <= 'z')
+        goto yy1138;
+      goto yy999;
+    }
+  }
+}
+
+// Try to match an HTML tag after first <, returning num of chars matched.
+bufsize_t _scan_html_tag(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        /* table 1 .. 8: 0 */
+        0,   230, 230, 230, 230, 230, 230, 230, 230, 199, 199, 199, 199, 199,
+        230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
+        230, 230, 230, 230, 199, 230, 70,  230, 230, 230, 230, 134, 230, 230,
+        230, 230, 230, 254, 246, 230, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 246, 230, 198, 198, 196, 230, 230, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 230, 230, 226, 230, 246, 198, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
+        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 230, 230, 230,
+        230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+        /* table 9 .. 11: 256 */
+        0,   160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 32,  160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 128, 160, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= '`') {
+      if (yych <= '.') {
+        if (yych <= '\n') {
+          if (yych <= '\t')
+            goto yy1266;
+        } else {
+          if (yych == '!')
+            goto yy1264;
+          goto yy1266;
+        }
+      } else {
+        if (yych <= '?') {
+          if (yych <= '/')
+            goto yy1263;
+          if (yych <= '>')
+            goto yy1266;
+          goto yy1265;
+        } else {
+          if (yych <= '@')
+            goto yy1266;
+          if (yych <= 'Z')
+            goto yy1262;
+          goto yy1266;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 'z')
+            goto yy1262;
+          if (yych <= 0x7F)
+            goto yy1266;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1267;
+          if (yych <= 0xE0)
+            goto yy1269;
+          goto yy1270;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1274;
+          if (yych <= 0xEF)
+            goto yy1270;
+          goto yy1271;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1272;
+          if (yych <= 0xF4)
+            goto yy1273;
+        }
+      }
+    }
+  yy1261 : { return 0; }
+  yy1262:
+    yych = *(marker = ++p);
+    if (yych <= '/') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy1261;
+        if (yych <= '\r')
+          goto yy1366;
+        if (yych <= 0x1F)
+          goto yy1261;
+        goto yy1366;
+      } else {
+        if (yych == '-')
+          goto yy1364;
+        if (yych <= '.')
+          goto yy1261;
+        goto yy1368;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych <= '9')
+          goto yy1364;
+        if (yych == '>')
+          goto yy1285;
+        goto yy1261;
+      } else {
+        if (yych <= 'Z')
+          goto yy1364;
+        if (yych <= '`')
+          goto yy1261;
+        if (yych <= 'z')
+          goto yy1364;
+        goto yy1261;
+      }
+    }
+  yy1263:
+    yych = *(marker = ++p);
+    if (yych <= '@')
+      goto yy1261;
+    if (yych <= 'Z')
+      goto yy1360;
+    if (yych <= '`')
+      goto yy1261;
+    if (yych <= 'z')
+      goto yy1360;
+    goto yy1261;
+  yy1264:
+    yych = *(marker = ++p);
+    if (yybm[256 + yych] & 64) {
+      goto yy1295;
+    }
+    if (yych == '-')
+      goto yy1297;
+    if (yych <= '@')
+      goto yy1261;
+    if (yych <= '[')
+      goto yy1294;
+    goto yy1261;
+  yy1265:
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy1261;
+    if (yych <= 0x7F)
+      goto yy1276;
+    if (yych <= 0xC1)
+      goto yy1261;
+    if (yych <= 0xF4)
+      goto yy1276;
+    goto yy1261;
+  yy1266:
+    yych = *++p;
+    goto yy1261;
+  yy1267:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1266;
+  yy1268:
+    p = marker;
+    goto yy1261;
+  yy1269:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1267;
+    goto yy1268;
+  yy1270:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1267;
+    goto yy1268;
+  yy1271:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1270;
+    goto yy1268;
+  yy1272:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1270;
+    goto yy1268;
+  yy1273:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1270;
+    goto yy1268;
+  yy1274:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1267;
+    goto yy1268;
+  yy1275:
+    ++p;
+    yych = *p;
+  yy1276:
+    if (yybm[256 + yych] & 32) {
+      goto yy1275;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= '?')
+          goto yy1284;
+        goto yy1268;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1277;
+        if (yych <= 0xE0)
+          goto yy1278;
+        goto yy1279;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1283;
+        if (yych <= 0xEF)
+          goto yy1279;
+        goto yy1280;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1281;
+        if (yych <= 0xF4)
+          goto yy1282;
+        goto yy1268;
+      }
+    }
+  yy1277:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1275;
+    goto yy1268;
+  yy1278:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1277;
+    goto yy1268;
+  yy1279:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1277;
+    goto yy1268;
+  yy1280:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1279;
+    goto yy1268;
+  yy1281:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1279;
+    goto yy1268;
+  yy1282:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1279;
+    goto yy1268;
+  yy1283:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1277;
+    goto yy1268;
+  yy1284:
+    ++p;
+    yych = *p;
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= '=')
+          goto yy1275;
+      } else {
+        if (yych <= 0x7F)
+          goto yy1275;
+        if (yych <= 0xC1)
+          goto yy1268;
+        if (yych <= 0xDF)
+          goto yy1287;
+        goto yy1288;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1293;
+        goto yy1289;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1290;
+        if (yych <= 0xF3)
+          goto yy1291;
+        if (yych <= 0xF4)
+          goto yy1292;
+        goto yy1268;
+      }
+    }
+  yy1285:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy1287:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1275;
+    goto yy1268;
+  yy1288:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1287;
+    goto yy1268;
+  yy1289:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1287;
+    goto yy1268;
+  yy1290:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1289;
+    goto yy1268;
+  yy1291:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1289;
+    goto yy1268;
+  yy1292:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1289;
+    goto yy1268;
+  yy1293:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1287;
+    goto yy1268;
+  yy1294:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1330;
+    if (yych == 'c')
+      goto yy1330;
+    goto yy1268;
+  yy1295:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 1) {
+      goto yy1319;
+    }
+    if (yych <= '@')
+      goto yy1268;
+    if (yych <= 'Z')
+      goto yy1295;
+    goto yy1268;
+  yy1297:
+    yych = *++p;
+    if (yych != '-')
+      goto yy1268;
+    yych = *++p;
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych != '-')
+          goto yy1301;
+      } else {
+        if (yych <= '>')
+          goto yy1268;
+        if (yych <= 0xC1)
+          goto yy1301;
+        if (yych <= 0xDF)
+          goto yy1302;
+        goto yy1303;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1308;
+        goto yy1304;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1305;
+        if (yych <= 0xF3)
+          goto yy1306;
+        if (yych <= 0xF4)
+          goto yy1307;
+        goto yy1301;
+      }
+    }
+    yych = *++p;
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych == '-')
+          goto yy1318;
+        goto yy1301;
+      } else {
+        if (yych <= '>')
+          goto yy1268;
+        if (yych <= 0xC1)
+          goto yy1301;
+        if (yych <= 0xDF)
+          goto yy1302;
+        goto yy1303;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1308;
+        goto yy1304;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1305;
+        if (yych <= 0xF3)
+          goto yy1306;
+        if (yych <= 0xF4)
+          goto yy1307;
+        goto yy1301;
+      }
+    }
+  yy1300:
+    ++p;
+    yych = *p;
+  yy1301:
+    if (yybm[256 + yych] & 128) {
+      goto yy1300;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= '-')
+          goto yy1309;
+        goto yy1268;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1310;
+        if (yych <= 0xE0)
+          goto yy1311;
+        goto yy1312;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1316;
+        if (yych <= 0xEF)
+          goto yy1312;
+        goto yy1313;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1314;
+        if (yych <= 0xF4)
+          goto yy1315;
+        goto yy1268;
+      }
+    }
+  yy1302:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1300;
+    goto yy1268;
+  yy1303:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1302;
+    goto yy1268;
+  yy1304:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1302;
+    goto yy1268;
+  yy1305:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1304;
+    goto yy1268;
+  yy1306:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1304;
+    goto yy1268;
+  yy1307:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1304;
+    goto yy1268;
+  yy1308:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1302;
+    goto yy1268;
+  yy1309:
+    ++p;
+    yych = *p;
+    if (yybm[256 + yych] & 128) {
+      goto yy1300;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= '-')
+          goto yy1317;
+        goto yy1268;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1310;
+        if (yych <= 0xE0)
+          goto yy1311;
+        goto yy1312;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1316;
+        if (yych <= 0xEF)
+          goto yy1312;
+        goto yy1313;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1314;
+        if (yych <= 0xF4)
+          goto yy1315;
+        goto yy1268;
+      }
+    }
+  yy1310:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1300;
+    goto yy1268;
+  yy1311:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1310;
+    goto yy1268;
+  yy1312:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1310;
+    goto yy1268;
+  yy1313:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1312;
+    goto yy1268;
+  yy1314:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1312;
+    goto yy1268;
+  yy1315:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1312;
+    goto yy1268;
+  yy1316:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1310;
+    goto yy1268;
+  yy1317:
+    yych = *++p;
+    if (yych == '>')
+      goto yy1285;
+    goto yy1268;
+  yy1318:
+    yych = *++p;
+    if (yych == '>')
+      goto yy1285;
+    goto yy1268;
+  yy1319:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 1) {
+      goto yy1319;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych >= '>')
+          goto yy1285;
+      } else {
+        if (yych <= 0x7F)
+          goto yy1321;
+        if (yych <= 0xC1)
+          goto yy1268;
+        if (yych <= 0xDF)
+          goto yy1323;
+        goto yy1324;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1329;
+        goto yy1325;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1326;
+        if (yych <= 0xF3)
+          goto yy1327;
+        if (yych <= 0xF4)
+          goto yy1328;
+        goto yy1268;
+      }
+    }
+  yy1321:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 2) {
+      goto yy1321;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= '>')
+          goto yy1285;
+        goto yy1268;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1323;
+        if (yych <= 0xE0)
+          goto yy1324;
+        goto yy1325;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1329;
+        if (yych <= 0xEF)
+          goto yy1325;
+        goto yy1326;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1327;
+        if (yych <= 0xF4)
+          goto yy1328;
+        goto yy1268;
+      }
+    }
+  yy1323:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1321;
+    goto yy1268;
+  yy1324:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1323;
+    goto yy1268;
+  yy1325:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1323;
+    goto yy1268;
+  yy1326:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1325;
+    goto yy1268;
+  yy1327:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1325;
+    goto yy1268;
+  yy1328:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1325;
+    goto yy1268;
+  yy1329:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1323;
+    goto yy1268;
+  yy1330:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1331;
+    if (yych != 'd')
+      goto yy1268;
+  yy1331:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1332;
+    if (yych != 'a')
+      goto yy1268;
+  yy1332:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1333;
+    if (yych != 't')
+      goto yy1268;
+  yy1333:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1334;
+    if (yych != 'a')
+      goto yy1268;
+  yy1334:
+    yych = *++p;
+    if (yych != '[')
+      goto yy1268;
+  yy1335:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 4) {
+      goto yy1335;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= ']')
+          goto yy1344;
+        goto yy1268;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1337;
+        if (yych <= 0xE0)
+          goto yy1338;
+        goto yy1339;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1343;
+        if (yych <= 0xEF)
+          goto yy1339;
+        goto yy1340;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1341;
+        if (yych <= 0xF4)
+          goto yy1342;
+        goto yy1268;
+      }
+    }
+  yy1337:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1335;
+    goto yy1268;
+  yy1338:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1337;
+    goto yy1268;
+  yy1339:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1337;
+    goto yy1268;
+  yy1340:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1339;
+    goto yy1268;
+  yy1341:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1339;
+    goto yy1268;
+  yy1342:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1339;
+    goto yy1268;
+  yy1343:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1337;
+    goto yy1268;
+  yy1344:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 4) {
+      goto yy1335;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych >= '^')
+          goto yy1268;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1346;
+        if (yych <= 0xE0)
+          goto yy1347;
+        goto yy1348;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1352;
+        if (yych <= 0xEF)
+          goto yy1348;
+        goto yy1349;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1350;
+        if (yych <= 0xF4)
+          goto yy1351;
+        goto yy1268;
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= '=')
+          goto yy1335;
+        goto yy1285;
+      } else {
+        if (yych <= 0x7F)
+          goto yy1335;
+        if (yych <= 0xC1)
+          goto yy1268;
+        if (yych <= 0xDF)
+          goto yy1353;
+        goto yy1354;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1359;
+        goto yy1355;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1356;
+        if (yych <= 0xF3)
+          goto yy1357;
+        if (yych <= 0xF4)
+          goto yy1358;
+        goto yy1268;
+      }
+    }
+  yy1346:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1335;
+    goto yy1268;
+  yy1347:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1346;
+    goto yy1268;
+  yy1348:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1346;
+    goto yy1268;
+  yy1349:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1348;
+    goto yy1268;
+  yy1350:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1348;
+    goto yy1268;
+  yy1351:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1348;
+    goto yy1268;
+  yy1352:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1346;
+    goto yy1268;
+  yy1353:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1335;
+    goto yy1268;
+  yy1354:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1353;
+    goto yy1268;
+  yy1355:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1353;
+    goto yy1268;
+  yy1356:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1355;
+    goto yy1268;
+  yy1357:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1355;
+    goto yy1268;
+  yy1358:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1355;
+    goto yy1268;
+  yy1359:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1353;
+    goto yy1268;
+  yy1360:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 8) {
+      goto yy1360;
+    }
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy1268;
+      if (yych >= 0x0E)
+        goto yy1268;
+    } else {
+      if (yych <= ' ')
+        goto yy1362;
+      if (yych == '>')
+        goto yy1285;
+      goto yy1268;
+    }
+  yy1362:
+    ++p;
+    yych = *p;
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy1268;
+      if (yych <= '\r')
+        goto yy1362;
+      goto yy1268;
+    } else {
+      if (yych <= ' ')
+        goto yy1362;
+      if (yych == '>')
+        goto yy1285;
+      goto yy1268;
+    }
+  yy1364:
+    ++p;
+    yych = *p;
+    if (yych <= '/') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy1268;
+        if (yych <= '\r')
+          goto yy1366;
+        if (yych <= 0x1F)
+          goto yy1268;
+      } else {
+        if (yych == '-')
+          goto yy1364;
+        if (yych <= '.')
+          goto yy1268;
+        goto yy1368;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych <= '9')
+          goto yy1364;
+        if (yych == '>')
+          goto yy1285;
+        goto yy1268;
+      } else {
+        if (yych <= 'Z')
+          goto yy1364;
+        if (yych <= '`')
+          goto yy1268;
+        if (yych <= 'z')
+          goto yy1364;
+        goto yy1268;
+      }
+    }
+  yy1366:
+    ++p;
+    yych = *p;
+    if (yych <= ':') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy1268;
+        if (yych <= '\r')
+          goto yy1366;
+        if (yych <= 0x1F)
+          goto yy1268;
+        goto yy1366;
+      } else {
+        if (yych == '/')
+          goto yy1368;
+        if (yych <= '9')
+          goto yy1268;
+        goto yy1369;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych == '>')
+          goto yy1285;
+        if (yych <= '@')
+          goto yy1268;
+        goto yy1369;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy1268;
+          goto yy1369;
+        } else {
+          if (yych <= '`')
+            goto yy1268;
+          if (yych <= 'z')
+            goto yy1369;
+          goto yy1268;
+        }
+      }
+    }
+  yy1368:
+    yych = *++p;
+    if (yych == '>')
+      goto yy1285;
+    goto yy1268;
+  yy1369:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 16) {
+      goto yy1369;
+    }
+    if (yych <= ',') {
+      if (yych <= '\r') {
+        if (yych <= 0x08)
+          goto yy1268;
+      } else {
+        if (yych != ' ')
+          goto yy1268;
+      }
+    } else {
+      if (yych <= '<') {
+        if (yych <= '/')
+          goto yy1368;
+        goto yy1268;
+      } else {
+        if (yych <= '=')
+          goto yy1373;
+        if (yych <= '>')
+          goto yy1285;
+        goto yy1268;
+      }
+    }
+  yy1371:
+    ++p;
+    yych = *p;
+    if (yych <= '<') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy1268;
+        if (yych <= '\r')
+          goto yy1371;
+        if (yych <= 0x1F)
+          goto yy1268;
+        goto yy1371;
+      } else {
+        if (yych <= '/') {
+          if (yych <= '.')
+            goto yy1268;
+          goto yy1368;
+        } else {
+          if (yych == ':')
+            goto yy1369;
+          goto yy1268;
+        }
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '=')
+          goto yy1373;
+        if (yych <= '>')
+          goto yy1285;
+        if (yych <= '@')
+          goto yy1268;
+        goto yy1369;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy1268;
+          goto yy1369;
+        } else {
+          if (yych <= '`')
+            goto yy1268;
+          if (yych <= 'z')
+            goto yy1369;
+          goto yy1268;
+        }
+      }
+    }
+  yy1373:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1375;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '"') {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych >= '!')
+          goto yy1386;
+      } else {
+        if (yych <= '\'')
+          goto yy1384;
+        if (yych <= 0xC1)
+          goto yy1268;
+        if (yych <= 0xDF)
+          goto yy1377;
+        goto yy1378;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1383;
+        goto yy1379;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1380;
+        if (yych <= 0xF3)
+          goto yy1381;
+        if (yych <= 0xF4)
+          goto yy1382;
+        goto yy1268;
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1375;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '\'') {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= ' ')
+          goto yy1409;
+        if (yych <= '"')
+          goto yy1386;
+        goto yy1384;
+      } else {
+        if (yych == '>')
+          goto yy1285;
+        if (yych <= 0xC1)
+          goto yy1268;
+        goto yy1377;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1378;
+        if (yych == 0xED)
+          goto yy1383;
+        goto yy1379;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1380;
+        if (yych <= 0xF3)
+          goto yy1381;
+        if (yych <= 0xF4)
+          goto yy1382;
+        goto yy1268;
+      }
+    }
+  yy1375:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1375;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= ' ')
+          goto yy1403;
+        goto yy1268;
+      } else {
+        if (yych <= '>')
+          goto yy1285;
+        if (yych <= 0xC1)
+          goto yy1268;
+        if (yych >= 0xE0)
+          goto yy1378;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1383;
+        goto yy1379;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1380;
+        if (yych <= 0xF3)
+          goto yy1381;
+        if (yych <= 0xF4)
+          goto yy1382;
+        goto yy1268;
+      }
+    }
+  yy1377:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1375;
+    goto yy1268;
+  yy1378:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1377;
+    goto yy1268;
+  yy1379:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1377;
+    goto yy1268;
+  yy1380:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1379;
+    goto yy1268;
+  yy1381:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1379;
+    goto yy1268;
+  yy1382:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1379;
+    goto yy1268;
+  yy1383:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1377;
+    goto yy1268;
+  yy1384:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1384;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= '\'')
+          goto yy1395;
+        goto yy1268;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1396;
+        if (yych <= 0xE0)
+          goto yy1397;
+        goto yy1398;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1402;
+        if (yych <= 0xEF)
+          goto yy1398;
+        goto yy1399;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1400;
+        if (yych <= 0xF4)
+          goto yy1401;
+        goto yy1268;
+      }
+    }
+  yy1386:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1386;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1268;
+        if (yych <= '"')
+          goto yy1395;
+        goto yy1268;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1388;
+        if (yych <= 0xE0)
+          goto yy1389;
+        goto yy1390;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1394;
+        if (yych <= 0xEF)
+          goto yy1390;
+        goto yy1391;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1392;
+        if (yych <= 0xF4)
+          goto yy1393;
+        goto yy1268;
+      }
+    }
+  yy1388:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1386;
+    goto yy1268;
+  yy1389:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1388;
+    goto yy1268;
+  yy1390:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1388;
+    goto yy1268;
+  yy1391:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1390;
+    goto yy1268;
+  yy1392:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1390;
+    goto yy1268;
+  yy1393:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1390;
+    goto yy1268;
+  yy1394:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1388;
+    goto yy1268;
+  yy1395:
+    ++p;
+    yych = *p;
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy1268;
+      if (yych <= '\r')
+        goto yy1366;
+      if (yych <= 0x1F)
+        goto yy1268;
+      goto yy1366;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy1268;
+        goto yy1368;
+      } else {
+        if (yych == '>')
+          goto yy1285;
+        goto yy1268;
+      }
+    }
+  yy1396:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1384;
+    goto yy1268;
+  yy1397:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1396;
+    goto yy1268;
+  yy1398:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1396;
+    goto yy1268;
+  yy1399:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1398;
+    goto yy1268;
+  yy1400:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0xBF)
+      goto yy1398;
+    goto yy1268;
+  yy1401:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x8F)
+      goto yy1398;
+    goto yy1268;
+  yy1402:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1268;
+    if (yych <= 0x9F)
+      goto yy1396;
+    goto yy1268;
+  yy1403:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '"') {
+        if (yych <= '\r') {
+          if (yych <= 0x00)
+            goto yy1268;
+          if (yych <= 0x08)
+            goto yy1375;
+          goto yy1403;
+        } else {
+          if (yych == ' ')
+            goto yy1403;
+          if (yych <= '!')
+            goto yy1375;
+          goto yy1268;
+        }
+      } else {
+        if (yych <= ':') {
+          if (yych == '\'')
+            goto yy1268;
+          if (yych <= '9')
+            goto yy1375;
+        } else {
+          if (yych <= ';')
+            goto yy1375;
+          if (yych <= '=')
+            goto yy1268;
+          if (yych <= '>')
+            goto yy1285;
+          goto yy1375;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy1405;
+          if (yych <= '^')
+            goto yy1375;
+          if (yych >= '`')
+            goto yy1268;
+        } else {
+          if (yych <= 'z')
+            goto yy1405;
+          if (yych <= 0x7F)
+            goto yy1375;
+          if (yych <= 0xC1)
+            goto yy1268;
+          goto yy1377;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy1378;
+          if (yych == 0xED)
+            goto yy1383;
+          goto yy1379;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1380;
+          if (yych <= 0xF3)
+            goto yy1381;
+          if (yych <= 0xF4)
+            goto yy1382;
+          goto yy1268;
+        }
+      }
+    }
+  yy1405:
+    ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= '&') {
+        if (yych <= 0x1F) {
+          if (yych <= 0x00)
+            goto yy1268;
+          if (yych <= 0x08)
+            goto yy1375;
+          if (yych >= 0x0E)
+            goto yy1375;
+        } else {
+          if (yych <= ' ')
+            goto yy1407;
+          if (yych == '"')
+            goto yy1268;
+          goto yy1375;
+        }
+      } else {
+        if (yych <= '/') {
+          if (yych <= '\'')
+            goto yy1268;
+          if (yych <= ',')
+            goto yy1375;
+          if (yych <= '.')
+            goto yy1405;
+          goto yy1375;
+        } else {
+          if (yych <= ';') {
+            if (yych <= ':')
+              goto yy1405;
+            goto yy1375;
+          } else {
+            if (yych <= '<')
+              goto yy1268;
+            if (yych <= '=')
+              goto yy1373;
+            goto yy1285;
+          }
+        }
+      }
+    } else {
+      if (yych <= 0xC1) {
+        if (yych <= '_') {
+          if (yych <= '@')
+            goto yy1375;
+          if (yych <= 'Z')
+            goto yy1405;
+          if (yych <= '^')
+            goto yy1375;
+          goto yy1405;
+        } else {
+          if (yych <= '`')
+            goto yy1268;
+          if (yych <= 'z')
+            goto yy1405;
+          if (yych <= 0x7F)
+            goto yy1375;
+          goto yy1268;
+        }
+      } else {
+        if (yych <= 0xED) {
+          if (yych <= 0xDF)
+            goto yy1377;
+          if (yych <= 0xE0)
+            goto yy1378;
+          if (yych <= 0xEC)
+            goto yy1379;
+          goto yy1383;
+        } else {
+          if (yych <= 0xF0) {
+            if (yych <= 0xEF)
+              goto yy1379;
+            goto yy1380;
+          } else {
+            if (yych <= 0xF3)
+              goto yy1381;
+            if (yych <= 0xF4)
+              goto yy1382;
+            goto yy1268;
+          }
+        }
+      }
+    }
+  yy1407:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '&') {
+        if (yych <= 0x1F) {
+          if (yych <= 0x00)
+            goto yy1268;
+          if (yych <= 0x08)
+            goto yy1375;
+          if (yych <= '\r')
+            goto yy1407;
+          goto yy1375;
+        } else {
+          if (yych <= ' ')
+            goto yy1407;
+          if (yych == '"')
+            goto yy1268;
+          goto yy1375;
+        }
+      } else {
+        if (yych <= ';') {
+          if (yych <= '\'')
+            goto yy1268;
+          if (yych == ':')
+            goto yy1405;
+          goto yy1375;
+        } else {
+          if (yych <= '<')
+            goto yy1268;
+          if (yych <= '=')
+            goto yy1373;
+          if (yych <= '>')
+            goto yy1285;
+          goto yy1375;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy1405;
+          if (yych <= '^')
+            goto yy1375;
+          if (yych <= '_')
+            goto yy1405;
+          goto yy1268;
+        } else {
+          if (yych <= 'z')
+            goto yy1405;
+          if (yych <= 0x7F)
+            goto yy1375;
+          if (yych <= 0xC1)
+            goto yy1268;
+          goto yy1377;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy1378;
+          if (yych == 0xED)
+            goto yy1383;
+          goto yy1379;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1380;
+          if (yych <= 0xF3)
+            goto yy1381;
+          if (yych <= 0xF4)
+            goto yy1382;
+          goto yy1268;
+        }
+      }
+    }
+  yy1409:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '"') {
+        if (yych <= '\r') {
+          if (yych <= 0x00)
+            goto yy1268;
+          if (yych <= 0x08)
+            goto yy1375;
+          goto yy1409;
+        } else {
+          if (yych == ' ')
+            goto yy1409;
+          if (yych <= '!')
+            goto yy1375;
+          goto yy1386;
+        }
+      } else {
+        if (yych <= ':') {
+          if (yych == '\'')
+            goto yy1384;
+          if (yych <= '9')
+            goto yy1375;
+          goto yy1405;
+        } else {
+          if (yych <= ';')
+            goto yy1375;
+          if (yych <= '=')
+            goto yy1268;
+          if (yych <= '>')
+            goto yy1285;
+          goto yy1375;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy1405;
+          if (yych <= '^')
+            goto yy1375;
+          if (yych <= '_')
+            goto yy1405;
+          goto yy1268;
+        } else {
+          if (yych <= 'z')
+            goto yy1405;
+          if (yych <= 0x7F)
+            goto yy1375;
+          if (yych <= 0xC1)
+            goto yy1268;
+          goto yy1377;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy1378;
+          if (yych == 0xED)
+            goto yy1383;
+          goto yy1379;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1380;
+          if (yych <= 0xF3)
+            goto yy1381;
+          if (yych <= 0xF4)
+            goto yy1382;
+          goto yy1268;
+        }
+      }
+    }
+  }
+}
+
+// Try to match an HTML block tag start line, returning
+// an integer code for the type of block (1-6, matching the spec).
+// #7 is handled by a separate function, below.
+bufsize_t _scan_html_block_start(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+
+  {
+    unsigned char yych;
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= ';') {
+        if (yych != '\n')
+          goto yy1415;
+      } else {
+        if (yych <= '<')
+          goto yy1414;
+        if (yych <= 0x7F)
+          goto yy1415;
+        if (yych >= 0xC2)
+          goto yy1416;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1418;
+        if (yych == 0xED)
+          goto yy1423;
+        goto yy1419;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1420;
+        if (yych <= 0xF3)
+          goto yy1421;
+        if (yych <= 0xF4)
+          goto yy1422;
+      }
+    }
+  yy1413 : { return 0; }
+  yy1414:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case '!':
+      goto yy1440;
+    case '/':
+      goto yy1424;
+    case '?':
+      goto yy1441;
+    case 'A':
+    case 'a':
+      goto yy1426;
+    case 'B':
+    case 'b':
+      goto yy1427;
+    case 'C':
+    case 'c':
+      goto yy1428;
+    case 'D':
+    case 'd':
+      goto yy1429;
+    case 'F':
+    case 'f':
+      goto yy1430;
+    case 'H':
+    case 'h':
+      goto yy1431;
+    case 'I':
+    case 'i':
+      goto yy1432;
+    case 'L':
+    case 'l':
+      goto yy1433;
+    case 'M':
+    case 'm':
+      goto yy1434;
+    case 'N':
+    case 'n':
+      goto yy1435;
+    case 'O':
+    case 'o':
+      goto yy1436;
+    case 'P':
+    case 'p':
+      goto yy1425;
+    case 'S':
+    case 's':
+      goto yy1437;
+    case 'T':
+    case 't':
+      goto yy1438;
+    case 'U':
+    case 'u':
+      goto yy1439;
+    default:
+      goto yy1413;
+    }
+  yy1415:
+    yych = *++p;
+    goto yy1413;
+  yy1416:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1417;
+    if (yych <= 0xBF)
+      goto yy1415;
+  yy1417:
+    p = marker;
+    goto yy1413;
+  yy1418:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1417;
+    if (yych <= 0xBF)
+      goto yy1416;
+    goto yy1417;
+  yy1419:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1417;
+    if (yych <= 0xBF)
+      goto yy1416;
+    goto yy1417;
+  yy1420:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1417;
+    if (yych <= 0xBF)
+      goto yy1419;
+    goto yy1417;
+  yy1421:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1417;
+    if (yych <= 0xBF)
+      goto yy1419;
+    goto yy1417;
+  yy1422:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1417;
+    if (yych <= 0x8F)
+      goto yy1419;
+    goto yy1417;
+  yy1423:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1417;
+    if (yych <= 0x9F)
+      goto yy1416;
+    goto yy1417;
+  yy1424:
+    yych = *++p;
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy1426;
+    case 'B':
+    case 'b':
+      goto yy1427;
+    case 'C':
+    case 'c':
+      goto yy1428;
+    case 'D':
+    case 'd':
+      goto yy1429;
+    case 'F':
+    case 'f':
+      goto yy1430;
+    case 'H':
+    case 'h':
+      goto yy1431;
+    case 'I':
+    case 'i':
+      goto yy1432;
+    case 'L':
+    case 'l':
+      goto yy1433;
+    case 'M':
+    case 'm':
+      goto yy1434;
+    case 'N':
+    case 'n':
+      goto yy1435;
+    case 'O':
+    case 'o':
+      goto yy1436;
+    case 'P':
+    case 'p':
+      goto yy1625;
+    case 'S':
+    case 's':
+      goto yy1626;
+    case 'T':
+    case 't':
+      goto yy1438;
+    case 'U':
+    case 'u':
+      goto yy1439;
+    default:
+      goto yy1417;
+    }
+  yy1425:
+    yych = *++p;
+    if (yych <= '>') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        if (yych <= 0x1F)
+          goto yy1417;
+        goto yy1457;
+      } else {
+        if (yych == '/')
+          goto yy1459;
+        if (yych <= '=')
+          goto yy1417;
+        goto yy1457;
+      }
+    } else {
+      if (yych <= 'R') {
+        if (yych == 'A')
+          goto yy1622;
+        if (yych <= 'Q')
+          goto yy1417;
+        goto yy1621;
+      } else {
+        if (yych <= 'a') {
+          if (yych <= '`')
+            goto yy1417;
+          goto yy1622;
+        } else {
+          if (yych == 'r')
+            goto yy1621;
+          goto yy1417;
+        }
+      }
+    }
+  yy1426:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'D') {
+        if (yych <= 'C')
+          goto yy1417;
+        goto yy1610;
+      } else {
+        if (yych <= 'Q')
+          goto yy1417;
+        if (yych <= 'R')
+          goto yy1609;
+        goto yy1608;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych == 'd')
+          goto yy1610;
+        goto yy1417;
+      } else {
+        if (yych <= 'r')
+          goto yy1609;
+        if (yych <= 's')
+          goto yy1608;
+        goto yy1417;
+      }
+    }
+  yy1427:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych <= 'K') {
+        if (yych == 'A')
+          goto yy1594;
+        goto yy1417;
+      } else {
+        if (yych <= 'L')
+          goto yy1593;
+        if (yych <= 'N')
+          goto yy1417;
+        goto yy1592;
+      }
+    } else {
+      if (yych <= 'k') {
+        if (yych == 'a')
+          goto yy1594;
+        goto yy1417;
+      } else {
+        if (yych <= 'l')
+          goto yy1593;
+        if (yych == 'o')
+          goto yy1592;
+        goto yy1417;
+      }
+    }
+  yy1428:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych <= 'D') {
+        if (yych == 'A')
+          goto yy1579;
+        goto yy1417;
+      } else {
+        if (yych <= 'E')
+          goto yy1578;
+        if (yych <= 'N')
+          goto yy1417;
+        goto yy1577;
+      }
+    } else {
+      if (yych <= 'd') {
+        if (yych == 'a')
+          goto yy1579;
+        goto yy1417;
+      } else {
+        if (yych <= 'e')
+          goto yy1578;
+        if (yych == 'o')
+          goto yy1577;
+        goto yy1417;
+      }
+    }
+  yy1429:
+    yych = *++p;
+    switch (yych) {
+    case 'D':
+    case 'L':
+    case 'T':
+    case 'd':
+    case 'l':
+    case 't':
+      goto yy1456;
+    case 'E':
+    case 'e':
+      goto yy1569;
+    case 'I':
+    case 'i':
+      goto yy1568;
+    default:
+      goto yy1417;
+    }
+  yy1430:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych <= 'N') {
+        if (yych == 'I')
+          goto yy1544;
+        goto yy1417;
+      } else {
+        if (yych <= 'O')
+          goto yy1543;
+        if (yych <= 'Q')
+          goto yy1417;
+        goto yy1542;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych == 'i')
+          goto yy1544;
+        goto yy1417;
+      } else {
+        if (yych <= 'o')
+          goto yy1543;
+        if (yych == 'r')
+          goto yy1542;
+        goto yy1417;
+      }
+    }
+  yy1431:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'D') {
+        if (yych == '1')
+          goto yy1456;
+        goto yy1417;
+      } else {
+        if (yych <= 'E')
+          goto yy1537;
+        if (yych == 'R')
+          goto yy1456;
+        goto yy1417;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych <= 'T')
+          goto yy1536;
+        if (yych == 'e')
+          goto yy1537;
+        goto yy1417;
+      } else {
+        if (yych <= 'r')
+          goto yy1456;
+        if (yych == 't')
+          goto yy1536;
+        goto yy1417;
+      }
+    }
+  yy1432:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy1532;
+    if (yych == 'f')
+      goto yy1532;
+    goto yy1417;
+  yy1433:
+    yych = *++p;
+    if (yych <= 'I') {
+      if (yych == 'E')
+        goto yy1527;
+      if (yych <= 'H')
+        goto yy1417;
+      goto yy1526;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy1417;
+        goto yy1527;
+      } else {
+        if (yych == 'i')
+          goto yy1526;
+        goto yy1417;
+      }
+    }
+  yy1434:
+    yych = *++p;
+    if (yych <= 'E') {
+      if (yych == 'A')
+        goto yy1518;
+      if (yych <= 'D')
+        goto yy1417;
+      goto yy1517;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy1417;
+        goto yy1518;
+      } else {
+        if (yych == 'e')
+          goto yy1517;
+        goto yy1417;
+      }
+    }
+  yy1435:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == 'A')
+        goto yy1511;
+      if (yych <= 'N')
+        goto yy1417;
+      goto yy1510;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy1417;
+        goto yy1511;
+      } else {
+        if (yych == 'o')
+          goto yy1510;
+        goto yy1417;
+      }
+    }
+  yy1436:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy1456;
+      if (yych <= 'O')
+        goto yy1417;
+      goto yy1502;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy1417;
+        goto yy1456;
+      } else {
+        if (yych == 'p')
+          goto yy1502;
+        goto yy1417;
+      }
+    }
+  yy1437:
+    yych = *++p;
+    switch (yych) {
+    case 'C':
+    case 'c':
+      goto yy1479;
+    case 'E':
+    case 'e':
+      goto yy1482;
+    case 'O':
+    case 'o':
+      goto yy1481;
+    case 'T':
+    case 't':
+      goto yy1478;
+    case 'U':
+    case 'u':
+      goto yy1480;
+    default:
+      goto yy1417;
+    }
+  yy1438:
+    yych = *++p;
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy1465;
+    case 'B':
+    case 'b':
+      goto yy1464;
+    case 'D':
+    case 'd':
+      goto yy1456;
+    case 'F':
+    case 'f':
+      goto yy1463;
+    case 'H':
+    case 'h':
+      goto yy1462;
+    case 'I':
+    case 'i':
+      goto yy1461;
+    case 'R':
+    case 'r':
+      goto yy1460;
+    default:
+      goto yy1417;
+    }
+  yy1439:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1456;
+    if (yych == 'l')
+      goto yy1456;
+    goto yy1417;
+  yy1440:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych == '-')
+        goto yy1443;
+      goto yy1417;
+    } else {
+      if (yych <= 'Z')
+        goto yy1444;
+      if (yych <= '[')
+        goto yy1446;
+      goto yy1417;
+    }
+  yy1441:
+    ++p;
+    { return 3; }
+  yy1443:
+    yych = *++p;
+    if (yych == '-')
+      goto yy1454;
+    goto yy1417;
+  yy1444:
+    ++p;
+    { return 4; }
+  yy1446:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1447;
+    if (yych != 'c')
+      goto yy1417;
+  yy1447:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1448;
+    if (yych != 'd')
+      goto yy1417;
+  yy1448:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1449;
+    if (yych != 'a')
+      goto yy1417;
+  yy1449:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1450;
+    if (yych != 't')
+      goto yy1417;
+  yy1450:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1451;
+    if (yych != 'a')
+      goto yy1417;
+  yy1451:
+    yych = *++p;
+    if (yych != '[')
+      goto yy1417;
+    ++p;
+    { return 5; }
+  yy1454:
+    ++p;
+    { return 2; }
+  yy1456:
+    yych = *++p;
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy1417;
+      if (yych <= '\r')
+        goto yy1457;
+      if (yych <= 0x1F)
+        goto yy1417;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      } else {
+        if (yych != '>')
+          goto yy1417;
+      }
+    }
+  yy1457:
+    ++p;
+    { return 6; }
+  yy1459:
+    yych = *++p;
+    if (yych == '>')
+      goto yy1457;
+    goto yy1417;
+  yy1460:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'A')
+          goto yy1476;
+        if (yych == 'a')
+          goto yy1476;
+        goto yy1417;
+      }
+    }
+  yy1461:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1474;
+    if (yych == 't')
+      goto yy1474;
+    goto yy1417;
+  yy1462:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= 'D') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'E')
+          goto yy1472;
+        if (yych == 'e')
+          goto yy1472;
+        goto yy1417;
+      }
+    }
+  yy1463:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1470;
+    if (yych == 'o')
+      goto yy1470;
+    goto yy1417;
+  yy1464:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1468;
+    if (yych == 'o')
+      goto yy1468;
+    goto yy1417;
+  yy1465:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy1466;
+    if (yych != 'b')
+      goto yy1417;
+  yy1466:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1467;
+    if (yych != 'l')
+      goto yy1417;
+  yy1467:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1456;
+    if (yych == 'e')
+      goto yy1456;
+    goto yy1417;
+  yy1468:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1469;
+    if (yych != 'd')
+      goto yy1417;
+  yy1469:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy1456;
+    if (yych == 'y')
+      goto yy1456;
+    goto yy1417;
+  yy1470:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1471;
+    if (yych != 'o')
+      goto yy1417;
+  yy1471:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1456;
+    if (yych == 't')
+      goto yy1456;
+    goto yy1417;
+  yy1472:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1473;
+    if (yych != 'a')
+      goto yy1417;
+  yy1473:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1456;
+    if (yych == 'd')
+      goto yy1456;
+    goto yy1417;
+  yy1474:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1475;
+    if (yych != 'l')
+      goto yy1417;
+  yy1475:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1456;
+    if (yych == 'e')
+      goto yy1456;
+    goto yy1417;
+  yy1476:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1477;
+    if (yych != 'c')
+      goto yy1417;
+  yy1477:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy1456;
+    if (yych == 'k')
+      goto yy1456;
+    goto yy1417;
+  yy1478:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy1500;
+    if (yych == 'y')
+      goto yy1500;
+    goto yy1417;
+  yy1479:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1494;
+    if (yych == 'r')
+      goto yy1494;
+    goto yy1417;
+  yy1480:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1490;
+    if (yych == 'm')
+      goto yy1490;
+    goto yy1417;
+  yy1481:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy1487;
+    if (yych == 'u')
+      goto yy1487;
+    goto yy1417;
+  yy1482:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1483;
+    if (yych != 'c')
+      goto yy1417;
+  yy1483:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1484;
+    if (yych != 't')
+      goto yy1417;
+  yy1484:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1485;
+    if (yych != 'i')
+      goto yy1417;
+  yy1485:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1486;
+    if (yych != 'o')
+      goto yy1417;
+  yy1486:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1456;
+    if (yych == 'n')
+      goto yy1456;
+    goto yy1417;
+  yy1487:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1488;
+    if (yych != 'r')
+      goto yy1417;
+  yy1488:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1489;
+    if (yych != 'c')
+      goto yy1417;
+  yy1489:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1456;
+    if (yych == 'e')
+      goto yy1456;
+    goto yy1417;
+  yy1490:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1491;
+    if (yych != 'm')
+      goto yy1417;
+  yy1491:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1492;
+    if (yych != 'a')
+      goto yy1417;
+  yy1492:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1493;
+    if (yych != 'r')
+      goto yy1417;
+  yy1493:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy1456;
+    if (yych == 'y')
+      goto yy1456;
+    goto yy1417;
+  yy1494:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1495;
+    if (yych != 'i')
+      goto yy1417;
+  yy1495:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1496;
+    if (yych != 'p')
+      goto yy1417;
+  yy1496:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1497;
+    if (yych != 't')
+      goto yy1417;
+  yy1497:
+    yych = *++p;
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy1417;
+      if (yych >= 0x0E)
+        goto yy1417;
+    } else {
+      if (yych <= ' ')
+        goto yy1498;
+      if (yych != '>')
+        goto yy1417;
+    }
+  yy1498:
+    ++p;
+    { return 1; }
+  yy1500:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1501;
+    if (yych != 'l')
+      goto yy1417;
+  yy1501:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1497;
+    if (yych == 'e')
+      goto yy1497;
+    goto yy1417;
+  yy1502:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1503;
+    if (yych != 't')
+      goto yy1417;
+  yy1503:
+    yych = *++p;
+    if (yych <= 'I') {
+      if (yych == 'G')
+        goto yy1505;
+      if (yych <= 'H')
+        goto yy1417;
+    } else {
+      if (yych <= 'g') {
+        if (yych <= 'f')
+          goto yy1417;
+        goto yy1505;
+      } else {
+        if (yych != 'i')
+          goto yy1417;
+      }
+    }
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1509;
+    if (yych == 'o')
+      goto yy1509;
+    goto yy1417;
+  yy1505:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1506;
+    if (yych != 'r')
+      goto yy1417;
+  yy1506:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1507;
+    if (yych != 'o')
+      goto yy1417;
+  yy1507:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy1508;
+    if (yych != 'u')
+      goto yy1417;
+  yy1508:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1456;
+    if (yych == 'p')
+      goto yy1456;
+    goto yy1417;
+  yy1509:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1456;
+    if (yych == 'n')
+      goto yy1456;
+    goto yy1417;
+  yy1510:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy1512;
+    if (yych == 'f')
+      goto yy1512;
+    goto yy1417;
+  yy1511:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy1456;
+    if (yych == 'v')
+      goto yy1456;
+    goto yy1417;
+  yy1512:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1513;
+    if (yych != 'r')
+      goto yy1417;
+  yy1513:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1514;
+    if (yych != 'a')
+      goto yy1417;
+  yy1514:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1515;
+    if (yych != 'm')
+      goto yy1417;
+  yy1515:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1516;
+    if (yych != 'e')
+      goto yy1417;
+  yy1516:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy1456;
+    if (yych == 's')
+      goto yy1456;
+    goto yy1417;
+  yy1517:
+    yych = *++p;
+    if (yych <= 'T') {
+      if (yych == 'N')
+        goto yy1520;
+      if (yych <= 'S')
+        goto yy1417;
+      goto yy1521;
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'm')
+          goto yy1417;
+        goto yy1520;
+      } else {
+        if (yych == 't')
+          goto yy1521;
+        goto yy1417;
+      }
+    }
+  yy1518:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1519;
+    if (yych != 'i')
+      goto yy1417;
+  yy1519:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1456;
+    if (yych == 'n')
+      goto yy1456;
+    goto yy1417;
+  yy1520:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy1522;
+    if (yych == 'u')
+      goto yy1522;
+    goto yy1417;
+  yy1521:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1456;
+    if (yych == 'a')
+      goto yy1456;
+    goto yy1417;
+  yy1522:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= 'H') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'I')
+          goto yy1523;
+        if (yych != 'i')
+          goto yy1417;
+      }
+    }
+  yy1523:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1524;
+    if (yych != 't')
+      goto yy1417;
+  yy1524:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1525;
+    if (yych != 'e')
+      goto yy1417;
+  yy1525:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1456;
+    if (yych == 'm')
+      goto yy1456;
+    goto yy1417;
+  yy1526:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= 'M') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'N')
+          goto yy1531;
+        if (yych == 'n')
+          goto yy1531;
+        goto yy1417;
+      }
+    }
+  yy1527:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy1528;
+    if (yych != 'g')
+      goto yy1417;
+  yy1528:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1529;
+    if (yych != 'e')
+      goto yy1417;
+  yy1529:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1530;
+    if (yych != 'n')
+      goto yy1417;
+  yy1530:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1456;
+    if (yych == 'd')
+      goto yy1456;
+    goto yy1417;
+  yy1531:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy1456;
+    if (yych == 'k')
+      goto yy1456;
+    goto yy1417;
+  yy1532:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1533;
+    if (yych != 'r')
+      goto yy1417;
+  yy1533:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1534;
+    if (yych != 'a')
+      goto yy1417;
+  yy1534:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1535;
+    if (yych != 'm')
+      goto yy1417;
+  yy1535:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1456;
+    if (yych == 'e')
+      goto yy1456;
+    goto yy1417;
+  yy1536:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1541;
+    if (yych == 'm')
+      goto yy1541;
+    goto yy1417;
+  yy1537:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1538;
+    if (yych != 'a')
+      goto yy1417;
+  yy1538:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1539;
+    if (yych != 'd')
+      goto yy1417;
+  yy1539:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= 'D') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'E')
+          goto yy1540;
+        if (yych != 'e')
+          goto yy1417;
+      }
+    }
+  yy1540:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1456;
+    if (yych == 'r')
+      goto yy1456;
+    goto yy1417;
+  yy1541:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1456;
+    if (yych == 'l')
+      goto yy1456;
+    goto yy1417;
+  yy1542:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1563;
+    if (yych == 'a')
+      goto yy1563;
+    goto yy1417;
+  yy1543:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == 'O')
+        goto yy1559;
+      if (yych <= 'Q')
+        goto yy1417;
+      goto yy1560;
+    } else {
+      if (yych <= 'o') {
+        if (yych <= 'n')
+          goto yy1417;
+        goto yy1559;
+      } else {
+        if (yych == 'r')
+          goto yy1560;
+        goto yy1417;
+      }
+    }
+  yy1544:
+    yych = *++p;
+    if (yych <= 'G') {
+      if (yych == 'E')
+        goto yy1545;
+      if (yych <= 'F')
+        goto yy1417;
+      goto yy1546;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy1417;
+      } else {
+        if (yych == 'g')
+          goto yy1546;
+        goto yy1417;
+      }
+    }
+  yy1545:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1555;
+    if (yych == 'l')
+      goto yy1555;
+    goto yy1417;
+  yy1546:
+    yych = *++p;
+    if (yych <= 'U') {
+      if (yych == 'C')
+        goto yy1548;
+      if (yych <= 'T')
+        goto yy1417;
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'b')
+          goto yy1417;
+        goto yy1548;
+      } else {
+        if (yych != 'u')
+          goto yy1417;
+      }
+    }
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1554;
+    if (yych == 'r')
+      goto yy1554;
+    goto yy1417;
+  yy1548:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1549;
+    if (yych != 'a')
+      goto yy1417;
+  yy1549:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1550;
+    if (yych != 'p')
+      goto yy1417;
+  yy1550:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1551;
+    if (yych != 't')
+      goto yy1417;
+  yy1551:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1552;
+    if (yych != 'i')
+      goto yy1417;
+  yy1552:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1553;
+    if (yych != 'o')
+      goto yy1417;
+  yy1553:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1456;
+    if (yych == 'n')
+      goto yy1456;
+    goto yy1417;
+  yy1554:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1456;
+    if (yych == 'e')
+      goto yy1456;
+    goto yy1417;
+  yy1555:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1556;
+    if (yych != 'd')
+      goto yy1417;
+  yy1556:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy1557;
+    if (yych != 's')
+      goto yy1417;
+  yy1557:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1558;
+    if (yych != 'e')
+      goto yy1417;
+  yy1558:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1456;
+    if (yych == 't')
+      goto yy1456;
+    goto yy1417;
+  yy1559:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1561;
+    if (yych == 't')
+      goto yy1561;
+    goto yy1417;
+  yy1560:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1456;
+    if (yych == 'm')
+      goto yy1456;
+    goto yy1417;
+  yy1561:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1562;
+    if (yych != 'e')
+      goto yy1417;
+  yy1562:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1456;
+    if (yych == 'r')
+      goto yy1456;
+    goto yy1417;
+  yy1563:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1564;
+    if (yych != 'm')
+      goto yy1417;
+  yy1564:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1565;
+    if (yych != 'e')
+      goto yy1417;
+  yy1565:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= 'R') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'S')
+          goto yy1566;
+        if (yych != 's')
+          goto yy1417;
+      }
+    }
+  yy1566:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1567;
+    if (yych != 'e')
+      goto yy1417;
+  yy1567:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1456;
+    if (yych == 't')
+      goto yy1456;
+    goto yy1417;
+  yy1568:
+    yych = *++p;
+    if (yych <= 'V') {
+      if (yych <= 'Q') {
+        if (yych == 'A')
+          goto yy1574;
+        goto yy1417;
+      } else {
+        if (yych <= 'R')
+          goto yy1456;
+        if (yych <= 'U')
+          goto yy1417;
+        goto yy1456;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych == 'a')
+          goto yy1574;
+        goto yy1417;
+      } else {
+        if (yych <= 'r')
+          goto yy1456;
+        if (yych == 'v')
+          goto yy1456;
+        goto yy1417;
+      }
+    }
+  yy1569:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1570;
+    if (yych != 't')
+      goto yy1417;
+  yy1570:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1571;
+    if (yych != 'a')
+      goto yy1417;
+  yy1571:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1572;
+    if (yych != 'i')
+      goto yy1417;
+  yy1572:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1573;
+    if (yych != 'l')
+      goto yy1417;
+  yy1573:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy1456;
+    if (yych == 's')
+      goto yy1456;
+    goto yy1417;
+  yy1574:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1575;
+    if (yych != 'l')
+      goto yy1417;
+  yy1575:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1576;
+    if (yych != 'o')
+      goto yy1417;
+  yy1576:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy1456;
+    if (yych == 'g')
+      goto yy1456;
+    goto yy1417;
+  yy1577:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1587;
+    if (yych == 'l')
+      goto yy1587;
+    goto yy1417;
+  yy1578:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1584;
+    if (yych == 'n')
+      goto yy1584;
+    goto yy1417;
+  yy1579:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1580;
+    if (yych != 'p')
+      goto yy1417;
+  yy1580:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1581;
+    if (yych != 't')
+      goto yy1417;
+  yy1581:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1582;
+    if (yych != 'i')
+      goto yy1417;
+  yy1582:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1583;
+    if (yych != 'o')
+      goto yy1417;
+  yy1583:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1456;
+    if (yych == 'n')
+      goto yy1456;
+    goto yy1417;
+  yy1584:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1585;
+    if (yych != 't')
+      goto yy1417;
+  yy1585:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1586;
+    if (yych != 'e')
+      goto yy1417;
+  yy1586:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1456;
+    if (yych == 'r')
+      goto yy1456;
+    goto yy1417;
+  yy1587:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= 'F') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'G')
+          goto yy1588;
+        if (yych != 'g')
+          goto yy1417;
+      }
+    }
+  yy1588:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1589;
+    if (yych != 'r')
+      goto yy1417;
+  yy1589:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1590;
+    if (yych != 'o')
+      goto yy1417;
+  yy1590:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy1591;
+    if (yych != 'u')
+      goto yy1417;
+  yy1591:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1456;
+    if (yych == 'p')
+      goto yy1456;
+    goto yy1417;
+  yy1592:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1607;
+    if (yych == 'd')
+      goto yy1607;
+    goto yy1417;
+  yy1593:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1600;
+    if (yych == 'o')
+      goto yy1600;
+    goto yy1417;
+  yy1594:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy1595;
+    if (yych != 's')
+      goto yy1417;
+  yy1595:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1596;
+    if (yych != 'e')
+      goto yy1417;
+  yy1596:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= 'E') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'F')
+          goto yy1597;
+        if (yych != 'f')
+          goto yy1417;
+      }
+    }
+  yy1597:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1598;
+    if (yych != 'o')
+      goto yy1417;
+  yy1598:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1599;
+    if (yych != 'n')
+      goto yy1417;
+  yy1599:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1456;
+    if (yych == 't')
+      goto yy1456;
+    goto yy1417;
+  yy1600:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1601;
+    if (yych != 'c')
+      goto yy1417;
+  yy1601:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy1602;
+    if (yych != 'k')
+      goto yy1417;
+  yy1602:
+    yych = *++p;
+    if (yych == 'Q')
+      goto yy1603;
+    if (yych != 'q')
+      goto yy1417;
+  yy1603:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy1604;
+    if (yych != 'u')
+      goto yy1417;
+  yy1604:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy1605;
+    if (yych != 'o')
+      goto yy1417;
+  yy1605:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1606;
+    if (yych != 't')
+      goto yy1417;
+  yy1606:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1456;
+    if (yych == 'e')
+      goto yy1456;
+    goto yy1417;
+  yy1607:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy1456;
+    if (yych == 'y')
+      goto yy1456;
+    goto yy1417;
+  yy1608:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1619;
+    if (yych == 'i')
+      goto yy1619;
+    goto yy1417;
+  yy1609:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1615;
+    if (yych == 't')
+      goto yy1615;
+    goto yy1417;
+  yy1610:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1611;
+    if (yych != 'd')
+      goto yy1417;
+  yy1611:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1612;
+    if (yych != 'r')
+      goto yy1417;
+  yy1612:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1613;
+    if (yych != 'e')
+      goto yy1417;
+  yy1613:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy1614;
+    if (yych != 's')
+      goto yy1417;
+  yy1614:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy1456;
+    if (yych == 's')
+      goto yy1456;
+    goto yy1417;
+  yy1615:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1616;
+    if (yych != 'i')
+      goto yy1417;
+  yy1616:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1617;
+    if (yych != 'c')
+      goto yy1417;
+  yy1617:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1618;
+    if (yych != 'l')
+      goto yy1417;
+  yy1618:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1456;
+    if (yych == 'e')
+      goto yy1456;
+    goto yy1417;
+  yy1619:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy1620;
+    if (yych != 'd')
+      goto yy1417;
+  yy1620:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1456;
+    if (yych == 'e')
+      goto yy1456;
+    goto yy1417;
+  yy1621:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1497;
+    if (yych == 'e')
+      goto yy1497;
+    goto yy1417;
+  yy1622:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1623;
+    if (yych != 'r')
+      goto yy1417;
+  yy1623:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1624;
+    if (yych != 'a')
+      goto yy1417;
+  yy1624:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1456;
+    if (yych == 'm')
+      goto yy1456;
+    goto yy1417;
+  yy1625:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy1417;
+        if (yych <= '\r')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= ' ')
+          goto yy1457;
+        if (yych <= '.')
+          goto yy1417;
+        goto yy1459;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych == '>')
+          goto yy1457;
+        goto yy1417;
+      } else {
+        if (yych <= 'A')
+          goto yy1622;
+        if (yych == 'a')
+          goto yy1622;
+        goto yy1417;
+      }
+    }
+  yy1626:
+    ++p;
+    if ((yych = *p) <= 'U') {
+      if (yych <= 'N') {
+        if (yych == 'E')
+          goto yy1482;
+        goto yy1417;
+      } else {
+        if (yych <= 'O')
+          goto yy1481;
+        if (yych <= 'T')
+          goto yy1417;
+        goto yy1480;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych == 'e')
+          goto yy1482;
+        goto yy1417;
+      } else {
+        if (yych <= 'o')
+          goto yy1481;
+        if (yych == 'u')
+          goto yy1480;
+        goto yy1417;
+      }
+    }
+  }
+}
+
+// Try to match an HTML block tag start line of type 7, returning
+// 7 if successful, 0 if not.
+bufsize_t _scan_html_block_start_7(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,   224, 224, 224, 224, 224, 224, 224, 224, 198, 202, 194, 198, 194,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 198, 224, 64,  224, 224, 224, 224, 128, 224, 224,
+        224, 224, 224, 241, 240, 224, 241, 241, 241, 241, 241, 241, 241, 241,
+        241, 241, 240, 224, 192, 192, 192, 224, 224, 241, 241, 241, 241, 241,
+        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+        241, 241, 241, 241, 241, 241, 241, 224, 224, 224, 224, 240, 192, 241,
+        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
+        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 224, 224, 224,
+        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= ';') {
+        if (yych != '\n')
+          goto yy1631;
+      } else {
+        if (yych <= '<')
+          goto yy1630;
+        if (yych <= 0x7F)
+          goto yy1631;
+        if (yych >= 0xC2)
+          goto yy1632;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1634;
+        if (yych == 0xED)
+          goto yy1639;
+        goto yy1635;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1636;
+        if (yych <= 0xF3)
+          goto yy1637;
+        if (yych <= 0xF4)
+          goto yy1638;
+      }
+    }
+  yy1629 : { return 0; }
+  yy1630:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '@') {
+      if (yych == '/')
+        goto yy1642;
+      goto yy1629;
+    } else {
+      if (yych <= 'Z')
+        goto yy1640;
+      if (yych <= '`')
+        goto yy1629;
+      if (yych <= 'z')
+        goto yy1640;
+      goto yy1629;
+    }
+  yy1631:
+    yych = *++p;
+    goto yy1629;
+  yy1632:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1631;
+  yy1633:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy1629;
+    } else {
+      goto yy1651;
+    }
+  yy1634:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1632;
+    goto yy1633;
+  yy1635:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1632;
+    goto yy1633;
+  yy1636:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1635;
+    goto yy1633;
+  yy1637:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1635;
+    goto yy1633;
+  yy1638:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0x8F)
+      goto yy1635;
+    goto yy1633;
+  yy1639:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0x9F)
+      goto yy1632;
+    goto yy1633;
+  yy1640:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 1) {
+      goto yy1640;
+    }
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy1633;
+      if (yych <= '\r')
+        goto yy1653;
+      if (yych <= 0x1F)
+        goto yy1633;
+      goto yy1653;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy1633;
+        goto yy1655;
+      } else {
+        if (yych == '>')
+          goto yy1647;
+        goto yy1633;
+      }
+    }
+  yy1642:
+    yych = *++p;
+    if (yych <= '@')
+      goto yy1633;
+    if (yych <= 'Z')
+      goto yy1643;
+    if (yych <= '`')
+      goto yy1633;
+    if (yych >= '{')
+      goto yy1633;
+  yy1643:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 2) {
+      goto yy1645;
+    }
+    if (yych <= '=') {
+      if (yych <= '-') {
+        if (yych <= ',')
+          goto yy1633;
+        goto yy1643;
+      } else {
+        if (yych <= '/')
+          goto yy1633;
+        if (yych <= '9')
+          goto yy1643;
+        goto yy1633;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy1647;
+        if (yych <= '@')
+          goto yy1633;
+        goto yy1643;
+      } else {
+        if (yych <= '`')
+          goto yy1633;
+        if (yych <= 'z')
+          goto yy1643;
+        goto yy1633;
+      }
+    }
+  yy1645:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 2) {
+      goto yy1645;
+    }
+    if (yych != '>')
+      goto yy1633;
+  yy1647:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 4) {
+      goto yy1647;
+    }
+    if (yych <= 0x08)
+      goto yy1633;
+    if (yych <= '\n')
+      goto yy1649;
+    if (yych <= '\v')
+      goto yy1633;
+    if (yych <= '\r')
+      goto yy1652;
+    goto yy1633;
+  yy1649:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 4) {
+      goto yy1647;
+    }
+    if (yych <= 0x08)
+      goto yy1651;
+    if (yych <= '\n')
+      goto yy1649;
+    if (yych <= '\v')
+      goto yy1651;
+    if (yych <= '\r')
+      goto yy1652;
+  yy1651 : { return 7; }
+  yy1652:
+    yych = *++p;
+    goto yy1651;
+  yy1653:
+    ++p;
+    yych = *p;
+    if (yych <= ':') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy1633;
+        if (yych <= '\r')
+          goto yy1653;
+        if (yych <= 0x1F)
+          goto yy1633;
+        goto yy1653;
+      } else {
+        if (yych == '/')
+          goto yy1655;
+        if (yych <= '9')
+          goto yy1633;
+        goto yy1656;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych == '>')
+          goto yy1647;
+        if (yych <= '@')
+          goto yy1633;
+        goto yy1656;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy1633;
+          goto yy1656;
+        } else {
+          if (yych <= '`')
+            goto yy1633;
+          if (yych <= 'z')
+            goto yy1656;
+          goto yy1633;
+        }
+      }
+    }
+  yy1655:
+    yych = *++p;
+    if (yych == '>')
+      goto yy1647;
+    goto yy1633;
+  yy1656:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 16) {
+      goto yy1656;
+    }
+    if (yych <= ',') {
+      if (yych <= '\r') {
+        if (yych <= 0x08)
+          goto yy1633;
+      } else {
+        if (yych != ' ')
+          goto yy1633;
+      }
+    } else {
+      if (yych <= '<') {
+        if (yych <= '/')
+          goto yy1655;
+        goto yy1633;
+      } else {
+        if (yych <= '=')
+          goto yy1660;
+        if (yych <= '>')
+          goto yy1647;
+        goto yy1633;
+      }
+    }
+  yy1658:
+    ++p;
+    yych = *p;
+    if (yych <= '<') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy1633;
+        if (yych <= '\r')
+          goto yy1658;
+        if (yych <= 0x1F)
+          goto yy1633;
+        goto yy1658;
+      } else {
+        if (yych <= '/') {
+          if (yych <= '.')
+            goto yy1633;
+          goto yy1655;
+        } else {
+          if (yych == ':')
+            goto yy1656;
+          goto yy1633;
+        }
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '=')
+          goto yy1660;
+        if (yych <= '>')
+          goto yy1647;
+        if (yych <= '@')
+          goto yy1633;
+        goto yy1656;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy1633;
+          goto yy1656;
+        } else {
+          if (yych <= '`')
+            goto yy1633;
+          if (yych <= 'z')
+            goto yy1656;
+          goto yy1633;
+        }
+      }
+    }
+  yy1660:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1662;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '"') {
+        if (yych <= 0x00)
+          goto yy1633;
+        if (yych >= '!')
+          goto yy1673;
+      } else {
+        if (yych <= '\'')
+          goto yy1671;
+        if (yych <= 0xC1)
+          goto yy1633;
+        if (yych <= 0xDF)
+          goto yy1664;
+        goto yy1665;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1670;
+        goto yy1666;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1667;
+        if (yych <= 0xF3)
+          goto yy1668;
+        if (yych <= 0xF4)
+          goto yy1669;
+        goto yy1633;
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1662;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '\'') {
+        if (yych <= 0x00)
+          goto yy1633;
+        if (yych <= ' ')
+          goto yy1696;
+        if (yych <= '"')
+          goto yy1673;
+        goto yy1671;
+      } else {
+        if (yych == '>')
+          goto yy1647;
+        if (yych <= 0xC1)
+          goto yy1633;
+        goto yy1664;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1665;
+        if (yych == 0xED)
+          goto yy1670;
+        goto yy1666;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1667;
+        if (yych <= 0xF3)
+          goto yy1668;
+        if (yych <= 0xF4)
+          goto yy1669;
+        goto yy1633;
+      }
+    }
+  yy1662:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1662;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy1633;
+        if (yych <= ' ')
+          goto yy1690;
+        goto yy1633;
+      } else {
+        if (yych <= '>')
+          goto yy1647;
+        if (yych <= 0xC1)
+          goto yy1633;
+        if (yych >= 0xE0)
+          goto yy1665;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1670;
+        goto yy1666;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1667;
+        if (yych <= 0xF3)
+          goto yy1668;
+        if (yych <= 0xF4)
+          goto yy1669;
+        goto yy1633;
+      }
+    }
+  yy1664:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1662;
+    goto yy1633;
+  yy1665:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1664;
+    goto yy1633;
+  yy1666:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1664;
+    goto yy1633;
+  yy1667:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1666;
+    goto yy1633;
+  yy1668:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1666;
+    goto yy1633;
+  yy1669:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0x8F)
+      goto yy1666;
+    goto yy1633;
+  yy1670:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0x9F)
+      goto yy1664;
+    goto yy1633;
+  yy1671:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1671;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1633;
+        if (yych <= '\'')
+          goto yy1682;
+        goto yy1633;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1683;
+        if (yych <= 0xE0)
+          goto yy1684;
+        goto yy1685;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1689;
+        if (yych <= 0xEF)
+          goto yy1685;
+        goto yy1686;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1687;
+        if (yych <= 0xF4)
+          goto yy1688;
+        goto yy1633;
+      }
+    }
+  yy1673:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1673;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1633;
+        if (yych <= '"')
+          goto yy1682;
+        goto yy1633;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1675;
+        if (yych <= 0xE0)
+          goto yy1676;
+        goto yy1677;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1681;
+        if (yych <= 0xEF)
+          goto yy1677;
+        goto yy1678;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1679;
+        if (yych <= 0xF4)
+          goto yy1680;
+        goto yy1633;
+      }
+    }
+  yy1675:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1673;
+    goto yy1633;
+  yy1676:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1675;
+    goto yy1633;
+  yy1677:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1675;
+    goto yy1633;
+  yy1678:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1677;
+    goto yy1633;
+  yy1679:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1677;
+    goto yy1633;
+  yy1680:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0x8F)
+      goto yy1677;
+    goto yy1633;
+  yy1681:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0x9F)
+      goto yy1675;
+    goto yy1633;
+  yy1682:
+    ++p;
+    yych = *p;
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy1633;
+      if (yych <= '\r')
+        goto yy1653;
+      if (yych <= 0x1F)
+        goto yy1633;
+      goto yy1653;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy1633;
+        goto yy1655;
+      } else {
+        if (yych == '>')
+          goto yy1647;
+        goto yy1633;
+      }
+    }
+  yy1683:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1671;
+    goto yy1633;
+  yy1684:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1683;
+    goto yy1633;
+  yy1685:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1683;
+    goto yy1633;
+  yy1686:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1685;
+    goto yy1633;
+  yy1687:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0xBF)
+      goto yy1685;
+    goto yy1633;
+  yy1688:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0x8F)
+      goto yy1685;
+    goto yy1633;
+  yy1689:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1633;
+    if (yych <= 0x9F)
+      goto yy1683;
+    goto yy1633;
+  yy1690:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '"') {
+        if (yych <= '\r') {
+          if (yych <= 0x00)
+            goto yy1633;
+          if (yych <= 0x08)
+            goto yy1662;
+          goto yy1690;
+        } else {
+          if (yych == ' ')
+            goto yy1690;
+          if (yych <= '!')
+            goto yy1662;
+          goto yy1633;
+        }
+      } else {
+        if (yych <= ':') {
+          if (yych == '\'')
+            goto yy1633;
+          if (yych <= '9')
+            goto yy1662;
+        } else {
+          if (yych <= ';')
+            goto yy1662;
+          if (yych <= '=')
+            goto yy1633;
+          if (yych <= '>')
+            goto yy1647;
+          goto yy1662;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy1692;
+          if (yych <= '^')
+            goto yy1662;
+          if (yych >= '`')
+            goto yy1633;
+        } else {
+          if (yych <= 'z')
+            goto yy1692;
+          if (yych <= 0x7F)
+            goto yy1662;
+          if (yych <= 0xC1)
+            goto yy1633;
+          goto yy1664;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy1665;
+          if (yych == 0xED)
+            goto yy1670;
+          goto yy1666;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1667;
+          if (yych <= 0xF3)
+            goto yy1668;
+          if (yych <= 0xF4)
+            goto yy1669;
+          goto yy1633;
+        }
+      }
+    }
+  yy1692:
+    ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= '&') {
+        if (yych <= 0x1F) {
+          if (yych <= 0x00)
+            goto yy1633;
+          if (yych <= 0x08)
+            goto yy1662;
+          if (yych >= 0x0E)
+            goto yy1662;
+        } else {
+          if (yych <= ' ')
+            goto yy1694;
+          if (yych == '"')
+            goto yy1633;
+          goto yy1662;
+        }
+      } else {
+        if (yych <= '/') {
+          if (yych <= '\'')
+            goto yy1633;
+          if (yych <= ',')
+            goto yy1662;
+          if (yych <= '.')
+            goto yy1692;
+          goto yy1662;
+        } else {
+          if (yych <= ';') {
+            if (yych <= ':')
+              goto yy1692;
+            goto yy1662;
+          } else {
+            if (yych <= '<')
+              goto yy1633;
+            if (yych <= '=')
+              goto yy1660;
+            goto yy1647;
+          }
+        }
+      }
+    } else {
+      if (yych <= 0xC1) {
+        if (yych <= '_') {
+          if (yych <= '@')
+            goto yy1662;
+          if (yych <= 'Z')
+            goto yy1692;
+          if (yych <= '^')
+            goto yy1662;
+          goto yy1692;
+        } else {
+          if (yych <= '`')
+            goto yy1633;
+          if (yych <= 'z')
+            goto yy1692;
+          if (yych <= 0x7F)
+            goto yy1662;
+          goto yy1633;
+        }
+      } else {
+        if (yych <= 0xED) {
+          if (yych <= 0xDF)
+            goto yy1664;
+          if (yych <= 0xE0)
+            goto yy1665;
+          if (yych <= 0xEC)
+            goto yy1666;
+          goto yy1670;
+        } else {
+          if (yych <= 0xF0) {
+            if (yych <= 0xEF)
+              goto yy1666;
+            goto yy1667;
+          } else {
+            if (yych <= 0xF3)
+              goto yy1668;
+            if (yych <= 0xF4)
+              goto yy1669;
+            goto yy1633;
+          }
+        }
+      }
+    }
+  yy1694:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '&') {
+        if (yych <= 0x1F) {
+          if (yych <= 0x00)
+            goto yy1633;
+          if (yych <= 0x08)
+            goto yy1662;
+          if (yych <= '\r')
+            goto yy1694;
+          goto yy1662;
+        } else {
+          if (yych <= ' ')
+            goto yy1694;
+          if (yych == '"')
+            goto yy1633;
+          goto yy1662;
+        }
+      } else {
+        if (yych <= ';') {
+          if (yych <= '\'')
+            goto yy1633;
+          if (yych == ':')
+            goto yy1692;
+          goto yy1662;
+        } else {
+          if (yych <= '<')
+            goto yy1633;
+          if (yych <= '=')
+            goto yy1660;
+          if (yych <= '>')
+            goto yy1647;
+          goto yy1662;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy1692;
+          if (yych <= '^')
+            goto yy1662;
+          if (yych <= '_')
+            goto yy1692;
+          goto yy1633;
+        } else {
+          if (yych <= 'z')
+            goto yy1692;
+          if (yych <= 0x7F)
+            goto yy1662;
+          if (yych <= 0xC1)
+            goto yy1633;
+          goto yy1664;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy1665;
+          if (yych == 0xED)
+            goto yy1670;
+          goto yy1666;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1667;
+          if (yych <= 0xF3)
+            goto yy1668;
+          if (yych <= 0xF4)
+            goto yy1669;
+          goto yy1633;
+        }
+      }
+    }
+  yy1696:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '"') {
+        if (yych <= '\r') {
+          if (yych <= 0x00)
+            goto yy1633;
+          if (yych <= 0x08)
+            goto yy1662;
+          goto yy1696;
+        } else {
+          if (yych == ' ')
+            goto yy1696;
+          if (yych <= '!')
+            goto yy1662;
+          goto yy1673;
+        }
+      } else {
+        if (yych <= ':') {
+          if (yych == '\'')
+            goto yy1671;
+          if (yych <= '9')
+            goto yy1662;
+          goto yy1692;
+        } else {
+          if (yych <= ';')
+            goto yy1662;
+          if (yych <= '=')
+            goto yy1633;
+          if (yych <= '>')
+            goto yy1647;
+          goto yy1662;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy1692;
+          if (yych <= '^')
+            goto yy1662;
+          if (yych <= '_')
+            goto yy1692;
+          goto yy1633;
+        } else {
+          if (yych <= 'z')
+            goto yy1692;
+          if (yych <= 0x7F)
+            goto yy1662;
+          if (yych <= 0xC1)
+            goto yy1633;
+          goto yy1664;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy1665;
+          if (yych == 0xED)
+            goto yy1670;
+          goto yy1666;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1667;
+          if (yych <= 0xF3)
+            goto yy1668;
+          if (yych <= 0xF4)
+            goto yy1669;
+          goto yy1633;
+        }
+      }
+    }
+  }
+}
+
+// Try to match an HTML block end line of type 1
+bufsize_t _scan_html_block_end_1(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= ';') {
+        if (yych != '\n')
+          goto yy1701;
+      } else {
+        if (yych <= '<')
+          goto yy1702;
+        if (yych <= 0x7F)
+          goto yy1701;
+        if (yych >= 0xC2)
+          goto yy1703;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1705;
+        if (yych == 0xED)
+          goto yy1710;
+        goto yy1706;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1707;
+        if (yych <= 0xF3)
+          goto yy1708;
+        if (yych <= 0xF4)
+          goto yy1709;
+      }
+    }
+  yy1700 : { return 0; }
+  yy1701:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy1700;
+      goto yy1715;
+    } else {
+      if (yych <= 0xC1)
+        goto yy1700;
+      if (yych <= 0xF4)
+        goto yy1715;
+      goto yy1700;
+    }
+  yy1702:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '/') {
+      if (yych == '\n')
+        goto yy1700;
+      if (yych <= '.')
+        goto yy1715;
+      goto yy1711;
+    } else {
+      if (yych <= 0x7F)
+        goto yy1715;
+      if (yych <= 0xC1)
+        goto yy1700;
+      if (yych <= 0xF4)
+        goto yy1715;
+      goto yy1700;
+    }
+  yy1703:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1701;
+  yy1704:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy1700;
+    } else {
+      goto yy1732;
+    }
+  yy1705:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1703;
+    goto yy1704;
+  yy1706:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1703;
+    goto yy1704;
+  yy1707:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1706;
+    goto yy1704;
+  yy1708:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1706;
+    goto yy1704;
+  yy1709:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0x8F)
+      goto yy1706;
+    goto yy1704;
+  yy1710:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0x9F)
+      goto yy1703;
+    goto yy1704;
+  yy1711:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 's') {
+      if (yych <= 'R') {
+        if (yych <= '\n') {
+          if (yych <= '\t')
+            goto yy1714;
+          goto yy1704;
+        } else {
+          if (yych == 'P')
+            goto yy1723;
+          goto yy1714;
+        }
+      } else {
+        if (yych <= 'o') {
+          if (yych <= 'S')
+            goto yy1724;
+          goto yy1714;
+        } else {
+          if (yych <= 'p')
+            goto yy1723;
+          if (yych <= 'r')
+            goto yy1714;
+          goto yy1724;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 0x7F)
+            goto yy1714;
+          goto yy1704;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1716;
+          if (yych <= 0xE0)
+            goto yy1717;
+          goto yy1718;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1722;
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1712:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '.') {
+        if (yych == '\n')
+          goto yy1704;
+      } else {
+        if (yych <= '/')
+          goto yy1711;
+        if (yych <= 0x7F)
+          goto yy1714;
+        if (yych <= 0xC1)
+          goto yy1704;
+        goto yy1716;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych == 0xED)
+          goto yy1722;
+        goto yy1718;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1719;
+        if (yych <= 0xF3)
+          goto yy1720;
+        if (yych <= 0xF4)
+          goto yy1721;
+        goto yy1704;
+      }
+    }
+  yy1714:
+    ++p;
+    yych = *p;
+  yy1715:
+    if (yybm[0 + yych] & 128) {
+      goto yy1714;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1704;
+        if (yych <= '<')
+          goto yy1712;
+        goto yy1704;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        goto yy1718;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1722;
+        if (yych <= 0xEF)
+          goto yy1718;
+        goto yy1719;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1720;
+        if (yych <= 0xF4)
+          goto yy1721;
+        goto yy1704;
+      }
+    }
+  yy1716:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1714;
+    goto yy1704;
+  yy1717:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1716;
+    goto yy1704;
+  yy1718:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1716;
+    goto yy1704;
+  yy1719:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1718;
+    goto yy1704;
+  yy1720:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0xBF)
+      goto yy1718;
+    goto yy1704;
+  yy1721:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0x8F)
+      goto yy1718;
+    goto yy1704;
+  yy1722:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1704;
+    if (yych <= 0x9F)
+      goto yy1716;
+    goto yy1704;
+  yy1723:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'R') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'Q')
+          goto yy1714;
+        goto yy1735;
+      } else {
+        if (yych == 'r')
+          goto yy1735;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1724:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 't') {
+      if (yych <= 'S') {
+        if (yych <= '\n') {
+          if (yych <= '\t')
+            goto yy1714;
+          goto yy1704;
+        } else {
+          if (yych == 'C')
+            goto yy1726;
+          goto yy1714;
+        }
+      } else {
+        if (yych <= 'b') {
+          if (yych >= 'U')
+            goto yy1714;
+        } else {
+          if (yych <= 'c')
+            goto yy1726;
+          if (yych <= 's')
+            goto yy1714;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 0x7F)
+            goto yy1714;
+          goto yy1704;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1716;
+          if (yych <= 0xE0)
+            goto yy1717;
+          goto yy1718;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1722;
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'Y') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'X')
+          goto yy1714;
+        goto yy1733;
+      } else {
+        if (yych == 'y')
+          goto yy1733;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1726:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'R') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'Q')
+          goto yy1714;
+      } else {
+        if (yych == 'r')
+          goto yy1727;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1727:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'I') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'H')
+          goto yy1714;
+      } else {
+        if (yych == 'i')
+          goto yy1728;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1728:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'P') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'O')
+          goto yy1714;
+      } else {
+        if (yych == 'p')
+          goto yy1729;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1729:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'T') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'S')
+          goto yy1714;
+      } else {
+        if (yych == 't')
+          goto yy1730;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1730:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych == '\n')
+          goto yy1704;
+        goto yy1714;
+      } else {
+        if (yych <= '>')
+          goto yy1731;
+        if (yych <= 0x7F)
+          goto yy1714;
+        if (yych <= 0xC1)
+          goto yy1704;
+        goto yy1716;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych == 0xED)
+          goto yy1722;
+        goto yy1718;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1719;
+        if (yych <= 0xF3)
+          goto yy1720;
+        if (yych <= 0xF4)
+          goto yy1721;
+        goto yy1704;
+      }
+    }
+  yy1731:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1714;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1732;
+        if (yych <= '<')
+          goto yy1712;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        goto yy1718;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1722;
+        if (yych <= 0xEF)
+          goto yy1718;
+        goto yy1719;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1720;
+        if (yych <= 0xF4)
+          goto yy1721;
+      }
+    }
+  yy1732 : { return (bufsize_t)(p - start); }
+  yy1733:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'L') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'K')
+          goto yy1714;
+      } else {
+        if (yych == 'l')
+          goto yy1734;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1734:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'E') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'D')
+          goto yy1714;
+        goto yy1730;
+      } else {
+        if (yych == 'e')
+          goto yy1730;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  yy1735:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1712;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'E') {
+        if (yych == '\n')
+          goto yy1704;
+        if (yych <= 'D')
+          goto yy1714;
+        goto yy1730;
+      } else {
+        if (yych == 'e')
+          goto yy1730;
+        if (yych <= 0x7F)
+          goto yy1714;
+        goto yy1704;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1716;
+        if (yych <= 0xE0)
+          goto yy1717;
+        if (yych <= 0xEC)
+          goto yy1718;
+        goto yy1722;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1718;
+          goto yy1719;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1720;
+          if (yych <= 0xF4)
+            goto yy1721;
+          goto yy1704;
+        }
+      }
+    }
+  }
+}
+
+// Try to match an HTML block end line of type 2
+bufsize_t _scan_html_block_end_2(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= ',') {
+        if (yych != '\n')
+          goto yy1739;
+      } else {
+        if (yych <= '-')
+          goto yy1740;
+        if (yych <= 0x7F)
+          goto yy1739;
+        if (yych >= 0xC2)
+          goto yy1741;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1743;
+        if (yych == 0xED)
+          goto yy1748;
+        goto yy1744;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1745;
+        if (yych <= 0xF3)
+          goto yy1746;
+        if (yych <= 0xF4)
+          goto yy1747;
+      }
+    }
+  yy1738 : { return 0; }
+  yy1739:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy1738;
+      goto yy1752;
+    } else {
+      if (yych <= 0xC1)
+        goto yy1738;
+      if (yych <= 0xF4)
+        goto yy1752;
+      goto yy1738;
+    }
+  yy1740:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy1749;
+    }
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy1738;
+      goto yy1752;
+    } else {
+      if (yych <= 0xC1)
+        goto yy1738;
+      if (yych <= 0xF4)
+        goto yy1752;
+      goto yy1738;
+    }
+  yy1741:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1739;
+  yy1742:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy1738;
+    } else {
+      goto yy1762;
+    }
+  yy1743:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1741;
+    goto yy1742;
+  yy1744:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1741;
+    goto yy1742;
+  yy1745:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1744;
+    goto yy1742;
+  yy1746:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1744;
+    goto yy1742;
+  yy1747:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0x8F)
+      goto yy1744;
+    goto yy1742;
+  yy1748:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0x9F)
+      goto yy1741;
+    goto yy1742;
+  yy1749:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1749;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych == '\n')
+          goto yy1742;
+      } else {
+        if (yych <= '>')
+          goto yy1761;
+        if (yych <= 0x7F)
+          goto yy1751;
+        if (yych <= 0xC1)
+          goto yy1742;
+        goto yy1753;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1754;
+        if (yych == 0xED)
+          goto yy1759;
+        goto yy1755;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1756;
+        if (yych <= 0xF3)
+          goto yy1757;
+        if (yych <= 0xF4)
+          goto yy1758;
+        goto yy1742;
+      }
+    }
+  yy1751:
+    ++p;
+    yych = *p;
+  yy1752:
+    if (yybm[0 + yych] & 128) {
+      goto yy1751;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1742;
+        if (yych <= '-')
+          goto yy1760;
+        goto yy1742;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1753;
+        if (yych <= 0xE0)
+          goto yy1754;
+        goto yy1755;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1759;
+        if (yych <= 0xEF)
+          goto yy1755;
+        goto yy1756;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1757;
+        if (yych <= 0xF4)
+          goto yy1758;
+        goto yy1742;
+      }
+    }
+  yy1753:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1751;
+    goto yy1742;
+  yy1754:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1753;
+    goto yy1742;
+  yy1755:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1753;
+    goto yy1742;
+  yy1756:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1755;
+    goto yy1742;
+  yy1757:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0xBF)
+      goto yy1755;
+    goto yy1742;
+  yy1758:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0x8F)
+      goto yy1755;
+    goto yy1742;
+  yy1759:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1742;
+    if (yych <= 0x9F)
+      goto yy1753;
+    goto yy1742;
+  yy1760:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1751;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1742;
+        if (yych <= '-')
+          goto yy1749;
+        goto yy1742;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1753;
+        if (yych <= 0xE0)
+          goto yy1754;
+        goto yy1755;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1759;
+        if (yych <= 0xEF)
+          goto yy1755;
+        goto yy1756;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1757;
+        if (yych <= 0xF4)
+          goto yy1758;
+        goto yy1742;
+      }
+    }
+  yy1761:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1751;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1762;
+        if (yych <= '-')
+          goto yy1760;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1753;
+        if (yych <= 0xE0)
+          goto yy1754;
+        goto yy1755;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1759;
+        if (yych <= 0xEF)
+          goto yy1755;
+        goto yy1756;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1757;
+        if (yych <= 0xF4)
+          goto yy1758;
+      }
+    }
+  yy1762 : { return (bufsize_t)(p - start); }
+  }
+}
+
+// Try to match an HTML block end line of type 3
+bufsize_t _scan_html_block_end_3(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= '>') {
+        if (yych != '\n')
+          goto yy1766;
+      } else {
+        if (yych <= '?')
+          goto yy1767;
+        if (yych <= 0x7F)
+          goto yy1766;
+        if (yych >= 0xC2)
+          goto yy1768;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1770;
+        if (yych == 0xED)
+          goto yy1775;
+        goto yy1771;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1772;
+        if (yych <= 0xF3)
+          goto yy1773;
+        if (yych <= 0xF4)
+          goto yy1774;
+      }
+    }
+  yy1765 : { return 0; }
+  yy1766:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy1765;
+      goto yy1781;
+    } else {
+      if (yych <= 0xC1)
+        goto yy1765;
+      if (yych <= 0xF4)
+        goto yy1781;
+      goto yy1765;
+    }
+  yy1767:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '>') {
+      if (yych == '\n')
+        goto yy1765;
+      if (yych <= '=')
+        goto yy1781;
+      goto yy1776;
+    } else {
+      if (yych <= 0x7F)
+        goto yy1781;
+      if (yych <= 0xC1)
+        goto yy1765;
+      if (yych <= 0xF4)
+        goto yy1781;
+      goto yy1765;
+    }
+  yy1768:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1766;
+  yy1769:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy1765;
+    } else {
+      goto yy1777;
+    }
+  yy1770:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1768;
+    goto yy1769;
+  yy1771:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1768;
+    goto yy1769;
+  yy1772:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1771;
+    goto yy1769;
+  yy1773:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1771;
+    goto yy1769;
+  yy1774:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0x8F)
+      goto yy1771;
+    goto yy1769;
+  yy1775:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0x9F)
+      goto yy1768;
+    goto yy1769;
+  yy1776:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1780;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1777;
+        if (yych <= '?')
+          goto yy1778;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1782;
+        if (yych <= 0xE0)
+          goto yy1783;
+        goto yy1784;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1788;
+        if (yych <= 0xEF)
+          goto yy1784;
+        goto yy1785;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1786;
+        if (yych <= 0xF4)
+          goto yy1787;
+      }
+    }
+  yy1777 : { return (bufsize_t)(p - start); }
+  yy1778:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1778;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych == '\n')
+          goto yy1769;
+      } else {
+        if (yych <= '>')
+          goto yy1776;
+        if (yych <= 0x7F)
+          goto yy1780;
+        if (yych <= 0xC1)
+          goto yy1769;
+        goto yy1782;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1783;
+        if (yych == 0xED)
+          goto yy1788;
+        goto yy1784;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1785;
+        if (yych <= 0xF3)
+          goto yy1786;
+        if (yych <= 0xF4)
+          goto yy1787;
+        goto yy1769;
+      }
+    }
+  yy1780:
+    ++p;
+    yych = *p;
+  yy1781:
+    if (yybm[0 + yych] & 128) {
+      goto yy1780;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1769;
+        if (yych <= '?')
+          goto yy1778;
+        goto yy1769;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1782;
+        if (yych <= 0xE0)
+          goto yy1783;
+        goto yy1784;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1788;
+        if (yych <= 0xEF)
+          goto yy1784;
+        goto yy1785;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1786;
+        if (yych <= 0xF4)
+          goto yy1787;
+        goto yy1769;
+      }
+    }
+  yy1782:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1780;
+    goto yy1769;
+  yy1783:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1782;
+    goto yy1769;
+  yy1784:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1782;
+    goto yy1769;
+  yy1785:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1784;
+    goto yy1769;
+  yy1786:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0xBF)
+      goto yy1784;
+    goto yy1769;
+  yy1787:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0x8F)
+      goto yy1784;
+    goto yy1769;
+  yy1788:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1769;
+    if (yych <= 0x9F)
+      goto yy1782;
+    goto yy1769;
+  }
+}
+
+// Try to match an HTML block end line of type 4
+bufsize_t _scan_html_block_end_4(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych != '\n')
+          goto yy1792;
+      } else {
+        if (yych <= '>')
+          goto yy1793;
+        if (yych <= 0x7F)
+          goto yy1792;
+        if (yych >= 0xC2)
+          goto yy1795;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1797;
+        if (yych == 0xED)
+          goto yy1802;
+        goto yy1798;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1799;
+        if (yych <= 0xF3)
+          goto yy1800;
+        if (yych <= 0xF4)
+          goto yy1801;
+      }
+    }
+  yy1791 : { return 0; }
+  yy1792:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy1791;
+      goto yy1806;
+    } else {
+      if (yych <= 0xC1)
+        goto yy1791;
+      if (yych <= 0xF4)
+        goto yy1806;
+      goto yy1791;
+    }
+  yy1793:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych != '\n')
+        goto yy1806;
+    } else {
+      if (yych <= 0xC1)
+        goto yy1794;
+      if (yych <= 0xF4)
+        goto yy1806;
+    }
+  yy1794 : { return (bufsize_t)(p - start); }
+  yy1795:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1792;
+  yy1796:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy1791;
+    } else {
+      goto yy1794;
+    }
+  yy1797:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1795;
+    goto yy1796;
+  yy1798:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1795;
+    goto yy1796;
+  yy1799:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1798;
+    goto yy1796;
+  yy1800:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1798;
+    goto yy1796;
+  yy1801:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0x8F)
+      goto yy1798;
+    goto yy1796;
+  yy1802:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0x9F)
+      goto yy1795;
+    goto yy1796;
+  yy1803:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1805;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1794;
+        if (yych <= '>')
+          goto yy1803;
+        goto yy1794;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1807;
+        if (yych <= 0xE0)
+          goto yy1808;
+        goto yy1809;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1813;
+        if (yych <= 0xEF)
+          goto yy1809;
+        goto yy1810;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1811;
+        if (yych <= 0xF4)
+          goto yy1812;
+        goto yy1794;
+      }
+    }
+  yy1805:
+    ++p;
+    yych = *p;
+  yy1806:
+    if (yybm[0 + yych] & 128) {
+      goto yy1805;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1796;
+        if (yych <= '>')
+          goto yy1803;
+        goto yy1796;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1807;
+        if (yych <= 0xE0)
+          goto yy1808;
+        goto yy1809;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1813;
+        if (yych <= 0xEF)
+          goto yy1809;
+        goto yy1810;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1811;
+        if (yych <= 0xF4)
+          goto yy1812;
+        goto yy1796;
+      }
+    }
+  yy1807:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1805;
+    goto yy1796;
+  yy1808:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1807;
+    goto yy1796;
+  yy1809:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1807;
+    goto yy1796;
+  yy1810:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1809;
+    goto yy1796;
+  yy1811:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0xBF)
+      goto yy1809;
+    goto yy1796;
+  yy1812:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0x8F)
+      goto yy1809;
+    goto yy1796;
+  yy1813:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1796;
+    if (yych <= 0x9F)
+      goto yy1807;
+    goto yy1796;
+  }
+}
+
+// Try to match an HTML block end line of type 5
+bufsize_t _scan_html_block_end_5(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= '\\') {
+        if (yych != '\n')
+          goto yy1817;
+      } else {
+        if (yych <= ']')
+          goto yy1818;
+        if (yych <= 0x7F)
+          goto yy1817;
+        if (yych >= 0xC2)
+          goto yy1819;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1821;
+        if (yych == 0xED)
+          goto yy1826;
+        goto yy1822;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1823;
+        if (yych <= 0xF3)
+          goto yy1824;
+        if (yych <= 0xF4)
+          goto yy1825;
+      }
+    }
+  yy1816 : { return 0; }
+  yy1817:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy1816;
+      goto yy1830;
+    } else {
+      if (yych <= 0xC1)
+        goto yy1816;
+      if (yych <= 0xF4)
+        goto yy1830;
+      goto yy1816;
+    }
+  yy1818:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy1827;
+    }
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy1816;
+      goto yy1830;
+    } else {
+      if (yych <= 0xC1)
+        goto yy1816;
+      if (yych <= 0xF4)
+        goto yy1830;
+      goto yy1816;
+    }
+  yy1819:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1817;
+  yy1820:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy1816;
+    } else {
+      goto yy1840;
+    }
+  yy1821:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1819;
+    goto yy1820;
+  yy1822:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1819;
+    goto yy1820;
+  yy1823:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1822;
+    goto yy1820;
+  yy1824:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1822;
+    goto yy1820;
+  yy1825:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0x8F)
+      goto yy1822;
+    goto yy1820;
+  yy1826:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0x9F)
+      goto yy1819;
+    goto yy1820;
+  yy1827:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1827;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych == '\n')
+          goto yy1820;
+      } else {
+        if (yych <= '>')
+          goto yy1839;
+        if (yych <= 0x7F)
+          goto yy1829;
+        if (yych <= 0xC1)
+          goto yy1820;
+        goto yy1831;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1832;
+        if (yych == 0xED)
+          goto yy1837;
+        goto yy1833;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1834;
+        if (yych <= 0xF3)
+          goto yy1835;
+        if (yych <= 0xF4)
+          goto yy1836;
+        goto yy1820;
+      }
+    }
+  yy1829:
+    ++p;
+    yych = *p;
+  yy1830:
+    if (yybm[0 + yych] & 128) {
+      goto yy1829;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1820;
+        if (yych <= ']')
+          goto yy1838;
+        goto yy1820;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1831;
+        if (yych <= 0xE0)
+          goto yy1832;
+        goto yy1833;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1837;
+        if (yych <= 0xEF)
+          goto yy1833;
+        goto yy1834;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1835;
+        if (yych <= 0xF4)
+          goto yy1836;
+        goto yy1820;
+      }
+    }
+  yy1831:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1829;
+    goto yy1820;
+  yy1832:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1831;
+    goto yy1820;
+  yy1833:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1831;
+    goto yy1820;
+  yy1834:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1833;
+    goto yy1820;
+  yy1835:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0xBF)
+      goto yy1833;
+    goto yy1820;
+  yy1836:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0x8F)
+      goto yy1833;
+    goto yy1820;
+  yy1837:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1820;
+    if (yych <= 0x9F)
+      goto yy1831;
+    goto yy1820;
+  yy1838:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1829;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1820;
+        if (yych <= ']')
+          goto yy1827;
+        goto yy1820;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1831;
+        if (yych <= 0xE0)
+          goto yy1832;
+        goto yy1833;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1837;
+        if (yych <= 0xEF)
+          goto yy1833;
+        goto yy1834;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1835;
+        if (yych <= 0xF4)
+          goto yy1836;
+        goto yy1820;
+      }
+    }
+  yy1839:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1829;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy1840;
+        if (yych <= ']')
+          goto yy1838;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1831;
+        if (yych <= 0xE0)
+          goto yy1832;
+        goto yy1833;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1837;
+        if (yych <= 0xEF)
+          goto yy1833;
+        goto yy1834;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1835;
+        if (yych <= 0xF4)
+          goto yy1836;
+      }
+    }
+  yy1840 : { return (bufsize_t)(p - start); }
+  }
+}
+
+// Try to match a URL in a link or reference, return number of chars matched.
+// This may optionally be contained in <..>; otherwise
+// whitespace and unbalanced right parentheses aren't allowed.
+// Newlines aren't ever allowed.
+bufsize_t _scan_link_url(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 8,   128, 128, 8,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 136, 224, 224, 224, 224, 224, 224, 224, 128, 128,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 32,  224, 32,  224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 16,  224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= '[') {
+      if (yych <= ' ') {
+        if (yych <= '\f') {
+          if (yych == '\n')
+            goto yy1844;
+          goto yy1860;
+        } else {
+          if (yych <= '\r')
+            goto yy1846;
+          if (yych <= 0x1F)
+            goto yy1860;
+          goto yy1846;
+        }
+      } else {
+        if (yych <= ')') {
+          if (yych <= '\'')
+            goto yy1849;
+          if (yych <= '(')
+            goto yy1858;
+          goto yy1860;
+        } else {
+          if (yych == '<')
+            goto yy1847;
+          goto yy1849;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1848;
+          if (yych <= 0x7F)
+            goto yy1849;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1850;
+          if (yych <= 0xE0)
+            goto yy1852;
+          goto yy1853;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1857;
+          if (yych <= 0xEF)
+            goto yy1853;
+          goto yy1854;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1855;
+          if (yych <= 0xF4)
+            goto yy1856;
+        }
+      }
+    }
+  yy1843 : { return (bufsize_t)(p - start); }
+  yy1844:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+  yy1845:
+    if (yybm[0 + yych] & 8) {
+      goto yy1844;
+    }
+    if (yych <= 0x7F) {
+      if (yych <= ')') {
+        if (yych <= 0x1F)
+          goto yy1843;
+        if (yych <= '\'')
+          goto yy1872;
+        if (yych <= '(')
+          goto yy1863;
+        goto yy1843;
+      } else {
+        if (yych <= '<') {
+          if (yych <= ';')
+            goto yy1872;
+          goto yy1896;
+        } else {
+          if (yych == '\\')
+            goto yy1874;
+          goto yy1872;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF) {
+          if (yych <= 0xC1)
+            goto yy1843;
+          goto yy1876;
+        } else {
+          if (yych <= 0xE0)
+            goto yy1877;
+          if (yych <= 0xEC)
+            goto yy1878;
+          goto yy1882;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1878;
+          goto yy1879;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1880;
+          if (yych <= 0xF4)
+            goto yy1881;
+          goto yy1843;
+        }
+      }
+    }
+  yy1846:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    goto yy1845;
+  yy1847:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy1896;
+    }
+    if (yych <= '>') {
+      if (yych <= '\r') {
+        if (yych <= '\t') {
+          if (yych <= 0x00)
+            goto yy1843;
+          goto yy1909;
+        } else {
+          if (yych <= '\n')
+            goto yy1843;
+          if (yych <= '\f')
+            goto yy1909;
+          goto yy1843;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy1909;
+          goto yy1907;
+        } else {
+          if (yych <= ')')
+            goto yy1909;
+          if (yych <= '<')
+            goto yy1872;
+          goto yy1898;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1894;
+          goto yy1843;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1900;
+          if (yych <= 0xE0)
+            goto yy1901;
+          goto yy1902;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1906;
+          if (yych <= 0xEF)
+            goto yy1902;
+          goto yy1903;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1904;
+          if (yych <= 0xF4)
+            goto yy1905;
+          goto yy1843;
+        }
+      }
+    }
+  yy1848:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '\'')
+      goto yy1873;
+    if (yych <= '(')
+      goto yy1883;
+    if (yych <= ')')
+      goto yy1872;
+    goto yy1873;
+  yy1849:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    goto yy1873;
+  yy1850:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1849;
+  yy1851:
+    p = marker;
+    if (yyaccept <= 1) {
+      if (yyaccept == 0) {
+        goto yy1843;
+      } else {
+        goto yy1859;
+      }
+    } else {
+      goto yy1899;
+    }
+  yy1852:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1850;
+    goto yy1851;
+  yy1853:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1850;
+    goto yy1851;
+  yy1854:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1853;
+    goto yy1851;
+  yy1855:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1853;
+    goto yy1851;
+  yy1856:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x8F)
+      goto yy1853;
+    goto yy1851;
+  yy1857:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x9F)
+      goto yy1850;
+    goto yy1851;
+  yy1858:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= '(') {
+      if (yych <= ' ')
+        goto yy1859;
+      if (yych <= '\'')
+        goto yy1864;
+    } else {
+      if (yych <= 0x7F)
+        goto yy1864;
+      if (yych <= 0xC1)
+        goto yy1859;
+      if (yych <= 0xF4)
+        goto yy1864;
+    }
+  yy1859 : { return 0; }
+  yy1860:
+    yych = *++p;
+    goto yy1859;
+  yy1861:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 16) {
+      goto yy1861;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= ')') {
+        if (yych <= ' ')
+          goto yy1851;
+        if (yych >= ')')
+          goto yy1883;
+      } else {
+        if (yych <= 0x7F)
+          goto yy1863;
+        if (yych <= 0xC1)
+          goto yy1851;
+        if (yych <= 0xDF)
+          goto yy1865;
+        goto yy1866;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1871;
+        goto yy1867;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1868;
+        if (yych <= 0xF3)
+          goto yy1869;
+        if (yych <= 0xF4)
+          goto yy1870;
+        goto yy1851;
+      }
+    }
+  yy1863:
+    ++p;
+    yych = *p;
+  yy1864:
+    if (yybm[0 + yych] & 32) {
+      goto yy1863;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= '(')
+          goto yy1851;
+        if (yych <= ')')
+          goto yy1872;
+        goto yy1861;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1851;
+        if (yych >= 0xE0)
+          goto yy1866;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1871;
+        goto yy1867;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1868;
+        if (yych <= 0xF3)
+          goto yy1869;
+        if (yych <= 0xF4)
+          goto yy1870;
+        goto yy1851;
+      }
+    }
+  yy1865:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1863;
+    goto yy1851;
+  yy1866:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1865;
+    goto yy1851;
+  yy1867:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1865;
+    goto yy1851;
+  yy1868:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1867;
+    goto yy1851;
+  yy1869:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1867;
+    goto yy1851;
+  yy1870:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x8F)
+      goto yy1867;
+    goto yy1851;
+  yy1871:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x9F)
+      goto yy1865;
+    goto yy1851;
+  yy1872:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+  yy1873:
+    if (yych <= 0xC1) {
+      if (yych <= ')') {
+        if (yych <= ' ')
+          goto yy1843;
+        if (yych <= '\'')
+          goto yy1872;
+        if (yych <= '(')
+          goto yy1863;
+        goto yy1843;
+      } else {
+        if (yych == '\\')
+          goto yy1874;
+        if (yych <= 0x7F)
+          goto yy1872;
+        goto yy1843;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1876;
+        if (yych <= 0xE0)
+          goto yy1877;
+        if (yych <= 0xEC)
+          goto yy1878;
+        goto yy1882;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1878;
+          goto yy1879;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1880;
+          if (yych <= 0xF4)
+            goto yy1881;
+          goto yy1843;
+        }
+      }
+    }
+  yy1874:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= 0xDF) {
+      if (yych <= '[') {
+        if (yych <= ' ')
+          goto yy1843;
+        if (yych == '(')
+          goto yy1883;
+        goto yy1872;
+      } else {
+        if (yych <= '\\')
+          goto yy1874;
+        if (yych <= 0x7F)
+          goto yy1872;
+        if (yych <= 0xC1)
+          goto yy1843;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1877;
+        if (yych == 0xED)
+          goto yy1882;
+        goto yy1878;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1879;
+        if (yych <= 0xF3)
+          goto yy1880;
+        if (yych <= 0xF4)
+          goto yy1881;
+        goto yy1843;
+      }
+    }
+  yy1876:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1872;
+    goto yy1851;
+  yy1877:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1876;
+    goto yy1851;
+  yy1878:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1876;
+    goto yy1851;
+  yy1879:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1878;
+    goto yy1851;
+  yy1880:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1878;
+    goto yy1851;
+  yy1881:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x8F)
+      goto yy1878;
+    goto yy1851;
+  yy1882:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x9F)
+      goto yy1876;
+    goto yy1851;
+  yy1883:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+  yy1884:
+    if (yych <= 0xC1) {
+      if (yych <= ')') {
+        if (yych <= ' ')
+          goto yy1843;
+        if (yych <= '\'')
+          goto yy1883;
+        if (yych <= '(')
+          goto yy1863;
+        goto yy1872;
+      } else {
+        if (yych == '\\')
+          goto yy1885;
+        if (yych <= 0x7F)
+          goto yy1883;
+        goto yy1843;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1887;
+        if (yych <= 0xE0)
+          goto yy1888;
+        if (yych <= 0xEC)
+          goto yy1889;
+        goto yy1893;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1889;
+          goto yy1890;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1891;
+          if (yych <= 0xF4)
+            goto yy1892;
+          goto yy1843;
+        }
+      }
+    }
+  yy1885:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= ' ')
+          goto yy1843;
+        if (yych <= '[')
+          goto yy1883;
+        goto yy1885;
+      } else {
+        if (yych <= 0x7F)
+          goto yy1883;
+        if (yych <= 0xC1)
+          goto yy1843;
+        if (yych >= 0xE0)
+          goto yy1888;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1893;
+        goto yy1889;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1890;
+        if (yych <= 0xF3)
+          goto yy1891;
+        if (yych <= 0xF4)
+          goto yy1892;
+        goto yy1843;
+      }
+    }
+  yy1887:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1883;
+    goto yy1851;
+  yy1888:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1887;
+    goto yy1851;
+  yy1889:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1887;
+    goto yy1851;
+  yy1890:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1889;
+    goto yy1851;
+  yy1891:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1889;
+    goto yy1851;
+  yy1892:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x8F)
+      goto yy1889;
+    goto yy1851;
+  yy1893:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x9F)
+      goto yy1887;
+    goto yy1851;
+  yy1894:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '[') {
+      if (yych <= '\r') {
+        if (yych <= '\t') {
+          if (yych <= 0x00)
+            goto yy1843;
+          goto yy1909;
+        } else {
+          if (yych <= '\n')
+            goto yy1843;
+          if (yych <= '\f')
+            goto yy1909;
+          goto yy1843;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy1909;
+          if (yych >= '(')
+            goto yy1932;
+        } else {
+          if (yych == '>')
+            goto yy1946;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1894;
+          if (yych >= 0x80)
+            goto yy1843;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1900;
+          if (yych <= 0xE0)
+            goto yy1901;
+          goto yy1902;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1906;
+          if (yych <= 0xEF)
+            goto yy1902;
+          goto yy1903;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1904;
+          if (yych <= 0xF4)
+            goto yy1905;
+          goto yy1843;
+        }
+      }
+    }
+  yy1896:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1896;
+    }
+    if (yych <= '>') {
+      if (yych <= '\r') {
+        if (yych <= '\t') {
+          if (yych <= 0x00)
+            goto yy1843;
+          goto yy1909;
+        } else {
+          if (yych <= '\n')
+            goto yy1843;
+          if (yych <= '\f')
+            goto yy1909;
+          goto yy1843;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy1909;
+          goto yy1907;
+        } else {
+          if (yych <= ')')
+            goto yy1909;
+          if (yych <= '<')
+            goto yy1872;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1894;
+          goto yy1843;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1900;
+          if (yych <= 0xE0)
+            goto yy1901;
+          goto yy1902;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1906;
+          if (yych <= 0xEF)
+            goto yy1902;
+          goto yy1903;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1904;
+          if (yych <= 0xF4)
+            goto yy1905;
+          goto yy1843;
+        }
+      }
+    }
+  yy1898:
+    yyaccept = 2;
+    yych = *(marker = ++p);
+    if (yych <= ')') {
+      if (yych <= ' ')
+        goto yy1899;
+      if (yych <= '(')
+        goto yy1873;
+    } else {
+      if (yych <= 0x7F)
+        goto yy1873;
+      if (yych <= 0xC1)
+        goto yy1899;
+      if (yych <= 0xF4)
+        goto yy1873;
+    }
+  yy1899 : { return (bufsize_t)(p - start); }
+  yy1900:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1896;
+    goto yy1851;
+  yy1901:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1900;
+    goto yy1851;
+  yy1902:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1900;
+    goto yy1851;
+  yy1903:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1902;
+    goto yy1851;
+  yy1904:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1902;
+    goto yy1851;
+  yy1905:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x8F)
+      goto yy1902;
+    goto yy1851;
+  yy1906:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x9F)
+      goto yy1900;
+    goto yy1851;
+  yy1907:
+    ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= ' ') {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy1851;
+          if (yych >= '\n')
+            goto yy1851;
+        } else {
+          if (yych == '\r')
+            goto yy1851;
+        }
+      } else {
+        if (yych <= ')') {
+          if (yych <= '\'')
+            goto yy1907;
+          if (yych >= ')')
+            goto yy1896;
+        } else {
+          if (yych == '<')
+            goto yy1863;
+          if (yych <= '=')
+            goto yy1907;
+          goto yy1922;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= 0x7F) {
+          if (yych == '\\')
+            goto yy1923;
+          goto yy1907;
+        } else {
+          if (yych <= 0xC1)
+            goto yy1851;
+          if (yych <= 0xDF)
+            goto yy1925;
+          goto yy1926;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1931;
+          goto yy1927;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1928;
+          if (yych <= 0xF3)
+            goto yy1929;
+          if (yych <= 0xF4)
+            goto yy1930;
+          goto yy1851;
+        }
+      }
+    }
+  yy1909:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1909;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= '<')
+          goto yy1851;
+        if (yych >= '?')
+          goto yy1912;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1851;
+        if (yych <= 0xDF)
+          goto yy1914;
+        goto yy1915;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1920;
+        goto yy1916;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1917;
+        if (yych <= 0xF3)
+          goto yy1918;
+        if (yych <= 0xF4)
+          goto yy1919;
+        goto yy1851;
+      }
+    }
+  yy1911:
+    yych = *++p;
+    goto yy1899;
+  yy1912:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F) {
+      if (yych <= '\r') {
+        if (yych <= '\t') {
+          if (yych <= 0x00)
+            goto yy1851;
+          goto yy1909;
+        } else {
+          if (yych <= '\n')
+            goto yy1851;
+          if (yych <= '\f')
+            goto yy1909;
+          goto yy1851;
+        }
+      } else {
+        if (yych <= '>') {
+          if (yych <= '=')
+            goto yy1909;
+          goto yy1921;
+        } else {
+          if (yych == '\\')
+            goto yy1912;
+          goto yy1909;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF) {
+          if (yych <= 0xC1)
+            goto yy1851;
+        } else {
+          if (yych <= 0xE0)
+            goto yy1915;
+          if (yych <= 0xEC)
+            goto yy1916;
+          goto yy1920;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1916;
+          goto yy1917;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1918;
+          if (yych <= 0xF4)
+            goto yy1919;
+          goto yy1851;
+        }
+      }
+    }
+  yy1914:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1909;
+    goto yy1851;
+  yy1915:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1914;
+    goto yy1851;
+  yy1916:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1914;
+    goto yy1851;
+  yy1917:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1916;
+    goto yy1851;
+  yy1918:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1916;
+    goto yy1851;
+  yy1919:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x8F)
+      goto yy1916;
+    goto yy1851;
+  yy1920:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x9F)
+      goto yy1914;
+    goto yy1851;
+  yy1921:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1909;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= '<')
+          goto yy1899;
+        if (yych <= '>')
+          goto yy1911;
+        goto yy1912;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1899;
+        if (yych <= 0xDF)
+          goto yy1914;
+        goto yy1915;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1920;
+        goto yy1916;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1917;
+        if (yych <= 0xF3)
+          goto yy1918;
+        if (yych <= 0xF4)
+          goto yy1919;
+        goto yy1899;
+      }
+    }
+  yy1922:
+    yyaccept = 2;
+    yych = *(marker = ++p);
+    if (yych <= '(') {
+      if (yych <= ' ')
+        goto yy1899;
+      if (yych <= '\'')
+        goto yy1864;
+      goto yy1899;
+    } else {
+      if (yych <= 0x7F)
+        goto yy1864;
+      if (yych <= 0xC1)
+        goto yy1899;
+      if (yych <= 0xF4)
+        goto yy1864;
+      goto yy1899;
+    }
+  yy1923:
+    ++p;
+    yych = *p;
+    if (yych <= '[') {
+      if (yych <= '\r') {
+        if (yych <= '\t') {
+          if (yych <= 0x00)
+            goto yy1851;
+          goto yy1909;
+        } else {
+          if (yych <= '\n')
+            goto yy1851;
+          if (yych <= '\f')
+            goto yy1909;
+          goto yy1851;
+        }
+      } else {
+        if (yych <= ')') {
+          if (yych <= ' ')
+            goto yy1909;
+          if (yych <= '(')
+            goto yy1907;
+          goto yy1932;
+        } else {
+          if (yych == '>')
+            goto yy1934;
+          goto yy1907;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1923;
+          if (yych <= 0x7F)
+            goto yy1907;
+          goto yy1851;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1925;
+          if (yych <= 0xE0)
+            goto yy1926;
+          goto yy1927;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1931;
+          if (yych <= 0xEF)
+            goto yy1927;
+          goto yy1928;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1929;
+          if (yych <= 0xF4)
+            goto yy1930;
+          goto yy1851;
+        }
+      }
+    }
+  yy1925:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1907;
+    goto yy1851;
+  yy1926:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1925;
+    goto yy1851;
+  yy1927:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1925;
+    goto yy1851;
+  yy1928:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1927;
+    goto yy1851;
+  yy1929:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1927;
+    goto yy1851;
+  yy1930:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x8F)
+      goto yy1927;
+    goto yy1851;
+  yy1931:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x9F)
+      goto yy1925;
+    goto yy1851;
+  yy1932:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= ' ') {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy1843;
+          if (yych <= '\t')
+            goto yy1909;
+          goto yy1843;
+        } else {
+          if (yych == '\r')
+            goto yy1843;
+          goto yy1909;
+        }
+      } else {
+        if (yych <= ')') {
+          if (yych <= '\'')
+            goto yy1932;
+          if (yych <= '(')
+            goto yy1907;
+          goto yy1896;
+        } else {
+          if (yych == '<')
+            goto yy1883;
+          if (yych <= '=')
+            goto yy1932;
+          goto yy1935;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= 0x7F) {
+          if (yych == '\\')
+            goto yy1936;
+          goto yy1932;
+        } else {
+          if (yych <= 0xC1)
+            goto yy1843;
+          if (yych <= 0xDF)
+            goto yy1938;
+          goto yy1939;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1944;
+          goto yy1940;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1941;
+          if (yych <= 0xF3)
+            goto yy1942;
+          if (yych <= 0xF4)
+            goto yy1943;
+          goto yy1843;
+        }
+      }
+    }
+  yy1934:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= ' ') {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy1899;
+          if (yych <= '\t')
+            goto yy1909;
+          goto yy1899;
+        } else {
+          if (yych == '\r')
+            goto yy1899;
+          goto yy1909;
+        }
+      } else {
+        if (yych <= ')') {
+          if (yych <= '\'')
+            goto yy1907;
+          if (yych <= '(')
+            goto yy1909;
+          goto yy1896;
+        } else {
+          if (yych == '<')
+            goto yy1863;
+          if (yych <= '=')
+            goto yy1907;
+          goto yy1922;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= 0x7F) {
+          if (yych == '\\')
+            goto yy1923;
+          goto yy1907;
+        } else {
+          if (yych <= 0xC1)
+            goto yy1899;
+          if (yych <= 0xDF)
+            goto yy1925;
+          goto yy1926;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1931;
+          goto yy1927;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1928;
+          if (yych <= 0xF3)
+            goto yy1929;
+          if (yych <= 0xF4)
+            goto yy1930;
+          goto yy1899;
+        }
+      }
+    }
+  yy1935:
+    yyaccept = 2;
+    yych = *(marker = ++p);
+    if (yych <= ' ')
+      goto yy1899;
+    if (yych <= 0x7F)
+      goto yy1884;
+    if (yych <= 0xC1)
+      goto yy1899;
+    if (yych <= 0xF4)
+      goto yy1884;
+    goto yy1899;
+  yy1936:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '\\') {
+      if (yych <= '\r') {
+        if (yych <= '\t') {
+          if (yych <= 0x00)
+            goto yy1843;
+          goto yy1909;
+        } else {
+          if (yych <= '\n')
+            goto yy1843;
+          if (yych <= '\f')
+            goto yy1909;
+          goto yy1843;
+        }
+      } else {
+        if (yych <= '=') {
+          if (yych <= ' ')
+            goto yy1909;
+          goto yy1932;
+        } else {
+          if (yych <= '>')
+            goto yy1945;
+          if (yych <= '[')
+            goto yy1932;
+          goto yy1936;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 0x7F)
+            goto yy1932;
+          goto yy1843;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1938;
+          if (yych <= 0xE0)
+            goto yy1939;
+          goto yy1940;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1944;
+          if (yych <= 0xEF)
+            goto yy1940;
+          goto yy1941;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1942;
+          if (yych <= 0xF4)
+            goto yy1943;
+          goto yy1843;
+        }
+      }
+    }
+  yy1938:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1932;
+    goto yy1851;
+  yy1939:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1938;
+    goto yy1851;
+  yy1940:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1938;
+    goto yy1851;
+  yy1941:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1940;
+    goto yy1851;
+  yy1942:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0xBF)
+      goto yy1940;
+    goto yy1851;
+  yy1943:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x8F)
+      goto yy1940;
+    goto yy1851;
+  yy1944:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1851;
+    if (yych <= 0x9F)
+      goto yy1938;
+    goto yy1851;
+  yy1945:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= ' ') {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy1899;
+          if (yych <= '\t')
+            goto yy1909;
+          goto yy1899;
+        } else {
+          if (yych == '\r')
+            goto yy1899;
+          goto yy1909;
+        }
+      } else {
+        if (yych <= ')') {
+          if (yych <= '\'')
+            goto yy1932;
+          if (yych <= '(')
+            goto yy1907;
+          goto yy1896;
+        } else {
+          if (yych == '<')
+            goto yy1883;
+          if (yych <= '=')
+            goto yy1932;
+          goto yy1935;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= 0x7F) {
+          if (yych == '\\')
+            goto yy1936;
+          goto yy1932;
+        } else {
+          if (yych <= 0xC1)
+            goto yy1899;
+          if (yych <= 0xDF)
+            goto yy1938;
+          goto yy1939;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1944;
+          goto yy1940;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1941;
+          if (yych <= 0xF3)
+            goto yy1942;
+          if (yych <= 0xF4)
+            goto yy1943;
+          goto yy1899;
+        }
+      }
+    }
+  yy1946:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1896;
+    }
+    if (yych <= '>') {
+      if (yych <= '\r') {
+        if (yych <= '\t') {
+          if (yych <= 0x00)
+            goto yy1899;
+          goto yy1909;
+        } else {
+          if (yych <= '\n')
+            goto yy1899;
+          if (yych <= '\f')
+            goto yy1909;
+          goto yy1899;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy1909;
+          goto yy1907;
+        } else {
+          if (yych <= ')')
+            goto yy1909;
+          if (yych <= '<')
+            goto yy1872;
+          goto yy1898;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1894;
+          goto yy1899;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1900;
+          if (yych <= 0xE0)
+            goto yy1901;
+          goto yy1902;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1906;
+          if (yych <= 0xEF)
+            goto yy1902;
+          goto yy1903;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1904;
+          if (yych <= 0xF4)
+            goto yy1905;
+          goto yy1899;
+        }
+      }
+    }
+  }
+}
+
+// Try to match a link title (in single quotes, in double quotes, or
+// in parentheses), returning number of chars matched.  Allow one
+// level of internal nesting (quotes within quotes).
+bufsize_t _scan_link_title(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,   224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 96,  224, 224, 224, 224, 160, 224, 192,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 16,  224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xC1) {
+      if (yych <= '"') {
+        if (yych == '\n')
+          goto yy1949;
+        if (yych <= '!')
+          goto yy1953;
+        goto yy1950;
+      } else {
+        if (yych <= '\'') {
+          if (yych <= '&')
+            goto yy1953;
+          goto yy1951;
+        } else {
+          if (yych <= '(')
+            goto yy1952;
+          if (yych <= 0x7F)
+            goto yy1953;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1954;
+        if (yych <= 0xE0)
+          goto yy1956;
+        if (yych <= 0xEC)
+          goto yy1957;
+        goto yy1961;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1957;
+          goto yy1958;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1959;
+          if (yych <= 0xF4)
+            goto yy1960;
+        }
+      }
+    }
+  yy1949 : { return 0; }
+  yy1950:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy1949;
+    if (yych <= 0x7F)
+      goto yy1993;
+    if (yych <= 0xC1)
+      goto yy1949;
+    if (yych <= 0xF4)
+      goto yy1993;
+    goto yy1949;
+  yy1951:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy1949;
+    if (yych <= 0x7F)
+      goto yy1979;
+    if (yych <= 0xC1)
+      goto yy1949;
+    if (yych <= 0xF4)
+      goto yy1979;
+    goto yy1949;
+  yy1952:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy1949;
+    if (yych <= 0x7F)
+      goto yy1965;
+    if (yych <= 0xC1)
+      goto yy1949;
+    if (yych <= 0xF4)
+      goto yy1965;
+    goto yy1949;
+  yy1953:
+    yych = *++p;
+    goto yy1949;
+  yy1954:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1953;
+  yy1955:
+    p = marker;
+    if (yyaccept <= 1) {
+      if (yyaccept == 0) {
+        goto yy1949;
+      } else {
+        goto yy1974;
+      }
+    } else {
+      if (yyaccept == 2) {
+        goto yy1988;
+      } else {
+        goto yy2002;
+      }
+    }
+  yy1956:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1954;
+    goto yy1955;
+  yy1957:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1954;
+    goto yy1955;
+  yy1958:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1957;
+    goto yy1955;
+  yy1959:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1957;
+    goto yy1955;
+  yy1960:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0x8F)
+      goto yy1957;
+    goto yy1955;
+  yy1961:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0x9F)
+      goto yy1954;
+    goto yy1955;
+  yy1962:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1964;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1955;
+        if (yych <= ')')
+          goto yy1975;
+        goto yy1962;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1955;
+        if (yych <= 0xDF)
+          goto yy1966;
+        goto yy1967;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1972;
+        goto yy1968;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1969;
+        if (yych <= 0xF3)
+          goto yy1970;
+        if (yych <= 0xF4)
+          goto yy1971;
+        goto yy1955;
+      }
+    }
+  yy1964:
+    ++p;
+    yych = *p;
+  yy1965:
+    if (yybm[0 + yych] & 32) {
+      goto yy1964;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1955;
+        if (yych <= ')')
+          goto yy1973;
+        goto yy1962;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1955;
+        if (yych >= 0xE0)
+          goto yy1967;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1972;
+        goto yy1968;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1969;
+        if (yych <= 0xF3)
+          goto yy1970;
+        if (yych <= 0xF4)
+          goto yy1971;
+        goto yy1955;
+      }
+    }
+  yy1966:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1964;
+    goto yy1955;
+  yy1967:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1966;
+    goto yy1955;
+  yy1968:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1966;
+    goto yy1955;
+  yy1969:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1968;
+    goto yy1955;
+  yy1970:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1968;
+    goto yy1955;
+  yy1971:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0x8F)
+      goto yy1968;
+    goto yy1955;
+  yy1972:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0x9F)
+      goto yy1966;
+    goto yy1955;
+  yy1973:
+    ++p;
+  yy1974 : { return (bufsize_t)(p - start); }
+  yy1975:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1964;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1974;
+        if (yych <= ')')
+          goto yy1973;
+        goto yy1962;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1974;
+        if (yych <= 0xDF)
+          goto yy1966;
+        goto yy1967;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1972;
+        goto yy1968;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1969;
+        if (yych <= 0xF3)
+          goto yy1970;
+        if (yych <= 0xF4)
+          goto yy1971;
+        goto yy1974;
+      }
+    }
+  yy1976:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1978;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1955;
+        if (yych <= '\'')
+          goto yy1989;
+        goto yy1976;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1955;
+        if (yych <= 0xDF)
+          goto yy1980;
+        goto yy1981;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1986;
+        goto yy1982;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1983;
+        if (yych <= 0xF3)
+          goto yy1984;
+        if (yych <= 0xF4)
+          goto yy1985;
+        goto yy1955;
+      }
+    }
+  yy1978:
+    ++p;
+    yych = *p;
+  yy1979:
+    if (yybm[0 + yych] & 64) {
+      goto yy1978;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1955;
+        if (yych <= '\'')
+          goto yy1987;
+        goto yy1976;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1955;
+        if (yych >= 0xE0)
+          goto yy1981;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1986;
+        goto yy1982;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1983;
+        if (yych <= 0xF3)
+          goto yy1984;
+        if (yych <= 0xF4)
+          goto yy1985;
+        goto yy1955;
+      }
+    }
+  yy1980:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1978;
+    goto yy1955;
+  yy1981:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1980;
+    goto yy1955;
+  yy1982:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1980;
+    goto yy1955;
+  yy1983:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1982;
+    goto yy1955;
+  yy1984:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1982;
+    goto yy1955;
+  yy1985:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0x8F)
+      goto yy1982;
+    goto yy1955;
+  yy1986:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0x9F)
+      goto yy1980;
+    goto yy1955;
+  yy1987:
+    ++p;
+  yy1988 : { return (bufsize_t)(p - start); }
+  yy1989:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1978;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1988;
+        if (yych <= '\'')
+          goto yy1987;
+        goto yy1976;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1988;
+        if (yych <= 0xDF)
+          goto yy1980;
+        goto yy1981;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1986;
+        goto yy1982;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1983;
+        if (yych <= 0xF3)
+          goto yy1984;
+        if (yych <= 0xF4)
+          goto yy1985;
+        goto yy1988;
+      }
+    }
+  yy1990:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1992;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1955;
+        if (yych <= '"')
+          goto yy2003;
+        goto yy1990;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1955;
+        if (yych <= 0xDF)
+          goto yy1994;
+        goto yy1995;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy2000;
+        goto yy1996;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1997;
+        if (yych <= 0xF3)
+          goto yy1998;
+        if (yych <= 0xF4)
+          goto yy1999;
+        goto yy1955;
+      }
+    }
+  yy1992:
+    ++p;
+    yych = *p;
+  yy1993:
+    if (yybm[0 + yych] & 128) {
+      goto yy1992;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1955;
+        if (yych <= '"')
+          goto yy2001;
+        goto yy1990;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1955;
+        if (yych >= 0xE0)
+          goto yy1995;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy2000;
+        goto yy1996;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1997;
+        if (yych <= 0xF3)
+          goto yy1998;
+        if (yych <= 0xF4)
+          goto yy1999;
+        goto yy1955;
+      }
+    }
+  yy1994:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1992;
+    goto yy1955;
+  yy1995:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1994;
+    goto yy1955;
+  yy1996:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1994;
+    goto yy1955;
+  yy1997:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1996;
+    goto yy1955;
+  yy1998:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0xBF)
+      goto yy1996;
+    goto yy1955;
+  yy1999:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0x8F)
+      goto yy1996;
+    goto yy1955;
+  yy2000:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1955;
+    if (yych <= 0x9F)
+      goto yy1994;
+    goto yy1955;
+  yy2001:
+    ++p;
+  yy2002 : { return (bufsize_t)(p - start); }
+  yy2003:
+    yyaccept = 3;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1992;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy2002;
+        if (yych <= '"')
+          goto yy2001;
+        goto yy1990;
+      } else {
+        if (yych <= 0xC1)
+          goto yy2002;
+        if (yych <= 0xDF)
+          goto yy1994;
+        goto yy1995;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy2000;
+        goto yy1996;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1997;
+        if (yych <= 0xF3)
+          goto yy1998;
+        if (yych <= 0xF4)
+          goto yy1999;
+        goto yy2002;
+      }
+    }
+  }
+}
+
+// Match space characters, including newlines.
+bufsize_t _scan_spacechars(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   128, 0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xC1) {
+      if (yych <= '\r') {
+        if (yych <= 0x08)
+          goto yy2010;
+        if (yych == '\n')
+          goto yy2008;
+        goto yy2007;
+      } else {
+        if (yych == ' ')
+          goto yy2007;
+        if (yych <= 0x7F)
+          goto yy2010;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy2012;
+        if (yych <= 0xE0)
+          goto yy2014;
+        if (yych <= 0xEC)
+          goto yy2015;
+        goto yy2019;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy2015;
+          goto yy2016;
+        } else {
+          if (yych <= 0xF3)
+            goto yy2017;
+          if (yych <= 0xF4)
+            goto yy2018;
+        }
+      }
+    }
+  yy2006 : { return (bufsize_t)(p - start); }
+  yy2007:
+    yych = *++p;
+    goto yy2009;
+  yy2008:
+    ++p;
+    yych = *p;
+  yy2009:
+    if (yybm[0 + yych] & 128) {
+      goto yy2008;
+    }
+    goto yy2006;
+  yy2010:
+    ++p;
+    { return 0; }
+  yy2012:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2013;
+    if (yych <= 0xBF)
+      goto yy2010;
+  yy2013:
+    p = marker;
+    goto yy2006;
+  yy2014:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy2013;
+    if (yych <= 0xBF)
+      goto yy2012;
+    goto yy2013;
+  yy2015:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2013;
+    if (yych <= 0xBF)
+      goto yy2012;
+    goto yy2013;
+  yy2016:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy2013;
+    if (yych <= 0xBF)
+      goto yy2015;
+    goto yy2013;
+  yy2017:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2013;
+    if (yych <= 0xBF)
+      goto yy2015;
+    goto yy2013;
+  yy2018:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2013;
+    if (yych <= 0x8F)
+      goto yy2015;
+    goto yy2013;
+  yy2019:
+    ++p;
+    if ((yych = *p) <= 0x7F)
+      goto yy2013;
+    if (yych <= 0x9F)
+      goto yy2012;
+    goto yy2013;
+  }
+}
+
+// Match ATX heading start.
+bufsize_t _scan_atx_heading_start(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= '"') {
+        if (yych != '\n')
+          goto yy2024;
+      } else {
+        if (yych <= '#')
+          goto yy2023;
+        if (yych <= 0x7F)
+          goto yy2024;
+        if (yych >= 0xC2)
+          goto yy2025;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy2027;
+        if (yych == 0xED)
+          goto yy2032;
+        goto yy2028;
+      } else {
+        if (yych <= 0xF0)
+          goto yy2029;
+        if (yych <= 0xF3)
+          goto yy2030;
+        if (yych <= 0xF4)
+          goto yy2031;
+      }
+    }
+  yy2022 : { return 0; }
+  yy2023:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy2035;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2033;
+      goto yy2022;
+    } else {
+      if (yych <= '\r')
+        goto yy2033;
+      if (yych == '#')
+        goto yy2037;
+      goto yy2022;
+    }
+  yy2024:
+    yych = *++p;
+    goto yy2022;
+  yy2025:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2026;
+    if (yych <= 0xBF)
+      goto yy2024;
+  yy2026:
+    p = marker;
+    goto yy2022;
+  yy2027:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy2026;
+    if (yych <= 0xBF)
+      goto yy2025;
+    goto yy2026;
+  yy2028:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2026;
+    if (yych <= 0xBF)
+      goto yy2025;
+    goto yy2026;
+  yy2029:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy2026;
+    if (yych <= 0xBF)
+      goto yy2028;
+    goto yy2026;
+  yy2030:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2026;
+    if (yych <= 0xBF)
+      goto yy2028;
+    goto yy2026;
+  yy2031:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2026;
+    if (yych <= 0x8F)
+      goto yy2028;
+    goto yy2026;
+  yy2032:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2026;
+    if (yych <= 0x9F)
+      goto yy2025;
+    goto yy2026;
+  yy2033:
+    ++p;
+  yy2034 : { return (bufsize_t)(p - start); }
+  yy2035:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2035;
+    }
+    goto yy2034;
+  yy2037:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2035;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2033;
+      goto yy2026;
+    } else {
+      if (yych <= '\r')
+        goto yy2033;
+      if (yych != '#')
+        goto yy2026;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2035;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2033;
+      goto yy2026;
+    } else {
+      if (yych <= '\r')
+        goto yy2033;
+      if (yych != '#')
+        goto yy2026;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2035;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2033;
+      goto yy2026;
+    } else {
+      if (yych <= '\r')
+        goto yy2033;
+      if (yych != '#')
+        goto yy2026;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2035;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2033;
+      goto yy2026;
+    } else {
+      if (yych <= '\r')
+        goto yy2033;
+      if (yych != '#')
+        goto yy2026;
+    }
+    ++p;
+    if (yybm[0 + (yych = *p)] & 128) {
+      goto yy2035;
+    }
+    if (yych == '\n')
+      goto yy2033;
+    if (yych == '\r')
+      goto yy2033;
+    goto yy2026;
+  }
+}
+
+// Match setext heading line.  Return 1 for level-1 heading,
+// 2 for level-2, 0 for no match.
+bufsize_t _scan_setext_heading_line(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xC1) {
+      if (yych <= '-') {
+        if (yych == '\n')
+          goto yy2044;
+        if (yych <= ',')
+          goto yy2047;
+        goto yy2046;
+      } else {
+        if (yych == '=')
+          goto yy2045;
+        if (yych <= 0x7F)
+          goto yy2047;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy2048;
+        if (yych <= 0xE0)
+          goto yy2050;
+        if (yych <= 0xEC)
+          goto yy2051;
+        goto yy2055;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy2051;
+          goto yy2052;
+        } else {
+          if (yych <= 0xF3)
+            goto yy2053;
+          if (yych <= 0xF4)
+            goto yy2054;
+        }
+      }
+    }
+  yy2044 : { return 0; }
+  yy2045:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy2066;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2064;
+      goto yy2044;
+    } else {
+      if (yych <= '\r')
+        goto yy2064;
+      if (yych == ' ')
+        goto yy2062;
+      goto yy2044;
+    }
+  yy2046:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 32) {
+      goto yy2056;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2058;
+      goto yy2044;
+    } else {
+      if (yych <= '\r')
+        goto yy2058;
+      if (yych == '-')
+        goto yy2060;
+      goto yy2044;
+    }
+  yy2047:
+    yych = *++p;
+    goto yy2044;
+  yy2048:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2049;
+    if (yych <= 0xBF)
+      goto yy2047;
+  yy2049:
+    p = marker;
+    goto yy2044;
+  yy2050:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy2049;
+    if (yych <= 0xBF)
+      goto yy2048;
+    goto yy2049;
+  yy2051:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2049;
+    if (yych <= 0xBF)
+      goto yy2048;
+    goto yy2049;
+  yy2052:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy2049;
+    if (yych <= 0xBF)
+      goto yy2051;
+    goto yy2049;
+  yy2053:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2049;
+    if (yych <= 0xBF)
+      goto yy2051;
+    goto yy2049;
+  yy2054:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2049;
+    if (yych <= 0x8F)
+      goto yy2051;
+    goto yy2049;
+  yy2055:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2049;
+    if (yych <= 0x9F)
+      goto yy2048;
+    goto yy2049;
+  yy2056:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy2056;
+    }
+    if (yych == '\n')
+      goto yy2058;
+    if (yych != '\r')
+      goto yy2049;
+  yy2058:
+    ++p;
+    { return 2; }
+  yy2060:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy2056;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2058;
+      goto yy2049;
+    } else {
+      if (yych <= '\r')
+        goto yy2058;
+      if (yych == '-')
+        goto yy2060;
+      goto yy2049;
+    }
+  yy2062:
+    ++p;
+    yych = *p;
+    if (yych <= '\f') {
+      if (yych != '\n')
+        goto yy2049;
+    } else {
+      if (yych <= '\r')
+        goto yy2064;
+      if (yych == ' ')
+        goto yy2062;
+      goto yy2049;
+    }
+  yy2064:
+    ++p;
+    { return 1; }
+  yy2066:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2066;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy2064;
+      goto yy2049;
+    } else {
+      if (yych <= '\r')
+        goto yy2064;
+      if (yych == ' ')
+        goto yy2062;
+      goto yy2049;
+    }
+  }
+}
+
+// Scan a thematic break line: "...three or more hyphens, asterisks,
+// or underscores on a line by themselves. If you wish, you may use
+// spaces between the hyphens or asterisks."
+bufsize_t _scan_thematic_break(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 16, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,
+        0, 32, 0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 64, 0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
+        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0x7F) {
+      if (yych <= '*') {
+        if (yych == '\n')
+          goto yy2070;
+        if (yych <= ')')
+          goto yy2074;
+        goto yy2071;
+      } else {
+        if (yych <= '-') {
+          if (yych <= ',')
+            goto yy2074;
+          goto yy2073;
+        } else {
+          if (yych == '_')
+            goto yy2072;
+          goto yy2074;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF) {
+          if (yych >= 0xC2)
+            goto yy2075;
+        } else {
+          if (yych <= 0xE0)
+            goto yy2077;
+          if (yych <= 0xEC)
+            goto yy2078;
+          goto yy2082;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy2078;
+          goto yy2079;
+        } else {
+          if (yych <= 0xF3)
+            goto yy2080;
+          if (yych <= 0xF4)
+            goto yy2081;
+        }
+      }
+    }
+  yy2070 : { return 0; }
+  yy2071:
+    yych = *(marker = ++p);
+    if (yych == ' ')
+      goto yy2107;
+    if (yych == '*')
+      goto yy2109;
+    goto yy2070;
+  yy2072:
+    yych = *(marker = ++p);
+    if (yych == ' ')
+      goto yy2095;
+    if (yych == '_')
+      goto yy2097;
+    goto yy2070;
+  yy2073:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 8) {
+      goto yy2083;
+    }
+    if (yych == '-')
+      goto yy2085;
+    goto yy2070;
+  yy2074:
+    yych = *++p;
+    goto yy2070;
+  yy2075:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2076;
+    if (yych <= 0xBF)
+      goto yy2074;
+  yy2076:
+    p = marker;
+    goto yy2070;
+  yy2077:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy2076;
+    if (yych <= 0xBF)
+      goto yy2075;
+    goto yy2076;
+  yy2078:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2076;
+    if (yych <= 0xBF)
+      goto yy2075;
+    goto yy2076;
+  yy2079:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy2076;
+    if (yych <= 0xBF)
+      goto yy2078;
+    goto yy2076;
+  yy2080:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2076;
+    if (yych <= 0xBF)
+      goto yy2078;
+    goto yy2076;
+  yy2081:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2076;
+    if (yych <= 0x8F)
+      goto yy2078;
+    goto yy2076;
+  yy2082:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2076;
+    if (yych <= 0x9F)
+      goto yy2075;
+    goto yy2076;
+  yy2083:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 8) {
+      goto yy2083;
+    }
+    if (yych != '-')
+      goto yy2076;
+  yy2085:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy2085;
+    if (yych != '-')
+      goto yy2076;
+  yy2087:
+    ++p;
+    yych = *p;
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy2076;
+      } else {
+        if (yych <= '\n')
+          goto yy2091;
+        if (yych <= '\f')
+          goto yy2076;
+        goto yy2091;
+      }
+    } else {
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy2076;
+        goto yy2087;
+      } else {
+        if (yych == '-')
+          goto yy2093;
+        goto yy2076;
+      }
+    }
+  yy2089:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 16) {
+      goto yy2089;
+    }
+    if (yych <= 0x08)
+      goto yy2076;
+    if (yych <= '\n')
+      goto yy2091;
+    if (yych != '\r')
+      goto yy2076;
+  yy2091:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy2093:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy2093;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy2076;
+      if (yych <= '\t')
+        goto yy2089;
+      goto yy2091;
+    } else {
+      if (yych == '\r')
+        goto yy2091;
+      goto yy2076;
+    }
+  yy2095:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy2095;
+    if (yych != '_')
+      goto yy2076;
+  yy2097:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy2097;
+    if (yych != '_')
+      goto yy2076;
+  yy2099:
+    ++p;
+    yych = *p;
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy2076;
+      } else {
+        if (yych <= '\n')
+          goto yy2103;
+        if (yych <= '\f')
+          goto yy2076;
+        goto yy2103;
+      }
+    } else {
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy2076;
+        goto yy2099;
+      } else {
+        if (yych == '_')
+          goto yy2105;
+        goto yy2076;
+      }
+    }
+  yy2101:
+    ++p;
+    yych = *p;
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy2076;
+      if (yych <= '\t')
+        goto yy2101;
+      if (yych >= '\v')
+        goto yy2076;
+    } else {
+      if (yych <= '\r')
+        goto yy2103;
+      if (yych == ' ')
+        goto yy2101;
+      goto yy2076;
+    }
+  yy2103:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy2105:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy2105;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy2076;
+      if (yych <= '\t')
+        goto yy2101;
+      goto yy2103;
+    } else {
+      if (yych == '\r')
+        goto yy2103;
+      goto yy2076;
+    }
+  yy2107:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy2107;
+    if (yych != '*')
+      goto yy2076;
+  yy2109:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy2109;
+    if (yych != '*')
+      goto yy2076;
+  yy2111:
+    ++p;
+    yych = *p;
+    if (yych <= '\r') {
+      if (yych <= '\t') {
+        if (yych <= 0x08)
+          goto yy2076;
+      } else {
+        if (yych <= '\n')
+          goto yy2115;
+        if (yych <= '\f')
+          goto yy2076;
+        goto yy2115;
+      }
+    } else {
+      if (yych <= ' ') {
+        if (yych <= 0x1F)
+          goto yy2076;
+        goto yy2111;
+      } else {
+        if (yych == '*')
+          goto yy2117;
+        goto yy2076;
+      }
+    }
+  yy2113:
+    ++p;
+    yych = *p;
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy2076;
+      if (yych <= '\t')
+        goto yy2113;
+      if (yych >= '\v')
+        goto yy2076;
+    } else {
+      if (yych <= '\r')
+        goto yy2115;
+      if (yych == ' ')
+        goto yy2113;
+      goto yy2076;
+    }
+  yy2115:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy2117:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2117;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy2076;
+      if (yych <= '\t')
+        goto yy2113;
+      goto yy2115;
+    } else {
+      if (yych == '\r')
+        goto yy2115;
+      goto yy2076;
+    }
+  }
+}
+
+// Scan an opening code fence.
+bufsize_t _scan_open_code_fence(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0,   160, 160, 160, 160, 160, 160, 160, 160, 160, 0,   160, 160, 0,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 96,  160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
+        144, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xC1) {
+      if (yych <= '`') {
+        if (yych == '\n')
+          goto yy2121;
+        if (yych <= '_')
+          goto yy2124;
+        goto yy2122;
+      } else {
+        if (yych == '~')
+          goto yy2123;
+        if (yych <= 0x7F)
+          goto yy2124;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy2125;
+        if (yych <= 0xE0)
+          goto yy2127;
+        if (yych <= 0xEC)
+          goto yy2128;
+        goto yy2132;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy2128;
+          goto yy2129;
+        } else {
+          if (yych <= 0xF3)
+            goto yy2130;
+          if (yych <= 0xF4)
+            goto yy2131;
+        }
+      }
+    }
+  yy2121 : { return 0; }
+  yy2122:
+    yych = *(marker = ++p);
+    if (yych == '`')
+      goto yy2147;
+    goto yy2121;
+  yy2123:
+    yych = *(marker = ++p);
+    if (yych == '~')
+      goto yy2133;
+    goto yy2121;
+  yy2124:
+    yych = *++p;
+    goto yy2121;
+  yy2125:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2124;
+  yy2126:
+    p = marker;
+    goto yy2121;
+  yy2127:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2125;
+    goto yy2126;
+  yy2128:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2125;
+    goto yy2126;
+  yy2129:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2128;
+    goto yy2126;
+  yy2130:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2128;
+    goto yy2126;
+  yy2131:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0x8F)
+      goto yy2128;
+    goto yy2126;
+  yy2132:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0x9F)
+      goto yy2125;
+    goto yy2126;
+  yy2133:
+    yych = *++p;
+    if (yybm[0 + yych] & 16) {
+      goto yy2134;
+    }
+    goto yy2126;
+  yy2134:
+    ++p;
+    yych = *p;
+    marker = p;
+    if (yybm[0 + yych] & 32) {
+      goto yy2136;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '~') {
+        if (yych <= 0x00)
+          goto yy2126;
+        if (yych <= '\r')
+          goto yy2145;
+        goto yy2134;
+      } else {
+        if (yych <= 0xC1)
+          goto yy2126;
+        if (yych <= 0xDF)
+          goto yy2138;
+        goto yy2139;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy2144;
+        goto yy2140;
+      } else {
+        if (yych <= 0xF0)
+          goto yy2141;
+        if (yych <= 0xF3)
+          goto yy2142;
+        if (yych <= 0xF4)
+          goto yy2143;
+        goto yy2126;
+      }
+    }
+  yy2136:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy2136;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy2126;
+        if (yych <= '\r')
+          goto yy2145;
+        goto yy2126;
+      } else {
+        if (yych <= 0xDF)
+          goto yy2138;
+        if (yych <= 0xE0)
+          goto yy2139;
+        goto yy2140;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy2144;
+        if (yych <= 0xEF)
+          goto yy2140;
+        goto yy2141;
+      } else {
+        if (yych <= 0xF3)
+          goto yy2142;
+        if (yych <= 0xF4)
+          goto yy2143;
+        goto yy2126;
+      }
+    }
+  yy2138:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2136;
+    goto yy2126;
+  yy2139:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2138;
+    goto yy2126;
+  yy2140:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2138;
+    goto yy2126;
+  yy2141:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2140;
+    goto yy2126;
+  yy2142:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2140;
+    goto yy2126;
+  yy2143:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0x8F)
+      goto yy2140;
+    goto yy2126;
+  yy2144:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0x9F)
+      goto yy2138;
+    goto yy2126;
+  yy2145:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  yy2147:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy2148;
+    }
+    goto yy2126;
+  yy2148:
+    ++p;
+    yych = *p;
+    marker = p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2150;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '`') {
+        if (yych <= 0x00)
+          goto yy2126;
+        if (yych <= '\r')
+          goto yy2159;
+        goto yy2148;
+      } else {
+        if (yych <= 0xC1)
+          goto yy2126;
+        if (yych <= 0xDF)
+          goto yy2152;
+        goto yy2153;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy2158;
+        goto yy2154;
+      } else {
+        if (yych <= 0xF0)
+          goto yy2155;
+        if (yych <= 0xF3)
+          goto yy2156;
+        if (yych <= 0xF4)
+          goto yy2157;
+        goto yy2126;
+      }
+    }
+  yy2150:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2150;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy2126;
+        if (yych <= '\r')
+          goto yy2159;
+        goto yy2126;
+      } else {
+        if (yych <= 0xDF)
+          goto yy2152;
+        if (yych <= 0xE0)
+          goto yy2153;
+        goto yy2154;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy2158;
+        if (yych <= 0xEF)
+          goto yy2154;
+        goto yy2155;
+      } else {
+        if (yych <= 0xF3)
+          goto yy2156;
+        if (yych <= 0xF4)
+          goto yy2157;
+        goto yy2126;
+      }
+    }
+  yy2152:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2150;
+    goto yy2126;
+  yy2153:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2152;
+    goto yy2126;
+  yy2154:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2152;
+    goto yy2126;
+  yy2155:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2154;
+    goto yy2126;
+  yy2156:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0xBF)
+      goto yy2154;
+    goto yy2126;
+  yy2157:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0x8F)
+      goto yy2154;
+    goto yy2126;
+  yy2158:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy2126;
+    if (yych <= 0x9F)
+      goto yy2152;
+    goto yy2126;
+  yy2159:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  }
+}
+
+// Scan a closing code fence with length at least len.
+bufsize_t _scan_close_code_fence(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   64, 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  64, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 128, 0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0,
+    };
+    yych = *(marker = p);
+    if (yych <= 0xC1) {
+      if (yych <= '`') {
+        if (yych == '\n')
+          goto yy2163;
+        if (yych <= '_')
+          goto yy2166;
+        goto yy2164;
+      } else {
+        if (yych == '~')
+          goto yy2165;
+        if (yych <= 0x7F)
+          goto yy2166;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy2167;
+        if (yych <= 0xE0)
+          goto yy2169;
+        if (yych <= 0xEC)
+          goto yy2170;
+        goto yy2174;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy2170;
+          goto yy2171;
+        } else {
+          if (yych <= 0xF3)
+            goto yy2172;
+          if (yych <= 0xF4)
+            goto yy2173;
+        }
+      }
+    }
+  yy2163 : { return 0; }
+  yy2164:
+    yych = *(marker = ++p);
+    if (yych == '`')
+      goto yy2182;
+    goto yy2163;
+  yy2165:
+    yych = *(marker = ++p);
+    if (yych == '~')
+      goto yy2175;
+    goto yy2163;
+  yy2166:
+    yych = *++p;
+    goto yy2163;
+  yy2167:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2168;
+    if (yych <= 0xBF)
+      goto yy2166;
+  yy2168:
+    p = marker;
+    goto yy2163;
+  yy2169:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy2168;
+    if (yych <= 0xBF)
+      goto yy2167;
+    goto yy2168;
+  yy2170:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2168;
+    if (yych <= 0xBF)
+      goto yy2167;
+    goto yy2168;
+  yy2171:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy2168;
+    if (yych <= 0xBF)
+      goto yy2170;
+    goto yy2168;
+  yy2172:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2168;
+    if (yych <= 0xBF)
+      goto yy2170;
+    goto yy2168;
+  yy2173:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2168;
+    if (yych <= 0x8F)
+      goto yy2170;
+    goto yy2168;
+  yy2174:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2168;
+    if (yych <= 0x9F)
+      goto yy2167;
+    goto yy2168;
+  yy2175:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy2176;
+    }
+    goto yy2168;
+  yy2176:
+    ++p;
+    yych = *p;
+    marker = p;
+    if (yybm[0 + yych] & 64) {
+      goto yy2178;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy2168;
+      if (yych <= '\n')
+        goto yy2180;
+      goto yy2168;
+    } else {
+      if (yych <= '\r')
+        goto yy2180;
+      if (yych == '~')
+        goto yy2176;
+      goto yy2168;
+    }
+  yy2178:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy2178;
+    }
+    if (yych <= 0x08)
+      goto yy2168;
+    if (yych <= '\n')
+      goto yy2180;
+    if (yych != '\r')
+      goto yy2168;
+  yy2180:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  yy2182:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2183;
+    }
+    goto yy2168;
+  yy2183:
+    ++p;
+    yych = *p;
+    marker = p;
+    if (yybm[0 + yych] & 128) {
+      goto yy2183;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy2168;
+      if (yych <= '\t')
+        goto yy2185;
+      if (yych <= '\n')
+        goto yy2187;
+      goto yy2168;
+    } else {
+      if (yych <= '\r')
+        goto yy2187;
+      if (yych != ' ')
+        goto yy2168;
+    }
+  yy2185:
+    ++p;
+    yych = *p;
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy2168;
+      if (yych <= '\t')
+        goto yy2185;
+      if (yych >= '\v')
+        goto yy2168;
+    } else {
+      if (yych <= '\r')
+        goto yy2187;
+      if (yych == ' ')
+        goto yy2185;
+      goto yy2168;
+    }
+  yy2187:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  }
+}
+
+// Scans an entity.
+// Returns number of chars matched.
+bufsize_t _scan_entity(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    yych = *(marker = p);
+    if (yych <= 0xDF) {
+      if (yych <= '%') {
+        if (yych != '\n')
+          goto yy2193;
+      } else {
+        if (yych <= '&')
+          goto yy2192;
+        if (yych <= 0x7F)
+          goto yy2193;
+        if (yych >= 0xC2)
+          goto yy2194;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy2196;
+        if (yych == 0xED)
+          goto yy2201;
+        goto yy2197;
+      } else {
+        if (yych <= 0xF0)
+          goto yy2198;
+        if (yych <= 0xF3)
+          goto yy2199;
+        if (yych <= 0xF4)
+          goto yy2200;
+      }
+    }
+  yy2191 : { return 0; }
+  yy2192:
+    yych = *(marker = ++p);
+    if (yych <= '@') {
+      if (yych == '#')
+        goto yy2202;
+      goto yy2191;
+    } else {
+      if (yych <= 'Z')
+        goto yy2203;
+      if (yych <= '`')
+        goto yy2191;
+      if (yych <= 'z')
+        goto yy2203;
+      goto yy2191;
+    }
+  yy2193:
+    yych = *++p;
+    goto yy2191;
+  yy2194:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2195;
+    if (yych <= 0xBF)
+      goto yy2193;
+  yy2195:
+    p = marker;
+    goto yy2191;
+  yy2196:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy2195;
+    if (yych <= 0xBF)
+      goto yy2194;
+    goto yy2195;
+  yy2197:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2195;
+    if (yych <= 0xBF)
+      goto yy2194;
+    goto yy2195;
+  yy2198:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy2195;
+    if (yych <= 0xBF)
+      goto yy2197;
+    goto yy2195;
+  yy2199:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2195;
+    if (yych <= 0xBF)
+      goto yy2197;
+    goto yy2195;
+  yy2200:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2195;
+    if (yych <= 0x8F)
+      goto yy2197;
+    goto yy2195;
+  yy2201:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2195;
+    if (yych <= 0x9F)
+      goto yy2194;
+    goto yy2195;
+  yy2202:
+    yych = *++p;
+    if (yych <= 'W') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2238;
+      goto yy2195;
+    } else {
+      if (yych <= 'X')
+        goto yy2237;
+      if (yych == 'x')
+        goto yy2237;
+      goto yy2195;
+    }
+  yy2203:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych >= ':')
+        goto yy2195;
+    } else {
+      if (yych <= 'Z')
+        goto yy2204;
+      if (yych <= '`')
+        goto yy2195;
+      if (yych >= '{')
+        goto yy2195;
+    }
+  yy2204:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2207;
+      if (yych <= ':')
+        goto yy2195;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+        goto yy2207;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych <= 'z')
+          goto yy2207;
+        goto yy2195;
+      }
+    }
+  yy2205:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy2207:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2208;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2208:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2209;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2209:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2210;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2210:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2211;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2211:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2212;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2212:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2213;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2213:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2214;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2214:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2215;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2215:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2216;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2216:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2217;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2217:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2218;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2218:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2219;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2219:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2220;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2220:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2221;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2221:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2222;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2222:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2223;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2223:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2224;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2224:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2225;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2225:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2226;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2226:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2227;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2227:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2228;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2228:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2229;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2229:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2230;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2230:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2231;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2231:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2232;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2232:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2233;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2233:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2234;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2234:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2235;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2235:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2236;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= '{')
+          goto yy2195;
+      }
+    }
+  yy2236:
+    yych = *++p;
+    if (yych == ';')
+      goto yy2205;
+    goto yy2195;
+  yy2237:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2245;
+      goto yy2195;
+    } else {
+      if (yych <= 'F')
+        goto yy2245;
+      if (yych <= '`')
+        goto yy2195;
+      if (yych <= 'f')
+        goto yy2245;
+      goto yy2195;
+    }
+  yy2238:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy2195;
+    if (yych <= '9')
+      goto yy2239;
+    if (yych == ';')
+      goto yy2205;
+    goto yy2195;
+  yy2239:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy2195;
+    if (yych <= '9')
+      goto yy2240;
+    if (yych == ';')
+      goto yy2205;
+    goto yy2195;
+  yy2240:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy2195;
+    if (yych <= '9')
+      goto yy2241;
+    if (yych == ';')
+      goto yy2205;
+    goto yy2195;
+  yy2241:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy2195;
+    if (yych <= '9')
+      goto yy2242;
+    if (yych == ';')
+      goto yy2205;
+    goto yy2195;
+  yy2242:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy2195;
+    if (yych <= '9')
+      goto yy2243;
+    if (yych == ';')
+      goto yy2205;
+    goto yy2195;
+  yy2243:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy2195;
+    if (yych <= '9')
+      goto yy2244;
+    if (yych == ';')
+      goto yy2205;
+    goto yy2195;
+  yy2244:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy2195;
+    if (yych <= '9')
+      goto yy2236;
+    if (yych == ';')
+      goto yy2205;
+    goto yy2195;
+  yy2245:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2246;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= 'g')
+          goto yy2195;
+      }
+    }
+  yy2246:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2247;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= 'g')
+          goto yy2195;
+      }
+    }
+  yy2247:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2248;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= 'g')
+          goto yy2195;
+      }
+    }
+  yy2248:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2249;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= 'g')
+          goto yy2195;
+      }
+    }
+  yy2249:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2250;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= 'g')
+          goto yy2195;
+      }
+    }
+  yy2250:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2251;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy2195;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych >= 'g')
+          goto yy2195;
+      }
+    }
+  yy2251:
+    ++p;
+    if ((yych = *p) <= ';') {
+      if (yych <= '/')
+        goto yy2195;
+      if (yych <= '9')
+        goto yy2236;
+      if (yych <= ':')
+        goto yy2195;
+      goto yy2205;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy2195;
+        goto yy2236;
+      } else {
+        if (yych <= '`')
+          goto yy2195;
+        if (yych <= 'f')
+          goto yy2236;
+        goto yy2195;
+      }
+    }
+  }
+}
+
+// Returns positive value if a URL begins in a way that is potentially
+// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.
+bufsize_t _scan_dangerous_url(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    yych = *(marker = p);
+    if (yych <= 'f') {
+      if (yych <= 'I') {
+        if (yych <= 'C') {
+          if (yych != '\n')
+            goto yy2259;
+        } else {
+          if (yych <= 'D')
+            goto yy2255;
+          if (yych == 'F')
+            goto yy2258;
+          goto yy2259;
+        }
+      } else {
+        if (yych <= 'V') {
+          if (yych <= 'J')
+            goto yy2256;
+          if (yych <= 'U')
+            goto yy2259;
+          goto yy2257;
+        } else {
+          if (yych == 'd')
+            goto yy2255;
+          if (yych <= 'e')
+            goto yy2259;
+          goto yy2258;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= 'u') {
+          if (yych == 'j')
+            goto yy2256;
+          goto yy2259;
+        } else {
+          if (yych <= 'v')
+            goto yy2257;
+          if (yych <= 0x7F)
+            goto yy2259;
+          if (yych >= 0xC2)
+            goto yy2260;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy2262;
+          if (yych == 0xED)
+            goto yy2267;
+          goto yy2263;
+        } else {
+          if (yych <= 0xF0)
+            goto yy2264;
+          if (yych <= 0xF3)
+            goto yy2265;
+          if (yych <= 0xF4)
+            goto yy2266;
+        }
+      }
+    }
+  yy2254 : { return 0; }
+  yy2255:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'A')
+      goto yy2289;
+    if (yych == 'a')
+      goto yy2289;
+    goto yy2254;
+  yy2256:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'A')
+      goto yy2280;
+    if (yych == 'a')
+      goto yy2280;
+    goto yy2254;
+  yy2257:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'B')
+      goto yy2273;
+    if (yych == 'b')
+      goto yy2273;
+    goto yy2254;
+  yy2258:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'I')
+      goto yy2268;
+    if (yych == 'i')
+      goto yy2268;
+    goto yy2254;
+  yy2259:
+    yych = *++p;
+    goto yy2254;
+  yy2260:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2261;
+    if (yych <= 0xBF)
+      goto yy2259;
+  yy2261:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy2254;
+    } else {
+      goto yy2272;
+    }
+  yy2262:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy2261;
+    if (yych <= 0xBF)
+      goto yy2260;
+    goto yy2261;
+  yy2263:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2261;
+    if (yych <= 0xBF)
+      goto yy2260;
+    goto yy2261;
+  yy2264:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy2261;
+    if (yych <= 0xBF)
+      goto yy2263;
+    goto yy2261;
+  yy2265:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2261;
+    if (yych <= 0xBF)
+      goto yy2263;
+    goto yy2261;
+  yy2266:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2261;
+    if (yych <= 0x8F)
+      goto yy2263;
+    goto yy2261;
+  yy2267:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy2261;
+    if (yych <= 0x9F)
+      goto yy2260;
+    goto yy2261;
+  yy2268:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy2269;
+    if (yych != 'l')
+      goto yy2261;
+  yy2269:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy2270;
+    if (yych != 'e')
+      goto yy2261;
+  yy2270:
+    yych = *++p;
+    if (yych != ':')
+      goto yy2261;
+  yy2271:
+    ++p;
+  yy2272 : { return (bufsize_t)(p - start); }
+  yy2273:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy2274;
+    if (yych != 's')
+      goto yy2261;
+  yy2274:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy2275;
+    if (yych != 'c')
+      goto yy2261;
+  yy2275:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy2276;
+    if (yych != 'r')
+      goto yy2261;
+  yy2276:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy2277;
+    if (yych != 'i')
+      goto yy2261;
+  yy2277:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy2278;
+    if (yych != 'p')
+      goto yy2261;
+  yy2278:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy2279;
+    if (yych != 't')
+      goto yy2261;
+  yy2279:
+    yych = *++p;
+    if (yych == ':')
+      goto yy2271;
+    goto yy2261;
+  yy2280:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy2281;
+    if (yych != 'v')
+      goto yy2261;
+  yy2281:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy2282;
+    if (yych != 'a')
+      goto yy2261;
+  yy2282:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy2283;
+    if (yych != 's')
+      goto yy2261;
+  yy2283:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy2284;
+    if (yych != 'c')
+      goto yy2261;
+  yy2284:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy2285;
+    if (yych != 'r')
+      goto yy2261;
+  yy2285:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy2286;
+    if (yych != 'i')
+      goto yy2261;
+  yy2286:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy2287;
+    if (yych != 'p')
+      goto yy2261;
+  yy2287:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy2288;
+    if (yych != 't')
+      goto yy2261;
+  yy2288:
+    yych = *++p;
+    if (yych == ':')
+      goto yy2271;
+    goto yy2261;
+  yy2289:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy2290;
+    if (yych != 't')
+      goto yy2261;
+  yy2290:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy2291;
+    if (yych != 'a')
+      goto yy2261;
+  yy2291:
+    yych = *++p;
+    if (yych != ':')
+      goto yy2261;
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych == 'I')
+      goto yy2293;
+    if (yych != 'i')
+      goto yy2272;
+  yy2293:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy2294;
+    if (yych != 'm')
+      goto yy2261;
+  yy2294:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy2295;
+    if (yych != 'a')
+      goto yy2261;
+  yy2295:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy2296;
+    if (yych != 'g')
+      goto yy2261;
+  yy2296:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy2297;
+    if (yych != 'e')
+      goto yy2261;
+  yy2297:
+    yych = *++p;
+    if (yych != '/')
+      goto yy2261;
+    yych = *++p;
+    if (yych <= 'W') {
+      if (yych <= 'J') {
+        if (yych == 'G')
+          goto yy2300;
+        if (yych <= 'I')
+          goto yy2261;
+        goto yy2301;
+      } else {
+        if (yych == 'P')
+          goto yy2299;
+        if (yych <= 'V')
+          goto yy2261;
+        goto yy2302;
+      }
+    } else {
+      if (yych <= 'j') {
+        if (yych == 'g')
+          goto yy2300;
+        if (yych <= 'i')
+          goto yy2261;
+        goto yy2301;
+      } else {
+        if (yych <= 'p') {
+          if (yych <= 'o')
+            goto yy2261;
+        } else {
+          if (yych == 'w')
+            goto yy2302;
+          goto yy2261;
+        }
+      }
+    }
+  yy2299:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy2310;
+    if (yych == 'n')
+      goto yy2310;
+    goto yy2261;
+  yy2300:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy2309;
+    if (yych == 'i')
+      goto yy2309;
+    goto yy2261;
+  yy2301:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy2307;
+    if (yych == 'p')
+      goto yy2307;
+    goto yy2261;
+  yy2302:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy2303;
+    if (yych != 'e')
+      goto yy2261;
+  yy2303:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy2304;
+    if (yych != 'b')
+      goto yy2261;
+  yy2304:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy2305;
+    if (yych != 'p')
+      goto yy2261;
+  yy2305:
+    ++p;
+    { return 0; }
+  yy2307:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy2308;
+    if (yych != 'e')
+      goto yy2261;
+  yy2308:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy2305;
+    if (yych == 'g')
+      goto yy2305;
+    goto yy2261;
+  yy2309:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy2305;
+    if (yych == 'f')
+      goto yy2305;
+    goto yy2261;
+  yy2310:
+    ++p;
+    if ((yych = *p) == 'G')
+      goto yy2305;
+    if (yych == 'g')
+      goto yy2305;
+    goto yy2261;
   }
 }
diff --git a/cbits/scanners.h b/cbits/scanners.h
--- a/cbits/scanners.h
+++ b/cbits/scanners.h
@@ -21,9 +21,9 @@
 bufsize_t _scan_link_url(const unsigned char *p);
 bufsize_t _scan_link_title(const unsigned char *p);
 bufsize_t _scan_spacechars(const unsigned char *p);
-bufsize_t _scan_atx_header_start(const unsigned char *p);
-bufsize_t _scan_setext_header_line(const unsigned char *p);
-bufsize_t _scan_hrule(const unsigned char *p);
+bufsize_t _scan_atx_heading_start(const unsigned char *p);
+bufsize_t _scan_setext_heading_line(const unsigned char *p);
+bufsize_t _scan_thematic_break(const unsigned char *p);
 bufsize_t _scan_open_code_fence(const unsigned char *p);
 bufsize_t _scan_close_code_fence(const unsigned char *p);
 bufsize_t _scan_entity(const unsigned char *p);
@@ -43,9 +43,10 @@
 #define scan_link_url(c, n) _scan_at(&_scan_link_url, c, n)
 #define scan_link_title(c, n) _scan_at(&_scan_link_title, c, n)
 #define scan_spacechars(c, n) _scan_at(&_scan_spacechars, c, n)
-#define scan_atx_header_start(c, n) _scan_at(&_scan_atx_header_start, c, n)
-#define scan_setext_header_line(c, n) _scan_at(&_scan_setext_header_line, c, n)
-#define scan_hrule(c, n) _scan_at(&_scan_hrule, c, n)
+#define scan_atx_heading_start(c, n) _scan_at(&_scan_atx_heading_start, c, n)
+#define scan_setext_heading_line(c, n)                                         \
+  _scan_at(&_scan_setext_heading_line, c, n)
+#define scan_thematic_break(c, n) _scan_at(&_scan_thematic_break, c, n)
 #define scan_open_code_fence(c, n) _scan_at(&_scan_open_code_fence, c, n)
 #define scan_close_code_fence(c, n) _scan_at(&_scan_close_code_fence, c, n)
 #define scan_entity(c, n) _scan_at(&_scan_entity, c, n)
diff --git a/cbits/utf8.c b/cbits/utf8.c
--- a/cbits/utf8.c
+++ b/cbits/utf8.c
@@ -107,7 +107,8 @@
   return length;
 }
 
-void cmark_utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size) {
+void cmark_utf8proc_check(cmark_strbuf *ob, const uint8_t *line,
+                          bufsize_t size) {
   bufsize_t i = 0;
 
   while (i < size) {
@@ -146,7 +147,8 @@
   }
 }
 
-int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst) {
+int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len,
+                           int32_t *dst) {
   int length;
   int32_t uc = -1;
 
@@ -222,7 +224,8 @@
   cmark_strbuf_put(buf, dst, len);
 }
 
-void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len) {
+void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str,
+                              bufsize_t len) {
   int32_t c;
 
 #define bufpush(x) cmark_utf8proc_encode_char(x, dest)
diff --git a/cbits/utf8.h b/cbits/utf8.h
--- a/cbits/utf8.h
+++ b/cbits/utf8.h
@@ -8,10 +8,12 @@
 extern "C" {
 #endif
 
-void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len);
+void cmark_utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str,
+                              bufsize_t len);
 void cmark_utf8proc_encode_char(int32_t uc, cmark_strbuf *buf);
 int cmark_utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst);
-void cmark_utf8proc_check(cmark_strbuf *dest, const uint8_t *line, bufsize_t size);
+void cmark_utf8proc_check(cmark_strbuf *dest, const uint8_t *line,
+                          bufsize_t size);
 int cmark_utf8proc_is_space(int32_t uc);
 int cmark_utf8proc_is_punctuation(int32_t uc);
 
diff --git a/cbits/xml.c b/cbits/xml.c
--- a/cbits/xml.c
+++ b/cbits/xml.c
@@ -50,10 +50,13 @@
     literal = false;
 
     switch (node->type) {
+    case CMARK_NODE_DOCUMENT:
+      cmark_strbuf_puts(xml, " xmlns=\"http://commonmark.org/xml/1.0\"");
+      break;
     case CMARK_NODE_TEXT:
     case CMARK_NODE_CODE:
-    case CMARK_NODE_HTML:
-    case CMARK_NODE_INLINE_HTML:
+    case CMARK_NODE_HTML_BLOCK:
+    case CMARK_NODE_HTML_INLINE:
       cmark_strbuf_puts(xml, ">");
       escape_xml(xml, node->as.literal.data, node->as.literal.len);
       cmark_strbuf_puts(xml, "</");
@@ -83,8 +86,8 @@
               (cmark_node_get_list_tight(node) ? "true" : "false"));
       cmark_strbuf_puts(xml, buffer);
       break;
-    case CMARK_NODE_HEADER:
-      sprintf(buffer, " level=\"%d\"", node->as.header.level);
+    case CMARK_NODE_HEADING:
+      sprintf(buffer, " level=\"%d\"", node->as.heading.level);
       cmark_strbuf_puts(xml, buffer);
       break;
     case CMARK_NODE_CODE_BLOCK:
@@ -99,6 +102,17 @@
       cmark_strbuf_puts(xml, cmark_node_get_type_string(node));
       literal = true;
       break;
+    case CMARK_NODE_CUSTOM_BLOCK:
+    case CMARK_NODE_CUSTOM_INLINE:
+      cmark_strbuf_puts(xml, " on_enter=\"");
+      escape_xml(xml, node->as.custom.on_enter.data,
+                 node->as.custom.on_enter.len);
+      cmark_strbuf_putc(xml, '"');
+      cmark_strbuf_puts(xml, " on_exit=\"");
+      escape_xml(xml, node->as.custom.on_exit.data,
+                 node->as.custom.on_exit.len);
+      cmark_strbuf_putc(xml, '"');
+      break;
     case CMARK_NODE_LINK:
     case CMARK_NODE_IMAGE:
       cmark_strbuf_puts(xml, " destination=\"");
@@ -140,7 +154,7 @@
 
   cmark_strbuf_puts(state.xml, "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
   cmark_strbuf_puts(state.xml,
-                    "<!DOCTYPE CommonMark SYSTEM \"CommonMark.dtd\">\n");
+                    "<!DOCTYPE document SYSTEM \"CommonMark.dtd\">\n");
   while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
     cur = cmark_iter_get_node(iter);
     S_render_node(cur, ev_type, &state, options);
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,13 @@
+cmark 0.5 (29 Dec 2015)
+
+  * Updated to libcmark 0.23.0.
+  * API changes:
+    + Added `OnEnter` and `OnExit` types.
+    + In `NodeType`, `HRULE` is now `THEMATIC_BREAK`,
+      `HTML` is `HTML_BLOCK`, `INLINE_HTML` is
+      `HTML_INLINE`, `HEADER` is `HEADING`.  New
+      constructors: `CUSTOM_INLINE`, `CUSTOM_BLOCK`.
+
 cmark 0.4.1 (23 Aug 2015)
 
   * Updated to libcmark 0.22.0.
diff --git a/cmark.cabal b/cmark.cabal
--- a/cmark.cabal
+++ b/cmark.cabal
@@ -1,12 +1,12 @@
 name:                cmark
-version:             0.4.1
+version:             0.5.0
 synopsis:            Fast, accurate CommonMark (Markdown) parser and renderer
 description:
   This package provides Haskell bindings for
   <https://github.com/jgm/cmark libcmark>, the reference
   parser for <http://commonmark.org CommonMark>, a fully
   specified variant of Markdown. It includes sources for
-  libcmark (0.21.0) and does not require prior installation of the
+  libcmark (0.23.0) and does not require prior installation of the
   C library.
 
 homepage:            https://github.com/jgm/commonmark-hs
@@ -20,7 +20,6 @@
 build-type:          Simple
 extra-source-files:  README.md
                      changelog
-                     cbits/bench.h
                      cbits/chunk.h
                      cbits/cmark_export.h
                      cbits/debug.h
